ETH Price: $3,596.70 (+3.74%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve210507802024-10-26 15:46:3569 days ago1729957595IN
0xB3300C15...553b3A7aE
0 ETH0.000308966.66935506
Transfer204812382024-08-08 3:40:11148 days ago1723088411IN
0xB3300C15...553b3A7aE
0 ETH0.000106461.7244885
Transfer204810392024-08-08 3:00:23149 days ago1723086023IN
0xB3300C15...553b3A7aE
0 ETH0.000076531.71455016
Approve202350532024-07-04 18:51:47183 days ago1720119107IN
0xB3300C15...553b3A7aE
0 ETH0.000383468.23497581
Transfer184034202023-10-22 4:21:11439 days ago1697948471IN
0xB3300C15...553b3A7aE
0 ETH0.000444336.67793849
Approve182686112023-10-03 7:46:23458 days ago1696319183IN
0xB3300C15...553b3A7aE
0 ETH0.000288426.23563567
Approve182012472023-09-23 21:38:35468 days ago1695505115IN
0xB3300C15...553b3A7aE
0 ETH0.000170116.98853221
Approve179803332023-08-23 22:16:23499 days ago1692828983IN
0xB3300C15...553b3A7aE
0 ETH0.0006669525.37696819
Approve179803322023-08-23 22:16:11499 days ago1692828971IN
0xB3300C15...553b3A7aE
0 ETH0.00061825.45098666
Approve179100202023-08-14 2:10:47509 days ago1691979047IN
0xB3300C15...553b3A7aE
0 ETH0.0005593812.09366681
Approve179065982023-08-13 14:41:35509 days ago1691937695IN
0xB3300C15...553b3A7aE
0 ETH0.0008800419.02135542
Approve179026862023-08-13 1:33:59510 days ago1691890439IN
0xB3300C15...553b3A7aE
0 ETH0.0003776314.13001784
Approve179026862023-08-13 1:33:59510 days ago1691890439IN
0xB3300C15...553b3A7aE
0 ETH0.0006588214.13001784
Approve178832732023-08-10 8:23:35512 days ago1691655815IN
0xB3300C15...553b3A7aE
0 ETH0.0006827814.64390281
Approve178832412023-08-10 8:17:11512 days ago1691655431IN
0xB3300C15...553b3A7aE
0 ETH0.0006471513.87962051
Approve178811672023-08-10 1:18:59513 days ago1691630339IN
0xB3300C15...553b3A7aE
0 ETH0.0008535518.3065171
Approve178790902023-08-09 18:20:23513 days ago1691605223IN
0xB3300C15...553b3A7aE
0 ETH0.001340828.79358088
Approve178727932023-08-08 21:10:59514 days ago1691529059IN
0xB3300C15...553b3A7aE
0 ETH0.001301127.94118187
Approve178726172023-08-08 20:35:23514 days ago1691526923IN
0xB3300C15...553b3A7aE
0 ETH0.0012814827.67661626
Approve178705932023-08-08 13:46:35514 days ago1691502395IN
0xB3300C15...553b3A7aE
0 ETH0.0007245524.84253447
Approve178693072023-08-08 9:27:47514 days ago1691486867IN
0xB3300C15...553b3A7aE
0 ETH0.0005150117.66538474
Approve178690182023-08-08 8:29:47514 days ago1691483387IN
0xB3300C15...553b3A7aE
0 ETH0.0008713318.71188927
Approve178686072023-08-08 7:07:11514 days ago1691478431IN
0xB3300C15...553b3A7aE
0 ETH0.0007403715.89939411
Approve178685822023-08-08 7:01:59514 days ago1691478119IN
0xB3300C15...553b3A7aE
0 ETH0.0008067917.32590345
Approve178684842023-08-08 6:42:23514 days ago1691476943IN
0xB3300C15...553b3A7aE
0 ETH0.0008833918.97079587
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
180034202023-08-27 3:48:47495 days ago1693108127
0xB3300C15...553b3A7aE
0.00519912 ETH
180034202023-08-27 3:48:47495 days ago1693108127
0xB3300C15...553b3A7aE
0.00519912 ETH
178832742023-08-10 8:23:47512 days ago1691655827
0xB3300C15...553b3A7aE
0.00508784 ETH
178832742023-08-10 8:23:47512 days ago1691655827
0xB3300C15...553b3A7aE
0.00508784 ETH
178801592023-08-09 21:55:35513 days ago1691618135
0xB3300C15...553b3A7aE
0.00767238 ETH
178801592023-08-09 21:55:35513 days ago1691618135
0xB3300C15...553b3A7aE
0.00767238 ETH
178684232023-08-08 6:29:59514 days ago1691476199
0xB3300C15...553b3A7aE
0.01177231 ETH
178684232023-08-08 6:29:59514 days ago1691476199
0xB3300C15...553b3A7aE
0.01177231 ETH
178643422023-08-07 16:47:59515 days ago1691426879
0xB3300C15...553b3A7aE
0.0224218 ETH
178643422023-08-07 16:47:59515 days ago1691426879
0xB3300C15...553b3A7aE
0.0224218 ETH
178491232023-08-05 13:39:47517 days ago1691242787
0xB3300C15...553b3A7aE
0.03271331 ETH
178491232023-08-05 13:39:47517 days ago1691242787
0xB3300C15...553b3A7aE
0.03271331 ETH
178399652023-08-04 6:54:23518 days ago1691132063
0xB3300C15...553b3A7aE
0.05995013 ETH
178399652023-08-04 6:54:23518 days ago1691132063
0xB3300C15...553b3A7aE
0.05995013 ETH
178358442023-08-03 17:05:11519 days ago1691082311
0xB3300C15...553b3A7aE
0.07489332 ETH
178358442023-08-03 17:05:11519 days ago1691082311
0xB3300C15...553b3A7aE
0.07489332 ETH
178333532023-08-03 8:42:59519 days ago1691052179
0xB3300C15...553b3A7aE
0.02131059 ETH
178333532023-08-03 8:42:59519 days ago1691052179
0xB3300C15...553b3A7aE
0.02131059 ETH
178319102023-08-03 3:52:35519 days ago1691034755
0xB3300C15...553b3A7aE
0.04571342 ETH
178319102023-08-03 3:52:35519 days ago1691034755
0xB3300C15...553b3A7aE
0.04571342 ETH
178298372023-08-02 20:55:47520 days ago1691009747
0xB3300C15...553b3A7aE
0.03794005 ETH
178298372023-08-02 20:55:47520 days ago1691009747
0xB3300C15...553b3A7aE
0.03794005 ETH
178289432023-08-02 17:56:23520 days ago1690998983
0xB3300C15...553b3A7aE
0.03479522 ETH
178289432023-08-02 17:56:23520 days ago1690998983
0xB3300C15...553b3A7aE
0.03479522 ETH
178260942023-08-02 8:22:59520 days ago1690964579
0xB3300C15...553b3A7aE
0.06461473 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ElonX

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/**
*/

/*
Telegram: https://t.me/ElonXeth
Webiste: https://ElonX.wtf
*/

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

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);
}


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

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

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;
    }
}

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _setOwner(_msgSender());
    }

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

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

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

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

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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 WETH() external pure returns (address);
    function factory() external pure returns (address);

     function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );


    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
}

library Address{
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success, ) = recipient.call{value: amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
}

contract ElonX is IERC20, Ownable {
    using SafeMath for uint256;

    using Address for address payable;
    string private constant _name = "ElonX";
    string private constant _symbol = "X";
    uint8 private constant _decimals = 9;
    uint256 private _totalSupply = 100_000_000 * 10**_decimals;
    uint256 private  _maxWallet = 2_000_000 * 10**_decimals;
    uint256 private  _maxBuyAmount = 2_000_000 * 10**_decimals;
    uint256 private  _maxSellAmount = 2_000_000 * 10**_decimals;
    uint256 private  _swapTH = 200_000 * 10**_decimals;
    address public Dev = 0x4Fa7be9e5f10b54C63230cfb6e3101C8885D38E7;
    mapping(address => bool) private _isExcludedFromFee;
    mapping(address => bool) private _isWhiteList;
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    address private _owner;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;

    bool public _AutoSwap = true;
    bool public _Launch = false;
    bool public _transfersEnabled = false;
    bool private _TokenSwap = true;
    bool private _autoLP = true;
    bool private _isSelling = false;
    
    uint256 private _swapPercent = 100;

    uint256 private _devTaxRate = 25;
    uint256 private AmountBuyRate = _devTaxRate;

    uint256 private _devTaxSellRate = 45;
    uint256 private AmountSellRate = _devTaxSellRate;

    constructor() {
        
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

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

        _owner = msg.sender;

        uint256 tsupply = _totalSupply;

        _balances[msg.sender] = tsupply;


        _isExcludedFromFee[_owner] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[Dev] = true;
        
        emit Transfer(address(0), msg.sender, _balances[msg.sender]);
    }

    function getOwner() public view returns (address) {
        return owner();
    }
    
    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 view override returns (uint256) {
        return _totalSupply;
    }


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

    function isExcludedFromFee(address account) public view returns (bool) {
        return _isExcludedFromFee[account];
    }

    function isWhitelist(address account) public view returns (bool) {
        return _isWhiteList[account];
    }

    function ViewBuyRate() public view returns (
        uint256 devBuyRate,
        uint256 totalBuyRate,
        uint256 maxWallet,
        uint256 maxBuyAmount
    ) {
        devBuyRate = _devTaxRate;
        totalBuyRate = AmountBuyRate;
        maxWallet = _maxWallet;
        maxBuyAmount = _maxBuyAmount;
    }

    function ViewSellRate() public view returns (
        uint256 devSellRate,
        uint256 totalSellRate,
        uint256 maxSellAmount
    ) {
        devSellRate = _devTaxSellRate;
        totalSellRate = AmountSellRate;
        maxSellAmount = _maxSellAmount;
    }


    function transfer(address recipient, uint256 amount) public override returns (bool) {

        if(recipient != uniswapV2Pair && recipient != owner() && !_isExcludedFromFee[recipient]){

            require(_balances[recipient] + amount <= _maxWallet, "MyToken: recipient wallet balance exceeds the maximum limit");

        }

        _transfer(msg.sender, 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(msg.sender, spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _approve(sender, msg.sender, _allowances[sender][msg.sender] - amount);
        _transfer(sender, recipient, amount);
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "MyToken: approve from the zero address");
        require(spender != address(0), "MyToken: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(address sender, address recipient, uint256 amount) private {

        require(sender != address(0), "MyToken: transfer from the zero address");
        require(recipient != address(0), "MyToken: transfer to the zero address");
        require(amount > 0, "MyToken: transfer amount must be greater than zero");
        if(!_Launch){require(_isExcludedFromFee[sender] || _isExcludedFromFee[recipient] || _isWhiteList[sender] || _isWhiteList[recipient], "we not launch yet");}
        if(!_Launch && recipient != uniswapV2Pair && sender != uniswapV2Pair) {require(_transfersEnabled, "Transfers are currently disabled");}

        bool _AutoTaxes = true;


        if (recipient == uniswapV2Pair && sender == owner()) {

            _balances[sender] -= amount;
            _balances[recipient] += amount;
            emit Transfer(sender, recipient, amount);
            return;
        }

        //sell   
        if(recipient == uniswapV2Pair && !_isExcludedFromFee[sender] && sender != owner()){

                require(amount <= _maxSellAmount, "Sell amount exceeds max limit");

                _isSelling = true;
               
                if(_AutoSwap && balanceOf(address(this)) >= _swapTH){

                    CanSwap();
                }  
        }

        //buy
        if(sender == uniswapV2Pair && !_isExcludedFromFee[recipient] && recipient != owner()){
                    
            require(amount <= _maxBuyAmount, "Buy amount exceeds max limit");
            
        }

        if (_isExcludedFromFee[sender] || _isExcludedFromFee[recipient]) { _AutoTaxes = false; }
        if (recipient != uniswapV2Pair && sender != uniswapV2Pair) { _AutoTaxes = false; }

        if (_AutoTaxes) {

                if(!_isSelling){

                    uint256 totalTaxAmount = amount * AmountBuyRate / 100;
                    uint256 transferAmount = amount - totalTaxAmount;
                    
                   
                    _balances[address(this)] = _balances[address(this)].add(totalTaxAmount);
                    _balances[sender] = _balances[sender].sub(amount);
                    _balances[recipient] = _balances[recipient].add(transferAmount);

                    emit Transfer(sender, recipient, transferAmount);
                    emit Transfer(sender, address(this), totalTaxAmount);

                }else{

                    uint256 totalTaxAmount = amount * AmountSellRate / 100;
                    uint256 transferAmount = amount - totalTaxAmount;
                    

                    _balances[address(this)] = _balances[address(this)].add(totalTaxAmount);
                    _balances[sender] = _balances[sender].sub(amount);
                    _balances[recipient] = _balances[recipient].add(transferAmount);

                    emit Transfer(sender, recipient, transferAmount);
                    emit Transfer(sender, address(this), totalTaxAmount);

                    _isSelling = false;
                }
            
        }else{

                _balances[sender] = _balances[sender].sub(amount);
                _balances[recipient] = _balances[recipient].add(amount);

                emit Transfer(sender, recipient, amount);

        }
    }


    function swapTokensForEth(uint256 tokenAmount) private {

        // Set up the contract address and the token to be swapped
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

        // Approve the transfer of tokens to the contract address
        _approve(address(this), address(uniswapV2Router), tokenAmount);

        // Make the swap
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this),
            block.timestamp
        );
    }


    function CanSwap() private {

        uint256 contractTokenBalance = balanceOf(address(this));

        if(contractTokenBalance > 0) {

            if(_TokenSwap){

                if(contractTokenBalance > 0){
                    
                    uint256 caBalance = balanceOf(address(this)) * _swapPercent / 100;

                    uint256 toSwap = caBalance;

                    swapTokensForEth(toSwap);

                    uint256 receivedBalance = address(this).balance;

                    if (receivedBalance > 0) {payable(Dev).transfer(receivedBalance);}

                }else{

                    revert("No tokens available to swap");
                }

            }

        }else{

           revert("No Balance available to swap");     
           
        }
            
    }

   receive() external payable {}

    function setDevAddress(address newAddress) public onlyOwner {
        require(newAddress != address(0), "Invalid address");
        Dev = newAddress;
        _isExcludedFromFee[newAddress] = true;
    }


   function enableLaunch() external {
        _Launch = true;
        _transfersEnabled = true;
    }

    function setExcludedFromFee(address account, bool status) external onlyOwner {
        _isExcludedFromFee[account] = status;
    }

    function setWhitelist(address account, bool status) external onlyOwner {
        _isWhiteList[account] = status;
    }

    function bulkwhitelist(address[] memory accounts, bool state) external onlyOwner{
        for(uint256 i = 0; i < accounts.length; i++){
            _isWhiteList[accounts[i]] = state;
        }
    }

    function SwapEnable(bool status) external onlyOwner {
        _AutoSwap = status;
    }

    function SetSwapPercentage(uint256 SwapPercent) external onlyOwner {
        _swapPercent = SwapPercent;
    }

    function setAutoSwap(uint256 newAutoSwap) external onlyOwner {
        require(newAutoSwap <= (totalSupply() * 1) / 100, "Invalid value: exceeds 1% of total supply");
        _swapTH = newAutoSwap * 10**_decimals;
    }

    function updateLimits(uint256 maxWallet, uint256 maxBuyAmount, uint256 maxSellAmount) external onlyOwner {
        _maxWallet = maxWallet * 10**_decimals;
        _maxBuyAmount = maxBuyAmount * 10**_decimals;
        _maxSellAmount = maxSellAmount * 10**_decimals;
    }

    function setBuyTaxRates(uint256 devTaxRate) external onlyOwner {
        _devTaxRate = devTaxRate;
        AmountBuyRate = _devTaxRate;
    }


    function setSellTaxRates(uint256 devTaxRate) external onlyOwner {
        _devTaxSellRate = devTaxRate;
        AmountSellRate = _devTaxSellRate;
    }

}

Contract Security Audit

Contract ABI

[{"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":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":"Dev","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"SwapPercent","type":"uint256"}],"name":"SetSwapPercentage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"SwapEnable","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"ViewBuyRate","outputs":[{"internalType":"uint256","name":"devBuyRate","type":"uint256"},{"internalType":"uint256","name":"totalBuyRate","type":"uint256"},{"internalType":"uint256","name":"maxWallet","type":"uint256"},{"internalType":"uint256","name":"maxBuyAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ViewSellRate","outputs":[{"internalType":"uint256","name":"devSellRate","type":"uint256"},{"internalType":"uint256","name":"totalSellRate","type":"uint256"},{"internalType":"uint256","name":"maxSellAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_AutoSwap","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_Launch","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_transfersEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkwhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableLaunch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isWhitelist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAutoSwap","type":"uint256"}],"name":"setAutoSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"devTaxRate","type":"uint256"}],"name":"setBuyTaxRates","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setDevAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setExcludedFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"devTaxRate","type":"uint256"}],"name":"setSellTaxRates","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallet","type":"uint256"},{"internalType":"uint256","name":"maxBuyAmount","type":"uint256"},{"internalType":"uint256","name":"maxSellAmount","type":"uint256"}],"name":"updateLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126009600a620004ac565b62000022906305f5e100620004c4565b600155620000336009600a620004ac565b6200004290621e8480620004c4565b600255620000536009600a620004ac565b6200006290621e8480620004c4565b600355620000736009600a620004ac565b6200008290621e8480620004c4565b600455620000936009600a620004ac565b620000a29062030d40620004c4565b600555600680546001600160a01b031916734fa7be9e5f10b54c63230cfb6e3101c8885d38e7179055600e805465ffffffffffff19166401010000011790556064600f5560196010819055601155602d60128190556013553480156200010757600080fd5b50620001133362000347565b600980546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b81529051829163c45a01559160048083019260209291908290030181865afa15801562000179573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200019f9190620004de565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001ed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002139190620004de565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000261573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002879190620004de565b600a80546001600160a01b03199081166001600160a01b0393841617909155600b805433921682178155600180546000848152600c6020818152604080842085815596548916845260078252808420805460ff199081168817909155308552818520805482168817905560065490991684528084208054909916909517909755858252865292549151918252937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505062000509565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620003ee578160001904821115620003d257620003d262000397565b80851615620003e057918102915b93841c9390800290620003b2565b509250929050565b6000826200040757506001620004a6565b816200041657506000620004a6565b81600181146200042f57600281146200043a576200045a565b6001915050620004a6565b60ff8411156200044e576200044e62000397565b50506001821b620004a6565b5060208310610133831016604e8410600b84101617156200047f575081810a620004a6565b6200048b8383620003ad565b8060001904821115620004a257620004a262000397565b0290505b92915050565b6000620004bd60ff841683620003f6565b9392505050565b8082028115828204841417620004a657620004a662000397565b600060208284031215620004f157600080fd5b81516001600160a01b0381168114620004bd57600080fd5b61202c80620005196000396000f3fe6080604052600436106101fd5760003560e01c80638da5cb5b1161010d578063d8a0663c116100a0578063f515a55c1161006f578063f515a55c14610640578063f7de4dfd14610660578063fcd2e0491461067f578063feae65e71461069f578063ff5211bb146106d857600080fd5b8063d8a0663c1461059a578063dd62ed3e146105ba578063f18b8cba14610600578063f2fde38b1461062057600080fd5b8063a9059cbb116100dc578063a9059cbb146104f0578063c683630d14610510578063c6da305114610549578063d0d41fe11461057a57600080fd5b80638da5cb5b1461046e578063925542871461048c57806395d89b41146104a6578063a14aee61146104d057600080fd5b806336a0f8a5116101905780636612e66f1161015f5780636612e66f146103e357806370a0823114610403578063715018a61461043957806385438bc01461044e578063893d20e81461046e57600080fd5b806336a0f8a51461034a57806349bd5a5e1461036a5780635342acb41461038a57806353d6fd59146103c357600080fd5b80631694505e116101cc5780631694505e146102cf57806318160ddd146102ef57806323b872dd1461030e578063313ce5671461032e57600080fd5b806301e51ae81461020957806306fdde0314610246578063095ea7b31461027d5780630a80c0cc146102ad57600080fd5b3661020457005b600080fd5b34801561021557600080fd5b50600654610229906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561025257600080fd5b5060408051808201909152600581526408ad8dedcb60db1b60208201525b60405161023d9190611ab4565b34801561028957600080fd5b5061029d610298366004611b27565b6106f8565b604051901515815260200161023d565b3480156102b957600080fd5b506102cd6102c8366004611b53565b61070f565b005b3480156102db57600080fd5b50600954610229906001600160a01b031681565b3480156102fb57600080fd5b506001545b60405190815260200161023d565b34801561031a57600080fd5b5061029d610329366004611b6c565b61074c565b34801561033a57600080fd5b506040516009815260200161023d565b34801561035657600080fd5b506102cd610365366004611bad565b61079b565b34801561037657600080fd5b50600a54610229906001600160a01b031681565b34801561039657600080fd5b5061029d6103a5366004611bd9565b6001600160a01b031660009081526007602052604090205460ff1690565b3480156103cf57600080fd5b506102cd6103de366004611c06565b610815565b3480156103ef57600080fd5b506102cd6103fe366004611c06565b61086a565b34801561040f57600080fd5b5061030061041e366004611bd9565b6001600160a01b03166000908152600c602052604090205490565b34801561044557600080fd5b506102cd6108bf565b34801561045a57600080fd5b50600e5461029d9062010000900460ff1681565b34801561047a57600080fd5b506000546001600160a01b0316610229565b34801561049857600080fd5b50600e5461029d9060ff1681565b3480156104b257600080fd5b506040805180820190915260018152600b60fb1b6020820152610270565b3480156104dc57600080fd5b506102cd6104eb366004611c3b565b6108f5565b3480156104fc57600080fd5b5061029d61050b366004611b27565b610932565b34801561051c57600080fd5b5061029d61052b366004611bd9565b6001600160a01b031660009081526008602052604090205460ff1690565b34801561055557600080fd5b506012546013546004546040805193845260208401929092529082015260600161023d565b34801561058657600080fd5b506102cd610595366004611bd9565b610a31565b3480156105a657600080fd5b506102cd6105b5366004611b53565b610add565b3480156105c657600080fd5b506103006105d5366004611c56565b6001600160a01b039182166000908152600d6020908152604080832093909416825291909152205490565b34801561060c57600080fd5b506102cd61061b366004611ca5565b610ba4565b34801561062c57600080fd5b506102cd61063b366004611bd9565b610c3a565b34801561064c57600080fd5b506102cd61065b366004611b53565b610cd5565b34801561066c57600080fd5b50600e5461029d90610100900460ff1681565b34801561068b57600080fd5b506102cd61069a366004611b53565b610d04565b3480156106ab57600080fd5b5060105460115460025460035460408051948552602085019390935291830152606082015260800161023d565b3480156106e457600080fd5b50600e805462ffff00191662010100179055005b6000610705338484610d38565b5060015b92915050565b6000546001600160a01b031633146107425760405162461bcd60e51b815260040161073990611d7c565b60405180910390fd5b6012819055601355565b6001600160a01b0383166000908152600d60209081526040808320338085529252822054610786918691610781908690611dc7565b610d38565b610791848484610e60565b5060019392505050565b6000546001600160a01b031633146107c55760405162461bcd60e51b815260040161073990611d7c565b6107d16009600a611ebe565b6107db9084611ecd565b6002556107ea6009600a611ebe565b6107f49083611ecd565b6003556108036009600a611ebe565b61080d9082611ecd565b600455505050565b6000546001600160a01b0316331461083f5760405162461bcd60e51b815260040161073990611d7c565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146108945760405162461bcd60e51b815260040161073990611d7c565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146108e95760405162461bcd60e51b815260040161073990611d7c565b6108f360006116ea565b565b6000546001600160a01b0316331461091f5760405162461bcd60e51b815260040161073990611d7c565b600e805460ff1916911515919091179055565b600a546000906001600160a01b0384811691161480159061096157506000546001600160a01b03848116911614155b801561098657506001600160a01b03831660009081526007602052604090205460ff16155b15610a26576002546001600160a01b0384166000908152600c60205260409020546109b2908490611ee4565b1115610a265760405162461bcd60e51b815260206004820152603b60248201527f4d79546f6b656e3a20726563697069656e742077616c6c65742062616c616e6360448201527f65206578636565647320746865206d6178696d756d206c696d697400000000006064820152608401610739565b610705338484610e60565b6000546001600160a01b03163314610a5b5760405162461bcd60e51b815260040161073990611d7c565b6001600160a01b038116610aa35760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b6044820152606401610739565b600680546001600160a01b039092166001600160a01b0319909216821790556000908152600760205260409020805460ff19166001179055565b6000546001600160a01b03163314610b075760405162461bcd60e51b815260040161073990611d7c565b6064610b1260015490565b610b1d906001611ecd565b610b279190611ef7565b811115610b885760405162461bcd60e51b815260206004820152602960248201527f496e76616c69642076616c75653a2065786365656473203125206f6620746f74604482015268616c20737570706c7960b81b6064820152608401610739565b610b946009600a611ebe565b610b9e9082611ecd565b60055550565b6000546001600160a01b03163314610bce5760405162461bcd60e51b815260040161073990611d7c565b60005b8251811015610c35578160086000858481518110610bf157610bf1611f19565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610c2d81611f2f565b915050610bd1565b505050565b6000546001600160a01b03163314610c645760405162461bcd60e51b815260040161073990611d7c565b6001600160a01b038116610cc95760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610739565b610cd2816116ea565b50565b6000546001600160a01b03163314610cff5760405162461bcd60e51b815260040161073990611d7c565b600f55565b6000546001600160a01b03163314610d2e5760405162461bcd60e51b815260040161073990611d7c565b6010819055601155565b6001600160a01b038316610d9d5760405162461bcd60e51b815260206004820152602660248201527f4d79546f6b656e3a20617070726f76652066726f6d20746865207a65726f206160448201526564647265737360d01b6064820152608401610739565b6001600160a01b038216610dff5760405162461bcd60e51b8152602060048201526024808201527f4d79546f6b656e3a20617070726f766520746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610739565b6001600160a01b038381166000818152600d602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610ec65760405162461bcd60e51b815260206004820152602760248201527f4d79546f6b656e3a207472616e736665722066726f6d20746865207a65726f206044820152666164647265737360c81b6064820152608401610739565b6001600160a01b038216610f2a5760405162461bcd60e51b815260206004820152602560248201527f4d79546f6b656e3a207472616e7366657220746f20746865207a65726f206164604482015264647265737360d81b6064820152608401610739565b60008111610f955760405162461bcd60e51b815260206004820152603260248201527f4d79546f6b656e3a207472616e7366657220616d6f756e74206d7573742062656044820152712067726561746572207468616e207a65726f60701b6064820152608401610739565b600e54610100900460ff16611069576001600160a01b03831660009081526007602052604090205460ff1680610fe357506001600160a01b03821660009081526007602052604090205460ff165b8061100657506001600160a01b03831660009081526008602052604090205460ff165b8061102957506001600160a01b03821660009081526008602052604090205460ff165b6110695760405162461bcd60e51b81526020600482015260116024820152701dd9481b9bdd081b185d5b98da081e595d607a1b6044820152606401610739565b600e54610100900460ff1615801561108f5750600a546001600160a01b03838116911614155b80156110a95750600a546001600160a01b03848116911614155b1561110657600e5462010000900460ff166111065760405162461bcd60e51b815260206004820181905260248201527f5472616e7366657273206172652063757272656e746c792064697361626c65646044820152606401610739565b600a546001906001600160a01b03848116911614801561113357506000546001600160a01b038581169116145b156111d5576001600160a01b0384166000908152600c602052604081208054849290611160908490611dc7565b90915550506001600160a01b0383166000908152600c60205260408120805484929061118d908490611ee4565b92505081905550826001600160a01b0316846001600160a01b0316600080516020611fd7833981519152846040516111c791815260200190565b60405180910390a350505050565b600a546001600160a01b03848116911614801561120b57506001600160a01b03841660009081526007602052604090205460ff16155b801561122557506000546001600160a01b03858116911614155b156112c25760045482111561127c5760405162461bcd60e51b815260206004820152601d60248201527f53656c6c20616d6f756e742065786365656473206d6178206c696d69740000006044820152606401610739565b600e805465ff0000000000198116650100000000001790915560ff1680156112b55750600554306000908152600c602052604090205410155b156112c2576112c261173a565b600a546001600160a01b0385811691161480156112f857506001600160a01b03831660009081526007602052604090205460ff16155b801561131257506000546001600160a01b03848116911614155b15611369576003548211156113695760405162461bcd60e51b815260206004820152601c60248201527f42757920616d6f756e742065786365656473206d6178206c696d6974000000006044820152606401610739565b6001600160a01b03841660009081526007602052604090205460ff16806113a857506001600160a01b03831660009081526007602052604090205460ff165b156113b1575060005b600a546001600160a01b038481169116148015906113dd5750600a546001600160a01b03858116911614155b156113e6575060005b801561165057600e5465010000000000900460ff166115205760006064601154846114119190611ecd565b61141b9190611ef7565b905060006114298285611dc7565b306000908152600c60205260409020549091506114469083611878565b306000908152600c6020526040808220929092556001600160a01b0388168152205461147290856118de565b6001600160a01b038088166000908152600c602052604080822093909355908716815220546114a19082611878565b6001600160a01b038087166000818152600c60205260409081902093909355915190881690600080516020611fd7833981519152906114e39085815260200190565b60405180910390a360405182815230906001600160a01b03881690600080516020611fd78339815191529060200160405180910390a350506116e4565b60006064601354846115329190611ecd565b61153c9190611ef7565b9050600061154a8285611dc7565b306000908152600c60205260409020549091506115679083611878565b306000908152600c6020526040808220929092556001600160a01b0388168152205461159390856118de565b6001600160a01b038088166000908152600c602052604080822093909355908716815220546115c29082611878565b6001600160a01b038087166000818152600c60205260409081902093909355915190881690600080516020611fd7833981519152906116049085815260200190565b60405180910390a360405182815230906001600160a01b03881690600080516020611fd78339815191529060200160405180910390a35050600e805465ff0000000000191690556116e4565b6001600160a01b0384166000908152600c602052604090205461167390836118de565b6001600160a01b038086166000908152600c602052604080822093909355908516815220546116a29083611878565b6001600160a01b038085166000818152600c60205260409081902093909355915190861690600080516020611fd7833981519152906111c79086815260200190565b50505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b306000908152600c6020526040902054801561183057600e546301000000900460ff1615610cd25780156117e857600f54306000908152600c6020526040812054909160649161178a9190611ecd565b6117949190611ef7565b9050806117a081611920565b4780156116e4576006546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156117e1573d6000803e3d6000fd5b5050505050565b60405162461bcd60e51b815260206004820152601b60248201527f4e6f20746f6b656e7320617661696c61626c6520746f207377617000000000006044820152606401610739565b60405162461bcd60e51b815260206004820152601c60248201527f4e6f2042616c616e636520617661696c61626c6520746f2073776170000000006044820152606401610739565b6000806118858385611ee4565b9050838110156118d75760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610739565b9392505050565b60006118d783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a7a565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061195557611955611f19565b6001600160a01b03928316602091820292909201810191909152600954604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156119ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119d29190611f48565b816001815181106119e5576119e5611f19565b6001600160a01b039283166020918202929092010152600954611a0b9130911684610d38565b60095460405163791ac94760e01b81526001600160a01b039091169063791ac94790611a44908590600090869030904290600401611f65565b600060405180830381600087803b158015611a5e57600080fd5b505af1158015611a72573d6000803e3d6000fd5b505050505050565b60008184841115611a9e5760405162461bcd60e51b81526004016107399190611ab4565b506000611aab8486611dc7565b95945050505050565b600060208083528351808285015260005b81811015611ae157858101830151858201604001528201611ac5565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610cd257600080fd5b8035611b2281611b02565b919050565b60008060408385031215611b3a57600080fd5b8235611b4581611b02565b946020939093013593505050565b600060208284031215611b6557600080fd5b5035919050565b600080600060608486031215611b8157600080fd5b8335611b8c81611b02565b92506020840135611b9c81611b02565b929592945050506040919091013590565b600080600060608486031215611bc257600080fd5b505081359360208301359350604090920135919050565b600060208284031215611beb57600080fd5b81356118d781611b02565b80358015158114611b2257600080fd5b60008060408385031215611c1957600080fd5b8235611c2481611b02565b9150611c3260208401611bf6565b90509250929050565b600060208284031215611c4d57600080fd5b6118d782611bf6565b60008060408385031215611c6957600080fd5b8235611c7481611b02565b91506020830135611c8481611b02565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215611cb857600080fd5b823567ffffffffffffffff80821115611cd057600080fd5b818501915085601f830112611ce457600080fd5b8135602082821115611cf857611cf8611c8f565b8160051b604051601f19603f83011681018181108682111715611d1d57611d1d611c8f565b604052928352818301935084810182019289841115611d3b57600080fd5b948201945b83861015611d6057611d5186611b17565b85529482019493820193611d40565b9650611d6f9050878201611bf6565b9450505050509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8181038181111561070957610709611db1565b600181815b80851115611e15578160001904821115611dfb57611dfb611db1565b80851615611e0857918102915b93841c9390800290611ddf565b509250929050565b600082611e2c57506001610709565b81611e3957506000610709565b8160018114611e4f5760028114611e5957611e75565b6001915050610709565b60ff841115611e6a57611e6a611db1565b50506001821b610709565b5060208310610133831016604e8410600b8410161715611e98575081810a610709565b611ea28383611dda565b8060001904821115611eb657611eb6611db1565b029392505050565b60006118d760ff841683611e1d565b808202811582820484141761070957610709611db1565b8082018082111561070957610709611db1565b600082611f1457634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060018201611f4157611f41611db1565b5060010190565b600060208284031215611f5a57600080fd5b81516118d781611b02565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611fb55784516001600160a01b031683529383019391830191600101611f90565b50506001600160a01b0396909616606085015250505060800152939250505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212204e01e72a9154290b05406a2dee7fd8ed27c2063e02e80ed8580a270c45447c2164736f6c63430008120033

Deployed Bytecode

0x6080604052600436106101fd5760003560e01c80638da5cb5b1161010d578063d8a0663c116100a0578063f515a55c1161006f578063f515a55c14610640578063f7de4dfd14610660578063fcd2e0491461067f578063feae65e71461069f578063ff5211bb146106d857600080fd5b8063d8a0663c1461059a578063dd62ed3e146105ba578063f18b8cba14610600578063f2fde38b1461062057600080fd5b8063a9059cbb116100dc578063a9059cbb146104f0578063c683630d14610510578063c6da305114610549578063d0d41fe11461057a57600080fd5b80638da5cb5b1461046e578063925542871461048c57806395d89b41146104a6578063a14aee61146104d057600080fd5b806336a0f8a5116101905780636612e66f1161015f5780636612e66f146103e357806370a0823114610403578063715018a61461043957806385438bc01461044e578063893d20e81461046e57600080fd5b806336a0f8a51461034a57806349bd5a5e1461036a5780635342acb41461038a57806353d6fd59146103c357600080fd5b80631694505e116101cc5780631694505e146102cf57806318160ddd146102ef57806323b872dd1461030e578063313ce5671461032e57600080fd5b806301e51ae81461020957806306fdde0314610246578063095ea7b31461027d5780630a80c0cc146102ad57600080fd5b3661020457005b600080fd5b34801561021557600080fd5b50600654610229906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561025257600080fd5b5060408051808201909152600581526408ad8dedcb60db1b60208201525b60405161023d9190611ab4565b34801561028957600080fd5b5061029d610298366004611b27565b6106f8565b604051901515815260200161023d565b3480156102b957600080fd5b506102cd6102c8366004611b53565b61070f565b005b3480156102db57600080fd5b50600954610229906001600160a01b031681565b3480156102fb57600080fd5b506001545b60405190815260200161023d565b34801561031a57600080fd5b5061029d610329366004611b6c565b61074c565b34801561033a57600080fd5b506040516009815260200161023d565b34801561035657600080fd5b506102cd610365366004611bad565b61079b565b34801561037657600080fd5b50600a54610229906001600160a01b031681565b34801561039657600080fd5b5061029d6103a5366004611bd9565b6001600160a01b031660009081526007602052604090205460ff1690565b3480156103cf57600080fd5b506102cd6103de366004611c06565b610815565b3480156103ef57600080fd5b506102cd6103fe366004611c06565b61086a565b34801561040f57600080fd5b5061030061041e366004611bd9565b6001600160a01b03166000908152600c602052604090205490565b34801561044557600080fd5b506102cd6108bf565b34801561045a57600080fd5b50600e5461029d9062010000900460ff1681565b34801561047a57600080fd5b506000546001600160a01b0316610229565b34801561049857600080fd5b50600e5461029d9060ff1681565b3480156104b257600080fd5b506040805180820190915260018152600b60fb1b6020820152610270565b3480156104dc57600080fd5b506102cd6104eb366004611c3b565b6108f5565b3480156104fc57600080fd5b5061029d61050b366004611b27565b610932565b34801561051c57600080fd5b5061029d61052b366004611bd9565b6001600160a01b031660009081526008602052604090205460ff1690565b34801561055557600080fd5b506012546013546004546040805193845260208401929092529082015260600161023d565b34801561058657600080fd5b506102cd610595366004611bd9565b610a31565b3480156105a657600080fd5b506102cd6105b5366004611b53565b610add565b3480156105c657600080fd5b506103006105d5366004611c56565b6001600160a01b039182166000908152600d6020908152604080832093909416825291909152205490565b34801561060c57600080fd5b506102cd61061b366004611ca5565b610ba4565b34801561062c57600080fd5b506102cd61063b366004611bd9565b610c3a565b34801561064c57600080fd5b506102cd61065b366004611b53565b610cd5565b34801561066c57600080fd5b50600e5461029d90610100900460ff1681565b34801561068b57600080fd5b506102cd61069a366004611b53565b610d04565b3480156106ab57600080fd5b5060105460115460025460035460408051948552602085019390935291830152606082015260800161023d565b3480156106e457600080fd5b50600e805462ffff00191662010100179055005b6000610705338484610d38565b5060015b92915050565b6000546001600160a01b031633146107425760405162461bcd60e51b815260040161073990611d7c565b60405180910390fd5b6012819055601355565b6001600160a01b0383166000908152600d60209081526040808320338085529252822054610786918691610781908690611dc7565b610d38565b610791848484610e60565b5060019392505050565b6000546001600160a01b031633146107c55760405162461bcd60e51b815260040161073990611d7c565b6107d16009600a611ebe565b6107db9084611ecd565b6002556107ea6009600a611ebe565b6107f49083611ecd565b6003556108036009600a611ebe565b61080d9082611ecd565b600455505050565b6000546001600160a01b0316331461083f5760405162461bcd60e51b815260040161073990611d7c565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146108945760405162461bcd60e51b815260040161073990611d7c565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146108e95760405162461bcd60e51b815260040161073990611d7c565b6108f360006116ea565b565b6000546001600160a01b0316331461091f5760405162461bcd60e51b815260040161073990611d7c565b600e805460ff1916911515919091179055565b600a546000906001600160a01b0384811691161480159061096157506000546001600160a01b03848116911614155b801561098657506001600160a01b03831660009081526007602052604090205460ff16155b15610a26576002546001600160a01b0384166000908152600c60205260409020546109b2908490611ee4565b1115610a265760405162461bcd60e51b815260206004820152603b60248201527f4d79546f6b656e3a20726563697069656e742077616c6c65742062616c616e6360448201527f65206578636565647320746865206d6178696d756d206c696d697400000000006064820152608401610739565b610705338484610e60565b6000546001600160a01b03163314610a5b5760405162461bcd60e51b815260040161073990611d7c565b6001600160a01b038116610aa35760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b6044820152606401610739565b600680546001600160a01b039092166001600160a01b0319909216821790556000908152600760205260409020805460ff19166001179055565b6000546001600160a01b03163314610b075760405162461bcd60e51b815260040161073990611d7c565b6064610b1260015490565b610b1d906001611ecd565b610b279190611ef7565b811115610b885760405162461bcd60e51b815260206004820152602960248201527f496e76616c69642076616c75653a2065786365656473203125206f6620746f74604482015268616c20737570706c7960b81b6064820152608401610739565b610b946009600a611ebe565b610b9e9082611ecd565b60055550565b6000546001600160a01b03163314610bce5760405162461bcd60e51b815260040161073990611d7c565b60005b8251811015610c35578160086000858481518110610bf157610bf1611f19565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610c2d81611f2f565b915050610bd1565b505050565b6000546001600160a01b03163314610c645760405162461bcd60e51b815260040161073990611d7c565b6001600160a01b038116610cc95760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610739565b610cd2816116ea565b50565b6000546001600160a01b03163314610cff5760405162461bcd60e51b815260040161073990611d7c565b600f55565b6000546001600160a01b03163314610d2e5760405162461bcd60e51b815260040161073990611d7c565b6010819055601155565b6001600160a01b038316610d9d5760405162461bcd60e51b815260206004820152602660248201527f4d79546f6b656e3a20617070726f76652066726f6d20746865207a65726f206160448201526564647265737360d01b6064820152608401610739565b6001600160a01b038216610dff5760405162461bcd60e51b8152602060048201526024808201527f4d79546f6b656e3a20617070726f766520746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610739565b6001600160a01b038381166000818152600d602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610ec65760405162461bcd60e51b815260206004820152602760248201527f4d79546f6b656e3a207472616e736665722066726f6d20746865207a65726f206044820152666164647265737360c81b6064820152608401610739565b6001600160a01b038216610f2a5760405162461bcd60e51b815260206004820152602560248201527f4d79546f6b656e3a207472616e7366657220746f20746865207a65726f206164604482015264647265737360d81b6064820152608401610739565b60008111610f955760405162461bcd60e51b815260206004820152603260248201527f4d79546f6b656e3a207472616e7366657220616d6f756e74206d7573742062656044820152712067726561746572207468616e207a65726f60701b6064820152608401610739565b600e54610100900460ff16611069576001600160a01b03831660009081526007602052604090205460ff1680610fe357506001600160a01b03821660009081526007602052604090205460ff165b8061100657506001600160a01b03831660009081526008602052604090205460ff165b8061102957506001600160a01b03821660009081526008602052604090205460ff165b6110695760405162461bcd60e51b81526020600482015260116024820152701dd9481b9bdd081b185d5b98da081e595d607a1b6044820152606401610739565b600e54610100900460ff1615801561108f5750600a546001600160a01b03838116911614155b80156110a95750600a546001600160a01b03848116911614155b1561110657600e5462010000900460ff166111065760405162461bcd60e51b815260206004820181905260248201527f5472616e7366657273206172652063757272656e746c792064697361626c65646044820152606401610739565b600a546001906001600160a01b03848116911614801561113357506000546001600160a01b038581169116145b156111d5576001600160a01b0384166000908152600c602052604081208054849290611160908490611dc7565b90915550506001600160a01b0383166000908152600c60205260408120805484929061118d908490611ee4565b92505081905550826001600160a01b0316846001600160a01b0316600080516020611fd7833981519152846040516111c791815260200190565b60405180910390a350505050565b600a546001600160a01b03848116911614801561120b57506001600160a01b03841660009081526007602052604090205460ff16155b801561122557506000546001600160a01b03858116911614155b156112c25760045482111561127c5760405162461bcd60e51b815260206004820152601d60248201527f53656c6c20616d6f756e742065786365656473206d6178206c696d69740000006044820152606401610739565b600e805465ff0000000000198116650100000000001790915560ff1680156112b55750600554306000908152600c602052604090205410155b156112c2576112c261173a565b600a546001600160a01b0385811691161480156112f857506001600160a01b03831660009081526007602052604090205460ff16155b801561131257506000546001600160a01b03848116911614155b15611369576003548211156113695760405162461bcd60e51b815260206004820152601c60248201527f42757920616d6f756e742065786365656473206d6178206c696d6974000000006044820152606401610739565b6001600160a01b03841660009081526007602052604090205460ff16806113a857506001600160a01b03831660009081526007602052604090205460ff165b156113b1575060005b600a546001600160a01b038481169116148015906113dd5750600a546001600160a01b03858116911614155b156113e6575060005b801561165057600e5465010000000000900460ff166115205760006064601154846114119190611ecd565b61141b9190611ef7565b905060006114298285611dc7565b306000908152600c60205260409020549091506114469083611878565b306000908152600c6020526040808220929092556001600160a01b0388168152205461147290856118de565b6001600160a01b038088166000908152600c602052604080822093909355908716815220546114a19082611878565b6001600160a01b038087166000818152600c60205260409081902093909355915190881690600080516020611fd7833981519152906114e39085815260200190565b60405180910390a360405182815230906001600160a01b03881690600080516020611fd78339815191529060200160405180910390a350506116e4565b60006064601354846115329190611ecd565b61153c9190611ef7565b9050600061154a8285611dc7565b306000908152600c60205260409020549091506115679083611878565b306000908152600c6020526040808220929092556001600160a01b0388168152205461159390856118de565b6001600160a01b038088166000908152600c602052604080822093909355908716815220546115c29082611878565b6001600160a01b038087166000818152600c60205260409081902093909355915190881690600080516020611fd7833981519152906116049085815260200190565b60405180910390a360405182815230906001600160a01b03881690600080516020611fd78339815191529060200160405180910390a35050600e805465ff0000000000191690556116e4565b6001600160a01b0384166000908152600c602052604090205461167390836118de565b6001600160a01b038086166000908152600c602052604080822093909355908516815220546116a29083611878565b6001600160a01b038085166000818152600c60205260409081902093909355915190861690600080516020611fd7833981519152906111c79086815260200190565b50505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b306000908152600c6020526040902054801561183057600e546301000000900460ff1615610cd25780156117e857600f54306000908152600c6020526040812054909160649161178a9190611ecd565b6117949190611ef7565b9050806117a081611920565b4780156116e4576006546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156117e1573d6000803e3d6000fd5b5050505050565b60405162461bcd60e51b815260206004820152601b60248201527f4e6f20746f6b656e7320617661696c61626c6520746f207377617000000000006044820152606401610739565b60405162461bcd60e51b815260206004820152601c60248201527f4e6f2042616c616e636520617661696c61626c6520746f2073776170000000006044820152606401610739565b6000806118858385611ee4565b9050838110156118d75760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610739565b9392505050565b60006118d783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a7a565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061195557611955611f19565b6001600160a01b03928316602091820292909201810191909152600954604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156119ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119d29190611f48565b816001815181106119e5576119e5611f19565b6001600160a01b039283166020918202929092010152600954611a0b9130911684610d38565b60095460405163791ac94760e01b81526001600160a01b039091169063791ac94790611a44908590600090869030904290600401611f65565b600060405180830381600087803b158015611a5e57600080fd5b505af1158015611a72573d6000803e3d6000fd5b505050505050565b60008184841115611a9e5760405162461bcd60e51b81526004016107399190611ab4565b506000611aab8486611dc7565b95945050505050565b600060208083528351808285015260005b81811015611ae157858101830151858201604001528201611ac5565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610cd257600080fd5b8035611b2281611b02565b919050565b60008060408385031215611b3a57600080fd5b8235611b4581611b02565b946020939093013593505050565b600060208284031215611b6557600080fd5b5035919050565b600080600060608486031215611b8157600080fd5b8335611b8c81611b02565b92506020840135611b9c81611b02565b929592945050506040919091013590565b600080600060608486031215611bc257600080fd5b505081359360208301359350604090920135919050565b600060208284031215611beb57600080fd5b81356118d781611b02565b80358015158114611b2257600080fd5b60008060408385031215611c1957600080fd5b8235611c2481611b02565b9150611c3260208401611bf6565b90509250929050565b600060208284031215611c4d57600080fd5b6118d782611bf6565b60008060408385031215611c6957600080fd5b8235611c7481611b02565b91506020830135611c8481611b02565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215611cb857600080fd5b823567ffffffffffffffff80821115611cd057600080fd5b818501915085601f830112611ce457600080fd5b8135602082821115611cf857611cf8611c8f565b8160051b604051601f19603f83011681018181108682111715611d1d57611d1d611c8f565b604052928352818301935084810182019289841115611d3b57600080fd5b948201945b83861015611d6057611d5186611b17565b85529482019493820193611d40565b9650611d6f9050878201611bf6565b9450505050509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8181038181111561070957610709611db1565b600181815b80851115611e15578160001904821115611dfb57611dfb611db1565b80851615611e0857918102915b93841c9390800290611ddf565b509250929050565b600082611e2c57506001610709565b81611e3957506000610709565b8160018114611e4f5760028114611e5957611e75565b6001915050610709565b60ff841115611e6a57611e6a611db1565b50506001821b610709565b5060208310610133831016604e8410600b8410161715611e98575081810a610709565b611ea28383611dda565b8060001904821115611eb657611eb6611db1565b029392505050565b60006118d760ff841683611e1d565b808202811582820484141761070957610709611db1565b8082018082111561070957610709611db1565b600082611f1457634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060018201611f4157611f41611db1565b5060010190565b600060208284031215611f5a57600080fd5b81516118d781611b02565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611fb55784516001600160a01b031683529383019391830191600101611f90565b50506001600160a01b0396909616606085015250505060800152939250505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212204e01e72a9154290b05406a2dee7fd8ed27c2063e02e80ed8580a270c45447c2164736f6c63430008120033

Deployed Bytecode Sourcemap

4566:11690:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5130:63;;;;;;;;;;-1:-1:-1;5130:63:0;;;;-1:-1:-1;;;;;5130:63:0;;;;;;-1:-1:-1;;;;;178:32:1;;;160:51;;148:2;133:18;5130:63:0;;;;;;;;6771:83;;;;;;;;;;-1:-1:-1;6841:5:0;;;;;;;;;;;;-1:-1:-1;;;6841:5:0;;;;6771:83;;;;;;;:::i;8741:159::-;;;;;;;;;;-1:-1:-1;8741:159:0;;;;;:::i;:::-;;:::i;:::-;;;1535:14:1;;1528:22;1510:41;;1498:2;1483:18;8741:159:0;1370:187:1;16097:154:0;;;;;;;;;;-1:-1:-1;16097:154:0;;;;;:::i;:::-;;:::i;:::-;;5310:41;;;;;;;;;;-1:-1:-1;5310:41:0;;;;-1:-1:-1;;;;;5310:41:0;;;7052:100;;;;;;;;;;-1:-1:-1;7132:12:0;;7052:100;;;2127:25:1;;;2115:2;2100:18;7052:100:0;1981:177:1;8908:262:0;;;;;;;;;;-1:-1:-1;8908:262:0;;;;;:::i;:::-;;:::i;6961:83::-;;;;;;;;;;-1:-1:-1;6961:83:0;;4807:1;2766:36:1;;2754:2;2739:18;6961:83:0;2624:184:1;15661:274:0;;;;;;;;;;-1:-1:-1;15661:274:0;;;;;:::i;:::-;;:::i;5358:28::-;;;;;;;;;;-1:-1:-1;5358:28:0;;;;-1:-1:-1;;;;;5358:28:0;;;7289:124;;;;;;;;;;-1:-1:-1;7289:124:0;;;;;:::i;:::-;-1:-1:-1;;;;;7378:27:0;7354:4;7378:27;;;:18;:27;;;;;;;;;7289:124;14876:120;;;;;;;;;;-1:-1:-1;14876:120:0;;;;;:::i;:::-;;:::i;14736:132::-;;;;;;;;;;-1:-1:-1;14736:132:0;;;;;:::i;:::-;;:::i;7162:119::-;;;;;;;;;;-1:-1:-1;7162:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;7255:18:0;7228:7;7255:18;;;:9;:18;;;;;;;7162:119;2754:94;;;;;;;;;;;;;:::i;5622:37::-;;;;;;;;;;-1:-1:-1;5622:37:0;;;;;;;;;;;6676:83;;;;;;;;;;-1:-1:-1;6717:7:0;2604:6;-1:-1:-1;;;;;2604:6:0;6676:83;;5553:28;;;;;;;;;;-1:-1:-1;5553:28:0;;;;;;;;6866:87;;;;;;;;;;-1:-1:-1;6938:7:0;;;;;;;;;;;;-1:-1:-1;;;6938:7:0;;;;6866:87;;15214:89;;;;;;;;;;-1:-1:-1;15214:89:0;;;;;:::i;:::-;;:::i;8159:423::-;;;;;;;;;;-1:-1:-1;8159:423:0;;;;;:::i;:::-;;:::i;7421:112::-;;;;;;;;;;-1:-1:-1;7421:112:0;;;;;:::i;:::-;-1:-1:-1;;;;;7504:21:0;7480:4;7504:21;;;:12;:21;;;;;;;;;7421:112;7873:276;;;;;;;;;;-1:-1:-1;8044:15:0;;8086:14;;8127;;7873:276;;;4258:25:1;;;4314:2;4299:18;;4292:34;;;;4342:18;;;4335:34;4246:2;4231:18;7873:276:0;4056:319:1;14412:206:0;;;;;;;;;;-1:-1:-1;14412:206:0;;;;;:::i;:::-;;:::i;15431:222::-;;;;;;;;;;-1:-1:-1;15431:222:0;;;;;:::i;:::-;;:::i;8590:143::-;;;;;;;;;;-1:-1:-1;8590:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;8698:18:0;;;8671:7;8698:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8590:143;15004:202;;;;;;;;;;-1:-1:-1;15004:202:0;;;;;:::i;:::-;;:::i;2856:192::-;;;;;;;;;;-1:-1:-1;2856:192:0;;;;;:::i;:::-;;:::i;15311:112::-;;;;;;;;;;-1:-1:-1;15311:112:0;;;;;:::i;:::-;;:::i;5588:27::-;;;;;;;;;;-1:-1:-1;5588:27:0;;;;;;;;;;;15943:144;;;;;;;;;;-1:-1:-1;15943:144:0;;;;;:::i;:::-;;:::i;7541:324::-;;;;;;;;;;-1:-1:-1;7735:11:0;;7772:13;;7808:10;;7844:13;;7541:324;;;6332:25:1;;;6388:2;6373:18;;6366:34;;;;6416:18;;;6409:34;6474:2;6459:18;;6452:34;6319:3;6304:19;7541:324:0;6101:391:1;14627:101:0;;;;;;;;;;-1:-1:-1;14671:7:0;:14;;-1:-1:-1;;14696:24:0;;;;;16097:154;8741:159;8816:4;8833:37;8842:10;8854:7;8863:6;8833:8;:37::i;:::-;-1:-1:-1;8888:4:0;8741:159;;;;;:::o;16097:154::-;2577:7;2604:6;-1:-1:-1;;;;;2604:6:0;934:10;2666:23;2658:68;;;;-1:-1:-1;;;2658:68:0;;;;;;;:::i;:::-;;;;;;;;;16172:15:::1;:28:::0;;;16211:14:::1;:32:::0;16097:154::o;8908:262::-;-1:-1:-1;;;;;9052:19:0;;9006:4;9052:19;;;:11;:19;;;;;;;;9040:10;9052:31;;;;;;;;9023:70;;9032:6;;9052:40;;9086:6;;9052:40;:::i;:::-;9023:8;:70::i;:::-;9104:36;9114:6;9122:9;9133:6;9104:9;:36::i;:::-;-1:-1:-1;9158:4:0;8908:262;;;;;:::o;15661:274::-;2577:7;2604:6;-1:-1:-1;;;;;2604:6:0;934:10;2666:23;2658:68;;;;-1:-1:-1;;;2658:68:0;;;;;;;:::i;:::-;15802:13:::1;4807:1;15802:2;:13;:::i;:::-;15790:25;::::0;:9;:25:::1;:::i;:::-;15777:10;:38:::0;15857:13:::1;4807:1;15857:2;:13;:::i;:::-;15842:28;::::0;:12;:28:::1;:::i;:::-;15826:13;:44:::0;15914:13:::1;4807:1;15914:2;:13;:::i;:::-;15898:29;::::0;:13;:29:::1;:::i;:::-;15881:14;:46:::0;-1:-1:-1;;;15661:274:0:o;14876:120::-;2577:7;2604:6;-1:-1:-1;;;;;2604:6:0;934:10;2666:23;2658:68;;;;-1:-1:-1;;;2658:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14958:21:0;;;::::1;;::::0;;;:12:::1;:21;::::0;;;;:30;;-1:-1:-1;;14958:30:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14876:120::o;14736:132::-;2577:7;2604:6;-1:-1:-1;;;;;2604:6:0;934:10;2666:23;2658:68;;;;-1:-1:-1;;;2658:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14824:27:0;;;::::1;;::::0;;;:18:::1;:27;::::0;;;;:36;;-1:-1:-1;;14824:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14736:132::o;2754:94::-;2577:7;2604:6;-1:-1:-1;;;;;2604:6:0;934:10;2666:23;2658:68;;;;-1:-1:-1;;;2658:68:0;;;;;;;:::i;:::-;2819:21:::1;2837:1;2819:9;:21::i;:::-;2754:94::o:0;15214:89::-;2577:7;2604:6;-1:-1:-1;;;;;2604:6:0;934:10;2666:23;2658:68;;;;-1:-1:-1;;;2658:68:0;;;;;;;:::i;:::-;15277:9:::1;:18:::0;;-1:-1:-1;;15277:18:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15214:89::o;8159:423::-;8272:13;;8237:4;;-1:-1:-1;;;;;8259:26:0;;;8272:13;;8259:26;;;;:50;;-1:-1:-1;2577:7:0;2604:6;-1:-1:-1;;;;;8289:20:0;;;2604:6;;8289:20;;8259:50;:84;;;;-1:-1:-1;;;;;;8314:29:0;;;;;;:18;:29;;;;;;;;8313:30;8259:84;8256:234;;;8402:10;;-1:-1:-1;;;;;8369:20:0;;;;;;:9;:20;;;;;;:29;;8392:6;;8369:29;:::i;:::-;:43;;8361:115;;;;-1:-1:-1;;;8361:115:0;;9011:2:1;8361:115:0;;;8993:21:1;9050:2;9030:18;;;9023:30;9089:34;9069:18;;;9062:62;9160:29;9140:18;;;9133:57;9207:19;;8361:115:0;8809:423:1;8361:115:0;8502:40;8512:10;8524:9;8535:6;8502:9;:40::i;14412:206::-;2577:7;2604:6;-1:-1:-1;;;;;2604:6:0;934:10;2666:23;2658:68;;;;-1:-1:-1;;;2658:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14491:24:0;::::1;14483:52;;;::::0;-1:-1:-1;;;14483:52:0;;9439:2:1;14483:52:0::1;::::0;::::1;9421:21:1::0;9478:2;9458:18;;;9451:30;-1:-1:-1;;;9497:18:1;;;9490:45;9552:18;;14483:52:0::1;9237:339:1::0;14483:52:0::1;14546:3;:16:::0;;-1:-1:-1;;;;;14546:16:0;;::::1;-1:-1:-1::0;;;;;;14546:16:0;;::::1;::::0;::::1;::::0;;:3:::1;14573:30:::0;;;:18:::1;:30;::::0;;;;:37;;-1:-1:-1;;14573:37:0::1;14546:16:::0;14573:37:::1;::::0;;14412:206::o;15431:222::-;2577:7;2604:6;-1:-1:-1;;;;;2604:6:0;934:10;2666:23;2658:68;;;;-1:-1:-1;;;2658:68:0;;;;;;;:::i;:::-;15548:3:::1;15527:13;7132:12:::0;;;7052:100;15527:13:::1;:17;::::0;15543:1:::1;15527:17;:::i;:::-;15526:25;;;;:::i;:::-;15511:11;:40;;15503:94;;;::::0;-1:-1:-1;;;15503:94:0;;10005:2:1;15503:94:0::1;::::0;::::1;9987:21:1::0;10044:2;10024:18;;;10017:30;10083:34;10063:18;;;10056:62;-1:-1:-1;;;10134:18:1;;;10127:39;10183:19;;15503:94:0::1;9803:405:1::0;15503:94:0::1;15632:13;4807:1;15632:2;:13;:::i;:::-;15618:27;::::0;:11;:27:::1;:::i;:::-;15608:7;:37:::0;-1:-1:-1;15431:222:0:o;15004:202::-;2577:7;2604:6;-1:-1:-1;;;;;2604:6:0;934:10;2666:23;2658:68;;;;-1:-1:-1;;;2658:68:0;;;;;;;:::i;:::-;15099:9:::1;15095:104;15118:8;:15;15114:1;:19;15095:104;;;15182:5;15154:12;:25;15167:8;15176:1;15167:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;15154:25:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;15154:25:0;:33;;-1:-1:-1;;15154:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15135:3;::::1;::::0;::::1;:::i;:::-;;;;15095:104;;;;15004:202:::0;;:::o;2856:192::-;2577:7;2604:6;-1:-1:-1;;;;;2604:6:0;934:10;2666:23;2658:68;;;;-1:-1:-1;;;2658:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2945:22:0;::::1;2937:73;;;::::0;-1:-1:-1;;;2937:73:0;;10687:2:1;2937:73:0::1;::::0;::::1;10669:21:1::0;10726:2;10706:18;;;10699:30;10765:34;10745:18;;;10738:62;-1:-1:-1;;;10816:18:1;;;10809:36;10862:19;;2937:73:0::1;10485:402:1::0;2937:73:0::1;3021:19;3031:8;3021:9;:19::i;:::-;2856:192:::0;:::o;15311:112::-;2577:7;2604:6;-1:-1:-1;;;;;2604:6:0;934:10;2666:23;2658:68;;;;-1:-1:-1;;;2658:68:0;;;;;;;:::i;:::-;15389:12:::1;:26:::0;15311:112::o;15943:144::-;2577:7;2604:6;-1:-1:-1;;;;;2604:6:0;934:10;2666:23;2658:68;;;;-1:-1:-1;;;2658:68:0;;;;;;;:::i;:::-;16017:11:::1;:24:::0;;;16052:13:::1;:27:::0;15943:144::o;9178:341::-;-1:-1:-1;;;;;9271:19:0;;9263:70;;;;-1:-1:-1;;;9263:70:0;;11094:2:1;9263:70:0;;;11076:21:1;11133:2;11113:18;;;11106:30;11172:34;11152:18;;;11145:62;-1:-1:-1;;;11223:18:1;;;11216:36;11269:19;;9263:70:0;10892:402:1;9263:70:0;-1:-1:-1;;;;;9352:21:0;;9344:70;;;;-1:-1:-1;;;9344:70:0;;11501:2:1;9344:70:0;;;11483:21:1;11540:2;11520:18;;;11513:30;11579:34;11559:18;;;11552:62;-1:-1:-1;;;11630:18:1;;;11623:34;11674:19;;9344:70:0;11299:400:1;9344:70:0;-1:-1:-1;;;;;9427:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9479:32;;2127:25:1;;;9479:32:0;;2100:18:1;9479:32:0;;;;;;;9178:341;;;:::o;9527:3319::-;-1:-1:-1;;;;;9626:20:0;;9618:72;;;;-1:-1:-1;;;9618:72:0;;11906:2:1;9618:72:0;;;11888:21:1;11945:2;11925:18;;;11918:30;11984:34;11964:18;;;11957:62;-1:-1:-1;;;12035:18:1;;;12028:37;12082:19;;9618:72:0;11704:403:1;9618:72:0;-1:-1:-1;;;;;9709:23:0;;9701:73;;;;-1:-1:-1;;;9701:73:0;;12314:2:1;9701:73:0;;;12296:21:1;12353:2;12333:18;;;12326:30;12392:34;12372:18;;;12365:62;-1:-1:-1;;;12443:18:1;;;12436:35;12488:19;;9701:73:0;12112:401:1;9701:73:0;9802:1;9793:6;:10;9785:73;;;;-1:-1:-1;;;9785:73:0;;12720:2:1;9785:73:0;;;12702:21:1;12759:2;12739:18;;;12732:30;12798:34;12778:18;;;12771:62;-1:-1:-1;;;12849:18:1;;;12842:48;12907:19;;9785:73:0;12518:414:1;9785:73:0;9873:7;;;;;;;9869:155;;-1:-1:-1;;;;;9890:26:0;;;;;;:18;:26;;;;;;;;;:59;;-1:-1:-1;;;;;;9920:29:0;;;;;;:18;:29;;;;;;;;9890:59;:83;;;-1:-1:-1;;;;;;9953:20:0;;;;;;:12;:20;;;;;;;;9890:83;:110;;;-1:-1:-1;;;;;;9977:23:0;;;;;;:12;:23;;;;;;;;9890:110;9882:140;;;;-1:-1:-1;;;9882:140:0;;13139:2:1;9882:140:0;;;13121:21:1;13178:2;13158:18;;;13151:30;-1:-1:-1;;;13197:18:1;;;13190:47;13254:18;;9882:140:0;12937:341:1;9882:140:0;10038:7;;;;;;;10037:8;:38;;;;-1:-1:-1;10062:13:0;;-1:-1:-1;;;;;10049:26:0;;;10062:13;;10049:26;;10037:38;:65;;;;-1:-1:-1;10089:13:0;;-1:-1:-1;;;;;10079:23:0;;;10089:13;;10079:23;;10037:65;10034:135;;;10113:17;;;;;;;10105:62;;;;-1:-1:-1;;;10105:62:0;;13485:2:1;10105:62:0;;;13467:21:1;;;13504:18;;;13497:30;13563:34;13543:18;;;13536:62;13615:18;;10105:62:0;13283:356:1;10105:62:0;10235:13;;10199:4;;-1:-1:-1;;;;;10222:26:0;;;10235:13;;10222:26;:47;;;;-1:-1:-1;2577:7:0;2604:6;-1:-1:-1;;;;;10252:17:0;;;2604:6;;10252:17;10222:47;10218:230;;;-1:-1:-1;;;;;10288:17:0;;;;;;:9;:17;;;;;:27;;10309:6;;10288:17;:27;;10309:6;;10288:27;:::i;:::-;;;;-1:-1:-1;;;;;;;10330:20:0;;;;;;:9;:20;;;;;:30;;10354:6;;10330:20;:30;;10354:6;;10330:30;:::i;:::-;;;;;;;;10397:9;-1:-1:-1;;;;;10380:35:0;10389:6;-1:-1:-1;;;;;10380:35:0;-1:-1:-1;;;;;;;;;;;10408:6:0;10380:35;;;;2127:25:1;;2115:2;2100:18;;1981:177;10380:35:0;;;;;;;;10430:7;9527:3319;;;:::o;10218:230::-;10495:13;;-1:-1:-1;;;;;10482:26:0;;;10495:13;;10482:26;:57;;;;-1:-1:-1;;;;;;10513:26:0;;;;;;:18;:26;;;;;;;;10512:27;10482:57;:78;;;;-1:-1:-1;2577:7:0;2604:6;-1:-1:-1;;;;;10543:17:0;;;2604:6;;10543:17;;10482:78;10479:362;;;10600:14;;10590:6;:24;;10582:66;;;;-1:-1:-1;;;10582:66:0;;13846:2:1;10582:66:0;;;13828:21:1;13885:2;13865:18;;;13858:30;13924:31;13904:18;;;13897:59;13973:18;;10582:66:0;13644:353:1;10582:66:0;10669:10;:17;;-1:-1:-1;;10669:17:0;;;;;;;;10725:9;:48;;;;-1:-1:-1;10766:7:0;;10756:4;7228:7;7255:18;;;:9;:18;;;;;;10738:35;;10725:48;10722:106;;;10799:9;:7;:9::i;:::-;10881:13;;-1:-1:-1;;;;;10871:23:0;;;10881:13;;10871:23;:57;;;;-1:-1:-1;;;;;;10899:29:0;;;;;;:18;:29;;;;;;;;10898:30;10871:57;:81;;;;-1:-1:-1;2577:7:0;2604:6;-1:-1:-1;;;;;10932:20:0;;;2604:6;;10932:20;;10871:81;10868:212;;;11008:13;;10998:6;:23;;10990:64;;;;-1:-1:-1;;;10990:64:0;;14204:2:1;10990:64:0;;;14186:21:1;14243:2;14223:18;;;14216:30;14282;14262:18;;;14255:58;14330:18;;10990:64:0;14002:352:1;10990:64:0;-1:-1:-1;;;;;11096:26:0;;;;;;:18;:26;;;;;;;;;:59;;-1:-1:-1;;;;;;11126:29:0;;;;;;:18;:29;;;;;;;;11096:59;11092:88;;;-1:-1:-1;11172:5:0;11092:88;11207:13;;-1:-1:-1;;;;;11194:26:0;;;11207:13;;11194:26;;;;:53;;-1:-1:-1;11234:13:0;;-1:-1:-1;;;;;11224:23:0;;;11234:13;;11224:23;;11194:53;11190:82;;;-1:-1:-1;11264:5:0;11190:82;11288:10;11284:1555;;;11325:10;;;;;;;11321:1270;;11361:22;11411:3;11395:13;;11386:6;:22;;;;:::i;:::-;:28;;;;:::i;:::-;11361:53;-1:-1:-1;11437:22:0;11462:23;11361:53;11462:6;:23;:::i;:::-;11596:4;11578:24;;;;:9;:24;;;;;;11437:48;;-1:-1:-1;11578:44:0;;11607:14;11578:28;:44::i;:::-;11569:4;11551:24;;;;:9;:24;;;;;;:71;;;;-1:-1:-1;;;;;11665:17:0;;;;;;:29;;11687:6;11665:21;:29::i;:::-;-1:-1:-1;;;;;11645:17:0;;;;;;;:9;:17;;;;;;:49;;;;11740:20;;;;;;;:40;;11765:14;11740:24;:40::i;:::-;-1:-1:-1;;;;;11717:20:0;;;;;;;:9;:20;;;;;;;:63;;;;11810:43;;;;;;-1:-1:-1;;;;;;;;;;;11810:43:0;;;11838:14;2127:25:1;;2115:2;2100:18;;1981:177;11810:43:0;;;;;;;;11881:47;;2127:25:1;;;11906:4:0;;-1:-1:-1;;;;;11881:47:0;;;-1:-1:-1;;;;;;;;;;;11881:47:0;2115:2:1;2100:18;11881:47:0;;;;;;;11336:614;;11284:1555;;11321:1270;11979:22;12030:3;12013:14;;12004:6;:23;;;;:::i;:::-;:29;;;;:::i;:::-;11979:54;-1:-1:-1;12056:22:0;12081:23;11979:54;12081:6;:23;:::i;:::-;12196:4;12178:24;;;;:9;:24;;;;;;12056:48;;-1:-1:-1;12178:44:0;;12207:14;12178:28;:44::i;:::-;12169:4;12151:24;;;;:9;:24;;;;;;:71;;;;-1:-1:-1;;;;;12265:17:0;;;;;;:29;;12287:6;12265:21;:29::i;:::-;-1:-1:-1;;;;;12245:17:0;;;;;;;:9;:17;;;;;;:49;;;;12340:20;;;;;;;:40;;12365:14;12340:24;:40::i;:::-;-1:-1:-1;;;;;12317:20:0;;;;;;;:9;:20;;;;;;;:63;;;;12410:43;;;;;;-1:-1:-1;;;;;;;;;;;12410:43:0;;;12438:14;2127:25:1;;2115:2;2100:18;;1981:177;12410:43:0;;;;;;;;12481:47;;2127:25:1;;;12506:4:0;;-1:-1:-1;;;;;12481:47:0;;;-1:-1:-1;;;;;;;;;;;12481:47:0;2115:2:1;2100:18;12481:47:0;;;;;;;-1:-1:-1;;12553:10:0;:18;;-1:-1:-1;;12553:18:0;;;11284:1555;;;-1:-1:-1;;;;;12661:17:0;;;;;;:9;:17;;;;;;:29;;12683:6;12661:21;:29::i;:::-;-1:-1:-1;;;;;12641:17:0;;;;;;;:9;:17;;;;;;:49;;;;12732:20;;;;;;;:32;;12757:6;12732:24;:32::i;:::-;-1:-1:-1;;;;;12709:20:0;;;;;;;:9;:20;;;;;;;:55;;;;12790:35;;;;;;-1:-1:-1;;;;;;;;;;;12790:35:0;;;12818:6;2127:25:1;;2115:2;2100:18;;1981:177;11284:1555:0;9605:3241;9527:3319;;;:::o;3056:173::-;3112:16;3131:6;;-1:-1:-1;;;;;3148:17:0;;;-1:-1:-1;;;;;;3148:17:0;;;;;;3181:40;;3131:6;;;;;;;3181:40;;3112:16;3181:40;3101:128;3056:173;:::o;13532:836::-;13621:4;13572:28;7255:18;;;:9;:18;;;;;;13643:24;;13640:707;;13689:10;;;;;;;13686:560;;;13724:24;;13721:508;;13841:12;;13832:4;13794:17;7255:18;;;:9;:18;;;;;;13794:17;;13856:3;;13814:39;;;;:::i;:::-;:45;;;;:::i;:::-;13794:65;-1:-1:-1;13794:65:0;13935:24;13794:65;13935:16;:24::i;:::-;14010:21;14060:19;;14056:66;;14090:3;;14082:38;;-1:-1:-1;;;;;14090:3:0;;;;14082:38;;;;;14104:15;;14090:3;14082:38;14090:3;14082:38;14104:15;14090:3;14082:38;;;;;;;;;;;;;;;;;;;;;13749:394;;;2856:192;:::o;13721:508::-;14172:37;;-1:-1:-1;;;14172:37:0;;14561:2:1;14172:37:0;;;14543:21:1;14600:2;14580:18;;;14573:30;14639:29;14619:18;;;14612:57;14686:18;;14172:37:0;14359:351:1;13640:707:0;14279:38;;-1:-1:-1;;;14279:38:0;;14917:2:1;14279:38:0;;;14899:21:1;14956:2;14936:18;;;14929:30;14995;14975:18;;;14968:58;15043:18;;14279:38:0;14715:352:1;1108:179:0;1166:7;;1198:5;1202:1;1198;:5;:::i;:::-;1186:17;;1227:1;1222;:6;;1214:46;;;;-1:-1:-1;;;1214:46:0;;15274:2:1;1214:46:0;;;15256:21:1;15313:2;15293:18;;;15286:30;15352:29;15332:18;;;15325:57;15399:18;;1214:46:0;15072:351:1;1214:46:0;1278:1;1108:179;-1:-1:-1;;;1108:179:0:o;1296:136::-;1354:7;1381:43;1385:1;1388;1381:43;;;;;;;;;;;;;;;;;:3;:43::i;12856:666::-;13016:16;;;13030:1;13016:16;;;;;;;;12992:21;;13016:16;;;;;;;;;;-1:-1:-1;13016:16:0;12992:40;;13061:4;13043;13048:1;13043:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13043:23:0;;;:7;;;;;;;;;;:23;;;;13087:15;;:22;;;-1:-1:-1;;;13087:22:0;;;;:15;;;;;:20;;:22;;;;;13043:7;;13087:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13077:4;13082:1;13077:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13077:32:0;;;:7;;;;;;;;;:32;13221:15;;13189:62;;13206:4;;13221:15;13239:11;13189:8;:62::i;:::-;13290:15;;:224;;-1:-1:-1;;;13290:224:0;;-1:-1:-1;;;;;13290:15:0;;;;:66;;:224;;13371:11;;13290:15;;13441:4;;13468;;13488:15;;13290:224;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12911:611;12856:666;:::o;1441:224::-;1561:7;1597:12;1589:6;;;;1581:29;;;;-1:-1:-1;;;1581:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1621:9:0;1633:5;1637:1;1633;:5;:::i;:::-;1621:17;1441:224;-1:-1:-1;;;;;1441:224:0:o;222:548:1:-;334:4;363:2;392;381:9;374:21;424:6;418:13;467:6;462:2;451:9;447:18;440:34;492:1;502:140;516:6;513:1;510:13;502:140;;;611:14;;;607:23;;601:30;577:17;;;596:2;573:26;566:66;531:10;;502:140;;;506:3;691:1;686:2;677:6;666:9;662:22;658:31;651:42;761:2;754;750:7;745:2;737:6;733:15;729:29;718:9;714:45;710:54;702:62;;;;222:548;;;;:::o;775:131::-;-1:-1:-1;;;;;850:31:1;;840:42;;830:70;;896:1;893;886:12;911:134;979:20;;1008:31;979:20;1008:31;:::i;:::-;911:134;;;:::o;1050:315::-;1118:6;1126;1179:2;1167:9;1158:7;1154:23;1150:32;1147:52;;;1195:1;1192;1185:12;1147:52;1234:9;1221:23;1253:31;1278:5;1253:31;:::i;:::-;1303:5;1355:2;1340:18;;;;1327:32;;-1:-1:-1;;;1050:315:1:o;1562:180::-;1621:6;1674:2;1662:9;1653:7;1649:23;1645:32;1642:52;;;1690:1;1687;1680:12;1642:52;-1:-1:-1;1713:23:1;;1562:180;-1:-1:-1;1562:180:1:o;2163:456::-;2240:6;2248;2256;2309:2;2297:9;2288:7;2284:23;2280:32;2277:52;;;2325:1;2322;2315:12;2277:52;2364:9;2351:23;2383:31;2408:5;2383:31;:::i;:::-;2433:5;-1:-1:-1;2490:2:1;2475:18;;2462:32;2503:33;2462:32;2503:33;:::i;:::-;2163:456;;2555:7;;-1:-1:-1;;;2609:2:1;2594:18;;;;2581:32;;2163:456::o;2813:316::-;2890:6;2898;2906;2959:2;2947:9;2938:7;2934:23;2930:32;2927:52;;;2975:1;2972;2965:12;2927:52;-1:-1:-1;;2998:23:1;;;3068:2;3053:18;;3040:32;;-1:-1:-1;3119:2:1;3104:18;;;3091:32;;2813:316;-1:-1:-1;2813:316:1:o;3134:247::-;3193:6;3246:2;3234:9;3225:7;3221:23;3217:32;3214:52;;;3262:1;3259;3252:12;3214:52;3301:9;3288:23;3320:31;3345:5;3320:31;:::i;3386:160::-;3451:20;;3507:13;;3500:21;3490:32;;3480:60;;3536:1;3533;3526:12;3551:315;3616:6;3624;3677:2;3665:9;3656:7;3652:23;3648:32;3645:52;;;3693:1;3690;3683:12;3645:52;3732:9;3719:23;3751:31;3776:5;3751:31;:::i;:::-;3801:5;-1:-1:-1;3825:35:1;3856:2;3841:18;;3825:35;:::i;:::-;3815:45;;3551:315;;;;;:::o;3871:180::-;3927:6;3980:2;3968:9;3959:7;3955:23;3951:32;3948:52;;;3996:1;3993;3986:12;3948:52;4019:26;4035:9;4019:26;:::i;4380:388::-;4448:6;4456;4509:2;4497:9;4488:7;4484:23;4480:32;4477:52;;;4525:1;4522;4515:12;4477:52;4564:9;4551:23;4583:31;4608:5;4583:31;:::i;:::-;4633:5;-1:-1:-1;4690:2:1;4675:18;;4662:32;4703:33;4662:32;4703:33;:::i;:::-;4755:7;4745:17;;;4380:388;;;;;:::o;4773:127::-;4834:10;4829:3;4825:20;4822:1;4815:31;4865:4;4862:1;4855:15;4889:4;4886:1;4879:15;4905:1191;4995:6;5003;5056:2;5044:9;5035:7;5031:23;5027:32;5024:52;;;5072:1;5069;5062:12;5024:52;5112:9;5099:23;5141:18;5182:2;5174:6;5171:14;5168:34;;;5198:1;5195;5188:12;5168:34;5236:6;5225:9;5221:22;5211:32;;5281:7;5274:4;5270:2;5266:13;5262:27;5252:55;;5303:1;5300;5293:12;5252:55;5339:2;5326:16;5361:4;5384:2;5380;5377:10;5374:36;;;5390:18;;:::i;:::-;5436:2;5433:1;5429:10;5468:2;5462:9;5531:2;5527:7;5522:2;5518;5514:11;5510:25;5502:6;5498:38;5586:6;5574:10;5571:22;5566:2;5554:10;5551:18;5548:46;5545:72;;;5597:18;;:::i;:::-;5633:2;5626:22;5683:18;;;5717:15;;;;-1:-1:-1;5759:11:1;;;5755:20;;;5787:19;;;5784:39;;;5819:1;5816;5809:12;5784:39;5843:11;;;;5863:148;5879:6;5874:3;5871:15;5863:148;;;5945:23;5964:3;5945:23;:::i;:::-;5933:36;;5896:12;;;;5989;;;;5863:148;;;6030:6;-1:-1:-1;6055:35:1;;-1:-1:-1;6071:18:1;;;6055:35;:::i;:::-;6045:45;;;;;;4905:1191;;;;;:::o;6497:356::-;6699:2;6681:21;;;6718:18;;;6711:30;6777:34;6772:2;6757:18;;6750:62;6844:2;6829:18;;6497:356::o;6858:127::-;6919:10;6914:3;6910:20;6907:1;6900:31;6950:4;6947:1;6940:15;6974:4;6971:1;6964:15;6990:128;7057:9;;;7078:11;;;7075:37;;;7092:18;;:::i;7123:422::-;7212:1;7255:5;7212:1;7269:270;7290:7;7280:8;7277:21;7269:270;;;7349:4;7345:1;7341:6;7337:17;7331:4;7328:27;7325:53;;;7358:18;;:::i;:::-;7408:7;7398:8;7394:22;7391:55;;;7428:16;;;;7391:55;7507:22;;;;7467:15;;;;7269:270;;;7273:3;7123:422;;;;;:::o;7550:806::-;7599:5;7629:8;7619:80;;-1:-1:-1;7670:1:1;7684:5;;7619:80;7718:4;7708:76;;-1:-1:-1;7755:1:1;7769:5;;7708:76;7800:4;7818:1;7813:59;;;;7886:1;7881:130;;;;7793:218;;7813:59;7843:1;7834:10;;7857:5;;;7881:130;7918:3;7908:8;7905:17;7902:43;;;7925:18;;:::i;:::-;-1:-1:-1;;7981:1:1;7967:16;;7996:5;;7793:218;;8095:2;8085:8;8082:16;8076:3;8070:4;8067:13;8063:36;8057:2;8047:8;8044:16;8039:2;8033:4;8030:12;8026:35;8023:77;8020:159;;;-1:-1:-1;8132:19:1;;;8164:5;;8020:159;8211:34;8236:8;8230:4;8211:34;:::i;:::-;8281:6;8277:1;8273:6;8269:19;8260:7;8257:32;8254:58;;;8292:18;;:::i;:::-;8330:20;;7550:806;-1:-1:-1;;;7550:806:1:o;8361:140::-;8419:5;8448:47;8489:4;8479:8;8475:19;8469:4;8448:47;:::i;8506:168::-;8579:9;;;8610;;8627:15;;;8621:22;;8607:37;8597:71;;8648:18;;:::i;8679:125::-;8744:9;;;8765:10;;;8762:36;;;8778:18;;:::i;9581:217::-;9621:1;9647;9637:132;;9691:10;9686:3;9682:20;9679:1;9672:31;9726:4;9723:1;9716:15;9754:4;9751:1;9744:15;9637:132;-1:-1:-1;9783:9:1;;9581:217::o;10213:127::-;10274:10;10269:3;10265:20;10262:1;10255:31;10305:4;10302:1;10295:15;10329:4;10326:1;10319:15;10345:135;10384:3;10405:17;;;10402:43;;10425:18;;:::i;:::-;-1:-1:-1;10472:1:1;10461:13;;10345:135::o;15428:251::-;15498:6;15551:2;15539:9;15530:7;15526:23;15522:32;15519:52;;;15567:1;15564;15557:12;15519:52;15599:9;15593:16;15618:31;15643:5;15618:31;:::i;15684:980::-;15946:4;15994:3;15983:9;15979:19;16025:6;16014:9;16007:25;16051:2;16089:6;16084:2;16073:9;16069:18;16062:34;16132:3;16127:2;16116:9;16112:18;16105:31;16156:6;16191;16185:13;16222:6;16214;16207:22;16260:3;16249:9;16245:19;16238:26;;16299:2;16291:6;16287:15;16273:29;;16320:1;16330:195;16344:6;16341:1;16338:13;16330:195;;;16409:13;;-1:-1:-1;;;;;16405:39:1;16393:52;;16500:15;;;;16465:12;;;;16441:1;16359:9;16330:195;;;-1:-1:-1;;;;;;;16581:32:1;;;;16576:2;16561:18;;16554:60;-1:-1:-1;;;16645:3:1;16630:19;16623:35;16542:3;15684:980;-1:-1:-1;;;15684:980:1:o

Swarm Source

ipfs://4e01e72a9154290b05406a2dee7fd8ed27c2063e02e80ed8580a270c45447c21

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  ]
[ 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.