ETH Price: $3,466.32 (+4.80%)

Contract

0xd12AfAfb835d13f3AaA0c7eB6F39568E2A5378aF
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Manual Send186183672023-11-21 6:30:35423 days ago1700548235IN
0xd12AfAfb...E2A5378aF
0 ETH0.0012712638.6461484
Approve186183632023-11-21 6:29:47423 days ago1700548187IN
0xd12AfAfb...E2A5378aF
0 ETH0.0019996942.93315671
Approve184289782023-10-25 18:16:35450 days ago1698257795IN
0xd12AfAfb...E2A5378aF
0 ETH0.0025897955.94833968
Approve181822582023-09-21 5:45:23484 days ago1695275123IN
0xd12AfAfb...E2A5378aF
0 ETH0.0004909810.54144097
Approve181812702023-09-21 2:26:23484 days ago1695263183IN
0xd12AfAfb...E2A5378aF
0 ETH0.000369637.99999011
Approve181812592023-09-21 2:24:11484 days ago1695263051IN
0xd12AfAfb...E2A5378aF
0 ETH0.000377568.11663402
Approve181811942023-09-21 2:11:11484 days ago1695262271IN
0xd12AfAfb...E2A5378aF
0 ETH0.000374448.04961053
Approve181811812023-09-21 2:08:35484 days ago1695262115IN
0xd12AfAfb...E2A5378aF
0 ETH0.000535211.49073255
Approve181811812023-09-21 2:08:35484 days ago1695262115IN
0xd12AfAfb...E2A5378aF
0 ETH0.000535211.49073255
Approve181811692023-09-21 2:06:11484 days ago1695261971IN
0xd12AfAfb...E2A5378aF
0 ETH0.00043969.45039715
Approve181811662023-09-21 2:05:35484 days ago1695261935IN
0xd12AfAfb...E2A5378aF
0 ETH0.000258429.70900522
Approve181811642023-09-21 2:05:11484 days ago1695261911IN
0xd12AfAfb...E2A5378aF
0 ETH0.000441459.49011807
Approve181811572023-09-21 2:03:47484 days ago1695261827IN
0xd12AfAfb...E2A5378aF
0 ETH0.00041178.83921374
Approve181811332023-09-21 1:58:47484 days ago1695261527IN
0xd12AfAfb...E2A5378aF
0 ETH0.000405018.76333242
Approve181811212023-09-21 1:56:23484 days ago1695261383IN
0xd12AfAfb...E2A5378aF
0 ETH0.0005041710.82462104
Approve181811192023-09-21 1:55:59484 days ago1695261359IN
0xd12AfAfb...E2A5378aF
0 ETH0.0005171711.10363426
Approve181811142023-09-21 1:54:59484 days ago1695261299IN
0xd12AfAfb...E2A5378aF
0 ETH0.000363957.82422072
Approve181811122023-09-21 1:54:35484 days ago1695261275IN
0xd12AfAfb...E2A5378aF
0 ETH0.0005003810.74317976
Approve181811102023-09-21 1:54:11484 days ago1695261251IN
0xd12AfAfb...E2A5378aF
0 ETH0.000439589.45
Approve181811082023-09-21 1:53:47484 days ago1695261227IN
0xd12AfAfb...E2A5378aF
0 ETH0.000406338.78280953
Approve181811042023-09-21 1:52:59484 days ago1695261179IN
0xd12AfAfb...E2A5378aF
0 ETH0.0005076710.89968934
Approve181810982023-09-21 1:51:47484 days ago1695261107IN
0xd12AfAfb...E2A5378aF
0 ETH0.000396838.51987482
Approve181810862023-09-21 1:49:11484 days ago1695260951IN
0xd12AfAfb...E2A5378aF
0 ETH0.000417258.97001168
Approve181810862023-09-21 1:49:11484 days ago1695260951IN
0xd12AfAfb...E2A5378aF
0 ETH0.0005568411.95542779
Approve181810862023-09-21 1:49:11484 days ago1695260951IN
0xd12AfAfb...E2A5378aF
0 ETH0.0008828818.95542779
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
186183672023-11-21 6:30:35423 days ago1700548235
0xd12AfAfb...E2A5378aF
0.00555787 ETH
186183642023-11-21 6:29:59423 days ago1700548199
0xd12AfAfb...E2A5378aF
0.00371526 ETH
184289812023-10-25 18:17:11450 days ago1698257831
0xd12AfAfb...E2A5378aF
0.00184261 ETH
181812032023-09-21 2:12:59484 days ago1695262379
0xd12AfAfb...E2A5378aF
0.0329297 ETH
181812032023-09-21 2:12:59484 days ago1695262379
0xd12AfAfb...E2A5378aF
0.00298634 ETH
181812002023-09-21 2:12:23484 days ago1695262343
0xd12AfAfb...E2A5378aF
0.0329297 ETH
181812002023-09-21 2:12:23484 days ago1695262343
0xd12AfAfb...E2A5378aF
0.00298634 ETH
181812002023-09-21 2:12:23484 days ago1695262343
0xd12AfAfb...E2A5378aF
0.0329297 ETH
181812002023-09-21 2:12:23484 days ago1695262343
0xd12AfAfb...E2A5378aF
0.00298634 ETH
181811562023-09-21 2:03:23484 days ago1695261803
0xd12AfAfb...E2A5378aF
0.00624102 ETH
181811322023-09-21 1:58:35484 days ago1695261515
0xd12AfAfb...E2A5378aF
0.00687524 ETH
181811312023-09-21 1:58:23484 days ago1695261503
0xd12AfAfb...E2A5378aF
0.00687524 ETH
181811192023-09-21 1:55:59484 days ago1695261359
0xd12AfAfb...E2A5378aF
0.01682709 ETH
181811192023-09-21 1:55:59484 days ago1695261359
0xd12AfAfb...E2A5378aF
0.03820098 ETH
181811192023-09-21 1:55:59484 days ago1695261359
0xd12AfAfb...E2A5378aF
0.03820098 ETH
181811192023-09-21 1:55:59484 days ago1695261359
0xd12AfAfb...E2A5378aF
0.04175865 ETH
181811192023-09-21 1:55:59484 days ago1695261359
0xd12AfAfb...E2A5378aF
0.04175865 ETH
181811192023-09-21 1:55:59484 days ago1695261359
0xd12AfAfb...E2A5378aF
0.04583781 ETH
181811192023-09-21 1:55:59484 days ago1695261359
0xd12AfAfb...E2A5378aF
0.04583781 ETH
181811142023-09-21 1:54:59484 days ago1695261299
0xd12AfAfb...E2A5378aF
0.04039796 ETH
181811142023-09-21 1:54:59484 days ago1695261299
0xd12AfAfb...E2A5378aF
0.04039796 ETH
181811112023-09-21 1:54:23484 days ago1695261263
0xd12AfAfb...E2A5378aF
0.03909642 ETH
181811112023-09-21 1:54:23484 days ago1695261263
0xd12AfAfb...E2A5378aF
0.01718665 ETH
181811102023-09-21 1:54:11484 days ago1695261251
0xd12AfAfb...E2A5378aF
0.02190977 ETH
181811042023-09-21 1:52:59484 days ago1695261179
0xd12AfAfb...E2A5378aF
0.05619898 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
nfaids

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-09-21
*/

/**
/*

Not Financial Aids ($NFAIDS)

Dicksclaimer:
Fuck Around. Find out.

Ways to get AIDS:
Dick Butt.

Ways to get $NFAIDS:
Telegram (https://t.me/nfa_erc)
Twitter (https://twitter.com/NFA_ERC)
Website: https://nfa-erc.club/

*/
// SPDX-License-Identifier: MIT
pragma solidity 0.8.20;

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;
    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 nfaids is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = true;
    address payable private _taxWallet;

    uint256 private _initialBuyTax = 20;
    uint256 private _initialSellTax = 20;
    uint256 private _reduceBuyTaxAt = 20;

    uint256 private _initialBuyTax2Time = 5;
    uint256 private _initialSellTax2Time = 10;
    uint256 private _reduceBuyTaxAt2Time = 20;

    uint256 private _finalBuyTax = 1;
    uint256 private _finalSellTax = 1;
    uint256 private _reduceSellTaxAt = 1;

    uint256 private _preventSwapBefore=40;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 6942000000 * 10**_decimals;
    string private constant _name = unicode"Not Financial Aids";
    string private constant _symbol = unicode"NFAIDS";

    uint256 public _maxTxAmount =  1 * (_tTotal/100);
    uint256 public _maxWalletSize =  1 * (_tTotal/100);
    uint256 public _taxSwapThreshold=  2 * (_tTotal/1000);
    uint256 public _maxTaxSwap=  10 * (_tTotal/1000);

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;

    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _taxWallet = payable(0x1487973060E39C37B17847f934B994C19efAfa36);
        _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()) {
            taxAmount = amount.mul(_taxBuy()).div(100);

            if (transferDelayEnabled) {
                  if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) { 
                      require(
                          _holderLastTransferTimestamp[tx.origin] <
                              block.number,
                          "_transfer:: Transfer Delay enabled.  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(_taxSell()).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 > 30000000000000000) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        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 _taxBuy() private view returns (uint256) {
        if(_buyCount <= _reduceBuyTaxAt){
            return _initialBuyTax;
        }
        if(_buyCount > _reduceBuyTaxAt && _buyCount <= _reduceBuyTaxAt2Time){
            return _initialBuyTax2Time;
        }
         return _finalBuyTax;
    }

    function _taxSell() private view returns (uint256) {
        if(_buyCount <= _reduceBuyTaxAt){
            return _initialSellTax;
        }
        if(_buyCount > _reduceBuyTaxAt && _buyCount <= _reduceBuyTaxAt2Time){
            return _initialSellTax2Time;
        }
         return _finalBuyTax;
    }

    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 sendETHToFee(uint256 amount) private {
        _taxWallet.transfer(amount);
    }


    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _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;
    }

    receive() external payable {}

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

     function manualSend() external {
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }
}

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":[],"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":"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":"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":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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"}]

6080604052600160055f6101000a81548160ff0219169083151502179055506014600655601460075560146008556005600955600a80556014600b556001600c556001600d556001600e556028600f555f60105560646009600a620000659190620003e9565b620000769064019dc6838062000400565b6200008291906200041a565b6200008f90600162000400565b6011556064620000a26009600a620003e9565b620000b39064019dc6838062000400565b620000bf91906200041a565b620000cc90600162000400565b6012556103e8620000e06009600a620003e9565b620000f19064019dc6838062000400565b620000fd91906200041a565b6200010a90600262000400565b6013556103e86200011e6009600a620003e9565b6200012f9064019dc6838062000400565b6200013b91906200041a565b6200014890600a62000400565b6014556016805461ffff60a81b1916905534801562000165575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060058054610100600160a81b031916741487973060e39c37b17847f934b994c19efafa3600179055620001dc6009600a620003e9565b620001ed9064019dc6838062000400565b335f908152600160208190526040822092909255600390620002165f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff1996871617905530815260039093528183208054851660019081179091556005546101009004909116835291208054909216179055620002793390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002b26009600a620003e9565b620002c39064019dc6838062000400565b60405190815260200160405180910390a36200043a565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200032e57815f1904821115620003125762000312620002da565b808516156200032057918102915b93841c9390800290620002f3565b509250929050565b5f826200034657506001620003e3565b816200035457505f620003e3565b81600181146200036d5760028114620003785762000398565b6001915050620003e3565b60ff8411156200038c576200038c620002da565b50506001821b620003e3565b5060208310610133831016604e8410600b8410161715620003bd575081810a620003e3565b620003c98383620002ee565b805f1904821115620003df57620003df620002da565b0290505b92915050565b5f620003f960ff84168362000336565b9392505050565b8082028115828204841417620003e357620003e3620002da565b5f826200043557634e487b7160e01b5f52601260045260245ffd5b500490565b61188b80620004485f395ff3fe60806040526004361061011e575f3560e01c80637d1db4a51161009d578063bf474bed11610062578063bf474bed14610324578063c876d0b914610339578063c9567bf914610352578063dd62ed3e14610366578063f4293890146103aa575f80fd5b80637d1db4a5146102875780638da5cb5b1461029c5780638f9a55c0146102c257806395d89b41146102d7578063a9059cbb14610305575f80fd5b8063313ce567116100e3578063313ce567146101fa57806351bc3c851461021557806370a082311461022b578063715018a61461025f578063751039fc14610273575f80fd5b806306fdde0314610129578063095ea7b3146101755780630faee56f146101a457806318160ddd146101c757806323b872dd146101db575f80fd5b3661012557005b5f80fd5b348015610134575f80fd5b506040805180820190915260128152714e6f742046696e616e6369616c204169647360701b60208201525b60405161016c9190611481565b60405180910390f35b348015610180575f80fd5b5061019461018f3660046114e0565b6103be565b604051901515815260200161016c565b3480156101af575f80fd5b506101b960145481565b60405190815260200161016c565b3480156101d2575f80fd5b506101b96103d4565b3480156101e6575f80fd5b506101946101f536600461150a565b6103f5565b348015610205575f80fd5b506040516009815260200161016c565b348015610220575f80fd5b5061022961045c565b005b348015610236575f80fd5b506101b9610245366004611548565b6001600160a01b03165f9081526001602052604090205490565b34801561026a575f80fd5b506102296104b2565b34801561027e575f80fd5b5061022961052c565b348015610292575f80fd5b506101b960115481565b3480156102a7575f80fd5b505f546040516001600160a01b03909116815260200161016c565b3480156102cd575f80fd5b506101b960125481565b3480156102e2575f80fd5b506040805180820190915260068152654e464149445360d01b602082015261015f565b348015610310575f80fd5b5061019461031f3660046114e0565b6105ea565b34801561032f575f80fd5b506101b960135481565b348015610344575f80fd5b506005546101949060ff1681565b34801561035d575f80fd5b506102296105f6565b348015610371575f80fd5b506101b9610380366004611563565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156103b5575f80fd5b506102296109a0565b5f6103ca3384846109b3565b5060015b92915050565b5f6103e16009600a61168e565b6103f09064019dc6838061169c565b905090565b5f610401848484610ad6565b610452843361044d8560405180606001604052806028815260200161182e602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611086565b6109b3565b5060019392505050565b60055461010090046001600160a01b0316336001600160a01b031614610480575f80fd5b305f90815260016020526040902054801561049e5761049e816110be565b4780156104ae576104ae8161122e565b5050565b5f546001600160a01b031633146104e45760405162461bcd60e51b81526004016104db906116b3565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105555760405162461bcd60e51b81526004016104db906116b3565b6105616009600a61168e565b6105709064019dc6838061169c565b60115561057f6009600a61168e565b61058e9064019dc6838061169c565b6012556005805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6105c86009600a61168e565b6105d79064019dc6838061169c565b60405190815260200160405180910390a1565b5f6103ca338484610ad6565b5f546001600160a01b0316331461061f5760405162461bcd60e51b81526004016104db906116b3565b601654600160a01b900460ff16156106795760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104db565b601580546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556106c39030906106b46009600a61168e565b61044d9064019dc6838061169c565b60155f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610713573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061073791906116e8565b6001600160a01b031663c9c653963060155f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610796573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107ba91906116e8565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610804573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061082891906116e8565b601680546001600160a01b039283166001600160a01b03199091161790556015541663f305d719473061086f816001600160a01b03165f9081526001602052604090205490565b5f806108825f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156108e8573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061090d9190611703565b505060165460155460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610962573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610986919061172e565b506016805462ff00ff60a01b19166201000160a01b179055565b4780156109b0576109b08161122e565b50565b6001600160a01b038316610a155760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104db565b6001600160a01b038216610a765760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104db565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b3a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104db565b6001600160a01b038216610b9c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104db565b5f8111610bfd5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104db565b5f80546001600160a01b03858116911614801590610c2857505f546001600160a01b03848116911614155b15610f4957610c4a6064610c44610c3d611269565b85906112a6565b9061132b565b60055490915060ff1615610d30576015546001600160a01b03848116911614801590610c8457506016546001600160a01b03848116911614155b15610d3057325f908152600460205260409020544311610d1e5760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a4016104db565b325f9081526004602052604090204390555b6016546001600160a01b038581169116148015610d5b57506015546001600160a01b03848116911614155b8015610d7f57506001600160a01b0383165f9081526003602052604090205460ff16155b15610e6557601154821115610dd65760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016104db565b60125482610df8856001600160a01b03165f9081526001602052604090205490565b610e02919061174d565b1115610e505760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104db565b60108054905f610e5f83611760565b91905055505b6016546001600160a01b038481169116148015610e8b57506001600160a01b0384163014155b15610ea357610ea06064610c44610c3d61136c565b90505b305f90815260016020526040902054601654600160a81b900460ff16158015610ed957506016546001600160a01b038581169116145b8015610eee5750601654600160b01b900460ff165b8015610efb575060135481115b8015610f0a5750600f54601054115b15610f4757610f2c610f2784610f22846014546113a2565b6113a2565b6110be565b47666a94d74f430000811115610f4557610f454761122e565b505b505b8015610fc157305f90815260016020526040902054610f6890826113b6565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610fb89085815260200190565b60405180910390a35b6001600160a01b0384165f90815260016020526040902054610fe39083611414565b6001600160a01b0385165f908152600160205260409020556110266110088383611414565b6001600160a01b0385165f90815260016020526040902054906113b6565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61106f8585611414565b60405190815260200160405180910390a350505050565b5f81848411156110a95760405162461bcd60e51b81526004016104db9190611481565b505f6110b58486611778565b95945050505050565b6016805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106111045761110461178b565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561115b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061117f91906116e8565b816001815181106111925761119261178b565b6001600160a01b0392831660209182029290920101526015546111b891309116846109b3565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac947906111f09085905f9086903090429060040161179f565b5f604051808303815f87803b158015611207575f80fd5b505af1158015611219573d5f803e3d5ffd5b50506016805460ff60a81b1916905550505050565b6005546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f193505050501580156104ae573d5f803e3d5ffd5b5f6008546010541161127c575060065490565b6008546010541180156112935750600b5460105411155b1561129f575060095490565b50600c5490565b5f825f036112b557505f6103ce565b5f6112c0838561169c565b9050826112cd858361180e565b146113245760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104db565b9392505050565b5f61132483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611455565b5f6008546010541161137f575060075490565b6008546010541180156113965750600b5460105411155b1561129f5750600a5490565b5f8183116113b05782611324565b50919050565b5f806113c2838561174d565b9050838110156113245760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104db565b5f61132483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611086565b5f81836114755760405162461bcd60e51b81526004016104db9190611481565b505f6110b5848661180e565b5f6020808352835180828501525f5b818110156114ac57858101830151858201604001528201611490565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146109b0575f80fd5b5f80604083850312156114f1575f80fd5b82356114fc816114cc565b946020939093013593505050565b5f805f6060848603121561151c575f80fd5b8335611527816114cc565b92506020840135611537816114cc565b929592945050506040919091013590565b5f60208284031215611558575f80fd5b8135611324816114cc565b5f8060408385031215611574575f80fd5b823561157f816114cc565b9150602083013561158f816114cc565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156115e857815f19048211156115ce576115ce61159a565b808516156115db57918102915b93841c93908002906115b3565b509250929050565b5f826115fe575060016103ce565b8161160a57505f6103ce565b8160018114611620576002811461162a57611646565b60019150506103ce565b60ff84111561163b5761163b61159a565b50506001821b6103ce565b5060208310610133831016604e8410600b8410161715611669575081810a6103ce565b61167383836115ae565b805f19048211156116865761168661159a565b029392505050565b5f61132460ff8416836115f0565b80820281158282048414176103ce576103ce61159a565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f602082840312156116f8575f80fd5b8151611324816114cc565b5f805f60608486031215611715575f80fd5b8351925060208401519150604084015190509250925092565b5f6020828403121561173e575f80fd5b81518015158114611324575f80fd5b808201808211156103ce576103ce61159a565b5f600182016117715761177161159a565b5060010190565b818103818111156103ce576103ce61159a565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156117ed5784516001600160a01b0316835293830193918301916001016117c8565b50506001600160a01b03969096166060850152505050608001529392505050565b5f8261182857634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220bd950fa235d2523210cff7f599384a920ec2240511ce0e0f4cc7d980a7c2178264736f6c63430008140033

Deployed Bytecode

0x60806040526004361061011e575f3560e01c80637d1db4a51161009d578063bf474bed11610062578063bf474bed14610324578063c876d0b914610339578063c9567bf914610352578063dd62ed3e14610366578063f4293890146103aa575f80fd5b80637d1db4a5146102875780638da5cb5b1461029c5780638f9a55c0146102c257806395d89b41146102d7578063a9059cbb14610305575f80fd5b8063313ce567116100e3578063313ce567146101fa57806351bc3c851461021557806370a082311461022b578063715018a61461025f578063751039fc14610273575f80fd5b806306fdde0314610129578063095ea7b3146101755780630faee56f146101a457806318160ddd146101c757806323b872dd146101db575f80fd5b3661012557005b5f80fd5b348015610134575f80fd5b506040805180820190915260128152714e6f742046696e616e6369616c204169647360701b60208201525b60405161016c9190611481565b60405180910390f35b348015610180575f80fd5b5061019461018f3660046114e0565b6103be565b604051901515815260200161016c565b3480156101af575f80fd5b506101b960145481565b60405190815260200161016c565b3480156101d2575f80fd5b506101b96103d4565b3480156101e6575f80fd5b506101946101f536600461150a565b6103f5565b348015610205575f80fd5b506040516009815260200161016c565b348015610220575f80fd5b5061022961045c565b005b348015610236575f80fd5b506101b9610245366004611548565b6001600160a01b03165f9081526001602052604090205490565b34801561026a575f80fd5b506102296104b2565b34801561027e575f80fd5b5061022961052c565b348015610292575f80fd5b506101b960115481565b3480156102a7575f80fd5b505f546040516001600160a01b03909116815260200161016c565b3480156102cd575f80fd5b506101b960125481565b3480156102e2575f80fd5b506040805180820190915260068152654e464149445360d01b602082015261015f565b348015610310575f80fd5b5061019461031f3660046114e0565b6105ea565b34801561032f575f80fd5b506101b960135481565b348015610344575f80fd5b506005546101949060ff1681565b34801561035d575f80fd5b506102296105f6565b348015610371575f80fd5b506101b9610380366004611563565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156103b5575f80fd5b506102296109a0565b5f6103ca3384846109b3565b5060015b92915050565b5f6103e16009600a61168e565b6103f09064019dc6838061169c565b905090565b5f610401848484610ad6565b610452843361044d8560405180606001604052806028815260200161182e602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611086565b6109b3565b5060019392505050565b60055461010090046001600160a01b0316336001600160a01b031614610480575f80fd5b305f90815260016020526040902054801561049e5761049e816110be565b4780156104ae576104ae8161122e565b5050565b5f546001600160a01b031633146104e45760405162461bcd60e51b81526004016104db906116b3565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105555760405162461bcd60e51b81526004016104db906116b3565b6105616009600a61168e565b6105709064019dc6838061169c565b60115561057f6009600a61168e565b61058e9064019dc6838061169c565b6012556005805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6105c86009600a61168e565b6105d79064019dc6838061169c565b60405190815260200160405180910390a1565b5f6103ca338484610ad6565b5f546001600160a01b0316331461061f5760405162461bcd60e51b81526004016104db906116b3565b601654600160a01b900460ff16156106795760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104db565b601580546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556106c39030906106b46009600a61168e565b61044d9064019dc6838061169c565b60155f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610713573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061073791906116e8565b6001600160a01b031663c9c653963060155f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610796573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107ba91906116e8565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610804573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061082891906116e8565b601680546001600160a01b039283166001600160a01b03199091161790556015541663f305d719473061086f816001600160a01b03165f9081526001602052604090205490565b5f806108825f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156108e8573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061090d9190611703565b505060165460155460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610962573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610986919061172e565b506016805462ff00ff60a01b19166201000160a01b179055565b4780156109b0576109b08161122e565b50565b6001600160a01b038316610a155760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104db565b6001600160a01b038216610a765760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104db565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b3a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104db565b6001600160a01b038216610b9c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104db565b5f8111610bfd5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104db565b5f80546001600160a01b03858116911614801590610c2857505f546001600160a01b03848116911614155b15610f4957610c4a6064610c44610c3d611269565b85906112a6565b9061132b565b60055490915060ff1615610d30576015546001600160a01b03848116911614801590610c8457506016546001600160a01b03848116911614155b15610d3057325f908152600460205260409020544311610d1e5760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a4016104db565b325f9081526004602052604090204390555b6016546001600160a01b038581169116148015610d5b57506015546001600160a01b03848116911614155b8015610d7f57506001600160a01b0383165f9081526003602052604090205460ff16155b15610e6557601154821115610dd65760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016104db565b60125482610df8856001600160a01b03165f9081526001602052604090205490565b610e02919061174d565b1115610e505760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104db565b60108054905f610e5f83611760565b91905055505b6016546001600160a01b038481169116148015610e8b57506001600160a01b0384163014155b15610ea357610ea06064610c44610c3d61136c565b90505b305f90815260016020526040902054601654600160a81b900460ff16158015610ed957506016546001600160a01b038581169116145b8015610eee5750601654600160b01b900460ff165b8015610efb575060135481115b8015610f0a5750600f54601054115b15610f4757610f2c610f2784610f22846014546113a2565b6113a2565b6110be565b47666a94d74f430000811115610f4557610f454761122e565b505b505b8015610fc157305f90815260016020526040902054610f6890826113b6565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610fb89085815260200190565b60405180910390a35b6001600160a01b0384165f90815260016020526040902054610fe39083611414565b6001600160a01b0385165f908152600160205260409020556110266110088383611414565b6001600160a01b0385165f90815260016020526040902054906113b6565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61106f8585611414565b60405190815260200160405180910390a350505050565b5f81848411156110a95760405162461bcd60e51b81526004016104db9190611481565b505f6110b58486611778565b95945050505050565b6016805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106111045761110461178b565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561115b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061117f91906116e8565b816001815181106111925761119261178b565b6001600160a01b0392831660209182029290920101526015546111b891309116846109b3565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac947906111f09085905f9086903090429060040161179f565b5f604051808303815f87803b158015611207575f80fd5b505af1158015611219573d5f803e3d5ffd5b50506016805460ff60a81b1916905550505050565b6005546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f193505050501580156104ae573d5f803e3d5ffd5b5f6008546010541161127c575060065490565b6008546010541180156112935750600b5460105411155b1561129f575060095490565b50600c5490565b5f825f036112b557505f6103ce565b5f6112c0838561169c565b9050826112cd858361180e565b146113245760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104db565b9392505050565b5f61132483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611455565b5f6008546010541161137f575060075490565b6008546010541180156113965750600b5460105411155b1561129f5750600a5490565b5f8183116113b05782611324565b50919050565b5f806113c2838561174d565b9050838110156113245760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104db565b5f61132483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611086565b5f81836114755760405162461bcd60e51b81526004016104db9190611481565b505f6110b5848661180e565b5f6020808352835180828501525f5b818110156114ac57858101830151858201604001528201611490565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146109b0575f80fd5b5f80604083850312156114f1575f80fd5b82356114fc816114cc565b946020939093013593505050565b5f805f6060848603121561151c575f80fd5b8335611527816114cc565b92506020840135611537816114cc565b929592945050506040919091013590565b5f60208284031215611558575f80fd5b8135611324816114cc565b5f8060408385031215611574575f80fd5b823561157f816114cc565b9150602083013561158f816114cc565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156115e857815f19048211156115ce576115ce61159a565b808516156115db57918102915b93841c93908002906115b3565b509250929050565b5f826115fe575060016103ce565b8161160a57505f6103ce565b8160018114611620576002811461162a57611646565b60019150506103ce565b60ff84111561163b5761163b61159a565b50506001821b6103ce565b5060208310610133831016604e8410600b8410161715611669575081810a6103ce565b61167383836115ae565b805f19048211156116865761168661159a565b029392505050565b5f61132460ff8416836115f0565b80820281158282048414176103ce576103ce61159a565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f602082840312156116f8575f80fd5b8151611324816114cc565b5f805f60608486031215611715575f80fd5b8351925060208401519150604084015190509250925092565b5f6020828403121561173e575f80fd5b81518015158114611324575f80fd5b808201808211156103ce576103ce61159a565b5f600182016117715761177161159a565b5060010190565b818103818111156103ce576103ce61159a565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156117ed5784516001600160a01b0316835293830193918301916001016117c8565b50506001600160a01b03969096166060850152505050608001529392505050565b5f8261182857634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220bd950fa235d2523210cff7f599384a920ec2240511ce0e0f4cc7d980a7c2178264736f6c63430008140033

Deployed Bytecode Sourcemap

3720:8846:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5788:83;;;;;;;;;;-1:-1:-1;5858:5:0;;;;;;;;;;;;-1:-1:-1;;;5858:5:0;;;;5788:83;;;;;;;:::i;:::-;;;;;;;;6621:161;;;;;;;;;;-1:-1:-1;6621:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6621:161:0;1023:187:1;5037:48:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;5037:48:0;1215:177:1;6065:95:0;;;;;;;;;;;;;:::i;6790:313::-;;;;;;;;;;-1:-1:-1;6790:313:0;;;;;:::i;:::-;;:::i;5974:83::-;;;;;;;;;;-1:-1:-1;5974:83:0;;4665:1;2000:36:1;;1988:2;1973:18;5974:83:0;1858:184:1;12041:348:0;;;;;;;;;;;;;:::i;:::-;;6168:119;;;;;;;;;;-1:-1:-1;6168:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6261:18:0;6234:7;6261:18;;;:9;:18;;;;;;;6168:119;2801:148;;;;;;;;;;;;;:::i;11019:196::-;;;;;;;;;;;;;:::i;4865:48::-;;;;;;;;;;;;;;;;2587:79;;;;;;;;;;-1:-1:-1;2625:7:0;2652:6;2587:79;;-1:-1:-1;;;;;2652:6:0;;;2445:51:1;;2433:2;2418:18;2587:79:0;2299:203:1;4920:50:0;;;;;;;;;;;;;;;;5879:87;;;;;;;;;;-1:-1:-1;5951:7:0;;;;;;;;;;;;-1:-1:-1;;;5951:7:0;;;;5879:87;;6295:167;;;;;;;;;;-1:-1:-1;6295:167:0;;;;;:::i;:::-;;:::i;4977:53::-;;;;;;;;;;;;;;;;4063:39;;;;;;;;;;-1:-1:-1;4063:39:0;;;;;;;;11325:671;;;;;;;;;;;;;:::i;6470:143::-;;;;;;;;;;-1:-1:-1;6470:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6578:18:0;;;6551:7;6578:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6470:143;12398:165;;;;;;;;;;;;;:::i;6621:161::-;6696:4;6713:39;422:10;6736:7;6745:6;6713:8;:39::i;:::-;-1:-1:-1;6770:4:0;6621:161;;;;;:::o;6065:95::-;6118:7;4721:13;4665:1;4721:2;:13;:::i;:::-;4708:26;;:10;:26;:::i;:::-;6138:14;;6065:95;:::o;6790:313::-;6888:4;6905:36;6915:6;6923:9;6934:6;6905:9;:36::i;:::-;6952:121;6961:6;422:10;6983:89;7021:6;6983:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6983:19:0;;;;;;:11;:19;;;;;;;;422:10;6983:33;;;;;;;;;;:37;:89::i;:::-;6952:8;:121::i;:::-;-1:-1:-1;7091:4:0;6790:313;;;;;:::o;12041:348::-;12105:10;;;;;-1:-1:-1;;;;;12105:10:0;422;-1:-1:-1;;;;;12091:24:0;;12083:33;;;;;;12166:4;12127:20;6261:18;;;:9;:18;;;;;;12186:14;;12183:73;;12214:30;12231:12;12214:16;:30::i;:::-;12285:21;12320:12;;12317:65;;12346:24;12359:10;12346:12;:24::i;:::-;12072:317;;12041:348::o;2801:148::-;2714:6;;-1:-1:-1;;;;;2714:6:0;422:10;2714:22;2706:67;;;;-1:-1:-1;;;2706:67:0;;;;;;;:::i;:::-;;;;;;;;;2908:1:::1;2892:6:::0;;2871:40:::1;::::0;-1:-1:-1;;;;;2892:6:0;;::::1;::::0;2871:40:::1;::::0;2908:1;;2871:40:::1;2939:1;2922:19:::0;;-1:-1:-1;;;;;;2922:19:0::1;::::0;;2801:148::o;11019:196::-;2714:6;;-1:-1:-1;;;;;2714:6:0;422:10;2714:22;2706:67;;;;-1:-1:-1;;;2706:67:0;;;;;;;:::i;:::-;4721:13:::1;4665:1;4721:2;:13;:::i;:::-;4708:26;::::0;:10:::1;:26;:::i;:::-;11072:12;:22:::0;4721:13:::1;4665:1;4721:2;:13;:::i;:::-;4708:26;::::0;:10:::1;:26;:::i;:::-;11105:14;:22:::0;11138:20:::1;:26:::0;;-1:-1:-1;;11138:26:0::1;::::0;;11180:27:::1;4721:13;4665:1;4721:2;:13;:::i;:::-;4708:26;::::0;:10:::1;:26;:::i;:::-;11180:27;::::0;1361:25:1;;;1349:2;1334:18;11180:27:0::1;;;;;;;11019:196::o:0;6295:167::-;6373:4;6390:42;422:10;6414:9;6425:6;6390:9;:42::i;11325:671::-;2714:6;;-1:-1:-1;;;;;2714:6:0;422:10;2714:22;2706:67;;;;-1:-1:-1;;;2706:67:0;;;;;;;:::i;:::-;11389:11:::1;::::0;-1:-1:-1;;;11389:11:0;::::1;;;11388:12;11380:47;;;::::0;-1:-1:-1;;;11380:47:0;;5151:2:1;11380:47:0::1;::::0;::::1;5133:21:1::0;5190:2;5170:18;;;5163:30;5229:25;5209:18;;;5202:53;5272:18;;11380:47:0::1;4949:347:1::0;11380:47:0::1;11438:15;:80:::0;;-1:-1:-1;;;;;;11438:80:0::1;11475:42;11438:80:::0;;::::1;::::0;;;11529:58:::1;::::0;11546:4:::1;::::0;4721:13:::1;4665:1;4721:2;:13;:::i;:::-;4708:26;::::0;:10:::1;:26;:::i;11529:58::-;11632:15;;;;;;;;;-1:-1:-1::0;;;;;11632:15:0::1;-1:-1:-1::0;;;;;11632:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11614:55:0::1;;11678:4;11685:15;;;;;;;;;-1:-1:-1::0;;;;;11685:15:0::1;-1:-1:-1::0;;;;;11685:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11614:94;::::0;-1:-1:-1;;;;;;11614:94:0::1;::::0;;;;;;-1:-1:-1;;;;;5787:15:1;;;11614:94:0::1;::::0;::::1;5769:34:1::0;5839:15;;5819:18;;;5812:43;5704:18;;11614:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11598:13;:110:::0;;-1:-1:-1;;;;;11598:110:0;;::::1;-1:-1:-1::0;;;;;;11598:110:0;;::::1;;::::0;;11719:15:::1;::::0;::::1;:31;11758:21;11789:4;11795:24;11789:4:::0;-1:-1:-1;;;;;6261:18:0;6234:7;6261:18;;;:9;:18;;;;;;;6168:119;11795:24:::1;11820:1;11822::::0;11824:7:::1;2625::::0;2652:6;-1:-1:-1;;;;;2652:6:0;;2587:79;11824:7:::1;11719:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;11719:129:0;;;-1:-1:-1;;;;;6225:15:1;;;11719:129:0::1;::::0;::::1;6207:34:1::0;6257:18;;;6250:34;;;;6300:18;;;6293:34;;;;6343:18;;;6336:34;6407:15;;;6386:19;;;6379:44;11832:15:0::1;6439:19:1::0;;;6432:35;6141:19;;11719:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;11866:13:0::1;::::0;11897:15:::1;::::0;11859:71:::1;::::0;-1:-1:-1;;;11859:71:0;;-1:-1:-1;;;;;11897:15:0;;::::1;11859:71;::::0;::::1;6963:51:1::0;-1:-1:-1;;7030:18:1;;;7023:34;11866:13:0;::::1;::::0;-1:-1:-1;11859:29:0::1;::::0;6936:18:1;;11859:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;11941:11:0::1;:18:::0;;-1:-1:-1;;;;11970:18:0;-1:-1:-1;;;11970:18:0;;;11325:671::o;12398:165::-;12459:21;12494:12;;12491:65;;12520:24;12533:10;12520:12;:24::i;:::-;12429:134;12398:165::o;7111:335::-;-1:-1:-1;;;;;7204:19:0;;7196:68;;;;-1:-1:-1;;;7196:68:0;;7552:2:1;7196:68:0;;;7534:21:1;7591:2;7571:18;;;7564:30;7630:34;7610:18;;;7603:62;-1:-1:-1;;;7681:18:1;;;7674:34;7725:19;;7196:68:0;7350:400:1;7196:68:0;-1:-1:-1;;;;;7283:21:0;;7275:68;;;;-1:-1:-1;;;7275:68:0;;7957:2:1;7275:68:0;;;7939:21:1;7996:2;7976:18;;;7969:30;8035:34;8015:18;;;8008:62;-1:-1:-1;;;8086:18:1;;;8079:32;8128:19;;7275:68:0;7755:398:1;7275:68:0;-1:-1:-1;;;;;7354:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7406:32;;1361:25:1;;;7406:32:0;;1334:18:1;7406:32:0;;;;;;;7111:335;;;:::o;7454:2321::-;-1:-1:-1;;;;;7542:18:0;;7534:68;;;;-1:-1:-1;;;7534:68:0;;8360:2:1;7534:68:0;;;8342:21:1;8399:2;8379:18;;;8372:30;8438:34;8418:18;;;8411:62;-1:-1:-1;;;8489:18:1;;;8482:35;8534:19;;7534:68:0;8158:401:1;7534:68:0;-1:-1:-1;;;;;7621:16:0;;7613:64;;;;-1:-1:-1;;;7613:64:0;;8766:2:1;7613:64:0;;;8748:21:1;8805:2;8785:18;;;8778:30;8844:34;8824:18;;;8817:62;-1:-1:-1;;;8895:18:1;;;8888:33;8938:19;;7613:64:0;8564:399:1;7613:64:0;7705:1;7696:6;:10;7688:64;;;;-1:-1:-1;;;7688:64:0;;9170:2:1;7688:64:0;;;9152:21:1;9209:2;9189:18;;;9182:30;9248:34;9228:18;;;9221:62;-1:-1:-1;;;9299:18:1;;;9292:39;9348:19;;7688:64:0;8968:405:1;7688:64:0;7763:17;2652:6;;-1:-1:-1;;;;;7797:15:0;;;2652:6;;7797:15;;;;:32;;-1:-1:-1;2625:7:0;2652:6;-1:-1:-1;;;;;7816:13:0;;;2652:6;;7816:13;;7797:32;7793:1626;;;7858:30;7884:3;7858:21;7869:9;:7;:9::i;:::-;7858:6;;:10;:21::i;:::-;:25;;:30::i;:::-;7909:20;;7846:42;;-1:-1:-1;7909:20:0;;7905:509;;;7970:15;;-1:-1:-1;;;;;7956:30:0;;;7970:15;;7956:30;;;;:62;;-1:-1:-1;8004:13:0;;-1:-1:-1;;;;;7990:28:0;;;8004:13;;7990:28;;7956:62;7952:445;;;8111:9;8082:39;;;;:28;:39;;;;;;8155:12;-1:-1:-1;8046:250:0;;;;-1:-1:-1;;;8046:250:0;;9580:2:1;8046:250:0;;;9562:21:1;9619:2;9599:18;;;9592:30;9658:34;9638:18;;;9631:62;9729:34;9709:18;;;9702:62;-1:-1:-1;;;9780:19:1;;;9773:40;9830:19;;8046:250:0;9378:477:1;8046:250:0;8350:9;8321:39;;;;:28;:39;;;;;8363:12;8321:54;;7952:445;8442:13;;-1:-1:-1;;;;;8434:21:0;;;8442:13;;8434:21;:55;;;;-1:-1:-1;8473:15:0;;-1:-1:-1;;;;;8459:30:0;;;8473:15;;8459:30;;8434:55;:83;;;;-1:-1:-1;;;;;;8495:22:0;;;;;;:18;:22;;;;;;;;8493:24;8434:83;8430:313;;;8557:12;;8547:6;:22;;8539:60;;;;-1:-1:-1;;;8539:60:0;;10062:2:1;8539:60:0;;;10044:21:1;10101:2;10081:18;;;10074:30;10140:27;10120:18;;;10113:55;10185:18;;8539:60:0;9860:349:1;8539:60:0;8652:14;;8642:6;8626:13;8636:2;-1:-1:-1;;;;;6261:18:0;6234:7;6261:18;;;:9;:18;;;;;;;6168:119;8626:13;:22;;;;:::i;:::-;:40;;8618:79;;;;-1:-1:-1;;;8618:79:0;;10546:2:1;8618:79:0;;;10528:21:1;10585:2;10565:18;;;10558:30;10624:28;10604:18;;;10597:56;10670:18;;8618:79:0;10344:350:1;8618:79:0;8716:9;:11;;;:9;:11;;;:::i;:::-;;;;;;8430:313;8768:13;;-1:-1:-1;;;;;8762:19:0;;;8768:13;;8762:19;:43;;;;-1:-1:-1;;;;;;8785:20:0;;8800:4;8785:20;;8762:43;8759:126;;;8838:31;8865:3;8838:22;8849:10;:8;:10::i;8838:31::-;8826:43;;8759:126;8950:4;8901:28;6261:18;;;:9;:18;;;;;;8976:6;;-1:-1:-1;;;8976:6:0;;;;8975:7;:32;;;;-1:-1:-1;8994:13:0;;-1:-1:-1;;;;;8986:21:0;;;8994:13;;8986:21;8975:32;:47;;;;-1:-1:-1;9011:11:0;;-1:-1:-1;;;9011:11:0;;;;8975:47;:89;;;;;9047:17;;9026:20;:38;8975:89;:121;;;;;9078:18;;9068:9;;:28;8975:121;8971:437;;;9117:67;9134:49;9138:6;9145:37;9149:20;9170:11;;9145:3;:37::i;:::-;9134:3;:49::i;:::-;9117:16;:67::i;:::-;9232:21;9296:17;9275:38;;9272:121;;;9338:35;9351:21;9338:12;:35::i;:::-;9098:310;8971:437;7831:1588;7793:1626;9434:11;;9431:161;;9502:4;9484:24;;;;:9;:24;;;;;;:39;;9513:9;9484:28;:39::i;:::-;9477:4;9459:24;;;;:9;:24;;;;;;;:64;;;;9541:39;;-1:-1:-1;;;;;9541:39:0;;;;;;;9570:9;1361:25:1;;1349:2;1334:18;;1215:177;9541:39:0;;;;;;;;9431:161;-1:-1:-1;;;;;9618:15:0;;;;;;:9;:15;;;;;;:27;;9638:6;9618:19;:27::i;:::-;-1:-1:-1;;;;;9602:15:0;;;;;;:9;:15;;;;;:43;9670:40;9688:21;:6;9699:9;9688:10;:21::i;:::-;-1:-1:-1;;;;;9670:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;9656:13:0;;;;;;;:9;:13;;;;;:54;;;;9726:41;;;9745:21;:6;9756:9;9745:10;:21::i;:::-;9726:41;;1361:25:1;;;1349:2;1334:18;9726:41:0;;;;;;;7523:2252;7454:2321;;;:::o;1479:190::-;1565:7;1601:12;1593:6;;;;1585:29;;;;-1:-1:-1;;;1585:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1625:9:0;1637:5;1641:1;1637;:5;:::i;:::-;1625:17;1479:190;-1:-1:-1;;;;;1479:190:0:o;10528:483::-;5367:6;:13;;-1:-1:-1;;;;5367:13:0;-1:-1:-1;;;5367:13:0;;;10630:16:::1;::::0;;10644:1:::1;10630:16:::0;;;;;::::1;::::0;;-1:-1:-1;;10630:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10630:16:0::1;10606:40;;10675:4;10657;10662:1;10657:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10657:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10701:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;10701:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;10657:7;;10701:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10691:4;10696:1;10691:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10691:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;10766:15:::1;::::0;10734:62:::1;::::0;10751:4:::1;::::0;10766:15:::1;10784:11:::0;10734:8:::1;:62::i;:::-;10807:15;::::0;:196:::1;::::0;-1:-1:-1;;;10807:196:0;;-1:-1:-1;;;;;10807:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;10888:11;;10807:15:::1;::::0;10930:4;;10957::::1;::::0;10977:15:::1;::::0;10807:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5403:6:0;:14;;-1:-1:-1;;;;5403:14:0;;;-1:-1:-1;;;;10528:483:0:o;11223:92::-;11280:10;;:27;;:10;;;;-1:-1:-1;;;;;11280:10:0;;:27;;;;;;;;;;;;:10;:27;;;;;;;;;;;;;;;;;;;9783:310;9824:7;9860:15;;9847:9;;:28;9844:80;;-1:-1:-1;9898:14:0;;;9783:310::o;9844:80::-;9949:15;;9937:9;;:27;:64;;;;;9981:20;;9968:9;;:33;;9937:64;9934:121;;;-1:-1:-1;10024:19:0;;;9783:310::o;9934:121::-;-1:-1:-1;10073:12:0;;;9783:310::o;1677:246::-;1735:7;1759:1;1764;1759:6;1755:47;;-1:-1:-1;1789:1:0;1782:8;;1755:47;1812:9;1824:5;1828:1;1824;:5;:::i;:::-;1812:17;-1:-1:-1;1857:1:0;1848:5;1852:1;1812:17;1848:5;:::i;:::-;:10;1840:56;;;;-1:-1:-1;;;1840:56:0;;12645:2:1;1840:56:0;;;12627:21:1;12684:2;12664:18;;;12657:30;12723:34;12703:18;;;12696:62;-1:-1:-1;;;12774:18:1;;;12767:31;12815:19;;1840:56:0;12443:397:1;1840:56:0;1914:1;1677:246;-1:-1:-1;;;1677:246:0:o;1931:132::-;1989:7;2016:39;2020:1;2023;2016:39;;;;;;;;;;;;;;;;;:3;:39::i;10101:313::-;10143:7;10179:15;;10166:9;;:28;10163:81;;-1:-1:-1;10217:15:0;;;10101:313::o;10163:81::-;10269:15;;10257:9;;:27;:64;;;;;10301:20;;10288:9;;:33;;10257:64;10254:122;;;-1:-1:-1;10344:20:0;;;10101:313::o;10422:98::-;10479:7;10506:1;10504;:3;10503:9;;10511:1;10503:9;;;-1:-1:-1;10509:1:0;10422:98;-1:-1:-1;10422:98:0:o;1148:179::-;1206:7;;1238:5;1242:1;1238;:5;:::i;:::-;1226:17;;1267:1;1262;:6;;1254:46;;;;-1:-1:-1;;;1254:46:0;;13047:2:1;1254:46:0;;;13029:21:1;13086:2;13066:18;;;13059:30;13125:29;13105:18;;;13098:57;13172:18;;1254:46:0;12845:351:1;1335:136:0;1393:7;1420:43;1424:1;1427;1420:43;;;;;;;;;;;;;;;;;:3;:43::i;2071:189::-;2157:7;2192:12;2185:5;2177:28;;;;-1:-1:-1;;;2177:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2216:9:0;2228:5;2232:1;2228;:5;:::i;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:127::-;2961:10;2956:3;2952:20;2949:1;2942:31;2992:4;2989:1;2982:15;3016:4;3013:1;3006:15;3032:422;3121:1;3164:5;3121:1;3178:270;3199:7;3189:8;3186:21;3178:270;;;3258:4;3254:1;3250:6;3246:17;3240:4;3237:27;3234:53;;;3267:18;;:::i;:::-;3317:7;3307:8;3303:22;3300:55;;;3337:16;;;;3300:55;3416:22;;;;3376:15;;;;3178:270;;;3182:3;3032:422;;;;;:::o;3459:806::-;3508:5;3538:8;3528:80;;-1:-1:-1;3579:1:1;3593:5;;3528:80;3627:4;3617:76;;-1:-1:-1;3664:1:1;3678:5;;3617:76;3709:4;3727:1;3722:59;;;;3795:1;3790:130;;;;3702:218;;3722:59;3752:1;3743:10;;3766:5;;;3790:130;3827:3;3817:8;3814:17;3811:43;;;3834:18;;:::i;:::-;-1:-1:-1;;3890:1:1;3876:16;;3905:5;;3702:218;;4004:2;3994:8;3991:16;3985:3;3979:4;3976:13;3972:36;3966:2;3956:8;3953:16;3948:2;3942:4;3939:12;3935:35;3932:77;3929:159;;;-1:-1:-1;4041:19:1;;;4073:5;;3929:159;4120:34;4145:8;4139:4;4120:34;:::i;:::-;4190:6;4186:1;4182:6;4178:19;4169:7;4166:32;4163:58;;;4201:18;;:::i;:::-;4239:20;;3459:806;-1:-1:-1;;;3459:806:1:o;4270:140::-;4328:5;4357:47;4398:4;4388:8;4384:19;4378:4;4357:47;:::i;4415:168::-;4488:9;;;4519;;4536:15;;;4530:22;;4516:37;4506:71;;4557:18;;:::i;4588:356::-;4790:2;4772:21;;;4809:18;;;4802:30;4868:34;4863:2;4848:18;;4841:62;4935:2;4920:18;;4588:356::o;5301:251::-;5371:6;5424:2;5412:9;5403:7;5399:23;5395:32;5392:52;;;5440:1;5437;5430:12;5392:52;5472:9;5466:16;5491:31;5516:5;5491:31;:::i;6478:306::-;6566:6;6574;6582;6635:2;6623:9;6614:7;6610:23;6606:32;6603:52;;;6651:1;6648;6641:12;6603:52;6680:9;6674:16;6664:26;;6730:2;6719:9;6715:18;6709:25;6699:35;;6774:2;6763:9;6759:18;6753:25;6743:35;;6478:306;;;;;:::o;7068:277::-;7135:6;7188:2;7176:9;7167:7;7163:23;7159:32;7156:52;;;7204:1;7201;7194:12;7156:52;7236:9;7230:16;7289:5;7282:13;7275:21;7268:5;7265:32;7255:60;;7311:1;7308;7301:12;10214:125;10279:9;;;10300:10;;;10297:36;;;10313:18;;:::i;10699:135::-;10738:3;10759:17;;;10756:43;;10779:18;;:::i;:::-;-1:-1:-1;10826:1:1;10815:13;;10699:135::o;10839:128::-;10906:9;;;10927:11;;;10924:37;;;10941:18;;:::i;11104:127::-;11165:10;11160:3;11156:20;11153:1;11146:31;11196:4;11193:1;11186:15;11220:4;11217:1;11210:15;11236:980;11498:4;11546:3;11535:9;11531:19;11577:6;11566:9;11559:25;11603:2;11641:6;11636:2;11625:9;11621:18;11614:34;11684:3;11679:2;11668:9;11664:18;11657:31;11708:6;11743;11737:13;11774:6;11766;11759:22;11812:3;11801:9;11797:19;11790:26;;11851:2;11843:6;11839:15;11825:29;;11872:1;11882:195;11896:6;11893:1;11890:13;11882:195;;;11961:13;;-1:-1:-1;;;;;11957:39:1;11945:52;;12052:15;;;;12017:12;;;;11993:1;11911:9;11882:195;;;-1:-1:-1;;;;;;;12133:32:1;;;;12128:2;12113:18;;12106:60;-1:-1:-1;;;12197:3:1;12182:19;12175:35;12094:3;11236:980;-1:-1:-1;;;11236:980:1:o;12221:217::-;12261:1;12287;12277:132;;12331:10;12326:3;12322:20;12319:1;12312:31;12366:4;12363:1;12356:15;12394:4;12391:1;12384:15;12277:132;-1:-1:-1;12423:9:1;;12221:217::o

Swarm Source

ipfs://bd950fa235d2523210cff7f599384a920ec2240511ce0e0f4cc7d980a7c21782

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.