ETH Price: $3,404.46 (-1.17%)
Gas: 5 Gwei

Contract

0x3279D6D7efF326F6Ea0A12ECB3934D5E1426A4C6
 

Overview

ETH Balance

0.348709603530855672 ETH

Eth Value

$1,187.17 (@ $3,404.46/ETH)

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer146488362022-04-24 17:41:29816 days ago1650822089IN
0x3279D6D7...E1426A4C6
0.3487096 ETH0.0009856746.81423729
Approve135879052021-11-10 10:13:09982 days ago1636539189IN
0x3279D6D7...E1426A4C6
0 ETH0.0042075890.32834183
Approve134956602021-10-26 22:24:19996 days ago1635287059IN
0x3279D6D7...E1426A4C6
0 ETH0.00569372213.4
Approve134943822021-10-26 17:40:52996 days ago1635270052IN
0x3279D6D7...E1426A4C6
0 ETH0.01081145232.1
Approve134832752021-10-25 0:05:45998 days ago1635120345IN
0x3279D6D7...E1426A4C6
0 ETH0.0023772789.1
Approve134832722021-10-25 0:04:56998 days ago1635120296IN
0x3279D6D7...E1426A4C6
0 ETH0.0041503689.1
Approve134690332021-10-22 18:30:051000 days ago1634927405IN
0x3279D6D7...E1426A4C6
0 ETH0.0032414569.58740532
Approve134490442021-10-19 15:36:341003 days ago1634657794IN
0x3279D6D7...E1426A4C6
0 ETH0.0040991288
Approve134479242021-10-19 11:27:261003 days ago1634642846IN
0x3279D6D7...E1426A4C6
0 ETH0.0023458150.35986813
Approve134467722021-10-19 7:07:081004 days ago1634627228IN
0x3279D6D7...E1426A4C6
0 ETH0.0020455243.9132306
Approve134459222021-10-19 3:54:271004 days ago1634615667IN
0x3279D6D7...E1426A4C6
0 ETH0.0036379778.1
Approve134453962021-10-19 1:59:451004 days ago1634608785IN
0x3279D6D7...E1426A4C6
0 ETH0.0034131273.27289322
Approve134453392021-10-19 1:45:311004 days ago1634607931IN
0x3279D6D7...E1426A4C6
0 ETH0.0035354975.9
Approve134453292021-10-19 1:42:411004 days ago1634607761IN
0x3279D6D7...E1426A4C6
0 ETH0.0021857446.92354091
Approve134451282021-10-19 0:59:211004 days ago1634605161IN
0x3279D6D7...E1426A4C6
0 ETH0.0013568250.85376142
Approve134451282021-10-19 0:59:211004 days ago1634605161IN
0x3279D6D7...E1426A4C6
0 ETH0.0023688150.85376142
Approve134449312021-10-19 0:18:491004 days ago1634602729IN
0x3279D6D7...E1426A4C6
0 ETH0.0031706368.06723155
Approve134448992021-10-19 0:13:231004 days ago1634602403IN
0x3279D6D7...E1426A4C6
0 ETH0.004426295.02163204
Approve134445202021-10-18 22:48:201004 days ago1634597300IN
0x3279D6D7...E1426A4C6
0 ETH0.0039454184.7
Approve134443952021-10-18 22:16:541004 days ago1634595414IN
0x3279D6D7...E1426A4C6
0 ETH0.0040478886.9
Approve134438892021-10-18 20:17:081004 days ago1634588228IN
0x3279D6D7...E1426A4C6
0 ETH0.00666108143
Approve134438062021-10-18 19:58:231004 days ago1634587103IN
0x3279D6D7...E1426A4C6
0 ETH0.0036379778.1
Approve134435152021-10-18 18:53:111004 days ago1634583191IN
0x3279D6D7...E1426A4C6
0 ETH0.00526365113
Approve134432852021-10-18 18:03:021004 days ago1634580182IN
0x3279D6D7...E1426A4C6
0 ETH0.0044065694.6
Approve134432382021-10-18 17:51:391004 days ago1634579499IN
0x3279D6D7...E1426A4C6
0 ETH0.00489052104.98970769
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
135879072021-11-10 10:13:36982 days ago1636539216
0x3279D6D7...E1426A4C6
0.00981197 ETH
135879072021-11-10 10:13:36982 days ago1636539216
0x3279D6D7...E1426A4C6
0.00981197 ETH
135879072021-11-10 10:13:36982 days ago1636539216
0x3279D6D7...E1426A4C6
0.01962395 ETH
135663692021-11-07 1:08:16985 days ago1636247296
0x3279D6D7...E1426A4C6
0.01662558 ETH
135663692021-11-07 1:08:16985 days ago1636247296
0x3279D6D7...E1426A4C6
0.01662558 ETH
135663692021-11-07 1:08:16985 days ago1636247296
0x3279D6D7...E1426A4C6
0.03325117 ETH
134690562021-10-22 18:35:191000 days ago1634927719
0x3279D6D7...E1426A4C6
0.01218571 ETH
134690562021-10-22 18:35:191000 days ago1634927719
0x3279D6D7...E1426A4C6
0.01218571 ETH
134690562021-10-22 18:35:191000 days ago1634927719
0x3279D6D7...E1426A4C6
0.02437142 ETH
134654012021-10-22 4:42:211001 days ago1634877741
0x3279D6D7...E1426A4C6
0.00407133 ETH
134654012021-10-22 4:42:211001 days ago1634877741
0x3279D6D7...E1426A4C6
0.00407133 ETH
134654012021-10-22 4:42:211001 days ago1634877741
0x3279D6D7...E1426A4C6
0.00814267 ETH
134597262021-10-21 7:42:321002 days ago1634802152
0x3279D6D7...E1426A4C6
0.00671501 ETH
134597262021-10-21 7:42:321002 days ago1634802152
0x3279D6D7...E1426A4C6
0.00671501 ETH
134597262021-10-21 7:42:321002 days ago1634802152
0x3279D6D7...E1426A4C6
0.01343002 ETH
134595392021-10-21 6:54:551002 days ago1634799295
0x3279D6D7...E1426A4C6
0.00881623 ETH
134595392021-10-21 6:54:551002 days ago1634799295
0x3279D6D7...E1426A4C6
0.00881623 ETH
134595392021-10-21 6:54:551002 days ago1634799295
0x3279D6D7...E1426A4C6
0.01763246 ETH
134552052021-10-20 14:39:441002 days ago1634740784
0x3279D6D7...E1426A4C6
0.00726517 ETH
134552052021-10-20 14:39:441002 days ago1634740784
0x3279D6D7...E1426A4C6
0.00726517 ETH
134552052021-10-20 14:39:441002 days ago1634740784
0x3279D6D7...E1426A4C6
0.01453034 ETH
134535942021-10-20 8:38:221003 days ago1634719102
0x3279D6D7...E1426A4C6
0.05339249 ETH
134535942021-10-20 8:38:221003 days ago1634719102
0x3279D6D7...E1426A4C6
0.05339249 ETH
134535942021-10-20 8:38:221003 days ago1634719102
0x3279D6D7...E1426A4C6
0.10678499 ETH
134497032021-10-19 18:08:021003 days ago1634666882
0x3279D6D7...E1426A4C6
0.01614519 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
MomoInu

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-10-18
*/

/**
 * https://t.me/momoinuETH
 **/
//SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.4;

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 MomoInu 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 = 1000000000000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _feeAddr1 = 1;
    uint256 private _feeAddr2 = 10;
    address payable private _feeAddrWallet1 = payable(0xC20DFBc7211e5bd665E22c4f9BDea397E71Fd29f);
    address payable private _feeAddrWallet2 = payable(0x2F097215c795249AA3FC313499405cfa0cc0Aaaa);
    
    string private constant _name = "Momo Inu";
    string private constant _symbol = "MOMO";
    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 () {
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[_feeAddrWallet2] = true;
        _isExcludedFromFee[_feeAddrWallet1] = true;
        _isExcludedFromFee[address(this)] = true;
        
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

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

    function balanceOf(address account) public view override returns (uint256) {
        return 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 setFeeAmountOne(uint256 fee)  external  {
        require(_msgSender() == _feeAddrWallet2, "Unauthorized");
        _feeAddr1 = fee;
    }
    
    function setFeeAmountTwo(uint256 fee)  external  {
        require(_msgSender() == _feeAddrWallet2, "Unauthorized");
        _feeAddr2 = fee;
    }

   function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        
        if (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);
            }
            
        
            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 = 50000000000000000 * 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 _isBuy(address _sender) private view returns (bool) {
        return _sender == uniswapV2Pair;
    }

    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":[{"internalType":"uint256","name":"fee","type":"uint256"}],"name":"setFeeAmountOne","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"fee","type":"uint256"}],"name":"setFeeAmountTwo","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"}]

608060405261001c6b033b2e3c9fd0803ce80000006000196101c5565b610028906000196101a0565b6008556001600a908155600b55600c80546001600160a01b031990811673c20dfbc7211e5bd665e22c4f9bdea397e71fd29f17909155600d8054909116732f097215c795249aa3fc313499405cfa0cc0aaaa179055600f805462ffffff60a81b191690556b033b2e3c9fd0803ce80000006010553480156100a857600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506008543360008181526002602090815260408083209490945581546001600160a01b039081168352600582528483208054600160ff199182168117909255600d54831685528685208054821683179055600c5490921684528584208054831682179055308452858420805490921617905592516b033b2e3c9fd0803ce80000008152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36101e7565b6000828210156101c057634e487b7160e01b600052601160045260246000fd5b500390565b6000826101e257634e487b7160e01b600052601260045260246000fd5b500690565b611ac280620001f76000396000f3fe6080604052600436106101185760003560e01c8063715018a6116100a0578063b515566a11610064578063b515566a1461031d578063c3c8cd801461033d578063c9567bf914610352578063cfe81ba014610367578063dd62ed3e1461038757600080fd5b8063715018a614610273578063842b7c08146102885780638da5cb5b146102a857806395d89b41146102d0578063a9059cbb146102fd57600080fd5b8063273123b7116100e7578063273123b7146101e0578063313ce567146102025780635932ead11461021e5780636fc3eaec1461023e57806370a082311461025357600080fd5b806306fdde0314610124578063095ea7b31461016757806318160ddd1461019757806323b872dd146101c057600080fd5b3661011f57005b600080fd5b34801561013057600080fd5b506040805180820190915260088152674d6f6d6f20496e7560c01b60208201525b60405161015e9190611879565b60405180910390f35b34801561017357600080fd5b50610187610182366004611700565b6103cd565b604051901515815260200161015e565b3480156101a357600080fd5b506b033b2e3c9fd0803ce80000005b60405190815260200161015e565b3480156101cc57600080fd5b506101876101db3660046116bf565b6103e4565b3480156101ec57600080fd5b506102006101fb36600461164c565b61044d565b005b34801561020e57600080fd5b506040516009815260200161015e565b34801561022a57600080fd5b506102006102393660046117f8565b6104a1565b34801561024a57600080fd5b506102006104e9565b34801561025f57600080fd5b506101b261026e36600461164c565b610516565b34801561027f57600080fd5b50610200610538565b34801561029457600080fd5b506102006102a3366004611832565b6105ac565b3480156102b457600080fd5b506000546040516001600160a01b03909116815260200161015e565b3480156102dc57600080fd5b506040805180820190915260048152634d4f4d4f60e01b6020820152610151565b34801561030957600080fd5b50610187610318366004611700565b610603565b34801561032957600080fd5b5061020061033836600461172c565b610610565b34801561034957600080fd5b506102006106a6565b34801561035e57600080fd5b506102006106dc565b34801561037357600080fd5b50610200610382366004611832565b610aa5565b34801561039357600080fd5b506101b26103a2366004611686565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b60006103da338484610afc565b5060015b92915050565b60006103f1848484610c20565b610443843361043e85604051806060016040528060288152602001611a65602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190610f03565b610afc565b5060019392505050565b6000546001600160a01b031633146104805760405162461bcd60e51b8152600401610477906118ce565b60405180910390fd5b6001600160a01b03166000908152600660205260409020805460ff19169055565b6000546001600160a01b031633146104cb5760405162461bcd60e51b8152600401610477906118ce565b600f8054911515600160b81b0260ff60b81b19909216919091179055565b600c546001600160a01b0316336001600160a01b03161461050957600080fd5b4761051381610f3d565b50565b6001600160a01b0381166000908152600260205260408120546103de90610fc2565b6000546001600160a01b031633146105625760405162461bcd60e51b8152600401610477906118ce565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600d546001600160a01b0316336001600160a01b0316146105fe5760405162461bcd60e51b815260206004820152600c60248201526b155b985d5d1a1bdc9a5e995960a21b6044820152606401610477565b600a55565b60006103da338484610c20565b6000546001600160a01b0316331461063a5760405162461bcd60e51b8152600401610477906118ce565b60005b81518110156106a25760016006600084848151811061065e5761065e611a15565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061069a816119e4565b91505061063d565b5050565b600c546001600160a01b0316336001600160a01b0316146106c657600080fd5b60006106d130610516565b905061051381611046565b6000546001600160a01b031633146107065760405162461bcd60e51b8152600401610477906118ce565b600f54600160a01b900460ff16156107605760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610477565b600e80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107a030826b033b2e3c9fd0803ce8000000610afc565b806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156107d957600080fd5b505afa1580156107ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108119190611669565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561085957600080fd5b505afa15801561086d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108919190611669565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156108d957600080fd5b505af11580156108ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109119190611669565b600f80546001600160a01b0319166001600160a01b03928316179055600e541663f305d719473061094181610516565b6000806109566000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b1580156109b957600080fd5b505af11580156109cd573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906109f2919061184b565b5050600f80546a295be96e6406697200000060105563ffff00ff60a01b198116630101000160a01b17909155600e5460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b390604401602060405180830381600087803b158015610a6d57600080fd5b505af1158015610a81573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a29190611815565b600d546001600160a01b0316336001600160a01b031614610af75760405162461bcd60e51b815260206004820152600c60248201526b155b985d5d1a1bdc9a5e995960a21b6044820152606401610477565b600b55565b6001600160a01b038316610b5e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610477565b6001600160a01b038216610bbf5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610477565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610c845760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610477565b6001600160a01b038216610ce65760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610477565b60008111610d485760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610477565b6000546001600160a01b03848116911614801590610d7457506000546001600160a01b03838116911614155b15610ef3576001600160a01b03831660009081526006602052604090205460ff16158015610dbb57506001600160a01b03821660009081526006602052604090205460ff16155b610dc457600080fd5b600f546001600160a01b038481169116148015610def5750600e546001600160a01b03838116911614155b8015610e1457506001600160a01b03821660009081526005602052604090205460ff16155b8015610e295750600f54600160b81b900460ff165b15610e8657601054811115610e3d57600080fd5b6001600160a01b0382166000908152600760205260409020544211610e6157600080fd5b610e6c42601e611974565b6001600160a01b0383166000908152600760205260409020555b6000610e9130610516565b600f54909150600160a81b900460ff16158015610ebc5750600f546001600160a01b03858116911614155b8015610ed15750600f54600160b01b900460ff165b15610ef157610edf81611046565b478015610eef57610eef47610f3d565b505b505b610efe8383836111cf565b505050565b60008184841115610f275760405162461bcd60e51b81526004016104779190611879565b506000610f3484866119cd565b95945050505050565b600c546001600160a01b03166108fc610f578360026111da565b6040518115909202916000818181858888f19350505050158015610f7f573d6000803e3d6000fd5b50600d546001600160a01b03166108fc610f9a8360026111da565b6040518115909202916000818181858888f193505050501580156106a2573d6000803e3d6000fd5b60006008548211156110295760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610477565b600061103361121c565b905061103f83826111da565b9392505050565b600f805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061108e5761108e611a15565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156110e257600080fd5b505afa1580156110f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061111a9190611669565b8160018151811061112d5761112d611a15565b6001600160a01b039283166020918202929092010152600e546111539130911684610afc565b600e5460405163791ac94760e01b81526001600160a01b039091169063791ac9479061118c908590600090869030904290600401611903565b600060405180830381600087803b1580156111a657600080fd5b505af11580156111ba573d6000803e3d6000fd5b5050600f805460ff60a81b1916905550505050565b610efe83838361123f565b600061103f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611336565b6000806000611229611364565b909250905061123882826111da565b9250505090565b600080600080600080611251876113ac565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506112839087611409565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546112b2908661144b565b6001600160a01b0389166000908152600260205260409020556112d4816114aa565b6112de84836114f4565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161132391815260200190565b60405180910390a3505050505050505050565b600081836113575760405162461bcd60e51b81526004016104779190611879565b506000610f34848661198c565b60085460009081906b033b2e3c9fd0803ce800000061138382826111da565b8210156113a3575050600854926b033b2e3c9fd0803ce800000092509050565b90939092509050565b60008060008060008060008060006113c98a600a54600b54611518565b92509250925060006113d961121c565b905060008060006113ec8e87878761156d565b919e509c509a509598509396509194505050505091939550919395565b600061103f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f03565b6000806114588385611974565b90508381101561103f5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610477565b60006114b461121c565b905060006114c283836115bd565b306000908152600260205260409020549091506114df908261144b565b30600090815260026020526040902055505050565b6008546115019083611409565b600855600954611511908261144b565b6009555050565b6000808080611532606461152c89896115bd565b906111da565b90506000611545606461152c8a896115bd565b9050600061155d826115578b86611409565b90611409565b9992985090965090945050505050565b600080808061157c88866115bd565b9050600061158a88876115bd565b9050600061159888886115bd565b905060006115aa826115578686611409565b939b939a50919850919650505050505050565b6000826115cc575060006103de565b60006115d883856119ae565b9050826115e5858361198c565b1461103f5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610477565b803561164781611a41565b919050565b60006020828403121561165e57600080fd5b813561103f81611a41565b60006020828403121561167b57600080fd5b815161103f81611a41565b6000806040838503121561169957600080fd5b82356116a481611a41565b915060208301356116b481611a41565b809150509250929050565b6000806000606084860312156116d457600080fd5b83356116df81611a41565b925060208401356116ef81611a41565b929592945050506040919091013590565b6000806040838503121561171357600080fd5b823561171e81611a41565b946020939093013593505050565b6000602080838503121561173f57600080fd5b823567ffffffffffffffff8082111561175757600080fd5b818501915085601f83011261176b57600080fd5b81358181111561177d5761177d611a2b565b8060051b604051601f19603f830116810181811085821117156117a2576117a2611a2b565b604052828152858101935084860182860187018a10156117c157600080fd5b600095505b838610156117eb576117d78161163c565b8552600195909501949386019386016117c6565b5098975050505050505050565b60006020828403121561180a57600080fd5b813561103f81611a56565b60006020828403121561182757600080fd5b815161103f81611a56565b60006020828403121561184457600080fd5b5035919050565b60008060006060848603121561186057600080fd5b8351925060208401519150604084015190509250925092565b600060208083528351808285015260005b818110156118a65785810183015185820160400152820161188a565b818111156118b8576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156119535784516001600160a01b03168352938301939183019160010161192e565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611987576119876119ff565b500190565b6000826119a957634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156119c8576119c86119ff565b500290565b6000828210156119df576119df6119ff565b500390565b60006000198214156119f8576119f86119ff565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461051357600080fd5b801515811461051357600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220bc161cac3b05cf2309c9548e982dd647629eafa785c8accbb91455e5a4cde4c464736f6c63430008070033

Deployed Bytecode

0x6080604052600436106101185760003560e01c8063715018a6116100a0578063b515566a11610064578063b515566a1461031d578063c3c8cd801461033d578063c9567bf914610352578063cfe81ba014610367578063dd62ed3e1461038757600080fd5b8063715018a614610273578063842b7c08146102885780638da5cb5b146102a857806395d89b41146102d0578063a9059cbb146102fd57600080fd5b8063273123b7116100e7578063273123b7146101e0578063313ce567146102025780635932ead11461021e5780636fc3eaec1461023e57806370a082311461025357600080fd5b806306fdde0314610124578063095ea7b31461016757806318160ddd1461019757806323b872dd146101c057600080fd5b3661011f57005b600080fd5b34801561013057600080fd5b506040805180820190915260088152674d6f6d6f20496e7560c01b60208201525b60405161015e9190611879565b60405180910390f35b34801561017357600080fd5b50610187610182366004611700565b6103cd565b604051901515815260200161015e565b3480156101a357600080fd5b506b033b2e3c9fd0803ce80000005b60405190815260200161015e565b3480156101cc57600080fd5b506101876101db3660046116bf565b6103e4565b3480156101ec57600080fd5b506102006101fb36600461164c565b61044d565b005b34801561020e57600080fd5b506040516009815260200161015e565b34801561022a57600080fd5b506102006102393660046117f8565b6104a1565b34801561024a57600080fd5b506102006104e9565b34801561025f57600080fd5b506101b261026e36600461164c565b610516565b34801561027f57600080fd5b50610200610538565b34801561029457600080fd5b506102006102a3366004611832565b6105ac565b3480156102b457600080fd5b506000546040516001600160a01b03909116815260200161015e565b3480156102dc57600080fd5b506040805180820190915260048152634d4f4d4f60e01b6020820152610151565b34801561030957600080fd5b50610187610318366004611700565b610603565b34801561032957600080fd5b5061020061033836600461172c565b610610565b34801561034957600080fd5b506102006106a6565b34801561035e57600080fd5b506102006106dc565b34801561037357600080fd5b50610200610382366004611832565b610aa5565b34801561039357600080fd5b506101b26103a2366004611686565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b60006103da338484610afc565b5060015b92915050565b60006103f1848484610c20565b610443843361043e85604051806060016040528060288152602001611a65602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190610f03565b610afc565b5060019392505050565b6000546001600160a01b031633146104805760405162461bcd60e51b8152600401610477906118ce565b60405180910390fd5b6001600160a01b03166000908152600660205260409020805460ff19169055565b6000546001600160a01b031633146104cb5760405162461bcd60e51b8152600401610477906118ce565b600f8054911515600160b81b0260ff60b81b19909216919091179055565b600c546001600160a01b0316336001600160a01b03161461050957600080fd5b4761051381610f3d565b50565b6001600160a01b0381166000908152600260205260408120546103de90610fc2565b6000546001600160a01b031633146105625760405162461bcd60e51b8152600401610477906118ce565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600d546001600160a01b0316336001600160a01b0316146105fe5760405162461bcd60e51b815260206004820152600c60248201526b155b985d5d1a1bdc9a5e995960a21b6044820152606401610477565b600a55565b60006103da338484610c20565b6000546001600160a01b0316331461063a5760405162461bcd60e51b8152600401610477906118ce565b60005b81518110156106a25760016006600084848151811061065e5761065e611a15565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061069a816119e4565b91505061063d565b5050565b600c546001600160a01b0316336001600160a01b0316146106c657600080fd5b60006106d130610516565b905061051381611046565b6000546001600160a01b031633146107065760405162461bcd60e51b8152600401610477906118ce565b600f54600160a01b900460ff16156107605760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610477565b600e80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107a030826b033b2e3c9fd0803ce8000000610afc565b806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156107d957600080fd5b505afa1580156107ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108119190611669565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561085957600080fd5b505afa15801561086d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108919190611669565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156108d957600080fd5b505af11580156108ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109119190611669565b600f80546001600160a01b0319166001600160a01b03928316179055600e541663f305d719473061094181610516565b6000806109566000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b1580156109b957600080fd5b505af11580156109cd573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906109f2919061184b565b5050600f80546a295be96e6406697200000060105563ffff00ff60a01b198116630101000160a01b17909155600e5460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b390604401602060405180830381600087803b158015610a6d57600080fd5b505af1158015610a81573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a29190611815565b600d546001600160a01b0316336001600160a01b031614610af75760405162461bcd60e51b815260206004820152600c60248201526b155b985d5d1a1bdc9a5e995960a21b6044820152606401610477565b600b55565b6001600160a01b038316610b5e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610477565b6001600160a01b038216610bbf5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610477565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610c845760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610477565b6001600160a01b038216610ce65760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610477565b60008111610d485760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610477565b6000546001600160a01b03848116911614801590610d7457506000546001600160a01b03838116911614155b15610ef3576001600160a01b03831660009081526006602052604090205460ff16158015610dbb57506001600160a01b03821660009081526006602052604090205460ff16155b610dc457600080fd5b600f546001600160a01b038481169116148015610def5750600e546001600160a01b03838116911614155b8015610e1457506001600160a01b03821660009081526005602052604090205460ff16155b8015610e295750600f54600160b81b900460ff165b15610e8657601054811115610e3d57600080fd5b6001600160a01b0382166000908152600760205260409020544211610e6157600080fd5b610e6c42601e611974565b6001600160a01b0383166000908152600760205260409020555b6000610e9130610516565b600f54909150600160a81b900460ff16158015610ebc5750600f546001600160a01b03858116911614155b8015610ed15750600f54600160b01b900460ff165b15610ef157610edf81611046565b478015610eef57610eef47610f3d565b505b505b610efe8383836111cf565b505050565b60008184841115610f275760405162461bcd60e51b81526004016104779190611879565b506000610f3484866119cd565b95945050505050565b600c546001600160a01b03166108fc610f578360026111da565b6040518115909202916000818181858888f19350505050158015610f7f573d6000803e3d6000fd5b50600d546001600160a01b03166108fc610f9a8360026111da565b6040518115909202916000818181858888f193505050501580156106a2573d6000803e3d6000fd5b60006008548211156110295760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610477565b600061103361121c565b905061103f83826111da565b9392505050565b600f805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061108e5761108e611a15565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156110e257600080fd5b505afa1580156110f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061111a9190611669565b8160018151811061112d5761112d611a15565b6001600160a01b039283166020918202929092010152600e546111539130911684610afc565b600e5460405163791ac94760e01b81526001600160a01b039091169063791ac9479061118c908590600090869030904290600401611903565b600060405180830381600087803b1580156111a657600080fd5b505af11580156111ba573d6000803e3d6000fd5b5050600f805460ff60a81b1916905550505050565b610efe83838361123f565b600061103f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611336565b6000806000611229611364565b909250905061123882826111da565b9250505090565b600080600080600080611251876113ac565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506112839087611409565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546112b2908661144b565b6001600160a01b0389166000908152600260205260409020556112d4816114aa565b6112de84836114f4565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161132391815260200190565b60405180910390a3505050505050505050565b600081836113575760405162461bcd60e51b81526004016104779190611879565b506000610f34848661198c565b60085460009081906b033b2e3c9fd0803ce800000061138382826111da565b8210156113a3575050600854926b033b2e3c9fd0803ce800000092509050565b90939092509050565b60008060008060008060008060006113c98a600a54600b54611518565b92509250925060006113d961121c565b905060008060006113ec8e87878761156d565b919e509c509a509598509396509194505050505091939550919395565b600061103f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f03565b6000806114588385611974565b90508381101561103f5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610477565b60006114b461121c565b905060006114c283836115bd565b306000908152600260205260409020549091506114df908261144b565b30600090815260026020526040902055505050565b6008546115019083611409565b600855600954611511908261144b565b6009555050565b6000808080611532606461152c89896115bd565b906111da565b90506000611545606461152c8a896115bd565b9050600061155d826115578b86611409565b90611409565b9992985090965090945050505050565b600080808061157c88866115bd565b9050600061158a88876115bd565b9050600061159888886115bd565b905060006115aa826115578686611409565b939b939a50919850919650505050505050565b6000826115cc575060006103de565b60006115d883856119ae565b9050826115e5858361198c565b1461103f5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610477565b803561164781611a41565b919050565b60006020828403121561165e57600080fd5b813561103f81611a41565b60006020828403121561167b57600080fd5b815161103f81611a41565b6000806040838503121561169957600080fd5b82356116a481611a41565b915060208301356116b481611a41565b809150509250929050565b6000806000606084860312156116d457600080fd5b83356116df81611a41565b925060208401356116ef81611a41565b929592945050506040919091013590565b6000806040838503121561171357600080fd5b823561171e81611a41565b946020939093013593505050565b6000602080838503121561173f57600080fd5b823567ffffffffffffffff8082111561175757600080fd5b818501915085601f83011261176b57600080fd5b81358181111561177d5761177d611a2b565b8060051b604051601f19603f830116810181811085821117156117a2576117a2611a2b565b604052828152858101935084860182860187018a10156117c157600080fd5b600095505b838610156117eb576117d78161163c565b8552600195909501949386019386016117c6565b5098975050505050505050565b60006020828403121561180a57600080fd5b813561103f81611a56565b60006020828403121561182757600080fd5b815161103f81611a56565b60006020828403121561184457600080fd5b5035919050565b60008060006060848603121561186057600080fd5b8351925060208401519150604084015190509250925092565b600060208083528351808285015260005b818110156118a65785810183015185820160400152820161188a565b818111156118b8576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156119535784516001600160a01b03168352938301939183019160010161192e565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611987576119876119ff565b500190565b6000826119a957634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156119c8576119c86119ff565b500290565b6000828210156119df576119df6119ff565b500390565b60006000198214156119f8576119f86119ff565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461051357600080fd5b801515811461051357600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220bc161cac3b05cf2309c9548e982dd647629eafa785c8accbb91455e5a4cde4c464736f6c63430008070033

Deployed Bytecode Sourcemap

3555:10499:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5369:83;;;;;;;;;;-1:-1:-1;5439:5:0;;;;;;;;;;;;-1:-1:-1;;;5439:5:0;;;;5369:83;;;;;;;:::i;:::-;;;;;;;;6221:161;;;;;;;;;;-1:-1:-1;6221:161:0;;;;;:::i;:::-;;:::i;:::-;;;5537:14:1;;5530:22;5512:41;;5500:2;5485:18;6221:161:0;5372:187:1;5646:95:0;;;;;;;;;;-1:-1:-1;4055:27:0;5646:95;;;10563:25:1;;;10551:2;10536:18;5646:95:0;10417:177:1;6390:313:0;;;;;;;;;;-1:-1:-1;6390:313:0;;;;;:::i;:::-;;:::i;10658:88::-;;;;;;;;;;-1:-1:-1;10658:88:0;;;;;:::i;:::-;;:::i;:::-;;5555:83;;;;;;;;;;-1:-1:-1;5555:83:0;;4588:1;11726:36:1;;11714:2;11699:18;5555:83:0;11584:184:1;6711:103:0;;;;;;;;;;-1:-1:-1;6711:103:0;;;;;:::i;:::-;;:::i;12158:194::-;;;;;;;;;;;;;:::i;5749:138::-;;;;;;;;;;-1:-1:-1;5749:138:0;;;;;:::i;:::-;;:::i;2634:148::-;;;;;;;;;;;;;:::i;7431:150::-;;;;;;;;;;-1:-1:-1;7431:150:0;;;;;:::i;:::-;;:::i;2420:79::-;;;;;;;;;;-1:-1:-1;2458:7:0;2485:6;2420:79;;-1:-1:-1;;;;;2485:6:0;;;4110:51:1;;4098:2;4083:18;2420:79:0;3964:203:1;5460:87:0;;;;;;;;;;-1:-1:-1;5532:7:0;;;;;;;;;;;;-1:-1:-1;;;5532:7:0;;;;5460:87;;5895:167;;;;;;;;;;-1:-1:-1;5895:167:0;;;;;:::i;:::-;;:::i;10486:164::-;;;;;;;;;;-1:-1:-1;10486:164:0;;;;;:::i;:::-;;:::i;11951:195::-;;;;;;;;;;;;;:::i;9652:822::-;;;;;;;;;;;;;:::i;7593:150::-;;;;;;;;;;-1:-1:-1;7593:150:0;;;;;:::i;:::-;;:::i;6070:143::-;;;;;;;;;;-1:-1:-1;6070:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6178:18:0;;;6151:7;6178:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6070:143;6221:161;6296:4;6313:39;218:10;6336:7;6345:6;6313:8;:39::i;:::-;-1:-1:-1;6370:4:0;6221:161;;;;;:::o;6390:313::-;6488:4;6505:36;6515:6;6523:9;6534:6;6505:9;:36::i;:::-;6552:121;6561:6;218:10;6583:89;6621:6;6583:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6583:19:0;;;;;;:11;:19;;;;;;;;218:10;6583:33;;;;;;;;;;:37;:89::i;:::-;6552:8;:121::i;:::-;-1:-1:-1;6691:4:0;6390:313;;;;;:::o;10658:88::-;2547:6;;-1:-1:-1;;;;;2547:6:0;218:10;2547:22;2539:67;;;;-1:-1:-1;;;2539:67:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;10718:12:0::1;10733:5;10718:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;10718:20:0::1;::::0;;10658:88::o;6711:103::-;2547:6;;-1:-1:-1;;;;;2547:6:0;218:10;2547:22;2539:67;;;;-1:-1:-1;;;2539:67:0;;;;;;;:::i;:::-;6783:15:::1;:23:::0;;;::::1;;-1:-1:-1::0;;;6783:23:0::1;-1:-1:-1::0;;;;6783:23:0;;::::1;::::0;;;::::1;::::0;;6711:103::o;12158:194::-;12224:15;;-1:-1:-1;;;;;12224:15:0;218:10;-1:-1:-1;;;;;12208:31:0;;12200:40;;;;;;12280:21;12312:32;12280:21;12312:12;:32::i;:::-;12189:163;12158:194::o;5749:138::-;-1:-1:-1;;;;;5862:16:0;;5815:7;5862:16;;;:7;:16;;;;;;5842:37;;:19;:37::i;2634:148::-;2547:6;;-1:-1:-1;;;;;2547:6:0;218:10;2547:22;2539:67;;;;-1:-1:-1;;;2539:67:0;;;;;;;:::i;:::-;2741:1:::1;2725:6:::0;;2704:40:::1;::::0;-1:-1:-1;;;;;2725:6:0;;::::1;::::0;2704:40:::1;::::0;2741:1;;2704:40:::1;2772:1;2755:19:::0;;-1:-1:-1;;;;;;2755:19:0::1;::::0;;2634:148::o;7431:150::-;7515:15;;-1:-1:-1;;;;;7515:15:0;218:10;-1:-1:-1;;;;;7499:31:0;;7491:56;;;;-1:-1:-1;;;7491:56:0;;6772:2:1;7491:56:0;;;6754:21:1;6811:2;6791:18;;;6784:30;-1:-1:-1;;;6830:18:1;;;6823:42;6882:18;;7491:56:0;6570:336:1;7491:56:0;7558:9;:15;7431:150::o;5895:167::-;5973:4;5990:42;218:10;6014:9;6025:6;5990:9;:42::i;10486:164::-;2547:6;;-1:-1:-1;;;;;2547:6:0;218:10;2547:22;2539:67;;;;-1:-1:-1;;;2539:67:0;;;;;;;:::i;:::-;10560:6:::1;10555:88;10576:5;:12;10572:1;:16;10555:88;;;10627:4;10610;:14;10615:5;10621:1;10615:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;10610:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;10610:14:0;:21;;-1:-1:-1;;10610:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10590:3;::::1;::::0;::::1;:::i;:::-;;;;10555:88;;;;10486:164:::0;:::o;11951:195::-;12017:15;;-1:-1:-1;;;;;12017:15:0;218:10;-1:-1:-1;;;;;12001:31:0;;11993:40;;;;;;12044:23;12070:24;12088:4;12070:9;:24::i;:::-;12044:50;;12105:33;12122:15;12105:16;:33::i;9652:822::-;2547:6;;-1:-1:-1;;;;;2547:6:0;218:10;2547:22;2539:67;;;;-1:-1:-1;;;2539:67:0;;;;;;;:::i;:::-;9716:11:::1;::::0;-1:-1:-1;;;9716:11:0;::::1;;;9715:12;9707:47;;;::::0;-1:-1:-1;;;9707:47:0;;10267:2:1;9707:47:0::1;::::0;::::1;10249:21:1::0;10306:2;10286:18;;;10279:30;10345:25;10325:18;;;10318:53;10388:18;;9707:47:0::1;10065:347:1::0;9707:47:0::1;9876:15;:34:::0;;-1:-1:-1;;;;;;9876:34:0::1;9822:42;9876:34:::0;;::::1;::::0;;;9921:58:::1;9938:4;9822:42:::0;4055:27:::1;9921:8;:58::i;:::-;10024:16;-1:-1:-1::0;;;;;10024:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10006:56:0::1;;10071:4;10078:16;-1:-1:-1::0;;;;;10078:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10006:96;::::0;-1:-1:-1;;;;;;10006:96:0::1;::::0;;;;;;-1:-1:-1;;;;;4402:15:1;;;10006:96:0::1;::::0;::::1;4384:34:1::0;4454:15;;4434:18;;;4427:43;4319:18;;10006:96:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9990:13;:112:::0;;-1:-1:-1;;;;;;9990:112:0::1;-1:-1:-1::0;;;;;9990:112:0;;::::1;;::::0;;10113:15:::1;::::0;::::1;:31;10152:21;10183:4;10189:24;10183:4:::0;10189:9:::1;:24::i;:::-;10214:1;10216::::0;10218:7:::1;2458::::0;2485:6;-1:-1:-1;;;;;2485:6:0;;2420:79;10218:7:::1;10113:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;10113:129:0;;;-1:-1:-1;;;;;5119:15:1;;;10113:129:0::1;::::0;::::1;5101:34:1::0;5151:18;;;5144:34;;;;5194:18;;;5187:34;;;;5237:18;;;5230:34;5301:15;;;5280:19;;;5273:44;10226:15:0::1;5333:19:1::0;;;5326:35;5035:19;;10113:129:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;10253:11:0::1;:18:::0;;10330:25:::1;10315:12;:40:::0;-1:-1:-1;;;;10366:18:0;;-1:-1:-1;;;10366:18:0;;;;10433:15:::1;::::0;10395:71:::1;::::0;-1:-1:-1;;;10395:71:0;;-1:-1:-1;;;;;10433:15:0;;::::1;10395:71;::::0;::::1;4655:51:1::0;-1:-1:-1;;4722:18:1;;;4715:34;10402:13:0;;;-1:-1:-1;10395:29:0::1;::::0;4628:18:1;;10395:71:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;7593:150::-:0;7677:15;;-1:-1:-1;;;;;7677:15:0;218:10;-1:-1:-1;;;;;7661:31:0;;7653:56;;;;-1:-1:-1;;;7653:56:0;;6772:2:1;7653:56:0;;;6754:21:1;6811:2;6791:18;;;6784:30;-1:-1:-1;;;6830:18:1;;;6823:42;6882:18;;7653:56:0;6570:336:1;7653:56:0;7720:9;:15;7593:150::o;7084:335::-;-1:-1:-1;;;;;7177:19:0;;7169:68;;;;-1:-1:-1;;;7169:68:0;;9862:2:1;7169:68:0;;;9844:21:1;9901:2;9881:18;;;9874:30;9940:34;9920:18;;;9913:62;-1:-1:-1;;;9991:18:1;;;9984:34;10035:19;;7169:68:0;9660:400:1;7169:68:0;-1:-1:-1;;;;;7256:21:0;;7248:68;;;;-1:-1:-1;;;7248:68:0;;7524:2:1;7248:68:0;;;7506:21:1;7563:2;7543:18;;;7536:30;7602:34;7582:18;;;7575:62;-1:-1:-1;;;7653:18:1;;;7646:32;7695:19;;7248:68:0;7322:398:1;7248:68:0;-1:-1:-1;;;;;7327:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7379:32;;10563:25:1;;;7379:32:0;;10536:18:1;7379:32:0;;;;;;;7084:335;;;:::o;7750:1237::-;-1:-1:-1;;;;;7838:18:0;;7830:68;;;;-1:-1:-1;;;7830:68:0;;9456:2:1;7830:68:0;;;9438:21:1;9495:2;9475:18;;;9468:30;9534:34;9514:18;;;9507:62;-1:-1:-1;;;9585:18:1;;;9578:35;9630:19;;7830:68:0;9254:401:1;7830:68:0;-1:-1:-1;;;;;7917:16:0;;7909:64;;;;-1:-1:-1;;;7909:64:0;;6368:2:1;7909:64:0;;;6350:21:1;6407:2;6387:18;;;6380:30;6446:34;6426:18;;;6419:62;-1:-1:-1;;;6497:18:1;;;6490:33;6540:19;;7909:64:0;6166:399:1;7909:64:0;8001:1;7992:6;:10;7984:64;;;;-1:-1:-1;;;7984:64:0;;9046:2:1;7984:64:0;;;9028:21:1;9085:2;9065:18;;;9058:30;9124:34;9104:18;;;9097:62;-1:-1:-1;;;9175:18:1;;;9168:39;9224:19;;7984:64:0;8844:405:1;7984:64:0;2458:7;2485:6;-1:-1:-1;;;;;8073:15:0;;;2485:6;;8073:15;;;;:32;;-1:-1:-1;2458:7:0;2485:6;-1:-1:-1;;;;;8092:13:0;;;2485:6;;8092:13;;8073:32;8069:866;;;-1:-1:-1;;;;;8131:10:0;;;;;;:4;:10;;;;;;;;8130:11;:24;;;;-1:-1:-1;;;;;;8146:8:0;;;;;;:4;:8;;;;;;;;8145:9;8130:24;8122:33;;;;;;8182:13;;-1:-1:-1;;;;;8174:21:0;;;8182:13;;8174:21;:55;;;;-1:-1:-1;8213:15:0;;-1:-1:-1;;;;;8199:30:0;;;8213:15;;8199:30;;8174:55;:83;;;;-1:-1:-1;;;;;;8235:22:0;;;;;;:18;:22;;;;;;;;8233:24;8174:83;:102;;;;-1:-1:-1;8261:15:0;;-1:-1:-1;;;8261:15:0;;;;8174:102;8170:328;;;8347:12;;8337:6;:22;;8329:31;;;;;;-1:-1:-1;;;;;8387:12:0;;;;;;:8;:12;;;;;;8402:15;-1:-1:-1;8379:39:0;;;;;;8452:30;:15;8471:10;8452:30;:::i;:::-;-1:-1:-1;;;;;8437:12:0;;;;;;:8;:12;;;;;:45;8170:328;8536:28;8567:24;8585:4;8567:9;:24::i;:::-;8611:6;;8536:55;;-1:-1:-1;;;;8611:6:0;;;;8610:7;:32;;;;-1:-1:-1;8629:13:0;;-1:-1:-1;;;;;8621:21:0;;;8629:13;;8621:21;;8610:32;:47;;;;-1:-1:-1;8646:11:0;;-1:-1:-1;;;8646:11:0;;;;8610:47;8606:318;;;8678:38;8695:20;8678:16;:38::i;:::-;8764:21;8807:22;;8804:105;;8854:35;8867:21;8854:12;:35::i;:::-;8659:265;8606:318;8107:828;8069:866;8949:30;8964:4;8969:2;8972:6;8949:14;:30::i;:::-;7750:1237;;;:::o;1275:190::-;1361:7;1397:12;1389:6;;;;1381:29;;;;-1:-1:-1;;;1381:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1421:9:0;1433:5;1437:1;1433;:5;:::i;:::-;1421:17;1275:190;-1:-1:-1;;;;;1275:190:0:o;9486:154::-;9543:15;;-1:-1:-1;;;;;9543:15:0;:39;9568:13;:6;9579:1;9568:10;:13::i;:::-;9543:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9593:15:0;;-1:-1:-1;;;;;9593:15:0;:39;9618:13;:6;9629:1;9618:10;:13::i;:::-;9593:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6822:254;6889:7;6928;;6917;:18;;6909:73;;;;-1:-1:-1;;;6909:73:0;;7113:2:1;6909:73:0;;;7095:21:1;7152:2;7132:18;;;7125:30;7191:34;7171:18;;;7164:62;-1:-1:-1;;;7242:18:1;;;7235:40;7292:19;;6909:73:0;6911:406:1;6909:73:0;6993:19;7016:10;:8;:10::i;:::-;6993:33;-1:-1:-1;7044:24:0;:7;6993:33;7044:11;:24::i;:::-;7037:31;6822:254;-1:-1:-1;;;6822:254:0:o;8995:483::-;4961:6;:13;;-1:-1:-1;;;;4961:13:0;-1:-1:-1;;;4961:13:0;;;9097:16:::1;::::0;;9111:1:::1;9097:16:::0;;;;;::::1;::::0;;-1:-1:-1;;9097:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9097:16:0::1;9073:40;;9142:4;9124;9129:1;9124:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9124:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;9168:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;9168:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;9124:7;;9168:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9158:4;9163:1;9158:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9158:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;9233:15:::1;::::0;9201:62:::1;::::0;9218:4:::1;::::0;9233:15:::1;9251:11:::0;9201:8:::1;:62::i;:::-;9274:15;::::0;:196:::1;::::0;-1:-1:-1;;;9274:196:0;;-1:-1:-1;;;;;9274:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;9355:11;;9274:15:::1;::::0;9397:4;;9424::::1;::::0;9444:15:::1;::::0;9274:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;4997:6:0;:14;;-1:-1:-1;;;;4997:14:0;;;-1:-1:-1;;;;8995:483:0:o;10762:146::-;10856:44;10874:6;10882:9;10893:6;10856:17;:44::i;1727:132::-;1785:7;1812:39;1816:1;1819;1812:39;;;;;;;;;;;;;;;;;:3;:39::i;13618:163::-;13659:7;13680:15;13697;13716:19;:17;:19::i;:::-;13679:56;;-1:-1:-1;13679:56:0;-1:-1:-1;13753:20:0;13679:56;;13753:11;:20::i;:::-;13746:27;;;;13618:163;:::o;10916:488::-;11015:15;11032:23;11057:12;11071:23;11096:12;11110:13;11127:19;11138:7;11127:10;:19::i;:::-;-1:-1:-1;;;;;11175:15:0;;;;;;:7;:15;;;;;;11014:132;;-1:-1:-1;11014:132:0;;-1:-1:-1;11014:132:0;;-1:-1:-1;11014:132:0;-1:-1:-1;11014:132:0;-1:-1:-1;11014:132:0;-1:-1:-1;11175:28:0;;11014:132;11175:19;:28::i;:::-;-1:-1:-1;;;;;11157:15:0;;;;;;;:7;:15;;;;;;:46;;;;11235:18;;;;;;;:39;;11258:15;11235:22;:39::i;:::-;-1:-1:-1;;;;;11214:18:0;;;;;;:7;:18;;;;;:60;11286:16;11296:5;11286:9;:16::i;:::-;11313:23;11325:4;11331;11313:11;:23::i;:::-;11369:9;-1:-1:-1;;;;;11352:44:0;11361:6;-1:-1:-1;;;;;11352:44:0;;11380:15;11352:44;;;;10563:25:1;;10551:2;10536:18;;10417:177;11352:44:0;;;;;;;;11003:401;;;;;;10916:488;;;:::o;1867:189::-;1953:7;1988:12;1981:5;1973:28;;;;-1:-1:-1;;;1973:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2012:9:0;2024:5;2028:1;2024;:5;:::i;13789:262::-;13886:7;;13839;;;;4055:27;13960:20;13886:7;4055:27;13960:11;:20::i;:::-;13950:7;:30;13946:61;;;-1:-1:-1;;13990:7:0;;;4055:27;;-1:-1:-1;13789:262:0;-1:-1:-1;13789:262:0:o;13946:61::-;14026:7;;14035;;-1:-1:-1;13789:262:0;-1:-1:-1;13789:262:0:o;12366:471::-;12425:7;12434;12443;12452;12461;12470;12491:23;12516:12;12530:13;12547:42;12559:7;12568:9;;12579;;12547:11;:42::i;:::-;12490:99;;;;;;12600:19;12623:10;:8;:10::i;:::-;12600:33;;12645:15;12662:23;12687:12;12703:46;12715:7;12724:4;12730:5;12737:11;12703;:46::i;:::-;12644:105;;-1:-1:-1;12644:105:0;-1:-1:-1;12644:105:0;-1:-1:-1;12800:15:0;;-1:-1:-1;12817:4:0;;-1:-1:-1;12823:5:0;;-1:-1:-1;;;;;12366:471:0;;;;;;;:::o;1131:136::-;1189:7;1216:43;1220:1;1223;1216:43;;;;;;;;;;;;;;;;;:3;:43::i;944:179::-;1002:7;;1034:5;1038:1;1034;:5;:::i;:::-;1022:17;;1063:1;1058;:6;;1050:46;;;;-1:-1:-1;;;1050:46:0;;7927:2:1;1050:46:0;;;7909:21:1;7966:2;7946:18;;;7939:30;8005:29;7985:18;;;7978:57;8052:18;;1050:46:0;7725:351:1;11535:212:0;11588:19;11611:10;:8;:10::i;:::-;11588:33;-1:-1:-1;11632:13:0;11648:22;:5;11588:33;11648:9;:22::i;:::-;11722:4;11706:22;;;;:7;:22;;;;;;11632:38;;-1:-1:-1;11706:33:0;;11632:38;11706:26;:33::i;:::-;11697:4;11681:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;11535:212:0:o;11755:147::-;11833:7;;:17;;11845:4;11833:11;:17::i;:::-;11823:7;:27;11874:10;;:20;;11889:4;11874:14;:20::i;:::-;11861:10;:33;-1:-1:-1;;11755:147:0:o;12845:351::-;12938:7;;;;12991:28;13015:3;12991:19;:7;13003:6;12991:11;:19::i;:::-;:23;;:28::i;:::-;12976:43;-1:-1:-1;13030:13:0;13046:29;13071:3;13046:20;:7;13058;13046:11;:20::i;:29::-;13030:45;-1:-1:-1;13086:23:0;13112:28;13030:45;13112:17;:7;13124:4;13112:11;:17::i;:::-;:21;;:28::i;:::-;13086:54;13176:4;;-1:-1:-1;13182:5:0;;-1:-1:-1;12845:351:0;;-1:-1:-1;;;;;12845:351:0:o;13204:409::-;13314:7;;;;13370:24;:7;13382:11;13370;:24::i;:::-;13352:42;-1:-1:-1;13405:12:0;13420:21;:4;13429:11;13420:8;:21::i;:::-;13405:36;-1:-1:-1;13452:13:0;13468:22;:5;13478:11;13468:9;:22::i;:::-;13452:38;-1:-1:-1;13501:23:0;13527:28;13452:38;13527:17;:7;13539:4;13527:11;:17::i;:28::-;13574:7;;;;-1:-1:-1;13600:4:0;;-1:-1:-1;13204:409:0;;-1:-1:-1;;;;;;;13204:409:0:o;1473:246::-;1531:7;1555:6;1551:47;;-1:-1:-1;1585:1:0;1578:8;;1551:47;1608:9;1620:5;1624:1;1620;:5;:::i;:::-;1608:17;-1:-1:-1;1653:1:0;1644:5;1648:1;1608:17;1644:5;:::i;:::-;:10;1636:56;;;;-1:-1:-1;;;1636:56:0;;8283:2:1;1636:56:0;;;8265:21:1;8322:2;8302:18;;;8295:30;8361:34;8341:18;;;8334:62;-1:-1:-1;;;8412:18:1;;;8405:31;8453:19;;1636:56:0;8081:397:1;14:134;82:20;;111:31;82:20;111:31;:::i;:::-;14:134;;;:::o;153:247::-;212:6;265:2;253:9;244:7;240:23;236:32;233:52;;;281:1;278;271:12;233:52;320:9;307:23;339:31;364:5;339:31;:::i;405:251::-;475:6;528:2;516:9;507:7;503:23;499:32;496:52;;;544:1;541;534:12;496:52;576:9;570:16;595:31;620:5;595:31;:::i;661:388::-;729:6;737;790:2;778:9;769:7;765:23;761:32;758:52;;;806:1;803;796:12;758:52;845:9;832:23;864:31;889:5;864:31;:::i;:::-;914:5;-1:-1:-1;971:2:1;956:18;;943:32;984:33;943:32;984:33;:::i;:::-;1036:7;1026:17;;;661:388;;;;;:::o;1054:456::-;1131:6;1139;1147;1200:2;1188:9;1179:7;1175:23;1171:32;1168:52;;;1216:1;1213;1206:12;1168:52;1255:9;1242:23;1274:31;1299:5;1274:31;:::i;:::-;1324:5;-1:-1:-1;1381:2:1;1366:18;;1353:32;1394:33;1353:32;1394:33;:::i;:::-;1054:456;;1446:7;;-1:-1:-1;;;1500:2:1;1485:18;;;;1472:32;;1054:456::o;1515:315::-;1583:6;1591;1644:2;1632:9;1623:7;1619:23;1615:32;1612:52;;;1660:1;1657;1650:12;1612:52;1699:9;1686:23;1718:31;1743:5;1718:31;:::i;:::-;1768:5;1820:2;1805:18;;;;1792:32;;-1:-1:-1;;;1515:315:1:o;1835:1132::-;1919:6;1950:2;1993;1981:9;1972:7;1968:23;1964:32;1961:52;;;2009:1;2006;1999:12;1961:52;2049:9;2036:23;2078:18;2119:2;2111:6;2108:14;2105:34;;;2135:1;2132;2125:12;2105:34;2173:6;2162:9;2158:22;2148:32;;2218:7;2211:4;2207:2;2203:13;2199:27;2189:55;;2240:1;2237;2230:12;2189:55;2276:2;2263:16;2298:2;2294;2291:10;2288:36;;;2304:18;;:::i;:::-;2350:2;2347:1;2343:10;2382:2;2376:9;2445:2;2441:7;2436:2;2432;2428:11;2424:25;2416:6;2412:38;2500:6;2488:10;2485:22;2480:2;2468:10;2465:18;2462:46;2459:72;;;2511:18;;:::i;:::-;2547:2;2540:22;2597:18;;;2631:15;;;;-1:-1:-1;2666:11:1;;;2696;;;2692:20;;2689:33;-1:-1:-1;2686:53:1;;;2735:1;2732;2725:12;2686:53;2757:1;2748:10;;2767:169;2781:2;2778:1;2775:9;2767:169;;;2838:23;2857:3;2838:23;:::i;:::-;2826:36;;2799:1;2792:9;;;;;2882:12;;;;2914;;2767:169;;;-1:-1:-1;2955:6:1;1835:1132;-1:-1:-1;;;;;;;;1835:1132:1:o;2972:241::-;3028:6;3081:2;3069:9;3060:7;3056:23;3052:32;3049:52;;;3097:1;3094;3087:12;3049:52;3136:9;3123:23;3155:28;3177:5;3155:28;:::i;3218:245::-;3285:6;3338:2;3326:9;3317:7;3313:23;3309:32;3306:52;;;3354:1;3351;3344:12;3306:52;3386:9;3380:16;3405:28;3427:5;3405:28;:::i;3468:180::-;3527:6;3580:2;3568:9;3559:7;3555:23;3551:32;3548:52;;;3596:1;3593;3586:12;3548:52;-1:-1:-1;3619:23:1;;3468:180;-1:-1:-1;3468:180:1:o;3653:306::-;3741:6;3749;3757;3810:2;3798:9;3789:7;3785:23;3781:32;3778:52;;;3826:1;3823;3816:12;3778:52;3855:9;3849:16;3839:26;;3905:2;3894:9;3890:18;3884:25;3874:35;;3949:2;3938:9;3934:18;3928:25;3918:35;;3653:306;;;;;:::o;5564:597::-;5676:4;5705:2;5734;5723:9;5716:21;5766:6;5760:13;5809:6;5804:2;5793:9;5789:18;5782:34;5834:1;5844:140;5858:6;5855:1;5852:13;5844:140;;;5953:14;;;5949:23;;5943:30;5919:17;;;5938:2;5915:26;5908:66;5873:10;;5844:140;;;6002:6;5999:1;5996:13;5993:91;;;6072:1;6067:2;6058:6;6047:9;6043:22;6039:31;6032:42;5993:91;-1:-1:-1;6145:2:1;6124:15;-1:-1:-1;;6120:29:1;6105:45;;;;6152:2;6101:54;;5564:597;-1:-1:-1;;;5564:597:1:o;8483:356::-;8685:2;8667:21;;;8704:18;;;8697:30;8763:34;8758:2;8743:18;;8736:62;8830:2;8815:18;;8483:356::o;10599:980::-;10861:4;10909:3;10898:9;10894:19;10940:6;10929:9;10922:25;10966:2;11004:6;10999:2;10988:9;10984:18;10977:34;11047:3;11042:2;11031:9;11027:18;11020:31;11071:6;11106;11100:13;11137:6;11129;11122:22;11175:3;11164:9;11160:19;11153:26;;11214:2;11206:6;11202:15;11188:29;;11235:1;11245:195;11259:6;11256:1;11253:13;11245:195;;;11324:13;;-1:-1:-1;;;;;11320:39:1;11308:52;;11415:15;;;;11380:12;;;;11356:1;11274:9;11245:195;;;-1:-1:-1;;;;;;;11496:32:1;;;;11491:2;11476:18;;11469:60;-1:-1:-1;;;11560:3:1;11545:19;11538:35;11457:3;10599:980;-1:-1:-1;;;10599:980:1:o;11773:128::-;11813:3;11844:1;11840:6;11837:1;11834:13;11831:39;;;11850:18;;:::i;:::-;-1:-1:-1;11886:9:1;;11773:128::o;11906:217::-;11946:1;11972;11962:132;;12016:10;12011:3;12007:20;12004:1;11997:31;12051:4;12048:1;12041:15;12079:4;12076:1;12069:15;11962:132;-1:-1:-1;12108:9:1;;11906:217::o;12128:168::-;12168:7;12234:1;12230;12226:6;12222:14;12219:1;12216:21;12211:1;12204:9;12197:17;12193:45;12190:71;;;12241:18;;:::i;:::-;-1:-1:-1;12281:9:1;;12128:168::o;12301:125::-;12341:4;12369:1;12366;12363:8;12360:34;;;12374:18;;:::i;:::-;-1:-1:-1;12411:9:1;;12301:125::o;12431:135::-;12470:3;-1:-1:-1;;12491:17:1;;12488:43;;;12511:18;;:::i;:::-;-1:-1:-1;12558:1:1;12547:13;;12431:135::o;12571:127::-;12632:10;12627:3;12623:20;12620:1;12613:31;12663:4;12660:1;12653:15;12687:4;12684:1;12677:15;12703:127;12764:10;12759:3;12755:20;12752:1;12745:31;12795:4;12792:1;12785:15;12819:4;12816:1;12809:15;12835:127;12896:10;12891:3;12887:20;12884:1;12877:31;12927:4;12924:1;12917:15;12951:4;12948:1;12941:15;12967:131;-1:-1:-1;;;;;13042:31:1;;13032:42;;13022:70;;13088:1;13085;13078:12;13103:118;13189:5;13182:13;13175:21;13168:5;13165:32;13155:60;;13211:1;13208;13201:12

Swarm Source

ipfs://bc161cac3b05cf2309c9548e982dd647629eafa785c8accbb91455e5a4cde4c4

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.