ETH Price: $3,282.52 (+1.12%)
Gas: 12 Gwei

Contract

0x7Da0a524d323cdDaF3d465Ba617230f6b91d3ebb
 

Overview

ETH Balance

0.01 ETH

Eth Value

$32.83 (@ $3,282.52/ETH)

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer156422762022-09-29 23:28:47666 days ago1664494127IN
0x7Da0a524...6b91d3ebb
0.01 ETH0.0002547912.10149344
Transfer Ownersh...156292752022-09-28 3:53:35668 days ago1664337215IN
0x7Da0a524...6b91d3ebb
0 ETH0.0002966610.34397336
Set Liquidity To...155575872022-09-18 2:54:35678 days ago1663469675IN
0x7Da0a524...6b91d3ebb
0 ETH0.000173283.61297318
Set Distribution...155562722022-09-17 22:28:35678 days ago1663453715IN
0x7Da0a524...6b91d3ebb
0 ETH0.000213214.25892874
Set Auxiliary Ta...155562712022-09-17 22:28:23678 days ago1663453703IN
0x7Da0a524...6b91d3ebb
0 ETH0.000195353.89718514
0x60806040155562142022-09-17 22:16:47678 days ago1663453007IN
 Create: X7DAOLiquidityHub
0 ETH0.007846443.84542778

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
X7DAOLiquidityHub

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-09-17
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.15;

/*

 /$$   /$$ /$$$$$$$$       /$$$$$$$$ /$$
| $$  / $$|_____ $$/      | $$_____/|__/
|  $$/ $$/     /$$/       | $$       /$$ /$$$$$$$   /$$$$$$  /$$$$$$$   /$$$$$$$  /$$$$$$
 \  $$$$/     /$$/        | $$$$$   | $$| $$__  $$ |____  $$| $$__  $$ /$$_____/ /$$__  $$
  >$$  $$    /$$/         | $$__/   | $$| $$  \ $$  /$$$$$$$| $$  \ $$| $$      | $$$$$$$$
 /$$/\  $$  /$$/          | $$      | $$| $$  | $$ /$$__  $$| $$  | $$| $$      | $$_____/
| $$  \ $$ /$$/           | $$      | $$| $$  | $$|  $$$$$$$| $$  | $$|  $$$$$$$|  $$$$$$$
|__/  |__/|__/            |__/      |__/|__/  |__/ \_______/|__/  |__/ \_______/ \_______/

Contract: Smart Contract for managing X7DAO fee tokens

This contract will NOT be renounced.

The following are the only functions that can be called on the contract that affect the contract:

    function setShares(uint256 distributeShare_, uint256 liquidityShare_, uint256 auxiliaryShare_, uint256 treasuryShare_) external onlyOwner {
        require(distributeShare + liquidityShare + auxiliaryShare + treasuryShare == 1000);

        require(distributeShare_ >= minShare && distributeShare_ <= maxShare);
        require(liquidityShare_ >= minShare && liquidityShare_ <= maxShare);
        require(auxiliaryShare_ >= minShare && auxiliaryShare_ <= maxShare);
        require(treasuryShare_ >= minShare && treasuryShare_ <= maxShare);

        distributeShare = distributeShare_;
        liquidityShare = liquidityShare_;
        auxiliaryShare = auxiliaryShare_;
        treasuryShare = treasuryShare_;

        emit SharesSet(distributeShare_, liquidityShare_, auxiliaryShare_, treasuryShare_);
    }

    function setRouter(address router_) external onlyOwner {
        require(router_ != address(router));
        router = IUniswapV2Router(router_);
        emit RouterSet(router_);
    }

    function setOffRampPair(address offRampPairAddress) external onlyOwner {
        require(offRampPair != offRampPairAddress);
        offRampPair = offRampPairAddress;
        emit OffRampPairSet(offRampPairAddress);
    }

    function setBalanceThreshold(uint256 threshold) external onlyOwner {
        require(!balanceThresholdFrozen);
        balanceThreshold = threshold;
        emit BalanceThresholdSet(threshold);
    }

    function setLiquidityRatioTarget(uint256 liquidityRatioTarget_) external onlyOwner {
        require(liquidityRatioTarget_ != liquidityRatioTarget);
        require(liquidityRatioTarget_ >= minLiquidityRatioTarget && liquidityRatioTarget <= maxLiquidityRatioTarget);
        liquidityRatioTarget = liquidityRatioTarget_;
        emit LiquidityRatioTargetSet(liquidityRatioTarget_);
    }

    function setLiquidityTokenReceiver(address liquidityTokenReceiver_) external onlyOwner {
        require(
            liquidityTokenReceiver_ != address(0)
            && liquidityTokenReceiver_ != address(0x000000000000000000000000000000000000dEaD)
            && liquidityTokenReceiver != liquidityTokenReceiver_
        );

        address oldLiquidityTokenReceiver = liquidityTokenReceiver;
        liquidityTokenReceiver = liquidityTokenReceiver_;
        emit LiquidityTokenReceiverSet(oldLiquidityTokenReceiver, liquidityTokenReceiver_);
    }

    function setDistributionTarget(address target) external onlyOwner {
        require(
            target != address(0)
            && target != address(0x000000000000000000000000000000000000dEaD)
            && distributeTarget != payable(target)
        );
        require(!distributeTargetFrozen);
        address oldTarget = address(distributeTarget);
        distributeTarget = payable(target);
        emit DistributeTargetSet(oldTarget, distributeTarget);
    }

    function setAuxiliaryTarget(address target) external onlyOwner {
        require(
            target != address(0) &&
            target != address(0x000000000000000000000000000000000000dEaD)
            && auxiliaryTarget != payable(target)
        );
        require(!auxiliaryTargetFrozen);
        address oldTarget = address(auxiliaryTarget);
        auxiliaryTarget = payable(target);
        emit AuxiliaryTargetSet(oldTarget, target);
    }

    function setTreasuryTarget(address target) external onlyOwner {
        require(
            target != address(0)
            && target != address(0x000000000000000000000000000000000000dEaD)
            && treasuryTarget != payable(target)
        );
        require(!treasuryTargetFrozen);
        address oldTarget = address(treasuryTarget);
        treasuryTarget = payable(target);
        emit TreasuryTargetSet(oldTarget, target);
    }

    function freezeTreasuryTarget() external onlyOwner {
        require(!treasuryTargetFrozen);
        treasuryTargetFrozen = true;
        emit TreasuryTargetFrozen();
    }

    function freezeDistributeTarget() external onlyOwner {
        require(!distributeTargetFrozen);
        distributeTargetFrozen = true;
        emit DistributeTargetFrozen();
    }

    function freezeAuxiliaryTarget() external onlyOwner {
        require(!auxiliaryTargetFrozen);
        auxiliaryTargetFrozen = true;
        emit AuxiliaryTargetFrozen();
    }

    function freezeBalanceThreshold() external onlyOwner {
        require(!balanceThresholdFrozen);
        balanceThresholdFrozen = true;
        emit BalanceThresholdFrozen();
    }

These functions will be passed to DAO governance once the ecosystem stabilizes.

*/

abstract contract Ownable {
    address private _owner;

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

    constructor(address owner_) {
        _transferOwnership(owner_);
    }

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

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

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

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

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

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

interface IERC20 {
    function circulatingSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address to, uint256 amount) external returns (bool);
    function approve(address spender, uint256 amount) external returns (bool);
}

interface IUniswapV2Router {
    function WETH() external returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

interface ILiquidityHub {
    function processFees(address) external;
}

interface IX7EcosystemSplitter {
    function takeBalance() external;
}

interface IWETH {
    function withdraw(uint) external;
}

contract X7DAOLiquidityHub is Ownable, ILiquidityHub {

    IUniswapV2Router public router;
    address public offRampPair;

    IERC20 public x7dao;
    address public liquidityTokenReceiver;
    uint256 public minLiquidityRatioTarget = 5;
    uint256 public maxLiquidityRatioTarget = 99;

    uint256 public liquidityRatioTarget = 15;

    uint256 public minShare = 150;
    uint256 public maxShare = 400;

    uint256 public distributeShare = 300;
    uint256 public liquidityShare = 200;
    uint256 public auxiliaryShare = 250;
    uint256 public treasuryShare = 250;

    uint256 public balanceThreshold = 1 ether;

    uint256 public distributeBalance;
    uint256 public auxiliaryBalance;
    uint256 public treasuryBalance;
    uint256 public liquidityBalance;
    uint256 public x7daoLiquidityBalance;

    address payable public distributeTarget;
    address payable public auxiliaryTarget;
    address payable public treasuryTarget;

    bool public distributeTargetFrozen;
    bool public auxiliaryTargetFrozen;
    bool public treasuryTargetFrozen;
    bool public balanceThresholdFrozen;

    event SharesSet(uint256 distributeShare, uint256 liquidityShare, uint256 auxiliaryShare, uint256 treasuryShare);
    event OffRampPairSet(address indexed offRampPair);
    event DistributeTargetSet(address indexed oldTarget, address indexed newTarget);
    event AuxiliaryTargetSet(address indexed oldTarget, address indexed newTarget);
    event TreasuryTargetSet(address indexed oldTarget, address indexed newTarget);
    event LiquidityRatioTargetSet(uint256 liquidityRatioTarget);
    event LiquidityTokenReceiverSet(address indexed oldReciever, address indexed newReceiver);
    event BalanceThresholdSet(uint256 threshold);
    event RouterSet(address router);
    event TreasuryTargetFrozen();
    event AuxiliaryTargetFrozen();
    event DistributeTargetFrozen();
    event BalanceThresholdFrozen();

    constructor(address x7dao_, address router_) Ownable(address(0x7000a09c425ABf5173FF458dF1370C25d1C58105)) {
        router = IUniswapV2Router(router_);
        x7dao = IERC20(x7dao_);
        emit RouterSet(router_);
    }

    receive() external payable {}

    function setShares(uint256 distributeShare_, uint256 liquidityShare_, uint256 auxiliaryShare_, uint256 treasuryShare_) external onlyOwner {
        require(distributeShare + liquidityShare + auxiliaryShare + treasuryShare == 1000);

        require(distributeShare_ >= minShare && distributeShare_ <= maxShare);
        require(liquidityShare_ >= minShare && liquidityShare_ <= maxShare);
        require(auxiliaryShare_ >= minShare && auxiliaryShare_ <= maxShare);
        require(treasuryShare_ >= minShare && treasuryShare_ <= maxShare);

        distributeShare = distributeShare_;
        liquidityShare = liquidityShare_;
        auxiliaryShare = auxiliaryShare_;
        treasuryShare = treasuryShare_;

        emit SharesSet(distributeShare_, liquidityShare_, auxiliaryShare_, treasuryShare_);
    }

    function setRouter(address router_) external onlyOwner {
        require(router_ != address(router));
        router = IUniswapV2Router(router_);
        emit RouterSet(router_);
    }

    function setOffRampPair(address offRampPairAddress) external onlyOwner {
        require(offRampPair != offRampPairAddress);
        offRampPair = offRampPairAddress;
        emit OffRampPairSet(offRampPairAddress);
    }

    function setBalanceThreshold(uint256 threshold) external onlyOwner {
        require(!balanceThresholdFrozen);
        balanceThreshold = threshold;
        emit BalanceThresholdSet(threshold);
    }

    function setLiquidityRatioTarget(uint256 liquidityRatioTarget_) external onlyOwner {
        require(liquidityRatioTarget_ != liquidityRatioTarget);
        require(liquidityRatioTarget_ >= minLiquidityRatioTarget && liquidityRatioTarget <= maxLiquidityRatioTarget);
        liquidityRatioTarget = liquidityRatioTarget_;
        emit LiquidityRatioTargetSet(liquidityRatioTarget_);
    }

    function setLiquidityTokenReceiver(address liquidityTokenReceiver_) external onlyOwner {
        require(
            liquidityTokenReceiver_ != address(0)
            && liquidityTokenReceiver_ != address(0x000000000000000000000000000000000000dEaD)
            && liquidityTokenReceiver != liquidityTokenReceiver_
        );

        address oldLiquidityTokenReceiver = liquidityTokenReceiver;
        liquidityTokenReceiver = liquidityTokenReceiver_;
        emit LiquidityTokenReceiverSet(oldLiquidityTokenReceiver, liquidityTokenReceiver_);
    }

    function setDistributionTarget(address target) external onlyOwner {
        require(
            target != address(0)
            && target != address(0x000000000000000000000000000000000000dEaD)
            && distributeTarget != payable(target)
        );
        require(!distributeTargetFrozen);
        address oldTarget = address(distributeTarget);
        distributeTarget = payable(target);
        emit DistributeTargetSet(oldTarget, distributeTarget);
    }

    function setAuxiliaryTarget(address target) external onlyOwner {
        require(
            target != address(0) &&
            target != address(0x000000000000000000000000000000000000dEaD)
            && auxiliaryTarget != payable(target)
        );
        require(!auxiliaryTargetFrozen);
        address oldTarget = address(auxiliaryTarget);
        auxiliaryTarget = payable(target);
        emit AuxiliaryTargetSet(oldTarget, target);
    }

    function setTreasuryTarget(address target) external onlyOwner {
        require(
            target != address(0)
            && target != address(0x000000000000000000000000000000000000dEaD)
            && treasuryTarget != payable(target)
        );
        require(!treasuryTargetFrozen);
        address oldTarget = address(treasuryTarget);
        treasuryTarget = payable(target);
        emit TreasuryTargetSet(oldTarget, target);
    }

    function freezeTreasuryTarget() external onlyOwner {
        require(!treasuryTargetFrozen);
        treasuryTargetFrozen = true;
        emit TreasuryTargetFrozen();
    }

    function freezeDistributeTarget() external onlyOwner {
        require(!distributeTargetFrozen);
        distributeTargetFrozen = true;
        emit DistributeTargetFrozen();
    }

    function freezeAuxiliaryTarget() external onlyOwner {
        require(!auxiliaryTargetFrozen);
        auxiliaryTargetFrozen = true;
        emit AuxiliaryTargetFrozen();
    }

    function freezeBalanceThreshold() external onlyOwner {
        require(!balanceThresholdFrozen);
        balanceThresholdFrozen = true;
        emit BalanceThresholdFrozen();
    }

    function processFees(address tokenAddress) external {
        uint256 startingETHBalance = address(this).balance;

        uint256 tokensToSwap = IERC20(tokenAddress).balanceOf(address(this));

        if (tokenAddress == address(x7dao)) {
            tokensToSwap -= x7daoLiquidityBalance;
        }

        if (tokensToSwap > 0) {
            swapTokensForEth(tokenAddress, tokensToSwap);
        }

        uint256 ETHForDistribution = address(this).balance - startingETHBalance;

        distributeBalance += ETHForDistribution * distributeShare / 1000;
        auxiliaryBalance += ETHForDistribution * auxiliaryShare / 1000;
        treasuryBalance += ETHForDistribution * treasuryShare / 1000;
        liquidityBalance = address(this).balance - distributeBalance - auxiliaryBalance - treasuryBalance;

        if (distributeBalance >= balanceThreshold) {
            sendDistributeBalance();
        }

        if (auxiliaryBalance >= balanceThreshold) {
            sendAuxiliaryBalance();
        }

        if (treasuryBalance >= balanceThreshold) {
            sendTreasuryBalance();
        }

        if (liquidityBalance >= balanceThreshold) {
            buyBackAndAddLiquidity();
        }
    }

    function sendDistributeBalance() public {
        if (distributeTarget == address(0)) {
            return;
        }

        IX7EcosystemSplitter(distributeTarget).takeBalance();

        uint256 ethToSend = distributeBalance;
        distributeBalance = 0;

        (bool success,) = distributeTarget.call{value: ethToSend}("");

        if (!success) {
            distributeBalance = ethToSend;
        }
    }

    function sendTreasuryBalance() public {
        if (treasuryTarget == address(0)) {
            return;
        }

        uint256 ethToSend = treasuryBalance;
        treasuryBalance = 0;

        (bool success,) = treasuryTarget.call{value: ethToSend}("");

        if (!success) {
            treasuryBalance = ethToSend;
        }
    }

    function sendAuxiliaryBalance() internal {
        if (auxiliaryTarget == address(0)) {
            return;
        }

        uint256 ethToSend = auxiliaryBalance;
        auxiliaryBalance = 0;

        (bool success,) = auxiliaryTarget.call{value: ethToSend}("");

        if (!success) {
            auxiliaryBalance = ethToSend;
        }
    }

    function buyBackAndAddLiquidity() internal {
        uint256 ethForSwap;
        uint256 startingETHBalance = address(this).balance;

        if (x7dao.balanceOf(offRampPair) > x7dao.circulatingSupply() * liquidityRatioTarget / 100 ) {
            ethForSwap = liquidityBalance;
            liquidityBalance = 0;
            swapEthForTokens(ethForSwap);
        } else {
            ethForSwap = liquidityBalance;
            liquidityBalance = 0;

            if (x7dao.balanceOf(address(this)) > 0) {
                addLiquidityETH(x7dao.balanceOf(address(this)), ethForSwap);
                ethForSwap = ethForSwap - (startingETHBalance - address(this).balance);
            }

            if (ethForSwap > 0) {
                uint256 ethLeft = ethForSwap;
                ethForSwap = ethLeft / 2;
                uint256 ethForLiquidity = ethLeft - ethForSwap;
                swapEthForTokens(ethForSwap);
                addLiquidityETH(x7dao.balanceOf(address(this)), ethForLiquidity);
            }
        }

        x7daoLiquidityBalance = x7dao.balanceOf(address(this));

    }

    function addLiquidityETH(uint256 tokenAmount, uint256 ethAmount) internal {
        x7dao.approve(address(router), tokenAmount);
        router.addLiquidityETH{value: ethAmount}(
            address(x7dao),
            tokenAmount,
            0,
            0,
            liquidityTokenReceiver,
            block.timestamp
        );
    }

    function swapTokensForEth(address tokenAddress, uint256 tokenAmount) internal {
        address[] memory path = new address[](2);
        path[0] = tokenAddress;
        path[1] = router.WETH();

        IERC20(tokenAddress).approve(address(router), tokenAmount);
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function swapEthForTokens(uint256 ethAmount) internal {
        address[] memory path = new address[](2);
        path[0] = router.WETH();
        path[1] = address(x7dao);
        router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: ethAmount}(
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function rescueWETH() external {
        address wethAddress = router.WETH();
        IWETH(wethAddress).withdraw(IERC20(wethAddress).balanceOf(address(this)));
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"x7dao_","type":"address"},{"internalType":"address","name":"router_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[],"name":"AuxiliaryTargetFrozen","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldTarget","type":"address"},{"indexed":true,"internalType":"address","name":"newTarget","type":"address"}],"name":"AuxiliaryTargetSet","type":"event"},{"anonymous":false,"inputs":[],"name":"BalanceThresholdFrozen","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"threshold","type":"uint256"}],"name":"BalanceThresholdSet","type":"event"},{"anonymous":false,"inputs":[],"name":"DistributeTargetFrozen","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldTarget","type":"address"},{"indexed":true,"internalType":"address","name":"newTarget","type":"address"}],"name":"DistributeTargetSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"liquidityRatioTarget","type":"uint256"}],"name":"LiquidityRatioTargetSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldReciever","type":"address"},{"indexed":true,"internalType":"address","name":"newReceiver","type":"address"}],"name":"LiquidityTokenReceiverSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"offRampPair","type":"address"}],"name":"OffRampPairSet","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":false,"internalType":"address","name":"router","type":"address"}],"name":"RouterSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"distributeShare","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"liquidityShare","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"auxiliaryShare","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"treasuryShare","type":"uint256"}],"name":"SharesSet","type":"event"},{"anonymous":false,"inputs":[],"name":"TreasuryTargetFrozen","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldTarget","type":"address"},{"indexed":true,"internalType":"address","name":"newTarget","type":"address"}],"name":"TreasuryTargetSet","type":"event"},{"inputs":[],"name":"auxiliaryBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"auxiliaryShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"auxiliaryTarget","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"auxiliaryTargetFrozen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"balanceThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"balanceThresholdFrozen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"distributeBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"distributeShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"distributeTarget","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"distributeTargetFrozen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"freezeAuxiliaryTarget","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"freezeBalanceThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"freezeDistributeTarget","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"freezeTreasuryTarget","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"liquidityBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityRatioTarget","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityTokenReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxLiquidityRatioTarget","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minLiquidityRatioTarget","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"offRampPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"processFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueWETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IUniswapV2Router","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sendDistributeBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sendTreasuryBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"setAuxiliaryTarget","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"threshold","type":"uint256"}],"name":"setBalanceThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"setDistributionTarget","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"liquidityRatioTarget_","type":"uint256"}],"name":"setLiquidityRatioTarget","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"liquidityTokenReceiver_","type":"address"}],"name":"setLiquidityTokenReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"offRampPairAddress","type":"address"}],"name":"setOffRampPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"router_","type":"address"}],"name":"setRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"distributeShare_","type":"uint256"},{"internalType":"uint256","name":"liquidityShare_","type":"uint256"},{"internalType":"uint256","name":"auxiliaryShare_","type":"uint256"},{"internalType":"uint256","name":"treasuryShare_","type":"uint256"}],"name":"setShares","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"setTreasuryTarget","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"treasuryBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"treasuryShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"treasuryTarget","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"treasuryTargetFrozen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"x7dao","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"x7daoLiquidityBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600580556063600655600f600755609660085561019060095561012c600a5560c8600b5560fa600c5560fa600d55670de0b6b3a7640000600e553480156200004b57600080fd5b5060405162002040380380620020408339810160408190526200006e9162000165565b737000a09c425abf5173ff458df1370c25d1c581056200008e81620000f8565b50600180546001600160a01b038381166001600160a01b0319928316811790935560038054918616919092161790556040519081527fc6b438e6a8a59579ce6a4406cbd203b740e0d47b458aae6596339bcd40c40d159060200160405180910390a150506200019d565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146200016057600080fd5b919050565b600080604083850312156200017957600080fd5b620001848362000148565b9150620001946020840162000148565b90509250929050565b611e9380620001ad6000396000f3fe6080604052600436106102805760003560e01c8063933401a41161014f578063cb3f4f17116100c1578063e97ca4b11161007a578063e97ca4b1146106dd578063f03b6ffc146106fd578063f2fde38b1461071d578063f48167a51461073d578063f7b9f7621461075d578063f887ea401461077d57600080fd5b8063cb3f4f171461061d578063cd92c5ee1461064e578063d938a3e61461066f578063dbc609f814610690578063e0f0edc6146106a6578063e2568ad2146106c757600080fd5b8063be1c714211610113578063be1c714214610586578063c0d78655146105a6578063c3173774146105c6578063c38ec0b6146105dc578063c3926a29146105f1578063c96f4d4d1461060757600080fd5b8063933401a4146104fb57806399eefadb14610510578063a1a8d3c814610526578063b5fb217414610546578063b68e204c1461056657600080fd5b806373bdeb49116101f3578063838bf401116101ac578063838bf4011461045b57806387020d6b146104715780638ad10792146104915780638bb28de2146104a75780638da5cb5b146104bd57806390d8dec7146104db57600080fd5b806373bdeb49146103ac5780637796ff37146103c157806377e7e202146103d75780637943da69146103f75780637b31bd781461040d5780637c513ce61461044557600080fd5b8063517cafef11610245578063517cafef1461030c5780635a75a8091461032c57806361582eaa1461034257806366096ebf146103625780636aea97f014610382578063715018a61461039757600080fd5b8062e553121461028c578063099f833e146102a357806315291cd4146102b8578063313dab20146102e15780633802fa43146102f757600080fd5b3661028757005b600080fd5b34801561029857600080fd5b506102a161079d565b005b3480156102af57600080fd5b506102a1610820565b3480156102c457600080fd5b506102ce600b5481565b6040519081526020015b60405180910390f35b3480156102ed57600080fd5b506102ce60115481565b34801561030357600080fd5b506102a1610908565b34801561031857600080fd5b506102a1610327366004611c17565b610965565b34801561033857600080fd5b506102ce60095481565b34801561034e57600080fd5b506102a161035d366004611c17565b610a1c565b34801561036e57600080fd5b506102a161037d366004611c17565b610bdf565b34801561038e57600080fd5b506102a1610c96565b3480156103a357600080fd5b506102a1610cf3565b3480156103b857600080fd5b506102a1610d07565b3480156103cd57600080fd5b506102ce600d5481565b3480156103e357600080fd5b506102a16103f2366004611c17565b610d64565b34801561040357600080fd5b506102ce600f5481565b34801561041957600080fd5b5060025461042d906001600160a01b031681565b6040516001600160a01b0390911681526020016102d8565b34801561045157600080fd5b506102ce600c5481565b34801561046757600080fd5b506102ce60135481565b34801561047d57600080fd5b506102a161048c366004611c3b565b610e04565b34801561049d57600080fd5b506102ce60105481565b3480156104b357600080fd5b506102ce60085481565b3480156104c957600080fd5b506000546001600160a01b031661042d565b3480156104e757600080fd5b506102a16104f6366004611c3b565b610e5f565b34801561050757600080fd5b506102a1610ec9565b34801561051c57600080fd5b506102ce60065481565b34801561053257600080fd5b5060035461042d906001600160a01b031681565b34801561055257600080fd5b5060145461042d906001600160a01b031681565b34801561057257600080fd5b5060165461042d906001600160a01b031681565b34801561059257600080fd5b506102a16105a1366004611c17565b610f26565b3480156105b257600080fd5b506102a16105c1366004611c17565b610f92565b3480156105d257600080fd5b506102ce600e5481565b3480156105e857600080fd5b506102a1611003565b3480156105fd57600080fd5b506102ce60125481565b34801561061357600080fd5b506102ce60075481565b34801561062957600080fd5b5060165461063e90600160a01b900460ff1681565b60405190151581526020016102d8565b34801561065a57600080fd5b5060165461063e90600160a81b900460ff1681565b34801561067b57600080fd5b5060165461063e90600160b01b900460ff1681565b34801561069c57600080fd5b506102ce60055481565b3480156106b257600080fd5b5060165461063e90600160b81b900460ff1681565b3480156106d357600080fd5b506102ce600a5481565b3480156106e957600080fd5b506102a16106f8366004611c17565b611138565b34801561070957600080fd5b506102a1610718366004611c54565b6111ef565b34801561072957600080fd5b506102a1610738366004611c17565b611304565b34801561074957600080fd5b5060045461042d906001600160a01b031681565b34801561076957600080fd5b5060155461042d906001600160a01b031681565b34801561078957600080fd5b5060015461042d906001600160a01b031681565b6016546001600160a01b03166107af57565b601180546000918290556016546040519192916001600160a01b039091169083908381818185875af1925050503d8060008114610808576040519150601f19603f3d011682016040523d82523d6000602084013e61080d565b606091505b505090508061081c5760118290555b5050565b6014546001600160a01b031661083257565b601460009054906101000a90046001600160a01b03166001600160a01b03166329a2192b6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561088257600080fd5b505af1158015610896573d6000803e3d6000fd5b5050600f80546000918290556014546040519194509192506001600160a01b039091169083908381818185875af1925050503d80600081146108f4576040519150601f19603f3d011682016040523d82523d6000602084013e6108f9565b606091505b505090508061081c5750600f55565b610910611382565b601654600160b01b900460ff161561092757600080fd5b6016805460ff60b01b1916600160b01b1790556040517fbe12b38d4cf4c293207b3ef208df8a6fcdd921b2f47ef87a780c5cf0dc8b8e8b90600090a1565b61096d611382565b6001600160a01b0381161580159061099057506001600160a01b03811661dead14155b80156109aa57506014546001600160a01b03828116911614155b6109b357600080fd5b601654600160a01b900460ff16156109ca57600080fd5b601480546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f035f81230cd5b48929f16ee6e30f062311fb20ffbc64091e16b40a97fcccb86090600090a35050565b6040516370a0823160e01b815230600482015247906000906001600160a01b038416906370a0823190602401602060405180830381865afa158015610a65573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a899190611c86565b6003549091506001600160a01b0390811690841603610ab257601354610aaf9082611cb5565b90505b8015610ac257610ac283826113eb565b6000610ace8347611cb5565b90506103e8600a5482610ae19190611ccc565b610aeb9190611ceb565b600f6000828254610afc9190611d0d565b9091555050600c546103e890610b129083611ccc565b610b1c9190611ceb565b60106000828254610b2d9190611d0d565b9091555050600d546103e890610b439083611ccc565b610b4d9190611ceb565b60116000828254610b5e9190611d0d565b9091555050601154601054600f54610b769047611cb5565b610b809190611cb5565b610b8a9190611cb5565b601255600e54600f5410610ba057610ba0610820565b600e5460105410610bb357610bb36115a8565b600e5460115410610bc657610bc661079d565b600e5460125410610bd957610bd9611627565b50505050565b610be7611382565b6001600160a01b03811615801590610c0a57506001600160a01b03811661dead14155b8015610c2457506015546001600160a01b03828116911614155b610c2d57600080fd5b601654600160a81b900460ff1615610c4457600080fd5b601580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907ffdf720622c2647f671ee76a7e1fa6a1deb3dcba5a7922bfb3880fc1dcf3b594f90600090a35050565b610c9e611382565b601654600160a01b900460ff1615610cb557600080fd5b6016805460ff60a01b1916600160a01b1790556040517f6e646a980ba56ee7cb3031c878bc514eee5ea01f8d11b005ab630c470a5cfe8990600090a1565b610cfb611382565b610d056000611969565b565b610d0f611382565b601654600160b81b900460ff1615610d2657600080fd5b6016805460ff60b81b1916600160b81b1790556040517ff0fee47614f22f38389abedf99711a8247311a440e37da802db457410f79b44990600090a1565b610d6c611382565b6001600160a01b03811615801590610d8f57506001600160a01b03811661dead14155b8015610da957506004546001600160a01b03828116911614155b610db257600080fd5b600480546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f3431bc932834bba479a2b59e0fc776b87c0e05ea4837cf59330044387228809c90600090a35050565b610e0c611382565b601654600160b81b900460ff1615610e2357600080fd5b600e8190556040518181527fe8c946fc4a31c5e8b0827f04d65a6871a11eed499a6a4c7a5575984ee57fcaaf906020015b60405180910390a150565b610e67611382565b6007548103610e7557600080fd5b6005548110158015610e8b575060065460075411155b610e9457600080fd5b60078190556040518181527fdd892b1378d52503cedc68cc47f2cc1154ba54000d37699cd219ee8ee226031c90602001610e54565b610ed1611382565b601654600160a81b900460ff1615610ee857600080fd5b6016805460ff60a81b1916600160a81b1790556040517f6c8aff4615cb4702edc0f0c4a9bc2cddc262e4b884e109d104be54242458794f90600090a1565b610f2e611382565b6002546001600160a01b03808316911603610f4857600080fd5b600280546001600160a01b0319166001600160a01b0383169081179091556040517f205890426c74334fba9f3d65990e94e55dac01584e054394ab50173c4a01da2d90600090a250565b610f9a611382565b6001546001600160a01b0390811690821603610fb557600080fd5b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527fc6b438e6a8a59579ce6a4406cbd203b740e0d47b458aae6596339bcd40c40d1590602001610e54565b600154604080516315ab88c960e31b815290516000926001600160a01b03169163ad5c4648916004808301926020929190829003018187875af115801561104e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110729190611d25565b6040516370a0823160e01b81523060048201529091506001600160a01b03821690632e1a7d4d9082906370a0823190602401602060405180830381865afa1580156110c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e59190611c86565b6040518263ffffffff1660e01b815260040161110391815260200190565b600060405180830381600087803b15801561111d57600080fd5b505af1158015611131573d6000803e3d6000fd5b5050505050565b611140611382565b6001600160a01b0381161580159061116357506001600160a01b03811661dead14155b801561117d57506016546001600160a01b03828116911614155b61118657600080fd5b601654600160b01b900460ff161561119d57600080fd5b601680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f1d440445044acc67b35f82fda02fc5d23c22f882b4bde500e8949931a3d990e190600090a35050565b6111f7611382565b600d54600c54600b54600a5461120d9190611d0d565b6112179190611d0d565b6112219190611d0d565b6103e81461122e57600080fd5b600854841015801561124257506009548411155b61124b57600080fd5b600854831015801561125f57506009548311155b61126857600080fd5b600854821015801561127c57506009548211155b61128557600080fd5b600854811015801561129957506009548111155b6112a257600080fd5b600a849055600b839055600c829055600d8190556040805185815260208101859052908101839052606081018290527fdba57146a04ecfe691533212d4dc5dd0f01e5622f6da6351e42fc10876bcfa3e9060800160405180910390a150505050565b61130c611382565b6001600160a01b0381166113765760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b61137f81611969565b50565b336113956000546001600160a01b031690565b6001600160a01b031614610d055760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161136d565b604080516002808252606082018352600092602083019080368337019050509050828160008151811061142057611420611d42565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c464892600480830193919282900301816000875af115801561147b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149f9190611d25565b816001815181106114b2576114b2611d42565b6001600160a01b03928316602091820292909201015260015460405163095ea7b360e01b81529082166004820152602481018490529084169063095ea7b3906044016020604051808303816000875af1158015611513573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115379190611d58565b5060015460405163791ac94760e01b81526001600160a01b039091169063791ac94790611571908590600090869030904290600401611dbe565b600060405180830381600087803b15801561158b57600080fd5b505af115801561159f573d6000803e3d6000fd5b50505050505050565b6015546001600160a01b03166115ba57565b601080546000918290556015546040519192916001600160a01b039091169083908381818185875af1925050503d8060008114611613576040519150601f19603f3d011682016040523d82523d6000602084013e611618565b606091505b505090508061081c5750601055565b6000804790506064600754600360009054906101000a90046001600160a01b03166001600160a01b0316639358928b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611685573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116a99190611c86565b6116b39190611ccc565b6116bd9190611ceb565b6003546002546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a0823190602401602060405180830381865afa158015611709573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061172d9190611c86565b111561174c576012805460009091559150611747826119b9565b6118f6565b601280546000918290556003546040516370a0823160e01b81523060048201529194506001600160a01b0316906370a0823190602401602060405180830381865afa15801561179f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c39190611c86565b1115611854576003546040516370a0823160e01b815230600482015261183d916001600160a01b0316906370a0823190602401602060405180830381865afa158015611813573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118379190611c86565b83611aec565b6118474782611cb5565b6118519083611cb5565b91505b81156118f65781611866600282611ceb565b925060006118748483611cb5565b905061187f846119b9565b6003546040516370a0823160e01b81523060048201526118f3916001600160a01b0316906370a0823190602401602060405180830381865afa1580156118c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118ed9190611c86565b82611aec565b50505b6003546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa15801561193e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119629190611c86565b6013555050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040805160028082526060820183526000926020830190803683375050600154604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c46489250600480830192602092919082900301816000875af1158015611a25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a499190611d25565b81600081518110611a5c57611a5c611d42565b6001600160a01b039283166020918202929092010152600354825191169082906001908110611a8d57611a8d611d42565b6001600160a01b03928316602091820292909201015260015460405163b6f9de9560e01b815291169063b6f9de95908490611ad390600090869030904290600401611dfa565b6000604051808303818588803b15801561158b57600080fd5b60035460015460405163095ea7b360e01b81526001600160a01b0391821660048201526024810185905291169063095ea7b3906044016020604051808303816000875af1158015611b41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b659190611d58565b506001546003546004805460405163f305d71960e01b81526001600160a01b0393841692810192909252602482018690526000604483018190526064830152821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611bdd573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906111319190611e2f565b6001600160a01b038116811461137f57600080fd5b600060208284031215611c2957600080fd5b8135611c3481611c02565b9392505050565b600060208284031215611c4d57600080fd5b5035919050565b60008060008060808587031215611c6a57600080fd5b5050823594602084013594506040840135936060013592509050565b600060208284031215611c9857600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b600082821015611cc757611cc7611c9f565b500390565b6000816000190483118215151615611ce657611ce6611c9f565b500290565b600082611d0857634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115611d2057611d20611c9f565b500190565b600060208284031215611d3757600080fd5b8151611c3481611c02565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611d6a57600080fd5b81518015158114611c3457600080fd5b600081518084526020808501945080840160005b83811015611db35781516001600160a01b031687529582019590820190600101611d8e565b509495945050505050565b85815284602082015260a060408201526000611ddd60a0830186611d7a565b6001600160a01b0394909416606083015250608001529392505050565b848152608060208201526000611e136080830186611d7a565b6001600160a01b03949094166040830152506060015292915050565b600080600060608486031215611e4457600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220c48c1aade445210fe5190cff54121ed8f8685c5df206f21ba6e1b3dbc931b66664736f6c634300080f003300000000000000000000000071055e831718b0ff4db6abe514225f16bceb2da00000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

Deployed Bytecode

0x6080604052600436106102805760003560e01c8063933401a41161014f578063cb3f4f17116100c1578063e97ca4b11161007a578063e97ca4b1146106dd578063f03b6ffc146106fd578063f2fde38b1461071d578063f48167a51461073d578063f7b9f7621461075d578063f887ea401461077d57600080fd5b8063cb3f4f171461061d578063cd92c5ee1461064e578063d938a3e61461066f578063dbc609f814610690578063e0f0edc6146106a6578063e2568ad2146106c757600080fd5b8063be1c714211610113578063be1c714214610586578063c0d78655146105a6578063c3173774146105c6578063c38ec0b6146105dc578063c3926a29146105f1578063c96f4d4d1461060757600080fd5b8063933401a4146104fb57806399eefadb14610510578063a1a8d3c814610526578063b5fb217414610546578063b68e204c1461056657600080fd5b806373bdeb49116101f3578063838bf401116101ac578063838bf4011461045b57806387020d6b146104715780638ad10792146104915780638bb28de2146104a75780638da5cb5b146104bd57806390d8dec7146104db57600080fd5b806373bdeb49146103ac5780637796ff37146103c157806377e7e202146103d75780637943da69146103f75780637b31bd781461040d5780637c513ce61461044557600080fd5b8063517cafef11610245578063517cafef1461030c5780635a75a8091461032c57806361582eaa1461034257806366096ebf146103625780636aea97f014610382578063715018a61461039757600080fd5b8062e553121461028c578063099f833e146102a357806315291cd4146102b8578063313dab20146102e15780633802fa43146102f757600080fd5b3661028757005b600080fd5b34801561029857600080fd5b506102a161079d565b005b3480156102af57600080fd5b506102a1610820565b3480156102c457600080fd5b506102ce600b5481565b6040519081526020015b60405180910390f35b3480156102ed57600080fd5b506102ce60115481565b34801561030357600080fd5b506102a1610908565b34801561031857600080fd5b506102a1610327366004611c17565b610965565b34801561033857600080fd5b506102ce60095481565b34801561034e57600080fd5b506102a161035d366004611c17565b610a1c565b34801561036e57600080fd5b506102a161037d366004611c17565b610bdf565b34801561038e57600080fd5b506102a1610c96565b3480156103a357600080fd5b506102a1610cf3565b3480156103b857600080fd5b506102a1610d07565b3480156103cd57600080fd5b506102ce600d5481565b3480156103e357600080fd5b506102a16103f2366004611c17565b610d64565b34801561040357600080fd5b506102ce600f5481565b34801561041957600080fd5b5060025461042d906001600160a01b031681565b6040516001600160a01b0390911681526020016102d8565b34801561045157600080fd5b506102ce600c5481565b34801561046757600080fd5b506102ce60135481565b34801561047d57600080fd5b506102a161048c366004611c3b565b610e04565b34801561049d57600080fd5b506102ce60105481565b3480156104b357600080fd5b506102ce60085481565b3480156104c957600080fd5b506000546001600160a01b031661042d565b3480156104e757600080fd5b506102a16104f6366004611c3b565b610e5f565b34801561050757600080fd5b506102a1610ec9565b34801561051c57600080fd5b506102ce60065481565b34801561053257600080fd5b5060035461042d906001600160a01b031681565b34801561055257600080fd5b5060145461042d906001600160a01b031681565b34801561057257600080fd5b5060165461042d906001600160a01b031681565b34801561059257600080fd5b506102a16105a1366004611c17565b610f26565b3480156105b257600080fd5b506102a16105c1366004611c17565b610f92565b3480156105d257600080fd5b506102ce600e5481565b3480156105e857600080fd5b506102a1611003565b3480156105fd57600080fd5b506102ce60125481565b34801561061357600080fd5b506102ce60075481565b34801561062957600080fd5b5060165461063e90600160a01b900460ff1681565b60405190151581526020016102d8565b34801561065a57600080fd5b5060165461063e90600160a81b900460ff1681565b34801561067b57600080fd5b5060165461063e90600160b01b900460ff1681565b34801561069c57600080fd5b506102ce60055481565b3480156106b257600080fd5b5060165461063e90600160b81b900460ff1681565b3480156106d357600080fd5b506102ce600a5481565b3480156106e957600080fd5b506102a16106f8366004611c17565b611138565b34801561070957600080fd5b506102a1610718366004611c54565b6111ef565b34801561072957600080fd5b506102a1610738366004611c17565b611304565b34801561074957600080fd5b5060045461042d906001600160a01b031681565b34801561076957600080fd5b5060155461042d906001600160a01b031681565b34801561078957600080fd5b5060015461042d906001600160a01b031681565b6016546001600160a01b03166107af57565b601180546000918290556016546040519192916001600160a01b039091169083908381818185875af1925050503d8060008114610808576040519150601f19603f3d011682016040523d82523d6000602084013e61080d565b606091505b505090508061081c5760118290555b5050565b6014546001600160a01b031661083257565b601460009054906101000a90046001600160a01b03166001600160a01b03166329a2192b6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561088257600080fd5b505af1158015610896573d6000803e3d6000fd5b5050600f80546000918290556014546040519194509192506001600160a01b039091169083908381818185875af1925050503d80600081146108f4576040519150601f19603f3d011682016040523d82523d6000602084013e6108f9565b606091505b505090508061081c5750600f55565b610910611382565b601654600160b01b900460ff161561092757600080fd5b6016805460ff60b01b1916600160b01b1790556040517fbe12b38d4cf4c293207b3ef208df8a6fcdd921b2f47ef87a780c5cf0dc8b8e8b90600090a1565b61096d611382565b6001600160a01b0381161580159061099057506001600160a01b03811661dead14155b80156109aa57506014546001600160a01b03828116911614155b6109b357600080fd5b601654600160a01b900460ff16156109ca57600080fd5b601480546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f035f81230cd5b48929f16ee6e30f062311fb20ffbc64091e16b40a97fcccb86090600090a35050565b6040516370a0823160e01b815230600482015247906000906001600160a01b038416906370a0823190602401602060405180830381865afa158015610a65573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a899190611c86565b6003549091506001600160a01b0390811690841603610ab257601354610aaf9082611cb5565b90505b8015610ac257610ac283826113eb565b6000610ace8347611cb5565b90506103e8600a5482610ae19190611ccc565b610aeb9190611ceb565b600f6000828254610afc9190611d0d565b9091555050600c546103e890610b129083611ccc565b610b1c9190611ceb565b60106000828254610b2d9190611d0d565b9091555050600d546103e890610b439083611ccc565b610b4d9190611ceb565b60116000828254610b5e9190611d0d565b9091555050601154601054600f54610b769047611cb5565b610b809190611cb5565b610b8a9190611cb5565b601255600e54600f5410610ba057610ba0610820565b600e5460105410610bb357610bb36115a8565b600e5460115410610bc657610bc661079d565b600e5460125410610bd957610bd9611627565b50505050565b610be7611382565b6001600160a01b03811615801590610c0a57506001600160a01b03811661dead14155b8015610c2457506015546001600160a01b03828116911614155b610c2d57600080fd5b601654600160a81b900460ff1615610c4457600080fd5b601580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907ffdf720622c2647f671ee76a7e1fa6a1deb3dcba5a7922bfb3880fc1dcf3b594f90600090a35050565b610c9e611382565b601654600160a01b900460ff1615610cb557600080fd5b6016805460ff60a01b1916600160a01b1790556040517f6e646a980ba56ee7cb3031c878bc514eee5ea01f8d11b005ab630c470a5cfe8990600090a1565b610cfb611382565b610d056000611969565b565b610d0f611382565b601654600160b81b900460ff1615610d2657600080fd5b6016805460ff60b81b1916600160b81b1790556040517ff0fee47614f22f38389abedf99711a8247311a440e37da802db457410f79b44990600090a1565b610d6c611382565b6001600160a01b03811615801590610d8f57506001600160a01b03811661dead14155b8015610da957506004546001600160a01b03828116911614155b610db257600080fd5b600480546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f3431bc932834bba479a2b59e0fc776b87c0e05ea4837cf59330044387228809c90600090a35050565b610e0c611382565b601654600160b81b900460ff1615610e2357600080fd5b600e8190556040518181527fe8c946fc4a31c5e8b0827f04d65a6871a11eed499a6a4c7a5575984ee57fcaaf906020015b60405180910390a150565b610e67611382565b6007548103610e7557600080fd5b6005548110158015610e8b575060065460075411155b610e9457600080fd5b60078190556040518181527fdd892b1378d52503cedc68cc47f2cc1154ba54000d37699cd219ee8ee226031c90602001610e54565b610ed1611382565b601654600160a81b900460ff1615610ee857600080fd5b6016805460ff60a81b1916600160a81b1790556040517f6c8aff4615cb4702edc0f0c4a9bc2cddc262e4b884e109d104be54242458794f90600090a1565b610f2e611382565b6002546001600160a01b03808316911603610f4857600080fd5b600280546001600160a01b0319166001600160a01b0383169081179091556040517f205890426c74334fba9f3d65990e94e55dac01584e054394ab50173c4a01da2d90600090a250565b610f9a611382565b6001546001600160a01b0390811690821603610fb557600080fd5b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527fc6b438e6a8a59579ce6a4406cbd203b740e0d47b458aae6596339bcd40c40d1590602001610e54565b600154604080516315ab88c960e31b815290516000926001600160a01b03169163ad5c4648916004808301926020929190829003018187875af115801561104e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110729190611d25565b6040516370a0823160e01b81523060048201529091506001600160a01b03821690632e1a7d4d9082906370a0823190602401602060405180830381865afa1580156110c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e59190611c86565b6040518263ffffffff1660e01b815260040161110391815260200190565b600060405180830381600087803b15801561111d57600080fd5b505af1158015611131573d6000803e3d6000fd5b5050505050565b611140611382565b6001600160a01b0381161580159061116357506001600160a01b03811661dead14155b801561117d57506016546001600160a01b03828116911614155b61118657600080fd5b601654600160b01b900460ff161561119d57600080fd5b601680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f1d440445044acc67b35f82fda02fc5d23c22f882b4bde500e8949931a3d990e190600090a35050565b6111f7611382565b600d54600c54600b54600a5461120d9190611d0d565b6112179190611d0d565b6112219190611d0d565b6103e81461122e57600080fd5b600854841015801561124257506009548411155b61124b57600080fd5b600854831015801561125f57506009548311155b61126857600080fd5b600854821015801561127c57506009548211155b61128557600080fd5b600854811015801561129957506009548111155b6112a257600080fd5b600a849055600b839055600c829055600d8190556040805185815260208101859052908101839052606081018290527fdba57146a04ecfe691533212d4dc5dd0f01e5622f6da6351e42fc10876bcfa3e9060800160405180910390a150505050565b61130c611382565b6001600160a01b0381166113765760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b61137f81611969565b50565b336113956000546001600160a01b031690565b6001600160a01b031614610d055760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161136d565b604080516002808252606082018352600092602083019080368337019050509050828160008151811061142057611420611d42565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c464892600480830193919282900301816000875af115801561147b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149f9190611d25565b816001815181106114b2576114b2611d42565b6001600160a01b03928316602091820292909201015260015460405163095ea7b360e01b81529082166004820152602481018490529084169063095ea7b3906044016020604051808303816000875af1158015611513573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115379190611d58565b5060015460405163791ac94760e01b81526001600160a01b039091169063791ac94790611571908590600090869030904290600401611dbe565b600060405180830381600087803b15801561158b57600080fd5b505af115801561159f573d6000803e3d6000fd5b50505050505050565b6015546001600160a01b03166115ba57565b601080546000918290556015546040519192916001600160a01b039091169083908381818185875af1925050503d8060008114611613576040519150601f19603f3d011682016040523d82523d6000602084013e611618565b606091505b505090508061081c5750601055565b6000804790506064600754600360009054906101000a90046001600160a01b03166001600160a01b0316639358928b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611685573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116a99190611c86565b6116b39190611ccc565b6116bd9190611ceb565b6003546002546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a0823190602401602060405180830381865afa158015611709573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061172d9190611c86565b111561174c576012805460009091559150611747826119b9565b6118f6565b601280546000918290556003546040516370a0823160e01b81523060048201529194506001600160a01b0316906370a0823190602401602060405180830381865afa15801561179f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c39190611c86565b1115611854576003546040516370a0823160e01b815230600482015261183d916001600160a01b0316906370a0823190602401602060405180830381865afa158015611813573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118379190611c86565b83611aec565b6118474782611cb5565b6118519083611cb5565b91505b81156118f65781611866600282611ceb565b925060006118748483611cb5565b905061187f846119b9565b6003546040516370a0823160e01b81523060048201526118f3916001600160a01b0316906370a0823190602401602060405180830381865afa1580156118c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118ed9190611c86565b82611aec565b50505b6003546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa15801561193e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119629190611c86565b6013555050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040805160028082526060820183526000926020830190803683375050600154604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c46489250600480830192602092919082900301816000875af1158015611a25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a499190611d25565b81600081518110611a5c57611a5c611d42565b6001600160a01b039283166020918202929092010152600354825191169082906001908110611a8d57611a8d611d42565b6001600160a01b03928316602091820292909201015260015460405163b6f9de9560e01b815291169063b6f9de95908490611ad390600090869030904290600401611dfa565b6000604051808303818588803b15801561158b57600080fd5b60035460015460405163095ea7b360e01b81526001600160a01b0391821660048201526024810185905291169063095ea7b3906044016020604051808303816000875af1158015611b41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b659190611d58565b506001546003546004805460405163f305d71960e01b81526001600160a01b0393841692810192909252602482018690526000604483018190526064830152821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611bdd573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906111319190611e2f565b6001600160a01b038116811461137f57600080fd5b600060208284031215611c2957600080fd5b8135611c3481611c02565b9392505050565b600060208284031215611c4d57600080fd5b5035919050565b60008060008060808587031215611c6a57600080fd5b5050823594602084013594506040840135936060013592509050565b600060208284031215611c9857600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b600082821015611cc757611cc7611c9f565b500390565b6000816000190483118215151615611ce657611ce6611c9f565b500290565b600082611d0857634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115611d2057611d20611c9f565b500190565b600060208284031215611d3757600080fd5b8151611c3481611c02565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611d6a57600080fd5b81518015158114611c3457600080fd5b600081518084526020808501945080840160005b83811015611db35781516001600160a01b031687529582019590820190600101611d8e565b509495945050505050565b85815284602082015260a060408201526000611ddd60a0830186611d7a565b6001600160a01b0394909416606083015250608001529392505050565b848152608060208201526000611e136080830186611d7a565b6001600160a01b03949094166040830152506060015292915050565b600080600060608486031215611e4457600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220c48c1aade445210fe5190cff54121ed8f8685c5df206f21ba6e1b3dbc931b66664736f6c634300080f0033

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

00000000000000000000000071055e831718b0ff4db6abe514225f16bceb2da00000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

-----Decoded View---------------
Arg [0] : x7dao_ (address): 0x71055e831718B0FF4dB6AbE514225F16bCeb2dA0
Arg [1] : router_ (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 00000000000000000000000071055e831718b0ff4db6abe514225f16bceb2da0
Arg [1] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d


Deployed Bytecode Sourcemap

7965:11791:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16504:353;;;;;;;;;;;;;:::i;:::-;;16066:430;;;;;;;;;;;;;:::i;8436:35::-;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;8436:35:0;;;;;;;;8690:30;;;;;;;;;;;;;;;;14056:176;;;;;;;;;;;;;:::i;12646:476::-;;;;;;;;;;-1:-1:-1;12646:476:0;;;;;:::i;:::-;;:::i;8355:29::-;;;;;;;;;;;;;;;;14812:1246;;;;;;;;;;-1:-1:-1;14812:1246:0;;;;;:::i;:::-;;:::i;13130:458::-;;;;;;;;;;-1:-1:-1;13130:458:0;;;;;:::i;:::-;;:::i;14240:184::-;;;;;;;;;;;;;:::i;6139:103::-;;;;;;;;;;;;;:::i;14620:184::-;;;;;;;;;;;;;:::i;8520:34::-;;;;;;;;;;;;;;;;12078:560;;;;;;;;;;-1:-1:-1;12078:560:0;;;;;:::i;:::-;;:::i;8613:32::-;;;;;;;;;;;;;;;;8064:26;;;;;;;;;;-1:-1:-1;8064:26:0;;;;-1:-1:-1;;;;;8064:26:0;;;;;;-1:-1:-1;;;;;748:32:1;;;730:51;;718:2;703:18;8064:26:0;584:203:1;8478:35:0;;;;;;;;;;;;;;;;8765:36;;;;;;;;;;;;;;;;11467:203;;;;;;;;;;-1:-1:-1;11467:203:0;;;;;:::i;:::-;;:::i;8652:31::-;;;;;;;;;;;;;;;;8319:29;;;;;;;;;;;;;;;;5906:87;;;;;;;;;;-1:-1:-1;5952:7:0;5979:6;-1:-1:-1;;;;;5979:6:0;5906:87;;11678:392;;;;;;;;;;-1:-1:-1;11678:392:0;;;;;:::i;:::-;;:::i;14432:180::-;;;;;;;;;;;;;:::i;8218:43::-;;;;;;;;;;;;;;;;8099:19;;;;;;;;;;-1:-1:-1;8099:19:0;;;;-1:-1:-1;;;;;8099:19:0;;;8810:39;;;;;;;;;;-1:-1:-1;8810:39:0;;;;-1:-1:-1;;;;;8810:39:0;;;8901:37;;;;;;;;;;-1:-1:-1;8901:37:0;;;;-1:-1:-1;;;;;8901:37:0;;;11234:225;;;;;;;;;;-1:-1:-1;11234:225:0;;;;;:::i;:::-;;:::i;11038:188::-;;;;;;;;;;-1:-1:-1;11038:188:0;;;;;:::i;:::-;;:::i;8563:41::-;;;;;;;;;;;;;;;;19584:169;;;;;;;;;;;;;:::i;8727:31::-;;;;;;;;;;;;;;;;8270:40;;;;;;;;;;;;;;;;8947:34;;;;;;;;;;-1:-1:-1;8947:34:0;;;;-1:-1:-1;;;8947:34:0;;;;;;;;;1588:14:1;;1581:22;1563:41;;1551:2;1536:18;8947:34:0;1423:187:1;8988:33:0;;;;;;;;;;-1:-1:-1;8988:33:0;;;;-1:-1:-1;;;8988:33:0;;;;;;9028:32;;;;;;;;;;-1:-1:-1;9028:32:0;;;;-1:-1:-1;;;9028:32:0;;;;;;8169:42;;;;;;;;;;;;;;;;9067:34;;;;;;;;;;-1:-1:-1;9067:34:0;;;;-1:-1:-1;;;9067:34:0;;;;;;8393:36;;;;;;;;;;;;;;;;13596:452;;;;;;;;;;-1:-1:-1;13596:452:0;;;;;:::i;:::-;;:::i;10208:822::-;;;;;;;;;;-1:-1:-1;10208:822:0;;;;;:::i;:::-;;:::i;6250:201::-;;;;;;;;;;-1:-1:-1;6250:201:0;;;;;:::i;:::-;;:::i;8125:37::-;;;;;;;;;;-1:-1:-1;8125:37:0;;;;-1:-1:-1;;;;;8125:37:0;;;8856:38;;;;;;;;;;-1:-1:-1;8856:38:0;;;;-1:-1:-1;;;;;8856:38:0;;;8027:30;;;;;;;;;;-1:-1:-1;8027:30:0;;;;-1:-1:-1;;;;;8027:30:0;;;16504:353;16557:14;;-1:-1:-1;;;;;16557:14:0;16553:67;;16504:353::o;16553:67::-;16652:15;;;16632:17;16678:19;;;;16728:14;;:41;;16652:15;;16632:17;-1:-1:-1;;;;;16728:14:0;;;;16652:15;;16632:17;16728:41;16632:17;16728:41;16652:15;16728:14;:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16710:59;;;16787:7;16782:68;;16811:15;:27;;;16782:68;16542:315;;16504:353::o;16066:430::-;16121:16;;-1:-1:-1;;;;;16121:16:0;16117:69;;16066:430::o;16117:69::-;16219:16;;;;;;;;;-1:-1:-1;;;;;16219:16:0;-1:-1:-1;;;;;16198:50:0;;:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;16283:17:0;;;16263;16311:21;;;;16363:16;;:43;;16283:17;;-1:-1:-1;16263:17:0;;-1:-1:-1;;;;;;16363:16:0;;;;16283:17;;16263;16363:43;16263:17;16363:43;16283:17;16363:16;:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16345:61;;;16424:7;16419:70;;-1:-1:-1;16448:17:0;:29;16066:430::o;14056:176::-;5865:13;:11;:13::i;:::-;14127:20:::1;::::0;-1:-1:-1;;;14127:20:0;::::1;;;14126:21;14118:30;;;::::0;::::1;;14159:20;:27:::0;;-1:-1:-1;;;;14159:27:0::1;-1:-1:-1::0;;;14159:27:0::1;::::0;;14202:22:::1;::::0;::::1;::::0;14159:27;;14202:22:::1;14056:176::o:0;12646:476::-;5865:13;:11;:13::i;:::-;-1:-1:-1;;;;;12745:20:0;::::1;::::0;;::::1;::::0;:98:::1;;-1:-1:-1::0;;;;;;12782:61:0;::::1;12800:42;12782:61;;12745:98;:150;;;;-1:-1:-1::0;12860:16:0::1;::::0;-1:-1:-1;;;;;12860:35:0;;::::1;:16:::0;::::1;:35;;12745:150;12723:183;;;::::0;::::1;;12926:22;::::0;-1:-1:-1;;;12926:22:0;::::1;;;12925:23;12917:32;;;::::0;::::1;;12988:16;::::0;;-1:-1:-1;;;;;13016:34:0;;::::1;-1:-1:-1::0;;;;;;13016:34:0;::::1;::::0;::::1;::::0;;;13066:48:::1;::::0;12988:16;::::1;::::0;13016:34;12988:16;;13066:48:::1;::::0;12960:17:::1;::::0;13066:48:::1;12712:410;12646:476:::0;:::o;14812:1246::-;14961:45;;-1:-1:-1;;;14961:45:0;;15000:4;14961:45;;;730:51:1;14904:21:0;;14875:26;;-1:-1:-1;;;;;14961:30:0;;;;;703:18:1;;14961:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15047:5;;14938:68;;-1:-1:-1;;;;;;15047:5:0;;;15023:30;;;;15019:100;;15086:21;;15070:37;;;;:::i;:::-;;;15019:100;15135:16;;15131:93;;15168:44;15185:12;15199;15168:16;:44::i;:::-;15236:26;15265:42;15289:18;15265:21;:42;:::i;:::-;15236:71;;15380:4;15362:15;;15341:18;:36;;;;:::i;:::-;:43;;;;:::i;:::-;15320:17;;:64;;;;;;;:::i;:::-;;;;-1:-1:-1;;15436:14:0;;15453:4;;15415:35;;:18;:35;:::i;:::-;:42;;;;:::i;:::-;15395:16;;:62;;;;;;;:::i;:::-;;;;-1:-1:-1;;15508:13:0;;15524:4;;15487:34;;:18;:34;:::i;:::-;:41;;;;:::i;:::-;15468:15;;:60;;;;;;;:::i;:::-;;;;-1:-1:-1;;15621:15:0;;15602:16;;15582:17;;15558:41;;:21;:41;:::i;:::-;:60;;;;:::i;:::-;:78;;;;:::i;:::-;15539:16;:97;15674:16;;15653:17;;:37;15649:93;;15707:23;:21;:23::i;:::-;15778:16;;15758;;:36;15754:91;;15811:22;:20;:22::i;:::-;15880:16;;15861:15;;:35;15857:89;;15913:21;:19;:21::i;:::-;15982:16;;15962;;:36;15958:93;;16015:24;:22;:24::i;:::-;14864:1194;;;14812:1246;:::o;13130:458::-;5865:13;:11;:13::i;:::-;-1:-1:-1;;;;;13226:20:0;::::1;::::0;;::::1;::::0;:98:::1;;-1:-1:-1::0;;;;;;13263:61:0;::::1;13281:42;13263:61;;13226:98;:149;;;;-1:-1:-1::0;13341:15:0::1;::::0;-1:-1:-1;;;;;13341:34:0;;::::1;:15:::0;::::1;:34;;13226:149;13204:182;;;::::0;::::1;;13406:21;::::0;-1:-1:-1;;;13406:21:0;::::1;;;13405:22;13397:31;;;::::0;::::1;;13467:15;::::0;;-1:-1:-1;;;;;13494:33:0;;::::1;-1:-1:-1::0;;;;;;13494:33:0;::::1;::::0;::::1;::::0;;;13543:37:::1;::::0;13467:15;::::1;::::0;13494:33;13467:15;;13543:37:::1;::::0;13439:17:::1;::::0;13543:37:::1;13193:395;13130:458:::0;:::o;14240:184::-;5865:13;:11;:13::i;:::-;14313:22:::1;::::0;-1:-1:-1;;;14313:22:0;::::1;;;14312:23;14304:32;;;::::0;::::1;;14347:22;:29:::0;;-1:-1:-1;;;;14347:29:0::1;-1:-1:-1::0;;;14347:29:0::1;::::0;;14392:24:::1;::::0;::::1;::::0;14347:29;;14392:24:::1;14240:184::o:0;6139:103::-;5865:13;:11;:13::i;:::-;6204:30:::1;6231:1;6204:18;:30::i;:::-;6139:103::o:0;14620:184::-;5865:13;:11;:13::i;:::-;14693:22:::1;::::0;-1:-1:-1;;;14693:22:0;::::1;;;14692:23;14684:32;;;::::0;::::1;;14727:22;:29:::0;;-1:-1:-1;;;;14727:29:0::1;-1:-1:-1::0;;;14727:29:0::1;::::0;;14772:24:::1;::::0;::::1;::::0;14727:29;;14772:24:::1;14620:184::o:0;12078:560::-;5865:13;:11;:13::i;:::-;-1:-1:-1;;;;;12198:37:0;::::1;::::0;;::::1;::::0;:132:::1;;-1:-1:-1::0;;;;;;12252:78:0;::::1;12287:42;12252:78;;12198:132;:198;;;;-1:-1:-1::0;12347:22:0::1;::::0;-1:-1:-1;;;;;12347:49:0;;::::1;:22:::0;::::1;:49;;12198:198;12176:231;;;::::0;::::1;;12456:22;::::0;;-1:-1:-1;;;;;12489:48:0;;::::1;-1:-1:-1::0;;;;;;12489:48:0;::::1;::::0;::::1;::::0;;;12553:77:::1;::::0;12456:22;::::1;::::0;12489:48;12456:22;;12553:77:::1;::::0;12420:33:::1;::::0;12553:77:::1;12165:473;12078:560:::0;:::o;11467:203::-;5865:13;:11;:13::i;:::-;11554:22:::1;::::0;-1:-1:-1;;;11554:22:0;::::1;;;11553:23;11545:32;;;::::0;::::1;;11588:16;:28:::0;;;11632:30:::1;::::0;160:25:1;;;11632:30:0::1;::::0;148:2:1;133:18;11632:30:0::1;;;;;;;;11467:203:::0;:::o;11678:392::-;5865:13;:11;:13::i;:::-;11805:20:::1;;11780:21;:45:::0;11772:54:::1;;;::::0;::::1;;11870:23;;11845:21;:48;;:99;;;;;11921:23;;11897:20;;:47;;11845:99;11837:108;;;::::0;::::1;;11956:20;:44:::0;;;12016:46:::1;::::0;160:25:1;;;12016:46:0::1;::::0;148:2:1;133:18;12016:46:0::1;14:177:1::0;14432:180:0;5865:13;:11;:13::i;:::-;14504:21:::1;::::0;-1:-1:-1;;;14504:21:0;::::1;;;14503:22;14495:31;;;::::0;::::1;;14537:21;:28:::0;;-1:-1:-1;;;;14537:28:0::1;-1:-1:-1::0;;;14537:28:0::1;::::0;;14581:23:::1;::::0;::::1;::::0;14537:28;;14581:23:::1;14432:180::o:0;11234:225::-;5865:13;:11;:13::i;:::-;11324:11:::1;::::0;-1:-1:-1;;;;;11324:33:0;;::::1;:11:::0;::::1;:33:::0;11316:42:::1;;;::::0;::::1;;11369:11;:32:::0;;-1:-1:-1;;;;;;11369:32:0::1;-1:-1:-1::0;;;;;11369:32:0;::::1;::::0;;::::1;::::0;;;11417:34:::1;::::0;::::1;::::0;-1:-1:-1;;11417:34:0::1;11234:225:::0;:::o;11038:188::-;5865:13;:11;:13::i;:::-;11131:6:::1;::::0;-1:-1:-1;;;;;11131:6:0;;::::1;11112:26:::0;;::::1;::::0;11104:35:::1;;;::::0;::::1;;11150:6;:34:::0;;-1:-1:-1;;;;;;11150:34:0::1;-1:-1:-1::0;;;;;11150:34:0;::::1;::::0;;::::1;::::0;;;11200:18:::1;::::0;730:51:1;;;11200:18:0::1;::::0;718:2:1;703:18;11200::0::1;584:203:1::0;19584:169:0;19648:6;;:13;;;-1:-1:-1;;;19648:13:0;;;;19626:19;;-1:-1:-1;;;;;19648:6:0;;:11;;:13;;;;;;;;;;;;;;19626:19;19648:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19700:44;;-1:-1:-1;;;19700:44:0;;19738:4;19700:44;;;730:51:1;19626:35:0;;-1:-1:-1;;;;;;19672:27:0;;;;;;;19700:29;;703:18:1;;19700:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19672:73;;;;;;;;;;;;;160:25:1;;148:2;133:18;;14:177;19672:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19615:138;19584:169::o;13596:452::-;5865:13;:11;:13::i;:::-;-1:-1:-1;;;;;13691:20:0;::::1;::::0;;::::1;::::0;:98:::1;;-1:-1:-1::0;;;;;;13728:61:0;::::1;13746:42;13728:61;;13691:98;:148;;;;-1:-1:-1::0;13806:14:0::1;::::0;-1:-1:-1;;;;;13806:33:0;;::::1;:14:::0;::::1;:33;;13691:148;13669:181;;;::::0;::::1;;13870:20;::::0;-1:-1:-1;;;13870:20:0;::::1;;;13869:21;13861:30;;;::::0;::::1;;13930:14;::::0;;-1:-1:-1;;;;;13956:32:0;;::::1;-1:-1:-1::0;;;;;;13956:32:0;::::1;::::0;::::1;::::0;;;14004:36:::1;::::0;13930:14;::::1;::::0;13956:32;13930:14;;14004:36:::1;::::0;13902:17:::1;::::0;14004:36:::1;13658:390;13596:452:::0;:::o;10208:822::-;5865:13;:11;:13::i;:::-;10417::::1;;10400:14;;10383;;10365:15;;:32;;;;:::i;:::-;:49;;;;:::i;:::-;:65;;;;:::i;:::-;10434:4;10365:73;10357:82;;;::::0;::::1;;10480:8;;10460:16;:28;;:60;;;;;10512:8;;10492:16;:28;;10460:60;10452:69;;;::::0;::::1;;10559:8;;10540:15;:27;;:58;;;;;10590:8;;10571:15;:27;;10540:58;10532:67;;;::::0;::::1;;10637:8;;10618:15;:27;;:58;;;;;10668:8;;10649:15;:27;;10618:58;10610:67;;;::::0;::::1;;10714:8;;10696:14;:26;;:56;;;;;10744:8;;10726:14;:26;;10696:56;10688:65;;;::::0;::::1;;10766:15;:34:::0;;;10811:14:::1;:32:::0;;;10854:14:::1;:32:::0;;;10897:13:::1;:30:::0;;;10945:77:::1;::::0;;3913:25:1;;;3969:2;3954:18;;3947:34;;;3997:18;;;3990:34;;;4055:2;4040:18;;4033:34;;;10945:77:0::1;::::0;3900:3:1;3885:19;10945:77:0::1;;;;;;;10208:822:::0;;;;:::o;6250:201::-;5865:13;:11;:13::i;:::-;-1:-1:-1;;;;;6339:22:0;::::1;6331:73;;;::::0;-1:-1:-1;;;6331:73:0;;4280:2:1;6331:73:0::1;::::0;::::1;4262:21:1::0;4319:2;4299:18;;;4292:30;4358:34;4338:18;;;4331:62;-1:-1:-1;;;4409:18:1;;;4402:36;4455:19;;6331:73:0::1;;;;;;;;;6415:28;6434:8;6415:18;:28::i;:::-;6250:201:::0;:::o;6001:130::-;6076:10;6065:7;5952;5979:6;-1:-1:-1;;;;;5979:6:0;;5906:87;6065:7;-1:-1:-1;;;;;6065:21:0;;6057:66;;;;-1:-1:-1;;;6057:66:0;;4687:2:1;6057:66:0;;;4669:21:1;;;4706:18;;;4699:30;4765:34;4745:18;;;4738:62;4817:18;;6057:66:0;4485:356:1;18723:473:0;18836:16;;;18850:1;18836:16;;;;;;;;18812:21;;18836:16;;;;;;;;;;-1:-1:-1;18836:16:0;18812:40;;18873:12;18863:4;18868:1;18863:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;18863:22:0;;;:7;;;;;;;;;;:22;;;;18906:6;;:13;;;-1:-1:-1;;;18906:13:0;;;;:6;;;;;:11;;:13;;;;;18863:7;;18906:13;;;;;:6;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18896:4;18901:1;18896:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;18896:23:0;;;:7;;;;;;;;;:23;18969:6;;18932:58;;-1:-1:-1;;;18932:58:0;;18969:6;;;18932:58;;;5284:51:1;5351:18;;;5344:34;;;18932:28:0;;;;;;5257:18:1;;18932:58:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;19001:6:0;;:187;;-1:-1:-1;;;19001:187:0;;-1:-1:-1;;;;;19001:6:0;;;;:57;;:187;;19073:11;;19001:6;;19115:4;;19142;;19162:15;;19001:187;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18801:395;18723:473;;:::o;16865:361::-;16921:15;;-1:-1:-1;;;;;16921:15:0;16917:68;;16865:361::o;16917:68::-;17017:16;;;16997:17;17044:20;;;;17095:15;;:42;;17017:16;;16997:17;-1:-1:-1;;;;;17095:15:0;;;;17017:16;;16997:17;17095:42;16997:17;17095:42;17017:16;17095:15;:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17077:60;;;17155:7;17150:69;;-1:-1:-1;17179:16:0;:28;16865:361::o;17234:1121::-;17288:18;17317:26;17346:21;17317:50;;17466:3;17443:20;;17415:5;;;;;;;;;-1:-1:-1;;;;;17415:5:0;-1:-1:-1;;;;;17415:23:0;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:48;;;;:::i;:::-;:54;;;;:::i;:::-;17384:5;;17400:11;;17384:28;;-1:-1:-1;;;17384:28:0;;-1:-1:-1;;;;;17400:11:0;;;17384:28;;;730:51:1;17384:5:0;;;:15;;703:18:1;;17384:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:85;17380:899;;;17500:16;;;17550:1;17531:20;;;17500:16;-1:-1:-1;17566:28:0;17500:16;17566;:28::i;:::-;17380:899;;;17640:16;;;17690:1;17671:20;;;;17712:5;;:30;;-1:-1:-1;;;17712:30:0;;17736:4;17712:30;;;730:51:1;17640:16:0;;-1:-1:-1;;;;;;17712:5:0;;:15;;703:18:1;;17712:30:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:34;17708:223;;;17783:5;;:30;;-1:-1:-1;;;17783:30:0;;17807:4;17783:30;;;730:51:1;17767:59:0;;-1:-1:-1;;;;;17783:5:0;;:15;;703:18:1;;17783:30:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17815:10;17767:15;:59::i;:::-;17872:42;17893:21;17872:18;:42;:::i;:::-;17858:57;;:10;:57;:::i;:::-;17845:70;;17708:223;17951:14;;17947:321;;18004:10;18046:11;18056:1;18004:10;18046:11;:::i;:::-;18033:24;-1:-1:-1;18076:23:0;18102:20;18033:24;18102:7;:20;:::i;:::-;18076:46;;18141:28;18158:10;18141:16;:28::i;:::-;18204:5;;:30;;-1:-1:-1;;;18204:30:0;;18228:4;18204:30;;;730:51:1;18188:64:0;;-1:-1:-1;;;;;18204:5:0;;:15;;703:18:1;;18204:30:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18236:15;18188;:64::i;:::-;17967:301;;17947:321;18315:5;;:30;;-1:-1:-1;;;18315:30:0;;18339:4;18315:30;;;730:51:1;-1:-1:-1;;;;;18315:5:0;;;;:15;;703:18:1;;18315:30:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18291:21;:54;-1:-1:-1;;17234:1121:0:o;6459:191::-;6533:16;6552:6;;-1:-1:-1;;;;;6569:17:0;;;-1:-1:-1;;;;;;6569:17:0;;;;;;6602:40;;6552:6;;;;;;;6602:40;;6533:16;6602:40;6522:128;6459:191;:::o;19204:372::-;19293:16;;;19307:1;19293:16;;;;;;;;19269:21;;19293:16;;;;;;;;-1:-1:-1;;19330:6:0;;:13;;;-1:-1:-1;;;19330:13:0;;;;19269:40;;-1:-1:-1;;;;;;19330:6:0;;;;:11;;-1:-1:-1;19330:13:0;;;;;;;;;;;;;;:6;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19320:4;19325:1;19320:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;19320:23:0;;;:7;;;;;;;;;:23;19372:5;;19354:7;;19372:5;;;19354:4;;19372:5;;19354:7;;;;;;:::i;:::-;-1:-1:-1;;;;;19354:24:0;;;:7;;;;;;;;;:24;19389:6;;:179;;-1:-1:-1;;;19389:179:0;;:6;;;:57;;19454:9;;19389:179;;:6;;19495:4;;19522;;19542:15;;19389:179;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;18363:352;18448:5;;;18470:6;18448:43;;-1:-1:-1;;;18448:43:0;;-1:-1:-1;;;;;18470:6:0;;;18448:43;;;5284:51:1;5351:18;;;5344:34;;;18448:5:0;;;:13;;5257:18:1;;18448:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;18502:6:0;;18565:5;;18644:22;;;18502:205;;-1:-1:-1;;;18502:205:0;;-1:-1:-1;;;;;18565:5:0;;;18502:205;;;7580:34:1;;;;7630:18;;;7623:34;;;18502:6:0;7673:18:1;;;7666:34;;;7716:18;;;7709:34;18644:22:0;;7759:19:1;;;7752:44;18681:15:0;7812:19:1;;;7805:35;18502:6:0;;;:22;;18532:9;;7514:19:1;;18502:205:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;196:131:1:-;-1:-1:-1;;;;;271:31:1;;261:42;;251:70;;317:1;314;307:12;332:247;391:6;444:2;432:9;423:7;419:23;415:32;412:52;;;460:1;457;450:12;412:52;499:9;486:23;518:31;543:5;518:31;:::i;:::-;568:5;332:247;-1:-1:-1;;;332:247:1:o;792:180::-;851:6;904:2;892:9;883:7;879:23;875:32;872:52;;;920:1;917;910:12;872:52;-1:-1:-1;943:23:1;;792:180;-1:-1:-1;792:180:1:o;1615:385::-;1701:6;1709;1717;1725;1778:3;1766:9;1757:7;1753:23;1749:33;1746:53;;;1795:1;1792;1785:12;1746:53;-1:-1:-1;;1818:23:1;;;1888:2;1873:18;;1860:32;;-1:-1:-1;1939:2:1;1924:18;;1911:32;;1990:2;1975:18;1962:32;;-1:-1:-1;1615:385:1;-1:-1:-1;1615:385:1:o;2447:184::-;2517:6;2570:2;2558:9;2549:7;2545:23;2541:32;2538:52;;;2586:1;2583;2576:12;2538:52;-1:-1:-1;2609:16:1;;2447:184;-1:-1:-1;2447:184:1:o;2636:127::-;2697:10;2692:3;2688:20;2685:1;2678:31;2728:4;2725:1;2718:15;2752:4;2749:1;2742:15;2768:125;2808:4;2836:1;2833;2830:8;2827:34;;;2841:18;;:::i;:::-;-1:-1:-1;2878:9:1;;2768:125::o;2898:168::-;2938:7;3004:1;3000;2996:6;2992:14;2989:1;2986:21;2981:1;2974:9;2967:17;2963:45;2960:71;;;3011:18;;:::i;:::-;-1:-1:-1;3051:9:1;;2898:168::o;3071:217::-;3111:1;3137;3127:132;;3181:10;3176:3;3172:20;3169:1;3162:31;3216:4;3213:1;3206:15;3244:4;3241:1;3234:15;3127:132;-1:-1:-1;3273:9:1;;3071:217::o;3293:128::-;3333:3;3364:1;3360:6;3357:1;3354:13;3351:39;;;3370:18;;:::i;:::-;-1:-1:-1;3406:9:1;;3293:128::o;3426:251::-;3496:6;3549:2;3537:9;3528:7;3524:23;3520:32;3517:52;;;3565:1;3562;3555:12;3517:52;3597:9;3591:16;3616:31;3641:5;3616:31;:::i;4978:127::-;5039:10;5034:3;5030:20;5027:1;5020:31;5070:4;5067:1;5060:15;5094:4;5091:1;5084:15;5389:277;5456:6;5509:2;5497:9;5488:7;5484:23;5480:32;5477:52;;;5525:1;5522;5515:12;5477:52;5557:9;5551:16;5610:5;5603:13;5596:21;5589:5;5586:32;5576:60;;5632:1;5629;5622:12;5671:461;5724:3;5762:5;5756:12;5789:6;5784:3;5777:19;5815:4;5844:2;5839:3;5835:12;5828:19;;5881:2;5874:5;5870:14;5902:1;5912:195;5926:6;5923:1;5920:13;5912:195;;;5991:13;;-1:-1:-1;;;;;5987:39:1;5975:52;;6047:12;;;;6082:15;;;;6023:1;5941:9;5912:195;;;-1:-1:-1;6123:3:1;;5671:461;-1:-1:-1;;;;;5671:461:1:o;6137:582::-;6436:6;6425:9;6418:25;6479:6;6474:2;6463:9;6459:18;6452:34;6522:3;6517:2;6506:9;6502:18;6495:31;6399:4;6543:57;6595:3;6584:9;6580:19;6572:6;6543:57;:::i;:::-;-1:-1:-1;;;;;6636:32:1;;;;6631:2;6616:18;;6609:60;-1:-1:-1;6700:3:1;6685:19;6678:35;6535:65;6137:582;-1:-1:-1;;;6137:582:1:o;6724:510::-;6995:6;6984:9;6977:25;7038:3;7033:2;7022:9;7018:18;7011:31;6958:4;7059:57;7111:3;7100:9;7096:19;7088:6;7059:57;:::i;:::-;-1:-1:-1;;;;;7152:32:1;;;;7147:2;7132:18;;7125:60;-1:-1:-1;7216:2:1;7201:18;7194:34;7051:65;6724:510;-1:-1:-1;;6724:510:1:o;7851:306::-;7939:6;7947;7955;8008:2;7996:9;7987:7;7983:23;7979:32;7976:52;;;8024:1;8021;8014:12;7976:52;8053:9;8047:16;8037:26;;8103:2;8092:9;8088:18;8082:25;8072:35;;8147:2;8136:9;8132:18;8126:25;8116:35;;7851:306;;;;;:::o

Swarm Source

ipfs://c48c1aade445210fe5190cff54121ed8f8685c5df206f21ba6e1b3dbc931b666

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ 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.