ETH Price: $3,297.87 (-3.58%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve197930172024-05-03 23:58:59249 days ago1714780739IN
0x8289A35f...220DAaFC2
0 ETH0.00021894.72360265
Approve197052122024-04-21 17:16:23262 days ago1713719783IN
0x8289A35f...220DAaFC2
0 ETH0.0005448811.6789737
Approve188181612023-12-19 6:15:59386 days ago1702966559IN
0x8289A35f...220DAaFC2
0 ETH0.0022302747.8651714
Approve185419672023-11-10 13:53:23425 days ago1699624403IN
0x8289A35f...220DAaFC2
0 ETH0.0017939338.50048944
Approve182964182023-10-07 5:07:23459 days ago1696655243IN
0x8289A35f...220DAaFC2
0 ETH0.000349067.52244951
Approve181940152023-09-22 21:20:35473 days ago1695417635IN
0x8289A35f...220DAaFC2
0 ETH0.000369457.97846836
Transfer Ownersh...181463572023-09-16 4:30:47480 days ago1694838647IN
0x8289A35f...220DAaFC2
0 ETH0.0002920710.12937424
Approve181179032023-09-12 4:33:59484 days ago1694493239IN
0x8289A35f...220DAaFC2
0 ETH0.000411088.8705901
Approve180976622023-09-09 8:30:23487 days ago1694248223IN
0x8289A35f...220DAaFC2
0 ETH0.0004844310.39677136
Approve180308052023-08-30 23:52:47496 days ago1693439567IN
0x8289A35f...220DAaFC2
0 ETH0.0006217913.40335353
Approve179985522023-08-26 11:29:59501 days ago1693049399IN
0x8289A35f...220DAaFC2
0 ETH0.0006339413.60546885
Approve179872872023-08-24 21:38:11502 days ago1692913091IN
0x8289A35f...220DAaFC2
0 ETH0.0012846627.53548161
Approve179746532023-08-23 3:13:59504 days ago1692760439IN
0x8289A35f...220DAaFC2
0 ETH0.0008812119.00029682
Approve179733172023-08-22 22:44:47504 days ago1692744287IN
0x8289A35f...220DAaFC2
0 ETH0.0011899825.5388258
Approve179572552023-08-20 16:49:59507 days ago1692550199IN
0x8289A35f...220DAaFC2
0 ETH0.0009999421.46029871
Approve179538682023-08-20 5:26:35507 days ago1692509195IN
0x8289A35f...220DAaFC2
0 ETH0.0005890312.71040037
Approve179533822023-08-20 3:48:59507 days ago1692503339IN
0x8289A35f...220DAaFC2
0 ETH0.0005570912.02113035
Approve179454252023-08-19 1:03:59508 days ago1692407039IN
0x8289A35f...220DAaFC2
0 ETH0.0011079423.77812274
Approve179452292023-08-19 0:24:11508 days ago1692404651IN
0x8289A35f...220DAaFC2
0 ETH0.000650313.95659251
Approve179396032023-08-18 5:30:11509 days ago1692336611IN
0x8289A35f...220DAaFC2
0 ETH0.000822317.64794974
Approve179368312023-08-17 20:11:11509 days ago1692303071IN
0x8289A35f...220DAaFC2
0 ETH0.0011559924.94432082
Approve179364232023-08-17 18:48:23509 days ago1692298103IN
0x8289A35f...220DAaFC2
0 ETH0.0012151426.07886872
Approve179352042023-08-17 14:42:11510 days ago1692283331IN
0x8289A35f...220DAaFC2
0 ETH0.0015137432.66394227
Approve179350142023-08-17 14:04:11510 days ago1692281051IN
0x8289A35f...220DAaFC2
0 ETH0.0021947247.10208324
Approve179329672023-08-17 7:12:11510 days ago1692256331IN
0x8289A35f...220DAaFC2
0 ETH0.0009052919.4040098
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ProjectX

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 50 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// ██████  ███████ ██    ██  ██████  ██      ██    ██ ███████ ██  ██████  ███    ██                   
// ██   ██ ██      ██    ██ ██    ██ ██      ██    ██     ██  ██ ██    ██ ████   ██                  
// ██████  █████   ██    ██ ██    ██ ██      ██    ██   ██    ██ ██    ██ ██ ██  ██                   
// ██   ██ ██       ██  ██  ██    ██ ██      ██    ██  ██     ██ ██    ██ ██  ██ ██                   
// ██   ██ ███████   ████    ██████  ███████  ██████  ███████ ██  ██████  ██   ████    

// SAFU CONTRACT DEVELOPED BY REVOLUZION

//Revoluzion Ecosystem
//WEB: https://revoluzion.io
//DAPP: https://revoluzion.app

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

/********************************************************************************************
  INTERFACE
********************************************************************************************/

interface IERC20 {
    
    // EVENT 

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

    // FUNCTION

    function name() external view returns (string memory);
    
    function symbol() external view returns (string memory);
    
    function decimals() external view returns (uint8);
    
    function totalSupply() external view returns (uint256);
    
    function balanceOf(address account) external view returns (uint256);
    
    function transfer(address to, uint256 amount) external returns (bool);
    
    function allowance(address owner, address spender) external view returns (uint256);
    
    function approve(address spender, uint256 amount) external returns (bool);
    
    function transferFrom(address from, address to, uint256 amount) external returns (bool);
}

interface IPair {

    // FUNCTION

    function token0() external view returns (address);

    function token1() external view returns (address);
}

interface IFactory {

    // FUNCTION

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

interface IRouter {

    // FUNCTION

    function WETH() external pure returns (address);
        
    function factory() external pure returns (address);

    function swapExactTokensForETHSupportingFeeOnTransferTokens(uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline) external;
    
    function swapExactETHForTokensSupportingFeeOnTransferTokens(uint256 amountOutMin, address[] calldata path, address to, uint256 deadline) external payable;
    
    function swapExactTokensForTokens(uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline) external returns (uint256[] memory amounts);
}

interface ICommonError {

    // ERROR

    error CannotUseCurrentAddress(address current);

    error CannotUseCurrentValue(uint256 current);

    error CannotUseCurrentState(bool current);

    error InvalidAddress(address invalid);

    error InvalidValue(uint256 invalid);
}

/********************************************************************************************
  ACCESS
********************************************************************************************/

abstract contract Ownable {
    
    // DATA

    address private _owner;

    // MODIFIER

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

    // ERROR

    error InvalidOwner(address account);

    error UnauthorizedAccount(address account);

    // CONSTRUCTOR

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

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

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

    function _checkOwner() internal view virtual {
        if (owner() != msg.sender) {
            revert UnauthorizedAccount(msg.sender);
        }
    }

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

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

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

/********************************************************************************************
  TOKEN
********************************************************************************************/

contract ProjectX is Ownable, ICommonError, IERC20 {

    // DATA

    IRouter public router;

    string private constant NAME = "Project X";
    string private constant SYMBOL = "PX";

    uint8 private constant DECIMALS = 18;

    uint256 private _totalSupply;
    
    uint256 public constant FEEDENOMINATOR = 10_000;

    uint256 public constant BUYFEE = 100;
    uint256 public constant SELLFEE = 100;
    uint256 public constant TRANSFERFEE = 0;

    uint256 public totalFeeCollected = 0;
    uint256 public totalFeeRedeemed = 0;
    uint256 public totalTriggerZeusBuyback = 0;
    uint256 public lastTriggerZeusTimestamp = 0;
    uint256 public minSwap = 100 ether;

    bool private constant ISPX = true;

    bool public tradeEnabled = false;
    bool public presaleFinalized = false;
    bool public isFeeActive = false;
    bool public isSwapEnabled = false;
    bool public inSwap = false;

    address public constant ZERO = address(0);
    address public constant DEAD = address(0xdead);
    address public constant PROJECTOWNER = 0xE0aa781648ff8562A5727350876b04f3772746a0;
    address public constant FEERECEIVER = 0xE0aa781648ff8562A5727350876b04f3772746a0;

    address public pair;
    
    // MAPPING

    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) public isExcludeFromFees;
    mapping(address => bool) public isPairLP;

    // MODIFIER

    modifier swapping() {
        inSwap = true;
        _;
        inSwap = false;
    }

    // ERROR

    error InvalidTradeEnabledState(bool current);

    error InvalidFeeActiveState(bool current);

    error InvalidSwapEnabledState(bool current);

    error PresaleAlreadyFinalized(bool current);

    error TradeDisabled();

    // CONSTRUCTOR

    constructor() Ownable (msg.sender) {
        _mint(msg.sender, 1_000_000_000 * 10**DECIMALS);

        router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        pair = IFactory(router.factory()).createPair(address(this), router.WETH());

        isPairLP[pair] = true;

        isExcludeFromFees[msg.sender] = true;
        isExcludeFromFees[PROJECTOWNER] = true;
        isExcludeFromFees[address(router)] = true;
    }

    // EVENT

    event UpdateRouter(address oldRouter, address newRouter, address caller, uint256 timestamp);

    event UpdateMinSwap(uint256 oldMinSwap, uint256 newMinSwap, address caller, uint256 timestamp);

    event UpdateFeeActive(bool oldStatus, bool newStatus, address caller, uint256 timestamp);

    event UpdateSwapEnabled(bool oldStatus, bool newStatus, address caller, uint256 timestamp);
        
    event AutoRedeem(uint256 feeDistribution, uint256 amountToRedeem, address caller, uint256 timestamp);

    event EnableTrading(bool oldStatus, bool newStatus, address caller, uint256 timestamp);

    // FUNCTION

    /* General */

    receive() external payable {}

    function enableTrading() external onlyOwner {
        if (tradeEnabled) { revert InvalidTradeEnabledState(tradeEnabled); }
        if (isFeeActive) { revert InvalidFeeActiveState(isFeeActive); }
        if (isSwapEnabled) { revert InvalidSwapEnabledState(isSwapEnabled); }
        tradeEnabled = true;
        isFeeActive = true;
        isSwapEnabled = true;
        presaleFinalized = true;
    }

    function finalizePresale() external onlyOwner {
        if (presaleFinalized) { revert PresaleAlreadyFinalized(presaleFinalized); }
        if (isFeeActive) { revert InvalidFeeActiveState(isFeeActive); }
        if (isSwapEnabled) { revert InvalidSwapEnabledState(isSwapEnabled); }
        isFeeActive = true;
        isSwapEnabled = true;
        presaleFinalized = true;
    }

    /* Redeem */

    function autoRedeem(uint256 amountToRedeem) public swapping {          
        totalFeeRedeemed += amountToRedeem;

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

        _approve(address(this), address(router), amountToRedeem);
        
        emit AutoRedeem(amountToRedeem, amountToRedeem, msg.sender, block.timestamp);

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToRedeem,
            0,
            path,
            FEERECEIVER,
            block.timestamp
        );
    }

    /* Check */

    function isProjectX() external pure returns (bool) {
        return ISPX;
    }

    function circulatingSupply() external view returns (uint256) {
        return totalSupply() - balanceOf(DEAD) - balanceOf(ZERO);
    }

    /* Update */

    function updateRouter(address newRouter) external onlyOwner {
        if (address(router) == newRouter) { revert CannotUseCurrentAddress(newRouter); }
        address oldRouter = address(router);
        router = IRouter(newRouter);
        
        isExcludeFromFees[newRouter] = true;

        emit UpdateRouter(oldRouter, newRouter, msg.sender, block.timestamp);
        pair = IFactory(router.factory()).createPair(address(this), router.WETH());
        isPairLP[pair] = true;
    }

    function updateMinSwap(uint256 newMinSwap) external onlyOwner {
        if (minSwap == newMinSwap) { revert CannotUseCurrentValue(newMinSwap); }
        uint256 oldMinSwap = minSwap;
        minSwap = newMinSwap;
        emit UpdateMinSwap(oldMinSwap, newMinSwap, msg.sender, block.timestamp);
    }

    function updateFeeActive(bool newStatus) external onlyOwner {
        if (isFeeActive == newStatus) { revert CannotUseCurrentState(newStatus); }
        bool oldStatus = isFeeActive;
        isFeeActive = newStatus;
        emit UpdateFeeActive(oldStatus, newStatus, msg.sender, block.timestamp);
    }

    function updateSwapEnabled(bool newStatus) external onlyOwner {
        if (isSwapEnabled == newStatus) { revert CannotUseCurrentState(newStatus); }
        bool oldStatus = isSwapEnabled;
        isSwapEnabled = newStatus;
        emit UpdateSwapEnabled(oldStatus, newStatus, msg.sender, block.timestamp);
    }

    function setExcludeFromFees(address user, bool status) external onlyOwner {
        if (isExcludeFromFees[user] == status) { revert CannotUseCurrentState(status); }
        isExcludeFromFees[user] = status;
    }

    function setPairLP(address lpPair, bool status) external onlyOwner {
        if (isPairLP[lpPair] == status) { revert CannotUseCurrentState(status); }
        if (IPair(lpPair).token0() != address(this) && IPair(lpPair).token1() != address(this)) { revert InvalidAddress(lpPair); }
        isPairLP[lpPair] = status;
    }

    /* Fee */

    function takeBuyFee(address from, uint256 amount) internal swapping returns (uint256) {
        uint256 feeAmount = amount * BUYFEE / FEEDENOMINATOR;
        uint256 newAmount = amount - feeAmount;
        if (feeAmount > 0) {
            tallyCollection(from, feeAmount);
        }
        return newAmount;
    }

    function takeSellFee(address from, uint256 amount) internal swapping returns (uint256) {
        uint256 feeAmount = amount * SELLFEE / FEEDENOMINATOR;
        uint256 newAmount = amount - feeAmount;
        if (feeAmount > 0) {
            tallyCollection(from, feeAmount);
        }
        return newAmount;
    }

    function takeTransferFee(address from, uint256 amount) internal swapping returns (uint256) {
        uint256 feeAmount = amount * TRANSFERFEE / FEEDENOMINATOR;
        uint256 newAmount = amount - feeAmount;
        if (feeAmount > 0) {
            tallyCollection(from, feeAmount);
        }
        return newAmount;
    }

    function tallyCollection(address from, uint256 collectFee) internal swapping {
        totalFeeCollected += collectFee;
        _balances[from] -= collectFee;
        _balances[address(this)] += collectFee;
    }

    /* Buyback */

    function triggerZeusBuyback(uint256 amount) external onlyOwner {
        totalTriggerZeusBuyback += amount;
        lastTriggerZeusTimestamp = block.timestamp;
        buyTokens(amount, DEAD);
    }

    function buyTokens(uint256 amount, address to) internal swapping {
        if (msg.sender == DEAD) { revert InvalidAddress(DEAD); }
        address[] memory path = new address[](2);
        path[0] = router.WETH();
        path[1] = address(this);

        router.swapExactETHForTokensSupportingFeeOnTransferTokens{
            value: amount
        } (0, path, to, block.timestamp);
    }

    /* ERC20 Standard */

    function name() external view virtual override returns (string memory) {
        return NAME;
    }
    
    function symbol() external view virtual override returns (string memory) {
        return SYMBOL;
    }
    
    function decimals() external view virtual override returns (uint8) {
        return DECIMALS;
    }
    
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }
    
    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }
    
    function transfer(address to, uint256 amount) external virtual override returns (bool) {
        address provider = msg.sender;
        return _transfer(provider, to, amount);
    }
    
    function allowance(address provider, address spender) public view virtual override returns (uint256) {
        return _allowances[provider][spender];
    }
    
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        address provider = msg.sender;
        _approve(provider, spender, amount);
        return true;
    }
    
    function transferFrom(address from, address to, uint256 amount) external virtual override returns (bool) {
        address spender = msg.sender;
        _spendAllowance(from, spender, amount);
        return _transfer(from, to, amount);
    }
    
    function increaseAllowance(address spender, uint256 addedValue) external virtual returns (bool) {
        address provider = msg.sender;
        _approve(provider, spender, allowance(provider, spender) + addedValue);
        return true;
    }
    
    function decreaseAllowance(address spender, uint256 subtractedValue) external virtual returns (bool) {
        address provider = msg.sender;
        uint256 currentAllowance = allowance(provider, spender);
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(provider, spender, currentAllowance - subtractedValue);
        }

        return true;
    }
    
    function _mint(address account, uint256 amount) internal virtual {
        if (account == ZERO) { revert InvalidAddress(account); }

        _totalSupply += amount;
        unchecked {
            _balances[account] += amount;
        }
        emit Transfer(address(0), account, amount);
    }

    function _approve(address provider, address spender, uint256 amount) internal virtual {
        if (provider == ZERO) { revert InvalidAddress(provider); }
        if (spender == ZERO) { revert InvalidAddress(spender); }

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

    /* Additional */

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

        emit Transfer(from, to, amount);
        return true;
    }
    
    /* Overrides */
 
    function _transfer(address from, address to, uint256 amount) internal virtual returns (bool) {
        if (from == ZERO) { revert InvalidAddress(from); }
        if (to == ZERO) { revert InvalidAddress(to); }

        if (!tradeEnabled && !isExcludeFromFees[from] && !isExcludeFromFees[to]) { revert TradeDisabled(); }

        if (inSwap || isExcludeFromFees[from]) {
            return _basicTransfer(from, to, amount);
        }

        if (from != pair && isSwapEnabled && balanceOf(address(this)) >= minSwap && totalFeeCollected - totalFeeRedeemed >= minSwap) {
            autoRedeem(minSwap);
        }

        uint256 newAmount = amount;

        if (isFeeActive && !isExcludeFromFees[from] && !isExcludeFromFees[to]) {
            newAmount = _beforeTokenTransfer(from, to, amount);
        }

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

        emit Transfer(from, to, newAmount);

        return true;
    }

    function _beforeTokenTransfer(address from, address to, uint256 amount) internal swapping virtual returns (uint256) {
        if (isPairLP[from] && (BUYFEE > 0)) {
            return takeBuyFee(from, amount);
        }
        if (isPairLP[to] && (SELLFEE > 0)) {
            return takeSellFee(from, amount);
        }
        if (!isPairLP[from] && !isPairLP[to] && (TRANSFERFEE > 0)) {
            return takeTransferFee(from, amount);
        }
        return amount;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"current","type":"address"}],"name":"CannotUseCurrentAddress","type":"error"},{"inputs":[{"internalType":"bool","name":"current","type":"bool"}],"name":"CannotUseCurrentState","type":"error"},{"inputs":[{"internalType":"uint256","name":"current","type":"uint256"}],"name":"CannotUseCurrentValue","type":"error"},{"inputs":[{"internalType":"address","name":"invalid","type":"address"}],"name":"InvalidAddress","type":"error"},{"inputs":[{"internalType":"bool","name":"current","type":"bool"}],"name":"InvalidFeeActiveState","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"InvalidOwner","type":"error"},{"inputs":[{"internalType":"bool","name":"current","type":"bool"}],"name":"InvalidSwapEnabledState","type":"error"},{"inputs":[{"internalType":"bool","name":"current","type":"bool"}],"name":"InvalidTradeEnabledState","type":"error"},{"inputs":[{"internalType":"uint256","name":"invalid","type":"uint256"}],"name":"InvalidValue","type":"error"},{"inputs":[{"internalType":"bool","name":"current","type":"bool"}],"name":"PresaleAlreadyFinalized","type":"error"},{"inputs":[],"name":"TradeDisabled","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"UnauthorizedAccount","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":false,"internalType":"uint256","name":"feeDistribution","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountToRedeem","type":"uint256"},{"indexed":false,"internalType":"address","name":"caller","type":"address"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"AutoRedeem","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"oldStatus","type":"bool"},{"indexed":false,"internalType":"bool","name":"newStatus","type":"bool"},{"indexed":false,"internalType":"address","name":"caller","type":"address"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"EnableTrading","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"oldStatus","type":"bool"},{"indexed":false,"internalType":"bool","name":"newStatus","type":"bool"},{"indexed":false,"internalType":"address","name":"caller","type":"address"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"UpdateFeeActive","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldMinSwap","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newMinSwap","type":"uint256"},{"indexed":false,"internalType":"address","name":"caller","type":"address"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"UpdateMinSwap","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldRouter","type":"address"},{"indexed":false,"internalType":"address","name":"newRouter","type":"address"},{"indexed":false,"internalType":"address","name":"caller","type":"address"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"UpdateRouter","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"oldStatus","type":"bool"},{"indexed":false,"internalType":"bool","name":"newStatus","type":"bool"},{"indexed":false,"internalType":"address","name":"caller","type":"address"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"UpdateSwapEnabled","type":"event"},{"inputs":[],"name":"BUYFEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FEEDENOMINATOR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FEERECEIVER","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PROJECTOWNER","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SELLFEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TRANSFERFEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ZERO","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"provider","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountToRedeem","type":"uint256"}],"name":"autoRedeem","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"circulatingSupply","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":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"finalizePresale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"inSwap","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludeFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isFeeActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isPairLP","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isProjectX","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"isSwapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastTriggerZeusTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"presaleFinalized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setExcludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"lpPair","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setPairLP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFeeCollected","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFeeRedeemed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalTriggerZeusBuyback","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradeEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"triggerZeusBuyback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newStatus","type":"bool"}],"name":"updateFeeActive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMinSwap","type":"uint256"}],"name":"updateMinSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"}],"name":"updateRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newStatus","type":"bool"}],"name":"updateSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600060038190556004819055600581905560065568056bc75e2d631000006007556008805464ffffffffff191690553480156200004057600080fd5b50336200004d81620002a7565b506200007733620000616012600a620004b0565b6200007190633b9aca00620004c8565b620002f7565b600180546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015620000dc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001029190620004e2565b6001600160a01b031663c9c6539630600160009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000165573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200018b9190620004e2565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620001d9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001ff9190620004e2565b60088054600160281b600160c81b031916650100000000006001600160a01b0393841681029190911791829055900481166000908152600c60209081526040808320805460ff199081166001908117909255338552600b90935281842080548416821790557f1bfef16158bb73004cc3b71f85db9cc9ba8c86b12996fc9753bbd41bfe74f8ab8054841682179055805490941683529091208054909116909117905562000523565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0382166200032e57604051634726455360e11b81526001600160a01b038316600482015260240160405180910390fd5b80600260008282546200034291906200050d565b90915550506001600160a01b0382166000818152600960209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620003f2578160001904821115620003d657620003d66200039b565b80851615620003e457918102915b93841c9390800290620003b6565b509250929050565b6000826200040b57506001620004aa565b816200041a57506000620004aa565b81600181146200043357600281146200043e576200045e565b6001915050620004aa565b60ff8411156200045257620004526200039b565b50506001821b620004aa565b5060208310610133831016604e8410600b841016171562000483575081810a620004aa565b6200048f8383620003b1565b8060001904821115620004a657620004a66200039b565b0290505b92915050565b6000620004c160ff841683620003fa565b9392505050565b8082028115828204841417620004aa57620004aa6200039b565b600060208284031215620004f557600080fd5b81516001600160a01b0381168114620004c157600080fd5b80820180821115620004aa57620004aa6200039b565b611fe380620005336000396000f3fe6080604052600436106102575760003560e01c806378eec3311161013a578063b9b2b5cd116100b1578063b9b2b5cd1461068a578063c76c529f146106a0578063c851cc32146106b4578063d621e813146106d4578063d63cad22146106ee578063d83067861461070e578063da4daf711461072f578063dd62ed3e14610745578063e43504da14610765578063f2a4268714610785578063f2fde38b146107b5578063f887ea40146107d557600080fd5b806378eec331146103fd5780638a8c523c1461054f5780638da5cb5b14610564578063924de9b7146105825780639358928b146105a257806395d89b41146105b757806397e1b9d3146105e2578063a0a6e940146105f8578063a457c2d71461060d578063a8aa1b311461062d578063a9059cbb14610654578063ab28a04c1461067457600080fd5b80633bf31454116101ce5780633bf31454146104255780633fc8aa8f1461044557806358fa63ca1461045a57806359cd90311461046f578063625dd6051461048557806363a95492146104a5578063690f776b146104455780636d498093146104c557806370a08231146104e4578063715018a61461050457806371538eed1461051957806375fed3c71461052f57600080fd5b8063012951431461026357806303fd2a451461028557806306fdde03146102b157806308c43650146102ec578063095ea7b31461032c57806318160ddd1461034c57806323b872dd1461036b5780632ce0c0a01461038b578063313ce567146103a0578063351a964d146103bc57806339509351146103dd57806339d445bf146103fd57600080fd5b3661025e57005b600080fd5b34801561026f57600080fd5b5061028361027e366004611c08565b6107f5565b005b34801561029157600080fd5b5061029b61dead81565b6040516102a89190611c21565b60405180910390f35b3480156102bd57600080fd5b506040805180820190915260098152680a0e4ded4cac6e840b60bb1b60208201525b6040516102a89190611c35565b3480156102f857600080fd5b5061031c610307366004611c98565b600c6020526000908152604090205460ff1681565b60405190151581526020016102a8565b34801561033857600080fd5b5061031c610347366004611cb5565b6109da565b34801561035857600080fd5b506002545b6040519081526020016102a8565b34801561037757600080fd5b5061031c610386366004611ce1565b6109f4565b34801561039757600080fd5b5061035d600081565b3480156103ac57600080fd5b50604051601281526020016102a8565b3480156103c857600080fd5b5060085461031c906301000000900460ff1681565b3480156103e957600080fd5b5061031c6103f8366004611cb5565b610a18565b34801561040957600080fd5b5061029b73e0aa781648ff8562a5727350876b04f3772746a081565b34801561043157600080fd5b50610283610440366004611d37565b610a3a565b34801561045157600080fd5b5061035d606481565b34801561046657600080fd5b5061029b600081565b34801561047b57600080fd5b5061035d60075481565b34801561049157600080fd5b506102836104a0366004611d52565b610ae1565b3480156104b157600080fd5b506102836104c0366004611c08565b610c6e565b3480156104d157600080fd5b5060085461031c90610100900460ff1681565b3480156104f057600080fd5b5061035d6104ff366004611c98565b610ca0565b34801561051057600080fd5b50610283610cbb565b34801561052557600080fd5b5061035d60045481565b34801561053b57600080fd5b5061028361054a366004611c08565b610ccf565b34801561055b57600080fd5b50610283610d3a565b34801561057057600080fd5b506000546001600160a01b031661029b565b34801561058e57600080fd5b5061028361059d366004611d37565b610dfc565b3480156105ae57600080fd5b5061035d610e94565b3480156105c357600080fd5b506040805180820190915260028152610a0b60f31b60208201526102df565b3480156105ee57600080fd5b5061035d60065481565b34801561060457600080fd5b50610283610ec7565b34801561061957600080fd5b5061031c610628366004611cb5565b610f91565b34801561063957600080fd5b5060085461029b90600160281b90046001600160a01b031681565b34801561066057600080fd5b5061031c61066f366004611cb5565b611017565b34801561068057600080fd5b5061035d61271081565b34801561069657600080fd5b5061035d60035481565b3480156106ac57600080fd5b50600161031c565b3480156106c057600080fd5b506102836106cf366004611c98565b61102d565b3480156106e057600080fd5b5060085461031c9060ff1681565b3480156106fa57600080fd5b50610283610709366004611d52565b6112a2565b34801561071a57600080fd5b5060085461031c90600160201b900460ff1681565b34801561073b57600080fd5b5061035d60055481565b34801561075157600080fd5b5061035d610760366004611d87565b611319565b34801561077157600080fd5b5060085461031c9062010000900460ff1681565b34801561079157600080fd5b5061031c6107a0366004611c98565b600b6020526000908152604090205460ff1681565b3480156107c157600080fd5b506102836107d0366004611c98565b611344565b3480156107e157600080fd5b5060015461029b906001600160a01b031681565b6008805460ff60201b1916600160201b1790556004805482919060009061081d908490611dd6565b9091555050604080516002808252606082018352600092602083019080368337019050509050308160008151811061085757610857611de9565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156108b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d49190611dff565b816001815181106108e7576108e7611de9565b6001600160a01b03928316602091820292909201015260015461090d913091168461137f565b7fb933c1b294702108551eddf782a9c7d1a018b57f68ecf63bc59a1247daa19c30828333426040516109429493929190611e1c565b60405180910390a160015460405163791ac94760e01b81526001600160a01b039091169063791ac94790610997908590600090869073e0aa781648ff8562a5727350876b04f3772746a0904290600401611e84565b600060405180830381600087803b1580156109b157600080fd5b505af11580156109c5573d6000803e3d6000fd5b50506008805460ff60201b1916905550505050565b6000336109e881858561137f565b60019150505b92915050565b600033610a02858285611432565b610a0d8585856114ac565b9150505b9392505050565b6000336109e8818585610a2b8383611319565b610a359190611dd6565b61137f565b610a4261173f565b801515600860029054906101000a900460ff16151503610a7d5760405162a7e72d60e41b815281151560048201526024015b60405180910390fd5b6008805462ff00001981166201000084151581029190911790925560405191900460ff16907ff99f9d4d81f67d0980beea494b4404ba3b8af1a0a2d493230f1a883efa027f2f90610ad5908390859033904290611ec0565b60405180910390a15050565b610ae961173f565b6001600160a01b0382166000908152600c602052604090205481151560ff909116151503610b2d5760405162a7e72d60e41b81528115156004820152602401610a74565b306001600160a01b0316826001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b999190611dff565b6001600160a01b031614158015610c235750306001600160a01b0316826001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bf3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c179190611dff565b6001600160a01b031614155b15610c435781604051634726455360e11b8152600401610a749190611c21565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b610c7661173f565b8060056000828254610c889190611dd6565b909155505042600655610c9d8161dead61177b565b50565b6001600160a01b031660009081526009602052604090205490565b610cc361173f565b610ccd6000611914565b565b610cd761173f565b8060075403610cfc5760405163657e16cf60e01b815260048101829052602401610a74565b60078054908290556040517f9a9f4704ac409fe039e92a996e415370980275aaff2992936ed5b432886c55c590610ad5908390859033904290611e1c565b610d4261173f565b60085460ff1615610d71576008546040516301bf623960e61b815260ff90911615156004820152602401610a74565b60085462010000900460ff1615610dab57600854604051630eff900b60e21b81526201000090910460ff1615156004820152602401610a74565b6008546301000000900460ff1615610de75760085460405163610a8e6760e01b8152630100000090910460ff1615156004820152602401610a74565b6008805463ffffffff19166301010101179055565b610e0461173f565b801515600860039054906101000a900460ff16151503610e3a5760405162a7e72d60e41b81528115156004820152602401610a74565b6008805463ff000000198116630100000084151581029190911790925560405191900460ff16907fa9eb6c000d17475b17651469533695f7b673c93327fdbadf4341ebeb2607a04490610ad5908390859033904290611ec0565b6000610ea06000610ca0565b610eab61dead610ca0565b600254610eb89190611ee6565b610ec29190611ee6565b905090565b610ecf61173f565b600854610100900460ff1615610f0657600854604051624dc03960e01b815261010090910460ff1615156004820152602401610a74565b60085462010000900460ff1615610f4057600854604051630eff900b60e21b81526201000090910460ff1615156004820152602401610a74565b6008546301000000900460ff1615610f7c5760085460405163610a8e6760e01b8152630100000090910460ff1615156004820152602401610a74565b6008805463ffffff0019166301010100179055565b60003381610f9f8286611319565b905083811015610fff5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610a74565b61100c828686840361137f565b506001949350505050565b6000336110258185856114ac565b949350505050565b61103561173f565b6001546001600160a01b03808316911603611065578060405163a936636960e01b8152600401610a749190611c21565b600180546001600160a01b038381166001600160a01b03198316811784556000818152600b6020908152604091829020805460ff19169096179095558051929093168083529382015233918101919091524260608201527fe1cb783288eddc7b22c25642a832d886a558be0dd900747310a34156b9fdcbbb9060800160405180910390a1600160009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561113c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111609190611dff565b6001600160a01b031663c9c6539630600160009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111e69190611dff565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015611233573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112579190611dff565b60088054600160281b600160c81b031916600160281b6001600160a01b03938416810291909117918290559004166000908152600c60205260409020805460ff191660011790555050565b6112aa61173f565b6001600160a01b0382166000908152600b602052604090205481151560ff9091161515036112ee5760405162a7e72d60e41b81528115156004820152602401610a74565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6001600160a01b039182166000908152600a6020908152604080832093909416825291909152205490565b61134c61173f565b6001600160a01b03811661137657600060405163b20f76e360e01b8152600401610a749190611c21565b610c9d81611914565b6001600160a01b0383166113a85782604051634726455360e11b8152600401610a749190611c21565b6001600160a01b0382166113d15781604051634726455360e11b8152600401610a749190611c21565b6001600160a01b038381166000818152600a602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061143e8484611319565b905060001981146114a657818110156114995760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610a74565b6114a6848484840361137f565b50505050565b60006001600160a01b0384166114d75783604051634726455360e11b8152600401610a749190611c21565b6001600160a01b0383166115005782604051634726455360e11b8152600401610a749190611c21565b60085460ff1615801561152c57506001600160a01b0384166000908152600b602052604090205460ff16155b801561155157506001600160a01b0383166000908152600b602052604090205460ff16155b1561156f57604051632b61510560e11b815260040160405180910390fd5b600854600160201b900460ff168061159f57506001600160a01b0384166000908152600b602052604090205460ff165b156115b6576115af848484611964565b9050610a11565b6008546001600160a01b03858116600160281b90920416148015906115e457506008546301000000900460ff165b80156115fa57506007546115f730610ca0565b10155b801561161757506007546004546003546116149190611ee6565b10155b15611627576116276007546107f5565b600854829062010000900460ff16801561165a57506001600160a01b0385166000908152600b602052604090205460ff16155b801561167f57506001600160a01b0384166000908152600b602052604090205460ff16155b156116925761168f8585856119fd565b90505b6001600160a01b0385166000908152600960205260409020548111156116ca5760405162461bcd60e51b8152600401610a7490611ef9565b6001600160a01b03808616600081815260096020526040808220805486900390559287168082529083902080548501905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061172c9085815260200190565b60405180910390a3506001949350505050565b336117526000546001600160a01b031690565b6001600160a01b031614610ccd57336040516332b2baa360e01b8152600401610a749190611c21565b6008805460ff60201b1916600160201b17905561deac1933016117b55761dead604051634726455360e11b8152600401610a749190611c21565b6040805160028082526060820183526000926020830190803683375050600154604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa15801561181f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118439190611dff565b8160008151811061185657611856611de9565b60200260200101906001600160a01b031690816001600160a01b031681525050308160018151811061188a5761188a611de9565b6001600160a01b03928316602091820292909201015260015460405163b6f9de9560e01b815291169063b6f9de959085906118d090600090869088904290600401611f3f565b6000604051808303818588803b1580156118e957600080fd5b505af11580156118fd573d6000803e3d6000fd5b50506008805460ff60201b19169055505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0383166000908152600960205260408120548281101561199d5760405162461bcd60e51b8152600401610a7490611ef9565b6001600160a01b0380861660008181526009602052604080822087860390559287168082529083902080548701905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061172c9087815260200190565b6008805460ff60201b1916600160201b1790556001600160a01b0383166000908152600c602052604081205460ff168015611a36575060015b15611a4c57611a458483611af3565b9050611adf565b6001600160a01b0383166000908152600c602052604090205460ff168015611a72575060015b15611a8157611a458483611af3565b6001600160a01b0384166000908152600c602052604090205460ff16158015611ac357506001600160a01b0383166000908152600c602052604090205460ff16155b8015611acd575060005b15611adc57611a458483611b56565b50805b6008805460ff60201b191690559392505050565b6008805460ff60201b1916600160201b179055600080612710611b17606485611f74565b611b219190611f8b565b90506000611b2f8285611ee6565b90508115611b4157611b418583611b79565b6008805460ff60201b19169055949350505050565b6008805460ff60201b1916600160201b179055600080612710611b178285611f74565b6008805460ff60201b1916600160201b17905560038054829190600090611ba1908490611dd6565b90915550506001600160a01b03821660009081526009602052604081208054839290611bce908490611ee6565b90915550503060009081526009602052604081208054839290611bf2908490611dd6565b90915550506008805460ff60201b191690555050565b600060208284031215611c1a57600080fd5b5035919050565b6001600160a01b0391909116815260200190565b600060208083528351808285015260005b81811015611c6257858101830151858201604001528201611c46565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610c9d57600080fd5b600060208284031215611caa57600080fd5b8135610a1181611c83565b60008060408385031215611cc857600080fd5b8235611cd381611c83565b946020939093013593505050565b600080600060608486031215611cf657600080fd5b8335611d0181611c83565b92506020840135611d1181611c83565b929592945050506040919091013590565b80358015158114611d3257600080fd5b919050565b600060208284031215611d4957600080fd5b610a1182611d22565b60008060408385031215611d6557600080fd5b8235611d7081611c83565b9150611d7e60208401611d22565b90509250929050565b60008060408385031215611d9a57600080fd5b8235611da581611c83565b91506020830135611db581611c83565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b808201808211156109ee576109ee611dc0565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611e1157600080fd5b8151610a1181611c83565b93845260208401929092526001600160a01b03166040830152606082015260800190565b600081518084526020808501945080840160005b83811015611e795781516001600160a01b031687529582019590820190600101611e54565b509495945050505050565b85815284602082015260a060408201526000611ea360a0830186611e40565b6001600160a01b0394909416606083015250608001529392505050565b931515845291151560208401526001600160a01b03166040830152606082015260800190565b818103818111156109ee576109ee611dc0565b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b848152608060208201526000611f586080830186611e40565b6001600160a01b03949094166040830152506060015292915050565b80820281158282048414176109ee576109ee611dc0565b600082611fa857634e487b7160e01b600052601260045260246000fd5b50049056fea26469706673582212209b5e87ea352af447780b2d21001c14467a6d0c5e312dfe5973de9084c4a12e7d64736f6c63430008120033

Deployed Bytecode

0x6080604052600436106102575760003560e01c806378eec3311161013a578063b9b2b5cd116100b1578063b9b2b5cd1461068a578063c76c529f146106a0578063c851cc32146106b4578063d621e813146106d4578063d63cad22146106ee578063d83067861461070e578063da4daf711461072f578063dd62ed3e14610745578063e43504da14610765578063f2a4268714610785578063f2fde38b146107b5578063f887ea40146107d557600080fd5b806378eec331146103fd5780638a8c523c1461054f5780638da5cb5b14610564578063924de9b7146105825780639358928b146105a257806395d89b41146105b757806397e1b9d3146105e2578063a0a6e940146105f8578063a457c2d71461060d578063a8aa1b311461062d578063a9059cbb14610654578063ab28a04c1461067457600080fd5b80633bf31454116101ce5780633bf31454146104255780633fc8aa8f1461044557806358fa63ca1461045a57806359cd90311461046f578063625dd6051461048557806363a95492146104a5578063690f776b146104455780636d498093146104c557806370a08231146104e4578063715018a61461050457806371538eed1461051957806375fed3c71461052f57600080fd5b8063012951431461026357806303fd2a451461028557806306fdde03146102b157806308c43650146102ec578063095ea7b31461032c57806318160ddd1461034c57806323b872dd1461036b5780632ce0c0a01461038b578063313ce567146103a0578063351a964d146103bc57806339509351146103dd57806339d445bf146103fd57600080fd5b3661025e57005b600080fd5b34801561026f57600080fd5b5061028361027e366004611c08565b6107f5565b005b34801561029157600080fd5b5061029b61dead81565b6040516102a89190611c21565b60405180910390f35b3480156102bd57600080fd5b506040805180820190915260098152680a0e4ded4cac6e840b60bb1b60208201525b6040516102a89190611c35565b3480156102f857600080fd5b5061031c610307366004611c98565b600c6020526000908152604090205460ff1681565b60405190151581526020016102a8565b34801561033857600080fd5b5061031c610347366004611cb5565b6109da565b34801561035857600080fd5b506002545b6040519081526020016102a8565b34801561037757600080fd5b5061031c610386366004611ce1565b6109f4565b34801561039757600080fd5b5061035d600081565b3480156103ac57600080fd5b50604051601281526020016102a8565b3480156103c857600080fd5b5060085461031c906301000000900460ff1681565b3480156103e957600080fd5b5061031c6103f8366004611cb5565b610a18565b34801561040957600080fd5b5061029b73e0aa781648ff8562a5727350876b04f3772746a081565b34801561043157600080fd5b50610283610440366004611d37565b610a3a565b34801561045157600080fd5b5061035d606481565b34801561046657600080fd5b5061029b600081565b34801561047b57600080fd5b5061035d60075481565b34801561049157600080fd5b506102836104a0366004611d52565b610ae1565b3480156104b157600080fd5b506102836104c0366004611c08565b610c6e565b3480156104d157600080fd5b5060085461031c90610100900460ff1681565b3480156104f057600080fd5b5061035d6104ff366004611c98565b610ca0565b34801561051057600080fd5b50610283610cbb565b34801561052557600080fd5b5061035d60045481565b34801561053b57600080fd5b5061028361054a366004611c08565b610ccf565b34801561055b57600080fd5b50610283610d3a565b34801561057057600080fd5b506000546001600160a01b031661029b565b34801561058e57600080fd5b5061028361059d366004611d37565b610dfc565b3480156105ae57600080fd5b5061035d610e94565b3480156105c357600080fd5b506040805180820190915260028152610a0b60f31b60208201526102df565b3480156105ee57600080fd5b5061035d60065481565b34801561060457600080fd5b50610283610ec7565b34801561061957600080fd5b5061031c610628366004611cb5565b610f91565b34801561063957600080fd5b5060085461029b90600160281b90046001600160a01b031681565b34801561066057600080fd5b5061031c61066f366004611cb5565b611017565b34801561068057600080fd5b5061035d61271081565b34801561069657600080fd5b5061035d60035481565b3480156106ac57600080fd5b50600161031c565b3480156106c057600080fd5b506102836106cf366004611c98565b61102d565b3480156106e057600080fd5b5060085461031c9060ff1681565b3480156106fa57600080fd5b50610283610709366004611d52565b6112a2565b34801561071a57600080fd5b5060085461031c90600160201b900460ff1681565b34801561073b57600080fd5b5061035d60055481565b34801561075157600080fd5b5061035d610760366004611d87565b611319565b34801561077157600080fd5b5060085461031c9062010000900460ff1681565b34801561079157600080fd5b5061031c6107a0366004611c98565b600b6020526000908152604090205460ff1681565b3480156107c157600080fd5b506102836107d0366004611c98565b611344565b3480156107e157600080fd5b5060015461029b906001600160a01b031681565b6008805460ff60201b1916600160201b1790556004805482919060009061081d908490611dd6565b9091555050604080516002808252606082018352600092602083019080368337019050509050308160008151811061085757610857611de9565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156108b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d49190611dff565b816001815181106108e7576108e7611de9565b6001600160a01b03928316602091820292909201015260015461090d913091168461137f565b7fb933c1b294702108551eddf782a9c7d1a018b57f68ecf63bc59a1247daa19c30828333426040516109429493929190611e1c565b60405180910390a160015460405163791ac94760e01b81526001600160a01b039091169063791ac94790610997908590600090869073e0aa781648ff8562a5727350876b04f3772746a0904290600401611e84565b600060405180830381600087803b1580156109b157600080fd5b505af11580156109c5573d6000803e3d6000fd5b50506008805460ff60201b1916905550505050565b6000336109e881858561137f565b60019150505b92915050565b600033610a02858285611432565b610a0d8585856114ac565b9150505b9392505050565b6000336109e8818585610a2b8383611319565b610a359190611dd6565b61137f565b610a4261173f565b801515600860029054906101000a900460ff16151503610a7d5760405162a7e72d60e41b815281151560048201526024015b60405180910390fd5b6008805462ff00001981166201000084151581029190911790925560405191900460ff16907ff99f9d4d81f67d0980beea494b4404ba3b8af1a0a2d493230f1a883efa027f2f90610ad5908390859033904290611ec0565b60405180910390a15050565b610ae961173f565b6001600160a01b0382166000908152600c602052604090205481151560ff909116151503610b2d5760405162a7e72d60e41b81528115156004820152602401610a74565b306001600160a01b0316826001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b999190611dff565b6001600160a01b031614158015610c235750306001600160a01b0316826001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bf3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c179190611dff565b6001600160a01b031614155b15610c435781604051634726455360e11b8152600401610a749190611c21565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b610c7661173f565b8060056000828254610c889190611dd6565b909155505042600655610c9d8161dead61177b565b50565b6001600160a01b031660009081526009602052604090205490565b610cc361173f565b610ccd6000611914565b565b610cd761173f565b8060075403610cfc5760405163657e16cf60e01b815260048101829052602401610a74565b60078054908290556040517f9a9f4704ac409fe039e92a996e415370980275aaff2992936ed5b432886c55c590610ad5908390859033904290611e1c565b610d4261173f565b60085460ff1615610d71576008546040516301bf623960e61b815260ff90911615156004820152602401610a74565b60085462010000900460ff1615610dab57600854604051630eff900b60e21b81526201000090910460ff1615156004820152602401610a74565b6008546301000000900460ff1615610de75760085460405163610a8e6760e01b8152630100000090910460ff1615156004820152602401610a74565b6008805463ffffffff19166301010101179055565b610e0461173f565b801515600860039054906101000a900460ff16151503610e3a5760405162a7e72d60e41b81528115156004820152602401610a74565b6008805463ff000000198116630100000084151581029190911790925560405191900460ff16907fa9eb6c000d17475b17651469533695f7b673c93327fdbadf4341ebeb2607a04490610ad5908390859033904290611ec0565b6000610ea06000610ca0565b610eab61dead610ca0565b600254610eb89190611ee6565b610ec29190611ee6565b905090565b610ecf61173f565b600854610100900460ff1615610f0657600854604051624dc03960e01b815261010090910460ff1615156004820152602401610a74565b60085462010000900460ff1615610f4057600854604051630eff900b60e21b81526201000090910460ff1615156004820152602401610a74565b6008546301000000900460ff1615610f7c5760085460405163610a8e6760e01b8152630100000090910460ff1615156004820152602401610a74565b6008805463ffffff0019166301010100179055565b60003381610f9f8286611319565b905083811015610fff5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610a74565b61100c828686840361137f565b506001949350505050565b6000336110258185856114ac565b949350505050565b61103561173f565b6001546001600160a01b03808316911603611065578060405163a936636960e01b8152600401610a749190611c21565b600180546001600160a01b038381166001600160a01b03198316811784556000818152600b6020908152604091829020805460ff19169096179095558051929093168083529382015233918101919091524260608201527fe1cb783288eddc7b22c25642a832d886a558be0dd900747310a34156b9fdcbbb9060800160405180910390a1600160009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561113c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111609190611dff565b6001600160a01b031663c9c6539630600160009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111e69190611dff565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015611233573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112579190611dff565b60088054600160281b600160c81b031916600160281b6001600160a01b03938416810291909117918290559004166000908152600c60205260409020805460ff191660011790555050565b6112aa61173f565b6001600160a01b0382166000908152600b602052604090205481151560ff9091161515036112ee5760405162a7e72d60e41b81528115156004820152602401610a74565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6001600160a01b039182166000908152600a6020908152604080832093909416825291909152205490565b61134c61173f565b6001600160a01b03811661137657600060405163b20f76e360e01b8152600401610a749190611c21565b610c9d81611914565b6001600160a01b0383166113a85782604051634726455360e11b8152600401610a749190611c21565b6001600160a01b0382166113d15781604051634726455360e11b8152600401610a749190611c21565b6001600160a01b038381166000818152600a602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061143e8484611319565b905060001981146114a657818110156114995760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610a74565b6114a6848484840361137f565b50505050565b60006001600160a01b0384166114d75783604051634726455360e11b8152600401610a749190611c21565b6001600160a01b0383166115005782604051634726455360e11b8152600401610a749190611c21565b60085460ff1615801561152c57506001600160a01b0384166000908152600b602052604090205460ff16155b801561155157506001600160a01b0383166000908152600b602052604090205460ff16155b1561156f57604051632b61510560e11b815260040160405180910390fd5b600854600160201b900460ff168061159f57506001600160a01b0384166000908152600b602052604090205460ff165b156115b6576115af848484611964565b9050610a11565b6008546001600160a01b03858116600160281b90920416148015906115e457506008546301000000900460ff165b80156115fa57506007546115f730610ca0565b10155b801561161757506007546004546003546116149190611ee6565b10155b15611627576116276007546107f5565b600854829062010000900460ff16801561165a57506001600160a01b0385166000908152600b602052604090205460ff16155b801561167f57506001600160a01b0384166000908152600b602052604090205460ff16155b156116925761168f8585856119fd565b90505b6001600160a01b0385166000908152600960205260409020548111156116ca5760405162461bcd60e51b8152600401610a7490611ef9565b6001600160a01b03808616600081815260096020526040808220805486900390559287168082529083902080548501905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061172c9085815260200190565b60405180910390a3506001949350505050565b336117526000546001600160a01b031690565b6001600160a01b031614610ccd57336040516332b2baa360e01b8152600401610a749190611c21565b6008805460ff60201b1916600160201b17905561deac1933016117b55761dead604051634726455360e11b8152600401610a749190611c21565b6040805160028082526060820183526000926020830190803683375050600154604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa15801561181f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118439190611dff565b8160008151811061185657611856611de9565b60200260200101906001600160a01b031690816001600160a01b031681525050308160018151811061188a5761188a611de9565b6001600160a01b03928316602091820292909201015260015460405163b6f9de9560e01b815291169063b6f9de959085906118d090600090869088904290600401611f3f565b6000604051808303818588803b1580156118e957600080fd5b505af11580156118fd573d6000803e3d6000fd5b50506008805460ff60201b19169055505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0383166000908152600960205260408120548281101561199d5760405162461bcd60e51b8152600401610a7490611ef9565b6001600160a01b0380861660008181526009602052604080822087860390559287168082529083902080548701905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061172c9087815260200190565b6008805460ff60201b1916600160201b1790556001600160a01b0383166000908152600c602052604081205460ff168015611a36575060015b15611a4c57611a458483611af3565b9050611adf565b6001600160a01b0383166000908152600c602052604090205460ff168015611a72575060015b15611a8157611a458483611af3565b6001600160a01b0384166000908152600c602052604090205460ff16158015611ac357506001600160a01b0383166000908152600c602052604090205460ff16155b8015611acd575060005b15611adc57611a458483611b56565b50805b6008805460ff60201b191690559392505050565b6008805460ff60201b1916600160201b179055600080612710611b17606485611f74565b611b219190611f8b565b90506000611b2f8285611ee6565b90508115611b4157611b418583611b79565b6008805460ff60201b19169055949350505050565b6008805460ff60201b1916600160201b179055600080612710611b178285611f74565b6008805460ff60201b1916600160201b17905560038054829190600090611ba1908490611dd6565b90915550506001600160a01b03821660009081526009602052604081208054839290611bce908490611ee6565b90915550503060009081526009602052604081208054839290611bf2908490611dd6565b90915550506008805460ff60201b191690555050565b600060208284031215611c1a57600080fd5b5035919050565b6001600160a01b0391909116815260200190565b600060208083528351808285015260005b81811015611c6257858101830151858201604001528201611c46565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610c9d57600080fd5b600060208284031215611caa57600080fd5b8135610a1181611c83565b60008060408385031215611cc857600080fd5b8235611cd381611c83565b946020939093013593505050565b600080600060608486031215611cf657600080fd5b8335611d0181611c83565b92506020840135611d1181611c83565b929592945050506040919091013590565b80358015158114611d3257600080fd5b919050565b600060208284031215611d4957600080fd5b610a1182611d22565b60008060408385031215611d6557600080fd5b8235611d7081611c83565b9150611d7e60208401611d22565b90509250929050565b60008060408385031215611d9a57600080fd5b8235611da581611c83565b91506020830135611db581611c83565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b808201808211156109ee576109ee611dc0565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611e1157600080fd5b8151610a1181611c83565b93845260208401929092526001600160a01b03166040830152606082015260800190565b600081518084526020808501945080840160005b83811015611e795781516001600160a01b031687529582019590820190600101611e54565b509495945050505050565b85815284602082015260a060408201526000611ea360a0830186611e40565b6001600160a01b0394909416606083015250608001529392505050565b931515845291151560208401526001600160a01b03166040830152606082015260800190565b818103818111156109ee576109ee611dc0565b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b848152608060208201526000611f586080830186611e40565b6001600160a01b03949094166040830152506060015292915050565b80820281158282048414176109ee576109ee611dc0565b600082611fa857634e487b7160e01b600052601260045260246000fd5b50049056fea26469706673582212209b5e87ea352af447780b2d21001c14467a6d0c5e312dfe5973de9084c4a12e7d64736f6c63430008120033

Deployed Bytecode Sourcemap

5274:14031:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9147:611;;;;;;;;;;-1:-1:-1;9147:611:0;;;;;:::i;:::-;;:::i;:::-;;6263:46;;;;;;;;;;;;6302:6;6263:46;;;;;;;;;:::i;:::-;;;;;;;;13956:101;;;;;;;;;;-1:-1:-1;14045:4:0;;;;;;;;;;;;-1:-1:-1;;;14045:4:0;;;;13956:101;;;;;;;:::i;6725:40::-;;;;;;;;;;-1:-1:-1;6725:40:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1513:14:1;;1506:22;1488:41;;1476:2;1461:18;6725:40:0;1348:187:1;14923:205:0;;;;;;;;;;-1:-1:-1;14923:205:0;;;;;:::i;:::-;;:::i;14299:108::-;;;;;;;;;;-1:-1:-1;14387:12:0;;14299:108;;;2006:25:1;;;1994:2;1979:18;14299:108:0;1860:177:1;15140:246:0;;;;;;;;;;-1:-1:-1;15140:246:0;;;;;:::i;:::-;;:::i;5703:39::-;;;;;;;;;;;;5741:1;5703:39;;14186:101;;;;;;;;;;-1:-1:-1;14186:101:0;;5508:2;2645:36:1;;2633:2;2618:18;14186:101:0;2503:184:1;6140:33:0;;;;;;;;;;-1:-1:-1;6140:33:0;;;;;;;;;;;15398:247;;;;;;;;;;-1:-1:-1;15398:247:0;;;;;:::i;:::-;;:::i;6404:80::-;;;;;;;;;;;;6442:42;6404:80;;10854:307;;;;;;;;;;-1:-1:-1;10854:307:0;;;;;:::i;:::-;;:::i;5616:36::-;;;;;;;;;;;;5649:3;5616:36;;6215:41;;;;;;;;;;;;6254:1;6215:41;;5935:34;;;;;;;;;;;;;;;;11717:326;;;;;;;;;;-1:-1:-1;11717:326:0;;;;;:::i;:::-;;:::i;13312:202::-;;;;;;;;;;-1:-1:-1;13312:202:0;;;;;:::i;:::-;;:::i;6059:36::-;;;;;;;;;;-1:-1:-1;6059:36:0;;;;;;;;;;;14419:127;;;;;;;;;;-1:-1:-1;14419:127:0;;;;;:::i;:::-;;:::i;4543:103::-;;;;;;;;;;;;;:::i;5794:35::-;;;;;;;;;;;;;;;;10542:304;;;;;;;;;;-1:-1:-1;10542:304:0;;;;;:::i;:::-;;:::i;8320:406::-;;;;;;;;;;;;;:::i;4285:87::-;;;;;;;;;;-1:-1:-1;4331:7:0;4358:6;-1:-1:-1;;;;;4358:6:0;4285:87;;11169:317;;;;;;;;;;-1:-1:-1;11169:317:0;;;;;:::i;:::-;;:::i;9874:136::-;;;;;;;;;;;;;:::i;14069:105::-;;;;;;;;;;-1:-1:-1;14160:6:0;;;;;;;;;;;;-1:-1:-1;;;14160:6:0;;;;14069:105;;5885:43;;;;;;;;;;;;;;;;8734:385;;;;;;;;;;;;;:::i;15657:445::-;;;;;;;;;;-1:-1:-1;15657:445:0;;;;;:::i;:::-;;:::i;6493:19::-;;;;;;;;;;-1:-1:-1;6493:19:0;;;;-1:-1:-1;;;6493:19:0;;-1:-1:-1;;;;;6493:19:0;;;14558:184;;;;;;;;;;-1:-1:-1;14558:184:0;;;;;:::i;:::-;;:::i;5560:47::-;;;;;;;;;;;;5601:6;5560:47;;5751:36;;;;;;;;;;;;;;;;9785:81;;;;;;;;;;-1:-1:-1;6007:4:0;9785:81;;10038:496;;;;;;;;;;-1:-1:-1;10038:496:0;;;;;:::i;:::-;;:::i;6020:32::-;;;;;;;;;;-1:-1:-1;6020:32:0;;;;;;;;11494:215;;;;;;;;;;-1:-1:-1;11494:215:0;;;;;:::i;:::-;;:::i;6180:26::-;;;;;;;;;;-1:-1:-1;6180:26:0;;;;-1:-1:-1;;;6180:26:0;;;;;;5836:42;;;;;;;;;;;;;;;;14754:157;;;;;;;;;;-1:-1:-1;14754:157:0;;;;;:::i;:::-;;:::i;6102:31::-;;;;;;;;;;-1:-1:-1;6102:31:0;;;;;;;;;;;6669:49;;;;;;;;;;-1:-1:-1;6669:49:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;4654:213;;;;;;;;;;-1:-1:-1;4654:213:0;;;;;:::i;:::-;;:::i;5349:21::-;;;;;;;;;;-1:-1:-1;5349:21:0;;;;-1:-1:-1;;;;;5349:21:0;;;9147:611;6824:6;:13;;-1:-1:-1;;;;6824:13:0;-1:-1:-1;;;6824:13:0;;;:6;9228:34;;9248:14;;6824:6;:13;;9228:34:::1;::::0;9248:14;;9228:34:::1;:::i;:::-;::::0;;;-1:-1:-1;;9299:16:0::1;::::0;;9313:1:::1;9299:16:::0;;;;;::::1;::::0;;9275:21:::1;::::0;9299:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9299:16:0::1;9275:40;;9344:4;9326;9331:1;9326:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9326:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;9370:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;9370:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;9326:7;;9370:13;;;;;:6;:13:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9360:4;9365:1;9360:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9360:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;9428:6:::1;::::0;9396:56:::1;::::0;9413:4:::1;::::0;9428:6:::1;9437:14:::0;9396:8:::1;:56::i;:::-;9478:71;9489:14;9505;9521:10;9533:15;9478:71;;;;;;;;;:::i;:::-;;;;;;;;9562:6;::::0;:188:::1;::::0;-1:-1:-1;;;9562:188:0;;-1:-1:-1;;;;;9562:6:0;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;9634:14;;9562:6:::1;::::0;9679:4;;6442:42:::1;::::0;9724:15:::1;::::0;9562:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6860:6:0;:14;;-1:-1:-1;;;;6860:14:0;;;-1:-1:-1;;;;9147:611:0:o;14923:205::-;15006:4;15042:10;15063:35;15042:10;15082:7;15091:6;15063:8;:35::i;:::-;15116:4;15109:11;;;14923:205;;;;;:::o;15140:246::-;15239:4;15274:10;15295:38;15311:4;15274:10;15326:6;15295:15;:38::i;:::-;15351:27;15361:4;15367:2;15371:6;15351:9;:27::i;:::-;15344:34;;;15140:246;;;;;;:::o;15398:247::-;15488:4;15524:10;15545:70;15524:10;15564:7;15604:10;15573:28;15524:10;15564:7;15573:9;:28::i;:::-;:41;;;;:::i;:::-;15545:8;:70::i;10854:307::-;3883:13;:11;:13::i;:::-;10944:9:::1;10929:24;;:11;;;;;;;;;;;:24;;::::0;10925:74:::1;;10964:32;::::0;-1:-1:-1;;;10964:32:0;;1513:14:1;;1506:22;10964:32:0::1;::::0;::::1;1488:41:1::0;1461:18;;10964:32:0::1;;;;;;;;10925:74;11026:11;::::0;;-1:-1:-1;;11048:23:0;::::1;11026:11:::0;11048:23;::::1;;::::0;::::1;::::0;;;::::1;::::0;;;11087:66:::1;::::0;11026:11;;::::1;;;::::0;11087:66:::1;::::0;::::1;::::0;11026:11;;11048:23;;11125:10:::1;::::0;11137:15:::1;::::0;11087:66:::1;:::i;:::-;;;;;;;;10914:247;10854:307:::0;:::o;11717:326::-;3883:13;:11;:13::i;:::-;-1:-1:-1;;;;;11799:16:0;::::1;;::::0;;;:8:::1;:16;::::0;;;;;:26;::::1;;:16;::::0;;::::1;:26;;::::0;11795:73:::1;;11836:29;::::0;-1:-1:-1;;;11836:29:0;;1513:14:1;;1506:22;11836:29:0::1;::::0;::::1;1488:41:1::0;1461:18;;11836:29:0::1;1348:187:1::0;11795:73:0::1;11916:4;-1:-1:-1::0;;;;;11882:39:0::1;11888:6;-1:-1:-1::0;;;;;11882:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11882:39:0::1;;;:82;;;;;11959:4;-1:-1:-1::0;;;;;11925:39:0::1;11931:6;-1:-1:-1::0;;;;;11925:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11925:39:0::1;;;11882:82;11878:122;;;11990:6;11975:22;;-1:-1:-1::0;;;11975:22:0::1;;;;;;;;:::i;11878:122::-;-1:-1:-1::0;;;;;12010:16:0;;;::::1;;::::0;;;:8:::1;:16;::::0;;;;:25;;-1:-1:-1;;12010:25:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11717:326::o;13312:202::-;3883:13;:11;:13::i;:::-;13413:6:::1;13386:23;;:33;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;13457:15:0::1;13430:24;:42:::0;13483:23:::1;13493:6:::0;6302::::1;13483:9;:23::i;:::-;13312:202:::0;:::o;14419:127::-;-1:-1:-1;;;;;14520:18:0;14493:7;14520:18;;;:9;:18;;;;;;;14419:127::o;4543:103::-;3883:13;:11;:13::i;:::-;4608:30:::1;4635:1;4608:18;:30::i;:::-;4543:103::o:0;10542:304::-;3883:13;:11;:13::i;:::-;10630:10:::1;10619:7;;:21:::0;10615:72:::1;;10651:33;::::0;-1:-1:-1;;;10651:33:0;;::::1;::::0;::::1;2006:25:1::0;;;1979:18;;10651:33:0::1;1860:177:1::0;10615:72:0::1;10718:7;::::0;;10736:20;;;;10772:66:::1;::::0;::::1;::::0;::::1;::::0;10718:7;;10746:10;;10810::::1;::::0;10822:15:::1;::::0;10772:66:::1;:::i;8320:406::-:0;3883:13;:11;:13::i;:::-;8379:12:::1;::::0;::::1;;8375:68;;;8427:12;::::0;8402:38:::1;::::0;-1:-1:-1;;;8402:38:0;;8427:12:::1;::::0;;::::1;1513:14:1::0;1506:22;8402:38:0::1;::::0;::::1;1488:41:1::0;1461:18;;8402:38:0::1;1348:187:1::0;8375:68:0::1;8457:11;::::0;;;::::1;;;8453:63;;;8501:11;::::0;8479:34:::1;::::0;-1:-1:-1;;;8479:34:0;;8501:11;;;::::1;;;1513:14:1::0;1506:22;8479:34:0::1;::::0;::::1;1488:41:1::0;1461:18;;8479:34:0::1;1348:187:1::0;8453:63:0::1;8530:13;::::0;;;::::1;;;8526:69;;;8578:13;::::0;8554:38:::1;::::0;-1:-1:-1;;;8554:38:0;;8578:13;;;::::1;;;1513:14:1::0;1506:22;8554:38:0::1;::::0;::::1;1488:41:1::0;1461:18;;8554:38:0::1;1348:187:1::0;8526:69:0::1;8605:12;:19:::0;;-1:-1:-1;;8695:23:0;;;;;8320:406::o;11169:317::-;3883:13;:11;:13::i;:::-;11263:9:::1;11246:26;;:13;;;;;;;;;;;:26;;::::0;11242:76:::1;;11283:32;::::0;-1:-1:-1;;;11283:32:0;;1513:14:1;;1506:22;11283:32:0::1;::::0;::::1;1488:41:1::0;1461:18;;11283:32:0::1;1348:187:1::0;11242:76:0::1;11345:13;::::0;;-1:-1:-1;;11369:25:0;::::1;11345:13:::0;11369:25;::::1;;::::0;::::1;::::0;;;::::1;::::0;;;11410:68:::1;::::0;11345:13;;::::1;;;::::0;11410:68:::1;::::0;::::1;::::0;11345:13;;11369:25;;11450:10:::1;::::0;11462:15:::1;::::0;11410:68:::1;:::i;9874:136::-:0;9926:7;9987:15;6254:1;9987:9;:15::i;:::-;9969;6302:6;9969:9;:15::i;:::-;14387:12;;9953:31;;;;:::i;:::-;:49;;;;:::i;:::-;9946:56;;9874:136;:::o;8734:385::-;3883:13;:11;:13::i;:::-;8795:16:::1;::::0;::::1;::::0;::::1;;;8791:75;;;8846:16;::::0;8822:41:::1;::::0;-1:-1:-1;;;8822:41:0;;8846:16:::1;::::0;;::::1;;;1513:14:1::0;1506:22;8822:41:0::1;::::0;::::1;1488::1::0;1461:18;;8822:41:0::1;1348:187:1::0;8791:75:0::1;8880:11;::::0;;;::::1;;;8876:63;;;8924:11;::::0;8902:34:::1;::::0;-1:-1:-1;;;8902:34:0;;8924:11;;;::::1;;;1513:14:1::0;1506:22;8902:34:0::1;::::0;::::1;1488:41:1::0;1461:18;;8902:34:0::1;1348:187:1::0;8876:63:0::1;8953:13;::::0;;;::::1;;;8949:69;;;9001:13;::::0;8977:38:::1;::::0;-1:-1:-1;;;8977:38:0;;9001:13;;;::::1;;;1513:14:1::0;1506:22;8977:38:0::1;::::0;::::1;1488:41:1::0;1461:18;;8977:38:0::1;1348:187:1::0;8949:69:0::1;9028:11;:18:::0;;-1:-1:-1;;9088:23:0;;;;;8734:385::o;15657:445::-;15752:4;15788:10;15752:4;15836:28;15788:10;15856:7;15836:9;:28::i;:::-;15809:55;;15903:15;15883:16;:35;;15875:85;;;;-1:-1:-1;;;15875:85:0;;7012:2:1;15875:85:0;;;6994:21:1;7051:2;7031:18;;;7024:30;7090:34;7070:18;;;7063:62;-1:-1:-1;;;7141:18:1;;;7134:35;7186:19;;15875:85:0;6810:401:1;15875:85:0;15996:63;16005:8;16015:7;16043:15;16024:16;:34;15996:8;:63::i;:::-;-1:-1:-1;16090:4:0;;15657:445;-1:-1:-1;;;;15657:445:0:o;14558:184::-;14639:4;14675:10;14703:31;14675:10;14723:2;14727:6;14703:9;:31::i;:::-;14696:38;14558:184;-1:-1:-1;;;;14558:184:0:o;10038:496::-;3883:13;:11;:13::i;:::-;10121:6:::1;::::0;-1:-1:-1;;;;;10113:28:0;;::::1;10121:6:::0;::::1;10113:28:::0;10109:80:::1;;10176:9;10152:34;;-1:-1:-1::0;;;10152:34:0::1;;;;;;;;:::i;10109:80::-;10227:6;::::0;;-1:-1:-1;;;;;10245:27:0;;::::1;-1:-1:-1::0;;;;;;10245:27:0;::::1;::::0;::::1;::::0;;-1:-1:-1;10293:28:0;;;:17:::1;:28;::::0;;;;;;;;:35;;-1:-1:-1;;10293:35:0::1;::::0;;::::1;::::0;;;10346:63;;10227:6;;;::::1;7485:34:1::0;;;7535:18;;;7528:43;10381:10:0::1;7587:18:1::0;;;7580:43;;;;10393:15:0::1;7654:2:1::0;7639:18;;7632:34;10346:63:0::1;::::0;7434:3:1;7419:19;10346:63:0::1;;;;;;;10436:6;;;;;;;;;-1:-1:-1::0;;;;;10436:6:0::1;-1:-1:-1::0;;;;;10436:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10427:37:0::1;;10473:4;10480:6;;;;;;;;;-1:-1:-1::0;;;;;10480:6:0::1;-1:-1:-1::0;;;;;10480:11:0::1;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10427:67;::::0;-1:-1:-1;;;;;;10427:67:0::1;::::0;;;;;;-1:-1:-1;;;;;7907:15:1;;;10427:67:0::1;::::0;::::1;7889:34:1::0;7959:15;;7939:18;;;7932:43;7824:18;;10427:67:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10420:4;:74:::0;;-1:-1:-1;;;;;;;;10420:74:0::1;-1:-1:-1::0;;;;;;;;10420:74:0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;;10514:4;::::1;;-1:-1:-1::0;10505:14:0;;;:8:::1;:14;::::0;;;;:21;;-1:-1:-1;;10505:21:0::1;-1:-1:-1::0;10505:21:0::1;::::0;;-1:-1:-1;;10038:496:0:o;11494:215::-;3883:13;:11;:13::i;:::-;-1:-1:-1;;;;;11583:23:0;::::1;;::::0;;;:17:::1;:23;::::0;;;;;:33;::::1;;:23;::::0;;::::1;:33;;::::0;11579:80:::1;;11627:29;::::0;-1:-1:-1;;;11627:29:0;;1513:14:1;;1506:22;11627:29:0::1;::::0;::::1;1488:41:1::0;1461:18;;11627:29:0::1;1348:187:1::0;11579:80:0::1;-1:-1:-1::0;;;;;11669:23:0;;;::::1;;::::0;;;:17:::1;:23;::::0;;;;:32;;-1:-1:-1;;11669:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11494:215::o;14754:157::-;-1:-1:-1;;;;;14873:21:0;;;14846:7;14873:21;;;:11;:21;;;;;;;;:30;;;;;;;;;;;;;14754:157::o;4654:213::-;3883:13;:11;:13::i;:::-;-1:-1:-1;;;;;4739:22:0;::::1;4735:86;;4806:1;4785:24;;-1:-1:-1::0;;;4785:24:0::1;;;;;;;;:::i;4735:86::-;4831:28;4850:8;4831:18;:28::i;16424:331::-:0;-1:-1:-1;;;;;16525:16:0;;16521:58;;16567:8;16552:24;;-1:-1:-1;;;16552:24:0;;;;;;;;:::i;16521:58::-;-1:-1:-1;;;;;16593:15:0;;16589:56;;16634:7;16619:23;;-1:-1:-1;;;16619:23:0;;;;;;;;:::i;16589:56::-;-1:-1:-1;;;;;16657:21:0;;;;;;;:11;:21;;;;;;;;:30;;;;;;;;;;;;;:39;;;16712:35;;2006:25:1;;;16712:35:0;;1979:18:1;16712:35:0;;;;;;;16424:331;;;:::o;16767:428::-;16871:24;16898:28;16908:8;16918:7;16898:9;:28::i;:::-;16871:55;;-1:-1:-1;;16941:16:0;:37;16937:251;;17023:6;17003:16;:26;;16995:68;;;;-1:-1:-1;;;16995:68:0;;8188:2:1;16995:68:0;;;8170:21:1;8227:2;8207:18;;;8200:30;8266:31;8246:18;;;8239:59;8315:18;;16995:68:0;7986:353:1;16995:68:0;17107:54;17116:8;17126:7;17154:6;17135:16;:25;17107:8;:54::i;:::-;16860:335;16767:428;;;:::o;17682:1124::-;17769:4;-1:-1:-1;;;;;17790:12:0;;17786:50;;17828:4;17813:20;;-1:-1:-1;;;17813:20:0;;;;;;;;:::i;17786:50::-;-1:-1:-1;;;;;17850:10:0;;17846:46;;17886:2;17871:18;;-1:-1:-1;;;17871:18:0;;;;;;;;:::i;17846:46::-;17909:12;;;;17908:13;:41;;;;-1:-1:-1;;;;;;17926:23:0;;;;;;:17;:23;;;;;;;;17925:24;17908:41;:67;;;;-1:-1:-1;;;;;;17954:21:0;;;;;;:17;:21;;;;;;;;17953:22;17908:67;17904:100;;;17986:15;;-1:-1:-1;;;17986:15:0;;;;;;;;;;;17904:100;18020:6;;-1:-1:-1;;;18020:6:0;;;;;:33;;-1:-1:-1;;;;;;18030:23:0;;;;;;:17;:23;;;;;;;;18020:33;18016:105;;;18077:32;18092:4;18098:2;18102:6;18077:14;:32::i;:::-;18070:39;;;;18016:105;18145:4;;-1:-1:-1;;;;;18137:12:0;;;-1:-1:-1;;;18145:4:0;;;;18137:12;;;;:29;;-1:-1:-1;18153:13:0;;;;;;;18137:29;:68;;;;;18198:7;;18170:24;18188:4;18170:9;:24::i;:::-;:35;;18137:68;:119;;;;;18249:7;;18229:16;;18209:17;;:36;;;;:::i;:::-;:47;;18137:119;18133:171;;;18273:19;18284:7;;18273:10;:19::i;:::-;18359:11;;18336:6;;18359:11;;;;;:39;;;;-1:-1:-1;;;;;;18375:23:0;;;;;;:17;:23;;;;;;;;18374:24;18359:39;:65;;;;-1:-1:-1;;;;;;18403:21:0;;;;;;:17;:21;;;;;;;;18402:22;18359:65;18355:148;;;18453:38;18474:4;18480:2;18484:6;18453:20;:38::i;:::-;18441:50;;18355:148;-1:-1:-1;;;;;18523:15:0;;;;;;:9;:15;;;;;;:28;-1:-1:-1;18523:28:0;18515:79;;;;-1:-1:-1;;;18515:79:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18648:15:0;;;;;;;:9;:15;;;;;;;;:27;;;18630:45;;18690:13;;;;;;;;;;:26;;;;;;18745:29;;;;;;18666:9;2006:25:1;;1994:2;1979:18;;1860:177;18745:29:0;;;;;;;;-1:-1:-1;18794:4:0;;17682:1124;-1:-1:-1;;;;17682:1124:0:o;4380:155::-;4451:10;4440:7;4331;4358:6;-1:-1:-1;;;;;4358:6:0;;4285:87;4440:7;-1:-1:-1;;;;;4440:21:0;;4436:92;;4505:10;4485:31;;-1:-1:-1;;;4485:31:0;;;;;;;;:::i;13522:398::-;6824:6;:13;;-1:-1:-1;;;;6824:13:0;-1:-1:-1;;;6824:13:0;;;-1:-1:-1;;13602:10:0::1;:18:::0;13598:56:::1;;6302:6;13631:20;;-1:-1:-1::0;;;13631:20:0::1;;;;;;;;:::i;13598:56::-;13688:16;::::0;;13702:1:::1;13688:16:::0;;;;;::::1;::::0;;13664:21:::1;::::0;13688:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;-1:-1:-1::0;;13725:6:0::1;::::0;:13:::1;::::0;;-1:-1:-1;;;13725:13:0;;;;13664:40;;-1:-1:-1;;;;;;13725:6:0;;::::1;::::0;:11:::1;::::0;-1:-1:-1;13725:13:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;:6;:13:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13715:4;13720:1;13715:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;13715:23:0::1;;;-1:-1:-1::0;;;;;13715:23:0::1;;;::::0;::::1;13767:4;13749;13754:1;13749:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13749:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;13785:6:::1;::::0;:127:::1;::::0;-1:-1:-1;;;13785:127:0;;:6;::::1;::::0;:57:::1;::::0;13864:6;;13785:127:::1;::::0;:6:::1;::::0;13886:4;;13892:2;;13896:15:::1;::::0;13785:127:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6860:6:0;:14;;-1:-1:-1;;;;6860:14:0;;;-1:-1:-1;;;;;;13522:398:0:o;4875:191::-;4949:16;4968:6;;-1:-1:-1;;;;;4985:17:0;;;-1:-1:-1;;;;;;4985:17:0;;;;;;5018:40;;4968:6;;;;;;;5018:40;;4949:16;5018:40;4938:128;4875:191;:::o;17227:419::-;-1:-1:-1;;;;;17351:15:0;;17312:4;17351:15;;;:9;:15;;;;;;17385:21;;;;17377:72;;;;-1:-1:-1;;;17377:72:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17485:15:0;;;;;;;:9;:15;;;;;;17503:20;;;17485:38;;17538:13;;;;;;;;;;:23;;;;;;17590:26;;;;;;17517:6;2006:25:1;;1994:2;1979:18;;1860:177;18814:488:0;6824:6;:13;;-1:-1:-1;;;;6824:13:0;-1:-1:-1;;;6824:13:0;;;-1:-1:-1;;;;;18945:14:0;::::1;18921:7:::0;18945:14;;;:8:::1;:14;::::0;;;;;6824:13;18945:14:::1;:30:::0;::::1;;;-1:-1:-1::0;18964:10:0;18945:30:::1;18941:94;;;18999:24;19010:4;19016:6;18999:10;:24::i;:::-;18992:31;;;;18941:94;-1:-1:-1::0;;;;;19049:12:0;::::1;;::::0;;;:8:::1;:12;::::0;;;;;::::1;;:29:::0;::::1;;;-1:-1:-1::0;19066:11:0;19049:29:::1;19045:94;;;19102:25;19114:4;19120:6;19102:11;:25::i;19045:94::-;-1:-1:-1::0;;;;;19154:14:0;::::1;;::::0;;;:8:::1;:14;::::0;;;;;::::1;;19153:15;:32:::0;::::1;;;-1:-1:-1::0;;;;;;19173:12:0;::::1;;::::0;;;:8:::1;:12;::::0;;;;;::::1;;19172:13;19153:32;:53;;;;-1:-1:-1::0;19204:1:0::1;19153:53;19149:122;;;19230:29;19246:4;19252:6;19230:15;:29::i;19149:122::-;-1:-1:-1::0;19288:6:0;6848:1:::1;6860:6:::0;:14;;-1:-1:-1;;;;6860:14:0;;;18814:488;;-1:-1:-1;;;18814:488:0:o;12068:321::-;6824:6;:13;;-1:-1:-1;;;;6824:13:0;-1:-1:-1;;;6824:13:0;;;12145:7;;5601:6:::1;12185:15;5649:3;12185:6:::0;:15:::1;:::i;:::-;:32;;;;:::i;:::-;12165:52:::0;-1:-1:-1;12228:17:0::1;12248:18;12165:52:::0;12248:6;:18:::1;:::i;:::-;12228:38:::0;-1:-1:-1;12281:13:0;;12277:78:::1;;12311:32;12327:4;12333:9;12311:15;:32::i;:::-;6860:6:::0;:14;;-1:-1:-1;;;;6860:14:0;;;12372:9;12068:321;-1:-1:-1;;;;12068:321:0:o;12728:331::-;6824:6;:13;;-1:-1:-1;;;;6824:13:0;-1:-1:-1;;;6824:13:0;;;12810:7;;5601:6:::1;12850:20;12810:7:::0;12850:6;:20:::1;:::i;13067:216::-:0;6824:6;:13;;-1:-1:-1;;;;6824:13:0;-1:-1:-1;;;6824:13:0;;;13155:17:::1;:31:::0;;13176:10;;13155:17;6824:13;;13155:31:::1;::::0;13176:10;;13155:31:::1;:::i;:::-;::::0;;;-1:-1:-1;;;;;;;13197:15:0;::::1;;::::0;;;:9:::1;:15;::::0;;;;:29;;13216:10;;13197:15;:29:::1;::::0;13216:10;;13197:29:::1;:::i;:::-;::::0;;;-1:-1:-1;;13255:4:0::1;13237:24;::::0;;;:9:::1;:24;::::0;;;;:38;;13265:10;;13237:24;:38:::1;::::0;13265:10;;13237:38:::1;:::i;:::-;::::0;;;-1:-1:-1;;6860:6:0;:14;;-1:-1:-1;;;;6860:14:0;;;-1:-1:-1;;13067:216:0:o;14:180:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:1;;14:180;-1:-1:-1;14:180:1:o;199:203::-;-1:-1:-1;;;;;363:32:1;;;;345:51;;333:2;318:18;;199:203::o;407:548::-;519:4;548:2;577;566:9;559:21;609:6;603:13;652:6;647:2;636:9;632:18;625:34;677:1;687:140;701:6;698:1;695:13;687:140;;;796:14;;;792:23;;786:30;762:17;;;781:2;758:26;751:66;716:10;;687:140;;;691:3;876:1;871:2;862:6;851:9;847:22;843:31;836:42;946:2;939;935:7;930:2;922:6;918:15;914:29;903:9;899:45;895:54;887:62;;;;407:548;;;;:::o;960:131::-;-1:-1:-1;;;;;1035:31:1;;1025:42;;1015:70;;1081:1;1078;1071:12;1096:247;1155:6;1208:2;1196:9;1187:7;1183:23;1179:32;1176:52;;;1224:1;1221;1214:12;1176:52;1263:9;1250:23;1282:31;1307:5;1282:31;:::i;1540:315::-;1608:6;1616;1669:2;1657:9;1648:7;1644:23;1640:32;1637:52;;;1685:1;1682;1675:12;1637:52;1724:9;1711:23;1743:31;1768:5;1743:31;:::i;:::-;1793:5;1845:2;1830:18;;;;1817:32;;-1:-1:-1;;;1540:315:1:o;2042:456::-;2119:6;2127;2135;2188:2;2176:9;2167:7;2163:23;2159:32;2156:52;;;2204:1;2201;2194:12;2156:52;2243:9;2230:23;2262:31;2287:5;2262:31;:::i;:::-;2312:5;-1:-1:-1;2369:2:1;2354:18;;2341:32;2382:33;2341:32;2382:33;:::i;:::-;2042:456;;2434:7;;-1:-1:-1;;;2488:2:1;2473:18;;;;2460:32;;2042:456::o;2692:160::-;2757:20;;2813:13;;2806:21;2796:32;;2786:60;;2842:1;2839;2832:12;2786:60;2692:160;;;:::o;2857:180::-;2913:6;2966:2;2954:9;2945:7;2941:23;2937:32;2934:52;;;2982:1;2979;2972:12;2934:52;3005:26;3021:9;3005:26;:::i;3042:315::-;3107:6;3115;3168:2;3156:9;3147:7;3143:23;3139:32;3136:52;;;3184:1;3181;3174:12;3136:52;3223:9;3210:23;3242:31;3267:5;3242:31;:::i;:::-;3292:5;-1:-1:-1;3316:35:1;3347:2;3332:18;;3316:35;:::i;:::-;3306:45;;3042:315;;;;;:::o;3362:388::-;3430:6;3438;3491:2;3479:9;3470:7;3466:23;3462:32;3459:52;;;3507:1;3504;3497:12;3459:52;3546:9;3533:23;3565:31;3590:5;3565:31;:::i;:::-;3615:5;-1:-1:-1;3672:2:1;3657:18;;3644:32;3685:33;3644:32;3685:33;:::i;:::-;3737:7;3727:17;;;3362:388;;;;;:::o;3978:127::-;4039:10;4034:3;4030:20;4027:1;4020:31;4070:4;4067:1;4060:15;4094:4;4091:1;4084:15;4110:125;4175:9;;;4196:10;;;4193:36;;;4209:18;;:::i;4372:127::-;4433:10;4428:3;4424:20;4421:1;4414:31;4464:4;4461:1;4454:15;4488:4;4485:1;4478:15;4504:251;4574:6;4627:2;4615:9;4606:7;4602:23;4598:32;4595:52;;;4643:1;4640;4633:12;4595:52;4675:9;4669:16;4694:31;4719:5;4694:31;:::i;4760:417::-;4991:25;;;5047:2;5032:18;;5025:34;;;;-1:-1:-1;;;;;5095:32:1;5090:2;5075:18;;5068:60;5159:2;5144:18;;5137:34;4978:3;4963:19;;4760:417::o;5182:461::-;5235:3;5273:5;5267:12;5300:6;5295:3;5288:19;5326:4;5355:2;5350:3;5346:12;5339:19;;5392:2;5385:5;5381:14;5413:1;5423:195;5437:6;5434:1;5431:13;5423:195;;;5502:13;;-1:-1:-1;;;;;5498:39:1;5486:52;;5558:12;;;;5593:15;;;;5534:1;5452:9;5423:195;;;-1:-1:-1;5634:3:1;;5182:461;-1:-1:-1;;;;;5182:461:1:o;5648:582::-;5947:6;5936:9;5929:25;5990:6;5985:2;5974:9;5970:18;5963:34;6033:3;6028:2;6017:9;6013:18;6006:31;5910:4;6054:57;6106:3;6095:9;6091:19;6083:6;6054:57;:::i;:::-;-1:-1:-1;;;;;6147:32:1;;;;6142:2;6127:18;;6120:60;-1:-1:-1;6211:3:1;6196:19;6189:35;6046:65;5648:582;-1:-1:-1;;;5648:582:1:o;6235:437::-;6479:14;;6472:22;6454:41;;6538:14;;6531:22;6526:2;6511:18;;6504:50;-1:-1:-1;;;;;6590:32:1;6585:2;6570:18;;6563:60;6654:2;6639:18;;6632:34;6441:3;6426:19;;6235:437::o;6677:128::-;6744:9;;;6765:11;;;6762:37;;;6779:18;;:::i;8344:402::-;8546:2;8528:21;;;8585:2;8565:18;;;8558:30;8624:34;8619:2;8604:18;;8597:62;-1:-1:-1;;;8690:2:1;8675:18;;8668:36;8736:3;8721:19;;8344:402::o;8751:510::-;9022:6;9011:9;9004:25;9065:3;9060:2;9049:9;9045:18;9038:31;8985:4;9086:57;9138:3;9127:9;9123:19;9115:6;9086:57;:::i;:::-;-1:-1:-1;;;;;9179:32:1;;;;9174:2;9159:18;;9152:60;-1:-1:-1;9243:2:1;9228:18;9221:34;9078:65;8751:510;-1:-1:-1;;8751:510:1:o;9266:168::-;9339:9;;;9370;;9387:15;;;9381:22;;9367:37;9357:71;;9408:18;;:::i;9439:217::-;9479:1;9505;9495:132;;9549:10;9544:3;9540:20;9537:1;9530:31;9584:4;9581:1;9574:15;9612:4;9609:1;9602:15;9495:132;-1:-1:-1;9641:9:1;;9439:217::o

Swarm Source

ipfs://9b5e87ea352af447780b2d21001c14467a6d0c5e312dfe5973de9084c4a12e7d

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.