ETH Price: $3,109.29 (+1.55%)
Gas: 4 Gwei

Contract

0x7106a89a322D7317AE0336C2Bafc496bFE42B132
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Value
Approve179084692023-08-13 20:57:23331 days ago1691960243IN
0x7106a89a...bFE42B132
0 ETH0.0005820312.57062767
Approve178982652023-08-12 10:43:59332 days ago1691837039IN
0x7106a89a...bFE42B132
0 ETH0.0007444616.00404696
Approve178941922023-08-11 21:01:11333 days ago1691787671IN
0x7106a89a...bFE42B132
0 ETH0.0010168921.83259125
Approve178940132023-08-11 20:24:59333 days ago1691785499IN
0x7106a89a...bFE42B132
0 ETH0.0006959315.05007887
Approve178939402023-08-11 20:10:23333 days ago1691784623IN
0x7106a89a...bFE42B132
0 ETH0.0008588118.57254087
Approve178938982023-08-11 20:01:35333 days ago1691784095IN
0x7106a89a...bFE42B132
0 ETH0.0009571520.54998679
Approve178938652023-08-11 19:54:47333 days ago1691783687IN
0x7106a89a...bFE42B132
0 ETH0.0011004623.76772008
Approve178937922023-08-11 19:39:59333 days ago1691782799IN
0x7106a89a...bFE42B132
0 ETH0.0008500518.39274573
Transfer178937882023-08-11 19:39:11333 days ago1691782751IN
0x7106a89a...bFE42B132
0 ETH0.0012699517.28486334
Approve178937772023-08-11 19:36:59333 days ago1691782619IN
0x7106a89a...bFE42B132
0 ETH0.0008759918.95395519
Approve178937742023-08-11 19:36:23333 days ago1691782583IN
0x7106a89a...bFE42B132
0 ETH0.0009069519.49725606
Approve178937452023-08-11 19:30:35333 days ago1691782235IN
0x7106a89a...bFE42B132
0 ETH0.0010181522.01838753
Approve178937282023-08-11 19:27:11333 days ago1691782031IN
0x7106a89a...bFE42B132
0 ETH0.001111224.03067278
Approve178935952023-08-11 19:00:35333 days ago1691780435IN
0x7106a89a...bFE42B132
0 ETH0.0012436726.70149096
Approve178935602023-08-11 18:53:35333 days ago1691780015IN
0x7106a89a...bFE42B132
0 ETH0.0013111928.15118521
Transfer178935352023-08-11 18:48:35333 days ago1691779715IN
0x7106a89a...bFE42B132
0 ETH0.0017143621.90260838
Approve178935162023-08-11 18:44:47333 days ago1691779487IN
0x7106a89a...bFE42B132
0 ETH0.0012064525.90247885
Approve178935052023-08-11 18:42:35333 days ago1691779355IN
0x7106a89a...bFE42B132
0 ETH0.0014457331.03972776
Approve178934802023-08-11 18:37:35333 days ago1691779055IN
0x7106a89a...bFE42B132
0 ETH0.0009609220.76468325
Renounce Ownersh...178934712023-08-11 18:35:47333 days ago1691778947IN
0x7106a89a...bFE42B132
0 ETH0.0005308722.74899935
Approve178934672023-08-11 18:34:59333 days ago1691778899IN
0x7106a89a...bFE42B132
0 ETH0.0013041528
Transfer178934592023-08-11 18:33:23333 days ago1691778803IN
0x7106a89a...bFE42B132
0 ETH0.0014026124.72705228
Approve178934582023-08-11 18:33:11333 days ago1691778791IN
0x7106a89a...bFE42B132
0 ETH0.0013172128.28043138
Transfer178934572023-08-11 18:32:59333 days ago1691778779IN
0x7106a89a...bFE42B132
0 ETH0.0013606823.98783584
Transfer178934562023-08-11 18:32:47333 days ago1691778767IN
0x7106a89a...bFE42B132
0 ETH0.0013505123.81363116
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To Value
179024102023-08-13 0:38:47332 days ago1691887127
0x7106a89a...bFE42B132
0.00806713 ETH
179024102023-08-13 0:38:47332 days ago1691887127
0x7106a89a...bFE42B132
0.00806713 ETH
179024072023-08-13 0:38:11332 days ago1691887091
0x7106a89a...bFE42B132
0.00863799 ETH
179024072023-08-13 0:38:11332 days ago1691887091
0x7106a89a...bFE42B132
0.00863799 ETH
178982802023-08-12 10:46:59332 days ago1691837219
0x7106a89a...bFE42B132
0.01267597 ETH
178982802023-08-12 10:46:59332 days ago1691837219
0x7106a89a...bFE42B132
0.01267597 ETH
178982652023-08-12 10:43:59332 days ago1691837039
0x7106a89a...bFE42B132
0.01267597 ETH
178982652023-08-12 10:43:59332 days ago1691837039
0x7106a89a...bFE42B132
0.01267597 ETH
178941932023-08-11 21:01:23333 days ago1691787683
0x7106a89a...bFE42B132
0.0087839 ETH
178941932023-08-11 21:01:23333 days ago1691787683
0x7106a89a...bFE42B132
0.0087839 ETH
178940122023-08-11 20:24:47333 days ago1691785487
0x7106a89a...bFE42B132
0.00923382 ETH
178940122023-08-11 20:24:47333 days ago1691785487
0x7106a89a...bFE42B132
0.00923382 ETH
178939232023-08-11 20:06:47333 days ago1691784407
0x7106a89a...bFE42B132
0.00975262 ETH
178939232023-08-11 20:06:47333 days ago1691784407
0x7106a89a...bFE42B132
0.00975262 ETH
178938992023-08-11 20:01:47333 days ago1691784107
0x7106a89a...bFE42B132
0.01036776 ETH
178938992023-08-11 20:01:47333 days ago1691784107
0x7106a89a...bFE42B132
0.01036776 ETH
178938712023-08-11 19:55:59333 days ago1691783759
0x7106a89a...bFE42B132
0.01165453 ETH
178938712023-08-11 19:55:59333 days ago1691783759
0x7106a89a...bFE42B132
0.01165453 ETH
178938692023-08-11 19:55:35333 days ago1691783735
0x7106a89a...bFE42B132
0.01165453 ETH
178938692023-08-11 19:55:35333 days ago1691783735
0x7106a89a...bFE42B132
0.01165453 ETH
178938662023-08-11 19:54:59333 days ago1691783699
0x7106a89a...bFE42B132
0.01281855 ETH
178938662023-08-11 19:54:59333 days ago1691783699
0x7106a89a...bFE42B132
0.01281855 ETH
178938572023-08-11 19:53:11333 days ago1691783591
0x7106a89a...bFE42B132
0.01383365 ETH
178938572023-08-11 19:53:11333 days ago1691783591
0x7106a89a...bFE42B132
0.01383365 ETH
178938472023-08-11 19:50:59333 days ago1691783459
0x7106a89a...bFE42B132
0.0144798 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
FLYINGPEPE

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-08-11
*/

// SPDX-License-Identifier: MIT

/*  

    Fed up with being constantly defeated by financial influencers and enduring setbacks 
    to your coin holding? We understand the frustration! That's precisely why FLY comes into 
    play as the long-awaited boost! We're constructing a leaderboard of staking rewards that will
    propel your gains to new heights, just like Flying Pepe soaring through the skies.
        
        SOCIALS
        https://t.me/FLY_ERC20
        https://flyingpepe.fun/
        https://twitter.com/FlyingPepeErc20

*/

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 FLYINGPEPE 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 => bool) private bots;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = false;
    address payable private _taxWallet;

    uint256 private _initialBuyTax=25;
    uint256 private _initialSellTax=40;
    uint256 private _finalBuyTax=4;
    uint256 private _finalSellTax=4;
    uint256 private _reduceBuyTaxAt=30;
    uint256 private _reduceSellTaxAt=40;
    uint256 private _preventSwapBefore=30;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 8;
    uint256 private constant _tTotal = 100000000000000 * 10**_decimals;
    string private constant _name = "Flying Pepe";
    string private constant _symbol = "FLY";
    uint256 public _maxTxAmount = 2000000000000 * 10**_decimals; 
    uint256 public _maxWalletSize = 2000000000000 * 10**_decimals; 
    uint256 public _taxSwapThreshold= 200000000000 * 10**_decimals; 
    uint256 public _maxTaxSwap= 500000000000 * 10**_decimals;

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

    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 (!tradingOpen) {
                require(from == owner() || from == address(this), "TOKEN: This account cannot send tokens until trading is enabled");
            }

        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);

            if (transferDelayEnabled) {
                if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                  require(_holderLastTransferTimestamp[tx.origin] < block.number,"Only one transfer 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.");
                if(_buyCount<_preventSwapBefore){
                  require(!isContract(to));
                }
                _buyCount++;
            }


            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
            if(to == uniswapV2Pair && from!= address(this) ){
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                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 swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        if(tokenAmount==0){return;}
        if(!tradingOpen){return;}
        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 isBot(address a) public view returns (bool){
      return bots[a];
    }

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        swapEnabled = true;
        tradingOpen = true;
    }
    function addLP() external onlyOwner() {
        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);
    }

    receive() external payable {}

    function isContract(address account) private view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

    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);
        }
    }

    
    
    
}

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":[],"name":"addLP","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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"}]

60806040526006805460ff1916905560196007556028600881815560046009819055600a908155601e600b819055600c93909355600d929092555f600e55620000489162000354565b6200005a906501d1a94a20006200036b565b600f556200006b6008600a62000354565b6200007d906501d1a94a20006200036b565b6010556200008e6008600a62000354565b6200009f90642e90edd0006200036b565b601155620000b06008600a62000354565b620000c19064746a5288006200036b565b6012556014805462ffffff60a01b19169055348015620000df575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060068054610100600160a81b0319166101003302179055620001456008600a62000354565b6200015790655af3107a40006200036b565b335f908152600160208190526040822092909255600390620001805f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff1996871617905530815260039093528183208054851660019081179091556006546101009004909116835291208054909216179055620001e33390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200021c6008600a62000354565b6200022e90655af3107a40006200036b565b60405190815260200160405180910390a362000385565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200029957815f19048211156200027d576200027d62000245565b808516156200028b57918102915b93841c93908002906200025e565b509250929050565b5f82620002b1575060016200034e565b81620002bf57505f6200034e565b8160018114620002d85760028114620002e35762000303565b60019150506200034e565b60ff841115620002f757620002f762000245565b50506001821b6200034e565b5060208310610133831016604e8410600b841016171562000328575081810a6200034e565b62000334838362000259565b805f19048211156200034a576200034a62000245565b0290505b92915050565b5f6200036460ff841683620002a1565b9392505050565b80820281158282048414176200034e576200034e62000245565b6119c580620003935f395ff3fe608060405260043610610129575f3560e01c8063751039fc116100a8578063a9059cbb1161006d578063a9059cbb1461033d578063bc37e1a31461035c578063bf474bed14610370578063c876d0b914610385578063c9567bf91461039e578063dd62ed3e146103b2575f80fd5b8063751039fc146102ae5780637d1db4a5146102c25780638da5cb5b146102d75780638f9a55c0146102fd57806395d89b4114610312575f80fd5b8063313ce567116100ee578063313ce567146101fe5780633bbac5791461021957806351bc3c851461025057806370a0823114610266578063715018a61461029a575f80fd5b806306fdde0314610134578063095ea7b3146101795780630faee56f146101a857806318160ddd146101cb57806323b872dd146101df575f80fd5b3661013057005b5f80fd5b34801561013f575f80fd5b5060408051808201909152600b81526a466c79696e67205065706560a81b60208201525b60405161017091906115bb565b60405180910390f35b348015610184575f80fd5b5061019861019336600461161a565b6103f6565b6040519015158152602001610170565b3480156101b3575f80fd5b506101bd60125481565b604051908152602001610170565b3480156101d6575f80fd5b506101bd61040c565b3480156101ea575f80fd5b506101986101f9366004611644565b61042e565b348015610209575f80fd5b5060405160088152602001610170565b348015610224575f80fd5b50610198610233366004611682565b6001600160a01b03165f9081526004602052604090205460ff1690565b34801561025b575f80fd5b50610264610495565b005b348015610271575f80fd5b506101bd610280366004611682565b6001600160a01b03165f9081526001602052604090205490565b3480156102a5575f80fd5b506102646104eb565b3480156102b9575f80fd5b50610264610565565b3480156102cd575f80fd5b506101bd600f5481565b3480156102e2575f80fd5b505f546040516001600160a01b039091168152602001610170565b348015610308575f80fd5b506101bd60105481565b34801561031d575f80fd5b50604080518082019091526003815262464c5960e81b6020820152610163565b348015610348575f80fd5b5061019861035736600461161a565b610626565b348015610367575f80fd5b50610264610632565b34801561037b575f80fd5b506101bd60115481565b348015610390575f80fd5b506006546101989060ff1681565b3480156103a9575f80fd5b5061026461096c565b3480156103bd575f80fd5b506101bd6103cc36600461169d565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f610402338484610a08565b5060015b92915050565b5f6104196008600a6117c8565b61042990655af3107a40006117d6565b905090565b5f61043a848484610b2b565b61048b843361048685604051806060016040528060288152602001611968602891396001600160a01b038a165f908152600260209081526040808320338452909152902054919061121a565b610a08565b5060019392505050565b60065461010090046001600160a01b0316336001600160a01b0316146104b9575f80fd5b305f9081526001602052604090205480156104d7576104d781611252565b4780156104e7576104e7816113db565b5050565b5f546001600160a01b0316331461051d5760405162461bcd60e51b8152600401610514906117ed565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461058e5760405162461bcd60e51b8152600401610514906117ed565b61059a6008600a6117c8565b6105aa90655af3107a40006117d6565b600f556105b96008600a6117c8565b6105c990655af3107a40006117d6565b6010556006805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6106036008600a6117c8565b61061390655af3107a40006117d6565b60405190815260200160405180910390a1565b5f610402338484610b2b565b5f546001600160a01b0316331461065b5760405162461bcd60e51b8152600401610514906117ed565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556106a69030906106966008600a6117c8565b61048690655af3107a40006117d6565b60135f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106f6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061071a9190611822565b6001600160a01b031663c9c653963060135f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610779573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061079d9190611822565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156107e7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061080b9190611822565b601480546001600160a01b039283166001600160a01b03199091161790556013541663f305d7194730610852816001600160a01b03165f9081526001602052604090205490565b5f806108655f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156108cb573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906108f0919061183d565b505060145460135460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610945573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109699190611868565b50565b5f546001600160a01b031633146109955760405162461bcd60e51b8152600401610514906117ed565b601454600160a01b900460ff16156109ef5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610514565b6014805462ff00ff60a01b19166201000160a01b179055565b6001600160a01b038316610a6a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610514565b6001600160a01b038216610acb5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610514565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b8f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610514565b6001600160a01b038216610bf15760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610514565b5f8111610c525760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610514565b6014545f90600160a01b900460ff16610cfa575f546001600160a01b0385811691161480610c8857506001600160a01b03841630145b610cfa5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564006064820152608401610514565b5f546001600160a01b03858116911614801590610d2457505f546001600160a01b03848116911614155b156110dd576001600160a01b0384165f9081526004602052604090205460ff16158015610d6957506001600160a01b0383165f9081526004602052604090205460ff16155b610d71575f80fd5b60065460ff1615610e28576013546001600160a01b03848116911614801590610da857506014546001600160a01b03848116911614155b15610e2857325f908152600560205260409020544311610e165760405162461bcd60e51b8152602060048201526024808201527f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f6044820152633bb2b21760e11b6064820152608401610514565b325f9081526005602052604090204390555b6014546001600160a01b038581169116148015610e5357506013546001600160a01b03848116911614155b8015610e7757506001600160a01b0383165f9081526003602052604090205460ff16155b15610f7057600f54821115610eca5760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b6044820152606401610514565b60105482610eec856001600160a01b03165f9081526001602052604090205490565b610ef69190611887565b1115610f445760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610514565b600d54600e541015610f5b57823b15610f5b575f80fd5b600e8054905f610f6a8361189a565b91905055505b610f9c6064610f96600b54600e5411610f8b57600754610f8f565b6009545b8590611416565b9061149b565b6014549091506001600160a01b038481169116148015610fc557506001600160a01b0384163014155b1561104057600f548211156110185760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b6044820152606401610514565b61103d6064610f96600c54600e541161103357600854610f8f565b600a548590611416565b90505b305f90815260016020526040902054601454600160a81b900460ff1615801561107657506014546001600160a01b038581169116145b801561108b5750601454600160b01b900460ff165b8015611098575060115481115b80156110a75750600d54600e54115b156110db576110c96110c4846110bf846012546114dc565b6114dc565b611252565b4780156110d9576110d9476113db565b505b505b801561115557305f908152600160205260409020546110fc90826114f0565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061114c9085815260200190565b60405180910390a35b6001600160a01b0384165f90815260016020526040902054611177908361154e565b6001600160a01b0385165f908152600160205260409020556111ba61119c838361154e565b6001600160a01b0385165f90815260016020526040902054906114f0565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611203858561154e565b60405190815260200160405180910390a350505050565b5f818484111561123d5760405162461bcd60e51b815260040161051491906115bb565b505f61124984866118b2565b95945050505050565b6014805460ff60a81b1916600160a81b17905580156113cb57601454600160a01b900460ff16156113cb576040805160028082526060820183525f9260208301908036833701905050905030815f815181106112b0576112b06118c5565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611307573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061132b9190611822565b8160018151811061133e5761133e6118c5565b6001600160a01b0392831660209182029290920101526013546113649130911684610a08565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac9479061139c9085905f908690309042906004016118d9565b5f604051808303815f87803b1580156113b3575f80fd5b505af11580156113c5573d5f803e3d5ffd5b50505050505b506014805460ff60a81b19169055565b6006546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f193505050501580156104e7573d5f803e3d5ffd5b5f825f0361142557505f610406565b5f61143083856117d6565b90508261143d8583611948565b146114945760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610514565b9392505050565b5f61149483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061158f565b5f8183116114ea5782611494565b50919050565b5f806114fc8385611887565b9050838110156114945760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610514565b5f61149483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061121a565b5f81836115af5760405162461bcd60e51b815260040161051491906115bb565b505f6112498486611948565b5f6020808352835180828501525f5b818110156115e6578581018301518582016040015282016115ca565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610969575f80fd5b5f806040838503121561162b575f80fd5b823561163681611606565b946020939093013593505050565b5f805f60608486031215611656575f80fd5b833561166181611606565b9250602084013561167181611606565b929592945050506040919091013590565b5f60208284031215611692575f80fd5b813561149481611606565b5f80604083850312156116ae575f80fd5b82356116b981611606565b915060208301356116c981611606565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561172257815f1904821115611708576117086116d4565b8085161561171557918102915b93841c93908002906116ed565b509250929050565b5f8261173857506001610406565b8161174457505f610406565b816001811461175a576002811461176457611780565b6001915050610406565b60ff841115611775576117756116d4565b50506001821b610406565b5060208310610133831016604e8410600b84101617156117a3575081810a610406565b6117ad83836116e8565b805f19048211156117c0576117c06116d4565b029392505050565b5f61149460ff84168361172a565b8082028115828204841417610406576104066116d4565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611832575f80fd5b815161149481611606565b5f805f6060848603121561184f575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611878575f80fd5b81518015158114611494575f80fd5b80820180821115610406576104066116d4565b5f600182016118ab576118ab6116d4565b5060010190565b81810381811115610406576104066116d4565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156119275784516001600160a01b031683529383019391830191600101611902565b50506001600160a01b03969096166060850152505050608001529392505050565b5f8261196257634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204aa0e02d30fd2e433026305e8f5fa29bdbc62b5e9a117d7fdedcdbf668386f3964736f6c63430008140033

Deployed Bytecode

0x608060405260043610610129575f3560e01c8063751039fc116100a8578063a9059cbb1161006d578063a9059cbb1461033d578063bc37e1a31461035c578063bf474bed14610370578063c876d0b914610385578063c9567bf91461039e578063dd62ed3e146103b2575f80fd5b8063751039fc146102ae5780637d1db4a5146102c25780638da5cb5b146102d75780638f9a55c0146102fd57806395d89b4114610312575f80fd5b8063313ce567116100ee578063313ce567146101fe5780633bbac5791461021957806351bc3c851461025057806370a0823114610266578063715018a61461029a575f80fd5b806306fdde0314610134578063095ea7b3146101795780630faee56f146101a857806318160ddd146101cb57806323b872dd146101df575f80fd5b3661013057005b5f80fd5b34801561013f575f80fd5b5060408051808201909152600b81526a466c79696e67205065706560a81b60208201525b60405161017091906115bb565b60405180910390f35b348015610184575f80fd5b5061019861019336600461161a565b6103f6565b6040519015158152602001610170565b3480156101b3575f80fd5b506101bd60125481565b604051908152602001610170565b3480156101d6575f80fd5b506101bd61040c565b3480156101ea575f80fd5b506101986101f9366004611644565b61042e565b348015610209575f80fd5b5060405160088152602001610170565b348015610224575f80fd5b50610198610233366004611682565b6001600160a01b03165f9081526004602052604090205460ff1690565b34801561025b575f80fd5b50610264610495565b005b348015610271575f80fd5b506101bd610280366004611682565b6001600160a01b03165f9081526001602052604090205490565b3480156102a5575f80fd5b506102646104eb565b3480156102b9575f80fd5b50610264610565565b3480156102cd575f80fd5b506101bd600f5481565b3480156102e2575f80fd5b505f546040516001600160a01b039091168152602001610170565b348015610308575f80fd5b506101bd60105481565b34801561031d575f80fd5b50604080518082019091526003815262464c5960e81b6020820152610163565b348015610348575f80fd5b5061019861035736600461161a565b610626565b348015610367575f80fd5b50610264610632565b34801561037b575f80fd5b506101bd60115481565b348015610390575f80fd5b506006546101989060ff1681565b3480156103a9575f80fd5b5061026461096c565b3480156103bd575f80fd5b506101bd6103cc36600461169d565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f610402338484610a08565b5060015b92915050565b5f6104196008600a6117c8565b61042990655af3107a40006117d6565b905090565b5f61043a848484610b2b565b61048b843361048685604051806060016040528060288152602001611968602891396001600160a01b038a165f908152600260209081526040808320338452909152902054919061121a565b610a08565b5060019392505050565b60065461010090046001600160a01b0316336001600160a01b0316146104b9575f80fd5b305f9081526001602052604090205480156104d7576104d781611252565b4780156104e7576104e7816113db565b5050565b5f546001600160a01b0316331461051d5760405162461bcd60e51b8152600401610514906117ed565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461058e5760405162461bcd60e51b8152600401610514906117ed565b61059a6008600a6117c8565b6105aa90655af3107a40006117d6565b600f556105b96008600a6117c8565b6105c990655af3107a40006117d6565b6010556006805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6106036008600a6117c8565b61061390655af3107a40006117d6565b60405190815260200160405180910390a1565b5f610402338484610b2b565b5f546001600160a01b0316331461065b5760405162461bcd60e51b8152600401610514906117ed565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556106a69030906106966008600a6117c8565b61048690655af3107a40006117d6565b60135f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106f6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061071a9190611822565b6001600160a01b031663c9c653963060135f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610779573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061079d9190611822565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156107e7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061080b9190611822565b601480546001600160a01b039283166001600160a01b03199091161790556013541663f305d7194730610852816001600160a01b03165f9081526001602052604090205490565b5f806108655f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156108cb573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906108f0919061183d565b505060145460135460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610945573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109699190611868565b50565b5f546001600160a01b031633146109955760405162461bcd60e51b8152600401610514906117ed565b601454600160a01b900460ff16156109ef5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610514565b6014805462ff00ff60a01b19166201000160a01b179055565b6001600160a01b038316610a6a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610514565b6001600160a01b038216610acb5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610514565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b8f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610514565b6001600160a01b038216610bf15760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610514565b5f8111610c525760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610514565b6014545f90600160a01b900460ff16610cfa575f546001600160a01b0385811691161480610c8857506001600160a01b03841630145b610cfa5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564006064820152608401610514565b5f546001600160a01b03858116911614801590610d2457505f546001600160a01b03848116911614155b156110dd576001600160a01b0384165f9081526004602052604090205460ff16158015610d6957506001600160a01b0383165f9081526004602052604090205460ff16155b610d71575f80fd5b60065460ff1615610e28576013546001600160a01b03848116911614801590610da857506014546001600160a01b03848116911614155b15610e2857325f908152600560205260409020544311610e165760405162461bcd60e51b8152602060048201526024808201527f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f6044820152633bb2b21760e11b6064820152608401610514565b325f9081526005602052604090204390555b6014546001600160a01b038581169116148015610e5357506013546001600160a01b03848116911614155b8015610e7757506001600160a01b0383165f9081526003602052604090205460ff16155b15610f7057600f54821115610eca5760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b6044820152606401610514565b60105482610eec856001600160a01b03165f9081526001602052604090205490565b610ef69190611887565b1115610f445760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610514565b600d54600e541015610f5b57823b15610f5b575f80fd5b600e8054905f610f6a8361189a565b91905055505b610f9c6064610f96600b54600e5411610f8b57600754610f8f565b6009545b8590611416565b9061149b565b6014549091506001600160a01b038481169116148015610fc557506001600160a01b0384163014155b1561104057600f548211156110185760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b6044820152606401610514565b61103d6064610f96600c54600e541161103357600854610f8f565b600a548590611416565b90505b305f90815260016020526040902054601454600160a81b900460ff1615801561107657506014546001600160a01b038581169116145b801561108b5750601454600160b01b900460ff165b8015611098575060115481115b80156110a75750600d54600e54115b156110db576110c96110c4846110bf846012546114dc565b6114dc565b611252565b4780156110d9576110d9476113db565b505b505b801561115557305f908152600160205260409020546110fc90826114f0565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061114c9085815260200190565b60405180910390a35b6001600160a01b0384165f90815260016020526040902054611177908361154e565b6001600160a01b0385165f908152600160205260409020556111ba61119c838361154e565b6001600160a01b0385165f90815260016020526040902054906114f0565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611203858561154e565b60405190815260200160405180910390a350505050565b5f818484111561123d5760405162461bcd60e51b815260040161051491906115bb565b505f61124984866118b2565b95945050505050565b6014805460ff60a81b1916600160a81b17905580156113cb57601454600160a01b900460ff16156113cb576040805160028082526060820183525f9260208301908036833701905050905030815f815181106112b0576112b06118c5565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611307573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061132b9190611822565b8160018151811061133e5761133e6118c5565b6001600160a01b0392831660209182029290920101526013546113649130911684610a08565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac9479061139c9085905f908690309042906004016118d9565b5f604051808303815f87803b1580156113b3575f80fd5b505af11580156113c5573d5f803e3d5ffd5b50505050505b506014805460ff60a81b19169055565b6006546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f193505050501580156104e7573d5f803e3d5ffd5b5f825f0361142557505f610406565b5f61143083856117d6565b90508261143d8583611948565b146114945760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610514565b9392505050565b5f61149483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061158f565b5f8183116114ea5782611494565b50919050565b5f806114fc8385611887565b9050838110156114945760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610514565b5f61149483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061121a565b5f81836115af5760405162461bcd60e51b815260040161051491906115bb565b505f6112498486611948565b5f6020808352835180828501525f5b818110156115e6578581018301518582016040015282016115ca565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610969575f80fd5b5f806040838503121561162b575f80fd5b823561163681611606565b946020939093013593505050565b5f805f60608486031215611656575f80fd5b833561166181611606565b9250602084013561167181611606565b929592945050506040919091013590565b5f60208284031215611692575f80fd5b813561149481611606565b5f80604083850312156116ae575f80fd5b82356116b981611606565b915060208301356116c981611606565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561172257815f1904821115611708576117086116d4565b8085161561171557918102915b93841c93908002906116ed565b509250929050565b5f8261173857506001610406565b8161174457505f610406565b816001811461175a576002811461176457611780565b6001915050610406565b60ff841115611775576117756116d4565b50506001821b610406565b5060208310610133831016604e8410600b84101617156117a3575081810a610406565b6117ad83836116e8565b805f19048211156117c0576117c06116d4565b029392505050565b5f61149460ff84168361172a565b8082028115828204841417610406576104066116d4565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611832575f80fd5b815161149481611606565b5f805f6060848603121561184f575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611878575f80fd5b81518015158114611494575f80fd5b80820180821115610406576104066116d4565b5f600182016118ab576118ab6116d4565b5060010190565b81810381811115610406576104066116d4565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156119275784516001600160a01b031683529383019391830191600101611902565b50506001600160a01b03969096166060850152505050608001529392505050565b5f8261196257634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204aa0e02d30fd2e433026305e8f5fa29bdbc62b5e9a117d7fdedcdbf668386f3964736f6c63430008140033

Deployed Bytecode Sourcemap

3999:8699:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5957:83;;;;;;;;;;-1:-1:-1;6027:5:0;;;;;;;;;;;;-1:-1:-1;;;6027:5:0;;;;5957:83;;;;;;;:::i;:::-;;;;;;;;6790:161;;;;;;;;;;-1:-1:-1;6790:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6790:161:0;1023:187:1;5220:56:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;5220:56:0;1215:177:1;6234:95:0;;;;;;;;;;;;;:::i;6959:313::-;;;;;;;;;;-1:-1:-1;6959:313:0;;;;;:::i;:::-;;:::i;6143:83::-;;;;;;;;;;-1:-1:-1;6143:83:0;;4835:1;2000:36:1;;1988:2;1973:18;6143:83:0;1858:184:1;11265:83:0;;;;;;;;;;-1:-1:-1;11265:83:0;;;;;:::i;:::-;-1:-1:-1;;;;;11333:7:0;11312:4;11333:7;;;:4;:7;;;;;;;;;11265:83;12327:348;;;;;;;;;;;;;:::i;:::-;;6337:119;;;;;;;;;;-1:-1:-1;6337:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6430:18:0;6403:7;6430:18;;;:9;:18;;;;;;;6337:119;3080:148;;;;;;;;;;;;;:::i;10961:196::-;;;;;;;;;;;;;:::i;5014:59::-;;;;;;;;;;;;;;;;2866:79;;;;;;;;;;-1:-1:-1;2904:7:0;2931:6;2866:79;;-1:-1:-1;;;;;2931:6:0;;;2445:51:1;;2433:2;2418:18;2866:79:0;2299:203:1;5081:61:0;;;;;;;;;;;;;;;;6048:87;;;;;;;;;;-1:-1:-1;6120:7:0;;;;;;;;;;;;-1:-1:-1;;;6120:7:0;;;;6048:87;;6464:167;;;;;;;;;;-1:-1:-1;6464:167:0;;;;;:::i;:::-;;:::i;11530:549::-;;;;;;;;;;;;;:::i;5150:62::-;;;;;;;;;;;;;;;;4391:40;;;;;;;;;;-1:-1:-1;4391:40:0;;;;;;;;11356:168;;;;;;;;;;;;;:::i;6639:143::-;;;;;;;;;;-1:-1:-1;6639:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6747:18:0;;;6720:7;6747:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6639:143;6790:161;6865:4;6882:39;701:10;6905:7;6914:6;6882:8;:39::i;:::-;-1:-1:-1;6939:4:0;6790:161;;;;;:::o;6234:95::-;6287:7;4896:13;4835:1;4896:2;:13;:::i;:::-;4878:31;;:15;:31;:::i;:::-;6307:14;;6234:95;:::o;6959:313::-;7057:4;7074:36;7084:6;7092:9;7103:6;7074:9;:36::i;:::-;7121:121;7130:6;701:10;7152:89;7190:6;7152:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7152:19:0;;;;;;:11;:19;;;;;;;;701:10;7152:33;;;;;;;;;;:37;:89::i;:::-;7121:8;:121::i;:::-;-1:-1:-1;7260:4:0;6959:313;;;;;:::o;12327:348::-;12391:10;;;;;-1:-1:-1;;;;;12391:10:0;701;-1:-1:-1;;;;;12377:24:0;;12369:33;;;;;;12452:4;12413:20;6430:18;;;:9;:18;;;;;;12472:14;;12469:73;;12500:30;12517:12;12500:16;:30::i;:::-;12571:21;12606:12;;12603:65;;12632:24;12645:10;12632:12;:24::i;:::-;12358:317;;12327:348::o;3080:148::-;2993:6;;-1:-1:-1;;;;;2993:6:0;701:10;2993:22;2985:67;;;;-1:-1:-1;;;2985:67:0;;;;;;;:::i;:::-;;;;;;;;;3187:1:::1;3171:6:::0;;3150:40:::1;::::0;-1:-1:-1;;;;;3171:6:0;;::::1;::::0;3150:40:::1;::::0;3187:1;;3150:40:::1;3218:1;3201:19:::0;;-1:-1:-1;;;;;;3201:19:0::1;::::0;;3080:148::o;10961:196::-;2993:6;;-1:-1:-1;;;;;2993:6:0;701:10;2993:22;2985:67;;;;-1:-1:-1;;;2985:67:0;;;;;;;:::i;:::-;4896:13:::1;4835:1;4896:2;:13;:::i;:::-;4878:31;::::0;:15:::1;:31;:::i;:::-;11014:12;:22:::0;4896:13:::1;4835:1;4896:2;:13;:::i;:::-;4878:31;::::0;:15:::1;:31;:::i;:::-;11047:14;:22:::0;11080:20:::1;:26:::0;;-1:-1:-1;;11080:26:0::1;::::0;;11122:27:::1;4896:13;4835:1;-1:-1:-1::0;4896:13:0::1;:::i;:::-;4878:31;::::0;:15:::1;:31;:::i;:::-;11122:27;::::0;1361:25:1;;;1349:2;1334:18;11122:27:0::1;;;;;;;10961:196::o:0;6464:167::-;6542:4;6559:42;701:10;6583:9;6594:6;6559:9;:42::i;11530:549::-;2993:6;;-1:-1:-1;;;;;2993:6:0;701:10;2993:22;2985:67;;;;-1:-1:-1;;;2985:67:0;;;;;;;:::i;:::-;11579:15:::1;:80:::0;;-1:-1:-1;;;;;;11579:80:0::1;11616:42;11579:80:::0;;::::1;::::0;;;11670:58:::1;::::0;11687:4:::1;::::0;4896:13:::1;4835:1;4896:2;:13;:::i;:::-;4878:31;::::0;:15:::1;:31;:::i;11670:58::-;11773:15;;;;;;;;;-1:-1:-1::0;;;;;11773:15:0::1;-1:-1:-1::0;;;;;11773:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11755:55:0::1;;11819:4;11826:15;;;;;;;;;-1:-1:-1::0;;;;;11826:15:0::1;-1:-1:-1::0;;;;;11826:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11755:94;::::0;-1:-1:-1;;;;;;11755:94:0::1;::::0;;;;;;-1:-1:-1;;;;;5435:15:1;;;11755:94:0::1;::::0;::::1;5417:34:1::0;5487:15;;5467:18;;;5460:43;5352:18;;11755:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11739:13;:110:::0;;-1:-1:-1;;;;;11739:110:0;;::::1;-1:-1:-1::0;;;;;;11739:110:0;;::::1;;::::0;;11860:15:::1;::::0;::::1;:31;11899:21;11930:4;11936:24;11930:4:::0;-1:-1:-1;;;;;6430:18:0;6403:7;6430:18;;;:9;:18;;;;;;;6337:119;11936:24:::1;11961:1;11963::::0;11965:7:::1;2904::::0;2931:6;-1:-1:-1;;;;;2931:6:0;;2866:79;11965:7:::1;11860:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;11860:129:0;;;-1:-1:-1;;;;;5873:15:1;;;11860:129:0::1;::::0;::::1;5855:34:1::0;5905:18;;;5898:34;;;;5948:18;;;5941:34;;;;5991:18;;;5984:34;6055:15;;;6034:19;;;6027:44;11973:15:0::1;6087:19:1::0;;;6080:35;5789:19;;11860:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;12007:13:0::1;::::0;12038:15:::1;::::0;12000:71:::1;::::0;-1:-1:-1;;;12000:71:0;;-1:-1:-1;;;;;12038:15:0;;::::1;12000:71;::::0;::::1;6611:51:1::0;-1:-1:-1;;6678:18:1;;;6671:34;12007:13:0;::::1;::::0;-1:-1:-1;12000:29:0::1;::::0;6584:18:1;;12000:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11530:549::o:0;11356:168::-;2993:6;;-1:-1:-1;;;;;2993:6:0;701:10;2993:22;2985:67;;;;-1:-1:-1;;;2985:67:0;;;;;;;:::i;:::-;11420:11:::1;::::0;-1:-1:-1;;;11420:11:0;::::1;;;11419:12;11411:47;;;::::0;-1:-1:-1;;;11411:47:0;;7200:2:1;11411:47:0::1;::::0;::::1;7182:21:1::0;7239:2;7219:18;;;7212:30;7278:25;7258:18;;;7251:53;7321:18;;11411:47:0::1;6998:347:1::0;11411:47:0::1;11469:11;:18:::0;;-1:-1:-1;;;;11498:18:0;-1:-1:-1;;;11498:18:0;;;11356:168::o;7280:335::-;-1:-1:-1;;;;;7373:19:0;;7365:68;;;;-1:-1:-1;;;7365:68:0;;7552:2:1;7365: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;;7365:68:0;7350:400:1;7365:68:0;-1:-1:-1;;;;;7452:21:0;;7444:68;;;;-1:-1:-1;;;7444:68:0;;7957:2:1;7444: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;;7444:68:0;7755:398:1;7444:68:0;-1:-1:-1;;;;;7523:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7575:32;;1361:25:1;;;7575:32:0;;1334:18:1;7575:32:0;;;;;;;7280:335;;;:::o;7623:2659::-;-1:-1:-1;;;;;7711:18:0;;7703:68;;;;-1:-1:-1;;;7703:68:0;;8360:2:1;7703: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;;7703:68:0;8158:401:1;7703:68:0;-1:-1:-1;;;;;7790:16:0;;7782:64;;;;-1:-1:-1;;;7782:64:0;;8766:2:1;7782: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;;7782:64:0;8564:399:1;7782:64:0;7874:1;7865:6;:10;7857:64;;;;-1:-1:-1;;;7857:64:0;;9170:2:1;7857: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;;7857:64:0;8968:405:1;7857:64:0;7967:11;;7932:17;;-1:-1:-1;;;7967:11:0;;;;7962:169;;2904:7;2931:6;-1:-1:-1;;;;;8007:15:0;;;2931:6;;8007:15;;:40;;-1:-1:-1;;;;;;8026:21:0;;8042:4;8026:21;8007:40;7999:116;;;;-1:-1:-1;;;7999:116:0;;9580:2:1;7999:116:0;;;9562:21:1;9619:2;9599:18;;;9592:30;9658:34;9638:18;;;9631:62;9729:33;9709:18;;;9702:61;9780:19;;7999:116:0;9378:427:1;7999:116:0;2904:7;2931:6;-1:-1:-1;;;;;8147:15:0;;;2931:6;;8147:15;;;;:32;;-1:-1:-1;2904:7:0;2931:6;-1:-1:-1;;;;;8166:13:0;;;2931:6;;8166:13;;8147:32;8143:1783;;;-1:-1:-1;;;;;8205:10:0;;;;;;:4;:10;;;;;;;;8204:11;:24;;;;-1:-1:-1;;;;;;8220:8:0;;;;;;:4;:8;;;;;;;;8219:9;8204:24;8196:33;;;;;;8250:20;;;;8246:346;;;8309:15;;-1:-1:-1;;;;;8295:30:0;;;8309:15;;8295:30;;;;:62;;-1:-1:-1;8343:13:0;;-1:-1:-1;;;;;8329:28:0;;;8343:13;;8329:28;;8295:62;8291:286;;;8417:9;8388:39;;;;:28;:39;;;;;;8430:12;-1:-1:-1;8380:102:0;;;;-1:-1:-1;;;8380:102:0;;10012:2:1;8380:102:0;;;9994:21:1;10051:2;10031:18;;;10024:30;10090:34;10070:18;;;10063:62;-1:-1:-1;;;10141:18:1;;;10134:34;10185:19;;8380:102:0;9810:400:1;8380:102:0;8532:9;8503:39;;;;:28;:39;;;;;8545:12;8503:54;;8291:286;8620:13;;-1:-1:-1;;;;;8612:21:0;;;8620:13;;8612:21;:55;;;;-1:-1:-1;8651:15:0;;-1:-1:-1;;;;;8637:30:0;;;8651:15;;8637:30;;8612:55;:83;;;;-1:-1:-1;;;;;;8673:22:0;;;;;;:18;:22;;;;;;;;8671:24;8612:83;8608:428;;;8735:12;;8725:6;:22;;8717:60;;;;-1:-1:-1;;;8717:60:0;;10417:2:1;8717:60:0;;;10399:21:1;10456:2;10436:18;;;10429:30;-1:-1:-1;;;10475:18:1;;;10468:55;10540:18;;8717:60:0;10215:349:1;8717:60:0;8830:14;;8820:6;8804:13;8814:2;-1:-1:-1;;;;;6430:18:0;6403:7;6430:18;;;:9;:18;;;;;;;6337:119;8804:13;:22;;;;:::i;:::-;:40;;8796:79;;;;-1:-1:-1;;;8796:79:0;;10901:2:1;8796:79:0;;;10883:21:1;10940:2;10920:18;;;10913:30;10979:28;10959:18;;;10952:56;11025:18;;8796:79:0;10699:350:1;8796:79:0;8907:18;;8897:9;;:28;8894:97;;;12255:20;;12303:8;8947:24;;;;;;9009:9;:11;;;:9;:11;;;:::i;:::-;;;;;;8608:428;9066:76;9138:3;9066:67;9088:15;;9078:9;;:25;9077:55;;9118:14;;9077:55;;;9105:12;;9077:55;9066:6;;:10;:67::i;:::-;:71;;:76::i;:::-;9166:13;;9054:88;;-1:-1:-1;;;;;;9160:19:0;;;9166:13;;9160:19;:43;;;;-1:-1:-1;;;;;;9183:20:0;;9198:4;9183:20;;9160:43;9157:253;;;9242:12;;9232:6;:22;;9224:60;;;;-1:-1:-1;;;9224:60:0;;10417:2:1;9224:60:0;;;10399:21:1;10456:2;10436:18;;;10429:30;-1:-1:-1;;;10475:18:1;;;10468:55;10540:18;;9224:60:0;10215:349:1;9224:60:0;9315:79;9390:3;9315:70;9337:16;;9327:9;;:26;9326:58;;9369:15;;9326:58;;;9355:13;;9315:6;;:10;:70::i;:79::-;9303:91;;9157:253;9475:4;9426:28;6430:18;;;:9;:18;;;;;;9501:6;;-1:-1:-1;;;9501:6:0;;;;9500:7;:30;;;;-1:-1:-1;9517:13:0;;-1:-1:-1;;;;;9511:19:0;;;9517:13;;9511:19;9500:30;:45;;;;-1:-1:-1;9534:11:0;;-1:-1:-1;;;9534:11:0;;;;9500:45;:87;;;;;9570:17;;9549:20;:38;9500:87;:119;;;;;9601:18;;9591:9;;:28;9500:119;9496:419;;;9640:67;9657:49;9661:6;9668:37;9672:20;9693:11;;9668:3;:37::i;:::-;9657:3;:49::i;:::-;9640:16;:67::i;:::-;9755:21;9798:22;;9795:105;;9845:35;9858:21;9845:12;:35::i;:::-;9621:294;9496:419;8181:1745;8143:1783;9941:11;;9938:161;;10009:4;9991:24;;;;:9;:24;;;;;;:39;;10020:9;9991:28;:39::i;:::-;9984:4;9966:24;;;;:9;:24;;;;;;;:64;;;;10048:39;;-1:-1:-1;;;;;10048:39:0;;;;;;;10077:9;1361:25:1;;1349:2;1334:18;;1215:177;10048:39:0;;;;;;;;9938:161;-1:-1:-1;;;;;10125:15:0;;;;;;:9;:15;;;;;;:27;;10145:6;10125:19;:27::i;:::-;-1:-1:-1;;;;;10109:15:0;;;;;;:9;:15;;;;;:43;10177:40;10195:21;:6;10206:9;10195:10;:21::i;:::-;-1:-1:-1;;;;;10177:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;10163:13:0;;;;;;;:9;:13;;;;;:54;;;;10233:41;;;10252:21;:6;10263:9;10252:10;:21::i;:::-;10233:41;;1361:25:1;;;1349:2;1334:18;10233:41:0;;;;;;;7692:2590;7623:2659;;;:::o;1758:190::-;1844:7;1880:12;1872:6;;;;1864:29;;;;-1:-1:-1;;;1864:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1904:9:0;1916:5;1920:1;1916;:5;:::i;:::-;1904:17;1758:190;-1:-1:-1;;;;;1758:190:0:o;10398:555::-;5566:6;:13;;-1:-1:-1;;;;5566:13:0;-1:-1:-1;;;5566:13:0;;;10476:27;;10495:7:::1;10476:27;10517:11;::::0;-1:-1:-1;;;10517:11:0;::::1;;;10513:25:::0;10530:7:::1;10513:25;10572:16;::::0;;10586:1:::1;10572:16:::0;;;;;::::1;::::0;;10548:21:::1;::::0;10572:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10572:16:0::1;10548:40;;10617:4;10599;10604:1;10599:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10599:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10643:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;10643:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;10599:7;;10643:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10633:4;10638:1;10633:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10633:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;10708:15:::1;::::0;10676:62:::1;::::0;10693:4:::1;::::0;10708:15:::1;10726:11:::0;10676:8:::1;:62::i;:::-;10749:15;::::0;:196:::1;::::0;-1:-1:-1;;;10749:196:0;;-1:-1:-1;;;;;10749:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;10830:11;;10749:15:::1;::::0;10872:4;;10899::::1;::::0;10919:15:::1;::::0;10749:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10465:488;5590:1;-1:-1:-1::0;5602:6:0;:14;;-1:-1:-1;;;;5602:14:0;;;10398:555::o;11165:92::-;11222:10;;:27;;:10;;;;-1:-1:-1;;;;;11222:10:0;;:27;;;;;;;;;;;;:10;:27;;;;;;;;;;;;;;;;;;;1956:246;2014:7;2038:1;2043;2038:6;2034:47;;-1:-1:-1;2068:1:0;2061:8;;2034:47;2091:9;2103:5;2107:1;2103;:5;:::i;:::-;2091:17;-1:-1:-1;2136:1:0;2127:5;2131:1;2091:17;2127:5;:::i;:::-;:10;2119:56;;;;-1:-1:-1;;;2119:56:0;;13000:2:1;2119:56:0;;;12982:21:1;13039:2;13019:18;;;13012:30;13078:34;13058:18;;;13051:62;-1:-1:-1;;;13129:18:1;;;13122:31;13170:19;;2119:56:0;12798:397:1;2119:56:0;2193:1;1956:246;-1:-1:-1;;;1956:246:0:o;2210:132::-;2268:7;2295:39;2299:1;2302;2295:39;;;;;;;;;;;;;;;;;:3;:39::i;10292:98::-;10349:7;10376:1;10374;:3;10373:9;;10381:1;10373:9;;;-1:-1:-1;10379:1:0;10292:98;-1:-1:-1;10292:98:0:o;1427:179::-;1485:7;;1517:5;1521:1;1517;:5;:::i;:::-;1505:17;;1546:1;1541;:6;;1533:46;;;;-1:-1:-1;;;1533:46:0;;13402:2:1;1533:46:0;;;13384:21:1;13441:2;13421:18;;;13414:30;13480:29;13460:18;;;13453:57;13527:18;;1533:46:0;13200:351:1;1614:136:0;1672:7;1699:43;1703:1;1706;1699:43;;;;;;;;;;;;;;;;;:3;:43::i;2350:189::-;2436:7;2471:12;2464:5;2456:28;;;;-1:-1:-1;;;2456:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2495:9:0;2507:5;2511:1;2507;: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;4949:251::-;5019:6;5072:2;5060:9;5051:7;5047:23;5043:32;5040:52;;;5088:1;5085;5078:12;5040:52;5120:9;5114:16;5139:31;5164:5;5139:31;:::i;6126:306::-;6214:6;6222;6230;6283:2;6271:9;6262:7;6258:23;6254:32;6251:52;;;6299:1;6296;6289:12;6251:52;6328:9;6322:16;6312:26;;6378:2;6367:9;6363:18;6357:25;6347:35;;6422:2;6411:9;6407:18;6401:25;6391:35;;6126:306;;;;;:::o;6716:277::-;6783:6;6836:2;6824:9;6815:7;6811:23;6807:32;6804:52;;;6852:1;6849;6842:12;6804:52;6884:9;6878:16;6937:5;6930:13;6923:21;6916:5;6913:32;6903:60;;6959:1;6956;6949:12;10569:125;10634:9;;;10655:10;;;10652:36;;;10668:18;;:::i;11054:135::-;11093:3;11114:17;;;11111:43;;11134:18;;:::i;:::-;-1:-1:-1;11181:1:1;11170:13;;11054:135::o;11194:128::-;11261:9;;;11282:11;;;11279:37;;;11296:18;;:::i;11459:127::-;11520:10;11515:3;11511:20;11508:1;11501:31;11551:4;11548:1;11541:15;11575:4;11572:1;11565:15;11591:980;11853:4;11901:3;11890:9;11886:19;11932:6;11921:9;11914:25;11958:2;11996:6;11991:2;11980:9;11976:18;11969:34;12039:3;12034:2;12023:9;12019:18;12012:31;12063:6;12098;12092:13;12129:6;12121;12114:22;12167:3;12156:9;12152:19;12145:26;;12206:2;12198:6;12194:15;12180:29;;12227:1;12237:195;12251:6;12248:1;12245:13;12237:195;;;12316:13;;-1:-1:-1;;;;;12312:39:1;12300:52;;12407:15;;;;12372:12;;;;12348:1;12266:9;12237:195;;;-1:-1:-1;;;;;;;12488:32:1;;;;12483:2;12468:18;;12461:60;-1:-1:-1;;;12552:3:1;12537:19;12530:35;12449:3;11591:980;-1:-1:-1;;;11591:980:1:o;12576:217::-;12616:1;12642;12632:132;;12686:10;12681:3;12677:20;12674:1;12667:31;12721:4;12718:1;12711:15;12749:4;12746:1;12739:15;12632:132;-1:-1:-1;12778:9:1;;12576:217::o

Swarm Source

ipfs://4aa0e02d30fd2e433026305e8f5fa29bdbc62b5e9a117d7fdedcdbf668386f39

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.