ETH Price: $3,970.52 (-3.18%)

Contract

0xEB1D87FfEC280e7832BCb47B8756aA0D29589fa6
 

Overview

ETH Balance

1 wei

Eth Value

Less Than $0.01 (@ $3,970.52/ETH)

More Info

Private Name Tags

Multichain Info

1 address found via
Transaction Hash
Method
Block
From
To
Approve235758712025-10-14 12:13:4737 secs ago1760444027IN
0xEB1D87Ff...D29589fa6
0 ETH0.000146733.11893776
Approve235757592025-10-14 11:51:2323 mins ago1760442683IN
0xEB1D87Ff...D29589fa6
0 ETH0.000057011.21498145
Approve235757472025-10-14 11:48:5925 mins ago1760442539IN
0xEB1D87Ff...D29589fa6
0 ETH0.000131392.79567266
Approve235756992025-10-14 11:39:2335 mins ago1760441963IN
0xEB1D87Ff...D29589fa6
0 ETH0.000144483.0601678
Approve235753792025-10-14 10:34:471 hr ago1760438087IN
0xEB1D87Ff...D29589fa6
0 ETH0.000071152.62457462
Approve235753762025-10-14 10:34:111 hr ago1760438051IN
0xEB1D87Ff...D29589fa6
0 ETH0.000117292.49506155
Approve235752782025-10-14 10:14:232 hrs ago1760436863IN
0xEB1D87Ff...D29589fa6
0 ETH0.000019270.41084938
Approve235752772025-10-14 10:14:112 hrs ago1760436851IN
0xEB1D87Ff...D29589fa6
0 ETH0.00001830.38955704
Approve235751662025-10-14 9:51:592 hrs ago1760435519IN
0xEB1D87Ff...D29589fa6
0 ETH0.000024930.52764212
Approve235749862025-10-14 9:15:592 hrs ago1760433359IN
0xEB1D87Ff...D29589fa6
0 ETH0.000044130.93462566
Approve235749592025-10-14 9:10:353 hrs ago1760433035IN
0xEB1D87Ff...D29589fa6
0 ETH0.000095042.0126275
Approve235748782025-10-14 8:54:233 hrs ago1760432063IN
0xEB1D87Ff...D29589fa6
0 ETH0.000069341.4683708
Approve235747712025-10-14 8:32:593 hrs ago1760430779IN
0xEB1D87Ff...D29589fa6
0 ETH0.000250285.29969578
Approve235745222025-10-14 7:42:354 hrs ago1760427755IN
0xEB1D87Ff...D29589fa6
0 ETH0.000088851.87910899
Approve235743092025-10-14 6:59:595 hrs ago1760425199IN
0xEB1D87Ff...D29589fa6
0 ETH0.000188653.98966152
Approve235743022025-10-14 6:58:235 hrs ago1760425103IN
0xEB1D87Ff...D29589fa6
0 ETH0.000284796.02424182
Transfer235742902025-10-14 6:55:595 hrs ago1760424959IN
0xEB1D87Ff...D29589fa6
0 ETH0.000165572.30108186
Approve235742382025-10-14 6:45:355 hrs ago1760424335IN
0xEB1D87Ff...D29589fa6
0 ETH0.000258555.46922253
Approve235741392025-10-14 6:25:235 hrs ago1760423123IN
0xEB1D87Ff...D29589fa6
0 ETH0.000057281.21299036
Approve235740902025-10-14 6:15:115 hrs ago1760422511IN
0xEB1D87Ff...D29589fa6
0 ETH0.000010560.22376468
Transfer235740842025-10-14 6:13:596 hrs ago1760422439IN
0xEB1D87Ff...D29589fa6
0 ETH0.000114161.7
Approve235740652025-10-14 6:10:116 hrs ago1760422211IN
0xEB1D87Ff...D29589fa6
0 ETH0.000050851.07684864
Approve235740472025-10-14 6:06:356 hrs ago1760421995IN
0xEB1D87Ff...D29589fa6
0 ETH0.000019290.40807554
Approve235738632025-10-14 5:29:476 hrs ago1760419787IN
0xEB1D87Ff...D29589fa6
0 ETH0.000242745.13357911
Approve235732992025-10-14 3:36:118 hrs ago1760412971IN
0xEB1D87Ff...D29589fa6
0 ETH0.000009940.21050235
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer235753902025-10-14 10:37:111 hr ago1760438231
0xEB1D87Ff...D29589fa6
0.09544683 ETH
Transfer235753902025-10-14 10:37:111 hr ago1760438231
0xEB1D87Ff...D29589fa6
0.10226446 ETH
Transfer235753902025-10-14 10:37:111 hr ago1760438231
0xEB1D87Ff...D29589fa6
0.14317025 ETH
Transfer235753902025-10-14 10:37:111 hr ago1760438231
0xEB1D87Ff...D29589fa6
0.34088154 ETH
Transfer235732972025-10-14 3:35:478 hrs ago1760412947
0xEB1D87Ff...D29589fa6
0.18182105 ETH
Transfer235732972025-10-14 3:35:478 hrs ago1760412947
0xEB1D87Ff...D29589fa6
0.19480827 ETH
Transfer235732972025-10-14 3:35:478 hrs ago1760412947
0xEB1D87Ff...D29589fa6
0.27273157 ETH
Transfer235732972025-10-14 3:35:478 hrs ago1760412947
0xEB1D87Ff...D29589fa6
0.6493609 ETH
Transfer235713112025-10-13 20:56:1115 hrs ago1760388971
0xEB1D87Ff...D29589fa6
0.06953721 ETH
Transfer235713112025-10-13 20:56:1115 hrs ago1760388971
0xEB1D87Ff...D29589fa6
0.07450415 ETH
Transfer235713112025-10-13 20:56:1115 hrs ago1760388971
0xEB1D87Ff...D29589fa6
0.10430582 ETH
Transfer235713112025-10-13 20:56:1115 hrs ago1760388971
0xEB1D87Ff...D29589fa6
0.24834719 ETH
Transfer235701722025-10-13 17:06:3519 hrs ago1760375195
0xEB1D87Ff...D29589fa6
0.07462247 ETH
Transfer235701722025-10-13 17:06:3519 hrs ago1760375195
0xEB1D87Ff...D29589fa6
0.07995265 ETH
Transfer235701722025-10-13 17:06:3519 hrs ago1760375195
0xEB1D87Ff...D29589fa6
0.11193371 ETH
Transfer235701722025-10-13 17:06:3519 hrs ago1760375195
0xEB1D87Ff...D29589fa6
0.26650885 ETH
Transfer235692702025-10-13 14:05:1122 hrs ago1760364311
0xEB1D87Ff...D29589fa6
0.07323582 ETH
Transfer235692702025-10-13 14:05:1122 hrs ago1760364311
0xEB1D87Ff...D29589fa6
0.07846695 ETH
Transfer235692702025-10-13 14:05:1122 hrs ago1760364311
0xEB1D87Ff...D29589fa6
0.10985373 ETH
Transfer235692702025-10-13 14:05:1122 hrs ago1760364311
0xEB1D87Ff...D29589fa6
0.26155651 ETH
Transfer235688042025-10-13 12:30:5923 hrs ago1760358659
0xEB1D87Ff...D29589fa6
0.05709777 ETH
Transfer235688042025-10-13 12:30:5923 hrs ago1760358659
0xEB1D87Ff...D29589fa6
0.06117619 ETH
Transfer235688042025-10-13 12:30:5923 hrs ago1760358659
0xEB1D87Ff...D29589fa6
0.08564666 ETH
Transfer235688042025-10-13 12:30:5923 hrs ago1760358659
0xEB1D87Ff...D29589fa6
0.20392064 ETH
Transfer235686192025-10-13 11:53:2324 hrs ago1760356403
0xEB1D87Ff...D29589fa6
0.0669104 ETH
View All Internal Transactions
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
AgentifyAI

Compiler Version
v0.8.27+commit.40a35a09

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2025-10-09
*/

/*
Agentify empowers AI agents to interact, adapt, and automate Web3 tasks using the Model Context Protocol (MCP). 
From DeFi to cross-chain operations, deploy agents that evolve and monetize as they work.

Whitepaper: docs.agentifyai.org
Website: agentifyai.org
Telegram: https://t.me/agentifyportal
X: https://x.com/agentifyxyz?s=21
*/

// SPDX-License-Identifier: MIT
pragma solidity 0.8.27;

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

    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address to, uint256 value) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 value) external returns (bool);
    function transferFrom(address from, address to, uint256 value) external returns (bool);
}

interface IERC20Metadata is IERC20 {

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

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

    function decimals() external view returns (uint8);
}

interface IERC20Errors {

    error ERC20InsufficientBalance(
        address sender,
        uint256 balance,
        uint256 needed
    );

    error ERC20InvalidSender(address sender);

    error ERC20InvalidReceiver(address receiver);

    error ERC20InsufficientAllowance(
        address spender,
        uint256 allowance,
        uint256 needed
    );

    error ERC20InvalidApprover(address approver);

    error ERC20InvalidSpender(address spender);
}

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

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

abstract contract Ownable is Context {
    address private _owner;

    error OwnableUnauthorizedAccount(address account);

    error OwnableInvalidOwner(address owner);

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

    constructor(address initialOwner) {
        if (initialOwner == address(0)) {
            revert OwnableInvalidOwner(address(0));
        }
        _transferOwnership(initialOwner);
    }

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

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

    function _checkOwner() internal view virtual {
        if (owner() != _msgSender()) {
            revert OwnableUnauthorizedAccount(_msgSender());
        }
    }

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

    function transferOwnership(address newOwner) public virtual onlyOwner {
        if (newOwner == address(0)) {
            revert OwnableInvalidOwner(address(0));
        }
        _transferOwnership(newOwner);
    }

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

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

    function WETH() external pure returns (address);

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

    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}
interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);
}

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

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

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

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

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

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

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

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

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

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

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

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

    function _transfer(
        address from,
        address to,
        uint256 value
    ) internal {
        if (from == address(0)) {
            revert ERC20InvalidSender(address(0));
        }
        if (to == address(0)) {
            revert ERC20InvalidReceiver(address(0));
        }
        _update(from, to, value);
    }

    function _update(
        address from,
        address to,
        uint256 value
    ) internal virtual {
        if (from == address(0)) {

            _totalSupply += value;
        } else {
            uint256 fromBalance = _balances[from];
            if (fromBalance < value) {
                revert ERC20InsufficientBalance(from, fromBalance, value);
            }
            unchecked {

                _balances[from] = fromBalance - value;
            }
        }

        if (to == address(0)) {
            unchecked {

                _totalSupply -= value;
            }
        } else {
            unchecked {

                _balances[to] += value;
            }
        }

        emit Transfer(from, to, value);
    }

    function _mint(address account, uint256 value) internal {
        if (account == address(0)) {
            revert ERC20InvalidReceiver(address(0));
        }
        _update(address(0), account, value);
    }

    function _burn(address account, uint256 value) internal {
        if (account == address(0)) {
            revert ERC20InvalidSender(address(0));
        }
        _update(account, address(0), value);
    }

    function _approve(
        address owner,
        address spender,
        uint256 value
    ) internal {
        _approve(owner, spender, value, true);
    }

    function _approve(
        address owner,
        address spender,
        uint256 value,
        bool emitEvent
    ) internal virtual {
        if (owner == address(0)) {
            revert ERC20InvalidApprover(address(0));
        }
        if (spender == address(0)) {
            revert ERC20InvalidSpender(address(0));
        }
        _allowances[owner][spender] = value;
        if (emitEvent) {
            emit Approval(owner, spender, value);
        }
    }

    function _spendAllowance(
        address owner,
        address spender,
        uint256 value
    ) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            if (currentAllowance < value) {
                revert ERC20InsufficientAllowance(
                    spender,
                    currentAllowance,
                    value
                );
            }
            unchecked {
                _approve(owner, spender, currentAllowance - value, false);
            }
        }
    }
}

contract AgentifyAI is Ownable, ERC20 {
    IUniswapV2Router public immutable uniswapV2Router;

    address public constant ZERO_ADDRESS = address(0);
    address public constant DEAD_ADDRESS = address(0xdEaD);

    address public uniswapV2Pair;

    address public GrowthWallet;
    address public OperationsWallet;
    address public BuildWallet;

    bool public isLimitsEnabled;
    bool public isAntiMEV;
    bool public isTaxEnabled;
    bool private inSwapBack;
    bool public isLaunched;

    uint256 public launchBlock;
    uint256 public launchTime;

    uint256 private lastSwapBackExecutionBlock;

    uint256 public maxBuy;
    uint256 public maxSell;
    uint256 public maxWallet;

    uint256 public swapTokensAtAmount;
    uint256 public buyFee;
    uint256 public sellFee;
    uint256 public transferFee;

    mapping(address => bool) public isExcludedFromFees;
    mapping(address => bool) public isExcludedFromLimits;
    mapping(address => bool) public automatedMarketMakerPairs;
    mapping(address => uint256) private _holderLastTransferTimestamp;

    modifier lockSwapBack() {
        inSwapBack = true;
        _;
        inSwapBack = false;
    }

    constructor(address strategic) Ownable(msg.sender) ERC20("Agentify AI", "AGF") {
        address sender = msg.sender;

        _excludeFromFees(address(this), true);
        _excludeFromFees(address(0xdead), true);
        _excludeFromFees(sender, true);
        _excludeFromFees(GrowthWallet, true);

        _excludeFromLimits(address(this), true);
        _excludeFromLimits(address(0xdead), true);
        _excludeFromLimits(sender, true);
        _excludeFromLimits(GrowthWallet, true);

        _mint(sender, 80_000_000 ether);
        _mint(strategic, 20_000_000 ether);

        uint256 totalSupply = totalSupply();

        GrowthWallet = 0x288287746451B83e73602e65e9E49812D4375c3F; //42
        OperationsWallet = 0x2ca981EB5CD4FbC67E86C4bC12348C12850bEaA5; //30
        BuildWallet = 0x4b46f03Fcea1163b17F93E631e822938731a9777; //28

        maxBuy = (totalSupply * 9) / 1000;
        maxSell = (totalSupply * 9) / 1000;
        maxWallet = (totalSupply * 9) / 1000;
        swapTokensAtAmount = (totalSupply * 325) / 1000000;

        isLimitsEnabled = true;
        isAntiMEV = true;
        isTaxEnabled = true;

        buyFee = 33;
        sellFee = 40;
        transferFee = 40;

        uniswapV2Router = IUniswapV2Router(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    }

    receive() external payable {}

    fallback() external payable {}

    function _transferOwnership(address newOwner) internal override {
        address oldOwner = owner();
        if (oldOwner != address(0)) {
            _excludeFromFees(oldOwner, false);
            _excludeFromLimits(oldOwner, false);
        }
        _excludeFromFees(newOwner, true);
        _excludeFromLimits(newOwner, true);
        super._transferOwnership(newOwner);
    }

    function StartTrade() external onlyOwner {
        require(!isLaunched, "AlreadyLaunched()");

        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(
            address(this),
            uniswapV2Router.WETH()
        );

        _setAutomatedMarketMakerPair(uniswapV2Pair, true);
        _approve(address(this), address(uniswapV2Router), type(uint256).max);
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        isLaunched = true;
        launchBlock = block.number;
        launchTime = block.timestamp;
    }

    function RemoveAllLimits() external onlyOwner {
        isLimitsEnabled = false;
        isAntiMEV = false;
    }

    function DisableAntiMEV() external onlyOwner {
        isAntiMEV = false;
    }
      
    function ToogleTaxes(bool value) external onlyOwner {
        isTaxEnabled = value;
    }

    function excludeFromFees(address[] calldata accounts, bool value)
        external
        onlyOwner
    {
        for (uint256 i = 0; i < accounts.length; i++) {
            _excludeFromFees(accounts[i], value);
        }
    }

    function excludeFromLimits(address[] calldata accounts, bool value)
        external
        onlyOwner
    {
        for (uint256 i = 0; i < accounts.length; i++) {
            _excludeFromLimits(accounts[i], value);
        }
    }

    function _excludeFromFees(address account, bool value) internal virtual {
        isExcludedFromFees[account] = value;
    }

    function _excludeFromLimits(address account, bool value) internal virtual {
        isExcludedFromLimits[account] = value;
    }

    function withdrawStuckTokens(address _token) external onlyOwner {
        address sender = msg.sender;
        uint256 amount;
        if (_token == ZERO_ADDRESS) {
            bool success;
            amount = address(this).balance;
            require(amount > 0, "NoNativeTokens()");
            (success, ) = address(sender).call{value: amount}("");
            require(success, "FailedToWithdrawNativeTokens()");
        } else {
            amount = IERC20(_token).balanceOf(address(this));
            require(amount > 0, "NoTokens()");
            IERC20(_token).transfer(msg.sender, amount);
        }
    }

    function _update(
        address from,
        address to,
        uint256 amount
    ) internal virtual override {
        address origin = tx.origin;

        require(
            isLaunched ||
                isExcludedFromLimits[from] ||
                isExcludedFromLimits[to],
            "NotLaunched()"
        );

        bool limits = isLimitsEnabled &&
            !inSwapBack &&
            !(isExcludedFromLimits[from] || isExcludedFromLimits[to]);
        if (limits) {
            if (
                from != owner() &&
                to != owner() &&
                to != ZERO_ADDRESS &&
                to != DEAD_ADDRESS
            ) {
                if (isAntiMEV) {
                    if (to != address(uniswapV2Router) && to != uniswapV2Pair) {
                        require(
                            _holderLastTransferTimestamp[origin] <
                                block.number - 3 &&
                                _holderLastTransferTimestamp[to] <
                                block.number - 3,
                            "TransferDelay()"
                        );
                        _holderLastTransferTimestamp[origin] = block.number;
                        _holderLastTransferTimestamp[to] = block.number;
                    }
                }

                if (
                    automatedMarketMakerPairs[from] && !isExcludedFromLimits[to]
                ) {
                    require(amount <= maxBuy, "MaxBuyAmountExceed()");
                    require(
                        amount + balanceOf(to) <= maxWallet,
                        "MaxWalletAmountExceed()"
                    );
                } else if (
                    automatedMarketMakerPairs[to] && !isExcludedFromLimits[from]
                ) {
                    require(amount <= maxSell, "MaxSellAmountExceed()");
                } else if (!isExcludedFromLimits[to]) {
                    require(
                        amount + balanceOf(to) <= maxWallet,
                        "MaxWalletAmountExceed()"
                    );
                }
            }
        }

        bool takeFee = isTaxEnabled &&
            !inSwapBack &&
            !(isExcludedFromFees[from] || isExcludedFromFees[to]);

        if (takeFee) {
            uint256 fees = 0;
            if (automatedMarketMakerPairs[to] && sellFee > 0) {
                fees = (amount * sellFee) / 100;
            } else if (automatedMarketMakerPairs[from] && buyFee > 0) {
                fees = (amount * buyFee) / 100;
            } else if (
                !automatedMarketMakerPairs[to] &&
                !automatedMarketMakerPairs[from] &&
                transferFee > 0
            ) {
                fees = (amount * transferFee) / 100;
            }

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

        uint256 balance = balanceOf(address(this));
        bool shouldSwap = balance >= swapTokensAtAmount;

        uint256 maxSwapAmount = swapTokensAtAmount * 20;
        if (takeFee && !automatedMarketMakerPairs[from] && shouldSwap) {
            if (block.number > lastSwapBackExecutionBlock) {
                if (balance > maxSwapAmount) {
                    balance = maxSwapAmount;
                }
                _swapBack(balance);
                lastSwapBackExecutionBlock = block.number;
            }
        }

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

    function _swapBack(uint256 balance) internal virtual lockSwapBack {
        bool success;
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            balance,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 ethBalance = address(this).balance;

        uint256 ethForGrowth = (ethBalance * 42) / 100;
        uint256 ethForOperation = (ethBalance * 30) / 100;
        uint256 ethForBuild = (ethBalance * 28) / 100;

        (success, ) = address(GrowthWallet).call{value: ethForGrowth}("");
        (success, ) = address(OperationsWallet).call{value: ethForOperation}("");
        (success, ) = address(BuildWallet).call{value: ethForBuild}("");
    }

    function DripSwap(uint256 _percen) external onlyOwner {
        uint256 balance = balanceOf(address(this));
        uint256 amt = (balance * _percen)/100;
        _swapBack(amt);
    }

    function AdjustFess(uint256 _buyFee, uint256 _sellFee) external onlyOwner {
        if (block.number == launchBlock){
            buyFee = _buyFee;
            sellFee = _sellFee;
        } else {
        require(_buyFee <= buyFee && _sellFee <= sellFee, "FeeTooHigh()");
        buyFee = _buyFee;
        sellFee = _sellFee;
    }}

    function ReduceTransferFees(uint256 _transferFee) external onlyOwner {
        require(_transferFee <= transferFee, "FeeTooHigh()");
        transferFee = _transferFee;
    }

    function ChangeTaxWallets(address _OperationWallet, address _GrowthAddress, address _BuildWallet) external onlyOwner {
        GrowthWallet = _GrowthAddress;
        OperationsWallet = _OperationWallet;
        BuildWallet = _BuildWallet;
        
    }

    function _setAutomatedMarketMakerPair(address pair, bool value)
        internal
        virtual
    {
        automatedMarketMakerPairs[pair] = value;
    }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"strategic","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientAllowance","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC20InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC20InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC20InvalidSender","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"ERC20InvalidSpender","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"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":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"AdjustFess","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"BuildWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_OperationWallet","type":"address"},{"internalType":"address","name":"_GrowthAddress","type":"address"},{"internalType":"address","name":"_BuildWallet","type":"address"}],"name":"ChangeTaxWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"DEAD_ADDRESS","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DisableAntiMEV","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_percen","type":"uint256"}],"name":"DripSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"GrowthWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"OperationsWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_transferFee","type":"uint256"}],"name":"ReduceTransferFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"RemoveAllLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"StartTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"value","type":"bool"}],"name":"ToogleTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"ZERO_ADDRESS","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"value","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"value","type":"bool"}],"name":"excludeFromLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isAntiMEV","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isLaunched","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isLimitsEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isTaxEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"withdrawStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a060405234801561000f575f5ffd5b506040516161f83803806161f883398181016040528101906100319190611968565b6040518060400160405280600b81526020017f4167656e746966792041490000000000000000000000000000000000000000008152506040518060400160405280600381526020017f4147460000000000000000000000000000000000000000000000000000000000815250335f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361010e575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161010591906119a2565b60405180910390fd5b61011d8161049060201b60201c565b50816004908161012d9190611bf8565b50806005908161013d9190611bf8565b5050505f33905061015530600161052a60201b60201c565b61016861dead600161052a60201b60201c565b61017981600161052a60201b60201c565b6101ab60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600161052a60201b60201c565b6101bc30600161058260201b60201c565b6101cf61dead600161058260201b60201c565b6101e081600161058260201b60201c565b61021260075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600161058260201b60201c565b61022d816a422ca8b0a00a42500000006105da60201b60201c565b610248826a108b2a2c280290940000006105da60201b60201c565b5f61025761065f60201b60201c565b905073288287746451b83e73602e65e9e49812d4375c3f60075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550732ca981eb5cd4fbc67e86c4bc12348c12850beaa560085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550734b46f03fcea1163b17f93e631e822938731a977760095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506103e86009826103659190611cf4565b61036f9190611d62565b600d819055506103e86009826103859190611cf4565b61038f9190611d62565b600e819055506103e86009826103a59190611cf4565b6103af9190611d62565b600f81905550620f4240610145826103c79190611cf4565b6103d19190611d62565b6010819055506001600960146101000a81548160ff0219169083151502179055506001600960156101000a81548160ff0219169083151502179055506001600960166101000a81548160ff021916908315150217905550602160118190555060286012819055506028601381905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1681525050505050612223565b5f61049f61066860201b60201c565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146104f5576104e4815f61052a60201b60201c565b6104f4815f61058260201b60201c565b5b61050682600161052a60201b60201c565b61051782600161058260201b60201c565b6105268261068f60201b60201c565b5050565b8060145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b8060155f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361064a575f6040517fec442f0500000000000000000000000000000000000000000000000000000000815260040161064191906119a2565b60405180910390fd5b61065b5f838361075060201b60201c565b5050565b5f600354905090565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f329050600960189054906101000a900460ff16806107b5575060155f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80610806575060155f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b610845576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083c90611dec565b60405180910390fd5b5f600960149054906101000a900460ff16801561086f5750600960179054906101000a900460ff16155b8015610913575060155f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680610911575060155f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b155b90508015610f055761092961066860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415801561099d575061096d61066860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156109d557505f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015610a0f575061dead73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15610f0457600960159054906101000a900460ff1615610c1e5760805173ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015610ab4575060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15610c1d57600343610ac69190611e0a565b60175f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054108015610b595750600343610b199190611e0a565b60175f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054105b610b98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8f90611e87565b60405180910390fd5b4360175f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055504360175f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60165f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015610cbb575060155f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15610d6857600d54831115610d05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cfc90611eef565b60405180910390fd5b600f54610d17856112ab60201b60201c565b84610d229190611f0d565b1115610d63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5a90611f8a565b60405180910390fd5b610f03565b60165f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015610e05575060155f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15610e5457600e54831115610e4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4690611ff2565b60405180910390fd5b610f02565b60155f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16610f0157600f54610eb4856112ab60201b60201c565b84610ebf9190611f0d565b1115610f00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef790611f8a565b60405180910390fd5b5b5b5b5b5b5f600960169054906101000a900460ff168015610f2f5750600960179054906101000a900460ff16155b8015610fd3575060145f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680610fd1575060145f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b155b905080156111d2575f5f905060165f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801561103657505f601254115b1561105c5760646012548661104b9190611cf4565b6110559190611d62565b90506111a8565b60165f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156110b357505f601154115b156110d9576064601154866110c89190611cf4565b6110d29190611d62565b90506111a7565b60165f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611177575060165f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561118457505f601354115b156111a6576064601354866111999190611cf4565b6111a39190611d62565b90505b5b5b5f8111156111d05780856111bc9190611e0a565b94506111cf8730836112f160201b60201c565b5b505b5f6111e2306112ab60201b60201c565b90505f60105482101590505f60146010546111fd9190611cf4565b9050838015611253575060165f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561125c5750815b1561128f57600c5443111561128e5780831115611277578092505b6112868361150d60201b60201c565b43600c819055505b5b6112a08989896112f160201b60201c565b505050505050505050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611341578060035f8282546113359190611f0d565b92505081905550611411565b5f60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156113cb578381836040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016113c29392919061201f565b60405180910390fd5b81810360015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611458578060035f82825403925050819055506114a3565b8060015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516115009190612054565b60405180910390a3505050565b6001600960176101000a81548160ff0219169083151502179055505f5f600267ffffffffffffffff811115611545576115446119c5565b5b6040519080825280602002602001820160405280156115735781602001602082028036833780820191505090505b50905030815f8151811061158a5761158961206d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060805173ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561160f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116339190611968565b816001815181106116475761164661206d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060805173ffffffffffffffffffffffffffffffffffffffff1663791ac947845f8430426040518663ffffffff1660e01b81526004016116c495949392919061218a565b5f604051808303815f87803b1580156116db575f5ffd5b505af11580156116ed573d5f5f3e3d5ffd5b505050505f4790505f6064602a836117059190611cf4565b61170f9190611d62565b90505f6064601e846117219190611cf4565b61172b9190611d62565b90505f6064601c8561173d9190611cf4565b6117479190611d62565b905060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168360405161178e9061220f565b5f6040518083038185875af1925050503d805f81146117c8576040519150601f19603f3d011682016040523d82523d5f602084013e6117cd565b606091505b50508096505060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826040516118189061220f565b5f6040518083038185875af1925050503d805f8114611852576040519150601f19603f3d011682016040523d82523d5f602084013e611857565b606091505b50508096505060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16816040516118a29061220f565b5f6040518083038185875af1925050503d805f81146118dc576040519150601f19603f3d011682016040523d82523d5f602084013e6118e1565b606091505b5050809650505050505050505f600960176101000a81548160ff02191690831515021790555050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6119378261190e565b9050919050565b6119478161192d565b8114611951575f5ffd5b50565b5f815190506119628161193e565b92915050565b5f6020828403121561197d5761197c61190a565b5b5f61198a84828501611954565b91505092915050565b61199c8161192d565b82525050565b5f6020820190506119b55f830184611993565b92915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611a3657607f821691505b602082108103611a4957611a486119f2565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302611aab7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82611a70565b611ab58683611a70565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f611af9611af4611aef84611acd565b611ad6565b611acd565b9050919050565b5f819050919050565b611b1283611adf565b611b26611b1e82611b00565b848454611a7c565b825550505050565b5f5f905090565b611b3d611b2e565b611b48818484611b09565b505050565b5b81811015611b6b57611b605f82611b35565b600181019050611b4e565b5050565b601f821115611bb057611b8181611a4f565b611b8a84611a61565b81016020851015611b99578190505b611bad611ba585611a61565b830182611b4d565b50505b505050565b5f82821c905092915050565b5f611bd05f1984600802611bb5565b1980831691505092915050565b5f611be88383611bc1565b9150826002028217905092915050565b611c01826119bb565b67ffffffffffffffff811115611c1a57611c196119c5565b5b611c248254611a1f565b611c2f828285611b6f565b5f60209050601f831160018114611c60575f8415611c4e578287015190505b611c588582611bdd565b865550611cbf565b601f198416611c6e86611a4f565b5f5b82811015611c9557848901518255600182019150602085019450602081019050611c70565b86831015611cb25784890151611cae601f891682611bc1565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611cfe82611acd565b9150611d0983611acd565b9250828202611d1781611acd565b91508282048414831517611d2e57611d2d611cc7565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f611d6c82611acd565b9150611d7783611acd565b925082611d8757611d86611d35565b5b828204905092915050565b5f82825260208201905092915050565b7f4e6f744c61756e636865642829000000000000000000000000000000000000005f82015250565b5f611dd6600d83611d92565b9150611de182611da2565b602082019050919050565b5f6020820190508181035f830152611e0381611dca565b9050919050565b5f611e1482611acd565b9150611e1f83611acd565b9250828203905081811115611e3757611e36611cc7565b5b92915050565b7f5472616e7366657244656c6179282900000000000000000000000000000000005f82015250565b5f611e71600f83611d92565b9150611e7c82611e3d565b602082019050919050565b5f6020820190508181035f830152611e9e81611e65565b9050919050565b7f4d6178427579416d6f756e7445786365656428290000000000000000000000005f82015250565b5f611ed9601483611d92565b9150611ee482611ea5565b602082019050919050565b5f6020820190508181035f830152611f0681611ecd565b9050919050565b5f611f1782611acd565b9150611f2283611acd565b9250828201905080821115611f3a57611f39611cc7565b5b92915050565b7f4d617857616c6c6574416d6f756e7445786365656428290000000000000000005f82015250565b5f611f74601783611d92565b9150611f7f82611f40565b602082019050919050565b5f6020820190508181035f830152611fa181611f68565b9050919050565b7f4d617853656c6c416d6f756e74457863656564282900000000000000000000005f82015250565b5f611fdc601583611d92565b9150611fe782611fa8565b602082019050919050565b5f6020820190508181035f83015261200981611fd0565b9050919050565b61201981611acd565b82525050565b5f6060820190506120325f830186611993565b61203f6020830185612010565b61204c6040830184612010565b949350505050565b5f6020820190506120675f830184612010565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f6120bd6120b86120b38461209a565b611ad6565b611acd565b9050919050565b6120cd816120a3565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6121058161192d565b82525050565b5f61211683836120fc565b60208301905092915050565b5f602082019050919050565b5f612138826120d3565b61214281856120dd565b935061214d836120ed565b805f5b8381101561217d578151612164888261210b565b975061216f83612122565b925050600181019050612150565b5085935050505092915050565b5f60a08201905061219d5f830188612010565b6121aa60208301876120c4565b81810360408301526121bc818661212e565b90506121cb6060830185611993565b6121d86080830184612010565b9695505050505050565b5f81905092915050565b50565b5f6121fa5f836121e2565b9150612205826121ec565b5f82019050919050565b5f612219826121ef565b9150819050919050565b608051613f856122735f395f8181610b8a01528181611021015281816110ca015281816112230152818161126a0152818161135e01528181611aaf01528181611b8a01526125750152613f855ff3fe608060405260043610610280575f3560e01c8063790ca4131161014e578063bd7bc442116100c0578063dd62ed3e11610079578063dd62ed3e14610931578063e2f456051461096d578063e6c1909b14610997578063e9de1a46146109c1578063f2fde38b146109eb578063f8b45b0514610a1357610281565b8063bd7bc4421461084f578063cb7bcd2414610865578063cb9637281461088d578063d00efb2f146108b5578063d107439b146108df578063d5759ba31461090757610281565b8063acb2ad6f11610112578063acb2ad6f1461076b578063ad29ffde14610795578063b2c5fa5f146107bd578063b62496f5146107d3578063b8eb35461461080f578063ba2647141461083957610281565b8063790ca413146106895780637f7906dc146106b35780638da5cb5b146106db57806395d89b4114610705578063a9059cbb1461072f57610281565b8063307aebc9116101f25780634fbee193116101ab5780634fbee1931461056b578063538ba4f9146105a75780635cce86cd146105d157806370a082311461060d57806370db69d614610649578063715018a61461067357610281565b8063307aebc91461046f578063313ce567146104995780633da2bf2d146104c357806347062402146104ed57806349bd5a5e146105175780634e6fd6c41461054157610281565b806318160ddd1161024457806318160ddd1461036357806322a626a31461038d578063230c50fc146103b557806323b872dd146103df5780632ab58fa51461041b5780632b14ca561461044557610281565b806306fdde0314610283578063095ea7b3146102ad578063106a5a8f146102e9578063109ebf37146103115780631694505e1461033957610281565b5b005b34801561028e575f5ffd5b50610297610a3d565b6040516102a4919061313c565b60405180910390f35b3480156102b8575f5ffd5b506102d360048036038101906102ce91906131f1565b610acd565b6040516102e09190613249565b60405180910390f35b3480156102f4575f5ffd5b5061030f600480360381019061030a91906132ed565b610aef565b005b34801561031c575f5ffd5b506103376004803603810190610332919061334a565b610b4b565b005b348015610344575f5ffd5b5061034d610b88565b60405161035a91906133d0565b60405180910390f35b34801561036e575f5ffd5b50610377610bac565b60405161038491906133f8565b60405180910390f35b348015610398575f5ffd5b506103b360048036038101906103ae9190613411565b610bb5565b005b3480156103c0575f5ffd5b506103c9610c3f565b6040516103d6919061345e565b60405180910390f35b3480156103ea575f5ffd5b5061040560048036038101906104009190613477565b610c64565b6040516104129190613249565b60405180910390f35b348015610426575f5ffd5b5061042f610c92565b60405161043c919061345e565b60405180910390f35b348015610450575f5ffd5b50610459610cb7565b60405161046691906133f8565b60405180910390f35b34801561047a575f5ffd5b50610483610cbd565b6040516104909190613249565b60405180910390f35b3480156104a4575f5ffd5b506104ad610cd0565b6040516104ba91906134e2565b60405180910390f35b3480156104ce575f5ffd5b506104d7610cd8565b6040516104e49190613249565b60405180910390f35b3480156104f8575f5ffd5b50610501610ceb565b60405161050e91906133f8565b60405180910390f35b348015610522575f5ffd5b5061052b610cf1565b604051610538919061345e565b60405180910390f35b34801561054c575f5ffd5b50610555610d16565b604051610562919061345e565b60405180910390f35b348015610576575f5ffd5b50610591600480360381019061058c91906134fb565b610d1c565b60405161059e9190613249565b60405180910390f35b3480156105b2575f5ffd5b506105bb610d39565b6040516105c8919061345e565b60405180910390f35b3480156105dc575f5ffd5b506105f760048036038101906105f291906134fb565b610d3d565b6040516106049190613249565b60405180910390f35b348015610618575f5ffd5b50610633600480360381019061062e91906134fb565b610d5a565b60405161064091906133f8565b60405180910390f35b348015610654575f5ffd5b5061065d610da0565b60405161066a91906133f8565b60405180910390f35b34801561067e575f5ffd5b50610687610da6565b005b348015610694575f5ffd5b5061069d610db9565b6040516106aa91906133f8565b60405180910390f35b3480156106be575f5ffd5b506106d960048036038101906106d49190613526565b610dbf565b005b3480156106e6575f5ffd5b506106ef610e8c565b6040516106fc919061345e565b60405180910390f35b348015610710575f5ffd5b50610719610eb3565b604051610726919061313c565b60405180910390f35b34801561073a575f5ffd5b50610755600480360381019061075091906131f1565b610f43565b6040516107629190613249565b60405180910390f35b348015610776575f5ffd5b5061077f610f65565b60405161078c91906133f8565b60405180910390f35b3480156107a0575f5ffd5b506107bb60048036038101906107b691906132ed565b610f6b565b005b3480156107c8575f5ffd5b506107d1610fc7565b005b3480156107de575f5ffd5b506107f960048036038101906107f491906134fb565b611427565b6040516108069190613249565b60405180910390f35b34801561081a575f5ffd5b50610823611444565b60405161083091906133f8565b60405180910390f35b348015610844575f5ffd5b5061084d61144a565b005b34801561085a575f5ffd5b50610863611488565b005b348015610870575f5ffd5b5061088b60048036038101906108869190613576565b6114ac565b005b348015610898575f5ffd5b506108b360048036038101906108ae91906134fb565b6114d1565b005b3480156108c0575f5ffd5b506108c9611744565b6040516108d691906133f8565b60405180910390f35b3480156108ea575f5ffd5b506109056004803603810190610900919061334a565b61174a565b005b348015610912575f5ffd5b5061091b6117a1565b6040516109289190613249565b60405180910390f35b34801561093c575f5ffd5b50610957600480360381019061095291906135a1565b6117b4565b60405161096491906133f8565b60405180910390f35b348015610978575f5ffd5b50610981611836565b60405161098e91906133f8565b60405180910390f35b3480156109a2575f5ffd5b506109ab61183c565b6040516109b89190613249565b60405180910390f35b3480156109cc575f5ffd5b506109d561184f565b6040516109e2919061345e565b60405180910390f35b3480156109f6575f5ffd5b50610a116004803603810190610a0c91906134fb565b611874565b005b348015610a1e575f5ffd5b50610a276118f8565b604051610a3491906133f8565b60405180910390f35b606060048054610a4c9061360c565b80601f0160208091040260200160405190810160405280929190818152602001828054610a789061360c565b8015610ac35780601f10610a9a57610100808354040283529160200191610ac3565b820191905f5260205f20905b815481529060010190602001808311610aa657829003601f168201915b5050505050905090565b5f5f610ad76118fe565b9050610ae4818585611905565b600191505092915050565b610af7611917565b5f5f90505b83839050811015610b4557610b38848483818110610b1d57610b1c61363c565b5b9050602002016020810190610b3291906134fb565b8361199e565b8080600101915050610afc565b50505050565b610b53611917565b5f610b5d30610d5a565b90505f60648383610b6e9190613696565b610b789190613704565b9050610b83816119f6565b505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f600354905090565b610bbd611917565b600a544303610bd9578160118190555080601281905550610c3b565b6011548211158015610bed57506012548111155b610c2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c239061377e565b60405180910390fd5b81601181905550806012819055505b5050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f610c6e6118fe565b9050610c7b858285611e2f565b610c86858585611ec1565b60019150509392505050565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60125481565b600960189054906101000a900460ff1681565b5f6012905090565b600960159054906101000a900460ff1681565b60115481565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61dead81565b6014602052805f5260405f205f915054906101000a900460ff1681565b5f81565b6015602052805f5260405f205f915054906101000a900460ff1681565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b600d5481565b610dae611917565b610db75f611fb1565b565b600b5481565b610dc7611917565b8160075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508260085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060058054610ec29061360c565b80601f0160208091040260200160405190810160405280929190818152602001828054610eee9061360c565b8015610f395780601f10610f1057610100808354040283529160200191610f39565b820191905f5260205f20905b815481529060010190602001808311610f1c57829003601f168201915b5050505050905090565b5f5f610f4d6118fe565b9050610f5a818585611ec1565b600191505092915050565b60135481565b610f73611917565b5f5f90505b83839050811015610fc157610fb4848483818110610f9957610f9861363c565b5b9050602002016020810190610fae91906134fb565b83612027565b8080600101915050610f78565b50505050565b610fcf611917565b600960189054906101000a900460ff161561101f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611016906137e6565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611088573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110ac9190613818565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396307f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611131573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111559190613818565b6040518363ffffffff1660e01b8152600401611172929190613843565b6020604051808303815f875af115801561118e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111b29190613818565b60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061121d60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600161207f565b611268307f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff611905565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f305d71947306112af30610d5a565b5f5f6112b9610e8c565b426040518863ffffffff1660e01b81526004016112db969594939291906138a3565b60606040518083038185885af11580156112f7573d5f5f3e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061131c9190613916565b50505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b37f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016113bb929190613966565b6020604051808303815f875af11580156113d7573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113fb91906139a1565b506001600960186101000a81548160ff02191690831515021790555043600a8190555042600b81905550565b6016602052805f5260405f205f915054906101000a900460ff1681565b600e5481565b611452611917565b5f600960146101000a81548160ff0219169083151502179055505f600960156101000a81548160ff021916908315150217905550565b611490611917565b5f600960156101000a81548160ff021916908315150217905550565b6114b4611917565b80600960166101000a81548160ff02191690831515021790555050565b6114d9611917565b5f3390505f5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611606575f4791505f8211611557576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154e90613a16565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168260405161157b90613a61565b5f6040518083038185875af1925050503d805f81146115b5576040519150601f19603f3d011682016040523d82523d5f602084013e6115ba565b606091505b50508091505080611600576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f790613abf565b60405180910390fd5b5061173f565b8273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161163f919061345e565b602060405180830381865afa15801561165a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061167e9190613add565b90505f81116116c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b990613b52565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b81526004016116fd929190613966565b6020604051808303815f875af1158015611719573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061173d91906139a1565b505b505050565b600a5481565b611752611917565b601354811115611797576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178e9061377e565b60405180910390fd5b8060138190555050565b600960149054906101000a900460ff1681565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60105481565b600960169054906101000a900460ff1681565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61187c611917565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036118ec575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016118e3919061345e565b60405180910390fd5b6118f581611fb1565b50565b600f5481565b5f33905090565b61191283838360016120d7565b505050565b61191f6118fe565b73ffffffffffffffffffffffffffffffffffffffff1661193d610e8c565b73ffffffffffffffffffffffffffffffffffffffff161461199c576119606118fe565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401611993919061345e565b60405180910390fd5b565b8060155f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b6001600960176101000a81548160ff0219169083151502179055505f5f600267ffffffffffffffff811115611a2e57611a2d613b70565b5b604051908082528060200260200182016040528015611a5c5781602001602082028036833780820191505090505b50905030815f81518110611a7357611a7261363c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b16573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b3a9190613818565b81600181518110611b4e57611b4d61363c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac947845f8430426040518663ffffffff1660e01b8152600401611be9959493929190613c54565b5f604051808303815f87803b158015611c00575f5ffd5b505af1158015611c12573d5f5f3e3d5ffd5b505050505f4790505f6064602a83611c2a9190613696565b611c349190613704565b90505f6064601e84611c469190613696565b611c509190613704565b90505f6064601c85611c629190613696565b611c6c9190613704565b905060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683604051611cb390613a61565b5f6040518083038185875af1925050503d805f8114611ced576040519150601f19603f3d011682016040523d82523d5f602084013e611cf2565b606091505b50508096505060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051611d3d90613a61565b5f6040518083038185875af1925050503d805f8114611d77576040519150601f19603f3d011682016040523d82523d5f602084013e611d7c565b606091505b50508096505060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681604051611dc790613a61565b5f6040518083038185875af1925050503d805f8114611e01576040519150601f19603f3d011682016040523d82523d5f602084013e611e06565b606091505b5050809650505050505050505f600960176101000a81548160ff02191690831515021790555050565b5f611e3a84846117b4565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611ebb5781811015611eac578281836040517ffb8f41b2000000000000000000000000000000000000000000000000000000008152600401611ea393929190613cac565b60405180910390fd5b611eba84848484035f6120d7565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611f31575f6040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401611f28919061345e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611fa1575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401611f98919061345e565b60405180910390fd5b611fac8383836122a6565b505050565b5f611fba610e8c565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461200457611ff9815f612027565b612003815f61199e565b5b61200f826001612027565b61201a82600161199e565b61202382612def565b5050565b8060145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b8060165f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612147575f6040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161213e919061345e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036121b7575f6040517f94280d620000000000000000000000000000000000000000000000000000000081526004016121ae919061345e565b60405180910390fd5b8160025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555080156122a0578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161229791906133f8565b60405180910390a35b50505050565b5f329050600960189054906101000a900460ff168061230b575060155f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b8061235c575060155f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b61239b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161239290613d2b565b60405180910390fd5b5f600960149054906101000a900460ff1680156123c55750600960179054906101000a900460ff16155b8015612469575060155f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612467575060155f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b155b90508015612a6157612479610e8c565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141580156124e757506124b7610e8c565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561251f57505f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015612559575061dead73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15612a6057600960159054906101000a900460ff1615612786577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561261c575060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156127855760034361262e9190613d49565b60175f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541080156126c157506003436126819190613d49565b60175f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054105b612700576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126f790613dc6565b60405180910390fd5b4360175f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055504360175f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60165f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612823575060155f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156128ca57600d5483111561286d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161286490613e2e565b60405180910390fd5b600f5461287985610d5a565b846128849190613e4c565b11156128c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128bc90613ec9565b60405180910390fd5b612a5f565b60165f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612967575060155f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156129b657600e548311156129b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129a890613f31565b60405180910390fd5b612a5e565b60155f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16612a5d57600f54612a1085610d5a565b84612a1b9190613e4c565b1115612a5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a5390613ec9565b60405180910390fd5b5b5b5b5b5b5f600960169054906101000a900460ff168015612a8b5750600960179054906101000a900460ff16155b8015612b2f575060145f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612b2d575060145f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b155b90508015612d28575f5f905060165f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612b9257505f601254115b15612bb857606460125486612ba79190613696565b612bb19190613704565b9050612d04565b60165f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612c0f57505f601154115b15612c3557606460115486612c249190613696565b612c2e9190613704565b9050612d03565b60165f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015612cd3575060165f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612ce057505f601354115b15612d0257606460135486612cf59190613696565b612cff9190613704565b90505b5b5b5f811115612d26578085612d189190613d49565b9450612d25873083612eb0565b5b505b5f612d3230610d5a565b90505f60105482101590505f6014601054612d4d9190613696565b9050838015612da3575060165f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612dac5750815b15612dd957600c54431115612dd85780831115612dc7578092505b612dd0836119f6565b43600c819055505b5b612de4898989612eb0565b505050505050505050565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612f00578060035f828254612ef49190613e4c565b92505081905550612fd0565b5f60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015612f8a578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401612f8193929190613cac565b60405180910390fd5b81810360015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603613017578060035f8282540392505081905550613062565b8060015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516130bf91906133f8565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61310e826130cc565b61311881856130d6565b93506131288185602086016130e6565b613131816130f4565b840191505092915050565b5f6020820190508181035f8301526131548184613104565b905092915050565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61318d82613164565b9050919050565b61319d81613183565b81146131a7575f5ffd5b50565b5f813590506131b881613194565b92915050565b5f819050919050565b6131d0816131be565b81146131da575f5ffd5b50565b5f813590506131eb816131c7565b92915050565b5f5f604083850312156132075761320661315c565b5b5f613214858286016131aa565b9250506020613225858286016131dd565b9150509250929050565b5f8115159050919050565b6132438161322f565b82525050565b5f60208201905061325c5f83018461323a565b92915050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f84011261328357613282613262565b5b8235905067ffffffffffffffff8111156132a05761329f613266565b5b6020830191508360208202830111156132bc576132bb61326a565b5b9250929050565b6132cc8161322f565b81146132d6575f5ffd5b50565b5f813590506132e7816132c3565b92915050565b5f5f5f604084860312156133045761330361315c565b5b5f84013567ffffffffffffffff81111561332157613320613160565b5b61332d8682870161326e565b93509350506020613340868287016132d9565b9150509250925092565b5f6020828403121561335f5761335e61315c565b5b5f61336c848285016131dd565b91505092915050565b5f819050919050565b5f61339861339361338e84613164565b613375565b613164565b9050919050565b5f6133a98261337e565b9050919050565b5f6133ba8261339f565b9050919050565b6133ca816133b0565b82525050565b5f6020820190506133e35f8301846133c1565b92915050565b6133f2816131be565b82525050565b5f60208201905061340b5f8301846133e9565b92915050565b5f5f604083850312156134275761342661315c565b5b5f613434858286016131dd565b9250506020613445858286016131dd565b9150509250929050565b61345881613183565b82525050565b5f6020820190506134715f83018461344f565b92915050565b5f5f5f6060848603121561348e5761348d61315c565b5b5f61349b868287016131aa565b93505060206134ac868287016131aa565b92505060406134bd868287016131dd565b9150509250925092565b5f60ff82169050919050565b6134dc816134c7565b82525050565b5f6020820190506134f55f8301846134d3565b92915050565b5f602082840312156135105761350f61315c565b5b5f61351d848285016131aa565b91505092915050565b5f5f5f6060848603121561353d5761353c61315c565b5b5f61354a868287016131aa565b935050602061355b868287016131aa565b925050604061356c868287016131aa565b9150509250925092565b5f6020828403121561358b5761358a61315c565b5b5f613598848285016132d9565b91505092915050565b5f5f604083850312156135b7576135b661315c565b5b5f6135c4858286016131aa565b92505060206135d5858286016131aa565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061362357607f821691505b602082108103613636576136356135df565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6136a0826131be565b91506136ab836131be565b92508282026136b9816131be565b915082820484148315176136d0576136cf613669565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61370e826131be565b9150613719836131be565b925082613729576137286136d7565b5b828204905092915050565b7f466565546f6f48696768282900000000000000000000000000000000000000005f82015250565b5f613768600c836130d6565b915061377382613734565b602082019050919050565b5f6020820190508181035f8301526137958161375c565b9050919050565b7f416c72656164794c61756e6368656428290000000000000000000000000000005f82015250565b5f6137d06011836130d6565b91506137db8261379c565b602082019050919050565b5f6020820190508181035f8301526137fd816137c4565b9050919050565b5f8151905061381281613194565b92915050565b5f6020828403121561382d5761382c61315c565b5b5f61383a84828501613804565b91505092915050565b5f6040820190506138565f83018561344f565b613863602083018461344f565b9392505050565b5f819050919050565b5f61388d6138886138838461386a565b613375565b6131be565b9050919050565b61389d81613873565b82525050565b5f60c0820190506138b65f83018961344f565b6138c360208301886133e9565b6138d06040830187613894565b6138dd6060830186613894565b6138ea608083018561344f565b6138f760a08301846133e9565b979650505050505050565b5f81519050613910816131c7565b92915050565b5f5f5f6060848603121561392d5761392c61315c565b5b5f61393a86828701613902565b935050602061394b86828701613902565b925050604061395c86828701613902565b9150509250925092565b5f6040820190506139795f83018561344f565b61398660208301846133e9565b9392505050565b5f8151905061399b816132c3565b92915050565b5f602082840312156139b6576139b561315c565b5b5f6139c38482850161398d565b91505092915050565b7f4e6f4e6174697665546f6b656e732829000000000000000000000000000000005f82015250565b5f613a006010836130d6565b9150613a0b826139cc565b602082019050919050565b5f6020820190508181035f830152613a2d816139f4565b9050919050565b5f81905092915050565b50565b5f613a4c5f83613a34565b9150613a5782613a3e565b5f82019050919050565b5f613a6b82613a41565b9150819050919050565b7f4661696c6564546f57697468647261774e6174697665546f6b656e73282900005f82015250565b5f613aa9601e836130d6565b9150613ab482613a75565b602082019050919050565b5f6020820190508181035f830152613ad681613a9d565b9050919050565b5f60208284031215613af257613af161315c565b5b5f613aff84828501613902565b91505092915050565b7f4e6f546f6b656e732829000000000000000000000000000000000000000000005f82015250565b5f613b3c600a836130d6565b9150613b4782613b08565b602082019050919050565b5f6020820190508181035f830152613b6981613b30565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613bcf81613183565b82525050565b5f613be08383613bc6565b60208301905092915050565b5f602082019050919050565b5f613c0282613b9d565b613c0c8185613ba7565b9350613c1783613bb7565b805f5b83811015613c47578151613c2e8882613bd5565b9750613c3983613bec565b925050600181019050613c1a565b5085935050505092915050565b5f60a082019050613c675f8301886133e9565b613c746020830187613894565b8181036040830152613c868186613bf8565b9050613c95606083018561344f565b613ca260808301846133e9565b9695505050505050565b5f606082019050613cbf5f83018661344f565b613ccc60208301856133e9565b613cd960408301846133e9565b949350505050565b7f4e6f744c61756e636865642829000000000000000000000000000000000000005f82015250565b5f613d15600d836130d6565b9150613d2082613ce1565b602082019050919050565b5f6020820190508181035f830152613d4281613d09565b9050919050565b5f613d53826131be565b9150613d5e836131be565b9250828203905081811115613d7657613d75613669565b5b92915050565b7f5472616e7366657244656c6179282900000000000000000000000000000000005f82015250565b5f613db0600f836130d6565b9150613dbb82613d7c565b602082019050919050565b5f6020820190508181035f830152613ddd81613da4565b9050919050565b7f4d6178427579416d6f756e7445786365656428290000000000000000000000005f82015250565b5f613e186014836130d6565b9150613e2382613de4565b602082019050919050565b5f6020820190508181035f830152613e4581613e0c565b9050919050565b5f613e56826131be565b9150613e61836131be565b9250828201905080821115613e7957613e78613669565b5b92915050565b7f4d617857616c6c6574416d6f756e7445786365656428290000000000000000005f82015250565b5f613eb36017836130d6565b9150613ebe82613e7f565b602082019050919050565b5f6020820190508181035f830152613ee081613ea7565b9050919050565b7f4d617853656c6c416d6f756e74457863656564282900000000000000000000005f82015250565b5f613f1b6015836130d6565b9150613f2682613ee7565b602082019050919050565b5f6020820190508181035f830152613f4881613f0f565b905091905056fea26469706673582212200596c3a6ce5d41c3da63134f37086ecc0466f15a500bad5e19bfef867ec309f464736f6c634300081b0033000000000000000000000000fef61bfd07a1771f2eebcf9782b183a736469493

Deployed Bytecode

0x608060405260043610610280575f3560e01c8063790ca4131161014e578063bd7bc442116100c0578063dd62ed3e11610079578063dd62ed3e14610931578063e2f456051461096d578063e6c1909b14610997578063e9de1a46146109c1578063f2fde38b146109eb578063f8b45b0514610a1357610281565b8063bd7bc4421461084f578063cb7bcd2414610865578063cb9637281461088d578063d00efb2f146108b5578063d107439b146108df578063d5759ba31461090757610281565b8063acb2ad6f11610112578063acb2ad6f1461076b578063ad29ffde14610795578063b2c5fa5f146107bd578063b62496f5146107d3578063b8eb35461461080f578063ba2647141461083957610281565b8063790ca413146106895780637f7906dc146106b35780638da5cb5b146106db57806395d89b4114610705578063a9059cbb1461072f57610281565b8063307aebc9116101f25780634fbee193116101ab5780634fbee1931461056b578063538ba4f9146105a75780635cce86cd146105d157806370a082311461060d57806370db69d614610649578063715018a61461067357610281565b8063307aebc91461046f578063313ce567146104995780633da2bf2d146104c357806347062402146104ed57806349bd5a5e146105175780634e6fd6c41461054157610281565b806318160ddd1161024457806318160ddd1461036357806322a626a31461038d578063230c50fc146103b557806323b872dd146103df5780632ab58fa51461041b5780632b14ca561461044557610281565b806306fdde0314610283578063095ea7b3146102ad578063106a5a8f146102e9578063109ebf37146103115780631694505e1461033957610281565b5b005b34801561028e575f5ffd5b50610297610a3d565b6040516102a4919061313c565b60405180910390f35b3480156102b8575f5ffd5b506102d360048036038101906102ce91906131f1565b610acd565b6040516102e09190613249565b60405180910390f35b3480156102f4575f5ffd5b5061030f600480360381019061030a91906132ed565b610aef565b005b34801561031c575f5ffd5b506103376004803603810190610332919061334a565b610b4b565b005b348015610344575f5ffd5b5061034d610b88565b60405161035a91906133d0565b60405180910390f35b34801561036e575f5ffd5b50610377610bac565b60405161038491906133f8565b60405180910390f35b348015610398575f5ffd5b506103b360048036038101906103ae9190613411565b610bb5565b005b3480156103c0575f5ffd5b506103c9610c3f565b6040516103d6919061345e565b60405180910390f35b3480156103ea575f5ffd5b5061040560048036038101906104009190613477565b610c64565b6040516104129190613249565b60405180910390f35b348015610426575f5ffd5b5061042f610c92565b60405161043c919061345e565b60405180910390f35b348015610450575f5ffd5b50610459610cb7565b60405161046691906133f8565b60405180910390f35b34801561047a575f5ffd5b50610483610cbd565b6040516104909190613249565b60405180910390f35b3480156104a4575f5ffd5b506104ad610cd0565b6040516104ba91906134e2565b60405180910390f35b3480156104ce575f5ffd5b506104d7610cd8565b6040516104e49190613249565b60405180910390f35b3480156104f8575f5ffd5b50610501610ceb565b60405161050e91906133f8565b60405180910390f35b348015610522575f5ffd5b5061052b610cf1565b604051610538919061345e565b60405180910390f35b34801561054c575f5ffd5b50610555610d16565b604051610562919061345e565b60405180910390f35b348015610576575f5ffd5b50610591600480360381019061058c91906134fb565b610d1c565b60405161059e9190613249565b60405180910390f35b3480156105b2575f5ffd5b506105bb610d39565b6040516105c8919061345e565b60405180910390f35b3480156105dc575f5ffd5b506105f760048036038101906105f291906134fb565b610d3d565b6040516106049190613249565b60405180910390f35b348015610618575f5ffd5b50610633600480360381019061062e91906134fb565b610d5a565b60405161064091906133f8565b60405180910390f35b348015610654575f5ffd5b5061065d610da0565b60405161066a91906133f8565b60405180910390f35b34801561067e575f5ffd5b50610687610da6565b005b348015610694575f5ffd5b5061069d610db9565b6040516106aa91906133f8565b60405180910390f35b3480156106be575f5ffd5b506106d960048036038101906106d49190613526565b610dbf565b005b3480156106e6575f5ffd5b506106ef610e8c565b6040516106fc919061345e565b60405180910390f35b348015610710575f5ffd5b50610719610eb3565b604051610726919061313c565b60405180910390f35b34801561073a575f5ffd5b50610755600480360381019061075091906131f1565b610f43565b6040516107629190613249565b60405180910390f35b348015610776575f5ffd5b5061077f610f65565b60405161078c91906133f8565b60405180910390f35b3480156107a0575f5ffd5b506107bb60048036038101906107b691906132ed565b610f6b565b005b3480156107c8575f5ffd5b506107d1610fc7565b005b3480156107de575f5ffd5b506107f960048036038101906107f491906134fb565b611427565b6040516108069190613249565b60405180910390f35b34801561081a575f5ffd5b50610823611444565b60405161083091906133f8565b60405180910390f35b348015610844575f5ffd5b5061084d61144a565b005b34801561085a575f5ffd5b50610863611488565b005b348015610870575f5ffd5b5061088b60048036038101906108869190613576565b6114ac565b005b348015610898575f5ffd5b506108b360048036038101906108ae91906134fb565b6114d1565b005b3480156108c0575f5ffd5b506108c9611744565b6040516108d691906133f8565b60405180910390f35b3480156108ea575f5ffd5b506109056004803603810190610900919061334a565b61174a565b005b348015610912575f5ffd5b5061091b6117a1565b6040516109289190613249565b60405180910390f35b34801561093c575f5ffd5b50610957600480360381019061095291906135a1565b6117b4565b60405161096491906133f8565b60405180910390f35b348015610978575f5ffd5b50610981611836565b60405161098e91906133f8565b60405180910390f35b3480156109a2575f5ffd5b506109ab61183c565b6040516109b89190613249565b60405180910390f35b3480156109cc575f5ffd5b506109d561184f565b6040516109e2919061345e565b60405180910390f35b3480156109f6575f5ffd5b50610a116004803603810190610a0c91906134fb565b611874565b005b348015610a1e575f5ffd5b50610a276118f8565b604051610a3491906133f8565b60405180910390f35b606060048054610a4c9061360c565b80601f0160208091040260200160405190810160405280929190818152602001828054610a789061360c565b8015610ac35780601f10610a9a57610100808354040283529160200191610ac3565b820191905f5260205f20905b815481529060010190602001808311610aa657829003601f168201915b5050505050905090565b5f5f610ad76118fe565b9050610ae4818585611905565b600191505092915050565b610af7611917565b5f5f90505b83839050811015610b4557610b38848483818110610b1d57610b1c61363c565b5b9050602002016020810190610b3291906134fb565b8361199e565b8080600101915050610afc565b50505050565b610b53611917565b5f610b5d30610d5a565b90505f60648383610b6e9190613696565b610b789190613704565b9050610b83816119f6565b505050565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b5f600354905090565b610bbd611917565b600a544303610bd9578160118190555080601281905550610c3b565b6011548211158015610bed57506012548111155b610c2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c239061377e565b60405180910390fd5b81601181905550806012819055505b5050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f610c6e6118fe565b9050610c7b858285611e2f565b610c86858585611ec1565b60019150509392505050565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60125481565b600960189054906101000a900460ff1681565b5f6012905090565b600960159054906101000a900460ff1681565b60115481565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61dead81565b6014602052805f5260405f205f915054906101000a900460ff1681565b5f81565b6015602052805f5260405f205f915054906101000a900460ff1681565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b600d5481565b610dae611917565b610db75f611fb1565b565b600b5481565b610dc7611917565b8160075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508260085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060058054610ec29061360c565b80601f0160208091040260200160405190810160405280929190818152602001828054610eee9061360c565b8015610f395780601f10610f1057610100808354040283529160200191610f39565b820191905f5260205f20905b815481529060010190602001808311610f1c57829003601f168201915b5050505050905090565b5f5f610f4d6118fe565b9050610f5a818585611ec1565b600191505092915050565b60135481565b610f73611917565b5f5f90505b83839050811015610fc157610fb4848483818110610f9957610f9861363c565b5b9050602002016020810190610fae91906134fb565b83612027565b8080600101915050610f78565b50505050565b610fcf611917565b600960189054906101000a900460ff161561101f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611016906137e6565b60405180910390fd5b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611088573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110ac9190613818565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611131573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111559190613818565b6040518363ffffffff1660e01b8152600401611172929190613843565b6020604051808303815f875af115801561118e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111b29190613818565b60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061121d60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600161207f565b611268307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff611905565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d71947306112af30610d5a565b5f5f6112b9610e8c565b426040518863ffffffff1660e01b81526004016112db969594939291906138a3565b60606040518083038185885af11580156112f7573d5f5f3e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061131c9190613916565b50505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b37f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016113bb929190613966565b6020604051808303815f875af11580156113d7573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113fb91906139a1565b506001600960186101000a81548160ff02191690831515021790555043600a8190555042600b81905550565b6016602052805f5260405f205f915054906101000a900460ff1681565b600e5481565b611452611917565b5f600960146101000a81548160ff0219169083151502179055505f600960156101000a81548160ff021916908315150217905550565b611490611917565b5f600960156101000a81548160ff021916908315150217905550565b6114b4611917565b80600960166101000a81548160ff02191690831515021790555050565b6114d9611917565b5f3390505f5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611606575f4791505f8211611557576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154e90613a16565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168260405161157b90613a61565b5f6040518083038185875af1925050503d805f81146115b5576040519150601f19603f3d011682016040523d82523d5f602084013e6115ba565b606091505b50508091505080611600576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f790613abf565b60405180910390fd5b5061173f565b8273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161163f919061345e565b602060405180830381865afa15801561165a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061167e9190613add565b90505f81116116c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b990613b52565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b81526004016116fd929190613966565b6020604051808303815f875af1158015611719573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061173d91906139a1565b505b505050565b600a5481565b611752611917565b601354811115611797576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178e9061377e565b60405180910390fd5b8060138190555050565b600960149054906101000a900460ff1681565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60105481565b600960169054906101000a900460ff1681565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61187c611917565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036118ec575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016118e3919061345e565b60405180910390fd5b6118f581611fb1565b50565b600f5481565b5f33905090565b61191283838360016120d7565b505050565b61191f6118fe565b73ffffffffffffffffffffffffffffffffffffffff1661193d610e8c565b73ffffffffffffffffffffffffffffffffffffffff161461199c576119606118fe565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401611993919061345e565b60405180910390fd5b565b8060155f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b6001600960176101000a81548160ff0219169083151502179055505f5f600267ffffffffffffffff811115611a2e57611a2d613b70565b5b604051908082528060200260200182016040528015611a5c5781602001602082028036833780820191505090505b50905030815f81518110611a7357611a7261363c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b16573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b3a9190613818565b81600181518110611b4e57611b4d61363c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947845f8430426040518663ffffffff1660e01b8152600401611be9959493929190613c54565b5f604051808303815f87803b158015611c00575f5ffd5b505af1158015611c12573d5f5f3e3d5ffd5b505050505f4790505f6064602a83611c2a9190613696565b611c349190613704565b90505f6064601e84611c469190613696565b611c509190613704565b90505f6064601c85611c629190613696565b611c6c9190613704565b905060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683604051611cb390613a61565b5f6040518083038185875af1925050503d805f8114611ced576040519150601f19603f3d011682016040523d82523d5f602084013e611cf2565b606091505b50508096505060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051611d3d90613a61565b5f6040518083038185875af1925050503d805f8114611d77576040519150601f19603f3d011682016040523d82523d5f602084013e611d7c565b606091505b50508096505060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681604051611dc790613a61565b5f6040518083038185875af1925050503d805f8114611e01576040519150601f19603f3d011682016040523d82523d5f602084013e611e06565b606091505b5050809650505050505050505f600960176101000a81548160ff02191690831515021790555050565b5f611e3a84846117b4565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611ebb5781811015611eac578281836040517ffb8f41b2000000000000000000000000000000000000000000000000000000008152600401611ea393929190613cac565b60405180910390fd5b611eba84848484035f6120d7565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611f31575f6040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401611f28919061345e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611fa1575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401611f98919061345e565b60405180910390fd5b611fac8383836122a6565b505050565b5f611fba610e8c565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461200457611ff9815f612027565b612003815f61199e565b5b61200f826001612027565b61201a82600161199e565b61202382612def565b5050565b8060145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b8060165f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612147575f6040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161213e919061345e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036121b7575f6040517f94280d620000000000000000000000000000000000000000000000000000000081526004016121ae919061345e565b60405180910390fd5b8160025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555080156122a0578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161229791906133f8565b60405180910390a35b50505050565b5f329050600960189054906101000a900460ff168061230b575060155f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b8061235c575060155f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b61239b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161239290613d2b565b60405180910390fd5b5f600960149054906101000a900460ff1680156123c55750600960179054906101000a900460ff16155b8015612469575060155f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612467575060155f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b155b90508015612a6157612479610e8c565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141580156124e757506124b7610e8c565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561251f57505f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015612559575061dead73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15612a6057600960159054906101000a900460ff1615612786577f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561261c575060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156127855760034361262e9190613d49565b60175f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541080156126c157506003436126819190613d49565b60175f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054105b612700576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126f790613dc6565b60405180910390fd5b4360175f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055504360175f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60165f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612823575060155f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156128ca57600d5483111561286d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161286490613e2e565b60405180910390fd5b600f5461287985610d5a565b846128849190613e4c565b11156128c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128bc90613ec9565b60405180910390fd5b612a5f565b60165f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612967575060155f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156129b657600e548311156129b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129a890613f31565b60405180910390fd5b612a5e565b60155f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16612a5d57600f54612a1085610d5a565b84612a1b9190613e4c565b1115612a5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a5390613ec9565b60405180910390fd5b5b5b5b5b5b5f600960169054906101000a900460ff168015612a8b5750600960179054906101000a900460ff16155b8015612b2f575060145f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612b2d575060145f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b155b90508015612d28575f5f905060165f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612b9257505f601254115b15612bb857606460125486612ba79190613696565b612bb19190613704565b9050612d04565b60165f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612c0f57505f601154115b15612c3557606460115486612c249190613696565b612c2e9190613704565b9050612d03565b60165f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015612cd3575060165f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612ce057505f601354115b15612d0257606460135486612cf59190613696565b612cff9190613704565b90505b5b5b5f811115612d26578085612d189190613d49565b9450612d25873083612eb0565b5b505b5f612d3230610d5a565b90505f60105482101590505f6014601054612d4d9190613696565b9050838015612da3575060165f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612dac5750815b15612dd957600c54431115612dd85780831115612dc7578092505b612dd0836119f6565b43600c819055505b5b612de4898989612eb0565b505050505050505050565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612f00578060035f828254612ef49190613e4c565b92505081905550612fd0565b5f60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015612f8a578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401612f8193929190613cac565b60405180910390fd5b81810360015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603613017578060035f8282540392505081905550613062565b8060015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516130bf91906133f8565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61310e826130cc565b61311881856130d6565b93506131288185602086016130e6565b613131816130f4565b840191505092915050565b5f6020820190508181035f8301526131548184613104565b905092915050565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61318d82613164565b9050919050565b61319d81613183565b81146131a7575f5ffd5b50565b5f813590506131b881613194565b92915050565b5f819050919050565b6131d0816131be565b81146131da575f5ffd5b50565b5f813590506131eb816131c7565b92915050565b5f5f604083850312156132075761320661315c565b5b5f613214858286016131aa565b9250506020613225858286016131dd565b9150509250929050565b5f8115159050919050565b6132438161322f565b82525050565b5f60208201905061325c5f83018461323a565b92915050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f84011261328357613282613262565b5b8235905067ffffffffffffffff8111156132a05761329f613266565b5b6020830191508360208202830111156132bc576132bb61326a565b5b9250929050565b6132cc8161322f565b81146132d6575f5ffd5b50565b5f813590506132e7816132c3565b92915050565b5f5f5f604084860312156133045761330361315c565b5b5f84013567ffffffffffffffff81111561332157613320613160565b5b61332d8682870161326e565b93509350506020613340868287016132d9565b9150509250925092565b5f6020828403121561335f5761335e61315c565b5b5f61336c848285016131dd565b91505092915050565b5f819050919050565b5f61339861339361338e84613164565b613375565b613164565b9050919050565b5f6133a98261337e565b9050919050565b5f6133ba8261339f565b9050919050565b6133ca816133b0565b82525050565b5f6020820190506133e35f8301846133c1565b92915050565b6133f2816131be565b82525050565b5f60208201905061340b5f8301846133e9565b92915050565b5f5f604083850312156134275761342661315c565b5b5f613434858286016131dd565b9250506020613445858286016131dd565b9150509250929050565b61345881613183565b82525050565b5f6020820190506134715f83018461344f565b92915050565b5f5f5f6060848603121561348e5761348d61315c565b5b5f61349b868287016131aa565b93505060206134ac868287016131aa565b92505060406134bd868287016131dd565b9150509250925092565b5f60ff82169050919050565b6134dc816134c7565b82525050565b5f6020820190506134f55f8301846134d3565b92915050565b5f602082840312156135105761350f61315c565b5b5f61351d848285016131aa565b91505092915050565b5f5f5f6060848603121561353d5761353c61315c565b5b5f61354a868287016131aa565b935050602061355b868287016131aa565b925050604061356c868287016131aa565b9150509250925092565b5f6020828403121561358b5761358a61315c565b5b5f613598848285016132d9565b91505092915050565b5f5f604083850312156135b7576135b661315c565b5b5f6135c4858286016131aa565b92505060206135d5858286016131aa565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061362357607f821691505b602082108103613636576136356135df565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6136a0826131be565b91506136ab836131be565b92508282026136b9816131be565b915082820484148315176136d0576136cf613669565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61370e826131be565b9150613719836131be565b925082613729576137286136d7565b5b828204905092915050565b7f466565546f6f48696768282900000000000000000000000000000000000000005f82015250565b5f613768600c836130d6565b915061377382613734565b602082019050919050565b5f6020820190508181035f8301526137958161375c565b9050919050565b7f416c72656164794c61756e6368656428290000000000000000000000000000005f82015250565b5f6137d06011836130d6565b91506137db8261379c565b602082019050919050565b5f6020820190508181035f8301526137fd816137c4565b9050919050565b5f8151905061381281613194565b92915050565b5f6020828403121561382d5761382c61315c565b5b5f61383a84828501613804565b91505092915050565b5f6040820190506138565f83018561344f565b613863602083018461344f565b9392505050565b5f819050919050565b5f61388d6138886138838461386a565b613375565b6131be565b9050919050565b61389d81613873565b82525050565b5f60c0820190506138b65f83018961344f565b6138c360208301886133e9565b6138d06040830187613894565b6138dd6060830186613894565b6138ea608083018561344f565b6138f760a08301846133e9565b979650505050505050565b5f81519050613910816131c7565b92915050565b5f5f5f6060848603121561392d5761392c61315c565b5b5f61393a86828701613902565b935050602061394b86828701613902565b925050604061395c86828701613902565b9150509250925092565b5f6040820190506139795f83018561344f565b61398660208301846133e9565b9392505050565b5f8151905061399b816132c3565b92915050565b5f602082840312156139b6576139b561315c565b5b5f6139c38482850161398d565b91505092915050565b7f4e6f4e6174697665546f6b656e732829000000000000000000000000000000005f82015250565b5f613a006010836130d6565b9150613a0b826139cc565b602082019050919050565b5f6020820190508181035f830152613a2d816139f4565b9050919050565b5f81905092915050565b50565b5f613a4c5f83613a34565b9150613a5782613a3e565b5f82019050919050565b5f613a6b82613a41565b9150819050919050565b7f4661696c6564546f57697468647261774e6174697665546f6b656e73282900005f82015250565b5f613aa9601e836130d6565b9150613ab482613a75565b602082019050919050565b5f6020820190508181035f830152613ad681613a9d565b9050919050565b5f60208284031215613af257613af161315c565b5b5f613aff84828501613902565b91505092915050565b7f4e6f546f6b656e732829000000000000000000000000000000000000000000005f82015250565b5f613b3c600a836130d6565b9150613b4782613b08565b602082019050919050565b5f6020820190508181035f830152613b6981613b30565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613bcf81613183565b82525050565b5f613be08383613bc6565b60208301905092915050565b5f602082019050919050565b5f613c0282613b9d565b613c0c8185613ba7565b9350613c1783613bb7565b805f5b83811015613c47578151613c2e8882613bd5565b9750613c3983613bec565b925050600181019050613c1a565b5085935050505092915050565b5f60a082019050613c675f8301886133e9565b613c746020830187613894565b8181036040830152613c868186613bf8565b9050613c95606083018561344f565b613ca260808301846133e9565b9695505050505050565b5f606082019050613cbf5f83018661344f565b613ccc60208301856133e9565b613cd960408301846133e9565b949350505050565b7f4e6f744c61756e636865642829000000000000000000000000000000000000005f82015250565b5f613d15600d836130d6565b9150613d2082613ce1565b602082019050919050565b5f6020820190508181035f830152613d4281613d09565b9050919050565b5f613d53826131be565b9150613d5e836131be565b9250828203905081811115613d7657613d75613669565b5b92915050565b7f5472616e7366657244656c6179282900000000000000000000000000000000005f82015250565b5f613db0600f836130d6565b9150613dbb82613d7c565b602082019050919050565b5f6020820190508181035f830152613ddd81613da4565b9050919050565b7f4d6178427579416d6f756e7445786365656428290000000000000000000000005f82015250565b5f613e186014836130d6565b9150613e2382613de4565b602082019050919050565b5f6020820190508181035f830152613e4581613e0c565b9050919050565b5f613e56826131be565b9150613e61836131be565b9250828201905080821115613e7957613e78613669565b5b92915050565b7f4d617857616c6c6574416d6f756e7445786365656428290000000000000000005f82015250565b5f613eb36017836130d6565b9150613ebe82613e7f565b602082019050919050565b5f6020820190508181035f830152613ee081613ea7565b9050919050565b7f4d617853656c6c416d6f756e74457863656564282900000000000000000000005f82015250565b5f613f1b6015836130d6565b9150613f2682613ee7565b602082019050919050565b5f6020820190508181035f830152613f4881613f0f565b905091905056fea26469706673582212200596c3a6ce5d41c3da63134f37086ecc0466f15a500bad5e19bfef867ec309f464736f6c634300081b0033

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

000000000000000000000000fef61bfd07a1771f2eebcf9782b183a736469493

-----Decoded View---------------
Arg [0] : strategic (address): 0xFef61Bfd07A1771F2eeBCf9782b183A736469493

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000fef61bfd07a1771f2eebcf9782b183a736469493


Deployed Bytecode Sourcemap

8902:11160:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4627:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5535:222;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13228:239;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18902:188;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8947:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4921:99;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19098:340;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9161:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5765:283;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9233:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9698:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9391;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4829:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9302:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9670;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9124:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9061:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9762:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9005:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9819:52;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5028:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9540:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2870:103;;;;;;;;;;;;;:::i;:::-;;9455:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19631:258;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2601:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4726:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5154:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9727:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12985:235;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11931:728;;;;;;;;;;;;;:::i;:::-;;9878:57;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9568:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12667:116;;;;;;;;;;;;;:::i;:::-;;12791:81;;;;;;;;;;;;;:::i;:::-;;12886:91;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13747:631;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9422:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19446:177;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9268:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5344:183;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9630:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9330:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9195:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2981:220;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9597:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4627:91;4672:13;4705:5;4698:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4627:91;:::o;5535:222::-;5635:4;5657:13;5673:12;:10;:12::i;:::-;5657:28;;5696:31;5705:5;5712:7;5721:5;5696:8;:31::i;:::-;5745:4;5738:11;;;5535:222;;;;:::o;13228:239::-;2560:13;:11;:13::i;:::-;13354:9:::1;13366:1;13354:13;;13349:111;13373:8;;:15;;13369:1;:19;13349:111;;;13410:38;13429:8;;13438:1;13429:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;13442:5;13410:18;:38::i;:::-;13390:3;;;;;;;13349:111;;;;13228:239:::0;;;:::o;18902:188::-;2560:13;:11;:13::i;:::-;18967:15:::1;18985:24;19003:4;18985:9;:24::i;:::-;18967:42;;19020:11;19054:3;19045:7;19035;:17;;;;:::i;:::-;19034:23;;;;:::i;:::-;19020:37;;19068:14;19078:3;19068:9;:14::i;:::-;18956:134;;18902:188:::0;:::o;8947:49::-;;;:::o;4921:99::-;4973:7;5000:12;;4993:19;;4921:99;:::o;19098:340::-;2560:13;:11;:13::i;:::-;19203:11:::1;;19187:12;:27:::0;19183:254:::1;;19239:7;19230:6;:16;;;;19271:8;19261:7;:18;;;;19183:254;;;19327:6;;19316:7;:17;;:40;;;;;19349:7;;19337:8;:19;;19316:40;19308:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;19393:7;19384:6;:16;;;;19421:8;19411:7;:18;;;;19183:254;19098:340:::0;;:::o;9161:27::-;;;;;;;;;;;;;:::o;5765:283::-;5886:4;5903:15;5921:12;:10;:12::i;:::-;5903:30;;5944:37;5960:4;5966:7;5975:5;5944:15;:37::i;:::-;5992:26;6002:4;6008:2;6012:5;5992:9;:26::i;:::-;6036:4;6029:11;;;5765:283;;;;;:::o;9233:26::-;;;;;;;;;;;;;:::o;9698:22::-;;;;:::o;9391:::-;;;;;;;;;;;;;:::o;4829:84::-;4878:5;4903:2;4896:9;;4829:84;:::o;9302:21::-;;;;;;;;;;;;;:::o;9670:::-;;;;:::o;9124:28::-;;;;;;;;;;;;;:::o;9061:54::-;9108:6;9061:54;:::o;9762:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;9005:49::-;9052:1;9005:49;:::o;9819:52::-;;;;;;;;;;;;;;;;;;;;;;:::o;5028:118::-;5093:7;5120:9;:18;5130:7;5120:18;;;;;;;;;;;;;;;;5113:25;;5028:118;;;:::o;9540:21::-;;;;:::o;2870:103::-;2560:13;:11;:13::i;:::-;2935:30:::1;2962:1;2935:18;:30::i;:::-;2870:103::o:0;9455:25::-;;;;:::o;19631:258::-;2560:13;:11;:13::i;:::-;19774:14:::1;19759:12;;:29;;;;;;;;;;;;;;;;;;19818:16;19799;;:35;;;;;;;;;;;;;;;;;;19859:12;19845:11;;:26;;;;;;;;;;;;;;;;;;19631:258:::0;;;:::o;2601:87::-;2647:7;2674:6;;;;;;;;;;;2667:13;;2601:87;:::o;4726:95::-;4773:13;4806:7;4799:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4726:95;:::o;5154:182::-;5223:4;5240:13;5256:12;:10;:12::i;:::-;5240:28;;5279:27;5289:5;5296:2;5300:5;5279:9;:27::i;:::-;5324:4;5317:11;;;5154:182;;;;:::o;9727:26::-;;;;:::o;12985:235::-;2560:13;:11;:13::i;:::-;13109:9:::1;13121:1;13109:13;;13104:109;13128:8;;:15;;13124:1;:19;13104:109;;;13165:36;13182:8;;13191:1;13182:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;13195:5;13165:16;:36::i;:::-;13145:3;;;;;;;13104:109;;;;12985:235:::0;;;:::o;11931:728::-;2560:13;:11;:13::i;:::-;11992:10:::1;;;;;;;;;;;11991:11;11983:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;12071:15;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12053:55;;;12131:4;12151:15;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12053:131;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12037:13;;:147;;;;;;;;;;;;;;;;;;12197:49;12226:13;;;;;;;;;;;12241:4;12197:28;:49::i;:::-;12257:68;12274:4;12289:15;12307:17;12257:8;:68::i;:::-;12336:15;:31;;;12375:21;12406:4;12412:24;12430:4;12412:9;:24::i;:::-;12437:1;12439;12441:7;:5;:7::i;:::-;12449:15;12336:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12483:13;;;;;;;;;;;12476:29;;;12514:15;12532:14;12476:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12571:4;12558:10;;:17;;;;;;;;;;;;;;;;;;12600:12;12586:11;:26;;;;12636:15;12623:10;:28;;;;11931:728::o:0;9878:57::-;;;;;;;;;;;;;;;;;;;;;;:::o;9568:22::-;;;;:::o;12667:116::-;2560:13;:11;:13::i;:::-;12742:5:::1;12724:15;;:23;;;;;;;;;;;;;;;;;;12770:5;12758:9;;:17;;;;;;;;;;;;;;;;;;12667:116::o:0;12791:81::-;2560:13;:11;:13::i;:::-;12859:5:::1;12847:9;;:17;;;;;;;;;;;;;;;;;;12791:81::o:0;12886:91::-;2560:13;:11;:13::i;:::-;12964:5:::1;12949:12;;:20;;;;;;;;;;;;;;;;;;12886:91:::0;:::o;13747:631::-;2560:13;:11;:13::i;:::-;13822:14:::1;13839:10;13822:27;;13860:14;9052:1;13889:22;;:6;:22;;::::0;13885:486:::1;;13928:12;13964:21;13955:30;;14017:1;14008:6;:10;14000:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;14076:6;14068:20;;14096:6;14068:39;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14054:53;;;;;14130:7;14122:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;13913:271;13885:486;;;14221:6;14214:24;;;14247:4;14214:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14205:48;;14285:1;14276:6;:10;14268:33;;;;;;;;;;;;:::i;:::-;;;;;;;;;14323:6;14316:23;;;14340:10;14352:6;14316:43;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13885:486;13811:567;;13747:631:::0;:::o;9422:26::-;;;;:::o;19446:177::-;2560:13;:11;:13::i;:::-;19550:11:::1;;19534:12;:27;;19526:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;19603:12;19589:11;:26;;;;19446:177:::0;:::o;9268:27::-;;;;;;;;;;;;;:::o;5344:183::-;5460:7;5492:11;:18;5504:5;5492:18;;;;;;;;;;;;;;;:27;5511:7;5492:27;;;;;;;;;;;;;;;;5485:34;;5344:183;;;;:::o;9630:33::-;;;;:::o;9330:24::-;;;;;;;;;;;;;:::o;9195:31::-;;;;;;;;;;;;;:::o;2981:220::-;2560:13;:11;:13::i;:::-;3086:1:::1;3066:22;;:8;:22;;::::0;3062:93:::1;;3140:1;3112:31;;;;;;;;;;;:::i;:::-;;;;;;;;3062:93;3165:28;3184:8;3165:18;:28::i;:::-;2981:220:::0;:::o;9597:24::-;;;;:::o;1815:98::-;1868:7;1895:10;1888:17;;1815:98;:::o;7626:164::-;7745:37;7754:5;7761:7;7770:5;7777:4;7745:8;:37::i;:::-;7626:164;;;:::o;2696:166::-;2767:12;:10;:12::i;:::-;2756:23;;:7;:5;:7::i;:::-;:23;;;2752:103;;2830:12;:10;:12::i;:::-;2803:40;;;;;;;;;;;:::i;:::-;;;;;;;;2752:103;2696:166::o;13609:130::-;13726:5;13694:20;:29;13715:7;13694:29;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;13609:130;;:::o;18001:893::-;10063:4;10050:10;;:17;;;;;;;;;;;;;;;;;;18078:12:::1;18101:21;18139:1;18125:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18101:40;;18170:4;18152;18157:1;18152:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;18196:15;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18186:4;18191:1;18186:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;18229:15;:66;;;18310:7;18332:1;18348:4;18375;18395:15;18229:192;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18434:18;18455:21;18434:42;;18489:20;18532:3;18526:2;18513:10;:15;;;;:::i;:::-;18512:23;;;;:::i;:::-;18489:46;;18546:23;18592:3;18586:2;18573:10;:15;;;;:::i;:::-;18572:23;;;;:::i;:::-;18546:49;;18606:19;18648:3;18642:2;18629:10;:15;;;;:::i;:::-;18628:23;;;;:::i;:::-;18606:45;;18686:12;;;;;;;;;;;18678:26;;18712:12;18678:51;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18664:65;;;;;18762:16;;;;;;;;;;;18754:30;;18792:15;18754:58;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18740:72;;;;;18845:11;;;;;;;;;;;18837:25;;18870:11;18837:49;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18823:63;;;;;18067:827;;;;;;10103:5:::0;10090:10;;:18;;;;;;;;;;;;;;;;;;18001:893;:::o;8292:603::-;8426:24;8453:25;8463:5;8470:7;8453:9;:25::i;:::-;8426:52;;8513:17;8493:16;:37;8489:399;;8570:5;8551:16;:24;8547:214;;;8652:7;8682:16;8721:5;8603:142;;;;;;;;;;;;;:::i;:::-;;;;;;;;8547:214;8804:57;8813:5;8820:7;8848:5;8829:16;:24;8855:5;8804:8;:57::i;:::-;8489:399;8415:480;8292:603;;;:::o;6056:342::-;6190:1;6174:18;;:4;:18;;;6170:88;;6243:1;6216:30;;;;;;;;;;;:::i;:::-;;;;;;;;6170:88;6286:1;6272:16;;:2;:16;;;6268:88;;6341:1;6312:32;;;;;;;;;;;:::i;:::-;;;;;;;;6268:88;6366:24;6374:4;6380:2;6384:5;6366:7;:24::i;:::-;6056:342;;;:::o;11533:390::-;11608:16;11627:7;:5;:7::i;:::-;11608:26;;11669:1;11649:22;;:8;:22;;;11645:138;;11688:33;11705:8;11715:5;11688:16;:33::i;:::-;11736:35;11755:8;11765:5;11736:18;:35::i;:::-;11645:138;11793:32;11810:8;11820:4;11793:16;:32::i;:::-;11836:34;11855:8;11865:4;11836:18;:34::i;:::-;11881;11906:8;11881:24;:34::i;:::-;11597:326;11533:390;:::o;13475:126::-;13588:5;13558:18;:27;13577:7;13558:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;13475:126;;:::o;19897:162::-;20046:5;20012:25;:31;20038:4;20012:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;19897:162;;:::o;7798:486::-;7971:1;7954:19;;:5;:19;;;7950:91;;8026:1;7997:32;;;;;;;;;;;:::i;:::-;;;;;;;;7950:91;8074:1;8055:21;;:7;:21;;;8051:92;;8128:1;8100:31;;;;;;;;;;;:::i;:::-;;;;;;;;8051:92;8183:5;8153:11;:18;8165:5;8153:18;;;;;;;;;;;;;;;:27;8172:7;8153:27;;;;;;;;;;;;;;;:35;;;;8203:9;8199:78;;;8250:7;8234:31;;8243:5;8234:31;;;8259:5;8234:31;;;;;;:::i;:::-;;;;;;;;8199:78;7798:486;;;;:::o;14386:3607::-;14516:14;14533:9;14516:26;;14577:10;;;;;;;;;;;:57;;;;14608:20;:26;14629:4;14608:26;;;;;;;;;;;;;;;;;;;;;;;;;14577:57;:102;;;;14655:20;:24;14676:2;14655:24;;;;;;;;;;;;;;;;;;;;;;;;;14577:102;14555:165;;;;;;;;;;;;:::i;:::-;;;;;;;;;14733:11;14747:15;;;;;;;;;;;:43;;;;;14780:10;;;;;;;;;;;14779:11;14747:43;:117;;;;;14809:20;:26;14830:4;14809:26;;;;;;;;;;;;;;;;;;;;;;;;;:54;;;;14839:20;:24;14860:2;14839:24;;;;;;;;;;;;;;;;;;;;;;;;;14809:54;14807:57;14747:117;14733:131;;14879:6;14875:1693;;;14932:7;:5;:7::i;:::-;14924:15;;:4;:15;;;;:49;;;;;14966:7;:5;:7::i;:::-;14960:13;;:2;:13;;;;14924:49;:88;;;;;9052:1;14994:18;;:2;:18;;;;14924:88;:127;;;;;9108:6;15033:18;;:2;:18;;;;14924:127;14902:1655;;;15090:9;;;;;;;;;;;15086:641;;;15142:15;15128:30;;:2;:30;;;;:53;;;;;15168:13;;;;;;;;;;;15162:19;;:2;:19;;;;15128:53;15124:584;;;15335:1;15320:12;:16;;;;:::i;:::-;15248:28;:36;15277:6;15248:36;;;;;;;;;;;;;;;;:88;:209;;;;;15456:1;15441:12;:16;;;;:::i;:::-;15373:28;:32;15402:2;15373:32;;;;;;;;;;;;;;;;:84;15248:209;15210:322;;;;;;;;;;;;:::i;:::-;;;;;;;;;15598:12;15559:28;:36;15588:6;15559:36;;;;;;;;;;;;;;;:51;;;;15672:12;15637:28;:32;15666:2;15637:32;;;;;;;;;;;;;;;:47;;;;15124:584;15086:641;15773:25;:31;15799:4;15773:31;;;;;;;;;;;;;;;;;;;;;;;;;:60;;;;;15809:20;:24;15830:2;15809:24;;;;;;;;;;;;;;;;;;;;;;;;;15808:25;15773:60;15747:795;;;15894:6;;15884;:16;;15876:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;16008:9;;15991:13;16001:2;15991:9;:13::i;:::-;15982:6;:22;;;;:::i;:::-;:35;;15948:144;;;;;;;;;;;;:::i;:::-;;;;;;;;;15747:795;;;16144:25;:29;16170:2;16144:29;;;;;;;;;;;;;;;;;;;;;;;;;:60;;;;;16178:20;:26;16199:4;16178:26;;;;;;;;;;;;;;;;;;;;;;;;;16177:27;16144:60;16118:424;;;16265:7;;16255:6;:17;;16247:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;16118:424;;;16329:20;:24;16350:2;16329:24;;;;;;;;;;;;;;;;;;;;;;;;;16324:218;;16438:9;;16421:13;16431:2;16421:9;:13::i;:::-;16412:6;:22;;;;:::i;:::-;:35;;16378:144;;;;;;;;;;;;:::i;:::-;;;;;;;;;16324:218;16118:424;15747:795;14902:1655;14875:1693;16580:12;16595;;;;;;;;;;;:40;;;;;16625:10;;;;;;;;;;;16624:11;16595:40;:110;;;;;16654:18;:24;16673:4;16654:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;16682:18;:22;16701:2;16682:22;;;;;;;;;;;;;;;;;;;;;;;;;16654:50;16652:53;16595:110;16580:125;;16722:7;16718:679;;;16746:12;16761:1;16746:16;;16781:25;:29;16807:2;16781:29;;;;;;;;;;;;;;;;;;;;;;;;;:44;;;;;16824:1;16814:7;;:11;16781:44;16777:471;;;16874:3;16863:7;;16854:6;:16;;;;:::i;:::-;16853:24;;;;:::i;:::-;16846:31;;16777:471;;;16903:25;:31;16929:4;16903:31;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;;16947:1;16938:6;;:10;16903:45;16899:349;;;16996:3;16986:6;;16977;:15;;;;:::i;:::-;16976:23;;;;:::i;:::-;16969:30;;16899:349;;;17044:25;:29;17070:2;17044:29;;;;;;;;;;;;;;;;;;;;;;;;;17043:30;:83;;;;;17095:25;:31;17121:4;17095:31;;;;;;;;;;;;;;;;;;;;;;;;;17094:32;17043:83;:119;;;;;17161:1;17147:11;;:15;17043:119;17021:227;;;17229:3;17214:11;;17205:6;:20;;;;:::i;:::-;17204:28;;;;:::i;:::-;17197:35;;17021:227;16899:349;16777:471;17275:1;17268:4;:8;17264:122;;;17307:4;17297:14;;;;;:::i;:::-;;;17330:40;17344:4;17358;17365;17330:13;:40::i;:::-;17264:122;16731:666;16718:679;17409:15;17427:24;17445:4;17427:9;:24::i;:::-;17409:42;;17462:15;17491:18;;17480:7;:29;;17462:47;;17522:21;17567:2;17546:18;;:23;;;;:::i;:::-;17522:47;;17584:7;:43;;;;;17596:25;:31;17622:4;17596:31;;;;;;;;;;;;;;;;;;;;;;;;;17595:32;17584:43;:57;;;;;17631:10;17584:57;17580:362;;;17677:26;;17662:12;:41;17658:273;;;17738:13;17728:7;:23;17724:95;;;17786:13;17776:23;;17724:95;17837:18;17847:7;17837:9;:18::i;:::-;17903:12;17874:26;:41;;;;17658:273;17580:362;17954:31;17968:4;17974:2;17978:6;17954:13;:31::i;:::-;14505:3488;;;;;;14386:3607;;;:::o;3209:191::-;3283:16;3302:6;;;;;;;;;;;3283:25;;3328:8;3319:6;;:17;;;;;;;;;;;;;;;;;;3383:8;3352:40;;3373:8;3352:40;;;;;;;;;;;;3272:128;3209:191;:::o;6406:772::-;6546:1;6530:18;;:4;:18;;;6526:373;;6583:5;6567:12;;:21;;;;;;;:::i;:::-;;;;;;;;6526:373;;;6621:19;6643:9;:15;6653:4;6643:15;;;;;;;;;;;;;;;;6621:37;;6691:5;6677:11;:19;6673:117;;;6749:4;6755:11;6768:5;6724:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;6673:117;6867:5;6853:11;:19;6835:9;:15;6845:4;6835:15;;;;;;;;;;;;;;;:37;;;;6606:293;6526:373;6929:1;6915:16;;:2;:16;;;6911:217;;6995:5;6979:12;;:21;;;;;;;;;;;6911:217;;;7096:5;7079:9;:13;7089:2;7079:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;6911:217;7160:2;7145:25;;7154:4;7145:25;;;7164:5;7145:25;;;;;;:::i;:::-;;;;;;;;6406:772;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1446:117;1555:1;1552;1545:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:117::-;3448:1;3445;3438:12;3462:117;3571:1;3568;3561:12;3585:117;3694:1;3691;3684:12;3725:568;3798:8;3808:6;3858:3;3851:4;3843:6;3839:17;3835:27;3825:122;;3866:79;;:::i;:::-;3825:122;3979:6;3966:20;3956:30;;4009:18;4001:6;3998:30;3995:117;;;4031:79;;:::i;:::-;3995:117;4145:4;4137:6;4133:17;4121:29;;4199:3;4191:4;4183:6;4179:17;4169:8;4165:32;4162:41;4159:128;;;4206:79;;:::i;:::-;4159:128;3725:568;;;;;:::o;4299:116::-;4369:21;4384:5;4369:21;:::i;:::-;4362:5;4359:32;4349:60;;4405:1;4402;4395:12;4349:60;4299:116;:::o;4421:133::-;4464:5;4502:6;4489:20;4480:29;;4518:30;4542:5;4518:30;:::i;:::-;4421:133;;;;:::o;4560:698::-;4652:6;4660;4668;4717:2;4705:9;4696:7;4692:23;4688:32;4685:119;;;4723:79;;:::i;:::-;4685:119;4871:1;4860:9;4856:17;4843:31;4901:18;4893:6;4890:30;4887:117;;;4923:79;;:::i;:::-;4887:117;5036:80;5108:7;5099:6;5088:9;5084:22;5036:80;:::i;:::-;5018:98;;;;4814:312;5165:2;5191:50;5233:7;5224:6;5213:9;5209:22;5191:50;:::i;:::-;5181:60;;5136:115;4560:698;;;;;:::o;5264:329::-;5323:6;5372:2;5360:9;5351:7;5347:23;5343:32;5340:119;;;5378:79;;:::i;:::-;5340:119;5498:1;5523:53;5568:7;5559:6;5548:9;5544:22;5523:53;:::i;:::-;5513:63;;5469:117;5264:329;;;;:::o;5599:60::-;5627:3;5648:5;5641:12;;5599:60;;;:::o;5665:142::-;5715:9;5748:53;5766:34;5775:24;5793:5;5775:24;:::i;:::-;5766:34;:::i;:::-;5748:53;:::i;:::-;5735:66;;5665:142;;;:::o;5813:126::-;5863:9;5896:37;5927:5;5896:37;:::i;:::-;5883:50;;5813:126;;;:::o;5945:150::-;6019:9;6052:37;6083:5;6052:37;:::i;:::-;6039:50;;5945:150;;;:::o;6101:179::-;6212:61;6267:5;6212:61;:::i;:::-;6207:3;6200:74;6101:179;;:::o;6286:270::-;6403:4;6441:2;6430:9;6426:18;6418:26;;6454:95;6546:1;6535:9;6531:17;6522:6;6454:95;:::i;:::-;6286:270;;;;:::o;6562:118::-;6649:24;6667:5;6649:24;:::i;:::-;6644:3;6637:37;6562:118;;:::o;6686:222::-;6779:4;6817:2;6806:9;6802:18;6794:26;;6830:71;6898:1;6887:9;6883:17;6874:6;6830:71;:::i;:::-;6686:222;;;;:::o;6914:474::-;6982:6;6990;7039:2;7027:9;7018:7;7014:23;7010:32;7007:119;;;7045:79;;:::i;:::-;7007:119;7165:1;7190:53;7235:7;7226:6;7215:9;7211:22;7190:53;:::i;:::-;7180:63;;7136:117;7292:2;7318:53;7363:7;7354:6;7343:9;7339:22;7318:53;:::i;:::-;7308:63;;7263:118;6914:474;;;;;:::o;7394:118::-;7481:24;7499:5;7481:24;:::i;:::-;7476:3;7469:37;7394:118;;:::o;7518:222::-;7611:4;7649:2;7638:9;7634:18;7626:26;;7662:71;7730:1;7719:9;7715:17;7706:6;7662:71;:::i;:::-;7518:222;;;;:::o;7746:619::-;7823:6;7831;7839;7888:2;7876:9;7867:7;7863:23;7859:32;7856:119;;;7894:79;;:::i;:::-;7856:119;8014:1;8039:53;8084:7;8075:6;8064:9;8060:22;8039:53;:::i;:::-;8029:63;;7985:117;8141:2;8167:53;8212:7;8203:6;8192:9;8188:22;8167:53;:::i;:::-;8157:63;;8112:118;8269:2;8295:53;8340:7;8331:6;8320:9;8316:22;8295:53;:::i;:::-;8285:63;;8240:118;7746:619;;;;;:::o;8371:86::-;8406:7;8446:4;8439:5;8435:16;8424:27;;8371:86;;;:::o;8463:112::-;8546:22;8562:5;8546:22;:::i;:::-;8541:3;8534:35;8463:112;;:::o;8581:214::-;8670:4;8708:2;8697:9;8693:18;8685:26;;8721:67;8785:1;8774:9;8770:17;8761:6;8721:67;:::i;:::-;8581:214;;;;:::o;8801:329::-;8860:6;8909:2;8897:9;8888:7;8884:23;8880:32;8877:119;;;8915:79;;:::i;:::-;8877:119;9035:1;9060:53;9105:7;9096:6;9085:9;9081:22;9060:53;:::i;:::-;9050:63;;9006:117;8801:329;;;;:::o;9136:619::-;9213:6;9221;9229;9278:2;9266:9;9257:7;9253:23;9249:32;9246:119;;;9284:79;;:::i;:::-;9246:119;9404:1;9429:53;9474:7;9465:6;9454:9;9450:22;9429:53;:::i;:::-;9419:63;;9375:117;9531:2;9557:53;9602:7;9593:6;9582:9;9578:22;9557:53;:::i;:::-;9547:63;;9502:118;9659:2;9685:53;9730:7;9721:6;9710:9;9706:22;9685:53;:::i;:::-;9675:63;;9630:118;9136:619;;;;;:::o;9761:323::-;9817:6;9866:2;9854:9;9845:7;9841:23;9837:32;9834:119;;;9872:79;;:::i;:::-;9834:119;9992:1;10017:50;10059:7;10050:6;10039:9;10035:22;10017:50;:::i;:::-;10007:60;;9963:114;9761:323;;;;:::o;10090:474::-;10158:6;10166;10215:2;10203:9;10194:7;10190:23;10186:32;10183:119;;;10221:79;;:::i;:::-;10183:119;10341:1;10366:53;10411:7;10402:6;10391:9;10387:22;10366:53;:::i;:::-;10356:63;;10312:117;10468:2;10494:53;10539:7;10530:6;10519:9;10515:22;10494:53;:::i;:::-;10484:63;;10439:118;10090:474;;;;;:::o;10570:180::-;10618:77;10615:1;10608:88;10715:4;10712:1;10705:15;10739:4;10736:1;10729:15;10756:320;10800:6;10837:1;10831:4;10827:12;10817:22;;10884:1;10878:4;10874:12;10905:18;10895:81;;10961:4;10953:6;10949:17;10939:27;;10895:81;11023:2;11015:6;11012:14;10992:18;10989:38;10986:84;;11042:18;;:::i;:::-;10986:84;10807:269;10756:320;;;:::o;11082:180::-;11130:77;11127:1;11120:88;11227:4;11224:1;11217:15;11251:4;11248:1;11241:15;11268:180;11316:77;11313:1;11306:88;11413:4;11410:1;11403:15;11437:4;11434:1;11427:15;11454:410;11494:7;11517:20;11535:1;11517:20;:::i;:::-;11512:25;;11551:20;11569:1;11551:20;:::i;:::-;11546:25;;11606:1;11603;11599:9;11628:30;11646:11;11628:30;:::i;:::-;11617:41;;11807:1;11798:7;11794:15;11791:1;11788:22;11768:1;11761:9;11741:83;11718:139;;11837:18;;:::i;:::-;11718:139;11502:362;11454:410;;;;:::o;11870:180::-;11918:77;11915:1;11908:88;12015:4;12012:1;12005:15;12039:4;12036:1;12029:15;12056:185;12096:1;12113:20;12131:1;12113:20;:::i;:::-;12108:25;;12147:20;12165:1;12147:20;:::i;:::-;12142:25;;12186:1;12176:35;;12191:18;;:::i;:::-;12176:35;12233:1;12230;12226:9;12221:14;;12056:185;;;;:::o;12247:162::-;12387:14;12383:1;12375:6;12371:14;12364:38;12247:162;:::o;12415:366::-;12557:3;12578:67;12642:2;12637:3;12578:67;:::i;:::-;12571:74;;12654:93;12743:3;12654:93;:::i;:::-;12772:2;12767:3;12763:12;12756:19;;12415:366;;;:::o;12787:419::-;12953:4;12991:2;12980:9;12976:18;12968:26;;13040:9;13034:4;13030:20;13026:1;13015:9;13011:17;13004:47;13068:131;13194:4;13068:131;:::i;:::-;13060:139;;12787:419;;;:::o;13212:167::-;13352:19;13348:1;13340:6;13336:14;13329:43;13212:167;:::o;13385:366::-;13527:3;13548:67;13612:2;13607:3;13548:67;:::i;:::-;13541:74;;13624:93;13713:3;13624:93;:::i;:::-;13742:2;13737:3;13733:12;13726:19;;13385:366;;;:::o;13757:419::-;13923:4;13961:2;13950:9;13946:18;13938:26;;14010:9;14004:4;14000:20;13996:1;13985:9;13981:17;13974:47;14038:131;14164:4;14038:131;:::i;:::-;14030:139;;13757:419;;;:::o;14182:143::-;14239:5;14270:6;14264:13;14255:22;;14286:33;14313:5;14286:33;:::i;:::-;14182:143;;;;:::o;14331:351::-;14401:6;14450:2;14438:9;14429:7;14425:23;14421:32;14418:119;;;14456:79;;:::i;:::-;14418:119;14576:1;14601:64;14657:7;14648:6;14637:9;14633:22;14601:64;:::i;:::-;14591:74;;14547:128;14331:351;;;;:::o;14688:332::-;14809:4;14847:2;14836:9;14832:18;14824:26;;14860:71;14928:1;14917:9;14913:17;14904:6;14860:71;:::i;:::-;14941:72;15009:2;14998:9;14994:18;14985:6;14941:72;:::i;:::-;14688:332;;;;;:::o;15026:85::-;15071:7;15100:5;15089:16;;15026:85;;;:::o;15117:158::-;15175:9;15208:61;15226:42;15235:32;15261:5;15235:32;:::i;:::-;15226:42;:::i;:::-;15208:61;:::i;:::-;15195:74;;15117:158;;;:::o;15281:147::-;15376:45;15415:5;15376:45;:::i;:::-;15371:3;15364:58;15281:147;;:::o;15434:807::-;15683:4;15721:3;15710:9;15706:19;15698:27;;15735:71;15803:1;15792:9;15788:17;15779:6;15735:71;:::i;:::-;15816:72;15884:2;15873:9;15869:18;15860:6;15816:72;:::i;:::-;15898:80;15974:2;15963:9;15959:18;15950:6;15898:80;:::i;:::-;15988;16064:2;16053:9;16049:18;16040:6;15988:80;:::i;:::-;16078:73;16146:3;16135:9;16131:19;16122:6;16078:73;:::i;:::-;16161;16229:3;16218:9;16214:19;16205:6;16161:73;:::i;:::-;15434:807;;;;;;;;;:::o;16247:143::-;16304:5;16335:6;16329:13;16320:22;;16351:33;16378:5;16351:33;:::i;:::-;16247:143;;;;:::o;16396:663::-;16484:6;16492;16500;16549:2;16537:9;16528:7;16524:23;16520:32;16517:119;;;16555:79;;:::i;:::-;16517:119;16675:1;16700:64;16756:7;16747:6;16736:9;16732:22;16700:64;:::i;:::-;16690:74;;16646:128;16813:2;16839:64;16895:7;16886:6;16875:9;16871:22;16839:64;:::i;:::-;16829:74;;16784:129;16952:2;16978:64;17034:7;17025:6;17014:9;17010:22;16978:64;:::i;:::-;16968:74;;16923:129;16396:663;;;;;:::o;17065:332::-;17186:4;17224:2;17213:9;17209:18;17201:26;;17237:71;17305:1;17294:9;17290:17;17281:6;17237:71;:::i;:::-;17318:72;17386:2;17375:9;17371:18;17362:6;17318:72;:::i;:::-;17065:332;;;;;:::o;17403:137::-;17457:5;17488:6;17482:13;17473:22;;17504:30;17528:5;17504:30;:::i;:::-;17403:137;;;;:::o;17546:345::-;17613:6;17662:2;17650:9;17641:7;17637:23;17633:32;17630:119;;;17668:79;;:::i;:::-;17630:119;17788:1;17813:61;17866:7;17857:6;17846:9;17842:22;17813:61;:::i;:::-;17803:71;;17759:125;17546:345;;;;:::o;17897:166::-;18037:18;18033:1;18025:6;18021:14;18014:42;17897:166;:::o;18069:366::-;18211:3;18232:67;18296:2;18291:3;18232:67;:::i;:::-;18225:74;;18308:93;18397:3;18308:93;:::i;:::-;18426:2;18421:3;18417:12;18410:19;;18069:366;;;:::o;18441:419::-;18607:4;18645:2;18634:9;18630:18;18622:26;;18694:9;18688:4;18684:20;18680:1;18669:9;18665:17;18658:47;18722:131;18848:4;18722:131;:::i;:::-;18714:139;;18441:419;;;:::o;18866:147::-;18967:11;19004:3;18989:18;;18866:147;;;;:::o;19019:114::-;;:::o;19139:398::-;19298:3;19319:83;19400:1;19395:3;19319:83;:::i;:::-;19312:90;;19411:93;19500:3;19411:93;:::i;:::-;19529:1;19524:3;19520:11;19513:18;;19139:398;;;:::o;19543:379::-;19727:3;19749:147;19892:3;19749:147;:::i;:::-;19742:154;;19913:3;19906:10;;19543:379;;;:::o;19928:180::-;20068:32;20064:1;20056:6;20052:14;20045:56;19928:180;:::o;20114:366::-;20256:3;20277:67;20341:2;20336:3;20277:67;:::i;:::-;20270:74;;20353:93;20442:3;20353:93;:::i;:::-;20471:2;20466:3;20462:12;20455:19;;20114:366;;;:::o;20486:419::-;20652:4;20690:2;20679:9;20675:18;20667:26;;20739:9;20733:4;20729:20;20725:1;20714:9;20710:17;20703:47;20767:131;20893:4;20767:131;:::i;:::-;20759:139;;20486:419;;;:::o;20911:351::-;20981:6;21030:2;21018:9;21009:7;21005:23;21001:32;20998:119;;;21036:79;;:::i;:::-;20998:119;21156:1;21181:64;21237:7;21228:6;21217:9;21213:22;21181:64;:::i;:::-;21171:74;;21127:128;20911:351;;;;:::o;21268:160::-;21408:12;21404:1;21396:6;21392:14;21385:36;21268:160;:::o;21434:366::-;21576:3;21597:67;21661:2;21656:3;21597:67;:::i;:::-;21590:74;;21673:93;21762:3;21673:93;:::i;:::-;21791:2;21786:3;21782:12;21775:19;;21434:366;;;:::o;21806:419::-;21972:4;22010:2;21999:9;21995:18;21987:26;;22059:9;22053:4;22049:20;22045:1;22034:9;22030:17;22023:47;22087:131;22213:4;22087:131;:::i;:::-;22079:139;;21806:419;;;:::o;22231:180::-;22279:77;22276:1;22269:88;22376:4;22373:1;22366:15;22400:4;22397:1;22390:15;22417:114;22484:6;22518:5;22512:12;22502:22;;22417:114;;;:::o;22537:184::-;22636:11;22670:6;22665:3;22658:19;22710:4;22705:3;22701:14;22686:29;;22537:184;;;;:::o;22727:132::-;22794:4;22817:3;22809:11;;22847:4;22842:3;22838:14;22830:22;;22727:132;;;:::o;22865:108::-;22942:24;22960:5;22942:24;:::i;:::-;22937:3;22930:37;22865:108;;:::o;22979:179::-;23048:10;23069:46;23111:3;23103:6;23069:46;:::i;:::-;23147:4;23142:3;23138:14;23124:28;;22979:179;;;;:::o;23164:113::-;23234:4;23266;23261:3;23257:14;23249:22;;23164:113;;;:::o;23313:732::-;23432:3;23461:54;23509:5;23461:54;:::i;:::-;23531:86;23610:6;23605:3;23531:86;:::i;:::-;23524:93;;23641:56;23691:5;23641:56;:::i;:::-;23720:7;23751:1;23736:284;23761:6;23758:1;23755:13;23736:284;;;23837:6;23831:13;23864:63;23923:3;23908:13;23864:63;:::i;:::-;23857:70;;23950:60;24003:6;23950:60;:::i;:::-;23940:70;;23796:224;23783:1;23780;23776:9;23771:14;;23736:284;;;23740:14;24036:3;24029:10;;23437:608;;;23313:732;;;;:::o;24051:831::-;24314:4;24352:3;24341:9;24337:19;24329:27;;24366:71;24434:1;24423:9;24419:17;24410:6;24366:71;:::i;:::-;24447:80;24523:2;24512:9;24508:18;24499:6;24447:80;:::i;:::-;24574:9;24568:4;24564:20;24559:2;24548:9;24544:18;24537:48;24602:108;24705:4;24696:6;24602:108;:::i;:::-;24594:116;;24720:72;24788:2;24777:9;24773:18;24764:6;24720:72;:::i;:::-;24802:73;24870:3;24859:9;24855:19;24846:6;24802:73;:::i;:::-;24051:831;;;;;;;;:::o;24888:442::-;25037:4;25075:2;25064:9;25060:18;25052:26;;25088:71;25156:1;25145:9;25141:17;25132:6;25088:71;:::i;:::-;25169:72;25237:2;25226:9;25222:18;25213:6;25169:72;:::i;:::-;25251;25319:2;25308:9;25304:18;25295:6;25251:72;:::i;:::-;24888:442;;;;;;:::o;25336:163::-;25476:15;25472:1;25464:6;25460:14;25453:39;25336:163;:::o;25505:366::-;25647:3;25668:67;25732:2;25727:3;25668:67;:::i;:::-;25661:74;;25744:93;25833:3;25744:93;:::i;:::-;25862:2;25857:3;25853:12;25846:19;;25505:366;;;:::o;25877:419::-;26043:4;26081:2;26070:9;26066:18;26058:26;;26130:9;26124:4;26120:20;26116:1;26105:9;26101:17;26094:47;26158:131;26284:4;26158:131;:::i;:::-;26150:139;;25877:419;;;:::o;26302:194::-;26342:4;26362:20;26380:1;26362:20;:::i;:::-;26357:25;;26396:20;26414:1;26396:20;:::i;:::-;26391:25;;26440:1;26437;26433:9;26425:17;;26464:1;26458:4;26455:11;26452:37;;;26469:18;;:::i;:::-;26452:37;26302:194;;;;:::o;26502:165::-;26642:17;26638:1;26630:6;26626:14;26619:41;26502:165;:::o;26673:366::-;26815:3;26836:67;26900:2;26895:3;26836:67;:::i;:::-;26829:74;;26912:93;27001:3;26912:93;:::i;:::-;27030:2;27025:3;27021:12;27014:19;;26673:366;;;:::o;27045:419::-;27211:4;27249:2;27238:9;27234:18;27226:26;;27298:9;27292:4;27288:20;27284:1;27273:9;27269:17;27262:47;27326:131;27452:4;27326:131;:::i;:::-;27318:139;;27045:419;;;:::o;27470:170::-;27610:22;27606:1;27598:6;27594:14;27587:46;27470:170;:::o;27646:366::-;27788:3;27809:67;27873:2;27868:3;27809:67;:::i;:::-;27802:74;;27885:93;27974:3;27885:93;:::i;:::-;28003:2;27998:3;27994:12;27987:19;;27646:366;;;:::o;28018:419::-;28184:4;28222:2;28211:9;28207:18;28199:26;;28271:9;28265:4;28261:20;28257:1;28246:9;28242:17;28235:47;28299:131;28425:4;28299:131;:::i;:::-;28291:139;;28018:419;;;:::o;28443:191::-;28483:3;28502:20;28520:1;28502:20;:::i;:::-;28497:25;;28536:20;28554:1;28536:20;:::i;:::-;28531:25;;28579:1;28576;28572:9;28565:16;;28600:3;28597:1;28594:10;28591:36;;;28607:18;;:::i;:::-;28591:36;28443:191;;;;:::o;28640:173::-;28780:25;28776:1;28768:6;28764:14;28757:49;28640:173;:::o;28819:366::-;28961:3;28982:67;29046:2;29041:3;28982:67;:::i;:::-;28975:74;;29058:93;29147:3;29058:93;:::i;:::-;29176:2;29171:3;29167:12;29160:19;;28819:366;;;:::o;29191:419::-;29357:4;29395:2;29384:9;29380:18;29372:26;;29444:9;29438:4;29434:20;29430:1;29419:9;29415:17;29408:47;29472:131;29598:4;29472:131;:::i;:::-;29464:139;;29191:419;;;:::o;29616:171::-;29756:23;29752:1;29744:6;29740:14;29733:47;29616:171;:::o;29793:366::-;29935:3;29956:67;30020:2;30015:3;29956:67;:::i;:::-;29949:74;;30032:93;30121:3;30032:93;:::i;:::-;30150:2;30145:3;30141:12;30134:19;;29793:366;;;:::o;30165:419::-;30331:4;30369:2;30358:9;30354:18;30346:26;;30418:9;30412:4;30408:20;30404:1;30393:9;30389:17;30382:47;30446:131;30572:4;30446:131;:::i;:::-;30438:139;;30165:419;;;:::o

Swarm Source

ipfs://0596c3a6ce5d41c3da63134f37086ecc0466f15a500bad5e19bfef867ec309f4

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
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.