ETH Price: $2,114.41 (-1.79%)

Contract

0xBa5Ed698331D2bfA6Dc7CBff27368E57c59Ddf4D
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve230008462025-07-26 4:11:47239 days ago1753503107IN
0xBa5Ed698...7c59Ddf4D
0 ETH0.000018640.4
Approve223368612025-04-24 5:43:23332 days ago1745473403IN
0xBa5Ed698...7c59Ddf4D
0 ETH0.00001670.36132582
Approve201351132024-06-20 19:46:35639 days ago1718912795IN
0xBa5Ed698...7c59Ddf4D
0 ETH0.000245615.27604497
Transfer200575052024-06-09 23:19:23650 days ago1717975163IN
0xBa5Ed698...7c59Ddf4D
0 ETH0.000181834.48236139
Transfer200574922024-06-09 23:16:47650 days ago1717975007IN
0xBa5Ed698...7c59Ddf4D
0 ETH0.000176754.35726366
Transfer200542122024-06-09 12:17:23650 days ago1717935443IN
0xBa5Ed698...7c59Ddf4D
0 ETH0.000288544.61921734
Approve200541412024-06-09 12:03:11650 days ago1717934591IN
0xBa5Ed698...7c59Ddf4D
0 ETH0.000123214.21611263
Transfer200541222024-06-09 11:59:23650 days ago1717934363IN
0xBa5Ed698...7c59Ddf4D
0 ETH0.00015983.93944643
Transfer200539752024-06-09 11:29:47650 days ago1717932587IN
0xBa5Ed698...7c59Ddf4D
0 ETH0.000197744.87458937
Transfer200534682024-06-09 9:47:35650 days ago1717926455IN
0xBa5Ed698...7c59Ddf4D
0 ETH0.000226995.5956253
Transfer200533712024-06-09 9:28:11650 days ago1717925291IN
0xBa5Ed698...7c59Ddf4D
0 ETH0.000151383.7317502
Transfer200529912024-06-09 8:11:47650 days ago1717920707IN
0xBa5Ed698...7c59Ddf4D
0 ETH0.000246036.06510183
Transfer200528502024-06-09 7:43:23650 days ago1717919003IN
0xBa5Ed698...7c59Ddf4D
0 ETH0.000174264.29584206
Transfer200528352024-06-09 7:40:11650 days ago1717918811IN
0xBa5Ed698...7c59Ddf4D
0 ETH0.000153933.79586195
Transfer200527722024-06-09 7:26:59650 days ago1717918019IN
0xBa5Ed698...7c59Ddf4D
0 ETH0.000221475.46132328
Transfer200527022024-06-09 7:12:47650 days ago1717917167IN
0xBa5Ed698...7c59Ddf4D
0 ETH0.000156533.86095198
Transfer200520072024-06-09 4:53:23651 days ago1717908803IN
0xBa5Ed698...7c59Ddf4D
0 ETH0.000217895.37126876
Transfer200519692024-06-09 4:45:47651 days ago1717908347IN
0xBa5Ed698...7c59Ddf4D
0 ETH0.000154683.81313645
Approve200513802024-06-09 2:47:47651 days ago1717901267IN
0xBa5Ed698...7c59Ddf4D
0 ETH0.000143324.90623919
Transfer200513692024-06-09 2:45:35651 days ago1717901135IN
0xBa5Ed698...7c59Ddf4D
0 ETH0.000226935.59423858
Unclog Contract200513362024-06-09 2:38:35651 days ago1717900715IN
0xBa5Ed698...7c59Ddf4D
0 ETH0.000302965.28131703
Approve200512982024-06-09 2:30:47651 days ago1717900247IN
0xBa5Ed698...7c59Ddf4D
0 ETH0.000221934.79072118
Transfer200512782024-06-09 2:26:47651 days ago1717900007IN
0xBa5Ed698...7c59Ddf4D
0 ETH0.00026926.63629751
Approve200512492024-06-09 2:20:59651 days ago1717899659IN
0xBa5Ed698...7c59Ddf4D
0 ETH0.000129714.44955182
Transfer200512452024-06-09 2:20:11651 days ago1717899611IN
0xBa5Ed698...7c59Ddf4D
0 ETH0.000204384.50650495
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer200556302024-06-09 17:02:23650 days ago1717952543
0xBa5Ed698...7c59Ddf4D
0.00158697 ETH
Transfer200556302024-06-09 17:02:23650 days ago1717952543
0xBa5Ed698...7c59Ddf4D
0.00238321 ETH
Transfer200556302024-06-09 17:02:23650 days ago1717952543
0xBa5Ed698...7c59Ddf4D
0.00039536 ETH
Add Liquidity ET...200556302024-06-09 17:02:23650 days ago1717952543
0xBa5Ed698...7c59Ddf4D
0.00238321 ETH
Transfer200556302024-06-09 17:02:23650 days ago1717952543
0xBa5Ed698...7c59Ddf4D
0.00595803 ETH
Transfer200524472024-06-09 6:21:23650 days ago1717914083
0xBa5Ed698...7c59Ddf4D
0.01049638 ETH
Transfer200524472024-06-09 6:21:23650 days ago1717914083
0xBa5Ed698...7c59Ddf4D
0.01557603 ETH
Transfer200524472024-06-09 6:21:23650 days ago1717914083
0xBa5Ed698...7c59Ddf4D
0.00270837 ETH
Add Liquidity ET...200524472024-06-09 6:21:23650 days ago1717914083
0xBa5Ed698...7c59Ddf4D
0.01557603 ETH
Transfer200524472024-06-09 6:21:23650 days ago1717914083
0xBa5Ed698...7c59Ddf4D
0.03894007 ETH
Transfer200513202024-06-09 2:35:11651 days ago1717900511
0xBa5Ed698...7c59Ddf4D
0.00199972 ETH
Transfer200513202024-06-09 2:35:11651 days ago1717900511
0xBa5Ed698...7c59Ddf4D
0.00300496 ETH
Transfer200513202024-06-09 2:35:11651 days ago1717900511
0xBa5Ed698...7c59Ddf4D
0.00049724 ETH
Add Liquidity ET...200513202024-06-09 2:35:11651 days ago1717900511
0xBa5Ed698...7c59Ddf4D
0.00300496 ETH
Transfer200513202024-06-09 2:35:11651 days ago1717900511
0xBa5Ed698...7c59Ddf4D
0.0075124 ETH
Transfer200512712024-06-09 2:25:23651 days ago1717899923
0xBa5Ed698...7c59Ddf4D
0 ETH
Transfer200512712024-06-09 2:25:23651 days ago1717899923
0xBa5Ed698...7c59Ddf4D
0 ETH
Transfer200512712024-06-09 2:25:23651 days ago1717899923
0xBa5Ed698...7c59Ddf4D
0 ETH
Add Liquidity ET...200512712024-06-09 2:25:23651 days ago1717899923
0xBa5Ed698...7c59Ddf4D
0 ETH
Transfer200512712024-06-09 2:25:23651 days ago1717899923
0xBa5Ed698...7c59Ddf4D
0 ETH
Transfer200505662024-06-09 0:02:47651 days ago1717891367
0xBa5Ed698...7c59Ddf4D
0.02887437 ETH
Transfer200505662024-06-09 0:02:47651 days ago1717891367
0xBa5Ed698...7c59Ddf4D
0.04276698 ETH
Transfer200505662024-06-09 0:02:47651 days ago1717891367
0xBa5Ed698...7c59Ddf4D
0.00749087 ETH
Add Liquidity ET...200505662024-06-09 0:02:47651 days ago1717891367
0xBa5Ed698...7c59Ddf4D
0.04276698 ETH
Transfer200505662024-06-09 0:02:47651 days ago1717891367
0xBa5Ed698...7c59Ddf4D
0.10691746 ETH
View All Internal Transactions
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

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

Contract Source Code Verified (Exact Match)

Contract Name:
MAGIVERSE

Compiler Version
v0.8.23+commit.f704f362

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license
/**
 *Submitted for verification at Etherscan.io on 2024-06-08
*/

/**   
-------------------------------------------------------------------------------- 
                             *                  (              (    (        
      { --.\  |            (  `    (     (      )\ )           )\ ) )\ )     
       '-._\\ | (\___     )\))(   )\    )\ )  (()/((   (  (  (()/((()/((    
           `\\|{/ ^ _)--((_)()((((_)( (()/(   /(_))\  )\ )\  /(_))/(_))\   
       .'^^^^^^^  /`    (_()((_)\ _ )\ /(_))_(_))((_)((_|(_)(_)) (_))((_)  
      //\   ) ,  /      |  \/  (_)_\(_|_)) __|_ _\ \ / /| __| _ \/ __| __| 
,  _.'/  `\<-- \<       | |\/| |/ _ \   | (_ || | \ V / | _||   /\__ \ _|  
 `^^^`     ^^   ^^      |_|  |_/_/ \_\   \___|___| \_/  |___|_|_\|___/___| 
--------------------------------------------------------------------------------

Step into the enchanted realm of Magiverse, a Play to Earn MMORPG where magic and adventure await at every turn.

Website: https://magiverse.online/
Whitepaper: https://info.magiverse.online/welcome
X: https://x.com/Magiverse_ERC
TG: https://t.me/magiverse 

                                                                       
*/

// SPDX-License-Identifier: UNLICENSE

pragma solidity 0.8.23;

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

interface IERC20 {
    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(
        address recipient,
        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 sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

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

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
}

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

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

    function factory() external pure returns (address);

    function WETH() external pure 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);
}

contract MAGIVERSE is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    address payable private _taxWallet;
    address payable private _devWallet;
    address public _stakingContract;

    uint256 private _initialBuyTax = 25;
    uint256 private _initialSellTax = 35;
    uint256 private _finalBuyTax = 5;
    uint256 private _finalSellTax = 5;
    uint256 private _reduceBuyTaxAt = 20;
    uint256 private _reduceSellTaxAt = 25;
    uint256 private _preventSwapBefore = 20;
    uint256 private _buyCount = 0;

    uint256 private _marketingFee = 2;
    uint256 private _devFee = 1;
    uint256 private _LpFee = 1;
    uint256 private _stakingFee = 1;
    uint256 private _totalFee =
        _marketingFee.add(_devFee).add(_LpFee).add(_stakingFee);

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1_000_000_000 * 10 ** _decimals;
    string private constant _name = "Magiverse";
    string private constant _symbol = "MAGI";

    uint256 public _maxTxAmount = 2 * (_tTotal / 100);
    uint256 public _maxWalletSize = 2 * (_tTotal / 100);
    uint256 public _taxSwapThreshold = 5 * (_tTotal / 1000);

    uint256 public _stakingFeeTokens = 0;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool public _stakingFeeActive = false;

    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap() {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor() {
        _taxWallet = payable(0x6E9B8A05aA14E445fd0f3EE5566B2C387F9be469); 
        _devWallet = payable(_msgSender());
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;

        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

    function decimals() public pure returns (uint8) {
        return _decimals;
    }

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

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

    function transfer(
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

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

    function approve(
        address spender,
        uint256 amount
    ) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()].sub(
                amount,
                "ERC20: transfer amount exceeds allowance"
            )
        );
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount = 0;
        uint256 stakingAmount = 0;
        if (from != owner() && to != owner()) {
            if (
                from == uniswapV2Pair &&
                to != address(uniswapV2Router) &&
                !_isExcludedFromFee[to]
            ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(
                    balanceOf(to) + amount <= _maxWalletSize,
                    "Exceeds the maxWalletSize."
                );
                taxAmount = amount
                    .mul(
                        (_buyCount > _reduceBuyTaxAt)
                            ? _finalBuyTax
                            : _initialBuyTax
                    )
                    .div(100);
                _buyCount++;
            }

            if (to == uniswapV2Pair && from != address(this)) {
                taxAmount = amount
                    .mul(
                        (_buyCount > _reduceSellTaxAt)
                            ? _finalSellTax
                            : _initialSellTax
                    )
                    .div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this)).sub(
                _stakingFeeTokens
            );
            if (
                !inSwap &&
                to == uniswapV2Pair &&
                swapEnabled &&
                contractTokenBalance > _taxSwapThreshold &&
                _buyCount > _preventSwapBefore
            ) {
                swapAndLiquify(
                    min(amount, min(contractTokenBalance, _maxTxAmount))
                );
            }
        }

        if (_stakingFeeActive) {
            stakingAmount = amount.mul(_stakingFee).div(100);
            _stakingFeeTokens = _stakingFeeTokens + stakingAmount;
            _balances[address(this)] = _balances[address(this)].add(
                stakingAmount
            );
            emit Transfer(from, address(this), stakingAmount);
            if (taxAmount > 0) {
                taxAmount = taxAmount - stakingAmount;
            }
        }

        if (taxAmount > 0) {
            _balances[address(this)] = _balances[address(this)].add(taxAmount);
            emit Transfer(from, address(this), taxAmount);
        }
        uint256 totalTax = taxAmount.add(stakingAmount);
        _balances[from] = _balances[from].sub(amount);
        _balances[to] = _balances[to].add(amount.sub(totalTax));
        emit Transfer(from, to, amount.sub(totalTax));
    }

    function min(uint256 a, uint256 b) private pure returns (uint256) {
        return (a > b) ? b : a;
    }

	function swapAndLiquify(uint256 tokenBalance) private lockTheSwap {
	uint256 actualMarketingFee = _marketingFee;
	if(!_stakingFeeActive) {
	actualMarketingFee = _marketingFee.add(_stakingFee);
	}
        uint256 tokens_to_M = (tokenBalance * actualMarketingFee) / _totalFee;
        uint256 tokens_to_D = (tokenBalance * _devFee) / _totalFee;
        uint256 tokens_to_LP_Half = ((tokenBalance * _LpFee) / _totalFee) * 2;
        uint256 balanceBeforeSwap = address(this).balance;
        swapTokensForEth(tokens_to_LP_Half + tokens_to_M + tokens_to_D);
        uint256 ETH_Total = address(this).balance - balanceBeforeSwap;
        uint256 split_M = (_marketingFee * _totalFee) /
            (_LpFee + _marketingFee + _devFee);
        uint256 ETH_M = (ETH_Total * split_M) / _totalFee;
        uint256 split_D = (_devFee * _totalFee) /
            (_LpFee + _marketingFee + _devFee);
        uint256 ETH_D = (ETH_Total * split_D) / _totalFee;
        addLiquidity(tokens_to_LP_Half, (ETH_Total - ETH_M - ETH_D));

        sendToWallet(_taxWallet, ETH_M);
        ETH_Total = address(this).balance;
        sendToWallet(_devWallet, ETH_Total);
    }

    function addLiquidity(uint256 tokenAmount, uint256 ETHAmount) private {
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.addLiquidityETH{value: ETHAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            _devWallet,
            block.timestamp
        );
    }

    function sendToWallet(address payable wallet, uint256 amount) private {
        wallet.transfer(amount);
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function removeLimits() external onlyOwner {
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function sendETHToFee(uint256 amount) private {
        _taxWallet.transfer(amount);
    }

    function openTrading() external onlyOwner {
        require(!tradingOpen, "trading is already open");
        uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(
                address(this),
                uniswapV2Router.WETH()
            );
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(
            address(this),
            balanceOf(address(this)),
            0,
            0,
            owner(),
            block.timestamp
        );
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
    }

    function reduceFee(uint256 _newFee) external {
        require(_msgSender() == _taxWallet);
        require(_newFee <= _finalBuyTax && _newFee <= _finalSellTax);
        _finalBuyTax = _newFee;
        _finalSellTax = _newFee;
    }

    receive() external payable {}

    function unclogContract() external {
        require(_msgSender() == _taxWallet);
        uint256 tokenBalance = balanceOf(address(this));
        if (tokenBalance > 0) {
            _transfer(address(this), _taxWallet, tokenBalance);
        }
    }

    function clearStuckBalance() external {
        require(_msgSender() == _taxWallet);
        uint256 ethBalance = address(this).balance;
        if (ethBalance > 0) {
            _taxWallet.transfer(ethBalance);
        }
    }

    function manualSwap() external {
        require(_msgSender() == _taxWallet);
        uint256 tokenBalance = balanceOf(address(this));
        if (tokenBalance > 0) {
            swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance = address(this).balance;
        if (ethBalance > 0) {
            sendETHToFee(ethBalance);
        }
    }

    function test() external {
        uint256 tokenBalance = balanceOf(address(this));
        if (tokenBalance > 0) {
            swapAndLiquify(tokenBalance);
        }
    }

    function setStakingAddress(address stakingContract) external {
        require(_msgSender() == _taxWallet);
        require(stakingContract != address(0));
        _stakingContract = stakingContract;
    }

    function toggleStakingFee() external {
        require(_msgSender() == _stakingContract);
        _stakingFeeActive = !_stakingFeeActive;
    }

    function sendTokensToStakingContract(uint256 percentage) external {
        require(_msgSender() == _taxWallet);
        require(percentage > 0 && percentage <= 100);
        if (_stakingFeeTokens > 0) {
            uint256 tokensToSend = _stakingFeeTokens.mul(percentage).div(100);
            _balances[address(this)] = _balances[address(this)].sub(
                tokensToSend
            );
            _balances[_stakingContract] = _balances[_stakingContract].add(
                tokensToSend
            );
            _stakingFeeTokens = _stakingFeeTokens.sub(tokensToSend);
            emit Transfer(address(this), _stakingContract, tokensToSend);
        }
    }

    function sendTokensToP2E(uint256 percentage, address p2eWallet) external {
        require(_msgSender() == _taxWallet);
        require(percentage > 0 && percentage <= 100);
        if (_stakingFeeTokens > 0) {
            uint256 tokensToSend = _stakingFeeTokens.mul(percentage).div(100);
            _balances[address(this)] = _balances[address(this)].sub(
                tokensToSend
            );
            _balances[p2eWallet] = _balances[p2eWallet].add(tokensToSend);
            _stakingFeeTokens = _stakingFeeTokens.sub(tokensToSend);
            emit Transfer(address(this), p2eWallet, tokensToSend);
        }
    }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","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"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_stakingContract","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_stakingFeeActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_stakingFeeTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"reduceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percentage","type":"uint256"},{"internalType":"address","name":"p2eWallet","type":"address"}],"name":"sendTokensToP2E","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percentage","type":"uint256"}],"name":"sendTokensToStakingContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"stakingContract","type":"address"}],"name":"setStakingAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"test","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"toggleStakingFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unclogContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526019600755602360085560056009556005600a556014600b556019600c556014600d555f600e556002600f556001601055600160115560016012556200006d6012546200006660115462000066601054600f54620002d860201b90919060201c565b90620002d8565b6013556064620000806009600a62000453565b6200009090633b9aca006200046a565b6200009c919062000484565b620000a99060026200046a565b6014556064620000bc6009600a62000453565b620000cc90633b9aca006200046a565b620000d8919062000484565b620000e59060026200046a565b6015556103e8620000f96009600a62000453565b6200010990633b9aca006200046a565b62000115919062000484565b620001229060056200046a565b6016555f6017556019805462ffffff60a81b1916905534801562000144575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600480546001600160a01b031916736e9b8a05aa14e445fd0f3ee5566b2c387f9be469179055620001b33390565b600580546001600160a01b0319166001600160a01b0392909216919091179055620001e16009600a62000453565b620001f190633b9aca006200046a565b335f9081526001602081905260408220929092556003906200021a5f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff199687161790553081526003909352818320805485166001908117909155600454909116835291208054909216179055620002783390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002b16009600a62000453565b620002c190633b9aca006200046a565b60405190815260200160405180910390a3620004ba565b5f80620002e68385620004a4565b9050838110156200033d5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640160405180910390fd5b90505b92915050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200039a57815f19048211156200037e576200037e62000346565b808516156200038c57918102915b93841c93908002906200035f565b509250929050565b5f82620003b25750600162000340565b81620003c057505f62000340565b8160018114620003d95760028114620003e45762000404565b600191505062000340565b60ff841115620003f857620003f862000346565b50506001821b62000340565b5060208310610133831016604e8410600b841016171562000429575081810a62000340565b6200043583836200035a565b805f19048211156200044b576200044b62000346565b029392505050565b5f6200046360ff841683620003a2565b9392505050565b808202811582820484141762000340576200034062000346565b5f826200049f57634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111562000340576200034062000346565b611fa280620004c85f395ff3fe6080604052600436106101b2575f3560e01c806385707b00116100e7578063c9567bf911610087578063ec1f3f6311610062578063ec1f3f63146104a9578063f4e0d9ac146104c8578063f8a8fd6d146104e7578063f9113fba146104fb575f80fd5b8063c9567bf91461043c578063d59e819614610450578063dd62ed3e14610465575f80fd5b806395d89b41116100c257806395d89b41146103bd578063a9059cbb146103e9578063b0de5e2914610408578063bf474bed14610427575f80fd5b806385707b00146103645780638da5cb5b146103785780638f9a55c0146103a8575f80fd5b8063364333f41161015257806370a082311161012d57806370a0823114610308578063715018a614610327578063751039fc1461033b5780637d1db4a51461034f575f80fd5b8063364333f4146102c057806351bc3c85146102d457806366983491146102e8575f80fd5b806323b872dd1161018d57806323b872dd1461025157806328f4d2a0146102705780632ee6274c14610286578063313ce567146102a5575f80fd5b806306fdde03146101bd578063095ea7b31461020057806318160ddd1461022f575f80fd5b366101b957005b5f80fd5b3480156101c8575f80fd5b506040805180820190915260098152684d616769766572736560b81b60208201525b6040516101f79190611b00565b60405180910390f35b34801561020b575f80fd5b5061021f61021a366004611b60565b61051a565b60405190151581526020016101f7565b34801561023a575f80fd5b50610243610530565b6040519081526020016101f7565b34801561025c575f80fd5b5061021f61026b366004611b8a565b610550565b34801561027b575f80fd5b506102846105b7565b005b348015610291575f80fd5b506102846102a0366004611bc8565b610603565b3480156102b0575f80fd5b50604051600981526020016101f7565b3480156102cb575f80fd5b50610284610706565b3480156102df575f80fd5b50610284610763565b3480156102f3575f80fd5b5060195461021f90600160b81b900460ff1681565b348015610313575f80fd5b50610243610322366004611bf6565b6107ad565b348015610332575f80fd5b506102846107c7565b348015610346575f80fd5b50610284610841565b34801561035a575f80fd5b5061024360145481565b34801561036f575f80fd5b506102846108f2565b348015610383575f80fd5b505f546001600160a01b03165b6040516001600160a01b0390911681526020016101f7565b3480156103b3575f80fd5b5061024360155481565b3480156103c8575f80fd5b506040805180820190915260048152634d41474960e01b60208201526101ea565b3480156103f4575f80fd5b5061021f610403366004611b60565b610932565b348015610413575f80fd5b50600654610390906001600160a01b031681565b348015610432575f80fd5b5061024360165481565b348015610447575f80fd5b5061028461093e565b34801561045b575f80fd5b5061024360175481565b348015610470575f80fd5b5061024361047f366004611c11565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156104b4575f80fd5b506102846104c3366004611c3d565b610ca8565b3480156104d3575f80fd5b506102846104e2366004611bf6565b610ced565b3480156104f2575f80fd5b50610284610d40565b348015610506575f80fd5b50610284610515366004611c3d565b610d5b565b5f610526338484610e5d565b5060015b92915050565b5f61053d6009600a611d48565b61054b90633b9aca00611d56565b905090565b5f61055c848484610f78565b6105ad84336105a885604051806060016040528060288152602001611f25602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906114ec565b610e5d565b5060019392505050565b6004546001600160a01b0316336001600160a01b0316146105d6575f80fd5b5f6105e0306107ad565b90508015610600576004546106009030906001600160a01b031683610f78565b50565b6004546001600160a01b0316336001600160a01b031614610622575f80fd5b5f82118015610632575060648211155b61063a575f80fd5b60175415610702575f610663606461065d8560175461152490919063ffffffff16565b906115a9565b305f9081526001602052604090205490915061067f90826115ea565b305f90815260016020526040808220929092556001600160a01b038416815220546106aa908261162b565b6001600160a01b0383165f908152600160205260409020556017546106cf90826115ea565b6017556040518181526001600160a01b0383169030905f80516020611f4d833981519152906020015b60405180910390a3505b5050565b6004546001600160a01b0316336001600160a01b031614610725575f80fd5b478015610600576004546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610702573d5f803e3d5ffd5b6004546001600160a01b0316336001600160a01b031614610782575f80fd5b5f61078c306107ad565b9050801561079d5761079d81611689565b47801561070257610702816117d9565b6001600160a01b03165f9081526001602052604090205490565b5f546001600160a01b031633146107f95760405162461bcd60e51b81526004016107f090611d6d565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461086a5760405162461bcd60e51b81526004016107f090611d6d565b6108766009600a611d48565b61088490633b9aca00611d56565b6014556108936009600a611d48565b6108a190633b9aca00611d56565b6015557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6108d16009600a611d48565b6108df90633b9aca00611d56565b60405190815260200160405180910390a1565b6006546001600160a01b0316336001600160a01b031614610911575f80fd5b6019805460ff60b81b198116600160b81b9182900460ff1615909102179055565b5f610526338484610f78565b5f546001600160a01b031633146109675760405162461bcd60e51b81526004016107f090611d6d565b601954600160a01b900460ff16156109c15760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016107f0565b601880546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155610a0a9030906109fc6009600a611d48565b6105a890633b9aca00611d56565b60185f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a5a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a7e9190611da2565b6001600160a01b031663c9c653963060185f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610add573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b019190611da2565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610b4b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b6f9190611da2565b601980546001600160a01b0319166001600160a01b039283161790556018541663f305d7194730610b9f816107ad565b5f80610bb25f546001600160a01b031690565b426040518863ffffffff1660e01b8152600401610bd496959493929190611dbd565b60606040518083038185885af1158015610bf0573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610c159190611df8565b505060195460185460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610c6a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c8e9190611e23565b506019805462ff00ff60a01b19166201000160a01b179055565b6004546001600160a01b0316336001600160a01b031614610cc7575f80fd5b6009548111158015610cdb5750600a548111155b610ce3575f80fd5b6009819055600a55565b6004546001600160a01b0316336001600160a01b031614610d0c575f80fd5b6001600160a01b038116610d1e575f80fd5b600680546001600160a01b0319166001600160a01b0392909216919091179055565b5f610d4a306107ad565b905080156106005761060081611810565b6004546001600160a01b0316336001600160a01b031614610d7a575f80fd5b5f81118015610d8a575060648111155b610d92575f80fd5b60175415610600575f610db5606461065d8460175461152490919063ffffffff16565b305f90815260016020526040902054909150610dd190826115ea565b305f90815260016020526040808220929092556006546001600160a01b031681522054610dfe908261162b565b6006546001600160a01b03165f90815260016020526040902055601754610e2590826115ea565b6017556006546040518281526001600160a01b039091169030905f80516020611f4d8339815191529060200160405180910390a35050565b6001600160a01b038316610ebf5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107f0565b6001600160a01b038216610f205760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107f0565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591016106f8565b6001600160a01b038316610fdc5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107f0565b6001600160a01b03821661103e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107f0565b5f811161109f5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016107f0565b5f806110b25f546001600160a01b031690565b6001600160a01b0316856001600160a01b0316141580156110e057505f546001600160a01b03858116911614155b15611315576019546001600160a01b03868116911614801561111057506018546001600160a01b03858116911614155b801561113457506001600160a01b0384165f9081526003602052604090205460ff16155b1561122d5760145483111561118b5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016107f0565b60155483611198866107ad565b6111a29190611e42565b11156111f05760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016107f0565b611216606461065d600b54600e541161120b5760075461120f565b6009545b8690611524565b600e80549193505f61122783611e55565b91905055505b6019546001600160a01b03858116911614801561125357506001600160a01b0385163014155b156112805761127d606461065d600c54600e54116112735760085461120f565b600a548690611524565b91505b5f611296601754611290306107ad565b906115ea565b601954909150600160a81b900460ff161580156112c057506019546001600160a01b038681169116145b80156112d55750601954600160b01b900460ff165b80156112e2575060165481115b80156112f15750600d54600e54115b156113135761131361130e85611309846014546119e9565b6119e9565b611810565b505b601954600160b81b900460ff16156113c557611341606461065d6012548661152490919063ffffffff16565b9050806017546113519190611e42565b601755305f9081526001602052604090205461136d908261162b565b305f81815260016020526040908190209290925590516001600160a01b038716905f80516020611f4d833981519152906113aa9085815260200190565b60405180910390a381156113c5576113c28183611e6d565b91505b811561142a57305f908152600160205260409020546113e4908361162b565b305f81815260016020526040908190209290925590516001600160a01b038716905f80516020611f4d833981519152906114219086815260200190565b60405180910390a35b5f611435838361162b565b6001600160a01b0387165f9081526001602052604090205490915061145a90856115ea565b6001600160a01b0387165f9081526001602052604090205561149d61147f85836115ea565b6001600160a01b0387165f908152600160205260409020549061162b565b6001600160a01b038087165f8181526001602052604090209290925587165f80516020611f4d8339815191526114d387856115ea565b60405190815260200160405180910390a3505050505050565b5f818484111561150f5760405162461bcd60e51b81526004016107f09190611b00565b505f61151b8486611e6d565b95945050505050565b5f825f0361153357505f61052a565b5f61153e8385611d56565b90508261154b8583611e80565b146115a25760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107f0565b9392505050565b5f6115a283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506119fd565b5f6115a283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506114ec565b5f806116378385611e42565b9050838110156115a25760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107f0565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106116bc576116bc611e9f565b6001600160a01b03928316602091820292909201810191909152601854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611713573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117379190611da2565b8160018151811061174a5761174a611e9f565b6001600160a01b0392831660209182029290920101526018546117709130911684610e5d565b60185460405163791ac94760e01b81526001600160a01b039091169063791ac947906117a89085905f90869030904290600401611eb3565b5f604051808303815f87803b1580156117bf575f80fd5b505af11580156117d1573d5f803e3d5ffd5b505050505050565b6004546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610702573d5f803e3d5ffd5b6019805460ff60a81b1916600160a81b1790819055600f5490600160b81b900460ff1661184957601254600f546118469161162b565b90505b6013545f906118588385611d56565b6118629190611e80565b90505f601354601054856118769190611d56565b6118809190611e80565b90505f601354601154866118949190611d56565b61189e9190611e80565b6118a9906002611d56565b9050476118c9836118ba8685611e42565b6118c49190611e42565b611689565b5f6118d48247611e6d565b90505f601054600f546011546118ea9190611e42565b6118f49190611e42565b601354600f546119049190611d56565b61190e9190611e80565b90505f60135482846119209190611d56565b61192a9190611e80565b90505f601054600f546011546119409190611e42565b61194a9190611e42565b60135460105461195a9190611d56565b6119649190611e80565b90505f60135482866119769190611d56565b6119809190611e80565b90506119a087826119918689611e6d565b61199b9190611e6d565b611a29565b6004546119b6906001600160a01b031684611ac8565b6005544795506119cf906001600160a01b031686611ac8565b50506019805460ff60a81b19169055505050505050505050565b5f8183116119f757826115a2565b50919050565b5f8183611a1d5760405162461bcd60e51b81526004016107f09190611b00565b505f61151b8486611e80565b601854611a419030906001600160a01b031684610e5d565b60185460055460405163f305d71960e01b81526001600160a01b039283169263f305d719928592611a8092309289925f92839216904290600401611dbd565b60606040518083038185885af1158015611a9c573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611ac19190611df8565b5050505050565b6040516001600160a01b0383169082156108fc029083905f818181858888f19350505050158015611afb573d5f803e3d5ffd5b505050565b5f602080835283518060208501525f5b81811015611b2c57858101830151858201604001528201611b10565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610600575f80fd5b5f8060408385031215611b71575f80fd5b8235611b7c81611b4c565b946020939093013593505050565b5f805f60608486031215611b9c575f80fd5b8335611ba781611b4c565b92506020840135611bb781611b4c565b929592945050506040919091013590565b5f8060408385031215611bd9575f80fd5b823591506020830135611beb81611b4c565b809150509250929050565b5f60208284031215611c06575f80fd5b81356115a281611b4c565b5f8060408385031215611c22575f80fd5b8235611c2d81611b4c565b91506020830135611beb81611b4c565b5f60208284031215611c4d575f80fd5b5035919050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611ca257815f1904821115611c8857611c88611c54565b80851615611c9557918102915b93841c9390800290611c6d565b509250929050565b5f82611cb85750600161052a565b81611cc457505f61052a565b8160018114611cda5760028114611ce457611d00565b600191505061052a565b60ff841115611cf557611cf5611c54565b50506001821b61052a565b5060208310610133831016604e8410600b8410161715611d23575081810a61052a565b611d2d8383611c68565b805f1904821115611d4057611d40611c54565b029392505050565b5f6115a260ff841683611caa565b808202811582820484141761052a5761052a611c54565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611db2575f80fd5b81516115a281611b4c565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b5f805f60608486031215611e0a575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611e33575f80fd5b815180151581146115a2575f80fd5b8082018082111561052a5761052a611c54565b5f60018201611e6657611e66611c54565b5060010190565b8181038181111561052a5761052a611c54565b5f82611e9a57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611f035784516001600160a01b031683529383019391830191600101611ede565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a349cc14056dd1efc382bb481f002e74cb72f792009c1769a7400d83e29a3a5e64736f6c63430008170033

Deployed Bytecode

0x6080604052600436106101b2575f3560e01c806385707b00116100e7578063c9567bf911610087578063ec1f3f6311610062578063ec1f3f63146104a9578063f4e0d9ac146104c8578063f8a8fd6d146104e7578063f9113fba146104fb575f80fd5b8063c9567bf91461043c578063d59e819614610450578063dd62ed3e14610465575f80fd5b806395d89b41116100c257806395d89b41146103bd578063a9059cbb146103e9578063b0de5e2914610408578063bf474bed14610427575f80fd5b806385707b00146103645780638da5cb5b146103785780638f9a55c0146103a8575f80fd5b8063364333f41161015257806370a082311161012d57806370a0823114610308578063715018a614610327578063751039fc1461033b5780637d1db4a51461034f575f80fd5b8063364333f4146102c057806351bc3c85146102d457806366983491146102e8575f80fd5b806323b872dd1161018d57806323b872dd1461025157806328f4d2a0146102705780632ee6274c14610286578063313ce567146102a5575f80fd5b806306fdde03146101bd578063095ea7b31461020057806318160ddd1461022f575f80fd5b366101b957005b5f80fd5b3480156101c8575f80fd5b506040805180820190915260098152684d616769766572736560b81b60208201525b6040516101f79190611b00565b60405180910390f35b34801561020b575f80fd5b5061021f61021a366004611b60565b61051a565b60405190151581526020016101f7565b34801561023a575f80fd5b50610243610530565b6040519081526020016101f7565b34801561025c575f80fd5b5061021f61026b366004611b8a565b610550565b34801561027b575f80fd5b506102846105b7565b005b348015610291575f80fd5b506102846102a0366004611bc8565b610603565b3480156102b0575f80fd5b50604051600981526020016101f7565b3480156102cb575f80fd5b50610284610706565b3480156102df575f80fd5b50610284610763565b3480156102f3575f80fd5b5060195461021f90600160b81b900460ff1681565b348015610313575f80fd5b50610243610322366004611bf6565b6107ad565b348015610332575f80fd5b506102846107c7565b348015610346575f80fd5b50610284610841565b34801561035a575f80fd5b5061024360145481565b34801561036f575f80fd5b506102846108f2565b348015610383575f80fd5b505f546001600160a01b03165b6040516001600160a01b0390911681526020016101f7565b3480156103b3575f80fd5b5061024360155481565b3480156103c8575f80fd5b506040805180820190915260048152634d41474960e01b60208201526101ea565b3480156103f4575f80fd5b5061021f610403366004611b60565b610932565b348015610413575f80fd5b50600654610390906001600160a01b031681565b348015610432575f80fd5b5061024360165481565b348015610447575f80fd5b5061028461093e565b34801561045b575f80fd5b5061024360175481565b348015610470575f80fd5b5061024361047f366004611c11565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156104b4575f80fd5b506102846104c3366004611c3d565b610ca8565b3480156104d3575f80fd5b506102846104e2366004611bf6565b610ced565b3480156104f2575f80fd5b50610284610d40565b348015610506575f80fd5b50610284610515366004611c3d565b610d5b565b5f610526338484610e5d565b5060015b92915050565b5f61053d6009600a611d48565b61054b90633b9aca00611d56565b905090565b5f61055c848484610f78565b6105ad84336105a885604051806060016040528060288152602001611f25602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906114ec565b610e5d565b5060019392505050565b6004546001600160a01b0316336001600160a01b0316146105d6575f80fd5b5f6105e0306107ad565b90508015610600576004546106009030906001600160a01b031683610f78565b50565b6004546001600160a01b0316336001600160a01b031614610622575f80fd5b5f82118015610632575060648211155b61063a575f80fd5b60175415610702575f610663606461065d8560175461152490919063ffffffff16565b906115a9565b305f9081526001602052604090205490915061067f90826115ea565b305f90815260016020526040808220929092556001600160a01b038416815220546106aa908261162b565b6001600160a01b0383165f908152600160205260409020556017546106cf90826115ea565b6017556040518181526001600160a01b0383169030905f80516020611f4d833981519152906020015b60405180910390a3505b5050565b6004546001600160a01b0316336001600160a01b031614610725575f80fd5b478015610600576004546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610702573d5f803e3d5ffd5b6004546001600160a01b0316336001600160a01b031614610782575f80fd5b5f61078c306107ad565b9050801561079d5761079d81611689565b47801561070257610702816117d9565b6001600160a01b03165f9081526001602052604090205490565b5f546001600160a01b031633146107f95760405162461bcd60e51b81526004016107f090611d6d565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461086a5760405162461bcd60e51b81526004016107f090611d6d565b6108766009600a611d48565b61088490633b9aca00611d56565b6014556108936009600a611d48565b6108a190633b9aca00611d56565b6015557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6108d16009600a611d48565b6108df90633b9aca00611d56565b60405190815260200160405180910390a1565b6006546001600160a01b0316336001600160a01b031614610911575f80fd5b6019805460ff60b81b198116600160b81b9182900460ff1615909102179055565b5f610526338484610f78565b5f546001600160a01b031633146109675760405162461bcd60e51b81526004016107f090611d6d565b601954600160a01b900460ff16156109c15760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016107f0565b601880546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155610a0a9030906109fc6009600a611d48565b6105a890633b9aca00611d56565b60185f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a5a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a7e9190611da2565b6001600160a01b031663c9c653963060185f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610add573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b019190611da2565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610b4b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b6f9190611da2565b601980546001600160a01b0319166001600160a01b039283161790556018541663f305d7194730610b9f816107ad565b5f80610bb25f546001600160a01b031690565b426040518863ffffffff1660e01b8152600401610bd496959493929190611dbd565b60606040518083038185885af1158015610bf0573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610c159190611df8565b505060195460185460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610c6a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c8e9190611e23565b506019805462ff00ff60a01b19166201000160a01b179055565b6004546001600160a01b0316336001600160a01b031614610cc7575f80fd5b6009548111158015610cdb5750600a548111155b610ce3575f80fd5b6009819055600a55565b6004546001600160a01b0316336001600160a01b031614610d0c575f80fd5b6001600160a01b038116610d1e575f80fd5b600680546001600160a01b0319166001600160a01b0392909216919091179055565b5f610d4a306107ad565b905080156106005761060081611810565b6004546001600160a01b0316336001600160a01b031614610d7a575f80fd5b5f81118015610d8a575060648111155b610d92575f80fd5b60175415610600575f610db5606461065d8460175461152490919063ffffffff16565b305f90815260016020526040902054909150610dd190826115ea565b305f90815260016020526040808220929092556006546001600160a01b031681522054610dfe908261162b565b6006546001600160a01b03165f90815260016020526040902055601754610e2590826115ea565b6017556006546040518281526001600160a01b039091169030905f80516020611f4d8339815191529060200160405180910390a35050565b6001600160a01b038316610ebf5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107f0565b6001600160a01b038216610f205760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107f0565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591016106f8565b6001600160a01b038316610fdc5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107f0565b6001600160a01b03821661103e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107f0565b5f811161109f5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016107f0565b5f806110b25f546001600160a01b031690565b6001600160a01b0316856001600160a01b0316141580156110e057505f546001600160a01b03858116911614155b15611315576019546001600160a01b03868116911614801561111057506018546001600160a01b03858116911614155b801561113457506001600160a01b0384165f9081526003602052604090205460ff16155b1561122d5760145483111561118b5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016107f0565b60155483611198866107ad565b6111a29190611e42565b11156111f05760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016107f0565b611216606461065d600b54600e541161120b5760075461120f565b6009545b8690611524565b600e80549193505f61122783611e55565b91905055505b6019546001600160a01b03858116911614801561125357506001600160a01b0385163014155b156112805761127d606461065d600c54600e54116112735760085461120f565b600a548690611524565b91505b5f611296601754611290306107ad565b906115ea565b601954909150600160a81b900460ff161580156112c057506019546001600160a01b038681169116145b80156112d55750601954600160b01b900460ff165b80156112e2575060165481115b80156112f15750600d54600e54115b156113135761131361130e85611309846014546119e9565b6119e9565b611810565b505b601954600160b81b900460ff16156113c557611341606461065d6012548661152490919063ffffffff16565b9050806017546113519190611e42565b601755305f9081526001602052604090205461136d908261162b565b305f81815260016020526040908190209290925590516001600160a01b038716905f80516020611f4d833981519152906113aa9085815260200190565b60405180910390a381156113c5576113c28183611e6d565b91505b811561142a57305f908152600160205260409020546113e4908361162b565b305f81815260016020526040908190209290925590516001600160a01b038716905f80516020611f4d833981519152906114219086815260200190565b60405180910390a35b5f611435838361162b565b6001600160a01b0387165f9081526001602052604090205490915061145a90856115ea565b6001600160a01b0387165f9081526001602052604090205561149d61147f85836115ea565b6001600160a01b0387165f908152600160205260409020549061162b565b6001600160a01b038087165f8181526001602052604090209290925587165f80516020611f4d8339815191526114d387856115ea565b60405190815260200160405180910390a3505050505050565b5f818484111561150f5760405162461bcd60e51b81526004016107f09190611b00565b505f61151b8486611e6d565b95945050505050565b5f825f0361153357505f61052a565b5f61153e8385611d56565b90508261154b8583611e80565b146115a25760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107f0565b9392505050565b5f6115a283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506119fd565b5f6115a283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506114ec565b5f806116378385611e42565b9050838110156115a25760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107f0565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106116bc576116bc611e9f565b6001600160a01b03928316602091820292909201810191909152601854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611713573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117379190611da2565b8160018151811061174a5761174a611e9f565b6001600160a01b0392831660209182029290920101526018546117709130911684610e5d565b60185460405163791ac94760e01b81526001600160a01b039091169063791ac947906117a89085905f90869030904290600401611eb3565b5f604051808303815f87803b1580156117bf575f80fd5b505af11580156117d1573d5f803e3d5ffd5b505050505050565b6004546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610702573d5f803e3d5ffd5b6019805460ff60a81b1916600160a81b1790819055600f5490600160b81b900460ff1661184957601254600f546118469161162b565b90505b6013545f906118588385611d56565b6118629190611e80565b90505f601354601054856118769190611d56565b6118809190611e80565b90505f601354601154866118949190611d56565b61189e9190611e80565b6118a9906002611d56565b9050476118c9836118ba8685611e42565b6118c49190611e42565b611689565b5f6118d48247611e6d565b90505f601054600f546011546118ea9190611e42565b6118f49190611e42565b601354600f546119049190611d56565b61190e9190611e80565b90505f60135482846119209190611d56565b61192a9190611e80565b90505f601054600f546011546119409190611e42565b61194a9190611e42565b60135460105461195a9190611d56565b6119649190611e80565b90505f60135482866119769190611d56565b6119809190611e80565b90506119a087826119918689611e6d565b61199b9190611e6d565b611a29565b6004546119b6906001600160a01b031684611ac8565b6005544795506119cf906001600160a01b031686611ac8565b50506019805460ff60a81b19169055505050505050505050565b5f8183116119f757826115a2565b50919050565b5f8183611a1d5760405162461bcd60e51b81526004016107f09190611b00565b505f61151b8486611e80565b601854611a419030906001600160a01b031684610e5d565b60185460055460405163f305d71960e01b81526001600160a01b039283169263f305d719928592611a8092309289925f92839216904290600401611dbd565b60606040518083038185885af1158015611a9c573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611ac19190611df8565b5050505050565b6040516001600160a01b0383169082156108fc029083905f818181858888f19350505050158015611afb573d5f803e3d5ffd5b505050565b5f602080835283518060208501525f5b81811015611b2c57858101830151858201604001528201611b10565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610600575f80fd5b5f8060408385031215611b71575f80fd5b8235611b7c81611b4c565b946020939093013593505050565b5f805f60608486031215611b9c575f80fd5b8335611ba781611b4c565b92506020840135611bb781611b4c565b929592945050506040919091013590565b5f8060408385031215611bd9575f80fd5b823591506020830135611beb81611b4c565b809150509250929050565b5f60208284031215611c06575f80fd5b81356115a281611b4c565b5f8060408385031215611c22575f80fd5b8235611c2d81611b4c565b91506020830135611beb81611b4c565b5f60208284031215611c4d575f80fd5b5035919050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611ca257815f1904821115611c8857611c88611c54565b80851615611c9557918102915b93841c9390800290611c6d565b509250929050565b5f82611cb85750600161052a565b81611cc457505f61052a565b8160018114611cda5760028114611ce457611d00565b600191505061052a565b60ff841115611cf557611cf5611c54565b50506001821b61052a565b5060208310610133831016604e8410600b8410161715611d23575081810a61052a565b611d2d8383611c68565b805f1904821115611d4057611d40611c54565b029392505050565b5f6115a260ff841683611caa565b808202811582820484141761052a5761052a611c54565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611db2575f80fd5b81516115a281611b4c565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b5f805f60608486031215611e0a575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611e33575f80fd5b815180151581146115a2575f80fd5b8082018082111561052a5761052a611c54565b5f60018201611e6657611e66611c54565b5060010190565b8181038181111561052a5761052a611c54565b5f82611e9a57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611f035784516001600160a01b031683529383019391830191600101611ede565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a349cc14056dd1efc382bb481f002e74cb72f792009c1769a7400d83e29a3a5e64736f6c63430008170033

Deployed Bytecode Sourcemap

4896:13407:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7093:83;;;;;;;;;;-1:-1:-1;7163:5:0;;;;;;;;;;;;-1:-1:-1;;;7163:5:0;;;;7093:83;;;;;;;:::i;:::-;;;;;;;;7976:186;;;;;;;;;;-1:-1:-1;7976:186:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7976:186:0;1023:187:1;7370:95:0;;;;;;;;;;;;;:::i;:::-;;;1361:25:1;;;1349:2;1334:18;7370:95:0;1215:177:1;8170:446:0;;;;;;;;;;-1:-1:-1;8170:446:0;;;;;:::i;:::-;;:::i;15528:256::-;;;;;;;;;;;;;:::i;:::-;;17659:641;;;;;;;;;;-1:-1:-1;17659:641:0;;;;;:::i;:::-;;:::i;7279:83::-;;;;;;;;;;-1:-1:-1;7279:83:0;;5905:1;2320:36:1;;2308:2;2293:18;7279:83:0;2178:184:1;15792:233:0;;;;;;;;;;;;;:::i;16033:366::-;;;;;;;;;;;;;:::i;6497:37::-;;;;;;;;;;-1:-1:-1;6497:37:0;;;;-1:-1:-1;;;6497:37:0;;;;;;7473:119;;;;;;;;;;-1:-1:-1;7473:119:0;;;;;:::i;:::-;;:::i;3921:148::-;;;;;;;;;;;;;:::i;14131:162::-;;;;;;;;;;;;;:::i;6085:49::-;;;;;;;;;;;;;;;;16810:146;;;;;;;;;;;;;:::i;3707:79::-;;;;;;;;;;-1:-1:-1;3745:7:0;3772:6;-1:-1:-1;;;;;3772:6:0;3707:79;;;-1:-1:-1;;;;;2783:32:1;;;2765:51;;2753:2;2738:18;3707:79:0;2619:203:1;6141:51:0;;;;;;;;;;;;;;;;7184:87;;;;;;;;;;-1:-1:-1;7256:7:0;;;;;;;;;;;;-1:-1:-1;;;7256:7:0;;;;7184:87;;7600:192;;;;;;;;;;-1:-1:-1;7600:192:0;;;;;:::i;:::-;;:::i;5249:31::-;;;;;;;;;;-1:-1:-1;5249:31:0;;;;-1:-1:-1;;;;;5249:31:0;;;6199:55;;;;;;;;;;;;;;;;14401:837;;;;;;;;;;;;;:::i;6263:36::-;;;;;;;;;;;;;;;;7800:168;;;;;;;;;;-1:-1:-1;7800:168:0;;;;;:::i;:::-;-1:-1:-1;;;;;7933:18:0;;;7906:7;7933:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7800:168;15246:237;;;;;;;;;;-1:-1:-1;15246:237:0;;;;;:::i;:::-;;:::i;16593:209::-;;;;;;;;;;-1:-1:-1;16593:209:0;;;;;:::i;:::-;;:::i;16407:178::-;;;;;;;;;;;;;:::i;16964:687::-;;;;;;;;;;-1:-1:-1;16964:687:0;;;;;:::i;:::-;;:::i;7976:186::-;8076:4;8093:39;1322:10;8116:7;8125:6;8093:8;:39::i;:::-;-1:-1:-1;8150:4:0;7976:186;;;;;:::o;7370:95::-;7423:7;5964:15;5905:1;5964:2;:15;:::i;:::-;5948:31;;:13;:31;:::i;:::-;7443:14;;7370:95;:::o;8170:446::-;8302:4;8319:36;8329:6;8337:9;8348:6;8319:9;:36::i;:::-;8366:220;8389:6;1322:10;8437:138;8493:6;8437:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8437:19:0;;;;;;:11;:19;;;;;;;;1322:10;8437:33;;;;;;;;;;:37;:138::i;:::-;8366:8;:220::i;:::-;-1:-1:-1;8604:4:0;8170:446;;;;;:::o;15528:256::-;15598:10;;-1:-1:-1;;;;;15598:10:0;1322;-1:-1:-1;;;;;15582:26:0;;15574:35;;;;;;15620:20;15643:24;15661:4;15643:9;:24::i;:::-;15620:47;-1:-1:-1;15682:16:0;;15678:99;;15740:10;;15715:50;;15733:4;;-1:-1:-1;;;;;15740:10:0;15752:12;15715:9;:50::i;:::-;15563:221;15528:256::o;17659:641::-;17767:10;;-1:-1:-1;;;;;17767:10:0;1322;-1:-1:-1;;;;;17751:26:0;;17743:35;;;;;;17810:1;17797:10;:14;:35;;;;;17829:3;17815:10;:17;;17797:35;17789:44;;;;;;17848:17;;:21;17844:449;;17886:20;17909:42;17947:3;17909:33;17931:10;17909:17;;:21;;:33;;;;:::i;:::-;:37;;:42::i;:::-;18011:4;17993:24;;;;:9;:24;;;;;;17886:65;;-1:-1:-1;17993:74:0;;17886:65;17993:28;:74::i;:::-;17984:4;17966:24;;;;:9;:24;;;;;;:101;;;;-1:-1:-1;;;;;18105:20:0;;;;;;:38;;18130:12;18105:24;:38::i;:::-;-1:-1:-1;;;;;18082:20:0;;;;;;:9;:20;;;;;:61;18178:17;;:35;;18200:12;18178:21;:35::i;:::-;18158:17;:55;18233:48;;1361:25:1;;;-1:-1:-1;;;;;18233:48:0;;;18250:4;;-1:-1:-1;;;;;;;;;;;18233:48:0;1349:2:1;1334:18;18233:48:0;;;;;;;;17871:422;17844:449;17659:641;;:::o;15792:233::-;15865:10;;-1:-1:-1;;;;;15865:10:0;1322;-1:-1:-1;;;;;15849:26:0;;15841:35;;;;;;15908:21;15944:14;;15940:78;;15975:10;;:31;;-1:-1:-1;;;;;15975:10:0;;;;:31;;;;;15995:10;;15975;:31;:10;:31;15995:10;15975;:31;;;;;;;;;;;;;;;;;;;16033:366;16099:10;;-1:-1:-1;;;;;16099:10:0;1322;-1:-1:-1;;;;;16083:26:0;;16075:35;;;;;;16121:20;16144:24;16162:4;16144:9;:24::i;:::-;16121:47;-1:-1:-1;16183:16:0;;16179:79;;16216:30;16233:12;16216:16;:30::i;:::-;16289:21;16325:14;;16321:71;;16356:24;16369:10;16356:12;:24::i;7473:119::-;-1:-1:-1;;;;;7566:18:0;7539:7;7566:18;;;:9;:18;;;;;;;7473:119::o;3921:148::-;3834:6;;-1:-1:-1;;;;;3834:6:0;1322:10;3834:22;3826:67;;;;-1:-1:-1;;;3826:67:0;;;;;;;:::i;:::-;;;;;;;;;4028:1:::1;4012:6:::0;;3991:40:::1;::::0;-1:-1:-1;;;;;4012:6:0;;::::1;::::0;3991:40:::1;::::0;4028:1;;3991:40:::1;4059:1;4042:19:::0;;-1:-1:-1;;;;;;4042:19:0::1;::::0;;3921:148::o;14131:162::-;3834:6;;-1:-1:-1;;;;;3834:6:0;1322:10;3834:22;3826:67;;;;-1:-1:-1;;;3826:67:0;;;;;;;:::i;:::-;5964:15:::1;5905:1;5964:2;:15;:::i;:::-;5948:31;::::0;:13:::1;:31;:::i;:::-;14185:12;:22:::0;5964:15:::1;5905:1;5964:2;:15;:::i;:::-;5948:31;::::0;:13:::1;:31;:::i;:::-;14218:14;:24:::0;14258:27:::1;5964:15;5905:1;5964:2;:15;:::i;:::-;5948:31;::::0;:13:::1;:31;:::i;:::-;14258:27;::::0;1361:25:1;;;1349:2;1334:18;14258:27:0::1;;;;;;;14131:162::o:0;16810:146::-;16882:16;;-1:-1:-1;;;;;16882:16:0;1322:10;-1:-1:-1;;;;;16866:32:0;;16858:41;;;;;;16931:17;;;-1:-1:-1;;;;16910:38:0;;-1:-1:-1;;;16931:17:0;;;;;;16930:18;16910:38;;;;;;16810:146::o;7600:192::-;7703:4;7720:42;1322:10;7744:9;7755:6;7720:9;:42::i;14401:837::-;3834:6;;-1:-1:-1;;;;;3834:6:0;1322:10;3834:22;3826:67;;;;-1:-1:-1;;;3826:67:0;;;;;;;:::i;:::-;14463:11:::1;::::0;-1:-1:-1;;;14463:11:0;::::1;;;14462:12;14454:48;;;::::0;-1:-1:-1;;;14454:48:0;;5650:2:1;14454:48:0::1;::::0;::::1;5632:21:1::0;5689:2;5669:18;;;5662:30;5728:25;5708:18;;;5701:53;5771:18;;14454:48:0::1;5448:347:1::0;14454:48:0::1;14513:15;:104:::0;;-1:-1:-1;;;;;;14513:104:0::1;14564:42;14513:104:::0;;::::1;::::0;;;14628:58:::1;::::0;14645:4:::1;::::0;5964:15:::1;5905:1;5964:2;:15;:::i;:::-;5948:31;::::0;:13:::1;:31;:::i;14628:58::-;14731:15;;;;;;;;;-1:-1:-1::0;;;;;14731:15:0::1;-1:-1:-1::0;;;;;14731:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14713:55:0::1;;14795:4;14819:15;;;;;;;;;-1:-1:-1::0;;;;;14819:15:0::1;-1:-1:-1::0;;;;;14819:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14713:143;::::0;-1:-1:-1;;;;;;14713:143:0::1;::::0;;;;;;-1:-1:-1;;;;;6286:15:1;;;14713:143:0::1;::::0;::::1;6268:34:1::0;6338:15;;6318:18;;;6311:43;6203:18;;14713:143:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14697:13;:159:::0;;-1:-1:-1;;;;;;14697:159:0::1;-1:-1:-1::0;;;;;14697:159:0;;::::1;;::::0;;14867:15:::1;::::0;::::1;:31;14906:21;14951:4;14971:24;14951:4:::0;14971:9:::1;:24::i;:::-;15010:1;15026::::0;15042:7:::1;3745::::0;3772:6;-1:-1:-1;;;;;3772:6:0;;3707:79;15042:7:::1;15064:15;14867:223;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;15108:13:0::1;::::0;15139:15:::1;::::0;15101:71:::1;::::0;-1:-1:-1;;;15101:71:0;;-1:-1:-1;;;;;15139:15:0;;::::1;15101:71;::::0;::::1;7462:51:1::0;-1:-1:-1;;7529:18:1;;;7522:34;15108:13:0;::::1;::::0;-1:-1:-1;15101:29:0::1;::::0;7435:18:1;;15101:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;15183:11:0::1;:18:::0;;-1:-1:-1;;;;15212:18:0;-1:-1:-1;;;15212:18:0;;;14401:837::o;15246:237::-;15326:10;;-1:-1:-1;;;;;15326:10:0;1322;-1:-1:-1;;;;;15310:26:0;;15302:35;;;;;;15367:12;;15356:7;:23;;:51;;;;;15394:13;;15383:7;:24;;15356:51;15348:60;;;;;;15419:12;:22;;;15452:13;:23;15246:237::o;16593:209::-;16689:10;;-1:-1:-1;;;;;16689:10:0;1322;-1:-1:-1;;;;;16673:26:0;;16665:35;;;;;;-1:-1:-1;;;;;16719:29:0;;16711:38;;;;;;16760:16;:34;;-1:-1:-1;;;;;;16760:34:0;-1:-1:-1;;;;;16760:34:0;;;;;;;;;;16593:209::o;16407:178::-;16443:20;16466:24;16484:4;16466:9;:24::i;:::-;16443:47;-1:-1:-1;16505:16:0;;16501:77;;16538:28;16553:12;16538:14;:28::i;16964:687::-;17065:10;;-1:-1:-1;;;;;17065:10:0;1322;-1:-1:-1;;;;;17049:26:0;;17041:35;;;;;;17108:1;17095:10;:14;:35;;;;;17127:3;17113:10;:17;;17095:35;17087:44;;;;;;17146:17;;:21;17142:502;;17184:20;17207:42;17245:3;17207:33;17229:10;17207:17;;:21;;:33;;;;:::i;:42::-;17309:4;17291:24;;;;:9;:24;;;;;;17184:65;;-1:-1:-1;17291:74:0;;17184:65;17291:28;:74::i;:::-;17282:4;17264:24;;;;:9;:24;;;;;;:101;;;;17420:16;;-1:-1:-1;;;;;17420:16:0;17410:27;;;;:77;;17460:12;17410:31;:77::i;:::-;17390:16;;-1:-1:-1;;;;;17390:16:0;17380:27;;;;:9;:27;;;;;:107;17522:17;;:35;;17544:12;17522:21;:35::i;:::-;17502:17;:55;17601:16;;17577:55;;1361:25:1;;;-1:-1:-1;;;;;17601:16:0;;;;17594:4;;-1:-1:-1;;;;;;;;;;;17577:55:0;1349:2:1;1334:18;17577:55:0;;;;;;;17169:475;16964:687;:::o;8624:335::-;-1:-1:-1;;;;;8717:19:0;;8709:68;;;;-1:-1:-1;;;8709:68:0;;8051:2:1;8709:68:0;;;8033:21:1;8090:2;8070:18;;;8063:30;8129:34;8109:18;;;8102:62;-1:-1:-1;;;8180:18:1;;;8173:34;8224:19;;8709:68:0;7849:400:1;8709:68:0;-1:-1:-1;;;;;8796:21:0;;8788:68;;;;-1:-1:-1;;;8788:68:0;;8456:2:1;8788:68:0;;;8438:21:1;8495:2;8475:18;;;8468:30;8534:34;8514:18;;;8507:62;-1:-1:-1;;;8585:18:1;;;8578:32;8627:19;;8788:68:0;8254:398:1;8788:68:0;-1:-1:-1;;;;;8867:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8919:32;;1361:25:1;;;8919:32:0;;1334:18:1;8919:32:0;1215:177:1;8967:2894:0;-1:-1:-1;;;;;9055:18:0;;9047:68;;;;-1:-1:-1;;;9047:68:0;;8859:2:1;9047:68:0;;;8841:21:1;8898:2;8878:18;;;8871:30;8937:34;8917:18;;;8910:62;-1:-1:-1;;;8988:18:1;;;8981:35;9033:19;;9047:68:0;8657:401:1;9047:68:0;-1:-1:-1;;;;;9134:16:0;;9126:64;;;;-1:-1:-1;;;9126:64:0;;9265:2:1;9126:64:0;;;9247:21:1;9304:2;9284:18;;;9277:30;9343:34;9323:18;;;9316:62;-1:-1:-1;;;9394:18:1;;;9387:33;9437:19;;9126:64:0;9063:399:1;9126:64:0;9218:1;9209:6;:10;9201:64;;;;-1:-1:-1;;;9201:64:0;;9669:2:1;9201:64:0;;;9651:21:1;9708:2;9688:18;;;9681:30;9747:34;9727:18;;;9720:62;-1:-1:-1;;;9798:18:1;;;9791:39;9847:19;;9201:64:0;9467:405:1;9201:64:0;9276:17;9308:21;9356:7;3745;3772:6;-1:-1:-1;;;;;3772:6:0;;3707:79;9356:7;-1:-1:-1;;;;;9348:15:0;:4;-1:-1:-1;;;;;9348:15:0;;;:32;;;;-1:-1:-1;3745:7:0;3772:6;-1:-1:-1;;;;;9367:13:0;;;3772:6;;9367:13;;9348:32;9344:1626;;;9427:13;;-1:-1:-1;;;;;9419:21:0;;;9427:13;;9419:21;:72;;;;-1:-1:-1;9475:15:0;;-1:-1:-1;;;;;9461:30:0;;;9475:15;;9461:30;;9419:72;:116;;;;-1:-1:-1;;;;;;9513:22:0;;;;;;:18;:22;;;;;;;;9512:23;9419:116;9397:701;;;9588:12;;9578:6;:22;;9570:60;;;;-1:-1:-1;;;9570:60:0;;10079:2:1;9570:60:0;;;10061:21:1;10118:2;10098:18;;;10091:30;10157:27;10137:18;;;10130:55;10202:18;;9570:60:0;9877:349:1;9570:60:0;9705:14;;9695:6;9679:13;9689:2;9679:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;9649:140;;;;-1:-1:-1;;;9649:140:0;;10563:2:1;9649:140:0;;;10545:21:1;10602:2;10582:18;;;10575:30;10641:28;10621:18;;;10614:56;10687:18;;9649:140:0;10361:350:1;9649:140:0;9820:232;10048:3;9820:201;9892:15;;9880:9;;:27;9879:119;;9984:14;;9879:119;;;9940:12;;9879:119;9820:6;;:32;:201::i;:232::-;10071:9;:11;;9808:244;;-1:-1:-1;10071:9:0;:11;;;:::i;:::-;;;;;;9397:701;10124:13;;-1:-1:-1;;;;;10118:19:0;;;10124:13;;10118:19;:44;;;;-1:-1:-1;;;;;;10141:21:0;;10157:4;10141:21;;10118:44;10114:332;;;10195:235;10426:3;10195:204;10267:16;;10255:9;;:28;10254:122;;10361:15;;10254:122;;;10316:13;;10195:6;;:32;:204::i;:235::-;10183:247;;10114:332;10462:28;10493:79;10540:17;;10493:24;10511:4;10493:9;:24::i;:::-;:28;;:79::i;:::-;10610:6;;10462:110;;-1:-1:-1;;;;10610:6:0;;;;10609:7;:47;;;;-1:-1:-1;10643:13:0;;-1:-1:-1;;;;;10637:19:0;;;10643:13;;10637:19;10609:47;:79;;;;-1:-1:-1;10677:11:0;;-1:-1:-1;;;10677:11:0;;;;10609:79;:140;;;;;10732:17;;10709:20;:40;10609:140;:191;;;;;10782:18;;10770:9;;:30;10609:191;10587:372;;;10835:108;10872:52;10876:6;10884:39;10888:20;10910:12;;10884:3;:39::i;:::-;10872:3;:52::i;:::-;10835:14;:108::i;:::-;9382:1588;9344:1626;10986:17;;-1:-1:-1;;;10986:17:0;;;;10982:452;;;11036:32;11064:3;11036:23;11047:11;;11036:6;:10;;:23;;;;:::i;:32::-;11020:48;;11123:13;11103:17;;:33;;;;:::i;:::-;11083:17;:53;11196:4;11178:24;;;;:9;:24;;;;;;:75;;11225:13;11178:28;:75::i;:::-;11169:4;11151:24;;;;:9;:24;;;;;;;:102;;;;11273:44;;-1:-1:-1;;;;;11273:44:0;;;-1:-1:-1;;;;;;;;;;;11273:44:0;;;11303:13;1361:25:1;;1349:2;1334:18;;1215:177;11273:44:0;;;;;;;;11336:13;;11332:91;;11382:25;11394:13;11382:9;:25;:::i;:::-;11370:37;;11332:91;11450:13;;11446:172;;11525:4;11507:24;;;;:9;:24;;;;;;:39;;11536:9;11507:28;:39::i;:::-;11498:4;11480:24;;;;:9;:24;;;;;;;:66;;;;11566:40;;-1:-1:-1;;;;;11566:40:0;;;-1:-1:-1;;;;;;;;;;;11566:40:0;;;11596:9;1361:25:1;;1349:2;1334:18;;1215:177;11566:40:0;;;;;;;;11446:172;11628:16;11647:28;:9;11661:13;11647;:28::i;:::-;-1:-1:-1;;;;;11704:15:0;;;;;;:9;:15;;;;;;11628:47;;-1:-1:-1;11704:27:0;;11724:6;11704:19;:27::i;:::-;-1:-1:-1;;;;;11686:15:0;;;;;;:9;:15;;;;;:45;11758:39;11776:20;:6;11787:8;11776:10;:20::i;:::-;-1:-1:-1;;;;;11758:13:0;;;;;;:9;:13;;;;;;;:17;:39::i;:::-;-1:-1:-1;;;;;11742:13:0;;;;;;;:9;:13;;;;;:55;;;;11813:40;;-1:-1:-1;;;;;;;;;;;11832:20:0;:6;11843:8;11832:10;:20::i;:::-;11813:40;;1361:25:1;;;1349:2;1334:18;11813:40:0;;;;;;;9036:2825;;;8967:2894;;;:::o;2509:224::-;2629:7;2665:12;2657:6;;;;2649:29;;;;-1:-1:-1;;;2649:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2689:9:0;2701:5;2705:1;2701;:5;:::i;:::-;2689:17;2509:224;-1:-1:-1;;;;;2509:224:0:o;2741:246::-;2799:7;2823:1;2828;2823:6;2819:47;;-1:-1:-1;2853:1:0;2846:8;;2819:47;2876:9;2888:5;2892:1;2888;:5;:::i;:::-;2876:17;-1:-1:-1;2921:1:0;2912:5;2916:1;2876:17;2912:5;:::i;:::-;:10;2904:56;;;;-1:-1:-1;;;2904:56:0;;11413:2:1;2904:56:0;;;11395:21:1;11452:2;11432:18;;;11425:30;11491:34;11471:18;;;11464:62;-1:-1:-1;;;11542:18:1;;;11535:31;11583:19;;2904:56:0;11211:397:1;2904:56:0;2978:1;2741:246;-1:-1:-1;;;2741:246:0:o;2995:132::-;3053:7;3080:39;3084:1;3087;3080:39;;;;;;;;;;;;;;;;;:3;:39::i;2365:136::-;2423:7;2450:43;2454:1;2457;2450:43;;;;;;;;;;;;;;;;;:3;:43::i;2178:179::-;2236:7;;2268:5;2272:1;2268;:5;:::i;:::-;2256:17;;2297:1;2292;:6;;2284:46;;;;-1:-1:-1;;;2284:46:0;;11815:2:1;2284:46:0;;;11797:21:1;11854:2;11834:18;;;11827:30;11893:29;11873:18;;;11866:57;11940:18;;2284:46:0;11613:351:1;13652:471:0;13742:16;;;13756:1;13742:16;;;;;;;;13718:21;;13742:16;;;;;;;;;;-1:-1:-1;13742:16:0;13718:40;;13787:4;13769;13774:1;13769:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13769:23:0;;;:7;;;;;;;;;;:23;;;;13813:15;;:22;;;-1:-1:-1;;;13813:22:0;;;;:15;;;;;:20;;:22;;;;;13769:7;;13813:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13803:4;13808:1;13803:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13803:32:0;;;:7;;;;;;;;;:32;13878:15;;13846:62;;13863:4;;13878:15;13896:11;13846:8;:62::i;:::-;13919:15;;:196;;-1:-1:-1;;;13919:196:0;;-1:-1:-1;;;;;13919:15:0;;;;:66;;:196;;14000:11;;13919:15;;14042:4;;14069;;14089:15;;13919:196;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13707:416;13652:471;:::o;14301:92::-;14358:10;;:27;;-1:-1:-1;;;;;14358:10:0;;;;:27;;;;;14378:6;;14358:10;:27;:10;:27;14378:6;14358:10;:27;;;;;;;;;;;;;;;;;;;11981:1172;6627:6;:13;;-1:-1:-1;;;;6627:13:0;-1:-1:-1;;;6627:13:0;;;;;12080::::1;::::0;;-1:-1:-1;;;12101:17:0;::::1;6627:13:::0;12101:17:::1;12097:83;;12163:11;::::0;12145:13:::1;::::0;:30:::1;::::0;:17:::1;:30::i;:::-;12124:51;;12097:83;12250:9;::::0;12190:19:::1;::::0;12213:33:::1;12228:18:::0;12213:12;:33:::1;:::i;:::-;12212:47;;;;:::i;:::-;12190:69;;12270:19;12319:9;;12308:7;;12293:12;:22;;;;:::i;:::-;12292:36;;;;:::i;:::-;12270:58;;12339:25;12394:9;;12384:6;;12369:12;:21;;;;:::i;:::-;12368:35;;;;:::i;:::-;12367:41;::::0;12407:1:::1;12367:41;:::i;:::-;12339:69:::0;-1:-1:-1;12447:21:0::1;12479:63;12530:11:::0;12496:31:::1;12516:11:::0;12339:69;12496:31:::1;:::i;:::-;:45;;;;:::i;:::-;12479:16;:63::i;:::-;12553:17;12573:41;12597:17:::0;12573:21:::1;:41;:::i;:::-;12553:61;;12625:15;12712:7;;12696:13;;12687:6;;:22;;;;:::i;:::-;:32;;;;:::i;:::-;12660:9;;12644:13;;:25;;;;:::i;:::-;12643:77;;;;:::i;:::-;12625:95;;12731:13;12771:9;;12760:7;12748:9;:19;;;;:::i;:::-;12747:33;;;;:::i;:::-;12731:49;;12791:15;12872:7;;12856:13;;12847:6;;:22;;;;:::i;:::-;:32;;;;:::i;:::-;12820:9;;12810:7;;:19;;;;:::i;:::-;12809:71;;;;:::i;:::-;12791:89;;12891:13;12931:9;;12920:7;12908:9;:19;;;;:::i;:::-;12907:33;;;;:::i;:::-;12891:49:::0;-1:-1:-1;12951:60:0::1;12964:17:::0;12891:49;12984:17:::1;12996:5:::0;12984:9;:17:::1;:::i;:::-;:25;;;;:::i;:::-;12951:12;:60::i;:::-;13037:10;::::0;13024:31:::1;::::0;-1:-1:-1;;;;;13037:10:0::1;13049:5:::0;13024:12:::1;:31::i;:::-;13123:10;::::0;13078:21:::1;::::0;-1:-1:-1;13110:35:0::1;::::0;-1:-1:-1;;;;;13123:10:0::1;13078:21:::0;13110:12:::1;:35::i;:::-;-1:-1:-1::0;;6663:6:0;:14;;-1:-1:-1;;;;6663:14:0;;;-1:-1:-1;;;;;;;;;11981:1172:0:o;11869:107::-;11926:7;11958:1;11954;:5;11953:15;;11967:1;11953:15;;;-1:-1:-1;11963:1:0;11869:107;-1:-1:-1;11869:107:0:o;3135:223::-;3255:7;3290:12;3283:5;3275:28;;;;-1:-1:-1;;;3275:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3314:9:0;3326:5;3330:1;3326;:5;:::i;13161:363::-;13274:15;;13242:62;;13259:4;;-1:-1:-1;;;;;13274:15:0;13292:11;13242:8;:62::i;:::-;13315:15;;13465:10;;13315:201;;-1:-1:-1;;;13315:201:0;;-1:-1:-1;;;;;13315:15:0;;;;:31;;13354:9;;13315:201;;13387:4;;13407:11;;13315:15;;;;13465:10;;13490:15;;13315:201;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;13161:363;;:::o;13532:112::-;13613:23;;-1:-1:-1;;;;;13613:15:0;;;:23;;;;;13629:6;;13613:23;;;;13629:6;13613:15;:23;;;;;;;;;;;;;;;;;;;;;13532:112;;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;1858:315::-;1926:6;1934;1987:2;1975:9;1966:7;1962:23;1958:32;1955:52;;;2003:1;2000;1993:12;1955:52;2039:9;2026:23;2016:33;;2099:2;2088:9;2084:18;2071:32;2112:31;2137:5;2112:31;:::i;:::-;2162:5;2152:15;;;1858:315;;;;;:::o;2367:247::-;2426:6;2479:2;2467:9;2458:7;2454:23;2450:32;2447:52;;;2495:1;2492;2485:12;2447:52;2534:9;2521:23;2553:31;2578:5;2553:31;:::i;2827:388::-;2895:6;2903;2956:2;2944:9;2935:7;2931:23;2927:32;2924:52;;;2972:1;2969;2962:12;2924:52;3011:9;2998:23;3030:31;3055:5;3030:31;:::i;:::-;3080:5;-1:-1:-1;3137:2:1;3122:18;;3109:32;3150:33;3109:32;3150:33;:::i;3220:180::-;3279:6;3332:2;3320:9;3311:7;3307:23;3303:32;3300:52;;;3348:1;3345;3338:12;3300:52;-1:-1:-1;3371:23:1;;3220:180;-1:-1:-1;3220:180:1:o;3405:127::-;3466:10;3461:3;3457:20;3454:1;3447:31;3497:4;3494:1;3487:15;3521:4;3518:1;3511:15;3537:416;3626:1;3663:5;3626:1;3677:270;3698:7;3688:8;3685:21;3677:270;;;3757:4;3753:1;3749:6;3745:17;3739:4;3736:27;3733:53;;;3766:18;;:::i;:::-;3816:7;3806:8;3802:22;3799:55;;;3836:16;;;;3799:55;3915:22;;;;3875:15;;;;3677:270;;;3681:3;3537:416;;;;;:::o;3958:806::-;4007:5;4037:8;4027:80;;-1:-1:-1;4078:1:1;4092:5;;4027:80;4126:4;4116:76;;-1:-1:-1;4163:1:1;4177:5;;4116:76;4208:4;4226:1;4221:59;;;;4294:1;4289:130;;;;4201:218;;4221:59;4251:1;4242:10;;4265:5;;;4289:130;4326:3;4316:8;4313:17;4310:43;;;4333:18;;:::i;:::-;-1:-1:-1;;4389:1:1;4375:16;;4404:5;;4201:218;;4503:2;4493:8;4490:16;4484:3;4478:4;4475:13;4471:36;4465:2;4455:8;4452:16;4447:2;4441:4;4438:12;4434:35;4431:77;4428:159;;;-1:-1:-1;4540:19:1;;;4572:5;;4428:159;4619:34;4644:8;4638:4;4619:34;:::i;:::-;4689:6;4685:1;4681:6;4677:19;4668:7;4665:32;4662:58;;;4700:18;;:::i;:::-;4738:20;;3958:806;-1:-1:-1;;;3958:806:1:o;4769:140::-;4827:5;4856:47;4897:4;4887:8;4883:19;4877:4;4856:47;:::i;4914:168::-;4987:9;;;5018;;5035:15;;;5029:22;;5015:37;5005:71;;5056:18;;:::i;5087:356::-;5289:2;5271:21;;;5308:18;;;5301:30;5367:34;5362:2;5347:18;;5340:62;5434:2;5419:18;;5087:356::o;5800:251::-;5870:6;5923:2;5911:9;5902:7;5898:23;5894:32;5891:52;;;5939:1;5936;5929:12;5891:52;5971:9;5965:16;5990:31;6015:5;5990:31;:::i;6365:607::-;-1:-1:-1;;;;;6724:15:1;;;6706:34;;6771:2;6756:18;;6749:34;;;;6814:2;6799:18;;6792:34;;;;6857:2;6842:18;;6835:34;;;;6906:15;;;6900:3;6885:19;;6878:44;6686:3;6938:19;;6931:35;;;;6655:3;6640:19;;6365:607::o;6977:306::-;7065:6;7073;7081;7134:2;7122:9;7113:7;7109:23;7105:32;7102:52;;;7150:1;7147;7140:12;7102:52;7179:9;7173:16;7163:26;;7229:2;7218:9;7214:18;7208:25;7198:35;;7273:2;7262:9;7258:18;7252:25;7242:35;;6977:306;;;;;:::o;7567:277::-;7634:6;7687:2;7675:9;7666:7;7662:23;7658:32;7655:52;;;7703:1;7700;7693:12;7655:52;7735:9;7729:16;7788:5;7781:13;7774:21;7767:5;7764:32;7754:60;;7810:1;7807;7800:12;10231:125;10296:9;;;10317:10;;;10314:36;;;10330:18;;:::i;10716:135::-;10755:3;10776:17;;;10773:43;;10796:18;;:::i;:::-;-1:-1:-1;10843:1:1;10832:13;;10716:135::o;10856:128::-;10923:9;;;10944:11;;;10941:37;;;10958:18;;:::i;10989:217::-;11029:1;11055;11045:132;;11099:10;11094:3;11090:20;11087:1;11080:31;11134:4;11131:1;11124:15;11162:4;11159:1;11152:15;11045:132;-1:-1:-1;11191:9:1;;10989:217::o;12101:127::-;12162:10;12157:3;12153:20;12150:1;12143:31;12193:4;12190:1;12183:15;12217:4;12214:1;12207:15;12233:980;12495:4;12543:3;12532:9;12528:19;12574:6;12563:9;12556:25;12600:2;12638:6;12633:2;12622:9;12618:18;12611:34;12681:3;12676:2;12665:9;12661:18;12654:31;12705:6;12740;12734:13;12771:6;12763;12756:22;12809:3;12798:9;12794:19;12787:26;;12848:2;12840:6;12836:15;12822:29;;12869:1;12879:195;12893:6;12890:1;12887:13;12879:195;;;12958:13;;-1:-1:-1;;;;;12954:39:1;12942:52;;13049:15;;;;13014:12;;;;12990:1;12908:9;12879:195;;;-1:-1:-1;;;;;;;13130:32:1;;;;13125:2;13110:18;;13103:60;-1:-1:-1;;;13194:3:1;13179:19;13172:35;13091:3;12233:980;-1:-1:-1;;;12233:980:1:o

Swarm Source

ipfs://a349cc14056dd1efc382bb481f002e74cb72f792009c1769a7400d83e29a3a5e

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

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