ETH Price: $3,434.00 (+4.51%)

Contract

0x61610628432482263E2a06caB932130bCE098a30
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer160702942022-11-28 18:31:23726 days ago1669660283IN
0x61610628...bCE098a30
0 ETH0.0030829713.92736025
Approve156721332022-10-04 3:35:47781 days ago1664854547IN
0x61610628...bCE098a30
0 ETH0.0002695911.09599907
Approve145580412022-04-10 12:45:41958 days ago1649594741IN
0x61610628...bCE098a30
0 ETH0.0004037616.61775065
Approve145340862022-04-06 19:10:37962 days ago1649272237IN
0x61610628...bCE098a30
0 ETH0.0043320393
Approve145245492022-04-05 7:24:34963 days ago1649143474IN
0x61610628...bCE098a30
0 ETH0.0022535348.37894131
Approve145232652022-04-05 2:29:12963 days ago1649125752IN
0x61610628...bCE098a30
0 ETH0.0037777481.10053495
Approve145232382022-04-05 2:21:07963 days ago1649125267IN
0x61610628...bCE098a30
0 ETH0.0029889464.16669144
Approve145220942022-04-04 22:06:37963 days ago1649109997IN
0x61610628...bCE098a30
0 ETH0.0034991375.11930494
Approve145216622022-04-04 20:27:49963 days ago1649104069IN
0x61610628...bCE098a30
0 ETH0.0026692157.30272027
Approve145203272022-04-04 15:33:12964 days ago1649086392IN
0x61610628...bCE098a30
0 ETH0.0039587284.98591627
Approve145168292022-04-04 2:16:28964 days ago1649038588IN
0x61610628...bCE098a30
0 ETH0.0023473850.39364834
Approve145164422022-04-04 0:47:22964 days ago1649033242IN
0x61610628...bCE098a30
0 ETH0.0039074383.88469416
Approve145163492022-04-04 0:21:37964 days ago1649031697IN
0x61610628...bCE098a30
0 ETH0.0015198132.62727863
Approve145160982022-04-03 23:30:22964 days ago1649028622IN
0x61610628...bCE098a30
0 ETH0.0019325841.48874185
Approve145160652022-04-03 23:22:34964 days ago1649028154IN
0x61610628...bCE098a30
0 ETH0.0023982151.48493427
Approve145160522022-04-03 23:19:43964 days ago1649027983IN
0x61610628...bCE098a30
0 ETH0.0024845953.3392872
Approve145160502022-04-03 23:19:13964 days ago1649027953IN
0x61610628...bCE098a30
0 ETH0.0024703453.03326873
Approve145160332022-04-03 23:15:26964 days ago1649027726IN
0x61610628...bCE098a30
0 ETH0.0023388450.21024646
Approve145160032022-04-03 23:08:41964 days ago1649027321IN
0x61610628...bCE098a30
0 ETH0.0025481154.70282378
Approve145159862022-04-03 23:04:58964 days ago1649027098IN
0x61610628...bCE098a30
0 ETH0.0019358941.55984777
Approve145159662022-04-03 23:00:53964 days ago1649026853IN
0x61610628...bCE098a30
0 ETH0.0020063143.07160421
Approve145159402022-04-03 22:55:14964 days ago1649026514IN
0x61610628...bCE098a30
0 ETH0.0021892146.99796521
Approve145159292022-04-03 22:52:49964 days ago1649026369IN
0x61610628...bCE098a30
0 ETH0.002124845.61518795
Approve145159202022-04-03 22:51:13964 days ago1649026273IN
0x61610628...bCE098a30
0 ETH0.0022128847.50620281
Approve145159152022-04-03 22:50:19964 days ago1649026219IN
0x61610628...bCE098a30
0 ETH0.0023675650.82682325
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
160702942022-11-28 18:31:23726 days ago1669660283
0x61610628...bCE098a30
28 wei
160702942022-11-28 18:31:23726 days ago1669660283
0x61610628...bCE098a30
28 wei
160702942022-11-28 18:31:23726 days ago1669660283
0x61610628...bCE098a30
55 wei
145367582022-04-07 5:05:50961 days ago1649307950
0x61610628...bCE098a30
0.00168947 ETH
145367582022-04-07 5:05:50961 days ago1649307950
0x61610628...bCE098a30
0.00168947 ETH
145367582022-04-07 5:05:50961 days ago1649307950
0x61610628...bCE098a30
0.00337895 ETH
145340862022-04-06 19:10:37962 days ago1649272237
0x61610628...bCE098a30
0.00223119 ETH
145340862022-04-06 19:10:37962 days ago1649272237
0x61610628...bCE098a30
0.00223119 ETH
145340862022-04-06 19:10:37962 days ago1649272237
0x61610628...bCE098a30
0.00446239 ETH
145245512022-04-05 7:25:04963 days ago1649143504
0x61610628...bCE098a30
0.00456903 ETH
145245512022-04-05 7:25:04963 days ago1649143504
0x61610628...bCE098a30
0.00456903 ETH
145245512022-04-05 7:25:04963 days ago1649143504
0x61610628...bCE098a30
0.00913806 ETH
145236712022-04-05 4:03:11963 days ago1649131391
0x61610628...bCE098a30
0.00585373 ETH
145236712022-04-05 4:03:11963 days ago1649131391
0x61610628...bCE098a30
0.00585373 ETH
145236712022-04-05 4:03:11963 days ago1649131391
0x61610628...bCE098a30
0.01170747 ETH
145232682022-04-05 2:30:54963 days ago1649125854
0x61610628...bCE098a30
0.00392285 ETH
145232682022-04-05 2:30:54963 days ago1649125854
0x61610628...bCE098a30
0.00392285 ETH
145232682022-04-05 2:30:54963 days ago1649125854
0x61610628...bCE098a30
0.00784571 ETH
145232432022-04-05 2:22:12963 days ago1649125332
0x61610628...bCE098a30
0.0018058 ETH
145232432022-04-05 2:22:12963 days ago1649125332
0x61610628...bCE098a30
0.0018058 ETH
145232432022-04-05 2:22:12963 days ago1649125332
0x61610628...bCE098a30
0.00361161 ETH
145226682022-04-05 0:18:59963 days ago1649117939
0x61610628...bCE098a30
0.00272148 ETH
145226682022-04-05 0:18:59963 days ago1649117939
0x61610628...bCE098a30
0.00272148 ETH
145226682022-04-05 0:18:59963 days ago1649117939
0x61610628...bCE098a30
0.00544296 ETH
145199112022-04-04 13:57:23964 days ago1649080643
0x61610628...bCE098a30
0.00335831 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Everlasting

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-04-03
*/

/**

▄▄▄ . ▌ ▐·▄▄▄ .▄▄▄  ▄▄▌   ▄▄▄· .▄▄ ·▄▄▄▄▄▪   ▐ ▄  ▄▄ • 
▀▄.▀·▪█·█▌▀▄.▀·▀▄ █·██•  ▐█ ▀█ ▐█ ▀.•██  ██ •█▌▐█▐█ ▀ ▪
▐▀▀▪▄▐█▐█•▐▀▀▪▄▐▀▀▄ ██▪  ▄█▀▀█ ▄▀▀▀█▄▐█.▪▐█·▐█▐▐▌▄█ ▀█▄
▐█▄▄▌ ███ ▐█▄▄▌▐█•█▌▐█▌▐▌▐█ ▪▐▌▐█▄▪▐█▐█▌·▐█▌██▐█▌▐█▄▪▐█
 ▀▀▀ . ▀   ▀▀▀ .▀  ▀.▀▀▀  ▀  ▀  ▀▀▀▀ ▀▀▀ ▀▀▀▀▀ █▪·▀▀▀▀

It is of man's nature to believe he is everlasting; however this illusory event often leads to his dismay.

*/

pragma solidity ^0.8.4;
// SPDX-License-Identifier: UNLICENSED
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}

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

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

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

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

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

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

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

}

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

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

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

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

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

}  

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

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

contract Everlasting is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping (address => uint) private cooldown;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    
    uint256 private _feeAddr1;
    uint256 private _feeAddr2;
    address payable private _feeAddrWallet1;
    address payable private _feeAddrWallet2;
    
    string private constant _name = "Everlasting";
    string private constant _symbol = "Everlasting";
    uint8 private constant _decimals = 9;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private cooldownEnabled = false;
    uint256 private _maxTxAmount = _tTotal;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () {
        _feeAddrWallet1 = payable(0x39AEe60589918Ac89759e62fee5c1a7e66De151F);
        _feeAddrWallet2 = payable(0x39AEe60589918Ac89759e62fee5c1a7e66De151F);
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_feeAddrWallet1] = true;
        _isExcludedFromFee[_feeAddrWallet2] = true;
        emit Transfer(address(0x39AEe60589918Ac89759e62fee5c1a7e66De151F), _msgSender(), _tTotal);
    }

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

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

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

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

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

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

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

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

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

    function setCooldownEnabled(bool onoff) external onlyOwner() {
        cooldownEnabled = onoff;
    }

    function tokenFromReflection(uint256 rAmount) private view returns(uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate =  _getRate();
        return rAmount.div(currentRate);
    }

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        _feeAddr1 = 1;
        _feeAddr2 = 7;
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && cooldownEnabled) {
                // Cooldown
                require(amount <= _maxTxAmount);
                require(cooldown[to] < block.timestamp);
                cooldown[to] = block.timestamp + (30 seconds);
            }
            
            
            if (to == uniswapV2Pair && from != address(uniswapV2Router) && ! _isExcludedFromFee[from]) {
                _feeAddr1 = 9;
                _feeAddr2 = 8;
            }
            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
		
        _tokenTransfer(from,to,amount);
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
        
    function sendETHToFee(uint256 amount) private {
        _feeAddrWallet1.transfer(amount.div(2));
        _feeAddrWallet2.transfer(amount.div(2));
    }
    
    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        swapEnabled = true;
        cooldownEnabled = true;
        _maxTxAmount = 20000000000 * 10**9;
        tradingOpen = true;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }
    
    function setBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }
    
    function delBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }
        
    function _tokenTransfer(address sender, address recipient, uint256 amount) private {
        _transferStandard(sender, recipient, amount);
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); 
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

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

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}
    
    function manualswap() external {
        require(_msgSender() == _feeAddrWallet1);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() external {
        require(_msgSender() == _feeAddrWallet1);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
    

    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _feeAddr1, _feeAddr2);
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

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

    function _getRValues(uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }

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

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

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":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526200001b683635c9adc5dea000006000196200022a565b620000299060001962000206565b600855600f805462ffffff60a81b19169055683635c9adc5dea000006010553480156200005557600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600c80547339aee60589918ac89759e62fee5c1a7e66de151f6001600160a01b03199182168117909255600d8054909116909117905560085460026000620000dc3390565b6001600160a01b03166001600160a01b031681526020019081526020016000208190555060016005600062000116620001f760201b60201c565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526005909352818320805485166001908117909155600c54821684528284208054861682179055600d54909116835291208054909216179055620001873390565b6001600160a01b03167339aee60589918ac89759e62fee5c1a7e66de151f6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea00000604051620001e991815260200190565b60405180910390a36200024b565b6000546001600160a01b031690565b6000828210156200022557634e487b7160e01b81526011600452602481fd5b500390565b6000826200024657634e487b7160e01b81526012600452602481fd5b500690565b6119d6806200025b6000396000f3fe6080604052600436106101025760003560e01c806370a0823111610095578063a9059cbb11610064578063a9059cbb14610297578063b515566a146102b7578063c3c8cd80146102d7578063c9567bf9146102ec578063dd62ed3e1461030157600080fd5b806370a082311461023a578063715018a61461025a5780638da5cb5b1461026f57806395d89b411461010e57600080fd5b8063273123b7116100d1578063273123b7146101c7578063313ce567146101e95780635932ead1146102055780636fc3eaec1461022557600080fd5b806306fdde031461010e578063095ea7b31461015157806318160ddd1461018157806323b872dd146101a757600080fd5b3661010957005b600080fd5b34801561011a57600080fd5b50604080518082018252600b81526a457665726c617374696e6760a81b6020820152905161014891906117a8565b60405180910390f35b34801561015d57600080fd5b5061017161016c366004611651565b610347565b6040519015158152602001610148565b34801561018d57600080fd5b50683635c9adc5dea000005b604051908152602001610148565b3480156101b357600080fd5b506101716101c2366004611611565b61035e565b3480156101d357600080fd5b506101e76101e23660046115a1565b6103c7565b005b3480156101f557600080fd5b5060405160098152602001610148565b34801561021157600080fd5b506101e7610220366004611743565b61041b565b34801561023157600080fd5b506101e7610463565b34801561024657600080fd5b506101996102553660046115a1565b610490565b34801561026657600080fd5b506101e76104b2565b34801561027b57600080fd5b506000546040516001600160a01b039091168152602001610148565b3480156102a357600080fd5b506101716102b2366004611651565b610526565b3480156102c357600080fd5b506101e76102d236600461167c565b610533565b3480156102e357600080fd5b506101e76105d7565b3480156102f857600080fd5b506101e761060d565b34801561030d57600080fd5b5061019961031c3660046115d9565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b60006103543384846109d1565b5060015b92915050565b600061036b848484610af5565b6103bd84336103b885604051806060016040528060288152602001611979602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190610e42565b6109d1565b5060019392505050565b6000546001600160a01b031633146103fa5760405162461bcd60e51b81526004016103f1906117fb565b60405180910390fd5b6001600160a01b03166000908152600660205260409020805460ff19169055565b6000546001600160a01b031633146104455760405162461bcd60e51b81526004016103f1906117fb565b600f8054911515600160b81b0260ff60b81b19909216919091179055565b600c546001600160a01b0316336001600160a01b03161461048357600080fd5b4761048d81610e7c565b50565b6001600160a01b03811660009081526002602052604081205461035890610f01565b6000546001600160a01b031633146104dc5760405162461bcd60e51b81526004016103f1906117fb565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000610354338484610af5565b6000546001600160a01b0316331461055d5760405162461bcd60e51b81526004016103f1906117fb565b60005b81518110156105d35760016006600084848151811061058f57634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806105cb8161190e565b915050610560565b5050565b600c546001600160a01b0316336001600160a01b0316146105f757600080fd5b600061060230610490565b905061048d81610f85565b6000546001600160a01b031633146106375760405162461bcd60e51b81526004016103f1906117fb565b600f54600160a01b900460ff16156106915760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016103f1565b600e80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556106ce3082683635c9adc5dea000006109d1565b806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561070757600080fd5b505afa15801561071b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061073f91906115bd565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561078757600080fd5b505afa15801561079b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107bf91906115bd565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b15801561080757600080fd5b505af115801561081b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083f91906115bd565b600f80546001600160a01b0319166001600160a01b03928316179055600e541663f305d719473061086f81610490565b6000806108846000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b1580156108e757600080fd5b505af11580156108fb573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610920919061177b565b5050600f80546801158e460913d0000060105563ffff00ff60a01b198116630101000160a01b17909155600e5460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b390604401602060405180830381600087803b15801561099957600080fd5b505af11580156109ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105d3919061175f565b6001600160a01b038316610a335760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103f1565b6001600160a01b038216610a945760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103f1565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b595760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103f1565b6001600160a01b038216610bbb5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103f1565b60008111610c1d5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016103f1565b6001600a556007600b556000546001600160a01b03848116911614801590610c5357506000546001600160a01b03838116911614155b15610e32576001600160a01b03831660009081526006602052604090205460ff16158015610c9a57506001600160a01b03821660009081526006602052604090205460ff16155b610ca357600080fd5b600f546001600160a01b038481169116148015610cce5750600e546001600160a01b03838116911614155b8015610cf357506001600160a01b03821660009081526005602052604090205460ff16155b8015610d085750600f54600160b81b900460ff165b15610d6557601054811115610d1c57600080fd5b6001600160a01b0382166000908152600760205260409020544211610d4057600080fd5b610d4b42601e6118a0565b6001600160a01b0383166000908152600760205260409020555b600f546001600160a01b038381169116148015610d905750600e546001600160a01b03848116911614155b8015610db557506001600160a01b03831660009081526005602052604090205460ff16155b15610dc5576009600a556008600b555b6000610dd030610490565b600f54909150600160a81b900460ff16158015610dfb5750600f546001600160a01b03858116911614155b8015610e105750600f54600160b01b900460ff165b15610e3057610e1e81610f85565b478015610e2e57610e2e47610e7c565b505b505b610e3d83838361112a565b505050565b60008184841115610e665760405162461bcd60e51b81526004016103f191906117a8565b506000610e7384866118f7565b95945050505050565b600c546001600160a01b03166108fc610e96836002611135565b6040518115909202916000818181858888f19350505050158015610ebe573d6000803e3d6000fd5b50600d546001600160a01b03166108fc610ed9836002611135565b6040518115909202916000818181858888f193505050501580156105d3573d6000803e3d6000fd5b6000600854821115610f685760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016103f1565b6000610f72611177565b9050610f7e8382611135565b9392505050565b600f805460ff60a81b1916600160a81b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110610fdb57634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561102f57600080fd5b505afa158015611043573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061106791906115bd565b8160018151811061108857634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152600e546110ae91309116846109d1565b600e5460405163791ac94760e01b81526001600160a01b039091169063791ac947906110e7908590600090869030904290600401611830565b600060405180830381600087803b15801561110157600080fd5b505af1158015611115573d6000803e3d6000fd5b5050600f805460ff60a81b1916905550505050565b610e3d83838361119a565b6000610f7e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611291565b60008060006111846112bf565b90925090506111938282611135565b9250505090565b6000806000806000806111ac87611301565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506111de908761135e565b6001600160a01b03808b1660009081526002602052604080822093909355908a168152205461120d90866113a0565b6001600160a01b03891660009081526002602052604090205561122f816113ff565b6112398483611449565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161127e91815260200190565b60405180910390a3505050505050505050565b600081836112b25760405162461bcd60e51b81526004016103f191906117a8565b506000610e7384866118b8565b6008546000908190683635c9adc5dea000006112db8282611135565b8210156112f857505060085492683635c9adc5dea0000092509050565b90939092509050565b600080600080600080600080600061131e8a600a54600b5461146d565b925092509250600061132e611177565b905060008060006113418e8787876114c2565b919e509c509a509598509396509194505050505091939550919395565b6000610f7e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610e42565b6000806113ad83856118a0565b905083811015610f7e5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016103f1565b6000611409611177565b905060006114178383611512565b3060009081526002602052604090205490915061143490826113a0565b30600090815260026020526040902055505050565b600854611456908361135e565b60085560095461146690826113a0565b6009555050565b600080808061148760646114818989611512565b90611135565b9050600061149a60646114818a89611512565b905060006114b2826114ac8b8661135e565b9061135e565b9992985090965090945050505050565b60008080806114d18886611512565b905060006114df8887611512565b905060006114ed8888611512565b905060006114ff826114ac868661135e565b939b939a50919850919650505050505050565b60008261152157506000610358565b600061152d83856118d8565b90508261153a85836118b8565b14610f7e5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016103f1565b803561159c81611955565b919050565b6000602082840312156115b2578081fd5b8135610f7e81611955565b6000602082840312156115ce578081fd5b8151610f7e81611955565b600080604083850312156115eb578081fd5b82356115f681611955565b9150602083013561160681611955565b809150509250929050565b600080600060608486031215611625578081fd5b833561163081611955565b9250602084013561164081611955565b929592945050506040919091013590565b60008060408385031215611663578182fd5b823561166e81611955565b946020939093013593505050565b6000602080838503121561168e578182fd5b823567ffffffffffffffff808211156116a5578384fd5b818501915085601f8301126116b8578384fd5b8135818111156116ca576116ca61193f565b8060051b604051601f19603f830116810181811085821117156116ef576116ef61193f565b604052828152858101935084860182860187018a101561170d578788fd5b8795505b838610156117365761172281611591565b855260019590950194938601938601611711565b5098975050505050505050565b600060208284031215611754578081fd5b8135610f7e8161196a565b600060208284031215611770578081fd5b8151610f7e8161196a565b60008060006060848603121561178f578283fd5b8351925060208401519150604084015190509250925092565b6000602080835283518082850152825b818110156117d4578581018301518582016040015282016117b8565b818111156117e55783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b8181101561187f5784516001600160a01b03168352938301939183019160010161185a565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156118b3576118b3611929565b500190565b6000826118d357634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156118f2576118f2611929565b500290565b60008282101561190957611909611929565b500390565b600060001982141561192257611922611929565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461048d57600080fd5b801515811461048d57600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122031590c412531e5f7f2fac3103ba17a4b123538a0a0dd08f6b9a3e863a851802164736f6c63430008040033

Deployed Bytecode

0x6080604052600436106101025760003560e01c806370a0823111610095578063a9059cbb11610064578063a9059cbb14610297578063b515566a146102b7578063c3c8cd80146102d7578063c9567bf9146102ec578063dd62ed3e1461030157600080fd5b806370a082311461023a578063715018a61461025a5780638da5cb5b1461026f57806395d89b411461010e57600080fd5b8063273123b7116100d1578063273123b7146101c7578063313ce567146101e95780635932ead1146102055780636fc3eaec1461022557600080fd5b806306fdde031461010e578063095ea7b31461015157806318160ddd1461018157806323b872dd146101a757600080fd5b3661010957005b600080fd5b34801561011a57600080fd5b50604080518082018252600b81526a457665726c617374696e6760a81b6020820152905161014891906117a8565b60405180910390f35b34801561015d57600080fd5b5061017161016c366004611651565b610347565b6040519015158152602001610148565b34801561018d57600080fd5b50683635c9adc5dea000005b604051908152602001610148565b3480156101b357600080fd5b506101716101c2366004611611565b61035e565b3480156101d357600080fd5b506101e76101e23660046115a1565b6103c7565b005b3480156101f557600080fd5b5060405160098152602001610148565b34801561021157600080fd5b506101e7610220366004611743565b61041b565b34801561023157600080fd5b506101e7610463565b34801561024657600080fd5b506101996102553660046115a1565b610490565b34801561026657600080fd5b506101e76104b2565b34801561027b57600080fd5b506000546040516001600160a01b039091168152602001610148565b3480156102a357600080fd5b506101716102b2366004611651565b610526565b3480156102c357600080fd5b506101e76102d236600461167c565b610533565b3480156102e357600080fd5b506101e76105d7565b3480156102f857600080fd5b506101e761060d565b34801561030d57600080fd5b5061019961031c3660046115d9565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b60006103543384846109d1565b5060015b92915050565b600061036b848484610af5565b6103bd84336103b885604051806060016040528060288152602001611979602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190610e42565b6109d1565b5060019392505050565b6000546001600160a01b031633146103fa5760405162461bcd60e51b81526004016103f1906117fb565b60405180910390fd5b6001600160a01b03166000908152600660205260409020805460ff19169055565b6000546001600160a01b031633146104455760405162461bcd60e51b81526004016103f1906117fb565b600f8054911515600160b81b0260ff60b81b19909216919091179055565b600c546001600160a01b0316336001600160a01b03161461048357600080fd5b4761048d81610e7c565b50565b6001600160a01b03811660009081526002602052604081205461035890610f01565b6000546001600160a01b031633146104dc5760405162461bcd60e51b81526004016103f1906117fb565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000610354338484610af5565b6000546001600160a01b0316331461055d5760405162461bcd60e51b81526004016103f1906117fb565b60005b81518110156105d35760016006600084848151811061058f57634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806105cb8161190e565b915050610560565b5050565b600c546001600160a01b0316336001600160a01b0316146105f757600080fd5b600061060230610490565b905061048d81610f85565b6000546001600160a01b031633146106375760405162461bcd60e51b81526004016103f1906117fb565b600f54600160a01b900460ff16156106915760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016103f1565b600e80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556106ce3082683635c9adc5dea000006109d1565b806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561070757600080fd5b505afa15801561071b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061073f91906115bd565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561078757600080fd5b505afa15801561079b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107bf91906115bd565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b15801561080757600080fd5b505af115801561081b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083f91906115bd565b600f80546001600160a01b0319166001600160a01b03928316179055600e541663f305d719473061086f81610490565b6000806108846000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b1580156108e757600080fd5b505af11580156108fb573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610920919061177b565b5050600f80546801158e460913d0000060105563ffff00ff60a01b198116630101000160a01b17909155600e5460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b390604401602060405180830381600087803b15801561099957600080fd5b505af11580156109ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105d3919061175f565b6001600160a01b038316610a335760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103f1565b6001600160a01b038216610a945760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103f1565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b595760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103f1565b6001600160a01b038216610bbb5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103f1565b60008111610c1d5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016103f1565b6001600a556007600b556000546001600160a01b03848116911614801590610c5357506000546001600160a01b03838116911614155b15610e32576001600160a01b03831660009081526006602052604090205460ff16158015610c9a57506001600160a01b03821660009081526006602052604090205460ff16155b610ca357600080fd5b600f546001600160a01b038481169116148015610cce5750600e546001600160a01b03838116911614155b8015610cf357506001600160a01b03821660009081526005602052604090205460ff16155b8015610d085750600f54600160b81b900460ff165b15610d6557601054811115610d1c57600080fd5b6001600160a01b0382166000908152600760205260409020544211610d4057600080fd5b610d4b42601e6118a0565b6001600160a01b0383166000908152600760205260409020555b600f546001600160a01b038381169116148015610d905750600e546001600160a01b03848116911614155b8015610db557506001600160a01b03831660009081526005602052604090205460ff16155b15610dc5576009600a556008600b555b6000610dd030610490565b600f54909150600160a81b900460ff16158015610dfb5750600f546001600160a01b03858116911614155b8015610e105750600f54600160b01b900460ff165b15610e3057610e1e81610f85565b478015610e2e57610e2e47610e7c565b505b505b610e3d83838361112a565b505050565b60008184841115610e665760405162461bcd60e51b81526004016103f191906117a8565b506000610e7384866118f7565b95945050505050565b600c546001600160a01b03166108fc610e96836002611135565b6040518115909202916000818181858888f19350505050158015610ebe573d6000803e3d6000fd5b50600d546001600160a01b03166108fc610ed9836002611135565b6040518115909202916000818181858888f193505050501580156105d3573d6000803e3d6000fd5b6000600854821115610f685760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016103f1565b6000610f72611177565b9050610f7e8382611135565b9392505050565b600f805460ff60a81b1916600160a81b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110610fdb57634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561102f57600080fd5b505afa158015611043573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061106791906115bd565b8160018151811061108857634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152600e546110ae91309116846109d1565b600e5460405163791ac94760e01b81526001600160a01b039091169063791ac947906110e7908590600090869030904290600401611830565b600060405180830381600087803b15801561110157600080fd5b505af1158015611115573d6000803e3d6000fd5b5050600f805460ff60a81b1916905550505050565b610e3d83838361119a565b6000610f7e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611291565b60008060006111846112bf565b90925090506111938282611135565b9250505090565b6000806000806000806111ac87611301565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506111de908761135e565b6001600160a01b03808b1660009081526002602052604080822093909355908a168152205461120d90866113a0565b6001600160a01b03891660009081526002602052604090205561122f816113ff565b6112398483611449565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161127e91815260200190565b60405180910390a3505050505050505050565b600081836112b25760405162461bcd60e51b81526004016103f191906117a8565b506000610e7384866118b8565b6008546000908190683635c9adc5dea000006112db8282611135565b8210156112f857505060085492683635c9adc5dea0000092509050565b90939092509050565b600080600080600080600080600061131e8a600a54600b5461146d565b925092509250600061132e611177565b905060008060006113418e8787876114c2565b919e509c509a509598509396509194505050505091939550919395565b6000610f7e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610e42565b6000806113ad83856118a0565b905083811015610f7e5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016103f1565b6000611409611177565b905060006114178383611512565b3060009081526002602052604090205490915061143490826113a0565b30600090815260026020526040902055505050565b600854611456908361135e565b60085560095461146690826113a0565b6009555050565b600080808061148760646114818989611512565b90611135565b9050600061149a60646114818a89611512565b905060006114b2826114ac8b8661135e565b9061135e565b9992985090965090945050505050565b60008080806114d18886611512565b905060006114df8887611512565b905060006114ed8888611512565b905060006114ff826114ac868661135e565b939b939a50919850919650505050505050565b60008261152157506000610358565b600061152d83856118d8565b90508261153a85836118b8565b14610f7e5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016103f1565b803561159c81611955565b919050565b6000602082840312156115b2578081fd5b8135610f7e81611955565b6000602082840312156115ce578081fd5b8151610f7e81611955565b600080604083850312156115eb578081fd5b82356115f681611955565b9150602083013561160681611955565b809150509250929050565b600080600060608486031215611625578081fd5b833561163081611955565b9250602084013561164081611955565b929592945050506040919091013590565b60008060408385031215611663578182fd5b823561166e81611955565b946020939093013593505050565b6000602080838503121561168e578182fd5b823567ffffffffffffffff808211156116a5578384fd5b818501915085601f8301126116b8578384fd5b8135818111156116ca576116ca61193f565b8060051b604051601f19603f830116810181811085821117156116ef576116ef61193f565b604052828152858101935084860182860187018a101561170d578788fd5b8795505b838610156117365761172281611591565b855260019590950194938601938601611711565b5098975050505050505050565b600060208284031215611754578081fd5b8135610f7e8161196a565b600060208284031215611770578081fd5b8151610f7e8161196a565b60008060006060848603121561178f578283fd5b8351925060208401519150604084015190509250925092565b6000602080835283518082850152825b818110156117d4578581018301518582016040015282016117b8565b818111156117e55783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b8181101561187f5784516001600160a01b03168352938301939183019160010161185a565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156118b3576118b3611929565b500190565b6000826118d357634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156118f2576118f2611929565b500290565b60008282101561190957611909611929565b500390565b600060001982141561192257611922611929565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461048d57600080fd5b801515811461048d57600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122031590c412531e5f7f2fac3103ba17a4b123538a0a0dd08f6b9a3e863a851802164736f6c63430008040033

Deployed Bytecode Sourcemap

4330:10371:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6232:83;;;;;;;;;;-1:-1:-1;6302:5:0;;;;;;;;;;;-1:-1:-1;;;6302:5:0;;;;6232:83;;;;6302:5;6232:83;:::i;:::-;;;;;;;;7084:161;;;;;;;;;;-1:-1:-1;7084:161:0;;;;;:::i;:::-;;:::i;:::-;;;5477:14:1;;5470:22;5452:41;;5440:2;5425:18;7084:161:0;5407:92:1;6509:95:0;;;;;;;;;;-1:-1:-1;4834:21:0;6509:95;;;10168:25:1;;;10156:2;10141:18;6509:95:0;10123:76:1;7253:313:0;;;;;;;;;;-1:-1:-1;7253:313:0;;;;;:::i;:::-;;:::i;11428:88::-;;;;;;;;;;-1:-1:-1;11428:88:0;;;;;:::i;:::-;;:::i;:::-;;6418:83;;;;;;;;;;-1:-1:-1;6418:83:0;;5260:1;11334:36:1;;11322:2;11307:18;6418:83:0;11289:87:1;7574:103:0;;;;;;;;;;-1:-1:-1;7574:103:0;;;;;:::i;:::-;;:::i;12805:194::-;;;;;;;;;;;;;:::i;6612:138::-;;;;;;;;;;-1:-1:-1;6612:138:0;;;;;:::i;:::-;;:::i;3409:148::-;;;;;;;;;;;;;:::i;3195:79::-;;;;;;;;;;-1:-1:-1;3233:7:0;3260:6;3195:79;;-1:-1:-1;;;;;3260:6:0;;;4050:51:1;;4038:2;4023:18;3195:79:0;4005:102:1;6758:167:0;;;;;;;;;;-1:-1:-1;6758:167:0;;;;;:::i;:::-;;:::i;11252:164::-;;;;;;;;;;-1:-1:-1;11252:164:0;;;;;:::i;:::-;;:::i;12598:195::-;;;;;;;;;;;;;:::i;10424:816::-;;;;;;;;;;;;;:::i;6933:143::-;;;;;;;;;;-1:-1:-1;6933:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;7041:18:0;;;7014:7;7041:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6933:143;7084:161;7159:4;7176:39;993:10;7199:7;7208:6;7176:8;:39::i;:::-;-1:-1:-1;7233:4:0;7084:161;;;;;:::o;7253:313::-;7351:4;7368:36;7378:6;7386:9;7397:6;7368:9;:36::i;:::-;7415:121;7424:6;993:10;7446:89;7484:6;7446:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7446:19:0;;;;;;:11;:19;;;;;;;;993:10;7446:33;;;;;;;;;;:37;:89::i;:::-;7415:8;:121::i;:::-;-1:-1:-1;7554:4:0;7253:313;;;;;:::o;11428:88::-;3322:6;;-1:-1:-1;;;;;3322:6:0;993:10;3322:22;3314:67;;;;-1:-1:-1;;;3314:67:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;11488:12:0::1;11503:5;11488:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;11488:20:0::1;::::0;;11428:88::o;7574:103::-;3322:6;;-1:-1:-1;;;;;3322:6:0;993:10;3322:22;3314:67;;;;-1:-1:-1;;;3314:67:0;;;;;;;:::i;:::-;7646:15:::1;:23:::0;;;::::1;;-1:-1:-1::0;;;7646:23:0::1;-1:-1:-1::0;;;;7646:23:0;;::::1;::::0;;;::::1;::::0;;7574:103::o;12805:194::-;12871:15;;-1:-1:-1;;;;;12871:15:0;993:10;-1:-1:-1;;;;;12855:31:0;;12847:40;;;;;;12927:21;12959:32;12927:21;12959:12;:32::i;:::-;12805:194;:::o;6612:138::-;-1:-1:-1;;;;;6725:16:0;;6678:7;6725:16;;;:7;:16;;;;;;6705:37;;:19;:37::i;3409:148::-;3322:6;;-1:-1:-1;;;;;3322:6:0;993:10;3322:22;3314:67;;;;-1:-1:-1;;;3314:67:0;;;;;;;:::i;:::-;3516:1:::1;3500:6:::0;;3479:40:::1;::::0;-1:-1:-1;;;;;3500:6:0;;::::1;::::0;3479:40:::1;::::0;3516:1;;3479:40:::1;3547:1;3530:19:::0;;-1:-1:-1;;;;;;3530:19:0::1;::::0;;3409:148::o;6758:167::-;6836:4;6853:42;993:10;6877:9;6888:6;6853:9;:42::i;11252:164::-;3322:6;;-1:-1:-1;;;;;3322:6:0;993:10;3322:22;3314:67;;;;-1:-1:-1;;;3314:67:0;;;;;;;:::i;:::-;11326:6:::1;11321:88;11342:5;:12;11338:1;:16;11321:88;;;11393:4;11376;:14;11381:5;11387:1;11381:8;;;;;;-1:-1:-1::0;;;11381:8:0::1;;;;;;;;;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;11376:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;11376:14:0;:21;;-1:-1:-1;;11376:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11356:3;::::1;::::0;::::1;:::i;:::-;;;;11321:88;;;;11252:164:::0;:::o;12598:195::-;12664:15;;-1:-1:-1;;;;;12664:15:0;993:10;-1:-1:-1;;;;;12648:31:0;;12640:40;;;;;;12691:23;12717:24;12735:4;12717:9;:24::i;:::-;12691:50;;12752:33;12769:15;12752:16;:33::i;10424:816::-;3322:6;;-1:-1:-1;;;;;3322:6:0;993:10;3322:22;3314:67;;;;-1:-1:-1;;;3314:67:0;;;;;;;:::i;:::-;10488:11:::1;::::0;-1:-1:-1;;;10488:11:0;::::1;;;10487:12;10479:47;;;::::0;-1:-1:-1;;;10479:47:0;;9872:2:1;10479:47:0::1;::::0;::::1;9854:21:1::0;9911:2;9891:18;;;9884:30;9950:25;9930:18;;;9923:53;9993:18;;10479:47:0::1;9844:173:1::0;10479:47:0::1;10648:15;:34:::0;;-1:-1:-1;;;;;;10648:34:0::1;10594:42;10648:34:::0;;::::1;::::0;;;10693:58:::1;10710:4;10594:42:::0;4834:21:::1;10693:8;:58::i;:::-;10796:16;-1:-1:-1::0;;;;;10796:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10778:56:0::1;;10843:4;10850:16;-1:-1:-1::0;;;;;10850:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10778:96;::::0;-1:-1:-1;;;;;;10778:96:0::1;::::0;;;;;;-1:-1:-1;;;;;4342:15:1;;;10778:96:0::1;::::0;::::1;4324:34:1::0;4394:15;;4374:18;;;4367:43;4259:18;;10778:96:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10762:13;:112:::0;;-1:-1:-1;;;;;;10762:112:0::1;-1:-1:-1::0;;;;;10762:112:0;;::::1;;::::0;;10885:15:::1;::::0;::::1;:31;10924:21;10955:4;10961:24;10955:4:::0;10961:9:::1;:24::i;:::-;10986:1;10988::::0;10990:7:::1;3233::::0;3260:6;-1:-1:-1;;;;;3260:6:0;;3195:79;10990:7:::1;10885:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;10885:129:0;;;-1:-1:-1;;;;;5059:15:1;;;10885:129:0::1;::::0;::::1;5041:34:1::0;5091:18;;;5084:34;;;;5134:18;;;5127:34;;;;5177:18;;;5170:34;5241:15;;;5220:19;;;5213:44;10998:15:0::1;5273:19:1::0;;;5266:35;4975:19;;10885:129:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;11025:11:0::1;:18:::0;;11102:19:::1;11087:12;:34:::0;-1:-1:-1;;;;11132:18:0;;-1:-1:-1;;;11132:18:0;;;;11199:15:::1;::::0;11161:71:::1;::::0;-1:-1:-1;;;11161:71:0;;-1:-1:-1;;;;;11199:15:0;;::::1;11161:71;::::0;::::1;4595:51:1::0;-1:-1:-1;;4662:18:1;;;4655:34;11168:13:0;;;-1:-1:-1;11161:29:0::1;::::0;4568:18:1;;11161:71:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;7947:335::-:0;-1:-1:-1;;;;;8040:19:0;;8032:68;;;;-1:-1:-1;;;8032:68:0;;9467:2:1;8032:68:0;;;9449:21:1;9506:2;9486:18;;;9479:30;9545:34;9525:18;;;9518:62;-1:-1:-1;;;9596:18:1;;;9589:34;9640:19;;8032:68:0;9439:226:1;8032:68:0;-1:-1:-1;;;;;8119:21:0;;8111:68;;;;-1:-1:-1;;;8111:68:0;;7129:2:1;8111:68:0;;;7111:21:1;7168:2;7148:18;;;7141:30;7207:34;7187:18;;;7180:62;-1:-1:-1;;;7258:18:1;;;7251:32;7300:19;;8111:68:0;7101:224:1;8111:68:0;-1:-1:-1;;;;;8190:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8242:32;;10168:25:1;;;8242:32:0;;10141:18:1;8242:32:0;;;;;;;7947:335;;;:::o;8290:1461::-;-1:-1:-1;;;;;8378:18:0;;8370:68;;;;-1:-1:-1;;;8370:68:0;;9061:2:1;8370:68:0;;;9043:21:1;9100:2;9080:18;;;9073:30;9139:34;9119:18;;;9112:62;-1:-1:-1;;;9190:18:1;;;9183:35;9235:19;;8370:68:0;9033:227:1;8370:68:0;-1:-1:-1;;;;;8457:16:0;;8449:64;;;;-1:-1:-1;;;8449:64:0;;6314:2:1;8449:64:0;;;6296:21:1;6353:2;6333:18;;;6326:30;6392:34;6372:18;;;6365:62;-1:-1:-1;;;6443:18:1;;;6436:33;6486:19;;8449:64:0;6286:225:1;8449:64:0;8541:1;8532:6;:10;8524:64;;;;-1:-1:-1;;;8524:64:0;;8651:2:1;8524:64:0;;;8633:21:1;8690:2;8670:18;;;8663:30;8729:34;8709:18;;;8702:62;-1:-1:-1;;;8780:18:1;;;8773:39;8829:19;;8524:64:0;8623:231:1;8524:64:0;8611:1;8599:9;:13;8635:1;8623:9;:13;-1:-1:-1;3260:6:0;-1:-1:-1;;;;;8651:15:0;;;3260:6;;8651:15;;;;:32;;-1:-1:-1;3233:7:0;3260:6;-1:-1:-1;;;;;8670:13:0;;;3260:6;;8670:13;;8651:32;8647:1052;;;-1:-1:-1;;;;;8709:10:0;;;;;;:4;:10;;;;;;;;8708:11;:24;;;;-1:-1:-1;;;;;;8724:8:0;;;;;;:4;:8;;;;;;;;8723:9;8708:24;8700:33;;;;;;8760:13;;-1:-1:-1;;;;;8752:21:0;;;8760:13;;8752:21;:55;;;;-1:-1:-1;8791:15:0;;-1:-1:-1;;;;;8777:30:0;;;8791:15;;8777:30;;8752:55;:83;;;;-1:-1:-1;;;;;;8813:22:0;;;;;;:18;:22;;;;;;;;8811:24;8752:83;:102;;;;-1:-1:-1;8839:15:0;;-1:-1:-1;;;8839:15:0;;;;8752:102;8748:325;;;8922:12;;8912:6;:22;;8904:31;;;;;;-1:-1:-1;;;;;8962:12:0;;;;;;:8;:12;;;;;;8977:15;-1:-1:-1;8954:39:0;;;;;;9027:30;:15;9046:10;9027:30;:::i;:::-;-1:-1:-1;;;;;9012:12:0;;;;;;:8;:12;;;;;:45;8748:325;9125:13;;-1:-1:-1;;;;;9119:19:0;;;9125:13;;9119:19;:55;;;;-1:-1:-1;9158:15:0;;-1:-1:-1;;;;;9142:32:0;;;9158:15;;9142:32;;9119:55;:85;;;;-1:-1:-1;;;;;;9180:24:0;;;;;;:18;:24;;;;;;;;9178:26;9119:85;9115:171;;;9237:1;9225:9;:13;9269:1;9257:9;:13;9115:171;9300:28;9331:24;9349:4;9331:9;:24::i;:::-;9375:6;;9300:55;;-1:-1:-1;;;;9375:6:0;;;;9374:7;:32;;;;-1:-1:-1;9393:13:0;;-1:-1:-1;;;;;9385:21:0;;;9393:13;;9385:21;;9374:32;:47;;;;-1:-1:-1;9410:11:0;;-1:-1:-1;;;9410:11:0;;;;9374:47;9370:318;;;9442:38;9459:20;9442:16;:38::i;:::-;9528:21;9571:22;;9568:105;;9618:35;9631:21;9618:12;:35::i;:::-;9370:318;;8647:1052;;9713:30;9728:4;9733:2;9736:6;9713:14;:30::i;:::-;8290:1461;;;:::o;2050:190::-;2136:7;2172:12;2164:6;;;;2156:29;;;;-1:-1:-1;;;2156:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2196:9:0;2208:5;2212:1;2208;:5;:::i;:::-;2196:17;2050:190;-1:-1:-1;;;;;2050:190:0:o;10258:154::-;10315:15;;-1:-1:-1;;;;;10315:15:0;:39;10340:13;:6;10351:1;10340:10;:13::i;:::-;10315:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10365:15:0;;-1:-1:-1;;;;;10365:15:0;:39;10390:13;:6;10401:1;10390:10;:13::i;:::-;10365:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7685:254;7752:7;7791;;7780;:18;;7772:73;;;;-1:-1:-1;;;7772:73:0;;6718:2:1;7772:73:0;;;6700:21:1;6757:2;6737:18;;;6730:30;6796:34;6776:18;;;6769:62;-1:-1:-1;;;6847:18:1;;;6840:40;6897:19;;7772:73:0;6690:232:1;7772:73:0;7856:19;7879:10;:8;:10::i;:::-;7856:33;-1:-1:-1;7907:24:0;:7;7856:33;7907:11;:24::i;:::-;7900:31;7685:254;-1:-1:-1;;;7685:254:0:o;9759:483::-;5633:6;:13;;-1:-1:-1;;;;5633:13:0;-1:-1:-1;;;5633:13:0;;;9861:16:::1;::::0;;9875:1:::1;9861:16:::0;;;;;::::1;::::0;;-1:-1:-1;;9861:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9861:16:0::1;9837:40;;9906:4;9888;9893:1;9888:7;;;;;;-1:-1:-1::0;;;9888:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;9888:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;9932:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;9932:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;9888:7;;9932:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9922:4;9927:1;9922:7;;;;;;-1:-1:-1::0;;;9922:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;9922:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;9997:15:::1;::::0;9965:62:::1;::::0;9982:4:::1;::::0;9997:15:::1;10015:11:::0;9965:8:::1;:62::i;:::-;10038:15;::::0;:196:::1;::::0;-1:-1:-1;;;10038:196:0;;-1:-1:-1;;;;;10038:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;10119:11;;10038:15:::1;::::0;10161:4;;10188::::1;::::0;10208:15:::1;::::0;10038:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5669:6:0;:14;;-1:-1:-1;;;;5669:14:0;;;-1:-1:-1;;;;9759:483:0:o;11532:146::-;11626:44;11644:6;11652:9;11663:6;11626:17;:44::i;2502:132::-;2560:7;2587:39;2591:1;2594;2587:39;;;;;;;;;;;;;;;;;:3;:39::i;14265:163::-;14306:7;14327:15;14344;14363:19;:17;:19::i;:::-;14326:56;;-1:-1:-1;14326:56:0;-1:-1:-1;14400:20:0;14326:56;;14400:11;:20::i;:::-;14393:27;;;;14265:163;:::o;11686:488::-;11785:15;11802:23;11827:12;11841:23;11866:12;11880:13;11897:19;11908:7;11897:10;:19::i;:::-;-1:-1:-1;;;;;11945:15:0;;;;;;:7;:15;;;;;;11784:132;;-1:-1:-1;11784:132:0;;-1:-1:-1;11784:132:0;;-1:-1:-1;11784:132:0;-1:-1:-1;11784:132:0;-1:-1:-1;11784:132:0;-1:-1:-1;11945:28:0;;11784:132;11945:19;:28::i;:::-;-1:-1:-1;;;;;11927:15:0;;;;;;;:7;:15;;;;;;:46;;;;12005:18;;;;;;;:39;;12028:15;12005:22;:39::i;:::-;-1:-1:-1;;;;;11984:18:0;;;;;;:7;:18;;;;;:60;12056:16;12066:5;12056:9;:16::i;:::-;12083:23;12095:4;12101;12083:11;:23::i;:::-;12139:9;-1:-1:-1;;;;;12122:44:0;12131:6;-1:-1:-1;;;;;12122:44:0;;12150:15;12122:44;;;;10168:25:1;;10156:2;10141:18;;10123:76;12122:44:0;;;;;;;;11686:488;;;;;;;;;:::o;2642:189::-;2728:7;2763:12;2756:5;2748:28;;;;-1:-1:-1;;;2748:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2787:9:0;2799:5;2803:1;2799;:5;:::i;14436:262::-;14533:7;;14486;;;;4834:21;14607:20;14533:7;4834:21;14607:11;:20::i;:::-;14597:7;:30;14593:61;;;-1:-1:-1;;14637:7:0;;;4834:21;;-1:-1:-1;14436:262:0;-1:-1:-1;14436:262:0:o;14593:61::-;14673:7;;14682;;-1:-1:-1;14436:262:0;-1:-1:-1;14436:262:0:o;13013:471::-;13072:7;13081;13090;13099;13108;13117;13138:23;13163:12;13177:13;13194:42;13206:7;13215:9;;13226;;13194:11;:42::i;:::-;13137:99;;;;;;13247:19;13270:10;:8;:10::i;:::-;13247:33;;13292:15;13309:23;13334:12;13350:46;13362:7;13371:4;13377:5;13384:11;13350;:46::i;:::-;13291:105;;-1:-1:-1;13291:105:0;-1:-1:-1;13291:105:0;-1:-1:-1;13447:15:0;;-1:-1:-1;13464:4:0;;-1:-1:-1;13470:5:0;;-1:-1:-1;;;;;13013:471:0;;;;;;;:::o;1906:136::-;1964:7;1991:43;1995:1;1998;1991:43;;;;;;;;;;;;;;;;;:3;:43::i;1719:179::-;1777:7;;1809:5;1813:1;1809;:5;:::i;:::-;1797:17;;1838:1;1833;:6;;1825:46;;;;-1:-1:-1;;;1825:46:0;;7532:2:1;1825:46:0;;;7514:21:1;7571:2;7551:18;;;7544:30;7610:29;7590:18;;;7583:57;7657:18;;1825:46:0;7504:177:1;12182:212:0;12235:19;12258:10;:8;:10::i;:::-;12235:33;-1:-1:-1;12279:13:0;12295:22;:5;12235:33;12295:9;:22::i;:::-;12369:4;12353:22;;;;:7;:22;;;;;;12279:38;;-1:-1:-1;12353:33:0;;12279:38;12353:26;:33::i;:::-;12344:4;12328:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;12182:212:0:o;12402:147::-;12480:7;;:17;;12492:4;12480:11;:17::i;:::-;12470:7;:27;12521:10;;:20;;12536:4;12521:14;:20::i;:::-;12508:10;:33;-1:-1:-1;;12402:147:0:o;13492:351::-;13585:7;;;;13638:28;13662:3;13638:19;:7;13650:6;13638:11;:19::i;:::-;:23;;:28::i;:::-;13623:43;-1:-1:-1;13677:13:0;13693:29;13718:3;13693:20;:7;13705;13693:11;:20::i;:29::-;13677:45;-1:-1:-1;13733:23:0;13759:28;13677:45;13759:17;:7;13771:4;13759:11;:17::i;:::-;:21;;:28::i;:::-;13733:54;13823:4;;-1:-1:-1;13829:5:0;;-1:-1:-1;13492:351:0;;-1:-1:-1;;;;;13492:351:0:o;13851:409::-;13961:7;;;;14017:24;:7;14029:11;14017;:24::i;:::-;13999:42;-1:-1:-1;14052:12:0;14067:21;:4;14076:11;14067:8;:21::i;:::-;14052:36;-1:-1:-1;14099:13:0;14115:22;:5;14125:11;14115:9;:22::i;:::-;14099:38;-1:-1:-1;14148:23:0;14174:28;14099:38;14174:17;:7;14186:4;14174:11;:17::i;:28::-;14221:7;;;;-1:-1:-1;14247:4:0;;-1:-1:-1;13851:409:0;;-1:-1:-1;;;;;;;13851:409:0:o;2248:246::-;2306:7;2330:6;2326:47;;-1:-1:-1;2360:1:0;2353:8;;2326:47;2383:9;2395:5;2399:1;2395;:5;:::i;:::-;2383:17;-1:-1:-1;2428:1:0;2419:5;2423:1;2383:17;2419:5;:::i;:::-;:10;2411:56;;;;-1:-1:-1;;;2411:56:0;;7888:2:1;2411:56:0;;;7870:21:1;7927:2;7907:18;;;7900:30;7966:34;7946:18;;;7939:62;-1:-1:-1;;;8017:18:1;;;8010:31;8058:19;;2411:56:0;7860:223:1;14:134;82:20;;111:31;82:20;111:31;:::i;:::-;63:85;;;:::o;153:257::-;212:6;265:2;253:9;244:7;240:23;236:32;233:2;;;286:6;278;271:22;233:2;330:9;317:23;349:31;374:5;349:31;:::i;415:261::-;485:6;538:2;526:9;517:7;513:23;509:32;506:2;;;559:6;551;544:22;506:2;596:9;590:16;615:31;640:5;615:31;:::i;681:398::-;749:6;757;810:2;798:9;789:7;785:23;781:32;778:2;;;831:6;823;816:22;778:2;875:9;862:23;894:31;919:5;894:31;:::i;:::-;944:5;-1:-1:-1;1001:2:1;986:18;;973:32;1014:33;973:32;1014:33;:::i;:::-;1066:7;1056:17;;;768:311;;;;;:::o;1084:466::-;1161:6;1169;1177;1230:2;1218:9;1209:7;1205:23;1201:32;1198:2;;;1251:6;1243;1236:22;1198:2;1295:9;1282:23;1314:31;1339:5;1314:31;:::i;:::-;1364:5;-1:-1:-1;1421:2:1;1406:18;;1393:32;1434:33;1393:32;1434:33;:::i;:::-;1188:362;;1486:7;;-1:-1:-1;;;1540:2:1;1525:18;;;;1512:32;;1188:362::o;1555:325::-;1623:6;1631;1684:2;1672:9;1663:7;1659:23;1655:32;1652:2;;;1705:6;1697;1690:22;1652:2;1749:9;1736:23;1768:31;1793:5;1768:31;:::i;:::-;1818:5;1870:2;1855:18;;;;1842:32;;-1:-1:-1;;;1642:238:1:o;1885:1177::-;1969:6;2000:2;2043;2031:9;2022:7;2018:23;2014:32;2011:2;;;2064:6;2056;2049:22;2011:2;2109:9;2096:23;2138:18;2179:2;2171:6;2168:14;2165:2;;;2200:6;2192;2185:22;2165:2;2243:6;2232:9;2228:22;2218:32;;2288:7;2281:4;2277:2;2273:13;2269:27;2259:2;;2315:6;2307;2300:22;2259:2;2356;2343:16;2378:2;2374;2371:10;2368:2;;;2384:18;;:::i;:::-;2430:2;2427:1;2423:10;2462:2;2456:9;2525:2;2521:7;2516:2;2512;2508:11;2504:25;2496:6;2492:38;2580:6;2568:10;2565:22;2560:2;2548:10;2545:18;2542:46;2539:2;;;2591:18;;:::i;:::-;2627:2;2620:22;2677:18;;;2711:15;;;;-1:-1:-1;2746:11:1;;;2776;;;2772:20;;2769:33;-1:-1:-1;2766:2:1;;;2820:6;2812;2805:22;2766:2;2847:6;2838:15;;2862:169;2876:2;2873:1;2870:9;2862:169;;;2933:23;2952:3;2933:23;:::i;:::-;2921:36;;2894:1;2887:9;;;;;2977:12;;;;3009;;2862:169;;;-1:-1:-1;3050:6:1;1980:1082;-1:-1:-1;;;;;;;;1980:1082:1:o;3067:251::-;3123:6;3176:2;3164:9;3155:7;3151:23;3147:32;3144:2;;;3197:6;3189;3182:22;3144:2;3241:9;3228:23;3260:28;3282:5;3260:28;:::i;3323:255::-;3390:6;3443:2;3431:9;3422:7;3418:23;3414:32;3411:2;;;3464:6;3456;3449:22;3411:2;3501:9;3495:16;3520:28;3542:5;3520:28;:::i;3583:316::-;3671:6;3679;3687;3740:2;3728:9;3719:7;3715:23;3711:32;3708:2;;;3761:6;3753;3746:22;3708:2;3795:9;3789:16;3779:26;;3845:2;3834:9;3830:18;3824:25;3814:35;;3889:2;3878:9;3874:18;3868:25;3858:35;;3698:201;;;;;:::o;5504:603::-;5616:4;5645:2;5674;5663:9;5656:21;5706:6;5700:13;5749:6;5744:2;5733:9;5729:18;5722:34;5774:4;5787:140;5801:6;5798:1;5795:13;5787:140;;;5896:14;;;5892:23;;5886:30;5862:17;;;5881:2;5858:26;5851:66;5816:10;;5787:140;;;5945:6;5942:1;5939:13;5936:2;;;6015:4;6010:2;6001:6;5990:9;5986:22;5982:31;5975:45;5936:2;-1:-1:-1;6091:2:1;6070:15;-1:-1:-1;;6066:29:1;6051:45;;;;6098:2;6047:54;;5625:482;-1:-1:-1;;;5625:482:1:o;8088:356::-;8290:2;8272:21;;;8309:18;;;8302:30;8368:34;8363:2;8348:18;;8341:62;8435:2;8420:18;;8262:182::o;10204:983::-;10466:4;10514:3;10503:9;10499:19;10545:6;10534:9;10527:25;10571:2;10609:6;10604:2;10593:9;10589:18;10582:34;10652:3;10647:2;10636:9;10632:18;10625:31;10676:6;10711;10705:13;10742:6;10734;10727:22;10780:3;10769:9;10765:19;10758:26;;10819:2;10811:6;10807:15;10793:29;;10840:4;10853:195;10867:6;10864:1;10861:13;10853:195;;;10932:13;;-1:-1:-1;;;;;10928:39:1;10916:52;;11023:15;;;;10988:12;;;;10964:1;10882:9;10853:195;;;-1:-1:-1;;;;;;;11104:32:1;;;;11099:2;11084:18;;11077:60;-1:-1:-1;;;11168:3:1;11153:19;11146:35;11065:3;10475:712;-1:-1:-1;;;10475:712:1:o;11381:128::-;11421:3;11452:1;11448:6;11445:1;11442:13;11439:2;;;11458:18;;:::i;:::-;-1:-1:-1;11494:9:1;;11429:80::o;11514:217::-;11554:1;11580;11570:2;;-1:-1:-1;;;11605:31:1;;11659:4;11656:1;11649:15;11687:4;11612:1;11677:15;11570:2;-1:-1:-1;11716:9:1;;11560:171::o;11736:168::-;11776:7;11842:1;11838;11834:6;11830:14;11827:1;11824:21;11819:1;11812:9;11805:17;11801:45;11798:2;;;11849:18;;:::i;:::-;-1:-1:-1;11889:9:1;;11788:116::o;11909:125::-;11949:4;11977:1;11974;11971:8;11968:2;;;11982:18;;:::i;:::-;-1:-1:-1;12019:9:1;;11958:76::o;12039:135::-;12078:3;-1:-1:-1;;12099:17:1;;12096:2;;;12119:18;;:::i;:::-;-1:-1:-1;12166:1:1;12155:13;;12086:88::o;12179:127::-;12240:10;12235:3;12231:20;12228:1;12221:31;12271:4;12268:1;12261:15;12295:4;12292:1;12285:15;12311:127;12372:10;12367:3;12363:20;12360:1;12353:31;12403:4;12400:1;12393:15;12427:4;12424:1;12417:15;12443:131;-1:-1:-1;;;;;12518:31:1;;12508:42;;12498:2;;12564:1;12561;12554:12;12579:118;12665:5;12658:13;12651:21;12644:5;12641:32;12631:2;;12687:1;12684;12677:12

Swarm Source

ipfs://31590c412531e5f7f2fac3103ba17a4b123538a0a0dd08f6b9a3e863a8518021

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.