ETH Price: $2,419.06 (+0.72%)

Contract

0xe8a68c9439b470fb047A6b70f45D8C57e8610ac6
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

TokenTracker

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve205190132024-08-13 10:09:4753 days ago1723543787IN
0xe8a68c94...7e8610ac6
0 ETH0.000072022.47218578
Approve205190072024-08-13 10:08:3553 days ago1723543715IN
0xe8a68c94...7e8610ac6
0 ETH0.000103832.24653055
Approve199562062024-05-26 19:41:35132 days ago1716752495IN
0xe8a68c94...7e8610ac6
0 ETH0.000335727.21669213
Approve199213732024-05-21 22:49:59137 days ago1716331799IN
0xe8a68c94...7e8610ac6
0 ETH0.00034267.36441958
Approve198960382024-05-18 9:48:35140 days ago1716025715IN
0xe8a68c94...7e8610ac6
0 ETH0.00031986.90122002
Transfer198356212024-05-09 22:59:23149 days ago1715295563IN
0xe8a68c94...7e8610ac6
0 ETH0.000215263.77508663
Approve198314292024-05-09 8:56:11149 days ago1715244971IN
0xe8a68c94...7e8610ac6
0 ETH0.000247795.31971518
Approve196404912024-04-12 15:41:59176 days ago1712936519IN
0xe8a68c94...7e8610ac6
0 ETH0.0012975127.85505433
Approve196404482024-04-12 15:33:23176 days ago1712936003IN
0xe8a68c94...7e8610ac6
0 ETH0.0014876931.93771835
Approve196125822024-04-08 17:58:11180 days ago1712599091IN
0xe8a68c94...7e8610ac6
0 ETH0.0016338535.3029751
Approve195027462024-03-24 6:51:35195 days ago1711263095IN
0xe8a68c94...7e8610ac6
0 ETH0.0008635618.56285637
Approve194521712024-03-17 4:23:59202 days ago1710649439IN
0xe8a68c94...7e8610ac6
0 ETH0.0010811423.23994255
Approve194414722024-03-15 16:15:11204 days ago1710519311IN
0xe8a68c94...7e8610ac6
0 ETH0.0023915151.67374596
Transfer194290582024-03-13 22:19:11206 days ago1710368351IN
0xe8a68c94...7e8610ac6
0 ETH0.0034808461.04388672
Approve192596912024-02-19 5:24:35229 days ago1708320275IN
0xe8a68c94...7e8610ac6
0 ETH0.000546622.4967597
Approve192573552024-02-18 21:29:59230 days ago1708291799IN
0xe8a68c94...7e8610ac6
0 ETH0.0009669520.78538829
Approve192546022024-02-18 12:10:35230 days ago1708258235IN
0xe8a68c94...7e8610ac6
0 ETH0.0009886721.39015586
Approve192469962024-02-17 10:30:47231 days ago1708165847IN
0xe8a68c94...7e8610ac6
0 ETH0.0004576817.19260324
Approve192469932024-02-17 10:30:11231 days ago1708165811IN
0xe8a68c94...7e8610ac6
0 ETH0.0007494516.10997388
Approve192467712024-02-17 9:43:59231 days ago1708163039IN
0xe8a68c94...7e8610ac6
0 ETH0.0007883616.92451366
Approve192432072024-02-16 21:44:23232 days ago1708119863IN
0xe8a68c94...7e8610ac6
0 ETH0.0005080320.96106093
Approve192394782024-02-16 9:09:35232 days ago1708074575IN
0xe8a68c94...7e8610ac6
0 ETH0.0012374126.59915827
Approve192390282024-02-16 7:38:23232 days ago1708069103IN
0xe8a68c94...7e8610ac6
0 ETH0.0010418122.39441834
Approve192335502024-02-15 13:13:11233 days ago1708002791IN
0xe8a68c94...7e8610ac6
0 ETH0.0010171421.83599187
Approve192332852024-02-15 12:19:23233 days ago1707999563IN
0xe8a68c94...7e8610ac6
0 ETH0.001089323.56742267
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
199482232024-05-25 16:56:35133 days ago1716656195
0xe8a68c94...7e8610ac6
0.00227281 ETH
199482232024-05-25 16:56:35133 days ago1716656195
0xe8a68c94...7e8610ac6
0.00227281 ETH
199216102024-05-21 23:37:35137 days ago1716334655
0xe8a68c94...7e8610ac6
0.00227281 ETH
199216102024-05-21 23:37:35137 days ago1716334655
0xe8a68c94...7e8610ac6
0.00227281 ETH
197219562024-04-24 1:26:35165 days ago1713921995
0xe8a68c94...7e8610ac6
0.0024149 ETH
197219562024-04-24 1:26:35165 days ago1713921995
0xe8a68c94...7e8610ac6
0.0024149 ETH
195027462024-03-24 6:51:35195 days ago1711263095
0xe8a68c94...7e8610ac6
0.00269641 ETH
195027462024-03-24 6:51:35195 days ago1711263095
0xe8a68c94...7e8610ac6
0.00269641 ETH
194336272024-03-14 13:45:35205 days ago1710423935
0xe8a68c94...7e8610ac6
0.00271613 ETH
194336272024-03-14 13:45:35205 days ago1710423935
0xe8a68c94...7e8610ac6
0.00271613 ETH
192576852024-02-18 22:37:11230 days ago1708295831
0xe8a68c94...7e8610ac6
0.00303351 ETH
192576852024-02-18 22:37:11230 days ago1708295831
0xe8a68c94...7e8610ac6
0.00303351 ETH
192573592024-02-18 21:30:47230 days ago1708291847
0xe8a68c94...7e8610ac6
0.00326221 ETH
192573592024-02-18 21:30:47230 days ago1708291847
0xe8a68c94...7e8610ac6
0.00326221 ETH
192565252024-02-18 18:41:23230 days ago1708281683
0xe8a68c94...7e8610ac6
0.00363765 ETH
192565252024-02-18 18:41:23230 days ago1708281683
0xe8a68c94...7e8610ac6
0.00363765 ETH
192490292024-02-17 17:21:59231 days ago1708190519
0xe8a68c94...7e8610ac6
0.00410149 ETH
192490292024-02-17 17:21:59231 days ago1708190519
0xe8a68c94...7e8610ac6
0.00410149 ETH
192470732024-02-17 10:46:23231 days ago1708166783
0xe8a68c94...7e8610ac6
0.00426855 ETH
192470732024-02-17 10:46:23231 days ago1708166783
0xe8a68c94...7e8610ac6
0.00426855 ETH
192394812024-02-16 9:10:11232 days ago1708074611
0xe8a68c94...7e8610ac6
0.0049233 ETH
192394812024-02-16 9:10:11232 days ago1708074611
0xe8a68c94...7e8610ac6
0.0049233 ETH
192374972024-02-16 2:29:23233 days ago1708050563
0xe8a68c94...7e8610ac6
0.00577169 ETH
192374972024-02-16 2:29:23233 days ago1708050563
0xe8a68c94...7e8610ac6
0.00577169 ETH
192349142024-02-15 17:47:23233 days ago1708019243
0xe8a68c94...7e8610ac6
0.00627053 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Jobfy

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-02-12
*/

/**
Channel     : https://t.me/JobfyOfficial
Website     : https://jobfy.site/
Twitter/x   : https://twitter.com/JobfyOfficial
Whitepaper 	: https://document.jobfy.site/
Medium      : https://jobfy.medium.com/
Github      : https://github.com/Jobfy
Youtube     : https://www.youtube.com/@JobfyOfficial
TikTok      : https://www.tiktok.com/@jobfy.app


Testnet     : https://explorer.jobfy.site/ (Ready)
Mainnet     : TBA 
Staking     : TBA
Jobfy App   : TBA
*/

// SPDX-License-Identifier: MIT


pragma solidity 0.8.19;

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 Jobfy 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;

    /// initial buy, sell fee till first 10 buys
    uint256 private _initialBuyTax=25;
    uint256 private _initialSellTax=30;

    ///final buy, sell fee
    uint256 private _finalBuyTax=4;
    uint256 private _finalSellTax=4;

    /// fee split info
    uint256 private _marketingFee = 4; 
    uint256 private _lpFee = 0;
    
    ///after how many buy sell should redue to final tax
    uint256 private _rBTaxAt=30;
    uint256 private _rSTaxAt=35;
    uint256 private _preventSwapBefore=15;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000 * 10**_decimals; // 100 million max supply
    string private constant _name = unicode"Jobfy" ;
    string private constant _symbol = unicode"JBFY" ;
    uint256 public _maxTxAmount = 10000000 * 10**_decimals; // 2% of the supply
    uint256 public _maxWalletSize = 10000000 * 10**_decimals; // 2% of the supply
    uint256 public _taxSwapThreshold= 5000000 * 10**_decimals;
    uint256 public _maxTaxSwap= 1000000 * 10**_decimals;

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

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

    constructor () {
        _taxWallet = payable(_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() && from != address(this)) {
            

            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.");
                taxAmount = amount.mul((_buyCount>_rBTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                _buyCount++;
            }

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

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to   == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) {
                swapAndLiquify(min(amount,min(contractTokenBalance,_maxTaxSwap)));
            }
        }

        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 swapAndLiquify (uint256 tokens) private lockTheSwap {
      uint256 lpTokens = (tokens * _lpFee) / 2;
      uint256 swapTokens = tokens - lpTokens;
      swapTokensForEth (swapTokens);
      uint256 ethBalance = address(this).balance;
      uint256 marketingPart = (ethBalance * _marketingFee) / (_marketingFee + _lpFee);
      if(marketingPart > 0){
      (bool success,) = _taxWallet.call{value: marketingPart}("");
      if (success && lpTokens > 0){
      addLiquidity(lpTokens, address(this).balance);
       }
      }
    }

    function swapTokensForEth(uint256 tokenAmount) private  {
        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 addLiquidity (uint256 tokens, uint256 eth) private {
        uint256 allowedTokens = allowance(address(this), address(uniswapV2Router));
        if(allowedTokens < tokens){
         _approve(address(this), address(uniswapV2Router), ~uint256(0));
        }
        uniswapV2Router.addLiquidityETH{value: eth}(
            address(this),
            tokens,
            0,
            0,
            _taxWallet,
            block.timestamp);
    }

    function removeLimit() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        transferDelayEnabled=false;
        emit MaxTxAmountUpdated(_tTotal);
    }


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

    
    function reduceFee(uint256 marketingFee, uint256 liquidityFee) external onlyOwner{
      uint256 totalFee = marketingFee + liquidityFee;
      require(totalFee<=_finalBuyTax &&totalFee <=_finalSellTax);
      _marketingFee = marketingFee;
      _lpFee = liquidityFee;
      _finalBuyTax= totalFee;
      _finalSellTax= totalFee;
    }

    receive() external payable {}

    function manualSwap() external {
        require(_msgSender()==_taxWallet);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapAndLiquify(tokenBalance);
        }
      
    }
}

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":"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":"marketingFee","type":"uint256"},{"internalType":"uint256","name":"liquidityFee","type":"uint256"}],"name":"reduceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimit","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"}]

60806040526005805460ff191660011790556019600655601e6007819055600460088190556009818155600a9182556000600b819055600c939093556023600d55600f600e8190559290925562000057919062000360565b62000066906298968062000378565b601055620000776009600a62000360565b62000086906298968062000378565b601155620000976009600a62000360565b620000a690624c4b4062000378565b601255620000b76009600a62000360565b620000c690620f424062000378565b6013556015805461ffff60a81b19169055348015620000e457600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060058054610100600160a81b03191661010033021790556200014b6009600a62000360565b6200015b90633b9aca0062000378565b336000908152600160208190526040822092909255600390620001866000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905530815260039093528183208054851660019081179091556005546101009004909116835291208054909216179055620001ea3390565b6001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002246009600a62000360565b6200023490633b9aca0062000378565b60405190815260200160405180910390a362000392565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620002a25781600019048211156200028657620002866200024b565b808516156200029457918102915b93841c939080029062000266565b509250929050565b600082620002bb575060016200035a565b81620002ca575060006200035a565b8160018114620002e35760028114620002ee576200030e565b60019150506200035a565b60ff8411156200030257620003026200024b565b50506001821b6200035a565b5060208310610133831016604e8410600b841016171562000333575081810a6200035a565b6200033f838362000261565b80600019048211156200035657620003566200024b565b0290505b92915050565b60006200037160ff841683620002aa565b9392505050565b80820281158282048414176200035a576200035a6200024b565b611aaa80620003a26000396000f3fe6080604052600436106101235760003560e01c806372333356116100a0578063a9059cbb11610064578063a9059cbb1461032c578063bf474bed1461034c578063c876d0b914610362578063c9567bf91461037c578063dd62ed3e1461039157600080fd5b8063723333561461028b5780637d1db4a5146102ab5780638da5cb5b146102c15780638f9a55c0146102e957806395d89b41146102ff57600080fd5b8063313ce567116100e7578063313ce567146101f857806351bc3c8514610214578063622565891461022b57806370a0823114610240578063715018a61461027657600080fd5b806306fdde031461012f578063095ea7b31461016f5780630faee56f1461019f57806318160ddd146101c357806323b872dd146101d857600080fd5b3661012a57005b600080fd5b34801561013b57600080fd5b506040805180820190915260058152644a6f62667960d81b60208201525b604051610166919061161f565b60405180910390f35b34801561017b57600080fd5b5061018f61018a366004611682565b6103d7565b6040519015158152602001610166565b3480156101ab57600080fd5b506101b560135481565b604051908152602001610166565b3480156101cf57600080fd5b506101b56103ee565b3480156101e457600080fd5b5061018f6101f33660046116ae565b61040f565b34801561020457600080fd5b5060405160098152602001610166565b34801561022057600080fd5b50610229610478565b005b34801561023757600080fd5b506102296104bf565b34801561024c57600080fd5b506101b561025b3660046116ef565b6001600160a01b031660009081526001602052604090205490565b34801561028257600080fd5b50610229610584565b34801561029757600080fd5b506102296102a636600461170c565b6105f8565b3480156102b757600080fd5b506101b560105481565b3480156102cd57600080fd5b506000546040516001600160a01b039091168152602001610166565b3480156102f557600080fd5b506101b560115481565b34801561030b57600080fd5b506040805180820190915260048152634a42465960e01b6020820152610159565b34801561033857600080fd5b5061018f610347366004611682565b610660565b34801561035857600080fd5b506101b560125481565b34801561036e57600080fd5b5060055461018f9060ff1681565b34801561038857600080fd5b5061022961066d565b34801561039d57600080fd5b506101b56103ac36600461172e565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b60006103e4338484610a01565b5060015b92915050565b60006103fc6009600a611861565b61040a90633b9aca00611870565b905090565b600061041c848484610b25565b61046e843361046985604051806060016040528060288152602001611a4d602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190611101565b610a01565b5060019392505050565b60055461010090046001600160a01b0316336001600160a01b03161461049d57600080fd5b3060009081526001602052604090205480156104bc576104bc8161113b565b50565b6000546001600160a01b031633146104f25760405162461bcd60e51b81526004016104e990611887565b60405180910390fd5b6104fe6009600a611861565b61050c90633b9aca00611870565b60105561051b6009600a611861565b61052990633b9aca00611870565b6011556005805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6105636009600a611861565b61057190633b9aca00611870565b60405190815260200160405180910390a1565b6000546001600160a01b031633146105ae5760405162461bcd60e51b81526004016104e990611887565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146106225760405162461bcd60e51b81526004016104e990611887565b600061062e82846118bc565b9050600854811115801561064457506009548111155b61064d57600080fd5b600a92909255600b556008819055600955565b60006103e4338484610b25565b6000546001600160a01b031633146106975760405162461bcd60e51b81526004016104e990611887565b601554600160a01b900460ff16156106f15760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104e9565b601480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915561073a90309061072c6009600a611861565b61046990633b9aca00611870565b601460009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561078d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107b191906118cf565b6001600160a01b031663c9c6539630601460009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610813573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083791906118cf565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610884573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a891906118cf565b601580546001600160a01b039283166001600160a01b03199091161790556014541663f305d71947306108f0816001600160a01b031660009081526001602052604090205490565b6000806109056000546001600160a01b031690565b426040518863ffffffff1660e01b8152600401610927969594939291906118ec565b60606040518083038185885af1158015610945573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061096a9190611927565b505060155460145460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af11580156109c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e79190611955565b506015805462ff00ff60a01b19166201000160a01b179055565b6001600160a01b038316610a635760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104e9565b6001600160a01b038216610ac45760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104e9565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b895760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104e9565b6001600160a01b038216610beb5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104e9565b60008111610c4d5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104e9565b600080546001600160a01b03858116911614801590610c7a57506000546001600160a01b03848116911614155b8015610c8f57506001600160a01b0384163014155b15610fbe5760055460ff1615610d79576014546001600160a01b03848116911614801590610ccb57506015546001600160a01b03848116911614155b15610d7957326000908152600460205260409020544311610d665760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a4016104e9565b3260009081526004602052604090204390555b6015546001600160a01b038581169116148015610da457506014546001600160a01b03848116911614155b8015610dc957506001600160a01b03831660009081526003602052604090205460ff16155b15610edf57601054821115610e205760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016104e9565b610e4c6064610e46600c54600f5411610e3b57600654610e3f565b6008545b8590611245565b906112ce565b905060115482610e71856001600160a01b031660009081526001602052604090205490565b610e7b91906118bc565b1115610ec95760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104e9565b600f8054906000610ed983611977565b91905055505b6015546001600160a01b038481169116148015610f0557506001600160a01b0384163014155b15610f3257610f2f6064610e46600d54600f5411610f2557600754610e3f565b6009548590611245565b90505b30600090815260016020526040902054601554600160a81b900460ff16158015610f6957506015546001600160a01b038581169116145b8015610f7e5750601554600160b01b900460ff165b8015610f8b575060125481115b8015610f9a5750600e54600f54115b15610fbc57610fbc610fb784610fb284601354611310565b611310565b61113b565b505b80156110385730600090815260016020526040902054610fde9082611325565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061102f9085815260200190565b60405180910390a35b6001600160a01b03841660009081526001602052604090205461105b9083611384565b6001600160a01b0385166000908152600160205260409020556110a06110818383611384565b6001600160a01b03851660009081526001602052604090205490611325565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6110ea8585611384565b60405190815260200160405180910390a350505050565b600081848411156111255760405162461bcd60e51b81526004016104e9919061161f565b5060006111328486611990565b95945050505050565b6015805460ff60a81b1916600160a81b179055600b546000906002906111619084611870565b61116b91906119a3565b905060006111798284611990565b9050611184816113c6565b600b54600a54479160009161119991906118bc565b600a546111a69084611870565b6111b091906119a3565b905080156112315760055460405160009161010090046001600160a01b03169083908381818185875af1925050503d806000811461120a576040519150601f19603f3d011682016040523d82523d6000602084013e61120f565b606091505b505090508080156112205750600085115b1561122f5761122f8547611520565b505b50506015805460ff60a81b19169055505050565b600082600003611257575060006103e8565b60006112638385611870565b90508261127085836119a3565b146112c75760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104e9565b9392505050565b60006112c783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506115f1565b600081831161131f57826112c7565b50919050565b60008061133283856118bc565b9050838110156112c75760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104e9565b60006112c783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611101565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106113fb576113fb6119c5565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611454573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061147891906118cf565b8160018151811061148b5761148b6119c5565b6001600160a01b0392831660209182029290920101526014546114b19130911684610a01565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac947906114ea9085906000908690309042906004016119db565b600060405180830381600087803b15801561150457600080fd5b505af1158015611518573d6000803e3d6000fd5b505050505050565b6014543060009081526002602090815260408083206001600160a01b039094168352929052205482811015611569576014546115699030906001600160a01b0316600019610a01565b60145460055460405163f305d71960e01b81526001600160a01b039283169263f305d7199286926115ae9230928a9260009283926101009004169042906004016118ec565b60606040518083038185885af11580156115cc573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906115189190611927565b600081836116125760405162461bcd60e51b81526004016104e9919061161f565b50600061113284866119a3565b600060208083528351808285015260005b8181101561164c57858101830151858201604001528201611630565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146104bc57600080fd5b6000806040838503121561169557600080fd5b82356116a08161166d565b946020939093013593505050565b6000806000606084860312156116c357600080fd5b83356116ce8161166d565b925060208401356116de8161166d565b929592945050506040919091013590565b60006020828403121561170157600080fd5b81356112c78161166d565b6000806040838503121561171f57600080fd5b50508035926020909101359150565b6000806040838503121561174157600080fd5b823561174c8161166d565b9150602083013561175c8161166d565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156117b857816000190482111561179e5761179e611767565b808516156117ab57918102915b93841c9390800290611782565b509250929050565b6000826117cf575060016103e8565b816117dc575060006103e8565b81600181146117f257600281146117fc57611818565b60019150506103e8565b60ff84111561180d5761180d611767565b50506001821b6103e8565b5060208310610133831016604e8410600b841016171561183b575081810a6103e8565b611845838361177d565b806000190482111561185957611859611767565b029392505050565b60006112c760ff8416836117c0565b80820281158282048414176103e8576103e8611767565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b808201808211156103e8576103e8611767565b6000602082840312156118e157600080fd5b81516112c78161166d565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b60008060006060848603121561193c57600080fd5b8351925060208401519150604084015190509250925092565b60006020828403121561196757600080fd5b815180151581146112c757600080fd5b60006001820161198957611989611767565b5060010190565b818103818111156103e8576103e8611767565b6000826119c057634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611a2b5784516001600160a01b031683529383019391830191600101611a06565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220065a38f83f4c3040f3f6d2d1d2875722f516a15da12b3450eb357be879cf7cfe64736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101235760003560e01c806372333356116100a0578063a9059cbb11610064578063a9059cbb1461032c578063bf474bed1461034c578063c876d0b914610362578063c9567bf91461037c578063dd62ed3e1461039157600080fd5b8063723333561461028b5780637d1db4a5146102ab5780638da5cb5b146102c15780638f9a55c0146102e957806395d89b41146102ff57600080fd5b8063313ce567116100e7578063313ce567146101f857806351bc3c8514610214578063622565891461022b57806370a0823114610240578063715018a61461027657600080fd5b806306fdde031461012f578063095ea7b31461016f5780630faee56f1461019f57806318160ddd146101c357806323b872dd146101d857600080fd5b3661012a57005b600080fd5b34801561013b57600080fd5b506040805180820190915260058152644a6f62667960d81b60208201525b604051610166919061161f565b60405180910390f35b34801561017b57600080fd5b5061018f61018a366004611682565b6103d7565b6040519015158152602001610166565b3480156101ab57600080fd5b506101b560135481565b604051908152602001610166565b3480156101cf57600080fd5b506101b56103ee565b3480156101e457600080fd5b5061018f6101f33660046116ae565b61040f565b34801561020457600080fd5b5060405160098152602001610166565b34801561022057600080fd5b50610229610478565b005b34801561023757600080fd5b506102296104bf565b34801561024c57600080fd5b506101b561025b3660046116ef565b6001600160a01b031660009081526001602052604090205490565b34801561028257600080fd5b50610229610584565b34801561029757600080fd5b506102296102a636600461170c565b6105f8565b3480156102b757600080fd5b506101b560105481565b3480156102cd57600080fd5b506000546040516001600160a01b039091168152602001610166565b3480156102f557600080fd5b506101b560115481565b34801561030b57600080fd5b506040805180820190915260048152634a42465960e01b6020820152610159565b34801561033857600080fd5b5061018f610347366004611682565b610660565b34801561035857600080fd5b506101b560125481565b34801561036e57600080fd5b5060055461018f9060ff1681565b34801561038857600080fd5b5061022961066d565b34801561039d57600080fd5b506101b56103ac36600461172e565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b60006103e4338484610a01565b5060015b92915050565b60006103fc6009600a611861565b61040a90633b9aca00611870565b905090565b600061041c848484610b25565b61046e843361046985604051806060016040528060288152602001611a4d602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190611101565b610a01565b5060019392505050565b60055461010090046001600160a01b0316336001600160a01b03161461049d57600080fd5b3060009081526001602052604090205480156104bc576104bc8161113b565b50565b6000546001600160a01b031633146104f25760405162461bcd60e51b81526004016104e990611887565b60405180910390fd5b6104fe6009600a611861565b61050c90633b9aca00611870565b60105561051b6009600a611861565b61052990633b9aca00611870565b6011556005805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6105636009600a611861565b61057190633b9aca00611870565b60405190815260200160405180910390a1565b6000546001600160a01b031633146105ae5760405162461bcd60e51b81526004016104e990611887565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146106225760405162461bcd60e51b81526004016104e990611887565b600061062e82846118bc565b9050600854811115801561064457506009548111155b61064d57600080fd5b600a92909255600b556008819055600955565b60006103e4338484610b25565b6000546001600160a01b031633146106975760405162461bcd60e51b81526004016104e990611887565b601554600160a01b900460ff16156106f15760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104e9565b601480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915561073a90309061072c6009600a611861565b61046990633b9aca00611870565b601460009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561078d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107b191906118cf565b6001600160a01b031663c9c6539630601460009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610813573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083791906118cf565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610884573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a891906118cf565b601580546001600160a01b039283166001600160a01b03199091161790556014541663f305d71947306108f0816001600160a01b031660009081526001602052604090205490565b6000806109056000546001600160a01b031690565b426040518863ffffffff1660e01b8152600401610927969594939291906118ec565b60606040518083038185885af1158015610945573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061096a9190611927565b505060155460145460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af11580156109c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e79190611955565b506015805462ff00ff60a01b19166201000160a01b179055565b6001600160a01b038316610a635760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104e9565b6001600160a01b038216610ac45760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104e9565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b895760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104e9565b6001600160a01b038216610beb5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104e9565b60008111610c4d5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104e9565b600080546001600160a01b03858116911614801590610c7a57506000546001600160a01b03848116911614155b8015610c8f57506001600160a01b0384163014155b15610fbe5760055460ff1615610d79576014546001600160a01b03848116911614801590610ccb57506015546001600160a01b03848116911614155b15610d7957326000908152600460205260409020544311610d665760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a4016104e9565b3260009081526004602052604090204390555b6015546001600160a01b038581169116148015610da457506014546001600160a01b03848116911614155b8015610dc957506001600160a01b03831660009081526003602052604090205460ff16155b15610edf57601054821115610e205760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016104e9565b610e4c6064610e46600c54600f5411610e3b57600654610e3f565b6008545b8590611245565b906112ce565b905060115482610e71856001600160a01b031660009081526001602052604090205490565b610e7b91906118bc565b1115610ec95760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104e9565b600f8054906000610ed983611977565b91905055505b6015546001600160a01b038481169116148015610f0557506001600160a01b0384163014155b15610f3257610f2f6064610e46600d54600f5411610f2557600754610e3f565b6009548590611245565b90505b30600090815260016020526040902054601554600160a81b900460ff16158015610f6957506015546001600160a01b038581169116145b8015610f7e5750601554600160b01b900460ff165b8015610f8b575060125481115b8015610f9a5750600e54600f54115b15610fbc57610fbc610fb784610fb284601354611310565b611310565b61113b565b505b80156110385730600090815260016020526040902054610fde9082611325565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061102f9085815260200190565b60405180910390a35b6001600160a01b03841660009081526001602052604090205461105b9083611384565b6001600160a01b0385166000908152600160205260409020556110a06110818383611384565b6001600160a01b03851660009081526001602052604090205490611325565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6110ea8585611384565b60405190815260200160405180910390a350505050565b600081848411156111255760405162461bcd60e51b81526004016104e9919061161f565b5060006111328486611990565b95945050505050565b6015805460ff60a81b1916600160a81b179055600b546000906002906111619084611870565b61116b91906119a3565b905060006111798284611990565b9050611184816113c6565b600b54600a54479160009161119991906118bc565b600a546111a69084611870565b6111b091906119a3565b905080156112315760055460405160009161010090046001600160a01b03169083908381818185875af1925050503d806000811461120a576040519150601f19603f3d011682016040523d82523d6000602084013e61120f565b606091505b505090508080156112205750600085115b1561122f5761122f8547611520565b505b50506015805460ff60a81b19169055505050565b600082600003611257575060006103e8565b60006112638385611870565b90508261127085836119a3565b146112c75760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104e9565b9392505050565b60006112c783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506115f1565b600081831161131f57826112c7565b50919050565b60008061133283856118bc565b9050838110156112c75760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104e9565b60006112c783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611101565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106113fb576113fb6119c5565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611454573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061147891906118cf565b8160018151811061148b5761148b6119c5565b6001600160a01b0392831660209182029290920101526014546114b19130911684610a01565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac947906114ea9085906000908690309042906004016119db565b600060405180830381600087803b15801561150457600080fd5b505af1158015611518573d6000803e3d6000fd5b505050505050565b6014543060009081526002602090815260408083206001600160a01b039094168352929052205482811015611569576014546115699030906001600160a01b0316600019610a01565b60145460055460405163f305d71960e01b81526001600160a01b039283169263f305d7199286926115ae9230928a9260009283926101009004169042906004016118ec565b60606040518083038185885af11580156115cc573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906115189190611927565b600081836116125760405162461bcd60e51b81526004016104e9919061161f565b50600061113284866119a3565b600060208083528351808285015260005b8181101561164c57858101830151858201604001528201611630565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146104bc57600080fd5b6000806040838503121561169557600080fd5b82356116a08161166d565b946020939093013593505050565b6000806000606084860312156116c357600080fd5b83356116ce8161166d565b925060208401356116de8161166d565b929592945050506040919091013590565b60006020828403121561170157600080fd5b81356112c78161166d565b6000806040838503121561171f57600080fd5b50508035926020909101359150565b6000806040838503121561174157600080fd5b823561174c8161166d565b9150602083013561175c8161166d565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156117b857816000190482111561179e5761179e611767565b808516156117ab57918102915b93841c9390800290611782565b509250929050565b6000826117cf575060016103e8565b816117dc575060006103e8565b81600181146117f257600281146117fc57611818565b60019150506103e8565b60ff84111561180d5761180d611767565b50506001821b6103e8565b5060208310610133831016604e8410600b841016171561183b575081810a6103e8565b611845838361177d565b806000190482111561185957611859611767565b029392505050565b60006112c760ff8416836117c0565b80820281158282048414176103e8576103e8611767565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b808201808211156103e8576103e8611767565b6000602082840312156118e157600080fd5b81516112c78161166d565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b60008060006060848603121561193c57600080fd5b8351925060208401519150604084015190509250925092565b60006020828403121561196757600080fd5b815180151581146112c757600080fd5b60006001820161198957611989611767565b5060010190565b818103818111156103e8576103e8611767565b6000826119c057634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611a2b5784516001600160a01b031683529383019391830191600101611a06565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220065a38f83f4c3040f3f6d2d1d2875722f516a15da12b3450eb357be879cf7cfe64736f6c63430008130033

Deployed Bytecode Sourcemap

3954:9211:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6132:83;;;;;;;;;;-1:-1:-1;6202:5:0;;;;;;;;;;;;-1:-1:-1;;;6202:5:0;;;;6132:83;;;;;;;:::i;:::-;;;;;;;;6965:161;;;;;;;;;;-1:-1:-1;6965:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6965:161:0;1023:187:1;5408:51:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;5408:51:0;1215:177:1;6409:95:0;;;;;;;;;;;;;:::i;7134:313::-;;;;;;;;;;-1:-1:-1;7134:313:0;;;;;:::i;:::-;;:::i;6318:83::-;;;;;;;;;;-1:-1:-1;6318:83:0;;4969:1;2000:36:1;;1988:2;1973:18;6318:83:0;1858:184:1;12934:228:0;;;;;;;;;;;;;:::i;:::-;;11658:195;;;;;;;;;;;;;:::i;6512:119::-;;;;;;;;;;-1:-1:-1;6512:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6605:18:0;6578:7;6605:18;;;:9;:18;;;;;;;6512:119;3035:148;;;;;;;;;;;;;:::i;12548:341::-;;;;;;;;;;-1:-1:-1;12548:341:0;;;;;:::i;:::-;;:::i;5180:54::-;;;;;;;;;;;;;;;;2821:79;;;;;;;;;;-1:-1:-1;2859:7:0;2886:6;2821:79;;-1:-1:-1;;;;;2886:6:0;;;2698:51:1;;2686:2;2671:18;2821:79:0;2552:203:1;5261:56:0;;;;;;;;;;;;;;;;6223:87;;;;;;;;;;-1:-1:-1;6295:7:0;;;;;;;;;;;;-1:-1:-1;;;6295:7:0;;;;6223:87;;6639:167;;;;;;;;;;-1:-1:-1;6639:167:0;;;;;:::i;:::-;;:::i;5344:57::-;;;;;;;;;;;;;;;;4297:39;;;;;;;;;;-1:-1:-1;4297:39:0;;;;;;;;11863:671;;;;;;;;;;;;;:::i;6814:143::-;;;;;;;;;;-1:-1:-1;6814:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6922:18:0;;;6895:7;6922:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6814:143;6965:161;7040:4;7057:39;656:10;7080:7;7089:6;7057:8;:39::i;:::-;-1:-1:-1;7114:4:0;6965:161;;;;;:::o;6409:95::-;6462:7;5025:13;4969:1;5025:2;:13;:::i;:::-;5012:26;;:10;:26;:::i;:::-;6482:14;;6409:95;:::o;7134:313::-;7232:4;7249:36;7259:6;7267:9;7278:6;7249:9;:36::i;:::-;7296:121;7305:6;656:10;7327:89;7365:6;7327:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7327:19:0;;;;;;:11;:19;;;;;;;;656:10;7327:33;;;;;;;;;;:37;:89::i;:::-;7296:8;:121::i;:::-;-1:-1:-1;7435:4:0;7134:313;;;;;:::o;12934:228::-;12998:10;;;;;-1:-1:-1;;;;;12998:10:0;656;-1:-1:-1;;;;;12984:24:0;;12976:33;;;;;;13059:4;13020:20;6605:18;;;:9;:18;;;;;;13079:14;;13076:71;;13107:28;13122:12;13107:14;:28::i;:::-;12965:197;12934:228::o;11658:195::-;2948:6;;-1:-1:-1;;;;;2948:6:0;656:10;2948:22;2940:67;;;;-1:-1:-1;;;2940:67:0;;;;;;;:::i;:::-;;;;;;;;;5025:13:::1;4969:1;5025:2;:13;:::i;:::-;5012:26;::::0;:10:::1;:26;:::i;:::-;11710:12;:22:::0;5025:13:::1;4969:1;5025:2;:13;:::i;:::-;5012:26;::::0;:10:::1;:26;:::i;:::-;11743:14;:22:::0;11776:20:::1;:26:::0;;-1:-1:-1;;11776:26:0::1;::::0;;11818:27:::1;5025:13;4969:1;5025:2;:13;:::i;:::-;5012:26;::::0;:10:::1;:26;:::i;:::-;11818:27;::::0;1361:25:1;;;1349:2;1334:18;11818:27:0::1;;;;;;;11658:195::o:0;3035:148::-;2948:6;;-1:-1:-1;;;;;2948:6:0;656:10;2948:22;2940:67;;;;-1:-1:-1;;;2940:67:0;;;;;;;:::i;:::-;3142:1:::1;3126:6:::0;;3105:40:::1;::::0;-1:-1:-1;;;;;3126:6:0;;::::1;::::0;3105:40:::1;::::0;3142:1;;3105:40:::1;3173:1;3156:19:::0;;-1:-1:-1;;;;;;3156:19:0::1;::::0;;3035:148::o;12548:341::-;2948:6;;-1:-1:-1;;;;;2948:6:0;656:10;2948:22;2940:67;;;;-1:-1:-1;;;2940:67:0;;;;;;;:::i;:::-;12638:16:::1;12657:27;12672:12:::0;12657;:27:::1;:::i;:::-;12638:46;;12711:12;;12701:8;:22;;:49;;;;;12737:13;;12726:8;:24;;12701:49;12693:58;;;::::0;::::1;;12760:13;:28:::0;;;;12797:6:::1;:21:::0;12827:12:::1;:22:::0;;;12858:13:::1;:23:::0;12548:341::o;6639:167::-;6717:4;6734:42;656:10;6758:9;6769:6;6734:9;:42::i;11863:671::-;2948:6;;-1:-1:-1;;;;;2948:6:0;656:10;2948:22;2940:67;;;;-1:-1:-1;;;2940:67:0;;;;;;;:::i;:::-;11927:11:::1;::::0;-1:-1:-1;;;11927:11:0;::::1;;;11926:12;11918:47;;;::::0;-1:-1:-1;;;11918:47:0;;5534:2:1;11918:47:0::1;::::0;::::1;5516:21:1::0;5573:2;5553:18;;;5546:30;5612:25;5592:18;;;5585:53;5655:18;;11918:47:0::1;5332:347:1::0;11918:47:0::1;11976:15;:80:::0;;-1:-1:-1;;;;;;11976:80:0::1;12013:42;11976:80:::0;;::::1;::::0;;;12067:58:::1;::::0;12084:4:::1;::::0;5025:13:::1;4969:1;5025:2;:13;:::i;:::-;5012:26;::::0;:10:::1;:26;:::i;12067:58::-;12170:15;;;;;;;;;-1:-1:-1::0;;;;;12170:15:0::1;-1:-1:-1::0;;;;;12170:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12152:55:0::1;;12216:4;12223:15;;;;;;;;;-1:-1:-1::0;;;;;12223:15:0::1;-1:-1:-1::0;;;;;12223:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12152:94;::::0;-1:-1:-1;;;;;;12152:94:0::1;::::0;;;;;;-1:-1:-1;;;;;6170:15:1;;;12152:94:0::1;::::0;::::1;6152:34:1::0;6222:15;;6202:18;;;6195:43;6087:18;;12152:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12136:13;:110:::0;;-1:-1:-1;;;;;12136:110:0;;::::1;-1:-1:-1::0;;;;;;12136:110:0;;::::1;;::::0;;12257:15:::1;::::0;::::1;:31;12296:21;12327:4;12333:24;12327:4:::0;-1:-1:-1;;;;;6605:18:0;6578:7;6605:18;;;:9;:18;;;;;;;6512:119;12333:24:::1;12358:1;12360::::0;12362:7:::1;2859::::0;2886:6;-1:-1:-1;;;;;2886:6:0;;2821:79;12362:7:::1;12370:15;12257:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;12404:13:0::1;::::0;12435:15:::1;::::0;12397:71:::1;::::0;-1:-1:-1;;;12397:71:0;;-1:-1:-1;;;;;12435:15:0;;::::1;12397:71;::::0;::::1;7346:51:1::0;-1:-1:-1;;7413:18:1;;;7406:34;12404:13:0;::::1;::::0;-1:-1:-1;12397:29:0::1;::::0;7319:18:1;;12397:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;12479:11:0::1;:18:::0;;-1:-1:-1;;;;12508:18:0;-1:-1:-1;;;12508:18:0;;;11863:671::o;7455:335::-;-1:-1:-1;;;;;7548:19:0;;7540:68;;;;-1:-1:-1;;;7540:68:0;;7935:2:1;7540:68:0;;;7917:21:1;7974:2;7954:18;;;7947:30;8013:34;7993:18;;;7986:62;-1:-1:-1;;;8064:18:1;;;8057:34;8108:19;;7540:68:0;7733:400:1;7540:68:0;-1:-1:-1;;;;;7627:21:0;;7619:68;;;;-1:-1:-1;;;7619:68:0;;8340:2:1;7619:68:0;;;8322:21:1;8379:2;8359:18;;;8352:30;8418:34;8398:18;;;8391:62;-1:-1:-1;;;8469:18:1;;;8462:32;8511:19;;7619:68:0;8138:398:1;7619:68:0;-1:-1:-1;;;;;7698:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7750:32;;1361:25:1;;;7750:32:0;;1334:18:1;7750:32:0;;;;;;;7455:335;;;:::o;7798:2232::-;-1:-1:-1;;;;;7886:18:0;;7878:68;;;;-1:-1:-1;;;7878:68:0;;8743:2:1;7878:68:0;;;8725:21:1;8782:2;8762:18;;;8755:30;8821:34;8801:18;;;8794:62;-1:-1:-1;;;8872:18:1;;;8865:35;8917:19;;7878:68:0;8541:401:1;7878:68:0;-1:-1:-1;;;;;7965:16:0;;7957:64;;;;-1:-1:-1;;;7957:64:0;;9149:2:1;7957:64:0;;;9131:21:1;9188:2;9168:18;;;9161:30;9227:34;9207:18;;;9200:62;-1:-1:-1;;;9278:18:1;;;9271:33;9321:19;;7957:64:0;8947:399:1;7957:64:0;8049:1;8040:6;:10;8032:64;;;;-1:-1:-1;;;8032:64:0;;9553:2:1;8032:64:0;;;9535:21:1;9592:2;9572:18;;;9565:30;9631:34;9611:18;;;9604:62;-1:-1:-1;;;9682:18:1;;;9675:39;9731:19;;8032:64:0;9351:405:1;8032:64:0;8107:17;2886:6;;-1:-1:-1;;;;;8141:15:0;;;2886:6;;8141:15;;;;:32;;-1:-1:-1;2859:7:0;2886:6;-1:-1:-1;;;;;8160:13:0;;;2886:6;;8160:13;;8141:32;:57;;;;-1:-1:-1;;;;;;8177:21:0;;8193:4;8177:21;;8141:57;8137:1537;;;8235:20;;;;8231:508;;;8296:15;;-1:-1:-1;;;;;8282:30:0;;;8296:15;;8282:30;;;;:62;;-1:-1:-1;8330:13:0;;-1:-1:-1;;;;;8316:28:0;;;8330:13;;8316:28;;8282:62;8278:444;;;8436:9;8407:39;;;;:28;:39;;;;;;8480:12;-1:-1:-1;8371:250:0;;;;-1:-1:-1;;;8371:250:0;;9963:2:1;8371:250:0;;;9945:21:1;10002:2;9982:18;;;9975:30;10041:34;10021:18;;;10014:62;10112:34;10092:18;;;10085:62;-1:-1:-1;;;10163:19:1;;;10156:40;10213:19;;8371:250:0;9761:477:1;8371:250:0;8675:9;8646:39;;;;:28;:39;;;;;8688:12;8646:54;;8278:444;8767:13;;-1:-1:-1;;;;;8759:21:0;;;8767:13;;8759:21;:55;;;;-1:-1:-1;8798:15:0;;-1:-1:-1;;;;;8784:30:0;;;8798:15;;8784:30;;8759:55;:83;;;;-1:-1:-1;;;;;;8820:22:0;;;;;;:18;:22;;;;;;;;8818:24;8759:83;8755:413;;;8882:12;;8872:6;:22;;8864:60;;;;-1:-1:-1;;;8864:60:0;;10445:2:1;8864:60:0;;;10427:21:1;10484:2;10464:18;;;10457:30;10523:27;10503:18;;;10496:55;10568:18;;8864:60:0;10243:349:1;8864:60:0;8955:69;9020:3;8955:60;8977:8;;8967:9;;:18;8966:48;;9000:14;;8966:48;;;8987:12;;8966:48;8955:6;;:10;:60::i;:::-;:64;;:69::i;:::-;8943:81;;9077:14;;9067:6;9051:13;9061:2;-1:-1:-1;;;;;6605:18:0;6578:7;6605:18;;;:9;:18;;;;;;;6512:119;9051:13;:22;;;;:::i;:::-;:40;;9043:79;;;;-1:-1:-1;;;9043:79:0;;10799:2:1;9043:79:0;;;10781:21:1;10838:2;10818:18;;;10811:30;10877:28;10857:18;;;10850:56;10923:18;;9043:79:0;10597:350:1;9043:79:0;9141:9;:11;;;:9;:11;;;:::i;:::-;;;;;;8755:413;9193:13;;-1:-1:-1;;;;;9187:19:0;;;9193:13;;9187:19;:43;;;;-1:-1:-1;;;;;;9210:20:0;;9225:4;9210:20;;9187:43;9184:166;;;9263:71;9330:3;9263:62;9285:8;;9275:9;;:18;9274:50;;9309:15;;9274:50;;;9295:13;;9263:6;;:10;:62::i;:71::-;9251:83;;9184:166;9415:4;9366:28;6605:18;;;:9;:18;;;;;;9441:6;;-1:-1:-1;;;9441:6:0;;;;9440:7;:32;;;;-1:-1:-1;9459:13:0;;-1:-1:-1;;;;;9451:21:0;;;9459:13;;9451:21;9440:32;:47;;;;-1:-1:-1;9476:11:0;;-1:-1:-1;;;9476:11:0;;;;9440:47;:89;;;;;9512:17;;9491:20;:38;9440:89;:121;;;;;9543:18;;9533:9;;:28;9440:121;9436:227;;;9582:65;9597:49;9601:6;9608:37;9612:20;9633:11;;9608:3;:37::i;:::-;9597:3;:49::i;:::-;9582:14;:65::i;:::-;8200:1474;8137:1537;9689:11;;9686:161;;9757:4;9739:24;;;;:9;:24;;;;;;:39;;9768:9;9739:28;:39::i;:::-;9732:4;9714:24;;;;:9;:24;;;;;;;:64;;;;9796:39;;-1:-1:-1;;;;;9796:39:0;;;;;;;9825:9;1361:25:1;;1349:2;1334:18;;1215:177;9796:39:0;;;;;;;;9686:161;-1:-1:-1;;;;;9873:15:0;;;;;;:9;:15;;;;;;:27;;9893:6;9873:19;:27::i;:::-;-1:-1:-1;;;;;9857:15:0;;;;;;:9;:15;;;;;:43;9925:40;9943:21;:6;9954:9;9943:10;:21::i;:::-;-1:-1:-1;;;;;9925:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;9911:13:0;;;;;;;:9;:13;;;;;:54;;;;9981:41;;;10000:21;:6;10011:9;10000:10;:21::i;:::-;9981:41;;1361:25:1;;;1349:2;1334:18;9981:41:0;;;;;;;7867:2163;7798:2232;;;:::o;1713:190::-;1799:7;1835:12;1827:6;;;;1819:29;;;;-1:-1:-1;;;1819:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1859:9:0;1871:5;1875:1;1871;:5;:::i;:::-;1859:17;1713:190;-1:-1:-1;;;;;1713:190:0:o;10146:550::-;5741:6;:13;;-1:-1:-1;;;;5741:13:0;-1:-1:-1;;;5741:13:0;;;10245:6:::1;::::0;5741:13;;10255:1:::1;::::0;10236:15:::1;::::0;:6;:15:::1;:::i;:::-;10235:21;;;;:::i;:::-;10216:40:::0;-1:-1:-1;10265:18:0::1;10286:17;10216:40:::0;10286:6;:17:::1;:::i;:::-;10265:38;;10312:29;10330:10;10312:16;:29::i;:::-;10473:6;::::0;10457:13:::1;::::0;10371:21:::1;::::0;10350:18:::1;::::0;10457:22:::1;::::0;10473:6;10457:22:::1;:::i;:::-;10439:13;::::0;10426:26:::1;::::0;:10;:26:::1;:::i;:::-;10425:55;;;;:::i;:::-;10401:79:::0;-1:-1:-1;10492:17:0;;10489:200:::1;;10537:10;::::0;:41:::1;::::0;10520:12:::1;::::0;10537:10:::1;::::0;::::1;-1:-1:-1::0;;;;;10537:10:0::1;::::0;10560:13;;10520:12;10537:41;10520:12;10537:41;10560:13;10537:10;:41:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10519:59;;;10591:7;:23;;;;;10613:1;10602:8;:12;10591:23;10587:93;;;10624:45;10637:8;10647:21;10624:12;:45::i;:::-;10510:179;10489:200;-1:-1:-1::0;;5777:6:0;:14;;-1:-1:-1;;;;5777:14:0;;;-1:-1:-1;;;10146:550:0:o;1911:246::-;1969:7;1993:1;1998;1993:6;1989:47;;-1:-1:-1;2023:1:0;2016:8;;1989:47;2046:9;2058:5;2062:1;2058;:5;:::i;:::-;2046:17;-1:-1:-1;2091:1:0;2082:5;2086:1;2046:17;2082:5;:::i;:::-;:10;2074:56;;;;-1:-1:-1;;;2074:56:0;;11859:2:1;2074:56:0;;;11841:21:1;11898:2;11878:18;;;11871:30;11937:34;11917:18;;;11910:62;-1:-1:-1;;;11988:18:1;;;11981:31;12029:19;;2074:56:0;11657:397:1;2074:56:0;2148:1;1911:246;-1:-1:-1;;;1911:246:0:o;2165:132::-;2223:7;2250:39;2254:1;2257;2250:39;;;;;;;;;;;;;;;;;:3;:39::i;10040:98::-;10097:7;10124:1;10122;:3;10121:9;;10129:1;10121:9;;;-1:-1:-1;10127:1:0;10040:98;-1:-1:-1;10040:98:0:o;1382:179::-;1440:7;;1472:5;1476:1;1472;:5;:::i;:::-;1460:17;;1501:1;1496;:6;;1488:46;;;;-1:-1:-1;;;1488:46:0;;12261:2:1;1488:46:0;;;12243:21:1;12300:2;12280:18;;;12273:30;12339:29;12319:18;;;12312:57;12386:18;;1488:46:0;12059:351:1;1569:136:0;1627:7;1654:43;1658:1;1661;1654:43;;;;;;;;;;;;;;;;;:3;:43::i;10704:472::-;10795:16;;;10809:1;10795:16;;;;;;;;10771:21;;10795:16;;;;;;;;;;-1:-1:-1;10795:16:0;10771:40;;10840:4;10822;10827:1;10822:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10822:23:0;;;:7;;;;;;;;;;:23;;;;10866:15;;:22;;;-1:-1:-1;;;10866:22:0;;;;:15;;;;;:20;;:22;;;;;10822:7;;10866:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10856:4;10861:1;10856:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10856:32:0;;;:7;;;;;;;;;:32;10931:15;;10899:62;;10916:4;;10931:15;10949:11;10899:8;:62::i;:::-;10972:15;;:196;;-1:-1:-1;;;10972:196:0;;-1:-1:-1;;;;;10972:15:0;;;;:66;;:196;;11053:11;;10972:15;;11095:4;;11122;;11142:15;;10972:196;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10760:416;10704:472;:::o;11184:466::-;11312:15;;11297:4;11255:21;6922:18;;;:11;:18;;;;;;;;-1:-1:-1;;;;;11312:15:0;;;6922:27;;;;;;;11343:22;;;11340:112;;;11410:15;;11378:62;;11395:4;;-1:-1:-1;;;;;11410:15:0;-1:-1:-1;;11378:8:0;:62::i;:::-;11462:15;;11601:10;;11462:180;;-1:-1:-1;;;11462:180:0;;-1:-1:-1;;;;;11462:15:0;;;;:31;;11501:3;;11462:180;;11528:4;;11548:6;;11462:15;;;;;11601:10;;;;11626:15;;11462:180;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2305:189::-;2391:7;2426:12;2419:5;2411:28;;;;-1:-1:-1;;;2411:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2450:9:0;2462:5;2466:1;2462;: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;2299:248::-;2367:6;2375;2428:2;2416:9;2407:7;2403:23;2399:32;2396:52;;;2444:1;2441;2434:12;2396:52;-1:-1:-1;;2467:23:1;;;2537:2;2522:18;;;2509:32;;-1:-1:-1;2299:248:1:o;2760:388::-;2828:6;2836;2889:2;2877:9;2868:7;2864:23;2860:32;2857:52;;;2905:1;2902;2895:12;2857:52;2944:9;2931:23;2963:31;2988:5;2963:31;:::i;:::-;3013:5;-1:-1:-1;3070:2:1;3055:18;;3042:32;3083:33;3042:32;3083:33;:::i;:::-;3135:7;3125:17;;;2760:388;;;;;:::o;3153:127::-;3214:10;3209:3;3205:20;3202:1;3195:31;3245:4;3242:1;3235:15;3269:4;3266:1;3259:15;3285:422;3374:1;3417:5;3374:1;3431:270;3452:7;3442:8;3439:21;3431:270;;;3511:4;3507:1;3503:6;3499:17;3493:4;3490:27;3487:53;;;3520:18;;:::i;:::-;3570:7;3560:8;3556:22;3553:55;;;3590:16;;;;3553:55;3669:22;;;;3629:15;;;;3431:270;;;3435:3;3285:422;;;;;:::o;3712:806::-;3761:5;3791:8;3781:80;;-1:-1:-1;3832:1:1;3846:5;;3781:80;3880:4;3870:76;;-1:-1:-1;3917:1:1;3931:5;;3870:76;3962:4;3980:1;3975:59;;;;4048:1;4043:130;;;;3955:218;;3975:59;4005:1;3996:10;;4019:5;;;4043:130;4080:3;4070:8;4067:17;4064:43;;;4087:18;;:::i;:::-;-1:-1:-1;;4143:1:1;4129:16;;4158:5;;3955:218;;4257:2;4247:8;4244:16;4238:3;4232:4;4229:13;4225:36;4219:2;4209:8;4206:16;4201:2;4195:4;4192:12;4188:35;4185:77;4182:159;;;-1:-1:-1;4294:19:1;;;4326:5;;4182:159;4373:34;4398:8;4392:4;4373:34;:::i;:::-;4443:6;4439:1;4435:6;4431:19;4422:7;4419:32;4416:58;;;4454:18;;:::i;:::-;4492:20;;3712:806;-1:-1:-1;;;3712:806:1:o;4523:140::-;4581:5;4610:47;4651:4;4641:8;4637:19;4631:4;4610:47;:::i;4668:168::-;4741:9;;;4772;;4789:15;;;4783:22;;4769:37;4759:71;;4810:18;;:::i;4841:356::-;5043:2;5025:21;;;5062:18;;;5055:30;5121:34;5116:2;5101:18;;5094:62;5188:2;5173:18;;4841:356::o;5202:125::-;5267:9;;;5288:10;;;5285:36;;;5301:18;;:::i;5684:251::-;5754:6;5807:2;5795:9;5786:7;5782:23;5778:32;5775:52;;;5823:1;5820;5813:12;5775:52;5855:9;5849:16;5874:31;5899:5;5874:31;:::i;6249:607::-;-1:-1:-1;;;;;6608:15:1;;;6590:34;;6655:2;6640:18;;6633:34;;;;6698:2;6683:18;;6676:34;;;;6741:2;6726:18;;6719:34;;;;6790:15;;;6784:3;6769:19;;6762:44;6570:3;6822:19;;6815:35;;;;6539:3;6524:19;;6249:607::o;6861:306::-;6949:6;6957;6965;7018:2;7006:9;6997:7;6993:23;6989:32;6986:52;;;7034:1;7031;7024:12;6986:52;7063:9;7057:16;7047:26;;7113:2;7102:9;7098:18;7092:25;7082:35;;7157:2;7146:9;7142:18;7136:25;7126:35;;6861:306;;;;;:::o;7451:277::-;7518:6;7571:2;7559:9;7550:7;7546:23;7542:32;7539:52;;;7587:1;7584;7577:12;7539:52;7619:9;7613:16;7672:5;7665:13;7658:21;7651:5;7648:32;7638:60;;7694:1;7691;7684:12;10952:135;10991:3;11012:17;;;11009:43;;11032:18;;:::i;:::-;-1:-1:-1;11079:1:1;11068:13;;10952:135::o;11092:128::-;11159:9;;;11180:11;;;11177:37;;;11194:18;;:::i;11225:217::-;11265:1;11291;11281:132;;11335:10;11330:3;11326:20;11323:1;11316:31;11370:4;11367:1;11360:15;11398:4;11395:1;11388:15;11281:132;-1:-1:-1;11427:9:1;;11225:217::o;12547:127::-;12608:10;12603:3;12599:20;12596:1;12589:31;12639:4;12636:1;12629:15;12663:4;12660:1;12653:15;12679:980;12941:4;12989:3;12978:9;12974:19;13020:6;13009:9;13002:25;13046:2;13084:6;13079:2;13068:9;13064:18;13057:34;13127:3;13122:2;13111:9;13107:18;13100:31;13151:6;13186;13180:13;13217:6;13209;13202:22;13255:3;13244:9;13240:19;13233:26;;13294:2;13286:6;13282:15;13268:29;;13315:1;13325:195;13339:6;13336:1;13333:13;13325:195;;;13404:13;;-1:-1:-1;;;;;13400:39:1;13388:52;;13495:15;;;;13460:12;;;;13436:1;13354:9;13325:195;;;-1:-1:-1;;;;;;;13576:32:1;;;;13571:2;13556:18;;13549:60;-1:-1:-1;;;13640:3:1;13625:19;13618:35;13537:3;12679:980;-1:-1:-1;;;12679:980:1:o

Swarm Source

ipfs://065a38f83f4c3040f3f6d2d1d2875722f516a15da12b3450eb357be879cf7cfe

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.