ETH Price: $3,321.13 (-0.75%)
 

Overview

ETH Balance

0.000096857008278456 ETH

Eth Value

$0.32 (@ $3,321.13/ETH)

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer198510002024-05-12 2:35:23242 days ago1715481323IN
0x679eC51c...6744f5ac6
0 ETH0.000276194.23175653
Approve185687072023-11-14 7:39:35422 days ago1699947575IN
0x679eC51c...6744f5ac6
0 ETH0.0008043633.15452198
Approve177789982023-07-26 18:18:47532 days ago1690395527IN
0x679eC51c...6744f5ac6
0 ETH0.0014888431.98724766
Include In Fee177029282023-07-16 2:34:11543 days ago1689474851IN
0x679eC51c...6744f5ac6
0 ETH0.0003319613.68477852
Set Sell Fee Per...177029252023-07-16 2:33:35543 days ago1689474815IN
0x679eC51c...6744f5ac6
0 ETH0.0005121114.33771405
Transfer177028822023-07-16 2:24:59543 days ago1689474299IN
0x679eC51c...6744f5ac6
0 ETH0.0008923720.51758258
Transfer177028662023-07-16 2:21:35543 days ago1689474095IN
0x679eC51c...6744f5ac6
0 ETH0.0008115618.6544172
Transfer177028492023-07-16 2:18:11543 days ago1689473891IN
0x679eC51c...6744f5ac6
0 ETH0.0008364618.30696306
Transfer177028462023-07-16 2:17:35543 days ago1689473855IN
0x679eC51c...6744f5ac6
0 ETH0.0008251718.97785356
Transfer172511182023-05-13 12:41:23607 days ago1683981683IN
0x679eC51c...6744f5ac6
0 ETH0.0016101737.27076877
Transfer172511082023-05-13 12:39:23607 days ago1683981563IN
0x679eC51c...6744f5ac6
0 ETH0.0017196539.79397969
Transfer172510872023-05-13 12:35:11607 days ago1683981311IN
0x679eC51c...6744f5ac6
0 ETH0.001878748.4827228
Approve172451692023-05-12 15:58:23608 days ago1683907103IN
0x679eC51c...6744f5ac6
0 ETH0.00693522149.00035044
Approve172450632023-05-12 15:37:11608 days ago1683905831IN
0x679eC51c...6744f5ac6
0 ETH0.0031128666.87868241
Approve172449932023-05-12 15:22:47608 days ago1683904967IN
0x679eC51c...6744f5ac6
0 ETH0.0029042362.39626418
Approve172449672023-05-12 15:17:35608 days ago1683904655IN
0x679eC51c...6744f5ac6
0 ETH0.0034869575.42127312
Approve172449542023-05-12 15:14:47608 days ago1683904487IN
0x679eC51c...6744f5ac6
0 ETH0.0033193171.31404086
Set Sell Fee Per...172449162023-05-12 15:07:11608 days ago1683904031IN
0x679eC51c...6744f5ac6
0 ETH0.0029068182.35763771
Transfer From172399482023-05-11 22:16:23608 days ago1683843383IN
0x679eC51c...6744f5ac6
0 ETH0.0067348192.11517271
Approve172378182023-05-11 14:52:11609 days ago1683816731IN
0x679eC51c...6744f5ac6
0 ETH0.0060523130.03119317
Transfer172342052023-05-11 2:40:23609 days ago1683772823IN
0x679eC51c...6744f5ac6
0 ETH0.0044978366.56854702
Approve172321322023-05-10 19:41:23609 days ago1683747683IN
0x679eC51c...6744f5ac6
0 ETH0.00533298114.57702901
Approve172321202023-05-10 19:38:59609 days ago1683747539IN
0x679eC51c...6744f5ac6
0 ETH0.0051235110.07636417
Approve172288512023-05-10 8:34:47610 days ago1683707687IN
0x679eC51c...6744f5ac6
0 ETH0.0025439654.65608203
Approve172288152023-05-10 8:27:23610 days ago1683707243IN
0x679eC51c...6744f5ac6
0 ETH0.0025102553.93172561
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
172378572023-05-11 15:00:11609 days ago1683817211
0x679eC51c...6744f5ac6
0.00000271 ETH
172378572023-05-11 15:00:11609 days ago1683817211
0x679eC51c...6744f5ac6
0.0132663 ETH
172378572023-05-11 15:00:11609 days ago1683817211
0x679eC51c...6744f5ac6
0.0132663 ETH
172192572023-05-09 0:12:47611 days ago1683591167
0x679eC51c...6744f5ac6
0.00009414 ETH
172192572023-05-09 0:12:47611 days ago1683591167
0x679eC51c...6744f5ac6
0.03814467 ETH
172192572023-05-09 0:12:47611 days ago1683591167
0x679eC51c...6744f5ac6
0.03814467 ETH
170570792023-04-16 4:23:23634 days ago1681619003
0x679eC51c...6744f5ac6
0.00816881 ETH
170570792023-04-16 4:23:23634 days ago1681619003
0x679eC51c...6744f5ac6
0.00816881 ETH
170570672023-04-16 4:20:59634 days ago1681618859
0x679eC51c...6744f5ac6
0.01093429 ETH
170570672023-04-16 4:20:59634 days ago1681618859
0x679eC51c...6744f5ac6
0.01093429 ETH
170567782023-04-16 3:22:35634 days ago1681615355
0x679eC51c...6744f5ac6
0.01310045 ETH
170567782023-04-16 3:22:35634 days ago1681615355
0x679eC51c...6744f5ac6
0.01310045 ETH
170566152023-04-16 2:49:35634 days ago1681613375
0x679eC51c...6744f5ac6
0.01578398 ETH
170566152023-04-16 2:49:35634 days ago1681613375
0x679eC51c...6744f5ac6
0.01578398 ETH
170564762023-04-16 2:20:35634 days ago1681611635
0x679eC51c...6744f5ac6
0.01819674 ETH
170564762023-04-16 2:20:35634 days ago1681611635
0x679eC51c...6744f5ac6
0.01819674 ETH
170564562023-04-16 2:16:23634 days ago1681611383
0x679eC51c...6744f5ac6
0.01664365 ETH
170564562023-04-16 2:16:23634 days ago1681611383
0x679eC51c...6744f5ac6
0.01664365 ETH
170564252023-04-16 2:09:47634 days ago1681610987
0x679eC51c...6744f5ac6
0.0157456 ETH
170564252023-04-16 2:09:47634 days ago1681610987
0x679eC51c...6744f5ac6
0.0157456 ETH
170564222023-04-16 2:09:11634 days ago1681610951
0x679eC51c...6744f5ac6
0.01690787 ETH
170564222023-04-16 2:09:11634 days ago1681610951
0x679eC51c...6744f5ac6
0.01690787 ETH
170564182023-04-16 2:08:23634 days ago1681610903
0x679eC51c...6744f5ac6
0.01716299 ETH
170564182023-04-16 2:08:23634 days ago1681610903
0x679eC51c...6744f5ac6
0.01716299 ETH
170564092023-04-16 2:06:35634 days ago1681610795
0x679eC51c...6744f5ac6
0.0175789 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
TOKEN

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: Unlicensed

    pragma solidity ^0.8.4;

    interface IERC20 {
        
        function totalSupply() external view returns (uint256);
        function balanceOf(address account) external view returns (uint256);
        function transfer(address recipient, uint256 amount) external returns (bool);
        function allowance(address owner, address spender) external view returns (uint256);
        function approve(address spender, uint256 amount) external returns (bool);
        function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
        
        event Transfer(address indexed from, address indexed to, uint256 value);
        event Approval(address indexed owner, address indexed spender, uint256 value);
    }

    library SafeMath {
        
        function add(uint256 a, uint256 b) internal pure returns (uint256) {
            return a + b;
        }
        function sub(uint256 a, uint256 b) internal pure returns (uint256) {
            return a - b;
        }
        function mul(uint256 a, uint256 b) internal pure returns (uint256) {
            return a * b;
        }
        function div(uint256 a, uint256 b) internal pure returns (uint256) {
            return a / b;
        }
        function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
            unchecked {
                require(b <= a, errorMessage);
                return a - b;
            }
        }
        function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
            unchecked {
                require(b > 0, errorMessage);
                return a / b;
            }
        }
        
    }

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

        function _msgData() internal view virtual returns (bytes calldata) {
            this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
            return msg.data;
        }
    }

    abstract contract Ownable is Context {
        address internal _owner;
        address private _previousOwner;

        event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
        constructor () {
            _owner = _msgSender();
            emit OwnershipTransferred(address(0), _owner);
        }
        
        function owner() public view virtual 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;
        }
    }

    interface IERC20Metadata is IERC20 {
       function name() external view returns (string memory);
       function symbol() external view returns (string memory);
       function decimals() external view returns (uint8);
    }
    contract ERC20 is Context,Ownable, IERC20, IERC20Metadata {
        using SafeMath for uint256;

        mapping(address => uint256) private _balances;
        mapping(address => mapping(address => uint256)) private _allowances;

        uint256 private _totalSupply;

        string private _name;
        string private _symbol;

        constructor(string memory name_, string memory symbol_) {
            _name = name_;
            _symbol = symbol_;
        }

        function name() public view virtual override returns (string memory) {
            return _name;
        }

        function symbol() public view virtual override returns (string memory) {
            return _symbol;
        }

        function decimals() public view virtual override returns (uint8) {
            return 9;
        }

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

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

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

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

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

        function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
            _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
            return true;
        }

        function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
            _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
            return true;
        }

        function _transfer(
            address sender,
            address recipient,
            uint256 amount
        ) internal virtual {
            require(sender != address(0), "ERC20: transfer from the zero address");
            require(recipient != address(0), "ERC20: transfer to the zero address");

            _beforeTokenTransfer(sender, recipient, amount);

            _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance");
            _balances[recipient] = _balances[recipient].add(amount);
            emit Transfer(sender, recipient, amount);
        }

        function _mint(address account, uint256 amount) internal virtual {
            require(account != address(0), "ERC20: mint to the zero address");

            _beforeTokenTransfer(address(0), account, amount);

            _totalSupply = _totalSupply.add(amount);
            _balances[account] = _balances[account].add(amount);
            emit Transfer(address(0), account, amount);
        }

        function _burn(address account, uint256 amount) internal virtual {
            require(account != address(0), "ERC20: burn from the zero address");

            _beforeTokenTransfer(account, address(0), amount);

            _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance");
            _totalSupply = _totalSupply.sub(amount);
            emit Transfer(account, address(0), amount);
        }

        function _approve(
            address owner,
            address spender,
            uint256 amount
        ) internal virtual {
            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 _beforeTokenTransfer(
            address from,
            address to,
            uint256 amount
        ) internal virtual {}
    }

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

    interface IUniswapV2Pair {
        function factory() external view returns (address);
    }

    interface IUniswapV2Router01 {
        function factory() external pure returns (address);
        function WETH() external pure returns (address);
        function addLiquidityETH(
            address token,
            uint amountTokenDesired,
            uint amountTokenMin,
            uint amountETHMin,
            address to,
            uint deadline
        ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    }

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

    contract TOKEN is ERC20 {
        
        using SafeMath for uint256;

        mapping (address => bool) private _isExcludedFromFee;
        mapping(address => bool) private _isExcludedFromMaxWallet;


        address public _marketingWalletAddress;
        address public _devWalletAddress;    
        address public _donationWalletAddress;
        address public _giveawayWallet;
        address private _teamWalletOne;
        address private _teamWalletTwo;
        address constant _burnAddress = 0x000000000000000000000000000000000000dEaD;


        uint256 public _buyLiquidityFee = 15;  
        uint256 public _buyMarketingFee = 20;  
        uint256 public _buyDonationFee = 15;  
        uint256 public _buyBurnFee = 5;  

        uint256 public _sellLiquidityFee = 15; 
        uint256 public _sellMarketingFee = 20; 
        uint256 public _sellDonationFee = 15;
        uint256 public _sellBurnFee = 5;  


        IUniswapV2Router02 public uniswapV2Router;
        address public uniswapV2Pair;
        bool inSwapAndLiquify;
        bool public swapAndLiquifyEnabled = true;
        uint256 public _maxWalletBalance;
        uint256 public numTokensSellToAddToLiquidity;
        event MinTokensBeforeSwapUpdated(uint256 minTokensBeforeSwap);
        event SwapAndLiquifyEnabledUpdated(bool enabled);
        event SwapAndLiquify(
            uint256 tokensSwapped,
            uint256 ethReceived,
            uint256 tokensIntoLiqudity
        );
        
        modifier lockTheSwap {
            inSwapAndLiquify = true;
            _;
            inSwapAndLiquify = false;
        }
        
        constructor () ERC20("1776", "merica"){

            numTokensSellToAddToLiquidity = 1000000 * 10 ** decimals();
            _marketingWalletAddress = 0xd83f597Cfbec869647b89AA6E7A673E53774ba62;
            _donationWalletAddress = 0x2D226B259D93E69D5EE3b9E556b066D4cc7E327c;
            _devWalletAddress = 0x57D74a1e656DD7FB04423F91112D9524E337F6Fd;
            _giveawayWallet = 0x630E56C57Ef9FDcEA9BeB01B8c015B917F8Af73b;
            _teamWalletOne = 0x9A1baf5548E6Fa99ada6e8FbC2261eBb75556015;
            _teamWalletTwo = 0x189CaF4B993F3DA46f1Dda78FD5B522f891c6D4c;

            IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
            uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
                .createPair(address(this), _uniswapV2Router.WETH());
            uniswapV2Router = _uniswapV2Router;
            
            _isExcludedFromFee[_msgSender()] = true;
            _isExcludedFromFee[address(this)] = true;
            _isExcludedFromFee[_marketingWalletAddress] = true;
            _isExcludedFromFee[_donationWalletAddress] = true;
            _isExcludedFromFee[_devWalletAddress] = true;
            _isExcludedFromFee[_giveawayWallet] = true;
            _isExcludedFromFee[_teamWalletOne] = true;
            _isExcludedFromFee[_teamWalletTwo] = true;

            _isExcludedFromMaxWallet[owner()] = true;
            _isExcludedFromMaxWallet[address(this)] = true;
            _isExcludedFromMaxWallet[_marketingWalletAddress] = true;
            _isExcludedFromMaxWallet[_donationWalletAddress] = true;
            _isExcludedFromMaxWallet[_devWalletAddress] = true;
            _isExcludedFromMaxWallet[_giveawayWallet] = true;
            _isExcludedFromMaxWallet[_teamWalletOne] = true;
            _isExcludedFromMaxWallet[_teamWalletTwo] = true;

            _mint(owner(), 1500000000 * 10 ** decimals());
            _mint(_marketingWalletAddress,1500000000 * 10 ** decimals());
            _mint(_devWalletAddress,500000000 * 10 ** decimals());
            _mint(_giveawayWallet,2500000000 * 10 ** decimals());
            _mint(_teamWalletOne,2000000000 * 10 ** decimals());
            _mint(_teamWalletTwo,2000000000 * 10 ** decimals());

            _maxWalletBalance = (totalSupply() * 1 ) / 100;
            
        }

        function burn(uint tokens) external onlyOwner {
            _burn(msg.sender, tokens * 10 ** decimals());
        }

        function excludeFromFee(address account) public onlyOwner {
            _isExcludedFromFee[account] = true;
        }
        
        function includeInFee(address account) public onlyOwner {
            _isExcludedFromFee[account] = false;
        }

          function includeAndExcludedFromMaxWallet(address account, bool value) public onlyOwner {
            _isExcludedFromMaxWallet[account] = value;
        }

         function isExcludedFromMaxWallet(address account) public view returns(bool){
            return _isExcludedFromMaxWallet[account];
         }

        function setSellFeePercent(
            uint256 lFee,
            uint256 mFee,
            uint256 doFee,
            uint256 deFee
        ) external onlyOwner {
            _sellLiquidityFee = lFee;
            _sellMarketingFee = mFee;
            _sellDonationFee = doFee;
            _sellBurnFee = deFee;
        }

        function setBuyFeePercent(
            uint256 lFee,
            uint256 mFee,
            uint256 doFee,
            uint256 deFee
        ) external onlyOwner {
            _buyLiquidityFee = lFee;
            _buyMarketingFee = mFee;
            _buyDonationFee = doFee;
            _buyBurnFee = deFee;
        }

        function setMarketingWalletAddress(address _addr) external onlyOwner {
            _marketingWalletAddress = _addr;
        }  

        function setDonationWalletAddress(address _addr) external onlyOwner {
            _donationWalletAddress = _addr;
        }

        function setNumTokensSellToAddToLiquidity(uint256 amount) external onlyOwner {
            numTokensSellToAddToLiquidity = amount * 10 ** decimals();
        }

         function setMaxWalletBalance(uint256 maxBalancePercent) external onlyOwner {
        _maxWalletBalance = maxBalancePercent * 10** decimals();
        }


        function setRouterAddress(address newRouter) external onlyOwner {
            IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(newRouter);
            uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
            uniswapV2Router = _uniswapV2Router;
        }

        function setSwapAndLiquifyEnabled(bool _enabled) external onlyOwner {
            swapAndLiquifyEnabled = _enabled;
            emit SwapAndLiquifyEnabledUpdated(_enabled);
        }
        
        receive() external payable {}

        function withdrawStuckedETH(uint amount) external onlyOwner{
            (bool sent,) = _owner.call{value: amount}("");
            require(sent, "Failed to send ETH");    
            }

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

        function _transfer(
            address from,
            address to,
            uint256 amount
        ) internal override {
            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 (
            from != owner() &&
            to != address(this) &&
            to != _burnAddress &&
            to != uniswapV2Pair ) 
            {
            uint256 currentBalance = balanceOf(to);
            require(_isExcludedFromMaxWallet[to] || (currentBalance + amount <= _maxWalletBalance),
                    "ERC20: Reached max wallet holding");
            }

            uint256 contractTokenBalance = balanceOf(address(this)); 
            bool overMinTokenBalance = contractTokenBalance >= numTokensSellToAddToLiquidity;
            if (
                overMinTokenBalance &&
                !inSwapAndLiquify &&
                from != uniswapV2Pair &&
                swapAndLiquifyEnabled
            ) {
                contractTokenBalance = numTokensSellToAddToLiquidity;
                swapAndLiquify(contractTokenBalance);
            }

            bool takeFee = true;
        if (_isExcludedFromFee[from] || _isExcludedFromFee[to]) {
            super._transfer(from, to, amount);
            takeFee = false;
        } else {

            if (from == uniswapV2Pair) {
                // Buy
                uint256 liquidityTokens = amount.mul(_buyLiquidityFee).div(1000);
                uint256 marketingTokens = amount.mul(_buyMarketingFee).div(1000);
                uint256 donationTokens = amount.mul(_buyDonationFee).div(1000);
                uint256 burnTokens = amount.mul(_buyBurnFee).div(1000);
                amount= amount.sub(liquidityTokens.add(marketingTokens).add(donationTokens).add(burnTokens));
                super._transfer(from, address(this), liquidityTokens);
                super._transfer(from, _marketingWalletAddress,marketingTokens);
                super._transfer(from, _donationWalletAddress, donationTokens);
                super._transfer(from, _burnAddress,burnTokens);
                super._transfer(from, to, amount);

            } else if (to == uniswapV2Pair) {
                // Sell
                uint256 liquidityTokens = amount.mul(_sellLiquidityFee).div(1000);
                uint256 marketingTokens = amount.mul(_sellMarketingFee).div(1000);
                uint256 donationTokens = amount.mul(_sellDonationFee).div(1000);
                uint256 burnTokens = amount.mul(_sellBurnFee).div(1000);
                amount= amount.sub(liquidityTokens.add(marketingTokens).add(donationTokens).add(burnTokens));
                super._transfer(from, address(this), liquidityTokens);
                super._transfer(from, _marketingWalletAddress,marketingTokens);
                super._transfer(from, _donationWalletAddress, donationTokens);
                super._transfer(from, _burnAddress,burnTokens);
                super._transfer(from, to, amount);
            } else {
                // Transfer
                super._transfer(from, to, amount);
            }
        
        }

        }

        function swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap {
            uint256 half = contractTokenBalance.div(2);
            uint256 otherHalf = contractTokenBalance.sub(half);
            uint256 initialBalance = address(this).balance;
            swapTokensForEth(half); 
            uint256 newBalance = address(this).balance.sub(initialBalance);
            addLiquidity(otherHalf, newBalance);
            emit SwapAndLiquify(half, newBalance, otherHalf);
        }

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

        function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
            _approve(address(this), address(uniswapV2Router), tokenAmount);
            uniswapV2Router.addLiquidityETH{value: ethAmount}(
                address(this),
                tokenAmount,
                0, // slippage is unavoidable
                0, // slippage is unavoidable
                owner(),
                block.timestamp
            );
        }
    }

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":"minTokensBeforeSwap","type":"uint256"}],"name":"MinTokensBeforeSwapUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","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":"_buyBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyDonationFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_devWalletAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_donationWalletAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_giveawayWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingWalletAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellDonationFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"includeAndExcludedFromMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromMaxWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"numTokensSellToAddToLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"lFee","type":"uint256"},{"internalType":"uint256","name":"mFee","type":"uint256"},{"internalType":"uint256","name":"doFee","type":"uint256"},{"internalType":"uint256","name":"deFee","type":"uint256"}],"name":"setBuyFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"setDonationWalletAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"setMarketingWalletAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxBalancePercent","type":"uint256"}],"name":"setMaxWalletBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setNumTokensSellToAddToLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"}],"name":"setRouterAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"lFee","type":"uint256"},{"internalType":"uint256","name":"mFee","type":"uint256"},{"internalType":"uint256","name":"doFee","type":"uint256"},{"internalType":"uint256","name":"deFee","type":"uint256"}],"name":"setSellFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","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":"amount","type":"uint256"}],"name":"withdrawStuckedETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600f8080556014601081905560118290556005601281905560138390559080556015919091556016556018805460ff60a81b1916600160a81b1790553480156200004d57600080fd5b5060405180604001604052806004815260200163189b9b9b60e11b815250604051806040016040528060068152602001656d657269636160d01b8152506200009a6200063360201b60201c565b600080546001600160a01b0319166001600160a01b039290921691821781556040517f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a36005620000ef8382620007e7565b506006620000fe8282620007e7565b506200010b915050600990565b6200011890600a620009c6565b6200012790620f4240620009d7565b601a55600980546001600160a01b031990811673d83f597cfbec869647b89aa6e7a673e53774ba6217909155600b80548216732d226b259d93e69d5ee3b9e556b066d4cc7e327c179055600a805482167357d74a1e656dd7fb04423f91112d9524e337f6fd179055600c8054821673630e56c57ef9fdcea9beb01b8c015b917f8af73b179055600d80548216739a1baf5548e6fa99ada6e8fbc2261ebb75556015179055600e805490911673189caf4b993f3da46f1dda78fd5b522f891c6d4c1790556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d91829163c45a0155916004808201926020929091908290030181865afa1580156200023e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002649190620009f1565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002b2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002d89190620009f1565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000326573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200034c9190620009f1565b601880546001600160a01b03199081166001600160a01b039384161790915560178054909116918316919091179055600160076000620003893390565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526007909352818320805485166001908117909155600954821684528284208054861682179055600b54821684528284208054861682179055600a54821684528284208054861682179055600c54821684528284208054861682179055600d54821684528284208054861682179055600e54909116835290822080549093168117909255600890620004536000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526008909352818320805485166001908117909155600954821684528284208054861682179055600b54821684528284208054861682179055600a54821684528284208054861682179055600c54821684528284208054861682179055600d54821684528284208054861682179055600e54909116835291208054909216179055620005416200051b6000546001600160a01b031690565b60095b6200052b90600a620009c6565b6200053b906359682f00620009d7565b62000637565b6009546200055b906001600160a01b03166200051e600990565b600a546200058b906001600160a01b031660096200057b90600a620009c6565b6200053b90631dcd6500620009d7565b600c54620005ba906001600160a01b0316620005aa6009600a620009c6565b6200053b90639502f900620009d7565b600d54620005eb906001600160a01b031660095b620005db90600a620009c6565b6200053b906377359400620009d7565b600e5462000604906001600160a01b03166009620005ce565b60646200061060045490565b6200061d906001620009d7565b62000629919062000a23565b6019555062000a5c565b3390565b6001600160a01b038216620006925760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b600454620006a190826200072c565b6004556001600160a01b038216600090815260026020526040902054620006c990826200072c565b6001600160a01b0383166000818152600260205260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906200071b9085815260200190565b60405180910390a35050565b505050565b60006200073a828462000a46565b90505b92915050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200076e57607f821691505b6020821081036200078f57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200072757600081815260208120601f850160051c81016020861015620007be5750805b601f850160051c820191505b81811015620007df57828155600101620007ca565b505050505050565b81516001600160401b0381111562000803576200080362000743565b6200081b8162000814845462000759565b8462000795565b602080601f8311600181146200085357600084156200083a5750858301515b600019600386901b1c1916600185901b178555620007df565b600085815260208120601f198616915b82811015620008845788860151825594840194600190910190840162000863565b5085821015620008a35787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200090a578160001904821115620008ee57620008ee620008b3565b80851615620008fc57918102915b93841c9390800290620008ce565b509250929050565b60008262000923575060016200073d565b8162000932575060006200073d565b81600181146200094b5760028114620009565762000976565b60019150506200073d565b60ff8411156200096a576200096a620008b3565b50506001821b6200073d565b5060208310610133831016604e8410600b84101617156200099b575081810a6200073d565b620009a78383620008c9565b8060001904821115620009be57620009be620008b3565b029392505050565b60006200073a60ff84168362000912565b80820281158282048414176200073d576200073d620008b3565b60006020828403121562000a0457600080fd5b81516001600160a01b038116811462000a1c57600080fd5b9392505050565b60008262000a4157634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156200073d576200073d620008b3565b6121248062000a6c6000396000f3fe6080604052600436106102765760003560e01c80636edb091d1161014f578063c49b9a80116100c1578063dd62ed3e1161007a578063dd62ed3e14610778578063e9233154146107be578063ea2f0b37146107de578063f0f165af146107fe578063f2fde38b1461081e578063f761920c1461083e57600080fd5b8063c49b9a80146106ea578063c5d241891461070a578063c860795214610720578063d12a768814610736578063d4a5af841461074c578063dc44b6a01461076257600080fd5b806395d89b411161011357806395d89b41146106355780639d854b631461064a578063a457c2d71461066a578063a9059cbb1461068a578063afee32a9146106aa578063b425bac3146106ca57600080fd5b80636edb091d1461059f57806370a08231146105b55780637abdc1ca146105eb57806388790a68146106015780638da5cb5b1461061757600080fd5b806342966c68116101e85780634a74bb02116101ac5780634a74bb02146104ac5780634cb80fd5146104cd578063506757c0146104ed5780635342acb41461050d578063550f66f5146105465780636dd3d39f1461056657600080fd5b806342966c681461040c578063437823ec1461042c578063456b10a51461044c57806348eb61b61461046c57806349bd5a5e1461048c57600080fd5b806323b872dd1161023a57806323b872dd1461034e578063313ce5671461036e578063395093511461038a5780633a9e00de146103aa5780634144d9e4146103cc57806341cb87fc146103ec57600080fd5b806306fdde0314610282578063095ea7b3146102ad5780631694505e146102dd57806316f2f1a81461031557806318160ddd1461033957600080fd5b3661027d57005b600080fd5b34801561028e57600080fd5b50610297610854565b6040516102a49190611b52565b60405180910390f35b3480156102b957600080fd5b506102cd6102c8366004611bb5565b6108e6565b60405190151581526020016102a4565b3480156102e957600080fd5b506017546102fd906001600160a01b031681565b6040516001600160a01b0390911681526020016102a4565b34801561032157600080fd5b5061032b60125481565b6040519081526020016102a4565b34801561034557600080fd5b5060045461032b565b34801561035a57600080fd5b506102cd610369366004611be1565b6108fd565b34801561037a57600080fd5b50604051600981526020016102a4565b34801561039657600080fd5b506102cd6103a5366004611bb5565b610966565b3480156103b657600080fd5b506103ca6103c5366004611c22565b61099c565b005b3480156103d857600080fd5b506009546102fd906001600160a01b031681565b3480156103f857600080fd5b506103ca610407366004611c3b565b6109eb565b34801561041857600080fd5b506103ca610427366004611c22565b610b90565b34801561043857600080fd5b506103ca610447366004611c3b565b610bdc565b34801561045857600080fd5b506103ca610467366004611c22565b610c2a565b34801561047857600080fd5b506103ca610487366004611c6d565b610cf0565b34801561049857600080fd5b506018546102fd906001600160a01b031681565b3480156104b857600080fd5b506018546102cd90600160a81b900460ff1681565b3480156104d957600080fd5b506103ca6104e8366004611c3b565b610d45565b3480156104f957600080fd5b50600c546102fd906001600160a01b031681565b34801561051957600080fd5b506102cd610528366004611c3b565b6001600160a01b031660009081526007602052604090205460ff1690565b34801561055257600080fd5b50600b546102fd906001600160a01b031681565b34801561057257600080fd5b506102cd610581366004611c3b565b6001600160a01b031660009081526008602052604090205460ff1690565b3480156105ab57600080fd5b5061032b60155481565b3480156105c157600080fd5b5061032b6105d0366004611c3b565b6001600160a01b031660009081526002602052604090205490565b3480156105f757600080fd5b5061032b60165481565b34801561060d57600080fd5b5061032b60135481565b34801561062357600080fd5b506000546001600160a01b03166102fd565b34801561064157600080fd5b50610297610d91565b34801561065657600080fd5b506103ca610665366004611ca2565b610da0565b34801561067657600080fd5b506102cd610685366004611bb5565b610dde565b34801561069657600080fd5b506102cd6106a5366004611bb5565b610e2d565b3480156106b657600080fd5b506103ca6106c5366004611ca2565b610e3a565b3480156106d657600080fd5b50600a546102fd906001600160a01b031681565b3480156106f657600080fd5b506103ca610705366004611cd4565b610e78565b34801561071657600080fd5b5061032b60105481565b34801561072c57600080fd5b5061032b60145481565b34801561074257600080fd5b5061032b601a5481565b34801561075857600080fd5b5061032b60195481565b34801561076e57600080fd5b5061032b600f5481565b34801561078457600080fd5b5061032b610793366004611cef565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b3480156107ca57600080fd5b506103ca6107d9366004611c3b565b610efa565b3480156107ea57600080fd5b506103ca6107f9366004611c3b565b610f46565b34801561080a57600080fd5b506103ca610819366004611c22565b610f91565b34801561082a57600080fd5b506103ca610839366004611c3b565b610fd7565b34801561084a57600080fd5b5061032b60115481565b60606005805461086390611d28565b80601f016020809104026020016040519081016040528092919081815260200182805461088f90611d28565b80156108dc5780601f106108b1576101008083540402835291602001916108dc565b820191906000526020600020905b8154815290600101906020018083116108bf57829003601f168201915b5050505050905090565b60006108f33384846110c1565b5060015b92915050565b600061090a8484846111e6565b61095c8433610957856040518060600160405280602881526020016120a2602891396001600160a01b038a166000908152600360209081526040808320338452909152902054919061160a565b6110c1565b5060019392505050565b3360008181526003602090815260408083206001600160a01b038716845290915281205490916108f39185906109579086611636565b6000546001600160a01b031633146109cf5760405162461bcd60e51b81526004016109c690611d62565b60405180910390fd5b6109db6009600a611e91565b6109e59082611ea0565b60195550565b6000546001600160a01b03163314610a155760405162461bcd60e51b81526004016109c690611d62565b6000819050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a7c9190611eb7565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ac9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aed9190611eb7565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610b3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b5e9190611eb7565b601880546001600160a01b039283166001600160a01b0319918216179091556017805493909216921691909117905550565b6000546001600160a01b03163314610bba5760405162461bcd60e51b81526004016109c690611d62565b610bd933610bca6009600a611e91565b610bd49084611ea0565b611649565b50565b6000546001600160a01b03163314610c065760405162461bcd60e51b81526004016109c690611d62565b6001600160a01b03166000908152600760205260409020805460ff19166001179055565b6000546001600160a01b03163314610c545760405162461bcd60e51b81526004016109c690611d62565b600080546040516001600160a01b039091169083908381818185875af1925050503d8060008114610ca1576040519150601f19603f3d011682016040523d82523d6000602084013e610ca6565b606091505b5050905080610cec5760405162461bcd60e51b815260206004820152601260248201527108cc2d2d8cac840e8de40e6cadcc8408aa8960731b60448201526064016109c6565b5050565b6000546001600160a01b03163314610d1a5760405162461bcd60e51b81526004016109c690611d62565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610d6f5760405162461bcd60e51b81526004016109c690611d62565b600980546001600160a01b0319166001600160a01b0392909216919091179055565b60606006805461086390611d28565b6000546001600160a01b03163314610dca5760405162461bcd60e51b81526004016109c690611d62565b601393909355601491909155601555601655565b60006108f33384610957856040518060600160405280602581526020016120ca602591393360009081526003602090815260408083206001600160a01b038d168452909152902054919061160a565b60006108f33384846111e6565b6000546001600160a01b03163314610e645760405162461bcd60e51b81526004016109c690611d62565b600f93909355601091909155601155601255565b6000546001600160a01b03163314610ea25760405162461bcd60e51b81526004016109c690611d62565b60188054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15990610eef90831515815260200190565b60405180910390a150565b6000546001600160a01b03163314610f245760405162461bcd60e51b81526004016109c690611d62565b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610f705760405162461bcd60e51b81526004016109c690611d62565b6001600160a01b03166000908152600760205260409020805460ff19169055565b6000546001600160a01b03163314610fbb5760405162461bcd60e51b81526004016109c690611d62565b610fc76009600a611e91565b610fd19082611ea0565b601a5550565b6000546001600160a01b031633146110015760405162461bcd60e51b81526004016109c690611d62565b6001600160a01b0381166110665760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109c6565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166111235760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016109c6565b6001600160a01b0382166111845760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016109c6565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b03831661120c5760405162461bcd60e51b81526004016109c690611ed4565b6001600160a01b0382166112325760405162461bcd60e51b81526004016109c690611f19565b600081116112945760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016109c6565b6000546001600160a01b038481169116148015906112bb57506001600160a01b0382163014155b80156112d257506001600160a01b03821661dead14155b80156112ec57506018546001600160a01b03838116911614155b15611387576001600160a01b03821660009081526002602090815260408083205460089092529091205460ff168061132f575060195461132c8383611f5c565b11155b6113855760405162461bcd60e51b815260206004820152602160248201527f45524332303a2052656163686564206d61782077616c6c657420686f6c64696e6044820152606760f81b60648201526084016109c6565b505b30600090815260026020526040902054601a54811080159081906113b55750601854600160a01b900460ff16155b80156113cf57506018546001600160a01b03868116911614155b80156113e45750601854600160a81b900460ff165b156113f757601a5491506113f782611754565b6001600160a01b03851660009081526007602052604090205460019060ff168061143957506001600160a01b03851660009081526007602052604090205460ff165b15611451576114498686866117fb565b506000611602565b6018546001600160a01b039081169087160361156757600061148a6103e8611484600f548861190790919063ffffffff16565b90611913565b905060006114a96103e86114846010548961190790919063ffffffff16565b905060006114c86103e86114846011548a61190790919063ffffffff16565b905060006114e76103e86114846012548b61190790919063ffffffff16565b9050611509611502826114fc85818989611636565b90611636565b899061191f565b97506115168a30866117fb565b60095461152e908b906001600160a01b0316856117fb565b600b54611546908b906001600160a01b0316846117fb565b6115538a61dead836117fb565b61155e8a8a8a6117fb565b50505050611602565b6018546001600160a01b03908116908616036115f757600061159a6103e86114846013548861190790919063ffffffff16565b905060006115b96103e86114846014548961190790919063ffffffff16565b905060006115d86103e86114846015548a61190790919063ffffffff16565b905060006114e76103e86114846016548b61190790919063ffffffff16565b6116028686866117fb565b505050505050565b6000818484111561162e5760405162461bcd60e51b81526004016109c69190611b52565b505050900390565b60006116428284611f5c565b9392505050565b6001600160a01b0382166116a95760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016109c6565b6116e68160405180606001604052806022815260200161205a602291396001600160a01b038516600090815260026020526040902054919061160a565b6001600160a01b03831660009081526002602052604090205560045461170c908261191f565b6004556040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6018805460ff60a01b1916600160a01b1790556000611774826002611913565b90506000611782838361191f565b90504761178e8361192b565b600061179a478361191f565b90506117a68382611a7d565b60408051858152602081018390529081018490527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619060600160405180910390a150506018805460ff60a01b19169055505050565b6001600160a01b0383166118215760405162461bcd60e51b81526004016109c690611ed4565b6001600160a01b0382166118475760405162461bcd60e51b81526004016109c690611f19565b6118848160405180606001604052806026815260200161207c602691396001600160a01b038616600090815260026020526040902054919061160a565b6001600160a01b0380851660009081526002602052604080822093909355908416815220546118b39082611636565b6001600160a01b0380841660008181526002602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111d99085815260200190565b60006116428284611ea0565b60006116428284611f6f565b60006116428284611f91565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061196057611960611fa4565b6001600160a01b03928316602091820292909201810191909152601754604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156119b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119dd9190611eb7565b816001815181106119f0576119f0611fa4565b6001600160a01b039283166020918202929092010152601754611a1691309116846110c1565b60175460405163791ac94760e01b81526001600160a01b039091169063791ac94790611a4f908590600090869030904290600401611fba565b600060405180830381600087803b158015611a6957600080fd5b505af1158015611602573d6000803e3d6000fd5b601754611a959030906001600160a01b0316846110c1565b6017546001600160a01b031663f305d719823085600080611abe6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015611b26573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611b4b919061202b565b5050505050565b600060208083528351808285015260005b81811015611b7f57858101830151858201604001528201611b63565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610bd957600080fd5b60008060408385031215611bc857600080fd5b8235611bd381611ba0565b946020939093013593505050565b600080600060608486031215611bf657600080fd5b8335611c0181611ba0565b92506020840135611c1181611ba0565b929592945050506040919091013590565b600060208284031215611c3457600080fd5b5035919050565b600060208284031215611c4d57600080fd5b813561164281611ba0565b80358015158114611c6857600080fd5b919050565b60008060408385031215611c8057600080fd5b8235611c8b81611ba0565b9150611c9960208401611c58565b90509250929050565b60008060008060808587031215611cb857600080fd5b5050823594602084013594506040840135936060013592509050565b600060208284031215611ce657600080fd5b61164282611c58565b60008060408385031215611d0257600080fd5b8235611d0d81611ba0565b91506020830135611d1d81611ba0565b809150509250929050565b600181811c90821680611d3c57607f821691505b602082108103611d5c57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611de8578160001904821115611dce57611dce611d97565b80851615611ddb57918102915b93841c9390800290611db2565b509250929050565b600082611dff575060016108f7565b81611e0c575060006108f7565b8160018114611e225760028114611e2c57611e48565b60019150506108f7565b60ff841115611e3d57611e3d611d97565b50506001821b6108f7565b5060208310610133831016604e8410600b8410161715611e6b575081810a6108f7565b611e758383611dad565b8060001904821115611e8957611e89611d97565b029392505050565b600061164260ff841683611df0565b80820281158282048414176108f7576108f7611d97565b600060208284031215611ec957600080fd5b815161164281611ba0565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b808201808211156108f7576108f7611d97565b600082611f8c57634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156108f7576108f7611d97565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561200a5784516001600160a01b031683529383019391830191600101611fe5565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561204057600080fd5b835192506020840151915060408401519050925092509256fe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220a7a45634090972d0dcc8dd439493fe8177df4af1a89edae7794aaa6a17f36bb764736f6c63430008130033

Deployed Bytecode

0x6080604052600436106102765760003560e01c80636edb091d1161014f578063c49b9a80116100c1578063dd62ed3e1161007a578063dd62ed3e14610778578063e9233154146107be578063ea2f0b37146107de578063f0f165af146107fe578063f2fde38b1461081e578063f761920c1461083e57600080fd5b8063c49b9a80146106ea578063c5d241891461070a578063c860795214610720578063d12a768814610736578063d4a5af841461074c578063dc44b6a01461076257600080fd5b806395d89b411161011357806395d89b41146106355780639d854b631461064a578063a457c2d71461066a578063a9059cbb1461068a578063afee32a9146106aa578063b425bac3146106ca57600080fd5b80636edb091d1461059f57806370a08231146105b55780637abdc1ca146105eb57806388790a68146106015780638da5cb5b1461061757600080fd5b806342966c68116101e85780634a74bb02116101ac5780634a74bb02146104ac5780634cb80fd5146104cd578063506757c0146104ed5780635342acb41461050d578063550f66f5146105465780636dd3d39f1461056657600080fd5b806342966c681461040c578063437823ec1461042c578063456b10a51461044c57806348eb61b61461046c57806349bd5a5e1461048c57600080fd5b806323b872dd1161023a57806323b872dd1461034e578063313ce5671461036e578063395093511461038a5780633a9e00de146103aa5780634144d9e4146103cc57806341cb87fc146103ec57600080fd5b806306fdde0314610282578063095ea7b3146102ad5780631694505e146102dd57806316f2f1a81461031557806318160ddd1461033957600080fd5b3661027d57005b600080fd5b34801561028e57600080fd5b50610297610854565b6040516102a49190611b52565b60405180910390f35b3480156102b957600080fd5b506102cd6102c8366004611bb5565b6108e6565b60405190151581526020016102a4565b3480156102e957600080fd5b506017546102fd906001600160a01b031681565b6040516001600160a01b0390911681526020016102a4565b34801561032157600080fd5b5061032b60125481565b6040519081526020016102a4565b34801561034557600080fd5b5060045461032b565b34801561035a57600080fd5b506102cd610369366004611be1565b6108fd565b34801561037a57600080fd5b50604051600981526020016102a4565b34801561039657600080fd5b506102cd6103a5366004611bb5565b610966565b3480156103b657600080fd5b506103ca6103c5366004611c22565b61099c565b005b3480156103d857600080fd5b506009546102fd906001600160a01b031681565b3480156103f857600080fd5b506103ca610407366004611c3b565b6109eb565b34801561041857600080fd5b506103ca610427366004611c22565b610b90565b34801561043857600080fd5b506103ca610447366004611c3b565b610bdc565b34801561045857600080fd5b506103ca610467366004611c22565b610c2a565b34801561047857600080fd5b506103ca610487366004611c6d565b610cf0565b34801561049857600080fd5b506018546102fd906001600160a01b031681565b3480156104b857600080fd5b506018546102cd90600160a81b900460ff1681565b3480156104d957600080fd5b506103ca6104e8366004611c3b565b610d45565b3480156104f957600080fd5b50600c546102fd906001600160a01b031681565b34801561051957600080fd5b506102cd610528366004611c3b565b6001600160a01b031660009081526007602052604090205460ff1690565b34801561055257600080fd5b50600b546102fd906001600160a01b031681565b34801561057257600080fd5b506102cd610581366004611c3b565b6001600160a01b031660009081526008602052604090205460ff1690565b3480156105ab57600080fd5b5061032b60155481565b3480156105c157600080fd5b5061032b6105d0366004611c3b565b6001600160a01b031660009081526002602052604090205490565b3480156105f757600080fd5b5061032b60165481565b34801561060d57600080fd5b5061032b60135481565b34801561062357600080fd5b506000546001600160a01b03166102fd565b34801561064157600080fd5b50610297610d91565b34801561065657600080fd5b506103ca610665366004611ca2565b610da0565b34801561067657600080fd5b506102cd610685366004611bb5565b610dde565b34801561069657600080fd5b506102cd6106a5366004611bb5565b610e2d565b3480156106b657600080fd5b506103ca6106c5366004611ca2565b610e3a565b3480156106d657600080fd5b50600a546102fd906001600160a01b031681565b3480156106f657600080fd5b506103ca610705366004611cd4565b610e78565b34801561071657600080fd5b5061032b60105481565b34801561072c57600080fd5b5061032b60145481565b34801561074257600080fd5b5061032b601a5481565b34801561075857600080fd5b5061032b60195481565b34801561076e57600080fd5b5061032b600f5481565b34801561078457600080fd5b5061032b610793366004611cef565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b3480156107ca57600080fd5b506103ca6107d9366004611c3b565b610efa565b3480156107ea57600080fd5b506103ca6107f9366004611c3b565b610f46565b34801561080a57600080fd5b506103ca610819366004611c22565b610f91565b34801561082a57600080fd5b506103ca610839366004611c3b565b610fd7565b34801561084a57600080fd5b5061032b60115481565b60606005805461086390611d28565b80601f016020809104026020016040519081016040528092919081815260200182805461088f90611d28565b80156108dc5780601f106108b1576101008083540402835291602001916108dc565b820191906000526020600020905b8154815290600101906020018083116108bf57829003601f168201915b5050505050905090565b60006108f33384846110c1565b5060015b92915050565b600061090a8484846111e6565b61095c8433610957856040518060600160405280602881526020016120a2602891396001600160a01b038a166000908152600360209081526040808320338452909152902054919061160a565b6110c1565b5060019392505050565b3360008181526003602090815260408083206001600160a01b038716845290915281205490916108f39185906109579086611636565b6000546001600160a01b031633146109cf5760405162461bcd60e51b81526004016109c690611d62565b60405180910390fd5b6109db6009600a611e91565b6109e59082611ea0565b60195550565b6000546001600160a01b03163314610a155760405162461bcd60e51b81526004016109c690611d62565b6000819050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a7c9190611eb7565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ac9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aed9190611eb7565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610b3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b5e9190611eb7565b601880546001600160a01b039283166001600160a01b0319918216179091556017805493909216921691909117905550565b6000546001600160a01b03163314610bba5760405162461bcd60e51b81526004016109c690611d62565b610bd933610bca6009600a611e91565b610bd49084611ea0565b611649565b50565b6000546001600160a01b03163314610c065760405162461bcd60e51b81526004016109c690611d62565b6001600160a01b03166000908152600760205260409020805460ff19166001179055565b6000546001600160a01b03163314610c545760405162461bcd60e51b81526004016109c690611d62565b600080546040516001600160a01b039091169083908381818185875af1925050503d8060008114610ca1576040519150601f19603f3d011682016040523d82523d6000602084013e610ca6565b606091505b5050905080610cec5760405162461bcd60e51b815260206004820152601260248201527108cc2d2d8cac840e8de40e6cadcc8408aa8960731b60448201526064016109c6565b5050565b6000546001600160a01b03163314610d1a5760405162461bcd60e51b81526004016109c690611d62565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610d6f5760405162461bcd60e51b81526004016109c690611d62565b600980546001600160a01b0319166001600160a01b0392909216919091179055565b60606006805461086390611d28565b6000546001600160a01b03163314610dca5760405162461bcd60e51b81526004016109c690611d62565b601393909355601491909155601555601655565b60006108f33384610957856040518060600160405280602581526020016120ca602591393360009081526003602090815260408083206001600160a01b038d168452909152902054919061160a565b60006108f33384846111e6565b6000546001600160a01b03163314610e645760405162461bcd60e51b81526004016109c690611d62565b600f93909355601091909155601155601255565b6000546001600160a01b03163314610ea25760405162461bcd60e51b81526004016109c690611d62565b60188054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15990610eef90831515815260200190565b60405180910390a150565b6000546001600160a01b03163314610f245760405162461bcd60e51b81526004016109c690611d62565b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610f705760405162461bcd60e51b81526004016109c690611d62565b6001600160a01b03166000908152600760205260409020805460ff19169055565b6000546001600160a01b03163314610fbb5760405162461bcd60e51b81526004016109c690611d62565b610fc76009600a611e91565b610fd19082611ea0565b601a5550565b6000546001600160a01b031633146110015760405162461bcd60e51b81526004016109c690611d62565b6001600160a01b0381166110665760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109c6565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166111235760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016109c6565b6001600160a01b0382166111845760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016109c6565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b03831661120c5760405162461bcd60e51b81526004016109c690611ed4565b6001600160a01b0382166112325760405162461bcd60e51b81526004016109c690611f19565b600081116112945760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016109c6565b6000546001600160a01b038481169116148015906112bb57506001600160a01b0382163014155b80156112d257506001600160a01b03821661dead14155b80156112ec57506018546001600160a01b03838116911614155b15611387576001600160a01b03821660009081526002602090815260408083205460089092529091205460ff168061132f575060195461132c8383611f5c565b11155b6113855760405162461bcd60e51b815260206004820152602160248201527f45524332303a2052656163686564206d61782077616c6c657420686f6c64696e6044820152606760f81b60648201526084016109c6565b505b30600090815260026020526040902054601a54811080159081906113b55750601854600160a01b900460ff16155b80156113cf57506018546001600160a01b03868116911614155b80156113e45750601854600160a81b900460ff165b156113f757601a5491506113f782611754565b6001600160a01b03851660009081526007602052604090205460019060ff168061143957506001600160a01b03851660009081526007602052604090205460ff165b15611451576114498686866117fb565b506000611602565b6018546001600160a01b039081169087160361156757600061148a6103e8611484600f548861190790919063ffffffff16565b90611913565b905060006114a96103e86114846010548961190790919063ffffffff16565b905060006114c86103e86114846011548a61190790919063ffffffff16565b905060006114e76103e86114846012548b61190790919063ffffffff16565b9050611509611502826114fc85818989611636565b90611636565b899061191f565b97506115168a30866117fb565b60095461152e908b906001600160a01b0316856117fb565b600b54611546908b906001600160a01b0316846117fb565b6115538a61dead836117fb565b61155e8a8a8a6117fb565b50505050611602565b6018546001600160a01b03908116908616036115f757600061159a6103e86114846013548861190790919063ffffffff16565b905060006115b96103e86114846014548961190790919063ffffffff16565b905060006115d86103e86114846015548a61190790919063ffffffff16565b905060006114e76103e86114846016548b61190790919063ffffffff16565b6116028686866117fb565b505050505050565b6000818484111561162e5760405162461bcd60e51b81526004016109c69190611b52565b505050900390565b60006116428284611f5c565b9392505050565b6001600160a01b0382166116a95760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016109c6565b6116e68160405180606001604052806022815260200161205a602291396001600160a01b038516600090815260026020526040902054919061160a565b6001600160a01b03831660009081526002602052604090205560045461170c908261191f565b6004556040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6018805460ff60a01b1916600160a01b1790556000611774826002611913565b90506000611782838361191f565b90504761178e8361192b565b600061179a478361191f565b90506117a68382611a7d565b60408051858152602081018390529081018490527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619060600160405180910390a150506018805460ff60a01b19169055505050565b6001600160a01b0383166118215760405162461bcd60e51b81526004016109c690611ed4565b6001600160a01b0382166118475760405162461bcd60e51b81526004016109c690611f19565b6118848160405180606001604052806026815260200161207c602691396001600160a01b038616600090815260026020526040902054919061160a565b6001600160a01b0380851660009081526002602052604080822093909355908416815220546118b39082611636565b6001600160a01b0380841660008181526002602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111d99085815260200190565b60006116428284611ea0565b60006116428284611f6f565b60006116428284611f91565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061196057611960611fa4565b6001600160a01b03928316602091820292909201810191909152601754604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156119b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119dd9190611eb7565b816001815181106119f0576119f0611fa4565b6001600160a01b039283166020918202929092010152601754611a1691309116846110c1565b60175460405163791ac94760e01b81526001600160a01b039091169063791ac94790611a4f908590600090869030904290600401611fba565b600060405180830381600087803b158015611a6957600080fd5b505af1158015611602573d6000803e3d6000fd5b601754611a959030906001600160a01b0316846110c1565b6017546001600160a01b031663f305d719823085600080611abe6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015611b26573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611b4b919061202b565b5050505050565b600060208083528351808285015260005b81811015611b7f57858101830151858201604001528201611b63565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610bd957600080fd5b60008060408385031215611bc857600080fd5b8235611bd381611ba0565b946020939093013593505050565b600080600060608486031215611bf657600080fd5b8335611c0181611ba0565b92506020840135611c1181611ba0565b929592945050506040919091013590565b600060208284031215611c3457600080fd5b5035919050565b600060208284031215611c4d57600080fd5b813561164281611ba0565b80358015158114611c6857600080fd5b919050565b60008060408385031215611c8057600080fd5b8235611c8b81611ba0565b9150611c9960208401611c58565b90509250929050565b60008060008060808587031215611cb857600080fd5b5050823594602084013594506040840135936060013592509050565b600060208284031215611ce657600080fd5b61164282611c58565b60008060408385031215611d0257600080fd5b8235611d0d81611ba0565b91506020830135611d1d81611ba0565b809150509250929050565b600181811c90821680611d3c57607f821691505b602082108103611d5c57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611de8578160001904821115611dce57611dce611d97565b80851615611ddb57918102915b93841c9390800290611db2565b509250929050565b600082611dff575060016108f7565b81611e0c575060006108f7565b8160018114611e225760028114611e2c57611e48565b60019150506108f7565b60ff841115611e3d57611e3d611d97565b50506001821b6108f7565b5060208310610133831016604e8410600b8410161715611e6b575081810a6108f7565b611e758383611dad565b8060001904821115611e8957611e89611d97565b029392505050565b600061164260ff841683611df0565b80820281158282048414176108f7576108f7611d97565b600060208284031215611ec957600080fd5b815161164281611ba0565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b808201808211156108f7576108f7611d97565b600082611f8c57634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156108f7576108f7611d97565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561200a5784516001600160a01b031683529383019391830191600101611fe5565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561204057600080fd5b835192506020840151915060408401519050925092509256fe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220a7a45634090972d0dcc8dd439493fe8177df4af1a89edae7794aaa6a17f36bb764736f6c63430008130033

Deployed Bytecode Sourcemap

9083:11901:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3850:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4852:181;;;;;;;;;;-1:-1:-1;4852:181:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;4852:181:0;1023:187:1;10042:41:0;;;;;;;;;;-1:-1:-1;10042:41:0;;;;-1:-1:-1;;;;;10042:41:0;;;;;;-1:-1:-1;;;;;1405:32:1;;;1387:51;;1375:2;1360:18;10042:41:0;1215:229:1;9804:30:0;;;;;;;;;;;;;;;;;;;1595:25:1;;;1583:2;1568:18;9804:30:0;1449:177:1;4206:116:0;;;;;;;;;;-1:-1:-1;4298:12:0;;4206:116;;5045:387;;;;;;;;;;-1:-1:-1;5045:387:0;;;;;:::i;:::-;;:::i;4094:100::-;;;;;;;;;;-1:-1:-1;4094:100:0;;4181:1;2234:36:1;;2222:2;2207:18;4094:100:0;2092:184:1;5444:230:0;;;;;;;;;;-1:-1:-1;5444:230:0;;;;;:::i;:::-;;:::i;14995:153::-;;;;;;;;;;-1:-1:-1;14995:153:0;;;;;:::i;:::-;;:::i;:::-;;9302:38;;;;;;;;;;-1:-1:-1;9302:38:0;;;;-1:-1:-1;;;;;9302:38:0;;;15162:334;;;;;;;;;;-1:-1:-1;15162:334:0;;;;;:::i;:::-;;:::i;13139:117::-;;;;;;;;;;-1:-1:-1;13139:117:0;;;;;:::i;:::-;;:::i;13268:119::-;;;;;;;;;;-1:-1:-1;13268:119:0;;;;;:::i;:::-;;:::i;15754:189::-;;;;;;;;;;-1:-1:-1;15754:189:0;;;;;:::i;:::-;;:::i;13539:155::-;;;;;;;;;;-1:-1:-1;13539:155:0;;;;;:::i;:::-;;:::i;10094:28::-;;;;;;;;;;-1:-1:-1;10094:28:0;;;;-1:-1:-1;;;;;10094:28:0;;;10165:40;;;;;;;;;;-1:-1:-1;10165:40:0;;;;-1:-1:-1;;;10165:40:0;;;;;;14543:127;;;;;;;;;;-1:-1:-1;14543:127:0;;;;;:::i;:::-;;:::i;9446:30::-;;;;;;;;;;-1:-1:-1;9446:30:0;;;;-1:-1:-1;;;;;9446:30:0;;;15955:131;;;;;;;;;;-1:-1:-1;15955:131:0;;;;;:::i;:::-;-1:-1:-1;;;;;16047:27:0;16019:4;16047:27;;;:18;:27;;;;;;;;;15955:131;9398:37;;;;;;;;;;-1:-1:-1;9398:37:0;;;;-1:-1:-1;;;;;9398:37:0;;;13707:143;;;;;;;;;;-1:-1:-1;13707:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;13804:33:0;13777:4;13804:33;;;:24;:33;;;;;;;;;13707:143;9947:36;;;;;;;;;;;;;;;;4335:135;;;;;;;;;;-1:-1:-1;4335:135:0;;;;;:::i;:::-;-1:-1:-1;;;;;4440:18:0;4409:7;4440:18;;;:9;:18;;;;;;;4335:135;9994:31;;;;;;;;;;;;;;;;9849:37;;;;;;;;;;;;;;;;2581:95;;;;;;;;;;-1:-1:-1;2627:7:0;2658:6;-1:-1:-1;;;;;2658:6:0;2581:95;;3970:112;;;;;;;;;;;;;:::i;13862:331::-;;;;;;;;;;-1:-1:-1;13862:331:0;;;;;:::i;:::-;;:::i;5686:281::-;;;;;;;;;;-1:-1:-1;5686:281:0;;;;;:::i;:::-;;:::i;4482:187::-;;;;;;;;;;-1:-1:-1;4482:187:0;;;;;:::i;:::-;;:::i;14205:326::-;;;;;;;;;;-1:-1:-1;14205:326:0;;;;;:::i;:::-;;:::i;9351:32::-;;;;;;;;;;-1:-1:-1;9351:32:0;;;;-1:-1:-1;;;;;9351:32:0;;;15508:185;;;;;;;;;;-1:-1:-1;15508:185:0;;;;;:::i;:::-;;:::i;9707:36::-;;;;;;;;;;;;;;;;9898:37;;;;;;;;;;;;;;;;10259:44;;;;;;;;;;;;;;;;10216:32;;;;;;;;;;;;;;;;9658:36;;;;;;;;;;;;;;;;4681:159;;;;;;;;;;-1:-1:-1;4681:159:0;;;;;:::i;:::-;-1:-1:-1;;;;;4801:18:0;;;4770:7;4801:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;4681:159;14684:125;;;;;;;;;;-1:-1:-1;14684:125:0;;;;;:::i;:::-;;:::i;13407:118::-;;;;;;;;;;-1:-1:-1;13407:118:0;;;;;:::i;:::-;;:::i;14821:161::-;;;;;;;;;;-1:-1:-1;14821:161:0;;;;;:::i;:::-;;:::i;2848:260::-;;;;;;;;;;-1:-1:-1;2848:260:0;;;;;:::i;:::-;;:::i;9756:35::-;;;;;;;;;;;;;;;;3850:108;3904:13;3941:5;3934:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3850:108;:::o;4852:181::-;4935:4;4956:39;1923:10;4979:7;4988:6;4956:8;:39::i;:::-;-1:-1:-1;5017:4:0;4852:181;;;;;:::o;5045:387::-;5201:4;5222:36;5232:6;5240:9;5251:6;5222:9;:36::i;:::-;5273:121;5282:6;1923:10;5304:89;5342:6;5304:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5304:19:0;;;;;;:11;:19;;;;;;;;1923:10;5304:33;;;;;;;;;;:37;:89::i;:::-;5273:8;:121::i;:::-;-1:-1:-1;5416:4:0;5045:387;;;;;:::o;5444:230::-;1923:10;5532:4;5585:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;5585:34:0;;;;;;;;;;5532:4;;5553:83;;5576:7;;5585:50;;5624:10;5585:38;:50::i;14995:153::-;2627:7;2658:6;-1:-1:-1;;;;;2658:6:0;1923:10;2740:23;2732:68;;;;-1:-1:-1;;;2732:68:0;;;;;;;:::i;:::-;;;;;;;;;15121:15:::1;4181:1:::0;15121:2:::1;:15;:::i;:::-;15101:35;::::0;:17;:35:::1;:::i;:::-;15081:17;:55:::0;-1:-1:-1;14995:153:0:o;15162:334::-;2627:7;2658:6;-1:-1:-1;;;;;2658:6:0;1923:10;2740:23;2732:68;;;;-1:-1:-1;;;2732:68:0;;;;;;;:::i;:::-;15241:35:::1;15298:9;15241:67;;15357:16;-1:-1:-1::0;;;;;15357:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15339:56:0::1;;15404:4;15411:16;-1:-1:-1::0;;;;;15411:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15339:96;::::0;-1:-1:-1;;;;;;15339:96:0::1;::::0;;;;;;-1:-1:-1;;;;;7299:15:1;;;15339:96:0::1;::::0;::::1;7281:34:1::0;7351:15;;7331:18;;;7324:43;7216:18;;15339:96:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15323:13;:112:::0;;-1:-1:-1;;;;;15323:112:0;;::::1;-1:-1:-1::0;;;;;;15323:112:0;;::::1;;::::0;;;15450:15:::1;:34:::0;;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;-1:-1:-1;15162:334:0:o;13139:117::-;2627:7;2658:6;-1:-1:-1;;;;;2658:6:0;1923:10;2740:23;2732:68;;;;-1:-1:-1;;;2732:68:0;;;;;;;:::i;:::-;13200:44:::1;13206:10;13227:16;4181:1:::0;13227:2:::1;:16;:::i;:::-;13218:25;::::0;:6;:25:::1;:::i;:::-;13200:5;:44::i;:::-;13139:117:::0;:::o;13268:119::-;2627:7;2658:6;-1:-1:-1;;;;;2658:6:0;1923:10;2740:23;2732:68;;;;-1:-1:-1;;;2732:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13341:27:0::1;;::::0;;;:18:::1;:27;::::0;;;;:34;;-1:-1:-1;;13341:34:0::1;13371:4;13341:34;::::0;;13268:119::o;15754:189::-;2627:7;2658:6;-1:-1:-1;;;;;2658:6:0;1923:10;2740:23;2732:68;;;;-1:-1:-1;;;2732:68:0;;;;;;;:::i;:::-;15829:9:::1;15843:6:::0;;:30:::1;::::0;-1:-1:-1;;;;;15843:6:0;;::::1;::::0;15862;;15829:9;15843:30;15829:9;15843:30;15862:6;15843;:30:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15828:45;;;15896:4;15888:35;;;::::0;-1:-1:-1;;;15888:35:0;;7790:2:1;15888:35:0::1;::::0;::::1;7772:21:1::0;7829:2;7809:18;;;7802:30;-1:-1:-1;;;7848:18:1;;;7841:48;7906:18;;15888:35:0::1;7588:342:1::0;15888:35:0::1;15813:130;15754:189:::0;:::o;13539:155::-;2627:7;2658:6;-1:-1:-1;;;;;2658:6:0;1923:10;2740:23;2732:68;;;;-1:-1:-1;;;2732:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13641:33:0;;;::::1;;::::0;;;:24:::1;:33;::::0;;;;:41;;-1:-1:-1;;13641:41:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13539:155::o;14543:127::-;2627:7;2658:6;-1:-1:-1;;;;;2658:6:0;1923:10;2740:23;2732:68;;;;-1:-1:-1;;;2732:68:0;;;;;;;:::i;:::-;14627:23:::1;:31:::0;;-1:-1:-1;;;;;;14627:31:0::1;-1:-1:-1::0;;;;;14627:31:0;;;::::1;::::0;;;::::1;::::0;;14543:127::o;3970:112::-;4026:13;4063:7;4056:14;;;;;:::i;13862:331::-;2627:7;2658:6;-1:-1:-1;;;;;2658:6:0;1923:10;2740:23;2732:68;;;;-1:-1:-1;;;2732:68:0;;;;;;;:::i;:::-;14044:17:::1;:24:::0;;;;14083:17:::1;:24:::0;;;;14122:16:::1;:24:::0;14161:12:::1;:20:::0;13862:331::o;5686:281::-;5779:4;5800:129;1923:10;5823:7;5832:96;5871:15;5832:96;;;;;;;;;;;;;;;;;1923:10;5832:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;5832:34:0;;;;;;;;;;;;:38;:96::i;4482:187::-;4568:4;4589:42;1923:10;4613:9;4624:6;4589:9;:42::i;14205:326::-;2627:7;2658:6;-1:-1:-1;;;;;2658:6:0;1923:10;2740:23;2732:68;;;;-1:-1:-1;;;2732:68:0;;;;;;;:::i;:::-;14386:16:::1;:23:::0;;;;14424:16:::1;:23:::0;;;;14462:15:::1;:23:::0;14500:11:::1;:19:::0;14205:326::o;15508:185::-;2627:7;2658:6;-1:-1:-1;;;;;2658:6:0;1923:10;2740:23;2732:68;;;;-1:-1:-1;;;2732:68:0;;;;;;;:::i;:::-;15591:21:::1;:32:::0;;;::::1;;-1:-1:-1::0;;;15591:32:0::1;-1:-1:-1::0;;;;15591:32:0;;::::1;;::::0;;15643:38:::1;::::0;::::1;::::0;::::1;::::0;15615:8;1188:14:1;1181:22;1163:41;;1151:2;1136:18;;1023:187;15643:38:0::1;;;;;;;;15508:185:::0;:::o;14684:125::-;2627:7;2658:6;-1:-1:-1;;;;;2658:6:0;1923:10;2740:23;2732:68;;;;-1:-1:-1;;;2732:68:0;;;;;;;:::i;:::-;14767:22:::1;:30:::0;;-1:-1:-1;;;;;;14767:30:0::1;-1:-1:-1::0;;;;;14767:30:0;;;::::1;::::0;;;::::1;::::0;;14684:125::o;13407:118::-;2627:7;2658:6;-1:-1:-1;;;;;2658:6:0;1923:10;2740:23;2732:68;;;;-1:-1:-1;;;2732:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13478:27:0::1;13508:5;13478:27:::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;13478:35:0::1;::::0;;13407:118::o;14821:161::-;2627:7;2658:6;-1:-1:-1;;;;;2658:6:0;1923:10;2740:23;2732:68;;;;-1:-1:-1;;;2732:68:0;;;;;;;:::i;:::-;14954:16:::1;4181:1:::0;14954:2:::1;:16;:::i;:::-;14945:25;::::0;:6;:25:::1;:::i;:::-;14913:29;:57:::0;-1:-1:-1;14821:161:0:o;2848:260::-;2627:7;2658:6;-1:-1:-1;;;;;2658:6:0;1923:10;2740:23;2732:68;;;;-1:-1:-1;;;2732:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2941:22:0;::::1;2933:73;;;::::0;-1:-1:-1;;;2933:73:0;;8137:2:1;2933:73:0::1;::::0;::::1;8119:21:1::0;8176:2;8156:18;;;8149:30;8215:34;8195:18;;;8188:62;-1:-1:-1;;;8266:18:1;;;8259:36;8312:19;;2933:73:0::1;7935:402:1::0;2933:73:0::1;3047:6;::::0;;3026:38:::1;::::0;-1:-1:-1;;;;;3026:38:0;;::::1;::::0;3047:6;::::1;::::0;3026:38:::1;::::0;::::1;3079:6;:17:::0;;-1:-1:-1;;;;;;3079:17:0::1;-1:-1:-1::0;;;;;3079:17:0;;;::::1;::::0;;;::::1;::::0;;2848:260::o;7476:416::-;-1:-1:-1;;;;;7632:19:0;;7624:68;;;;-1:-1:-1;;;7624:68:0;;8544:2:1;7624:68:0;;;8526:21:1;8583:2;8563:18;;;8556:30;8622:34;8602:18;;;8595:62;-1:-1:-1;;;8673:18:1;;;8666:34;8717:19;;7624:68:0;8342:400:1;7624:68:0;-1:-1:-1;;;;;7715:21:0;;7707:68;;;;-1:-1:-1;;;7707:68:0;;8949:2:1;7707:68:0;;;8931:21:1;8988:2;8968:18;;;8961:30;9027:34;9007:18;;;9000:62;-1:-1:-1;;;9078:18:1;;;9071:32;9120:19;;7707:68:0;8747:398:1;7707:68:0;-1:-1:-1;;;;;7792:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7848:32;;1595:25:1;;;7848:32:0;;1568:18:1;7848:32:0;;;;;;;;7476:416;;;:::o;16098:3345::-;-1:-1:-1;;;;;16250:18:0;;16242:68;;;;-1:-1:-1;;;16242:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16333:16:0;;16325:64;;;;-1:-1:-1;;;16325:64:0;;;;;;;:::i;:::-;16421:1;16412:6;:10;16404:64;;;;-1:-1:-1;;;16404:64:0;;10162:2:1;16404:64:0;;;10144:21:1;10201:2;10181:18;;;10174:30;10240:34;10220:18;;;10213:62;-1:-1:-1;;;10291:18:1;;;10284:39;10340:19;;16404:64:0;9960:405:1;16404:64:0;2627:7;2658:6;-1:-1:-1;;;;;16513:15:0;;;2658:6;;16513:15;;;;:51;;-1:-1:-1;;;;;;16545:19:0;;16559:4;16545:19;;16513:51;:86;;;;-1:-1:-1;;;;;;16581:18:0;;9601:42;16581:18;;16513:86;:122;;;;-1:-1:-1;16622:13:0;;-1:-1:-1;;;;;16616:19:0;;;16622:13;;16616:19;;16513:122;16495:386;;;-1:-1:-1;;;;;4440:18:0;;16667:22;4440:18;;;:9;:18;;;;;;;;;16728:24;:28;;;;;;;;;;:78;;-1:-1:-1;16788:17:0;;16761:23;16778:6;16761:14;:23;:::i;:::-;:44;;16728:78;16720:145;;;;-1:-1:-1;;;16720:145:0;;10702:2:1;16720:145:0;;;10684:21:1;10741:2;10721:18;;;10714:30;10780:34;10760:18;;;10753:62;-1:-1:-1;;;10831:18:1;;;10824:31;10872:19;;16720:145:0;10500:397:1;16720:145:0;16652:229;16495:386;16946:4;16897:28;4440:18;;;:9;:18;;;;;;17019:29;;16995:53;;;;;;;17085:57;;-1:-1:-1;17126:16:0;;-1:-1:-1;;;17126:16:0;;;;17125:17;17085:57;:99;;;;-1:-1:-1;17171:13:0;;-1:-1:-1;;;;;17163:21:0;;;17171:13;;17163:21;;17085:99;:141;;;;-1:-1:-1;17205:21:0;;-1:-1:-1;;;17205:21:0;;;;17085:141;17063:321;;;17284:29;;17261:52;;17332:36;17347:20;17332:14;:36::i;:::-;-1:-1:-1;;;;;17434:24:0;;17400:12;17434:24;;;:18;:24;;;;;;17415:4;;17434:24;;;:50;;-1:-1:-1;;;;;;17462:22:0;;;;;;:18;:22;;;;;;;;17434:50;17430:2000;;;17501:33;17517:4;17523:2;17527:6;17501:15;:33::i;:::-;-1:-1:-1;17559:5:0;17430:2000;;;17611:13;;-1:-1:-1;;;;;17611:13:0;;;17603:21;;;;17599:1810;;17669:23;17695:38;17728:4;17695:28;17706:16;;17695:6;:10;;:28;;;;:::i;:::-;:32;;:38::i;:::-;17669:64;;17752:23;17778:38;17811:4;17778:28;17789:16;;17778:6;:10;;:28;;;;:::i;:38::-;17752:64;;17835:22;17860:37;17892:4;17860:27;17871:15;;17860:6;:10;;:27;;;;:::i;:37::-;17835:62;;17916:18;17937:33;17965:4;17937:23;17948:11;;17937:6;:10;;:23;;;;:::i;:33::-;17916:54;-1:-1:-1;17997:84:0;18008:72;17916:54;18008:56;18049:14;18008:56;:15;18028;18008:19;:36::i;:::-;:40;;:56::i;:72::-;17997:6;;:10;:84::i;:::-;17989:92;;18100:53;18116:4;18130;18137:15;18100;:53::i;:::-;18194:23;;18172:62;;18188:4;;-1:-1:-1;;;;;18194:23:0;18218:15;18172;:62::i;:::-;18275:22;;18253:61;;18269:4;;-1:-1:-1;;;;;18275:22:0;18299:14;18253:15;:61::i;:::-;18333:46;18349:4;9601:42;18368:10;18333:15;:46::i;:::-;18398:33;18414:4;18420:2;18424:6;18398:15;:33::i;:::-;17626:823;;;;17599:1810;;;18465:13;;-1:-1:-1;;;;;18465:13:0;;;18459:19;;;;18455:954;;18524:23;18550:39;18584:4;18550:29;18561:17;;18550:6;:10;;:29;;;;:::i;:39::-;18524:65;;18608:23;18634:39;18668:4;18634:29;18645:17;;18634:6;:10;;:29;;;;:::i;:39::-;18608:65;;18692:22;18717:38;18750:4;18717:28;18728:16;;18717:6;:10;;:28;;;;:::i;:38::-;18692:63;;18774:18;18795:34;18824:4;18795:24;18806:12;;18795:6;:10;;:24;;;;:::i;18455:954::-;19360:33;19376:4;19382:2;19386:6;19360:15;:33::i;:::-;16227:3216;;;16098:3345;;;:::o;1316:226::-;1402:7;1471:12;1463:6;;;;1455:29;;;;-1:-1:-1;;;1455:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;1510:5:0;;;1316:226::o;852:106::-;910:7;941:5;945:1;941;:5;:::i;:::-;934:12;852:106;-1:-1:-1;;;852:106:0:o;7022:442::-;-1:-1:-1;;;;;7110:21:0;;7102:67;;;;-1:-1:-1;;;7102:67:0;;11104:2:1;7102:67:0;;;11086:21:1;11143:2;11123:18;;;11116:30;11182:34;11162:18;;;11155:62;-1:-1:-1;;;11233:18:1;;;11226:31;11274:19;;7102:67:0;10902:397:1;7102:67:0;7273:68;7296:6;7273:68;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7273:18:0;;;;;;:9;:18;;;;;;;:68;:22;:68::i;:::-;-1:-1:-1;;;;;7252:18:0;;;;;;:9;:18;;;;;:89;7371:12;;:24;;7388:6;7371:16;:24::i;:::-;7356:12;:39;7415:37;;1595:25:1;;;7441:1:0;;-1:-1:-1;;;;;7415:37:0;;;;;1583:2:1;1568:18;7415:37:0;;;;;;;7022:442;;:::o;19455:497::-;10644:16;:23;;-1:-1:-1;;;;10644:23:0;-1:-1:-1;;;10644:23:0;;;;19559:27:::1;:20:::0;19584:1:::1;19559:24;:27::i;:::-;19544:42:::0;-1:-1:-1;19601:17:0::1;19621:30;:20:::0;19544:42;19621:24:::1;:30::i;:::-;19601:50:::0;-1:-1:-1;19691:21:0::1;19727:22;19744:4:::0;19727:16:::1;:22::i;:::-;19765:18;19786:41;:21;19812:14:::0;19786:25:::1;:41::i;:::-;19765:62;;19842:35;19855:9;19866:10;19842:12;:35::i;:::-;19897:43;::::0;;11506:25:1;;;11562:2;11547:18;;11540:34;;;11590:18;;;11583:34;;;19897:43:0::1;::::0;11494:2:1;11479:18;19897:43:0::1;;;;;;;-1:-1:-1::0;;10698:16:0;:24;;-1:-1:-1;;;;10698:24:0;;;-1:-1:-1;;;19455:497:0:o;5979:617::-;-1:-1:-1;;;;;6139:20:0;;6131:70;;;;-1:-1:-1;;;6131:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6224:23:0;;6216:71;;;;-1:-1:-1;;;6216:71:0;;;;;;;:::i;:::-;6388;6410:6;6388:71;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6388:17:0;;;;;;:9;:17;;;;;;;:71;:21;:71::i;:::-;-1:-1:-1;;;;;6368:17:0;;;;;;;:9;:17;;;;;;:91;;;;6497:20;;;;;;;:32;;6522:6;6497:24;:32::i;:::-;-1:-1:-1;;;;;6474:20:0;;;;;;;:9;:20;;;;;;;:55;;;;6549:35;;;;;;;;;;6577:6;1595:25:1;;1583:2;1568:18;;1449:177;1084:106:0;1142:7;1173:5;1177:1;1173;:5;:::i;1200:106::-;1258:7;1289:5;1293:1;1289;:5;:::i;968:106::-;1026:7;1057:5;1061:1;1057;:5;:::i;19964:547::-;20058:16;;;20072:1;20058:16;;;;;;;;20034:21;;20058:16;;;;;;;;;;-1:-1:-1;20058:16:0;20034:40;;20107:4;20089;20094:1;20089:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20089:23:0;;;:7;;;;;;;;;;:23;;;;20137:15;;:22;;;-1:-1:-1;;;20137:22:0;;;;:15;;;;;:20;;:22;;;;;20089:7;;20137:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20127:4;20132:1;20127:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20127:32:0;;;:7;;;;;;;;;:32;20206:15;;20174:62;;20191:4;;20206:15;20224:11;20174:8;:62::i;:::-;20251:15;;:248;;-1:-1:-1;;;20251:248:0;;-1:-1:-1;;;;;20251:15:0;;;;:66;;:248;;20336:11;;20251:15;;20414:4;;20445;;20469:15;;20251:248;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20523:454;20640:15;;20608:62;;20625:4;;-1:-1:-1;;;;;20640:15:0;20658:11;20608:8;:62::i;:::-;20685:15;;-1:-1:-1;;;;;20685:15:0;:31;20724:9;20761:4;20785:11;20685:15;;20909:7;2627;2658:6;-1:-1:-1;;;;;2658:6:0;;2581:95;20909:7;20685:280;;;;;;-1:-1:-1;;;;;;20685:280:0;;;-1:-1:-1;;;;;13591:15:1;;;20685:280:0;;;13573:34:1;13623:18;;;13616:34;;;;13666:18;;;13659:34;;;;13709:18;;;13702:34;13773:15;;;13752:19;;;13745:44;20935:15:0;13805:19:1;;;13798:35;13507:19;;20685:280:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;20523:454;;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1631:456::-;1708:6;1716;1724;1777:2;1765:9;1756:7;1752:23;1748:32;1745:52;;;1793:1;1790;1783:12;1745:52;1832:9;1819:23;1851:31;1876:5;1851:31;:::i;:::-;1901:5;-1:-1:-1;1958:2:1;1943:18;;1930:32;1971:33;1930:32;1971:33;:::i;:::-;1631:456;;2023:7;;-1:-1:-1;;;2077:2:1;2062:18;;;;2049:32;;1631:456::o;2281:180::-;2340:6;2393:2;2381:9;2372:7;2368:23;2364:32;2361:52;;;2409:1;2406;2399:12;2361:52;-1:-1:-1;2432:23:1;;2281:180;-1:-1:-1;2281:180:1:o;2674:247::-;2733:6;2786:2;2774:9;2765:7;2761:23;2757:32;2754:52;;;2802:1;2799;2792:12;2754:52;2841:9;2828:23;2860:31;2885:5;2860:31;:::i;2926:160::-;2991:20;;3047:13;;3040:21;3030:32;;3020:60;;3076:1;3073;3066:12;3020:60;2926:160;;;:::o;3091:315::-;3156:6;3164;3217:2;3205:9;3196:7;3192:23;3188:32;3185:52;;;3233:1;3230;3223:12;3185:52;3272:9;3259:23;3291:31;3316:5;3291:31;:::i;:::-;3341:5;-1:-1:-1;3365:35:1;3396:2;3381:18;;3365:35;:::i;:::-;3355:45;;3091:315;;;;;:::o;3411:385::-;3497:6;3505;3513;3521;3574:3;3562:9;3553:7;3549:23;3545:33;3542:53;;;3591:1;3588;3581:12;3542:53;-1:-1:-1;;3614:23:1;;;3684:2;3669:18;;3656:32;;-1:-1:-1;3735:2:1;3720:18;;3707:32;;3786:2;3771:18;3758:32;;-1:-1:-1;3411:385:1;-1:-1:-1;3411:385:1:o;3801:180::-;3857:6;3910:2;3898:9;3889:7;3885:23;3881:32;3878:52;;;3926:1;3923;3916:12;3878:52;3949:26;3965:9;3949:26;:::i;3986:388::-;4054:6;4062;4115:2;4103:9;4094:7;4090:23;4086:32;4083:52;;;4131:1;4128;4121:12;4083:52;4170:9;4157:23;4189:31;4214:5;4189:31;:::i;:::-;4239:5;-1:-1:-1;4296:2:1;4281:18;;4268:32;4309:33;4268:32;4309:33;:::i;:::-;4361:7;4351:17;;;3986:388;;;;;:::o;4379:380::-;4458:1;4454:12;;;;4501;;;4522:61;;4576:4;4568:6;4564:17;4554:27;;4522:61;4629:2;4621:6;4618:14;4598:18;4595:38;4592:161;;4675:10;4670:3;4666:20;4663:1;4656:31;4710:4;4707:1;4700:15;4738:4;4735:1;4728:15;4592:161;;4379:380;;;:::o;4764:356::-;4966:2;4948:21;;;4985:18;;;4978:30;5044:34;5039:2;5024:18;;5017:62;5111:2;5096:18;;4764:356::o;5125:127::-;5186:10;5181:3;5177:20;5174:1;5167:31;5217:4;5214:1;5207:15;5241:4;5238:1;5231:15;5257:422;5346:1;5389:5;5346:1;5403:270;5424:7;5414:8;5411:21;5403:270;;;5483:4;5479:1;5475:6;5471:17;5465:4;5462:27;5459:53;;;5492:18;;:::i;:::-;5542:7;5532:8;5528:22;5525:55;;;5562:16;;;;5525:55;5641:22;;;;5601:15;;;;5403:270;;;5407:3;5257:422;;;;;:::o;5684:806::-;5733:5;5763:8;5753:80;;-1:-1:-1;5804:1:1;5818:5;;5753:80;5852:4;5842:76;;-1:-1:-1;5889:1:1;5903:5;;5842:76;5934:4;5952:1;5947:59;;;;6020:1;6015:130;;;;5927:218;;5947:59;5977:1;5968:10;;5991:5;;;6015:130;6052:3;6042:8;6039:17;6036:43;;;6059:18;;:::i;:::-;-1:-1:-1;;6115:1:1;6101:16;;6130:5;;5927:218;;6229:2;6219:8;6216:16;6210:3;6204:4;6201:13;6197:36;6191:2;6181:8;6178:16;6173:2;6167:4;6164:12;6160:35;6157:77;6154:159;;;-1:-1:-1;6266:19:1;;;6298:5;;6154:159;6345:34;6370:8;6364:4;6345:34;:::i;:::-;6415:6;6411:1;6407:6;6403:19;6394:7;6391:32;6388:58;;;6426:18;;:::i;:::-;6464:20;;5684:806;-1:-1:-1;;;5684:806:1:o;6495:140::-;6553:5;6582:47;6623:4;6613:8;6609:19;6603:4;6582:47;:::i;6640:168::-;6713:9;;;6744;;6761:15;;;6755:22;;6741:37;6731:71;;6782:18;;:::i;6813:251::-;6883:6;6936:2;6924:9;6915:7;6911:23;6907:32;6904:52;;;6952:1;6949;6942:12;6904:52;6984:9;6978:16;7003:31;7028:5;7003:31;:::i;9150:401::-;9352:2;9334:21;;;9391:2;9371:18;;;9364:30;9430:34;9425:2;9410:18;;9403:62;-1:-1:-1;;;9496:2:1;9481:18;;9474:35;9541:3;9526:19;;9150:401::o;9556:399::-;9758:2;9740:21;;;9797:2;9777:18;;;9770:30;9836:34;9831:2;9816:18;;9809:62;-1:-1:-1;;;9902:2:1;9887:18;;9880:33;9945:3;9930:19;;9556:399::o;10370:125::-;10435:9;;;10456:10;;;10453:36;;;10469:18;;:::i;11628:217::-;11668:1;11694;11684:132;;11738:10;11733:3;11729:20;11726:1;11719:31;11773:4;11770:1;11763:15;11801:4;11798:1;11791:15;11684:132;-1:-1:-1;11830:9:1;;11628:217::o;11850:128::-;11917:9;;;11938:11;;;11935:37;;;11952:18;;:::i;12115:127::-;12176:10;12171:3;12167:20;12164:1;12157:31;12207:4;12204:1;12197:15;12231:4;12228:1;12221:15;12247:980;12509:4;12557:3;12546:9;12542:19;12588:6;12577:9;12570:25;12614:2;12652:6;12647:2;12636:9;12632:18;12625:34;12695:3;12690:2;12679:9;12675:18;12668:31;12719:6;12754;12748:13;12785:6;12777;12770:22;12823:3;12812:9;12808:19;12801:26;;12862:2;12854:6;12850:15;12836:29;;12883:1;12893:195;12907:6;12904:1;12901:13;12893:195;;;12972:13;;-1:-1:-1;;;;;12968:39:1;12956:52;;13063:15;;;;13028:12;;;;13004:1;12922:9;12893:195;;;-1:-1:-1;;;;;;;13144:32:1;;;;13139:2;13124:18;;13117:60;-1:-1:-1;;;13208:3:1;13193:19;13186:35;13105:3;12247:980;-1:-1:-1;;;12247:980:1:o;13844:306::-;13932:6;13940;13948;14001:2;13989:9;13980:7;13976:23;13972:32;13969:52;;;14017:1;14014;14007:12;13969:52;14046:9;14040:16;14030:26;;14096:2;14085:9;14081:18;14075:25;14065:35;;14140:2;14129:9;14125:18;14119:25;14109:35;;13844:306;;;;;:::o

Swarm Source

ipfs://a7a45634090972d0dcc8dd439493fe8177df4af1a89edae7794aaa6a17f36bb7

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.