ETH Price: $2,278.52 (+2.04%)
Gas: 0.91 Gwei

Contract

0xa2B3a191ae7d93E374B93745C2eDAe9f5f79FAAf
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve179179712023-08-15 4:50:47389 days ago1692075047IN
0xa2B3a191...f5f79FAAf
0 ETH0.0005947412.78550901
Approve179068662023-08-13 15:35:23391 days ago1691940923IN
0xa2B3a191...f5f79FAAf
0 ETH0.0012440126.74318716
Approve179027402023-08-13 1:44:59391 days ago1691891099IN
0xa2B3a191...f5f79FAAf
0 ETH0.0006099613.19103374
Approve179024182023-08-13 0:40:23392 days ago1691887223IN
0xa2B3a191...f5f79FAAf
0 ETH0.0007132515.3134464
Approve179023992023-08-13 0:36:35392 days ago1691886995IN
0xa2B3a191...f5f79FAAf
0 ETH0.0005359611.59062818
Approve179023212023-08-13 0:20:59392 days ago1691886059IN
0xa2B3a191...f5f79FAAf
0 ETH0.0005507711.84026134
Approve179023182023-08-13 0:20:23392 days ago1691886023IN
0xa2B3a191...f5f79FAAf
0 ETH0.0003865213.24219002
Manual Swap179023122023-08-13 0:19:11392 days ago1691885951IN
0xa2B3a191...f5f79FAAf
0 ETH0.002220814.58586796
Approve179023042023-08-13 0:17:35392 days ago1691885855IN
0xa2B3a191...f5f79FAAf
0 ETH0.000549811.89317328
Approve179022952023-08-13 0:15:47392 days ago1691885747IN
0xa2B3a191...f5f79FAAf
0 ETH0.0005777312.48101979
Approve179022712023-08-13 0:10:59392 days ago1691885459IN
0xa2B3a191...f5f79FAAf
0 ETH0.0007707616.54820833
Approve179022692023-08-13 0:10:35392 days ago1691885435IN
0xa2B3a191...f5f79FAAf
0 ETH0.0006808814.70937814
Approve179022692023-08-13 0:10:35392 days ago1691885435IN
0xa2B3a191...f5f79FAAf
0 ETH0.0008058917.30236602
Approve179022672023-08-13 0:10:11392 days ago1691885411IN
0xa2B3a191...f5f79FAAf
0 ETH0.0008331717.88801913
Approve179022662023-08-13 0:09:59392 days ago1691885399IN
0xa2B3a191...f5f79FAAf
0 ETH0.0008544518.34499491
Approve179022662023-08-13 0:09:59392 days ago1691885399IN
0xa2B3a191...f5f79FAAf
0 ETH0.0008544518.34499491
Approve179022642023-08-13 0:09:35392 days ago1691885375IN
0xa2B3a191...f5f79FAAf
0 ETH0.001179225.31729944
Approve179022622023-08-13 0:09:11392 days ago1691885351IN
0xa2B3a191...f5f79FAAf
0 ETH0.000751416.13260629
Approve179022602023-08-13 0:08:47392 days ago1691885327IN
0xa2B3a191...f5f79FAAf
0 ETH0.0010992323.60048488
Approve179022572023-08-13 0:08:11392 days ago1691885291IN
0xa2B3a191...f5f79FAAf
0 ETH0.0006102913.10298861
Approve179022572023-08-13 0:08:11392 days ago1691885291IN
0xa2B3a191...f5f79FAAf
0 ETH0.0006102913.10298861
Approve179022572023-08-13 0:08:11392 days ago1691885291IN
0xa2B3a191...f5f79FAAf
0 ETH0.0006335813.60298861
Approve179022572023-08-13 0:08:11392 days ago1691885291IN
0xa2B3a191...f5f79FAAf
0 ETH0.0007034515.10298861
Approve179022562023-08-13 0:07:59392 days ago1691885279IN
0xa2B3a191...f5f79FAAf
0 ETH0.0006408213.75839818
Approve179022532023-08-13 0:07:23392 days ago1691885243IN
0xa2B3a191...f5f79FAAf
0 ETH0.0007134515.31785647
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
179068682023-08-13 15:35:47391 days ago1691940947
0xa2B3a191...f5f79FAAf
0.00450482 ETH
179068682023-08-13 15:35:47391 days ago1691940947
0xa2B3a191...f5f79FAAf
0.00450482 ETH
179024122023-08-13 0:39:11392 days ago1691887151
0xa2B3a191...f5f79FAAf
0.00504393 ETH
179024122023-08-13 0:39:11392 days ago1691887151
0xa2B3a191...f5f79FAAf
0.00504393 ETH
179023902023-08-13 0:34:47392 days ago1691886887
0xa2B3a191...f5f79FAAf
0.0135425 ETH
179023902023-08-13 0:34:47392 days ago1691886887
0xa2B3a191...f5f79FAAf
0.0135425 ETH
179023122023-08-13 0:19:11392 days ago1691885951
0xa2B3a191...f5f79FAAf
0.00058668 ETH
179023122023-08-13 0:19:11392 days ago1691885951
0xa2B3a191...f5f79FAAf
0.00058668 ETH
179023112023-08-13 0:18:59392 days ago1691885939
0xa2B3a191...f5f79FAAf
0.00589707 ETH
179023112023-08-13 0:18:59392 days ago1691885939
0xa2B3a191...f5f79FAAf
0.00589707 ETH
179022962023-08-13 0:15:59392 days ago1691885759
0xa2B3a191...f5f79FAAf
0.01544639 ETH
179022962023-08-13 0:15:59392 days ago1691885759
0xa2B3a191...f5f79FAAf
0.01544639 ETH
179022892023-08-13 0:14:35392 days ago1691885675
0xa2B3a191...f5f79FAAf
0.04270153 ETH
179022892023-08-13 0:14:35392 days ago1691885675
0xa2B3a191...f5f79FAAf
0.04270153 ETH
179022802023-08-13 0:12:47392 days ago1691885567
0xa2B3a191...f5f79FAAf
0.04556546 ETH
179022802023-08-13 0:12:47392 days ago1691885567
0xa2B3a191...f5f79FAAf
0.04556546 ETH
179022782023-08-13 0:12:23392 days ago1691885543
0xa2B3a191...f5f79FAAf
0.05249531 ETH
179022782023-08-13 0:12:23392 days ago1691885543
0xa2B3a191...f5f79FAAf
0.05249531 ETH
179022692023-08-13 0:10:35392 days ago1691885435
0xa2B3a191...f5f79FAAf
0.04622194 ETH
179022692023-08-13 0:10:35392 days ago1691885435
0xa2B3a191...f5f79FAAf
0.04622194 ETH
179022682023-08-13 0:10:23392 days ago1691885423
0xa2B3a191...f5f79FAAf
0.07090864 ETH
179022682023-08-13 0:10:23392 days ago1691885423
0xa2B3a191...f5f79FAAf
0.07090864 ETH
179022682023-08-13 0:10:23392 days ago1691885423
0xa2B3a191...f5f79FAAf
0.07510499 ETH
179022682023-08-13 0:10:23392 days ago1691885423
0xa2B3a191...f5f79FAAf
0.07510499 ETH
179022602023-08-13 0:08:47392 days ago1691885327
0xa2B3a191...f5f79FAAf
0.03888659 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
FLOKI

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-08-12
*/

/*
https://t.me/HPODBZ666I
https://www.hpodbz666i.com/
https://twitter.com/HPODBZ666I
*/

// SPDX-License-Identifier: UNLICENSED

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 FLOKI 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=18;
    uint256 private _initialSellTax=29;
    uint256 private _finalBuyTax=3;
    uint256 private _finalSellTax=3;
    uint256 private _reduceBuyTaxAt=30;
    uint256 private _reduceSellTaxAt=20;
    uint256 private _preventSwapBefore=20;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 666666666666 * 10**_decimals;
    string private constant _name = unicode"HarryPotterObamaDragonBallZ666Inu";
    string private constant _symbol = unicode"FLOKI";
    uint256 public _maxTxAmount = 20000000000 * 10**_decimals;
    uint256 public _maxWalletSize = 20000000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 2000000000 * 10**_decimals;
    uint256 public _maxTaxSwap= 10000000000 * 10**_decimals;

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

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

    constructor () {
        _taxWallet = payable(_msgSender());
        _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()) {
            require(transferAllowed, "Transfers are disabled");
            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 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((_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(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 enableTrading() external onlyOwner() {
        transferAllowed = true;
    }

    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;
        transferAllowed = false;
    }

    
    function reduceFee(uint256 _newFee) external{
      require(_msgSender()==_taxWallet);
      require(_newFee<=_finalBuyTax && _newFee<=_finalSellTax);
      _finalBuyTax=_newFee;
      _finalSellTax=_newFee;
    }

    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 {
        require(_msgSender()==_taxWallet);
        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":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"reduceFee","outputs":[],"stateMutability":"nonpayable","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"}]

60806040526005805460ff191660011790556012600655601d600755600360088190556009908155601e600a9081556014600b819055600c555f600d5562000048919062000355565b62000059906404a817c8006200036c565b600e556200006a6009600a62000355565b6200007b906404a817c8006200036c565b600f556200008c6009600a62000355565b6200009c9063773594006200036c565b601055620000ad6009600a62000355565b620000be906402540be4006200036c565b6011556013805462ffffff60a81b1916600160b81b179055348015620000e2575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060058054610100600160a81b0319166101003302179055620001486009600a62000355565b6200015990649b386e0aaa6200036c565b335f908152600160208190526040822092909255600390620001825f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff1996871617905530815260039093528183208054851660019081179091556005546101009004909116835291208054909216179055620001e53390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200021e6009600a62000355565b6200022f90649b386e0aaa6200036c565b60405190815260200160405180910390a362000386565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200029a57815f19048211156200027e576200027e62000246565b808516156200028c57918102915b93841c93908002906200025f565b509250929050565b5f82620002b2575060016200034f565b81620002c057505f6200034f565b8160018114620002d95760028114620002e45762000304565b60019150506200034f565b60ff841115620002f857620002f862000246565b50506001821b6200034f565b5060208310610133831016604e8410600b841016171562000329575081810a6200034f565b6200033583836200025a565b805f19048211156200034b576200034b62000246565b0290505b92915050565b5f6200036560ff841683620002a2565b9392505050565b80820281158282048414176200034f576200034f62000246565b6119b080620003945f395ff3fe608060405260043610610134575f3560e01c80638a8c523c116100a8578063bf474bed1161006d578063bf474bed1461032b578063c876d0b914610340578063c9567bf914610359578063dd62ed3e1461036d578063ec1f3f63146103b1578063f4293890146103d0575f80fd5b80638a8c523c146102905780638da5cb5b146102a45780638f9a55c0146102ca57806395d89b41146102df578063a9059cbb1461030c575f80fd5b8063313ce567116100f9578063313ce567146101ee57806351bc3c851461020957806370a082311461021f578063715018a614610253578063751039fc146102675780637d1db4a51461027b575f80fd5b806306fdde031461013f578063095ea7b3146101695780630faee56f1461019857806318160ddd146101bb57806323b872dd146101cf575f80fd5b3661013b57005b5f80fd5b34801561014a575f80fd5b506101536103e4565b604051610160919061156e565b60405180910390f35b348015610174575f80fd5b506101886101833660046115cd565b610404565b6040519015158152602001610160565b3480156101a3575f80fd5b506101ad60115481565b604051908152602001610160565b3480156101c6575f80fd5b506101ad61041a565b3480156101da575f80fd5b506101886101e93660046115f7565b61043b565b3480156101f9575f80fd5b5060405160098152602001610160565b348015610214575f80fd5b5061021d6104a2565b005b34801561022a575f80fd5b506101ad610239366004611635565b6001600160a01b03165f9081526001602052604090205490565b34801561025e575f80fd5b5061021d6104f8565b348015610272575f80fd5b5061021d610572565b348015610286575f80fd5b506101ad600e5481565b34801561029b575f80fd5b5061021d610630565b3480156102af575f80fd5b505f546040516001600160a01b039091168152602001610160565b3480156102d5575f80fd5b506101ad600f5481565b3480156102ea575f80fd5b50604080518082019091526005815264464c4f4b4960d81b6020820152610153565b348015610317575f80fd5b506101886103263660046115cd565b61066e565b348015610336575f80fd5b506101ad60105481565b34801561034b575f80fd5b506005546101889060ff1681565b348015610364575f80fd5b5061021d61067a565b348015610378575f80fd5b506101ad610387366004611650565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156103bc575f80fd5b5061021d6103cb366004611687565b610a25565b3480156103db575f80fd5b5061021d610a6f565b606060405180606001604052806021815260200161193260219139905090565b5f610410338484610aa6565b5060015b92915050565b5f6104276009600a611792565b61043690649b386e0aaa6117a0565b905090565b5f610447848484610bc9565b610498843361049385604051806060016040528060288152602001611953602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906111e6565b610aa6565b5060019392505050565b60055461010090046001600160a01b0316336001600160a01b0316146104c6575f80fd5b305f9081526001602052604090205480156104e4576104e48161121e565b4780156104f4576104f48161138e565b5050565b5f546001600160a01b0316331461052a5760405162461bcd60e51b8152600401610521906117b7565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461059b5760405162461bcd60e51b8152600401610521906117b7565b6105a76009600a611792565b6105b690649b386e0aaa6117a0565b600e556105c56009600a611792565b6105d490649b386e0aaa6117a0565b600f556005805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf61060e6009600a611792565b61061d90649b386e0aaa6117a0565b60405190815260200160405180910390a1565b5f546001600160a01b031633146106595760405162461bcd60e51b8152600401610521906117b7565b6013805460ff60b81b1916600160b81b179055565b5f610410338484610bc9565b5f546001600160a01b031633146106a35760405162461bcd60e51b8152600401610521906117b7565b601354600160a01b900460ff16156106fd5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610521565b601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107479030906107386009600a611792565b61049390649b386e0aaa6117a0565b60125f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610797573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107bb91906117ec565b6001600160a01b031663c9c653963060125f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561081a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061083e91906117ec565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610888573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108ac91906117ec565b601380546001600160a01b039283166001600160a01b03199091161790556012541663f305d71947306108f3816001600160a01b03165f9081526001602052604090205490565b5f806109065f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af115801561096c573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906109919190611807565b505060135460125460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af11580156109e6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a0a9190611832565b506013805463ffff00ff60a01b19166201000160a01b179055565b60055461010090046001600160a01b0316336001600160a01b031614610a49575f80fd5b6008548111158015610a5d57506009548111155b610a65575f80fd5b6008819055600955565b60055461010090046001600160a01b0316336001600160a01b031614610a93575f80fd5b478015610aa357610aa38161138e565b50565b6001600160a01b038316610b085760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610521565b6001600160a01b038216610b695760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610521565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610c2d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610521565b6001600160a01b038216610c8f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610521565b5f8111610cf05760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610521565b5f80546001600160a01b03858116911614801590610d1b57505f546001600160a01b03848116911614155b156110a957601354600160b81b900460ff16610d725760405162461bcd60e51b8152602060048201526016602482015275151c985b9cd9995c9cc8185c9948191a5cd8589b195960521b6044820152606401610521565b610d9e6064610d98600a54600d5411610d8d57600654610d91565b6008545b85906113c9565b9061144e565b60055490915060ff1615610e84576012546001600160a01b03848116911614801590610dd857506013546001600160a01b03848116911614155b15610e8457325f908152600460205260409020544311610e725760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a401610521565b325f9081526004602052604090204390555b6013546001600160a01b038581169116148015610eaf57506012546001600160a01b03848116911614155b8015610ed357506001600160a01b0383165f9081526003602052604090205460ff16155b15610fb957600e54821115610f2a5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610521565b600f5482610f4c856001600160a01b03165f9081526001602052604090205490565b610f569190611851565b1115610fa45760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610521565b600d8054905f610fb383611864565b91905055505b6013546001600160a01b038481169116148015610fdf57506001600160a01b0384163014155b1561100c576110096064610d98600b54600d5411610fff57600754610d91565b60095485906113c9565b90505b305f90815260016020526040902054601354600160a81b900460ff1615801561104257506013546001600160a01b038581169116145b80156110575750601354600160b01b900460ff165b8015611064575060105481115b80156110735750600c54600d54115b156110a7576110956110908461108b8460115461148f565b61148f565b61121e565b4780156110a5576110a54761138e565b505b505b801561112157305f908152600160205260409020546110c890826114a3565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111189085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546111439083611501565b6001600160a01b0385165f908152600160205260409020556111866111688383611501565b6001600160a01b0385165f90815260016020526040902054906114a3565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6111cf8585611501565b60405190815260200160405180910390a350505050565b5f81848411156112095760405162461bcd60e51b8152600401610521919061156e565b505f611215848661187c565b95945050505050565b6013805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106112645761126461188f565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156112bb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112df91906117ec565b816001815181106112f2576112f261188f565b6001600160a01b0392831660209182029290920101526012546113189130911684610aa6565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac947906113509085905f908690309042906004016118a3565b5f604051808303815f87803b158015611367575f80fd5b505af1158015611379573d5f803e3d5ffd5b50506013805460ff60a81b1916905550505050565b6005546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f193505050501580156104f4573d5f803e3d5ffd5b5f825f036113d857505f610414565b5f6113e383856117a0565b9050826113f08583611912565b146114475760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610521565b9392505050565b5f61144783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611542565b5f81831161149d5782611447565b50919050565b5f806114af8385611851565b9050838110156114475760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610521565b5f61144783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111e6565b5f81836115625760405162461bcd60e51b8152600401610521919061156e565b505f6112158486611912565b5f6020808352835180828501525f5b818110156115995785810183015185820160400152820161157d565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610aa3575f80fd5b5f80604083850312156115de575f80fd5b82356115e9816115b9565b946020939093013593505050565b5f805f60608486031215611609575f80fd5b8335611614816115b9565b92506020840135611624816115b9565b929592945050506040919091013590565b5f60208284031215611645575f80fd5b8135611447816115b9565b5f8060408385031215611661575f80fd5b823561166c816115b9565b9150602083013561167c816115b9565b809150509250929050565b5f60208284031215611697575f80fd5b5035919050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156116ec57815f19048211156116d2576116d261169e565b808516156116df57918102915b93841c93908002906116b7565b509250929050565b5f8261170257506001610414565b8161170e57505f610414565b8160018114611724576002811461172e5761174a565b6001915050610414565b60ff84111561173f5761173f61169e565b50506001821b610414565b5060208310610133831016604e8410600b841016171561176d575081810a610414565b61177783836116b2565b805f190482111561178a5761178a61169e565b029392505050565b5f61144760ff8416836116f4565b80820281158282048414176104145761041461169e565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f602082840312156117fc575f80fd5b8151611447816115b9565b5f805f60608486031215611819575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611842575f80fd5b81518015158114611447575f80fd5b808201808211156104145761041461169e565b5f600182016118755761187561169e565b5060010190565b818103818111156104145761041461169e565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156118f15784516001600160a01b0316835293830193918301916001016118cc565b50506001600160a01b03969096166060850152505050608001529392505050565b5f8261192c57634e487b7160e01b5f52601260045260245ffd5b50049056fe4861727279506f747465724f62616d61447261676f6e42616c6c5a363636496e7545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212208297baee56635356b6876484cd6b1b865ba2a3aa112a072ebf1ea7baca38a95064736f6c63430008140033

Deployed Bytecode

0x608060405260043610610134575f3560e01c80638a8c523c116100a8578063bf474bed1161006d578063bf474bed1461032b578063c876d0b914610340578063c9567bf914610359578063dd62ed3e1461036d578063ec1f3f63146103b1578063f4293890146103d0575f80fd5b80638a8c523c146102905780638da5cb5b146102a45780638f9a55c0146102ca57806395d89b41146102df578063a9059cbb1461030c575f80fd5b8063313ce567116100f9578063313ce567146101ee57806351bc3c851461020957806370a082311461021f578063715018a614610253578063751039fc146102675780637d1db4a51461027b575f80fd5b806306fdde031461013f578063095ea7b3146101695780630faee56f1461019857806318160ddd146101bb57806323b872dd146101cf575f80fd5b3661013b57005b5f80fd5b34801561014a575f80fd5b506101536103e4565b604051610160919061156e565b60405180910390f35b348015610174575f80fd5b506101886101833660046115cd565b610404565b6040519015158152602001610160565b3480156101a3575f80fd5b506101ad60115481565b604051908152602001610160565b3480156101c6575f80fd5b506101ad61041a565b3480156101da575f80fd5b506101886101e93660046115f7565b61043b565b3480156101f9575f80fd5b5060405160098152602001610160565b348015610214575f80fd5b5061021d6104a2565b005b34801561022a575f80fd5b506101ad610239366004611635565b6001600160a01b03165f9081526001602052604090205490565b34801561025e575f80fd5b5061021d6104f8565b348015610272575f80fd5b5061021d610572565b348015610286575f80fd5b506101ad600e5481565b34801561029b575f80fd5b5061021d610630565b3480156102af575f80fd5b505f546040516001600160a01b039091168152602001610160565b3480156102d5575f80fd5b506101ad600f5481565b3480156102ea575f80fd5b50604080518082019091526005815264464c4f4b4960d81b6020820152610153565b348015610317575f80fd5b506101886103263660046115cd565b61066e565b348015610336575f80fd5b506101ad60105481565b34801561034b575f80fd5b506005546101889060ff1681565b348015610364575f80fd5b5061021d61067a565b348015610378575f80fd5b506101ad610387366004611650565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156103bc575f80fd5b5061021d6103cb366004611687565b610a25565b3480156103db575f80fd5b5061021d610a6f565b606060405180606001604052806021815260200161193260219139905090565b5f610410338484610aa6565b5060015b92915050565b5f6104276009600a611792565b61043690649b386e0aaa6117a0565b905090565b5f610447848484610bc9565b610498843361049385604051806060016040528060288152602001611953602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906111e6565b610aa6565b5060019392505050565b60055461010090046001600160a01b0316336001600160a01b0316146104c6575f80fd5b305f9081526001602052604090205480156104e4576104e48161121e565b4780156104f4576104f48161138e565b5050565b5f546001600160a01b0316331461052a5760405162461bcd60e51b8152600401610521906117b7565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461059b5760405162461bcd60e51b8152600401610521906117b7565b6105a76009600a611792565b6105b690649b386e0aaa6117a0565b600e556105c56009600a611792565b6105d490649b386e0aaa6117a0565b600f556005805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf61060e6009600a611792565b61061d90649b386e0aaa6117a0565b60405190815260200160405180910390a1565b5f546001600160a01b031633146106595760405162461bcd60e51b8152600401610521906117b7565b6013805460ff60b81b1916600160b81b179055565b5f610410338484610bc9565b5f546001600160a01b031633146106a35760405162461bcd60e51b8152600401610521906117b7565b601354600160a01b900460ff16156106fd5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610521565b601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107479030906107386009600a611792565b61049390649b386e0aaa6117a0565b60125f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610797573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107bb91906117ec565b6001600160a01b031663c9c653963060125f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561081a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061083e91906117ec565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610888573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108ac91906117ec565b601380546001600160a01b039283166001600160a01b03199091161790556012541663f305d71947306108f3816001600160a01b03165f9081526001602052604090205490565b5f806109065f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af115801561096c573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906109919190611807565b505060135460125460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af11580156109e6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a0a9190611832565b506013805463ffff00ff60a01b19166201000160a01b179055565b60055461010090046001600160a01b0316336001600160a01b031614610a49575f80fd5b6008548111158015610a5d57506009548111155b610a65575f80fd5b6008819055600955565b60055461010090046001600160a01b0316336001600160a01b031614610a93575f80fd5b478015610aa357610aa38161138e565b50565b6001600160a01b038316610b085760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610521565b6001600160a01b038216610b695760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610521565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610c2d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610521565b6001600160a01b038216610c8f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610521565b5f8111610cf05760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610521565b5f80546001600160a01b03858116911614801590610d1b57505f546001600160a01b03848116911614155b156110a957601354600160b81b900460ff16610d725760405162461bcd60e51b8152602060048201526016602482015275151c985b9cd9995c9cc8185c9948191a5cd8589b195960521b6044820152606401610521565b610d9e6064610d98600a54600d5411610d8d57600654610d91565b6008545b85906113c9565b9061144e565b60055490915060ff1615610e84576012546001600160a01b03848116911614801590610dd857506013546001600160a01b03848116911614155b15610e8457325f908152600460205260409020544311610e725760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a401610521565b325f9081526004602052604090204390555b6013546001600160a01b038581169116148015610eaf57506012546001600160a01b03848116911614155b8015610ed357506001600160a01b0383165f9081526003602052604090205460ff16155b15610fb957600e54821115610f2a5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610521565b600f5482610f4c856001600160a01b03165f9081526001602052604090205490565b610f569190611851565b1115610fa45760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610521565b600d8054905f610fb383611864565b91905055505b6013546001600160a01b038481169116148015610fdf57506001600160a01b0384163014155b1561100c576110096064610d98600b54600d5411610fff57600754610d91565b60095485906113c9565b90505b305f90815260016020526040902054601354600160a81b900460ff1615801561104257506013546001600160a01b038581169116145b80156110575750601354600160b01b900460ff165b8015611064575060105481115b80156110735750600c54600d54115b156110a7576110956110908461108b8460115461148f565b61148f565b61121e565b4780156110a5576110a54761138e565b505b505b801561112157305f908152600160205260409020546110c890826114a3565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111189085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546111439083611501565b6001600160a01b0385165f908152600160205260409020556111866111688383611501565b6001600160a01b0385165f90815260016020526040902054906114a3565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6111cf8585611501565b60405190815260200160405180910390a350505050565b5f81848411156112095760405162461bcd60e51b8152600401610521919061156e565b505f611215848661187c565b95945050505050565b6013805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106112645761126461188f565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156112bb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112df91906117ec565b816001815181106112f2576112f261188f565b6001600160a01b0392831660209182029290920101526012546113189130911684610aa6565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac947906113509085905f908690309042906004016118a3565b5f604051808303815f87803b158015611367575f80fd5b505af1158015611379573d5f803e3d5ffd5b50506013805460ff60a81b1916905550505050565b6005546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f193505050501580156104f4573d5f803e3d5ffd5b5f825f036113d857505f610414565b5f6113e383856117a0565b9050826113f08583611912565b146114475760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610521565b9392505050565b5f61144783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611542565b5f81831161149d5782611447565b50919050565b5f806114af8385611851565b9050838110156114475760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610521565b5f61144783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111e6565b5f81836115625760405162461bcd60e51b8152600401610521919061156e565b505f6112158486611912565b5f6020808352835180828501525f5b818110156115995785810183015185820160400152820161157d565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610aa3575f80fd5b5f80604083850312156115de575f80fd5b82356115e9816115b9565b946020939093013593505050565b5f805f60608486031215611609575f80fd5b8335611614816115b9565b92506020840135611624816115b9565b929592945050506040919091013590565b5f60208284031215611645575f80fd5b8135611447816115b9565b5f8060408385031215611661575f80fd5b823561166c816115b9565b9150602083013561167c816115b9565b809150509250929050565b5f60208284031215611697575f80fd5b5035919050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156116ec57815f19048211156116d2576116d261169e565b808516156116df57918102915b93841c93908002906116b7565b509250929050565b5f8261170257506001610414565b8161170e57505f610414565b8160018114611724576002811461172e5761174a565b6001915050610414565b60ff84111561173f5761173f61169e565b50506001821b610414565b5060208310610133831016604e8410600b841016171561176d575081810a610414565b61177783836116b2565b805f190482111561178a5761178a61169e565b029392505050565b5f61144760ff8416836116f4565b80820281158282048414176104145761041461169e565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f602082840312156117fc575f80fd5b8151611447816115b9565b5f805f60608486031215611819575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611842575f80fd5b81518015158114611447575f80fd5b808201808211156104145761041461169e565b5f600182016118755761187561169e565b5060010190565b818103818111156104145761041461169e565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156118f15784516001600160a01b0316835293830193918301916001016118cc565b50506001600160a01b03969096166060850152505050608001529392505050565b5f8261192c57634e487b7160e01b5f52601260045260245ffd5b50049056fe4861727279506f747465724f62616d61447261676f6e42616c6c5a363636496e7545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212208297baee56635356b6876484cd6b1b865ba2a3aa112a072ebf1ea7baca38a95064736f6c63430008140033

Deployed Bytecode Sourcemap

3576:8651:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5542:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6375:161;;;;;;;;;;-1:-1:-1;6375:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6375:161:0;1023:187:1;4772:55:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;4772:55:0;1215:177:1;5819:95:0;;;;;;;;;;;;;:::i;6544:313::-;;;;;;;;;;-1:-1:-1;6544:313:0;;;;;:::i;:::-;;:::i;5728:83::-;;;;;;;;;;-1:-1:-1;5728:83:0;;4361:1;2000:36:1;;1988:2;1973:18;5728:83:0;1858:184:1;11659:348:0;;;;;;;;;;;;;:::i;:::-;;5922:119;;;;;;;;;;-1:-1:-1;5922:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6015:18:0;5988:7;6015:18;;;:9;:18;;;;;;;5922:119;2657:148;;;;;;;;;;;;;:::i;10373:196::-;;;;;;;;;;;;;:::i;4575:57::-;;;;;;;;;;;;;;;;9787:87;;;;;;;;;;;;;:::i;2443:79::-;;;;;;;;;;-1:-1:-1;2481:7:0;2508:6;2443:79;;-1:-1:-1;;;;;2508:6:0;;;2445:51:1;;2433:2;2418:18;2443:79:0;2299:203:1;4639:59:0;;;;;;;;;;;;;;;;5633:87;;;;;;;;;;-1:-1:-1;5705:7:0;;;;;;;;;;;;-1:-1:-1;;;5705:7:0;;;;5633:87;;6049:167;;;;;;;;;;-1:-1:-1;6049:167:0;;;;;:::i;:::-;;:::i;4705:60::-;;;;;;;;;;;;;;;;3918:39;;;;;;;;;;-1:-1:-1;3918:39:0;;;;;;;;10677:705;;;;;;;;;;;;;:::i;6224:143::-;;;;;;;;;;-1:-1:-1;6224:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6332:18:0;;;6305:7;6332:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6224:143;11396:218;;;;;;;;;;-1:-1:-1;11396:218:0;;;;;:::i;:::-;;:::i;12015:209::-;;;;;;;;;;;;;:::i;5542:83::-;5579:13;5612:5;;;;;;;;;;;;;;;;;5605:12;;5542:83;:::o;6375:161::-;6450:4;6467:39;278:10;6490:7;6499:6;6467:8;:39::i;:::-;-1:-1:-1;6524:4:0;6375:161;;;;;:::o;5819:95::-;5872:7;4419:13;4361:1;4419:2;:13;:::i;:::-;4404:28;;:12;:28;:::i;:::-;5892:14;;5819:95;:::o;6544:313::-;6642:4;6659:36;6669:6;6677:9;6688:6;6659:9;:36::i;:::-;6706:121;6715:6;278:10;6737:89;6775:6;6737:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6737:19:0;;;;;;:11;:19;;;;;;;;278:10;6737:33;;;;;;;;;;:37;:89::i;:::-;6706:8;:121::i;:::-;-1:-1:-1;6845:4:0;6544:313;;;;;:::o;11659:348::-;11723:10;;;;;-1:-1:-1;;;;;11723:10:0;278;-1:-1:-1;;;;;11709:24:0;;11701:33;;;;;;11784:4;11745:20;6015:18;;;:9;:18;;;;;;11804:14;;11801:73;;11832:30;11849:12;11832:16;:30::i;:::-;11903:21;11938:12;;11935:65;;11964:24;11977:10;11964:12;:24::i;:::-;11690:317;;11659:348::o;2657:148::-;2570:6;;-1:-1:-1;;;;;2570:6:0;278:10;2570:22;2562:67;;;;-1:-1:-1;;;2562:67:0;;;;;;;:::i;:::-;;;;;;;;;2764:1:::1;2748:6:::0;;2727:40:::1;::::0;-1:-1:-1;;;;;2748:6:0;;::::1;::::0;2727:40:::1;::::0;2764:1;;2727:40:::1;2795:1;2778:19:::0;;-1:-1:-1;;;;;;2778:19:0::1;::::0;;2657:148::o;10373:196::-;2570:6;;-1:-1:-1;;;;;2570:6:0;278:10;2570:22;2562:67;;;;-1:-1:-1;;;2562:67:0;;;;;;;:::i;:::-;4419:13:::1;4361:1;4419:2;:13;:::i;:::-;4404:28;::::0;:12:::1;:28;:::i;:::-;10426:12;:22:::0;4419:13:::1;4361:1;4419:2;:13;:::i;:::-;4404:28;::::0;:12:::1;:28;:::i;:::-;10459:14;:22:::0;10492:20:::1;:26:::0;;-1:-1:-1;;10492:26:0::1;::::0;;10534:27:::1;4419:13;4361:1;-1:-1:-1::0;4419:13:0::1;:::i;:::-;4404:28;::::0;:12:::1;:28;:::i;:::-;10534:27;::::0;1361:25:1;;;1349:2;1334:18;10534:27:0::1;;;;;;;10373:196::o:0;9787:87::-;2570:6;;-1:-1:-1;;;;;2570:6:0;278:10;2570:22;2562:67;;;;-1:-1:-1;;;2562:67:0;;;;;;;:::i;:::-;9844:15:::1;:22:::0;;-1:-1:-1;;;;9844:22:0::1;-1:-1:-1::0;;;9844:22:0::1;::::0;;9787:87::o;6049:167::-;6127:4;6144:42;278:10;6168:9;6179:6;6144:9;:42::i;10677:705::-;2570:6;;-1:-1:-1;;;;;2570:6:0;278:10;2570:22;2562:67;;;;-1:-1:-1;;;2562:67:0;;;;;;;:::i;:::-;10741:11:::1;::::0;-1:-1:-1;;;10741:11:0;::::1;;;10740:12;10732:47;;;::::0;-1:-1:-1;;;10732:47:0;;5336:2:1;10732:47:0::1;::::0;::::1;5318:21:1::0;5375:2;5355:18;;;5348:30;5414:25;5394:18;;;5387:53;5457:18;;10732:47:0::1;5134:347:1::0;10732:47:0::1;10790:15;:80:::0;;-1:-1:-1;;;;;;10790:80:0::1;10827:42;10790:80:::0;;::::1;::::0;;;10881:58:::1;::::0;10898:4:::1;::::0;4419:13:::1;4361:1;4419:2;:13;:::i;:::-;4404:28;::::0;:12:::1;:28;:::i;10881:58::-;10984:15;;;;;;;;;-1:-1:-1::0;;;;;10984:15:0::1;-1:-1:-1::0;;;;;10984:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10966:55:0::1;;11030:4;11037:15;;;;;;;;;-1:-1:-1::0;;;;;11037:15:0::1;-1:-1:-1::0;;;;;11037:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10966:94;::::0;-1:-1:-1;;;;;;10966:94:0::1;::::0;;;;;;-1:-1:-1;;;;;5972:15:1;;;10966:94:0::1;::::0;::::1;5954:34:1::0;6024:15;;6004:18;;;5997:43;5889:18;;10966:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10950:13;:110:::0;;-1:-1:-1;;;;;10950:110:0;;::::1;-1:-1:-1::0;;;;;;10950:110:0;;::::1;;::::0;;11071:15:::1;::::0;::::1;:31;11110:21;11141:4;11147:24;11141:4:::0;-1:-1:-1;;;;;6015:18:0;5988:7;6015:18;;;:9;:18;;;;;;;5922:119;11147:24:::1;11172:1;11174::::0;11176:7:::1;2481::::0;2508:6;-1:-1:-1;;;;;2508:6:0;;2443:79;11176:7:::1;11071:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;11071:129:0;;;-1:-1:-1;;;;;6410:15:1;;;11071:129:0::1;::::0;::::1;6392:34:1::0;6442:18;;;6435:34;;;;6485:18;;;6478:34;;;;6528:18;;;6521:34;6592:15;;;6571:19;;;6564:44;11184:15:0::1;6624:19:1::0;;;6617:35;6326:19;;11071:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;11218:13:0::1;::::0;11249:15:::1;::::0;11211:71:::1;::::0;-1:-1:-1;;;11211:71:0;;-1:-1:-1;;;;;11249:15:0;;::::1;11211:71;::::0;::::1;7148:51:1::0;-1:-1:-1;;7215:18:1;;;7208:34;11218:13:0;::::1;::::0;-1:-1:-1;11211:29:0::1;::::0;7121:18:1;;11211:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;11293:11:0::1;:18:::0;;-1:-1:-1;;;;11351:23:0;-1:-1:-1;;;11351:23:0;;;10677:705::o;11396:218::-;11471:10;;;;;-1:-1:-1;;;;;11471:10:0;278;-1:-1:-1;;;;;11457:24:0;;11449:33;;;;;;11508:12;;11499:7;:21;;:47;;;;;11533:13;;11524:7;:22;;11499:47;11491:56;;;;;;11556:12;:20;;;11585:13;:21;11396:218::o;12015:209::-;12079:10;;;;;-1:-1:-1;;;;;12079:10:0;278;-1:-1:-1;;;;;12065:24:0;;12057:33;;;;;;12120:21;12155:12;;12152:65;;12181:24;12194:10;12181:12;:24::i;:::-;12046:178;12015:209::o;6865:335::-;-1:-1:-1;;;;;6958:19:0;;6950:68;;;;-1:-1:-1;;;6950:68:0;;7737:2:1;6950:68:0;;;7719:21:1;7776:2;7756:18;;;7749:30;7815:34;7795:18;;;7788:62;-1:-1:-1;;;7866:18:1;;;7859:34;7910:19;;6950:68:0;7535:400:1;6950:68:0;-1:-1:-1;;;;;7037:21:0;;7029:68;;;;-1:-1:-1;;;7029:68:0;;8142:2:1;7029:68:0;;;8124:21:1;8181:2;8161:18;;;8154:30;8220:34;8200:18;;;8193:62;-1:-1:-1;;;8271:18:1;;;8264:32;8313:19;;7029:68:0;7940:398:1;7029:68:0;-1:-1:-1;;;;;7108:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7160:32;;1361:25:1;;;7160:32:0;;1334:18:1;7160:32:0;;;;;;;6865:335;;;:::o;7208:2463::-;-1:-1:-1;;;;;7296:18:0;;7288:68;;;;-1:-1:-1;;;7288:68:0;;8545:2:1;7288:68:0;;;8527:21:1;8584:2;8564:18;;;8557:30;8623:34;8603:18;;;8596:62;-1:-1:-1;;;8674:18:1;;;8667:35;8719:19;;7288:68:0;8343:401:1;7288:68:0;-1:-1:-1;;;;;7375:16:0;;7367:64;;;;-1:-1:-1;;;7367:64:0;;8951:2:1;7367:64:0;;;8933:21:1;8990:2;8970:18;;;8963:30;9029:34;9009:18;;;9002:62;-1:-1:-1;;;9080:18:1;;;9073:33;9123:19;;7367:64:0;8749:399:1;7367:64:0;7459:1;7450:6;:10;7442:64;;;;-1:-1:-1;;;7442:64:0;;9355:2:1;7442:64:0;;;9337:21:1;9394:2;9374:18;;;9367:30;9433:34;9413:18;;;9406:62;-1:-1:-1;;;9484:18:1;;;9477:39;9533:19;;7442:64:0;9153:405:1;7442:64:0;7517:17;2508:6;;-1:-1:-1;;;;;7551:15:0;;;2508:6;;7551:15;;;;:32;;-1:-1:-1;2481:7:0;2508:6;-1:-1:-1;;;;;7570:13:0;;;2508:6;;7570:13;;7551:32;7547:1768;;;7608:15;;-1:-1:-1;;;7608:15:0;;;;7600:50;;;;-1:-1:-1;;;7600:50:0;;9765:2:1;7600:50:0;;;9747:21:1;9804:2;9784:18;;;9777:30;-1:-1:-1;;;9823:18:1;;;9816:52;9885:18;;7600:50:0;9563:346:1;7600:50:0;7677:76;7749:3;7677:67;7699:15;;7689:9;;:25;7688:55;;7729:14;;7688:55;;;7716:12;;7688:55;7677:6;;:10;:67::i;:::-;:71;;:76::i;:::-;7774:20;;7665:88;;-1:-1:-1;7774:20:0;;7770:508;;;7835:15;;-1:-1:-1;;;;;7821:30:0;;;7835:15;;7821:30;;;;:62;;-1:-1:-1;7869:13:0;;-1:-1:-1;;;;;7855:28:0;;;7869:13;;7855:28;;7821:62;7817:444;;;7975:9;7946:39;;;;:28;:39;;;;;;8019:12;-1:-1:-1;7910:250:0;;;;-1:-1:-1;;;7910:250:0;;10116:2:1;7910:250:0;;;10098:21:1;10155:2;10135:18;;;10128:30;10194:34;10174:18;;;10167:62;10265:34;10245:18;;;10238:62;-1:-1:-1;;;10316:19:1;;;10309:40;10366:19;;7910:250:0;9914:477:1;7910:250:0;8214:9;8185:39;;;;:28;:39;;;;;8227:12;8185:54;;7817:444;8306:13;;-1:-1:-1;;;;;8298:21:0;;;8306:13;;8298:21;:55;;;;-1:-1:-1;8337:15:0;;-1:-1:-1;;;;;8323:30:0;;;8337:15;;8323:30;;8298:55;:83;;;;-1:-1:-1;;;;;;8359:22:0;;;;;;:18;:22;;;;;;;;8357:24;8298:83;8294:313;;;8421:12;;8411:6;:22;;8403:60;;;;-1:-1:-1;;;8403:60:0;;10598:2:1;8403:60:0;;;10580:21:1;10637:2;10617:18;;;10610:30;10676:27;10656:18;;;10649:55;10721:18;;8403:60:0;10396:349:1;8403:60:0;8516:14;;8506:6;8490:13;8500:2;-1:-1:-1;;;;;6015:18:0;5988:7;6015:18;;;:9;:18;;;;;;;5922:119;8490:13;:22;;;;:::i;:::-;:40;;8482:79;;;;-1:-1:-1;;;8482:79:0;;11082:2:1;8482:79:0;;;11064:21:1;11121:2;11101:18;;;11094:30;11160:28;11140:18;;;11133:56;11206:18;;8482:79:0;10880:350:1;8482:79:0;8580:9;:11;;;:9;:11;;;:::i;:::-;;;;;;8294:313;8632:13;;-1:-1:-1;;;;;8626:19:0;;;8632:13;;8626:19;:43;;;;-1:-1:-1;;;;;;8649:20:0;;8664:4;8649:20;;8626:43;8623:174;;;8702:79;8777:3;8702:70;8724:16;;8714:9;;:26;8713:58;;8756:15;;8713:58;;;8742:13;;8702:6;;:10;:70::i;:79::-;8690:91;;8623:174;8862:4;8813:28;6015:18;;;:9;:18;;;;;;8888:6;;-1:-1:-1;;;8888:6:0;;;;8887:7;:32;;;;-1:-1:-1;8906:13:0;;-1:-1:-1;;;;;8898:21:0;;;8906:13;;8898:21;8887:32;:47;;;;-1:-1:-1;8923:11:0;;-1:-1:-1;;;8923:11:0;;;;8887:47;:89;;;;;8959:17;;8938:20;:38;8887:89;:121;;;;;8990:18;;8980:9;;:28;8887:121;8883:421;;;9029:67;9046:49;9050:6;9057:37;9061:20;9082:11;;9057:3;:37::i;:::-;9046:3;:49::i;:::-;9029:16;:67::i;:::-;9144:21;9187:22;;9184:105;;9234:35;9247:21;9234:12;:35::i;:::-;9010:294;8883:421;7585:1730;7547:1768;9330:11;;9327:161;;9398:4;9380:24;;;;:9;:24;;;;;;:39;;9409:9;9380:28;:39::i;:::-;9373:4;9355:24;;;;:9;:24;;;;;;;:64;;;;9437:39;;-1:-1:-1;;;;;9437:39:0;;;;;;;9466:9;1361:25:1;;1349:2;1334:18;;1215:177;9437:39:0;;;;;;;;9327:161;-1:-1:-1;;;;;9514:15:0;;;;;;:9;:15;;;;;;:27;;9534:6;9514:19;:27::i;:::-;-1:-1:-1;;;;;9498:15:0;;;;;;:9;:15;;;;;:43;9566:40;9584:21;:6;9595:9;9584:10;:21::i;:::-;-1:-1:-1;;;;;9566:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;9552:13:0;;;;;;;:9;:13;;;;;:54;;;;9622:41;;;9641:21;:6;9652:9;9641:10;:21::i;:::-;9622:41;;1361:25:1;;;1349:2;1334:18;9622:41:0;;;;;;;7277:2394;7208:2463;;;:::o;1335:190::-;1421:7;1457:12;1449:6;;;;1441:29;;;;-1:-1:-1;;;1441:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1481:9:0;1493:5;1497:1;1493;:5;:::i;:::-;1481:17;1335:190;-1:-1:-1;;;;;1335:190:0:o;9882:483::-;5151:6;:13;;-1:-1:-1;;;;5151:13:0;-1:-1:-1;;;5151:13:0;;;9984:16:::1;::::0;;9998:1:::1;9984:16:::0;;;;;::::1;::::0;;-1:-1:-1;;9984:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9984:16:0::1;9960:40;;10029:4;10011;10016:1;10011:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10011:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10055:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;10055:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;10011:7;;10055:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10045:4;10050:1;10045:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10045:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;10120:15:::1;::::0;10088:62:::1;::::0;10105:4:::1;::::0;10120:15:::1;10138:11:::0;10088:8:::1;:62::i;:::-;10161:15;::::0;:196:::1;::::0;-1:-1:-1;;;10161:196:0;;-1:-1:-1;;;;;10161:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;10242:11;;10161:15:::1;::::0;10284:4;;10311::::1;::::0;10331:15:::1;::::0;10161:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5187:6:0;:14;;-1:-1:-1;;;;5187:14:0;;;-1:-1:-1;;;;9882:483:0:o;10577:92::-;10634:10;;:27;;:10;;;;-1:-1:-1;;;;;10634:10:0;;:27;;;;;;;;;;;;:10;:27;;;;;;;;;;;;;;;;;;;1533:246;1591:7;1615:1;1620;1615:6;1611:47;;-1:-1:-1;1645:1:0;1638:8;;1611:47;1668:9;1680:5;1684:1;1680;:5;:::i;:::-;1668:17;-1:-1:-1;1713:1:0;1704:5;1708:1;1668:17;1704:5;:::i;:::-;:10;1696:56;;;;-1:-1:-1;;;1696:56:0;;13181:2:1;1696:56:0;;;13163:21:1;13220:2;13200:18;;;13193:30;13259:34;13239:18;;;13232:62;-1:-1:-1;;;13310:18:1;;;13303:31;13351:19;;1696:56:0;12979:397:1;1696:56:0;1770:1;1533:246;-1:-1:-1;;;1533:246:0:o;1787:132::-;1845:7;1872:39;1876:1;1879;1872:39;;;;;;;;;;;;;;;;;:3;:39::i;9681:98::-;9738:7;9765:1;9763;:3;9762:9;;9770:1;9762:9;;;-1:-1:-1;9768:1:0;9681:98;-1:-1:-1;9681:98:0:o;1004:179::-;1062:7;;1094:5;1098:1;1094;:5;:::i;:::-;1082:17;;1123:1;1118;:6;;1110:46;;;;-1:-1:-1;;;1110:46:0;;13583:2:1;1110:46:0;;;13565:21:1;13622:2;13602:18;;;13595:30;13661:29;13641:18;;;13634:57;13708:18;;1110:46:0;13381:351:1;1191:136:0;1249:7;1276:43;1280:1;1283;1276:43;;;;;;;;;;;;;;;;;:3;:43::i;1927:189::-;2013:7;2048:12;2041:5;2033:28;;;;-1:-1:-1;;;2033:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2072:9:0;2084:5;2088:1;2084;: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:180::-;2959:6;3012:2;3000:9;2991:7;2987:23;2983:32;2980:52;;;3028:1;3025;3018:12;2980:52;-1:-1:-1;3051:23:1;;2900:180;-1:-1:-1;2900:180:1:o;3085:127::-;3146:10;3141:3;3137:20;3134:1;3127:31;3177:4;3174:1;3167:15;3201:4;3198:1;3191:15;3217:422;3306:1;3349:5;3306:1;3363:270;3384:7;3374:8;3371:21;3363:270;;;3443:4;3439:1;3435:6;3431:17;3425:4;3422:27;3419:53;;;3452:18;;:::i;:::-;3502:7;3492:8;3488:22;3485:55;;;3522:16;;;;3485:55;3601:22;;;;3561:15;;;;3363:270;;;3367:3;3217:422;;;;;:::o;3644:806::-;3693:5;3723:8;3713:80;;-1:-1:-1;3764:1:1;3778:5;;3713:80;3812:4;3802:76;;-1:-1:-1;3849:1:1;3863:5;;3802:76;3894:4;3912:1;3907:59;;;;3980:1;3975:130;;;;3887:218;;3907:59;3937:1;3928:10;;3951:5;;;3975:130;4012:3;4002:8;3999:17;3996:43;;;4019:18;;:::i;:::-;-1:-1:-1;;4075:1:1;4061:16;;4090:5;;3887:218;;4189:2;4179:8;4176:16;4170:3;4164:4;4161:13;4157:36;4151:2;4141:8;4138:16;4133:2;4127:4;4124:12;4120:35;4117:77;4114:159;;;-1:-1:-1;4226:19:1;;;4258:5;;4114:159;4305:34;4330:8;4324:4;4305:34;:::i;:::-;4375:6;4371:1;4367:6;4363:19;4354:7;4351:32;4348:58;;;4386:18;;:::i;:::-;4424:20;;3644:806;-1:-1:-1;;;3644:806:1:o;4455:140::-;4513:5;4542:47;4583:4;4573:8;4569:19;4563:4;4542:47;:::i;4600:168::-;4673:9;;;4704;;4721:15;;;4715:22;;4701:37;4691:71;;4742:18;;:::i;4773:356::-;4975:2;4957:21;;;4994:18;;;4987:30;5053:34;5048:2;5033:18;;5026:62;5120:2;5105:18;;4773:356::o;5486:251::-;5556:6;5609:2;5597:9;5588:7;5584:23;5580:32;5577:52;;;5625:1;5622;5615:12;5577:52;5657:9;5651:16;5676:31;5701:5;5676:31;:::i;6663:306::-;6751:6;6759;6767;6820:2;6808:9;6799:7;6795:23;6791:32;6788:52;;;6836:1;6833;6826:12;6788:52;6865:9;6859:16;6849:26;;6915:2;6904:9;6900:18;6894:25;6884:35;;6959:2;6948:9;6944:18;6938:25;6928:35;;6663:306;;;;;:::o;7253:277::-;7320:6;7373:2;7361:9;7352:7;7348:23;7344:32;7341:52;;;7389:1;7386;7379:12;7341:52;7421:9;7415:16;7474:5;7467:13;7460:21;7453:5;7450:32;7440:60;;7496:1;7493;7486:12;10750:125;10815:9;;;10836:10;;;10833:36;;;10849:18;;:::i;11235:135::-;11274:3;11295:17;;;11292:43;;11315:18;;:::i;:::-;-1:-1:-1;11362:1:1;11351:13;;11235:135::o;11375:128::-;11442:9;;;11463:11;;;11460:37;;;11477:18;;:::i;11640:127::-;11701:10;11696:3;11692:20;11689:1;11682:31;11732:4;11729:1;11722:15;11756:4;11753:1;11746:15;11772:980;12034:4;12082:3;12071:9;12067:19;12113:6;12102:9;12095:25;12139:2;12177:6;12172:2;12161:9;12157:18;12150:34;12220:3;12215:2;12204:9;12200:18;12193:31;12244:6;12279;12273:13;12310:6;12302;12295:22;12348:3;12337:9;12333:19;12326:26;;12387:2;12379:6;12375:15;12361:29;;12408:1;12418:195;12432:6;12429:1;12426:13;12418:195;;;12497:13;;-1:-1:-1;;;;;12493:39:1;12481:52;;12588:15;;;;12553:12;;;;12529:1;12447:9;12418:195;;;-1:-1:-1;;;;;;;12669:32:1;;;;12664:2;12649:18;;12642:60;-1:-1:-1;;;12733:3:1;12718:19;12711:35;12630:3;11772:980;-1:-1:-1;;;11772:980:1:o;12757:217::-;12797:1;12823;12813:132;;12867:10;12862:3;12858:20;12855:1;12848:31;12902:4;12899:1;12892:15;12930:4;12927:1;12920:15;12813:132;-1:-1:-1;12959:9:1;;12757:217::o

Swarm Source

ipfs://8297baee56635356b6876484cd6b1b865ba2a3aa112a072ebf1ea7baca38a950

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.