ETH Price: $3,470.07 (+0.18%)

Contract

0xC3F9a2906c831d22927206DAAd3497Caa2B7bE78
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve214506542024-12-21 11:42:114 days ago1734781331IN
0xC3F9a290...aa2B7bE78
0 ETH0.000412548.86786442
Approve214323072024-12-18 22:10:236 days ago1734559823IN
0xC3F9a290...aa2B7bE78
0 ETH0.0013889529.85642124
Approve212852652024-11-28 9:20:3527 days ago1732785635IN
0xC3F9a290...aa2B7bE78
0 ETH0.000362157.77475019
Approve211984142024-11-16 6:18:2339 days ago1731737903IN
0xC3F9a290...aa2B7bE78
0 ETH0.0008515418.30447131
Approve211506952024-11-09 14:28:3546 days ago1731162515IN
0xC3F9a290...aa2B7bE78
0 ETH0.0007436815.96542075
Approve208727752024-10-01 19:36:3584 days ago1727811395IN
0xC3F9a290...aa2B7bE78
0 ETH0.0007577816.26801399
Approve202666312024-07-09 4:43:59169 days ago1720500239IN
0xC3F9a290...aa2B7bE78
0 ETH0.000159993.4392364
Approve202666012024-07-09 4:37:59169 days ago1720499879IN
0xC3F9a290...aa2B7bE78
0 ETH0.000156013.34925802
Approve202666012024-07-09 4:37:59169 days ago1720499879IN
0xC3F9a290...aa2B7bE78
0 ETH0.000156013.34925802
Approve199374932024-05-24 4:56:11215 days ago1716526571IN
0xC3F9a290...aa2B7bE78
0 ETH0.0005547411.90915473
Approve191223402024-01-30 22:35:59329 days ago1706654159IN
0xC3F9a290...aa2B7bE78
0 ETH0.0010105221.69382815
Approve189010962023-12-30 21:46:47360 days ago1703972807IN
0xC3F9a290...aa2B7bE78
0 ETH0.0006474713.98998461
Approve181896492023-09-22 6:37:23460 days ago1695364643IN
0xC3F9a290...aa2B7bE78
0 ETH0.0003215312.0509034
Approve175430482023-06-23 15:05:47551 days ago1687532747IN
0xC3F9a290...aa2B7bE78
0 ETH0.0013610929.44748443
Approve174701272023-06-13 9:16:59561 days ago1686647819IN
0xC3F9a290...aa2B7bE78
0 ETH0.0006962514.94712295
Approve174447002023-06-09 19:20:11565 days ago1686338411IN
0xC3F9a290...aa2B7bE78
0 ETH0.0009667220.78048854
Approve173556722023-05-28 6:14:35577 days ago1685254475IN
0xC3F9a290...aa2B7bE78
0 ETH0.0018103238.86402355
Approve173386432023-05-25 20:50:59579 days ago1685047859IN
0xC3F9a290...aa2B7bE78
0 ETH0.0013309228.60905036
Approve173143182023-05-22 10:43:11583 days ago1684752191IN
0xC3F9a290...aa2B7bE78
0 ETH0.0013061128.25797165
Approve173088202023-05-21 16:06:47584 days ago1684685207IN
0xC3F9a290...aa2B7bE78
0 ETH0.0017391137.38341357
Approve172850272023-05-18 7:43:11587 days ago1684395791IN
0xC3F9a290...aa2B7bE78
0 ETH0.0009109737.5859959
Approve172790342023-05-17 11:21:59588 days ago1684322519IN
0xC3F9a290...aa2B7bE78
0 ETH0.0021992447.27426171
Approve172788952023-05-17 10:53:47588 days ago1684320827IN
0xC3F9a290...aa2B7bE78
0 ETH0.0019439441.78644182
Approve172263862023-05-10 0:15:59595 days ago1683677759IN
0xC3F9a290...aa2B7bE78
0 ETH0.00518697111.35388588
Approve172064242023-05-07 4:53:59598 days ago1683435239IN
0xC3F9a290...aa2B7bE78
0 ETH0.003875483.19716456
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
171963872023-05-05 19:03:11600 days ago1683313391
0xC3F9a290...aa2B7bE78
0.13464193 ETH
171963872023-05-05 19:03:11600 days ago1683313391
0xC3F9a290...aa2B7bE78
0.13464193 ETH
171963842023-05-05 19:02:35600 days ago1683313355
0xC3F9a290...aa2B7bE78
0.30526551 ETH
171963842023-05-05 19:02:35600 days ago1683313355
0xC3F9a290...aa2B7bE78
0.30526551 ETH
171963802023-05-05 19:01:47600 days ago1683313307
0xC3F9a290...aa2B7bE78
0.22753833 ETH
171963802023-05-05 19:01:47600 days ago1683313307
0xC3F9a290...aa2B7bE78
0.22753833 ETH
171963782023-05-05 19:01:23600 days ago1683313283
0xC3F9a290...aa2B7bE78
0.05640051 ETH
171963782023-05-05 19:01:23600 days ago1683313283
0xC3F9a290...aa2B7bE78
0.05640051 ETH
171963782023-05-05 19:01:23600 days ago1683313283
0xC3F9a290...aa2B7bE78
0.0572653 ETH
171963782023-05-05 19:01:23600 days ago1683313283
0xC3F9a290...aa2B7bE78
0.0572653 ETH
171963642023-05-05 18:58:35600 days ago1683313115
0xC3F9a290...aa2B7bE78
0.08426512 ETH
171963642023-05-05 18:58:35600 days ago1683313115
0xC3F9a290...aa2B7bE78
0.08426512 ETH
171963622023-05-05 18:58:11600 days ago1683313091
0xC3F9a290...aa2B7bE78
0.36914679 ETH
171963622023-05-05 18:58:11600 days ago1683313091
0xC3F9a290...aa2B7bE78
0.36914679 ETH
171963552023-05-05 18:56:47600 days ago1683313007
0xC3F9a290...aa2B7bE78
0.16980607 ETH
171963552023-05-05 18:56:47600 days ago1683313007
0xC3F9a290...aa2B7bE78
0.16980607 ETH
171963472023-05-05 18:54:59600 days ago1683312899
0xC3F9a290...aa2B7bE78
0.72842183 ETH
171963472023-05-05 18:54:59600 days ago1683312899
0xC3F9a290...aa2B7bE78
0.72842183 ETH
171963422023-05-05 18:53:59600 days ago1683312839
0xC3F9a290...aa2B7bE78
0.53154131 ETH
171963422023-05-05 18:53:59600 days ago1683312839
0xC3F9a290...aa2B7bE78
0.53154131 ETH
171963412023-05-05 18:53:47600 days ago1683312827
0xC3F9a290...aa2B7bE78
0.07285735 ETH
171963412023-05-05 18:53:47600 days ago1683312827
0xC3F9a290...aa2B7bE78
0.07285735 ETH
171963332023-05-05 18:52:11600 days ago1683312731
0xC3F9a290...aa2B7bE78
0.07214678 ETH
171963332023-05-05 18:52:11600 days ago1683312731
0xC3F9a290...aa2B7bE78
0.07214678 ETH
171963322023-05-05 18:51:59600 days ago1683312719
0xC3F9a290...aa2B7bE78
0.56314424 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
SlippyCoin

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 2023-05-05
*/

/**
https://twitter.com/slippycoin
https://slippycoin.com/
t.me/slippyETH
*/

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

    uint256 private _initialBuyTax=25;
    uint256 private _initialSellTax=99;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=99;
    uint256 private _reduceBuyTaxAt=35;
    uint256 private _reduceSellTaxAt=15;
    uint256 private _preventSwapBefore=50;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000 * 10**_decimals;
    string private constant _name = "Slippy Coin";
    string private constant _symbol = "SLIPPY";
    uint256 public _maxTxAmount = 1000000000 * 10**_decimals;
    uint256 public _maxWalletSize = 20000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 1000000 * 10**_decimals;
    uint256 public _maxTaxSwap= 100000000 * 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()) {
            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);

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

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

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

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

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


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

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

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

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

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
    }

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

    receive() external payable {}

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

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":"_newFee","type":"uint256"}],"name":"reduceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526005805460ff191660011790556019600655606360078190556000600881905560099182556023600a908155600f600b556032600c55600d919091556200004c919062000358565b6200005c90633b9aca0062000370565b600e556200006d6009600a62000358565b6200007d906301312d0062000370565b600f556200008e6009600a62000358565b6200009d90620f424062000370565b601055620000ae6009600a62000358565b620000be906305f5e10062000370565b6011556013805461ffff60a81b19169055348015620000dc57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060058054610100600160a81b0319166101003302179055620001436009600a62000358565b6200015390633b9aca0062000370565b3360009081526001602081905260408220929092556003906200017e6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905530815260039093528183208054851660019081179091556005546101009004909116835291208054909216179055620001e23390565b6001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200021c6009600a62000358565b6200022c90633b9aca0062000370565b60405190815260200160405180910390a36200038a565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200029a5781600019048211156200027e576200027e62000243565b808516156200028c57918102915b93841c93908002906200025e565b509250929050565b600082620002b35750600162000352565b81620002c25750600062000352565b8160018114620002db5760028114620002e65762000306565b600191505062000352565b60ff841115620002fa57620002fa62000243565b50506001821b62000352565b5060208310610133831016604e8410600b84101617156200032b575081810a62000352565b62000337838362000259565b80600019048211156200034e576200034e62000243565b0290505b92915050565b60006200036960ff841683620002a2565b9392505050565b808202811582820484141762000352576200035262000243565b61190f806200039a6000396000f3fe6080604052600436106101235760003560e01c80637d1db4a5116100a0578063bf474bed11610064578063bf474bed14610334578063c876d0b91461034a578063c9567bf914610364578063dd62ed3e14610379578063ec1f3f63146103bf57600080fd5b80637d1db4a5146102915780638da5cb5b146102a75780638f9a55c0146102cf57806395d89b41146102e5578063a9059cbb1461031457600080fd5b8063313ce567116100e7578063313ce567146101fe57806351bc3c851461021a57806370a0823114610231578063715018a614610267578063751039fc1461027c57600080fd5b806306fdde031461012f578063095ea7b3146101755780630faee56f146101a557806318160ddd146101c957806323b872dd146101de57600080fd5b3661012a57005b600080fd5b34801561013b57600080fd5b5060408051808201909152600b81526a29b634b8383c9021b7b4b760a91b60208201525b60405161016c91906114c5565b60405180910390f35b34801561018157600080fd5b5061019561019036600461152b565b6103df565b604051901515815260200161016c565b3480156101b157600080fd5b506101bb60115481565b60405190815260200161016c565b3480156101d557600080fd5b506101bb6103f6565b3480156101ea57600080fd5b506101956101f9366004611557565b610417565b34801561020a57600080fd5b506040516009815260200161016c565b34801561022657600080fd5b5061022f610480565b005b34801561023d57600080fd5b506101bb61024c366004611598565b6001600160a01b031660009081526001602052604090205490565b34801561027357600080fd5b5061022f6104d8565b34801561028857600080fd5b5061022f610555565b34801561029d57600080fd5b506101bb600e5481565b3480156102b357600080fd5b506000546040516001600160a01b03909116815260200161016c565b3480156102db57600080fd5b506101bb600f5481565b3480156102f157600080fd5b50604080518082019091526006815265534c4950505960d01b602082015261015f565b34801561032057600080fd5b5061019561032f36600461152b565b610611565b34801561034057600080fd5b506101bb60105481565b34801561035657600080fd5b506005546101959060ff1681565b34801561037057600080fd5b5061022f61061e565b34801561038557600080fd5b506101bb6103943660046115b5565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156103cb57600080fd5b5061022f6103da3660046115ee565b6109da565b60006103ec338484610a26565b5060015b92915050565b60006104046009600a611701565b61041290633b9aca00611710565b905090565b6000610424848484610b4a565b6104768433610471856040518060600160405280602881526020016118b2602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190611124565b610a26565b5060019392505050565b60055461010090046001600160a01b0316336001600160a01b0316146104a557600080fd5b3060009081526001602052604090205480156104c4576104c48161115e565b4780156104d4576104d4816112d8565b5050565b6000546001600160a01b0316331461050b5760405162461bcd60e51b815260040161050290611727565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b0316331461057f5760405162461bcd60e51b815260040161050290611727565b61058b6009600a611701565b61059990633b9aca00611710565b600e556105a86009600a611701565b6105b690633b9aca00611710565b600f556005805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6105f06009600a611701565b6105fe90633b9aca00611710565b60405190815260200160405180910390a1565b60006103ec338484610b4a565b6000546001600160a01b031633146106485760405162461bcd60e51b815260040161050290611727565b601354600160a01b900460ff16156106a25760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610502565b601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556106eb9030906106dd6009600a611701565b61047190633b9aca00611710565b601260009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561073e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610762919061175c565b6001600160a01b031663c9c6539630601260009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107e8919061175c565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610835573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610859919061175c565b601380546001600160a01b039283166001600160a01b03199091161790556012541663f305d71947306108a1816001600160a01b031660009081526001602052604090205490565b6000806108b66000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af115801561091e573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906109439190611779565b505060135460125460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af115801561099c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c091906117a7565b506013805462ff00ff60a01b19166201000160a01b179055565b60055461010090046001600160a01b0316336001600160a01b0316146109ff57600080fd5b6008548111158015610a1357506009548111155b610a1c57600080fd5b6008819055600955565b6001600160a01b038316610a885760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610502565b6001600160a01b038216610ae95760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610502565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610bae5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610502565b6001600160a01b038216610c105760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610502565b60008111610c725760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610502565b600080546001600160a01b03858116911614801590610c9f57506000546001600160a01b03848116911614155b15610fe157610cd06064610cca600a54600d5411610cbf57600654610cc3565b6008545b8590611316565b9061139f565b60055490915060ff1615610db8576012546001600160a01b03848116911614801590610d0a57506013546001600160a01b03848116911614155b15610db857326000908152600460205260409020544311610da55760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a401610502565b3260009081526004602052604090204390555b6013546001600160a01b038581169116148015610de357506012546001600160a01b03848116911614155b8015610e0857506001600160a01b03831660009081526003602052604090205460ff16155b15610ef057600e54821115610e5f5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610502565b600f5482610e82856001600160a01b031660009081526001602052604090205490565b610e8c91906117c9565b1115610eda5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610502565b600d8054906000610eea836117dc565b91905055505b6013546001600160a01b038481169116148015610f1657506001600160a01b0384163014155b15610f4357610f406064610cca600b54600d5411610f3657600754610cc3565b6009548590611316565b90505b30600090815260016020526040902054601354600160a81b900460ff16158015610f7a57506013546001600160a01b038581169116145b8015610f8f5750601354600160b01b900460ff165b8015610f9c575060105481115b8015610fab5750600c54600d54115b15610fdf57610fcd610fc884610fc3846011546113e1565b6113e1565b61115e565b478015610fdd57610fdd476112d8565b505b505b801561105b573060009081526001602052604090205461100190826113f6565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110529085815260200190565b60405180910390a35b6001600160a01b03841660009081526001602052604090205461107e9083611455565b6001600160a01b0385166000908152600160205260409020556110c36110a48383611455565b6001600160a01b038516600090815260016020526040902054906113f6565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61110d8585611455565b60405190815260200160405180910390a350505050565b600081848411156111485760405162461bcd60e51b815260040161050291906114c5565b50600061115584866117f5565b95945050505050565b6013805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106111a6576111a6611808565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156111ff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611223919061175c565b8160018151811061123657611236611808565b6001600160a01b03928316602091820292909201015260125461125c9130911684610a26565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac9479061129590859060009086903090429060040161181e565b600060405180830381600087803b1580156112af57600080fd5b505af11580156112c3573d6000803e3d6000fd5b50506013805460ff60a81b1916905550505050565b6005546040516101009091046001600160a01b0316906108fc8315029083906000818181858888f193505050501580156104d4573d6000803e3d6000fd5b600082600003611328575060006103f0565b60006113348385611710565b905082611341858361188f565b146113985760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610502565b9392505050565b600061139883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611497565b60008183116113f05782611398565b50919050565b60008061140383856117c9565b9050838110156113985760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610502565b600061139883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611124565b600081836114b85760405162461bcd60e51b815260040161050291906114c5565b506000611155848661188f565b600060208083528351808285015260005b818110156114f2578581018301518582016040015282016114d6565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461152857600080fd5b50565b6000806040838503121561153e57600080fd5b823561154981611513565b946020939093013593505050565b60008060006060848603121561156c57600080fd5b833561157781611513565b9250602084013561158781611513565b929592945050506040919091013590565b6000602082840312156115aa57600080fd5b813561139881611513565b600080604083850312156115c857600080fd5b82356115d381611513565b915060208301356115e381611513565b809150509250929050565b60006020828403121561160057600080fd5b5035919050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561165857816000190482111561163e5761163e611607565b8085161561164b57918102915b93841c9390800290611622565b509250929050565b60008261166f575060016103f0565b8161167c575060006103f0565b8160018114611692576002811461169c576116b8565b60019150506103f0565b60ff8411156116ad576116ad611607565b50506001821b6103f0565b5060208310610133831016604e8410600b84101617156116db575081810a6103f0565b6116e5838361161d565b80600019048211156116f9576116f9611607565b029392505050565b600061139860ff841683611660565b80820281158282048414176103f0576103f0611607565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561176e57600080fd5b815161139881611513565b60008060006060848603121561178e57600080fd5b8351925060208401519150604084015190509250925092565b6000602082840312156117b957600080fd5b8151801515811461139857600080fd5b808201808211156103f0576103f0611607565b6000600182016117ee576117ee611607565b5060010190565b818103818111156103f0576103f0611607565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561186e5784516001600160a01b031683529383019391830191600101611849565b50506001600160a01b03969096166060850152505050608001529392505050565b6000826118ac57634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122058a60fd965c343e2209c0ab59e4c4db7f006300736cf2b9ee05ba770fcbbe3d064736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101235760003560e01c80637d1db4a5116100a0578063bf474bed11610064578063bf474bed14610334578063c876d0b91461034a578063c9567bf914610364578063dd62ed3e14610379578063ec1f3f63146103bf57600080fd5b80637d1db4a5146102915780638da5cb5b146102a75780638f9a55c0146102cf57806395d89b41146102e5578063a9059cbb1461031457600080fd5b8063313ce567116100e7578063313ce567146101fe57806351bc3c851461021a57806370a0823114610231578063715018a614610267578063751039fc1461027c57600080fd5b806306fdde031461012f578063095ea7b3146101755780630faee56f146101a557806318160ddd146101c957806323b872dd146101de57600080fd5b3661012a57005b600080fd5b34801561013b57600080fd5b5060408051808201909152600b81526a29b634b8383c9021b7b4b760a91b60208201525b60405161016c91906114c5565b60405180910390f35b34801561018157600080fd5b5061019561019036600461152b565b6103df565b604051901515815260200161016c565b3480156101b157600080fd5b506101bb60115481565b60405190815260200161016c565b3480156101d557600080fd5b506101bb6103f6565b3480156101ea57600080fd5b506101956101f9366004611557565b610417565b34801561020a57600080fd5b506040516009815260200161016c565b34801561022657600080fd5b5061022f610480565b005b34801561023d57600080fd5b506101bb61024c366004611598565b6001600160a01b031660009081526001602052604090205490565b34801561027357600080fd5b5061022f6104d8565b34801561028857600080fd5b5061022f610555565b34801561029d57600080fd5b506101bb600e5481565b3480156102b357600080fd5b506000546040516001600160a01b03909116815260200161016c565b3480156102db57600080fd5b506101bb600f5481565b3480156102f157600080fd5b50604080518082019091526006815265534c4950505960d01b602082015261015f565b34801561032057600080fd5b5061019561032f36600461152b565b610611565b34801561034057600080fd5b506101bb60105481565b34801561035657600080fd5b506005546101959060ff1681565b34801561037057600080fd5b5061022f61061e565b34801561038557600080fd5b506101bb6103943660046115b5565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156103cb57600080fd5b5061022f6103da3660046115ee565b6109da565b60006103ec338484610a26565b5060015b92915050565b60006104046009600a611701565b61041290633b9aca00611710565b905090565b6000610424848484610b4a565b6104768433610471856040518060600160405280602881526020016118b2602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190611124565b610a26565b5060019392505050565b60055461010090046001600160a01b0316336001600160a01b0316146104a557600080fd5b3060009081526001602052604090205480156104c4576104c48161115e565b4780156104d4576104d4816112d8565b5050565b6000546001600160a01b0316331461050b5760405162461bcd60e51b815260040161050290611727565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b0316331461057f5760405162461bcd60e51b815260040161050290611727565b61058b6009600a611701565b61059990633b9aca00611710565b600e556105a86009600a611701565b6105b690633b9aca00611710565b600f556005805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6105f06009600a611701565b6105fe90633b9aca00611710565b60405190815260200160405180910390a1565b60006103ec338484610b4a565b6000546001600160a01b031633146106485760405162461bcd60e51b815260040161050290611727565b601354600160a01b900460ff16156106a25760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610502565b601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556106eb9030906106dd6009600a611701565b61047190633b9aca00611710565b601260009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561073e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610762919061175c565b6001600160a01b031663c9c6539630601260009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107e8919061175c565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610835573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610859919061175c565b601380546001600160a01b039283166001600160a01b03199091161790556012541663f305d71947306108a1816001600160a01b031660009081526001602052604090205490565b6000806108b66000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af115801561091e573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906109439190611779565b505060135460125460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af115801561099c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c091906117a7565b506013805462ff00ff60a01b19166201000160a01b179055565b60055461010090046001600160a01b0316336001600160a01b0316146109ff57600080fd5b6008548111158015610a1357506009548111155b610a1c57600080fd5b6008819055600955565b6001600160a01b038316610a885760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610502565b6001600160a01b038216610ae95760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610502565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610bae5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610502565b6001600160a01b038216610c105760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610502565b60008111610c725760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610502565b600080546001600160a01b03858116911614801590610c9f57506000546001600160a01b03848116911614155b15610fe157610cd06064610cca600a54600d5411610cbf57600654610cc3565b6008545b8590611316565b9061139f565b60055490915060ff1615610db8576012546001600160a01b03848116911614801590610d0a57506013546001600160a01b03848116911614155b15610db857326000908152600460205260409020544311610da55760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a401610502565b3260009081526004602052604090204390555b6013546001600160a01b038581169116148015610de357506012546001600160a01b03848116911614155b8015610e0857506001600160a01b03831660009081526003602052604090205460ff16155b15610ef057600e54821115610e5f5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610502565b600f5482610e82856001600160a01b031660009081526001602052604090205490565b610e8c91906117c9565b1115610eda5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610502565b600d8054906000610eea836117dc565b91905055505b6013546001600160a01b038481169116148015610f1657506001600160a01b0384163014155b15610f4357610f406064610cca600b54600d5411610f3657600754610cc3565b6009548590611316565b90505b30600090815260016020526040902054601354600160a81b900460ff16158015610f7a57506013546001600160a01b038581169116145b8015610f8f5750601354600160b01b900460ff165b8015610f9c575060105481115b8015610fab5750600c54600d54115b15610fdf57610fcd610fc884610fc3846011546113e1565b6113e1565b61115e565b478015610fdd57610fdd476112d8565b505b505b801561105b573060009081526001602052604090205461100190826113f6565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110529085815260200190565b60405180910390a35b6001600160a01b03841660009081526001602052604090205461107e9083611455565b6001600160a01b0385166000908152600160205260409020556110c36110a48383611455565b6001600160a01b038516600090815260016020526040902054906113f6565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61110d8585611455565b60405190815260200160405180910390a350505050565b600081848411156111485760405162461bcd60e51b815260040161050291906114c5565b50600061115584866117f5565b95945050505050565b6013805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106111a6576111a6611808565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156111ff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611223919061175c565b8160018151811061123657611236611808565b6001600160a01b03928316602091820292909201015260125461125c9130911684610a26565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac9479061129590859060009086903090429060040161181e565b600060405180830381600087803b1580156112af57600080fd5b505af11580156112c3573d6000803e3d6000fd5b50506013805460ff60a81b1916905550505050565b6005546040516101009091046001600160a01b0316906108fc8315029083906000818181858888f193505050501580156104d4573d6000803e3d6000fd5b600082600003611328575060006103f0565b60006113348385611710565b905082611341858361188f565b146113985760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610502565b9392505050565b600061139883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611497565b60008183116113f05782611398565b50919050565b60008061140383856117c9565b9050838110156113985760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610502565b600061139883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611124565b600081836114b85760405162461bcd60e51b815260040161050291906114c5565b506000611155848661188f565b600060208083528351808285015260005b818110156114f2578581018301518582016040015282016114d6565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461152857600080fd5b50565b6000806040838503121561153e57600080fd5b823561154981611513565b946020939093013593505050565b60008060006060848603121561156c57600080fd5b833561157781611513565b9250602084013561158781611513565b929592945050506040919091013590565b6000602082840312156115aa57600080fd5b813561139881611513565b600080604083850312156115c857600080fd5b82356115d381611513565b915060208301356115e381611513565b809150509250929050565b60006020828403121561160057600080fd5b5035919050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561165857816000190482111561163e5761163e611607565b8085161561164b57918102915b93841c9390800290611622565b509250929050565b60008261166f575060016103f0565b8161167c575060006103f0565b8160018114611692576002811461169c576116b8565b60019150506103f0565b60ff8411156116ad576116ad611607565b50506001821b6103f0565b5060208310610133831016604e8410600b84101617156116db575081810a6103f0565b6116e5838361161d565b80600019048211156116f9576116f9611607565b029392505050565b600061139860ff841683611660565b80820281158282048414176103f0576103f0611607565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561176e57600080fd5b815161139881611513565b60008060006060848603121561178e57600080fd5b8351925060208401519150604084015190509250925092565b6000602082840312156117b957600080fd5b8151801515811461139857600080fd5b808201808211156103f0576103f0611607565b6000600182016117ee576117ee611607565b5060010190565b818103818111156103f0576103f0611607565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561186e5784516001600160a01b031683529383019391830191600101611849565b50506001600160a01b03969096166060850152505050608001529392505050565b6000826118ac57634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122058a60fd965c343e2209c0ab59e4c4db7f006300736cf2b9ee05ba770fcbbe3d064736f6c63430008130033

Deployed Bytecode Sourcemap

3557:8159:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5442:83;;;;;;;;;;-1:-1:-1;5512:5:0;;;;;;;;;;;;-1:-1:-1;;;5512:5:0;;;;5442:83;;;;;;;:::i;:::-;;;;;;;;6275:161;;;;;;;;;;-1:-1:-1;6275:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6275:161:0;1023:187:1;4716:53:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;4716:53:0;1215:177:1;5719:95:0;;;;;;;;;;;;;:::i;6444:313::-;;;;;;;;;;-1:-1:-1;6444:313:0;;;;;:::i;:::-;;:::i;5628:83::-;;;;;;;;;;-1:-1:-1;5628:83:0;;4349:1;2000:36:1;;1988:2;1973:18;5628:83:0;1858:184:1;11365:348:0;;;;;;;;;;;;;:::i;:::-;;5822:119;;;;;;;;;;-1:-1:-1;5822:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;5915:18:0;5888:7;5915:18;;;:9;:18;;;;;;;5822:119;2640:148;;;;;;;;;;;;;:::i;10113:196::-;;;;;;;;;;;;;:::i;4526:56::-;;;;;;;;;;;;;;;;2426:79;;;;;;;;;;-1:-1:-1;2464:7:0;2491:6;2426:79;;-1:-1:-1;;;;;2491:6:0;;;2445:51:1;;2433:2;2418:18;2426:79:0;2299:203:1;4589:56:0;;;;;;;;;;;;;;;;5533:87;;;;;;;;;;-1:-1:-1;5605:7:0;;;;;;;;;;;;-1:-1:-1;;;5605:7:0;;;;5533:87;;5949:167;;;;;;;;;;-1:-1:-1;5949:167:0;;;;;:::i;:::-;;:::i;4652:57::-;;;;;;;;;;;;;;;;3905:39;;;;;;;;;;-1:-1:-1;3905:39:0;;;;;;;;10417:671;;;;;;;;;;;;;:::i;6124:143::-;;;;;;;;;;-1:-1:-1;6124:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6232:18:0;;;6205:7;6232:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6124:143;11102:218;;;;;;;;;;-1:-1:-1;11102:218:0;;;;;:::i;:::-;;:::i;6275:161::-;6350:4;6367:39;261:10;6390:7;6399:6;6367:8;:39::i;:::-;-1:-1:-1;6424:4:0;6275:161;;;;;:::o;5719:95::-;5772:7;4405:13;4349:1;4405:2;:13;:::i;:::-;4392:26;;:10;:26;:::i;:::-;5792:14;;5719:95;:::o;6444:313::-;6542:4;6559:36;6569:6;6577:9;6588:6;6559:9;:36::i;:::-;6606:121;6615:6;261:10;6637:89;6675:6;6637:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6637:19:0;;;;;;:11;:19;;;;;;;;261:10;6637:33;;;;;;;;;;:37;:89::i;:::-;6606:8;:121::i;:::-;-1:-1:-1;6745:4:0;6444:313;;;;;:::o;11365:348::-;11429:10;;;;;-1:-1:-1;;;;;11429:10:0;261;-1:-1:-1;;;;;11415:24:0;;11407:33;;;;;;11490:4;11451:20;5915:18;;;:9;:18;;;;;;11510:14;;11507:73;;11538:30;11555:12;11538:16;:30::i;:::-;11609:21;11644:12;;11641:65;;11670:24;11683:10;11670:12;:24::i;:::-;11396:317;;11365:348::o;2640:148::-;2553:6;;-1:-1:-1;;;;;2553:6:0;261:10;2553:22;2545:67;;;;-1:-1:-1;;;2545:67:0;;;;;;;:::i;:::-;;;;;;;;;2747:1:::1;2731:6:::0;;2710:40:::1;::::0;-1:-1:-1;;;;;2731:6:0;;::::1;::::0;2710:40:::1;::::0;2747:1;;2710:40:::1;2778:1;2761:19:::0;;-1:-1:-1;;;;;;2761:19:0::1;::::0;;2640:148::o;10113:196::-;2553:6;;-1:-1:-1;;;;;2553:6:0;261:10;2553:22;2545:67;;;;-1:-1:-1;;;2545:67:0;;;;;;;:::i;:::-;4405:13:::1;4349:1;4405:2;:13;:::i;:::-;4392:26;::::0;:10:::1;:26;:::i;:::-;10166:12;:22:::0;4405:13:::1;4349:1;4405:2;:13;:::i;:::-;4392:26;::::0;:10:::1;:26;:::i;:::-;10199:14;:22:::0;10232:20:::1;:26:::0;;-1:-1:-1;;10232:26:0::1;::::0;;10274:27:::1;4405:13;4349:1;-1:-1:-1::0;4405:13:0::1;:::i;:::-;4392:26;::::0;:10:::1;:26;:::i;:::-;10274:27;::::0;1361:25:1;;;1349:2;1334:18;10274:27:0::1;;;;;;;10113:196::o:0;5949:167::-;6027:4;6044:42;261:10;6068:9;6079:6;6044:9;:42::i;10417:671::-;2553:6;;-1:-1:-1;;;;;2553:6:0;261:10;2553:22;2545:67;;;;-1:-1:-1;;;2545:67:0;;;;;;;:::i;:::-;10481:11:::1;::::0;-1:-1:-1;;;10481:11:0;::::1;;;10480:12;10472:47;;;::::0;-1:-1:-1;;;10472:47:0;;5336:2:1;10472:47:0::1;::::0;::::1;5318:21:1::0;5375:2;5355:18;;;5348:30;5414:25;5394:18;;;5387:53;5457:18;;10472:47:0::1;5134:347:1::0;10472:47:0::1;10530:15;:80:::0;;-1:-1:-1;;;;;;10530:80:0::1;10567:42;10530:80:::0;;::::1;::::0;;;10621:58:::1;::::0;10638:4:::1;::::0;4405:13:::1;4349:1;4405:2;:13;:::i;:::-;4392:26;::::0;:10:::1;:26;:::i;10621:58::-;10724:15;;;;;;;;;-1:-1:-1::0;;;;;10724:15:0::1;-1:-1:-1::0;;;;;10724:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10706:55:0::1;;10770:4;10777:15;;;;;;;;;-1:-1:-1::0;;;;;10777:15:0::1;-1:-1:-1::0;;;;;10777:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10706:94;::::0;-1:-1:-1;;;;;;10706:94:0::1;::::0;;;;;;-1:-1:-1;;;;;5972:15:1;;;10706:94:0::1;::::0;::::1;5954:34:1::0;6024:15;;6004:18;;;5997:43;5889:18;;10706:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10690:13;:110:::0;;-1:-1:-1;;;;;10690:110:0;;::::1;-1:-1:-1::0;;;;;;10690:110:0;;::::1;;::::0;;10811:15:::1;::::0;::::1;:31;10850:21;10881:4;10887:24;10881:4:::0;-1:-1:-1;;;;;5915:18:0;5888:7;5915:18;;;:9;:18;;;;;;;5822:119;10887:24:::1;10912:1;10914::::0;10916:7:::1;2464::::0;2491:6;-1:-1:-1;;;;;2491:6:0;;2426:79;10916:7:::1;10811:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;10811:129:0;;;-1:-1:-1;;;;;6410:15:1;;;10811:129:0::1;::::0;::::1;6392:34:1::0;6442:18;;;6435:34;;;;6485:18;;;6478:34;;;;6528:18;;;6521:34;6592:15;;;6571:19;;;6564:44;10924:15:0::1;6624:19:1::0;;;6617:35;6326:19;;10811:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;10958:13:0::1;::::0;10989:15:::1;::::0;10951:71:::1;::::0;-1:-1:-1;;;10951:71:0;;-1:-1:-1;;;;;10989:15:0;;::::1;10951:71;::::0;::::1;7148:51:1::0;-1:-1:-1;;7215:18:1;;;7208:34;10958:13:0;::::1;::::0;-1:-1:-1;10951:29:0::1;::::0;7121:18:1;;10951:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;11033:11:0::1;:18:::0;;-1:-1:-1;;;;11062:18:0;-1:-1:-1;;;11062:18:0;;;10417:671::o;11102:218::-;11177:10;;;;;-1:-1:-1;;;;;11177:10:0;261;-1:-1:-1;;;;;11163:24:0;;11155:33;;;;;;11214:12;;11205:7;:21;;:47;;;;;11239:13;;11230:7;:22;;11205:47;11197:56;;;;;;11262:12;:20;;;11291:13;:21;11102:218::o;6765:335::-;-1:-1:-1;;;;;6858:19:0;;6850:68;;;;-1:-1:-1;;;6850:68:0;;7737:2:1;6850:68:0;;;7719:21:1;7776:2;7756:18;;;7749:30;7815:34;7795:18;;;7788:62;-1:-1:-1;;;7866:18:1;;;7859:34;7910:19;;6850:68:0;7535:400:1;6850:68:0;-1:-1:-1;;;;;6937:21:0;;6929:68;;;;-1:-1:-1;;;6929:68:0;;8142:2:1;6929:68:0;;;8124:21:1;8181:2;8161:18;;;8154:30;8220:34;8200:18;;;8193:62;-1:-1:-1;;;8271:18:1;;;8264:32;8313:19;;6929:68:0;7940:398:1;6929:68:0;-1:-1:-1;;;;;7008:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7060:32;;1361:25:1;;;7060:32:0;;1334:18:1;7060:32:0;;;;;;;6765:335;;;:::o;7108:2398::-;-1:-1:-1;;;;;7196:18:0;;7188:68;;;;-1:-1:-1;;;7188:68:0;;8545:2:1;7188:68:0;;;8527:21:1;8584:2;8564:18;;;8557:30;8623:34;8603:18;;;8596:62;-1:-1:-1;;;8674:18:1;;;8667:35;8719:19;;7188:68:0;8343:401:1;7188:68:0;-1:-1:-1;;;;;7275:16:0;;7267:64;;;;-1:-1:-1;;;7267:64:0;;8951:2:1;7267:64:0;;;8933:21:1;8990:2;8970:18;;;8963:30;9029:34;9009:18;;;9002:62;-1:-1:-1;;;9080:18:1;;;9073:33;9123:19;;7267:64:0;8749:399:1;7267:64:0;7359:1;7350:6;:10;7342:64;;;;-1:-1:-1;;;7342:64:0;;9355:2:1;7342:64:0;;;9337:21:1;9394:2;9374:18;;;9367:30;9433:34;9413:18;;;9406:62;-1:-1:-1;;;9484:18:1;;;9477:39;9533:19;;7342:64:0;9153:405:1;7342:64:0;7417:17;2491:6;;-1:-1:-1;;;;;7451:15:0;;;2491:6;;7451:15;;;;:32;;-1:-1:-1;2464:7:0;2491:6;-1:-1:-1;;;;;7470:13:0;;;2491:6;;7470:13;;7451:32;7447:1703;;;7512:76;7584:3;7512:67;7534:15;;7524:9;;:25;7523:55;;7564:14;;7523:55;;;7551:12;;7523:55;7512:6;;:10;:67::i;:::-;:71;;:76::i;:::-;7609:20;;7500:88;;-1:-1:-1;7609:20:0;;7605:508;;;7670:15;;-1:-1:-1;;;;;7656:30:0;;;7670:15;;7656:30;;;;:62;;-1:-1:-1;7704:13:0;;-1:-1:-1;;;;;7690:28:0;;;7704:13;;7690:28;;7656:62;7652:444;;;7810:9;7781:39;;;;:28;:39;;;;;;7854:12;-1:-1:-1;7745:250:0;;;;-1:-1:-1;;;7745:250:0;;9765:2:1;7745:250:0;;;9747:21:1;9804:2;9784:18;;;9777:30;9843:34;9823:18;;;9816:62;9914:34;9894:18;;;9887:62;-1:-1:-1;;;9965:19:1;;;9958:40;10015:19;;7745:250:0;9563:477:1;7745:250:0;8049:9;8020:39;;;;:28;:39;;;;;8062:12;8020:54;;7652:444;8141:13;;-1:-1:-1;;;;;8133:21:0;;;8141:13;;8133:21;:55;;;;-1:-1:-1;8172:15:0;;-1:-1:-1;;;;;8158:30:0;;;8172:15;;8158:30;;8133:55;:83;;;;-1:-1:-1;;;;;;8194:22:0;;;;;;:18;:22;;;;;;;;8192:24;8133:83;8129:313;;;8256:12;;8246:6;:22;;8238:60;;;;-1:-1:-1;;;8238:60:0;;10247:2:1;8238:60:0;;;10229:21:1;10286:2;10266:18;;;10259:30;10325:27;10305:18;;;10298:55;10370:18;;8238:60:0;10045:349:1;8238:60:0;8351:14;;8341:6;8325:13;8335:2;-1:-1:-1;;;;;5915:18:0;5888:7;5915:18;;;:9;:18;;;;;;;5822:119;8325:13;:22;;;;:::i;:::-;:40;;8317:79;;;;-1:-1:-1;;;8317:79:0;;10731:2:1;8317:79:0;;;10713:21:1;10770:2;10750:18;;;10743:30;10809:28;10789:18;;;10782:56;10855:18;;8317:79:0;10529:350:1;8317:79:0;8415:9;:11;;;:9;:11;;;:::i;:::-;;;;;;8129:313;8467:13;;-1:-1:-1;;;;;8461:19:0;;;8467:13;;8461:19;:43;;;;-1:-1:-1;;;;;;8484:20:0;;8499:4;8484:20;;8461:43;8458:174;;;8537:79;8612:3;8537:70;8559:16;;8549:9;;:26;8548:58;;8591:15;;8548:58;;;8577:13;;8537:6;;:10;:70::i;:79::-;8525:91;;8458:174;8697:4;8648:28;5915:18;;;:9;:18;;;;;;8723:6;;-1:-1:-1;;;8723:6:0;;;;8722:7;:32;;;;-1:-1:-1;8741:13:0;;-1:-1:-1;;;;;8733:21:0;;;8741:13;;8733:21;8722:32;:47;;;;-1:-1:-1;8758:11:0;;-1:-1:-1;;;8758:11:0;;;;8722:47;:89;;;;;8794:17;;8773:20;:38;8722:89;:121;;;;;8825:18;;8815:9;;:28;8722:121;8718:421;;;8864:67;8881:49;8885:6;8892:37;8896:20;8917:11;;8892:3;:37::i;:::-;8881:3;:49::i;:::-;8864:16;:67::i;:::-;8979:21;9022:22;;9019:105;;9069:35;9082:21;9069:12;:35::i;:::-;8845:294;8718:421;7485:1665;7447:1703;9165:11;;9162:161;;9233:4;9215:24;;;;:9;:24;;;;;;:39;;9244:9;9215:28;:39::i;:::-;9208:4;9190:24;;;;:9;:24;;;;;;;:64;;;;9272:39;;-1:-1:-1;;;;;9272:39:0;;;;;;;9301:9;1361:25:1;;1349:2;1334:18;;1215:177;9272:39:0;;;;;;;;9162:161;-1:-1:-1;;;;;9349:15:0;;;;;;:9;:15;;;;;;:27;;9369:6;9349:19;:27::i;:::-;-1:-1:-1;;;;;9333:15:0;;;;;;:9;:15;;;;;:43;9401:40;9419:21;:6;9430:9;9419:10;:21::i;:::-;-1:-1:-1;;;;;9401:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;9387:13:0;;;;;;;:9;:13;;;;;:54;;;;9457:41;;;9476:21;:6;9487:9;9476:10;:21::i;:::-;9457:41;;1361:25:1;;;1349:2;1334:18;9457:41:0;;;;;;;7177:2329;7108:2398;;;:::o;1318:190::-;1404:7;1440:12;1432:6;;;;1424:29;;;;-1:-1:-1;;;1424:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1464:9:0;1476:5;1480:1;1476;:5;:::i;:::-;1464:17;1318:190;-1:-1:-1;;;;;1318:190:0:o;9622:483::-;5051:6;:13;;-1:-1:-1;;;;5051:13:0;-1:-1:-1;;;5051:13:0;;;9724:16:::1;::::0;;9738:1:::1;9724:16:::0;;;;;::::1;::::0;;-1:-1:-1;;9724:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9724:16:0::1;9700:40;;9769:4;9751;9756:1;9751:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9751:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;9795:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;9795:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;9751:7;;9795:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9785:4;9790:1;9785:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9785:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;9860:15:::1;::::0;9828:62:::1;::::0;9845:4:::1;::::0;9860:15:::1;9878:11:::0;9828:8:::1;:62::i;:::-;9901:15;::::0;:196:::1;::::0;-1:-1:-1;;;9901:196:0;;-1:-1:-1;;;;;9901:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;9982:11;;9901:15:::1;::::0;10024:4;;10051::::1;::::0;10071:15:::1;::::0;9901:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5087:6:0;:14;;-1:-1:-1;;;;5087:14:0;;;-1:-1:-1;;;;9622:483:0:o;10317:92::-;10374:10;;:27;;:10;;;;-1:-1:-1;;;;;10374:10:0;;:27;;;;;;;;;;;;:10;:27;;;;;;;;;;;;;;;;;;;1516:246;1574:7;1598:1;1603;1598:6;1594:47;;-1:-1:-1;1628:1:0;1621:8;;1594:47;1651:9;1663:5;1667:1;1663;:5;:::i;:::-;1651:17;-1:-1:-1;1696:1:0;1687:5;1691:1;1651:17;1687:5;:::i;:::-;:10;1679:56;;;;-1:-1:-1;;;1679:56:0;;12830:2:1;1679:56:0;;;12812:21:1;12869:2;12849:18;;;12842:30;12908:34;12888:18;;;12881:62;-1:-1:-1;;;12959:18:1;;;12952:31;13000:19;;1679:56:0;12628:397:1;1679:56:0;1753:1;1516:246;-1:-1:-1;;;1516:246:0:o;1770:132::-;1828:7;1855:39;1859:1;1862;1855:39;;;;;;;;;;;;;;;;;:3;:39::i;9516:98::-;9573:7;9600:1;9598;:3;9597:9;;9605:1;9597:9;;;-1:-1:-1;9603:1:0;9516:98;-1:-1:-1;9516:98:0:o;987:179::-;1045:7;;1077:5;1081:1;1077;:5;:::i;:::-;1065:17;;1106:1;1101;:6;;1093:46;;;;-1:-1:-1;;;1093:46:0;;13232:2:1;1093:46:0;;;13214:21:1;13271:2;13251:18;;;13244:30;13310:29;13290:18;;;13283:57;13357:18;;1093:46:0;13030:351:1;1174:136:0;1232:7;1259:43;1263:1;1266;1259:43;;;;;;;;;;;;;;;;;:3;:43::i;1910:189::-;1996:7;2031:12;2024:5;2016:28;;;;-1:-1:-1;;;2016:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2055:9:0;2067:5;2071:1;2067;: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;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2047:247::-;2106:6;2159:2;2147:9;2138:7;2134:23;2130:32;2127:52;;;2175:1;2172;2165:12;2127:52;2214:9;2201:23;2233:31;2258:5;2233:31;:::i;2507:388::-;2575:6;2583;2636:2;2624:9;2615:7;2611:23;2607:32;2604:52;;;2652:1;2649;2642:12;2604:52;2691:9;2678:23;2710:31;2735:5;2710:31;:::i;:::-;2760:5;-1:-1:-1;2817:2:1;2802:18;;2789:32;2830:33;2789:32;2830:33;:::i;:::-;2882:7;2872:17;;;2507:388;;;;;:::o;2900:180::-;2959:6;3012:2;3000:9;2991:7;2987:23;2983:32;2980:52;;;3028:1;3025;3018:12;2980:52;-1:-1:-1;3051:23:1;;2900:180;-1:-1:-1;2900:180:1:o;3085:127::-;3146:10;3141:3;3137:20;3134:1;3127:31;3177:4;3174:1;3167:15;3201:4;3198:1;3191:15;3217:422;3306:1;3349:5;3306:1;3363:270;3384:7;3374:8;3371:21;3363:270;;;3443:4;3439:1;3435:6;3431:17;3425:4;3422:27;3419:53;;;3452:18;;:::i;:::-;3502:7;3492:8;3488:22;3485:55;;;3522:16;;;;3485:55;3601:22;;;;3561:15;;;;3363:270;;;3367:3;3217:422;;;;;:::o;3644:806::-;3693:5;3723:8;3713:80;;-1:-1:-1;3764:1:1;3778:5;;3713:80;3812:4;3802:76;;-1:-1:-1;3849:1:1;3863:5;;3802:76;3894:4;3912:1;3907:59;;;;3980:1;3975:130;;;;3887:218;;3907:59;3937:1;3928:10;;3951:5;;;3975:130;4012:3;4002:8;3999:17;3996:43;;;4019:18;;:::i;:::-;-1:-1:-1;;4075:1:1;4061:16;;4090:5;;3887:218;;4189:2;4179:8;4176:16;4170:3;4164:4;4161:13;4157:36;4151:2;4141:8;4138:16;4133:2;4127:4;4124:12;4120:35;4117:77;4114:159;;;-1:-1:-1;4226:19:1;;;4258:5;;4114:159;4305:34;4330:8;4324:4;4305:34;:::i;:::-;4375:6;4371:1;4367:6;4363:19;4354:7;4351:32;4348:58;;;4386:18;;:::i;:::-;4424:20;;3644:806;-1:-1:-1;;;3644:806:1:o;4455:140::-;4513:5;4542:47;4583:4;4573:8;4569:19;4563:4;4542:47;:::i;4600:168::-;4673:9;;;4704;;4721:15;;;4715:22;;4701:37;4691:71;;4742:18;;:::i;4773:356::-;4975:2;4957:21;;;4994:18;;;4987:30;5053:34;5048:2;5033:18;;5026:62;5120:2;5105:18;;4773:356::o;5486:251::-;5556:6;5609:2;5597:9;5588:7;5584:23;5580:32;5577:52;;;5625:1;5622;5615:12;5577:52;5657:9;5651:16;5676:31;5701:5;5676:31;:::i;6663:306::-;6751:6;6759;6767;6820:2;6808:9;6799:7;6795:23;6791:32;6788:52;;;6836:1;6833;6826:12;6788:52;6865:9;6859:16;6849:26;;6915:2;6904:9;6900:18;6894:25;6884:35;;6959:2;6948:9;6944:18;6938:25;6928:35;;6663:306;;;;;:::o;7253:277::-;7320:6;7373:2;7361:9;7352:7;7348:23;7344:32;7341:52;;;7389:1;7386;7379:12;7341:52;7421:9;7415:16;7474:5;7467:13;7460:21;7453:5;7450:32;7440:60;;7496:1;7493;7486:12;10399:125;10464:9;;;10485:10;;;10482:36;;;10498:18;;:::i;10884:135::-;10923:3;10944:17;;;10941:43;;10964:18;;:::i;:::-;-1:-1:-1;11011:1:1;11000:13;;10884:135::o;11024:128::-;11091:9;;;11112:11;;;11109:37;;;11126:18;;:::i;11289:127::-;11350:10;11345:3;11341:20;11338:1;11331:31;11381:4;11378:1;11371:15;11405:4;11402:1;11395:15;11421:980;11683:4;11731:3;11720:9;11716:19;11762:6;11751:9;11744:25;11788:2;11826:6;11821:2;11810:9;11806:18;11799:34;11869:3;11864:2;11853:9;11849:18;11842:31;11893:6;11928;11922:13;11959:6;11951;11944:22;11997:3;11986:9;11982:19;11975:26;;12036:2;12028:6;12024:15;12010:29;;12057:1;12067:195;12081:6;12078:1;12075:13;12067:195;;;12146:13;;-1:-1:-1;;;;;12142:39:1;12130:52;;12237:15;;;;12202:12;;;;12178:1;12096:9;12067:195;;;-1:-1:-1;;;;;;;12318:32:1;;;;12313:2;12298:18;;12291:60;-1:-1:-1;;;12382:3:1;12367:19;12360:35;12279:3;11421:980;-1:-1:-1;;;11421:980:1:o;12406:217::-;12446:1;12472;12462:132;;12516:10;12511:3;12507:20;12504:1;12497:31;12551:4;12548:1;12541:15;12579:4;12576:1;12569:15;12462:132;-1:-1:-1;12608:9:1;;12406:217::o

Swarm Source

ipfs://58a60fd965c343e2209c0ab59e4c4db7f006300736cf2b9ee05ba770fcbbe3d0

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.