ETH Price: $1,500.29 (-16.18%)

Contract

0x18194a8480fdA8111Ac258489dBb164752ddd711
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve182783612023-10-04 16:30:47550 days ago1696437047IN
0x18194a84...752ddd711
0 ETH0.00045818.9
Approve181302092023-09-13 21:58:47571 days ago1694642327IN
0x18194a84...752ddd711
0 ETH0.0006097913.19406357
Approve179987722023-08-26 12:14:35589 days ago1693052075IN
0x18194a84...752ddd711
0 ETH0.0005387811.65772474
Approve179977232023-08-26 8:42:59590 days ago1693039379IN
0x18194a84...752ddd711
0 ETH0.0005591112.07877581
Approve179975242023-08-26 8:02:47590 days ago1693036967IN
0x18194a84...752ddd711
0 ETH0.0005684412.22021545
Approve179973652023-08-26 7:30:35590 days ago1693035035IN
0x18194a84...752ddd711
0 ETH0.0005576311.98772439
Approve179973512023-08-26 7:27:47590 days ago1693034867IN
0x18194a84...752ddd711
0 ETH0.0005573111.9809728
Approve179973502023-08-26 7:27:35590 days ago1693034855IN
0x18194a84...752ddd711
0 ETH0.0005868712.6
Approve179973472023-08-26 7:26:59590 days ago1693034819IN
0x18194a84...752ddd711
0 ETH0.0015815734
Approve179973432023-08-26 7:25:59590 days ago1693034759IN
0x18194a84...752ddd711
0 ETH0.0005522211.87150952
Approve179973412023-08-26 7:25:35590 days ago1693034735IN
0x18194a84...752ddd711
0 ETH0.0005553311.93822811
Approve179973342023-08-26 7:24:11590 days ago1693034651IN
0x18194a84...752ddd711
0 ETH0.0005874212.62826508
Approve179973332023-08-26 7:23:59590 days ago1693034639IN
0x18194a84...752ddd711
0 ETH0.0005861112.6
Approve179973232023-08-26 7:21:59590 days ago1693034519IN
0x18194a84...752ddd711
0 ETH0.0006596314.25781041
Approve179973122023-08-26 7:19:35590 days ago1693034375IN
0x18194a84...752ddd711
0 ETH0.0006349513.65
Approve179972852023-08-26 7:13:59590 days ago1693034039IN
0x18194a84...752ddd711
0 ETH0.0005153811.07941885
Transfer179972772023-08-26 7:12:23590 days ago1693033943IN
0x18194a84...752ddd711
0 ETH0.0006596511.72885656
Transfer179972742023-08-26 7:11:47590 days ago1693033907IN
0x18194a84...752ddd711
0 ETH0.0006966412.38656307
Approve179966192023-08-26 4:59:23590 days ago1693025963IN
0x18194a84...752ddd711
0 ETH0.0005854112.58486541
Transfer179966102023-08-26 4:57:35590 days ago1693025855IN
0x18194a84...752ddd711
0 ETH0.0006926712.31600757
Approve179964512023-08-26 4:24:35590 days ago1693023875IN
0x18194a84...752ddd711
0 ETH0.0005990312.86124499
Approve179958062023-08-26 2:14:23590 days ago1693016063IN
0x18194a84...752ddd711
0 ETH0.0006851214.80490326
Transfer179952772023-08-26 0:27:35590 days ago1693009655IN
0x18194a84...752ddd711
0 ETH0.0006726911.96072939
Approve179951172023-08-25 23:55:35590 days ago1693007735IN
0x18194a84...752ddd711
0 ETH0.0006837914.7
Approve179949132023-08-25 23:14:23590 days ago1693005263IN
0x18194a84...752ddd711
0 ETH0.000636413.66358949
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer181302122023-09-13 21:59:23571 days ago1694642363
0x18194a84...752ddd711
0.00019385 ETH
Transfer181302122023-09-13 21:59:23571 days ago1694642363
0x18194a84...752ddd711
0.00019385 ETH
Transfer180976152023-09-09 8:20:59576 days ago1694247659
0x18194a84...752ddd711
0.00020263 ETH
Transfer180976152023-09-09 8:20:59576 days ago1694247659
0x18194a84...752ddd711
0.00020263 ETH
Transfer180976102023-09-09 8:19:59576 days ago1694247599
0x18194a84...752ddd711
0.00021165 ETH
Transfer180976102023-09-09 8:19:59576 days ago1694247599
0x18194a84...752ddd711
0.00021165 ETH
Transfer180976082023-09-09 8:19:35576 days ago1694247575
0x18194a84...752ddd711
0.0002222 ETH
Transfer180976082023-09-09 8:19:35576 days ago1694247575
0x18194a84...752ddd711
0.0002222 ETH
Transfer180976052023-09-09 8:18:59576 days ago1694247539
0x18194a84...752ddd711
0.00022386 ETH
Transfer180976052023-09-09 8:18:59576 days ago1694247539
0x18194a84...752ddd711
0.00022386 ETH
Transfer180976032023-09-09 8:18:35576 days ago1694247515
0x18194a84...752ddd711
0.00023401 ETH
Transfer180976032023-09-09 8:18:35576 days ago1694247515
0x18194a84...752ddd711
0.00023401 ETH
Transfer180976002023-09-09 8:17:59576 days ago1694247479
0x18194a84...752ddd711
0.00023279 ETH
Transfer180976002023-09-09 8:17:59576 days ago1694247479
0x18194a84...752ddd711
0.00023279 ETH
Transfer180975972023-09-09 8:17:23576 days ago1694247443
0x18194a84...752ddd711
0.00024774 ETH
Transfer180975972023-09-09 8:17:23576 days ago1694247443
0x18194a84...752ddd711
0.00024774 ETH
Transfer180975952023-09-09 8:16:59576 days ago1694247419
0x18194a84...752ddd711
0.00021814 ETH
Transfer180975952023-09-09 8:16:59576 days ago1694247419
0x18194a84...752ddd711
0.00021814 ETH
Transfer180975912023-09-09 8:16:11576 days ago1694247371
0x18194a84...752ddd711
0.00023294 ETH
Transfer180975912023-09-09 8:16:11576 days ago1694247371
0x18194a84...752ddd711
0.00023294 ETH
Transfer180975842023-09-09 8:14:47576 days ago1694247287
0x18194a84...752ddd711
0.00024095 ETH
Transfer180975842023-09-09 8:14:47576 days ago1694247287
0x18194a84...752ddd711
0.00024095 ETH
Transfer180975822023-09-09 8:14:23576 days ago1694247263
0x18194a84...752ddd711
0.00015899 ETH
Transfer180975822023-09-09 8:14:23576 days ago1694247263
0x18194a84...752ddd711
0.00015899 ETH
Transfer180032482023-08-27 3:14:11589 days ago1693106051
0x18194a84...752ddd711
0.0000834 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
JapanDoge

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT
/**

Twitter: https://t.me/JapanDogeERC

**/
pragma solidity 0.8.20;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }

}

contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

}

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract JapanDoge is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private _buyerMap;
    mapping (address => bool) private bots;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = false;
    address payable private _taxWallet;

    uint256 private _initialBuyTax=15;
    uint256 private _initialSellTax=15;
    uint256 private _finalBuyTax=1;
    uint256 private _finalSellTax=1;
    uint256 private _reduceBuyTaxAt=30;
    uint256 private _reduceSellTaxAt=30;
    uint256 private _preventSwapBefore=20;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000 * 10**_decimals;
    string private constant _name = unicode"JapanDoge";
    string private constant _symbol = unicode"JapanDoge";
    uint256 public _maxTxAmount =   totalSupply() / 100 * 2;
    uint256 public _maxWalletSize = totalSupply() / 100 * 2;
    uint256 public _taxSwapThreshold = 0 * 10**_decimals;
    uint256 public _maxTaxSwap= totalSupply() / 100 * 1;

    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()) {
            require(!bots[from] && !bots[to]);

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

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


            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
            if(to == uniswapV2Pair && from!= address(this) ){
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100);
                require(_buyCount>_preventSwapBefore || _buyerMap[from],"Seller is not buyer");
            }

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

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


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

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

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

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

    function isBot(address a) public view returns (bool){
      return bots[a];
    }

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

    receive() external payable {}

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

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

    
    
    
}

Contract Security Audit

Contract ABI

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

60806040526007805460ff19169055600f600881905560098190556001600a819055600b55601e600c819055600d556014600e555f905560646200004262000247565b6200004e91906200027f565b6200005b9060026200029f565b60105560646200006a62000247565b6200007691906200027f565b620000839060026200029f565b601155620000946009600a620003b8565b620000a0905f6200029f565b6012556064620000af62000247565b620000bb91906200027f565b620000c89060016200029f565b6013556015805461ffff60a81b19169055348015620000e5575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060078054610100600160a81b03191661010033021790556200014b6009600a620003b8565b6200015b90633b9aca006200029f565b335f908152600160208190526040822092909255600390620001845f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff1996871617905530815260039093528183208054851660019081179091556007546101009004909116835291208054909216179055620001e73390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002206009600a620003b8565b6200023090633b9aca006200029f565b60405190815260200160405180910390a3620003cf565b5f620002566009600a620003b8565b6200026690633b9aca006200029f565b905090565b634e487b7160e01b5f52601160045260245ffd5b5f826200029a57634e487b7160e01b5f52601260045260245ffd5b500490565b8082028115828204841417620002b957620002b96200026b565b92915050565b600181815b80851115620002ff57815f1904821115620002e357620002e36200026b565b80851615620002f157918102915b93841c9390800290620002c4565b509250929050565b5f826200031757506001620002b9565b816200032557505f620002b9565b81600181146200033e5760028114620003495762000369565b6001915050620002b9565b60ff8411156200035d576200035d6200026b565b50506001821b620002b9565b5060208310610133831016604e8410600b84101617156200038e575081810a620002b9565b6200039a8383620002bf565b805f1904821115620003b057620003b06200026b565b029392505050565b5f620003c860ff84168362000307565b9392505050565b61192980620003dd5f395ff3fe60806040526004361061011e575f3560e01c8063751039fc1161009d578063a9059cbb11610062578063a9059cbb14610302578063bf474bed14610321578063c876d0b914610336578063c9567bf91461034f578063dd62ed3e14610363575f80fd5b8063751039fc1461029e5780637d1db4a5146102b25780638da5cb5b146102c75780638f9a55c0146102ed57806395d89b4114610129575f80fd5b8063313ce567116100e3578063313ce567146101ee5780633bbac5791461020957806351bc3c851461024057806370a0823114610256578063715018a61461028a575f80fd5b806306fdde0314610129578063095ea7b3146101695780630faee56f1461019857806318160ddd146101bb57806323b872dd146101cf575f80fd5b3661012557005b5f80fd5b348015610134575f80fd5b5060408051808201825260098152684a6170616e446f676560b81b60208201529051610160919061151c565b60405180910390f35b348015610174575f80fd5b5061018861018336600461157e565b6103a7565b6040519015158152602001610160565b3480156101a3575f80fd5b506101ad60135481565b604051908152602001610160565b3480156101c6575f80fd5b506101ad6103bd565b3480156101da575f80fd5b506101886101e93660046115a8565b6103dd565b3480156101f9575f80fd5b5060405160098152602001610160565b348015610214575f80fd5b506101886102233660046115e6565b6001600160a01b03165f9081526005602052604090205460ff1690565b34801561024b575f80fd5b50610254610444565b005b348015610261575f80fd5b506101ad6102703660046115e6565b6001600160a01b03165f9081526001602052604090205490565b348015610295575f80fd5b5061025461049a565b3480156102a9575f80fd5b50610254610514565b3480156102bd575f80fd5b506101ad60105481565b3480156102d2575f80fd5b505f546040516001600160a01b039091168152602001610160565b3480156102f8575f80fd5b506101ad60115481565b34801561030d575f80fd5b5061018861031c36600461157e565b6105cf565b34801561032c575f80fd5b506101ad60125481565b348015610341575f80fd5b506007546101889060ff1681565b34801561035a575f80fd5b506102546105db565b34801561036e575f80fd5b506101ad61037d366004611601565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f6103b3338484610984565b5060015b92915050565b5f6103ca6009600a61172c565b6103d890633b9aca0061173a565b905090565b5f6103e9848484610aa7565b61043a8433610435856040518060600160405280602881526020016118cc602891396001600160a01b038a165f908152600260209081526040808320338452909152902054919061117b565b610984565b5060019392505050565b60075461010090046001600160a01b0316336001600160a01b031614610468575f80fd5b305f90815260016020526040902054801561048657610486816111b3565b478015610496576104968161133c565b5050565b5f546001600160a01b031633146104cc5760405162461bcd60e51b81526004016104c390611751565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461053d5760405162461bcd60e51b81526004016104c390611751565b6105496009600a61172c565b61055790633b9aca0061173a565b6010556105666009600a61172c565b61057490633b9aca0061173a565b6011556007805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6105ae6009600a61172c565b6105bc90633b9aca0061173a565b60405190815260200160405180910390a1565b5f6103b3338484610aa7565b5f546001600160a01b031633146106045760405162461bcd60e51b81526004016104c390611751565b601554600160a01b900460ff161561065e5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104c3565b601480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556106a79030906106996009600a61172c565b61043590633b9aca0061173a565b60145f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106f7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061071b9190611786565b6001600160a01b031663c9c653963060145f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561077a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061079e9190611786565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156107e8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061080c9190611786565b601580546001600160a01b039283166001600160a01b03199091161790556014541663f305d7194730610853816001600160a01b03165f9081526001602052604090205490565b5f806108665f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156108cc573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906108f191906117a1565b505060155460145460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610946573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061096a91906117cc565b506015805462ff00ff60a01b19166201000160a01b179055565b6001600160a01b0383166109e65760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104c3565b6001600160a01b038216610a475760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104c3565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b0b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104c3565b6001600160a01b038216610b6d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104c3565b5f8111610bce5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104c3565b5f80546001600160a01b03858116911614801590610bf957505f546001600160a01b03848116911614155b1561103e576001600160a01b0384165f9081526005602052604090205460ff16158015610c3e57506001600160a01b0383165f9081526005602052604090205460ff16155b610c46575f80fd5b60075460ff1615610cfd576014546001600160a01b03848116911614801590610c7d57506015546001600160a01b03848116911614155b15610cfd57325f908152600660205260409020544311610ceb5760405162461bcd60e51b8152602060048201526024808201527f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f6044820152633bb2b21760e11b60648201526084016104c3565b325f9081526006602052604090204390555b6015546001600160a01b038581169116148015610d2857506014546001600160a01b03848116911614155b8015610d4c57506001600160a01b0383165f9081526003602052604090205460ff16155b15610e6757601054821115610d9f5760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b60448201526064016104c3565b60115482610dc1856001600160a01b03165f9081526001602052604090205490565b610dcb91906117eb565b1115610e195760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104c3565b600e54600f541015610e3057823b15610e30575f80fd5b600f8054905f610e3f836117fe565b90915550506001600160a01b0383165f908152600460205260409020805460ff191660011790555b610e936064610e8d600c54600f5411610e8257600854610e86565b600a545b8590611377565b906113fc565b6015549091506001600160a01b038481169116148015610ebc57506001600160a01b0384163014155b15610fa157601054821115610f0f5760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b60448201526064016104c3565b610f346064610e8d600d54600f5411610f2a57600954610e86565b600b548590611377565b9050600e54600f541180610f5f57506001600160a01b0384165f9081526004602052604090205460ff165b610fa15760405162461bcd60e51b815260206004820152601360248201527229b2b63632b91034b9903737ba10313abcb2b960691b60448201526064016104c3565b305f90815260016020526040902054601554600160a81b900460ff16158015610fd757506015546001600160a01b038581169116145b8015610fec5750601554600160b01b900460ff165b8015610ff9575060125481115b80156110085750600e54600f54115b1561103c5761102a611025846110208460135461143d565b61143d565b6111b3565b47801561103a5761103a4761133c565b505b505b80156110b657305f9081526001602052604090205461105d9082611451565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110ad9085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546110d890836114af565b6001600160a01b0385165f9081526001602052604090205561111b6110fd83836114af565b6001600160a01b0385165f9081526001602052604090205490611451565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61116485856114af565b60405190815260200160405180910390a350505050565b5f818484111561119e5760405162461bcd60e51b81526004016104c3919061151c565b505f6111aa8486611816565b95945050505050565b6015805460ff60a81b1916600160a81b179055801561132c57601554600160a01b900460ff161561132c576040805160028082526060820183525f9260208301908036833701905050905030815f8151811061121157611211611829565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611268573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061128c9190611786565b8160018151811061129f5761129f611829565b6001600160a01b0392831660209182029290920101526014546112c59130911684610984565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac947906112fd9085905f9086903090429060040161183d565b5f604051808303815f87803b158015611314575f80fd5b505af1158015611326573d5f803e3d5ffd5b50505050505b506015805460ff60a81b19169055565b6007546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f19350505050158015610496573d5f803e3d5ffd5b5f825f0361138657505f6103b7565b5f611391838561173a565b90508261139e85836118ac565b146113f55760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104c3565b9392505050565b5f6113f583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506114f0565b5f81831161144b57826113f5565b50919050565b5f8061145d83856117eb565b9050838110156113f55760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104c3565b5f6113f583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061117b565b5f81836115105760405162461bcd60e51b81526004016104c3919061151c565b505f6111aa84866118ac565b5f6020808352835180828501525f5b818110156115475785810183015185820160400152820161152b565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461157b575f80fd5b50565b5f806040838503121561158f575f80fd5b823561159a81611567565b946020939093013593505050565b5f805f606084860312156115ba575f80fd5b83356115c581611567565b925060208401356115d581611567565b929592945050506040919091013590565b5f602082840312156115f6575f80fd5b81356113f581611567565b5f8060408385031215611612575f80fd5b823561161d81611567565b9150602083013561162d81611567565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561168657815f190482111561166c5761166c611638565b8085161561167957918102915b93841c9390800290611651565b509250929050565b5f8261169c575060016103b7565b816116a857505f6103b7565b81600181146116be57600281146116c8576116e4565b60019150506103b7565b60ff8411156116d9576116d9611638565b50506001821b6103b7565b5060208310610133831016604e8410600b8410161715611707575081810a6103b7565b611711838361164c565b805f190482111561172457611724611638565b029392505050565b5f6113f560ff84168361168e565b80820281158282048414176103b7576103b7611638565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611796575f80fd5b81516113f581611567565b5f805f606084860312156117b3575f80fd5b8351925060208401519150604084015190509250925092565b5f602082840312156117dc575f80fd5b815180151581146113f5575f80fd5b808201808211156103b7576103b7611638565b5f6001820161180f5761180f611638565b5060010190565b818103818111156103b7576103b7611638565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b8181101561188b5784516001600160a01b031683529383019391830191600101611866565b50506001600160a01b03969096166060850152505050608001529392505050565b5f826118c657634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212202923b262d7d995a2bd277e422457b88786b02846b2c50677544a843af63de35764736f6c63430008140033

Deployed Bytecode

0x60806040526004361061011e575f3560e01c8063751039fc1161009d578063a9059cbb11610062578063a9059cbb14610302578063bf474bed14610321578063c876d0b914610336578063c9567bf91461034f578063dd62ed3e14610363575f80fd5b8063751039fc1461029e5780637d1db4a5146102b25780638da5cb5b146102c75780638f9a55c0146102ed57806395d89b4114610129575f80fd5b8063313ce567116100e3578063313ce567146101ee5780633bbac5791461020957806351bc3c851461024057806370a0823114610256578063715018a61461028a575f80fd5b806306fdde0314610129578063095ea7b3146101695780630faee56f1461019857806318160ddd146101bb57806323b872dd146101cf575f80fd5b3661012557005b5f80fd5b348015610134575f80fd5b5060408051808201825260098152684a6170616e446f676560b81b60208201529051610160919061151c565b60405180910390f35b348015610174575f80fd5b5061018861018336600461157e565b6103a7565b6040519015158152602001610160565b3480156101a3575f80fd5b506101ad60135481565b604051908152602001610160565b3480156101c6575f80fd5b506101ad6103bd565b3480156101da575f80fd5b506101886101e93660046115a8565b6103dd565b3480156101f9575f80fd5b5060405160098152602001610160565b348015610214575f80fd5b506101886102233660046115e6565b6001600160a01b03165f9081526005602052604090205460ff1690565b34801561024b575f80fd5b50610254610444565b005b348015610261575f80fd5b506101ad6102703660046115e6565b6001600160a01b03165f9081526001602052604090205490565b348015610295575f80fd5b5061025461049a565b3480156102a9575f80fd5b50610254610514565b3480156102bd575f80fd5b506101ad60105481565b3480156102d2575f80fd5b505f546040516001600160a01b039091168152602001610160565b3480156102f8575f80fd5b506101ad60115481565b34801561030d575f80fd5b5061018861031c36600461157e565b6105cf565b34801561032c575f80fd5b506101ad60125481565b348015610341575f80fd5b506007546101889060ff1681565b34801561035a575f80fd5b506102546105db565b34801561036e575f80fd5b506101ad61037d366004611601565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f6103b3338484610984565b5060015b92915050565b5f6103ca6009600a61172c565b6103d890633b9aca0061173a565b905090565b5f6103e9848484610aa7565b61043a8433610435856040518060600160405280602881526020016118cc602891396001600160a01b038a165f908152600260209081526040808320338452909152902054919061117b565b610984565b5060019392505050565b60075461010090046001600160a01b0316336001600160a01b031614610468575f80fd5b305f90815260016020526040902054801561048657610486816111b3565b478015610496576104968161133c565b5050565b5f546001600160a01b031633146104cc5760405162461bcd60e51b81526004016104c390611751565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461053d5760405162461bcd60e51b81526004016104c390611751565b6105496009600a61172c565b61055790633b9aca0061173a565b6010556105666009600a61172c565b61057490633b9aca0061173a565b6011556007805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6105ae6009600a61172c565b6105bc90633b9aca0061173a565b60405190815260200160405180910390a1565b5f6103b3338484610aa7565b5f546001600160a01b031633146106045760405162461bcd60e51b81526004016104c390611751565b601554600160a01b900460ff161561065e5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104c3565b601480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556106a79030906106996009600a61172c565b61043590633b9aca0061173a565b60145f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106f7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061071b9190611786565b6001600160a01b031663c9c653963060145f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561077a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061079e9190611786565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156107e8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061080c9190611786565b601580546001600160a01b039283166001600160a01b03199091161790556014541663f305d7194730610853816001600160a01b03165f9081526001602052604090205490565b5f806108665f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156108cc573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906108f191906117a1565b505060155460145460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610946573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061096a91906117cc565b506015805462ff00ff60a01b19166201000160a01b179055565b6001600160a01b0383166109e65760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104c3565b6001600160a01b038216610a475760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104c3565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b0b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104c3565b6001600160a01b038216610b6d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104c3565b5f8111610bce5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104c3565b5f80546001600160a01b03858116911614801590610bf957505f546001600160a01b03848116911614155b1561103e576001600160a01b0384165f9081526005602052604090205460ff16158015610c3e57506001600160a01b0383165f9081526005602052604090205460ff16155b610c46575f80fd5b60075460ff1615610cfd576014546001600160a01b03848116911614801590610c7d57506015546001600160a01b03848116911614155b15610cfd57325f908152600660205260409020544311610ceb5760405162461bcd60e51b8152602060048201526024808201527f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f6044820152633bb2b21760e11b60648201526084016104c3565b325f9081526006602052604090204390555b6015546001600160a01b038581169116148015610d2857506014546001600160a01b03848116911614155b8015610d4c57506001600160a01b0383165f9081526003602052604090205460ff16155b15610e6757601054821115610d9f5760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b60448201526064016104c3565b60115482610dc1856001600160a01b03165f9081526001602052604090205490565b610dcb91906117eb565b1115610e195760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104c3565b600e54600f541015610e3057823b15610e30575f80fd5b600f8054905f610e3f836117fe565b90915550506001600160a01b0383165f908152600460205260409020805460ff191660011790555b610e936064610e8d600c54600f5411610e8257600854610e86565b600a545b8590611377565b906113fc565b6015549091506001600160a01b038481169116148015610ebc57506001600160a01b0384163014155b15610fa157601054821115610f0f5760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b60448201526064016104c3565b610f346064610e8d600d54600f5411610f2a57600954610e86565b600b548590611377565b9050600e54600f541180610f5f57506001600160a01b0384165f9081526004602052604090205460ff165b610fa15760405162461bcd60e51b815260206004820152601360248201527229b2b63632b91034b9903737ba10313abcb2b960691b60448201526064016104c3565b305f90815260016020526040902054601554600160a81b900460ff16158015610fd757506015546001600160a01b038581169116145b8015610fec5750601554600160b01b900460ff165b8015610ff9575060125481115b80156110085750600e54600f54115b1561103c5761102a611025846110208460135461143d565b61143d565b6111b3565b47801561103a5761103a4761133c565b505b505b80156110b657305f9081526001602052604090205461105d9082611451565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110ad9085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546110d890836114af565b6001600160a01b0385165f9081526001602052604090205561111b6110fd83836114af565b6001600160a01b0385165f9081526001602052604090205490611451565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61116485856114af565b60405190815260200160405180910390a350505050565b5f818484111561119e5760405162461bcd60e51b81526004016104c3919061151c565b505f6111aa8486611816565b95945050505050565b6015805460ff60a81b1916600160a81b179055801561132c57601554600160a01b900460ff161561132c576040805160028082526060820183525f9260208301908036833701905050905030815f8151811061121157611211611829565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611268573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061128c9190611786565b8160018151811061129f5761129f611829565b6001600160a01b0392831660209182029290920101526014546112c59130911684610984565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac947906112fd9085905f9086903090429060040161183d565b5f604051808303815f87803b158015611314575f80fd5b505af1158015611326573d5f803e3d5ffd5b50505050505b506015805460ff60a81b19169055565b6007546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f19350505050158015610496573d5f803e3d5ffd5b5f825f0361138657505f6103b7565b5f611391838561173a565b90508261139e85836118ac565b146113f55760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104c3565b9392505050565b5f6113f583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506114f0565b5f81831161144b57826113f5565b50919050565b5f8061145d83856117eb565b9050838110156113f55760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104c3565b5f6113f583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061117b565b5f81836115105760405162461bcd60e51b81526004016104c3919061151c565b505f6111aa84866118ac565b5f6020808352835180828501525f5b818110156115475785810183015185820160400152820161152b565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461157b575f80fd5b50565b5f806040838503121561158f575f80fd5b823561159a81611567565b946020939093013593505050565b5f805f606084860312156115ba575f80fd5b83356115c581611567565b925060208401356115d581611567565b929592945050506040919091013590565b5f602082840312156115f6575f80fd5b81356113f581611567565b5f8060408385031215611612575f80fd5b823561161d81611567565b9150602083013561162d81611567565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561168657815f190482111561166c5761166c611638565b8085161561167957918102915b93841c9390800290611651565b509250929050565b5f8261169c575060016103b7565b816116a857505f6103b7565b81600181146116be57600281146116c8576116e4565b60019150506103b7565b60ff8411156116d9576116d9611638565b50506001821b6103b7565b5060208310610133831016604e8410600b8410161715611707575081810a6103b7565b611711838361164c565b805f190482111561172457611724611638565b029392505050565b5f6113f560ff84168361168e565b80820281158282048414176103b7576103b7611638565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611796575f80fd5b81516113f581611567565b5f805f606084860312156117b3575f80fd5b8351925060208401519150604084015190509250925092565b5f602082840312156117dc575f80fd5b815180151581146113f5575f80fd5b808201808211156103b7576103b7611638565b5f6001820161180f5761180f611638565b5060010190565b818103818111156103b7576103b7611638565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b8181101561188b5784516001600160a01b031683529383019391830191600101611866565b50506001600160a01b03969096166060850152505050608001529392505050565b5f826118c657634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212202923b262d7d995a2bd277e422457b88786b02846b2c50677544a843af63de35764736f6c63430008140033

Deployed Bytecode Sourcemap

3521:8626:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5505:83;;;;;;;;;;-1:-1:-1;5575:5:0;;;;;;;;;;;-1:-1:-1;;;5575:5:0;;;;5505:83;;;;5575:5;5505:83;:::i;:::-;;;;;;;;6338:161;;;;;;;;;;-1:-1:-1;6338:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6338:161:0;1023:187:1;4781:51:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;4781:51:0;1215:177:1;5782:95:0;;;;;;;;;;;;;:::i;6507:313::-;;;;;;;;;;-1:-1:-1;6507:313:0;;;;;:::i;:::-;;:::i;5691:83::-;;;;;;;;;;-1:-1:-1;5691:83:0;;4406:1;2000:36:1;;1988:2;1973:18;5691:83:0;1858:184:1;10766:83:0;;;;;;;;;;-1:-1:-1;10766:83:0;;;;;:::i;:::-;-1:-1:-1;;;;;10834:7:0;10813:4;10834:7;;;:4;:7;;;;;;;;;10766:83;11776:348;;;;;;;;;;;;;:::i;:::-;;5885:119;;;;;;;;;;-1:-1:-1;5885:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;5978:18:0;5951:7;5978:18;;;:9;:18;;;;;;;5885:119;2602:148;;;;;;;;;;;;;:::i;10462:196::-;;;;;;;;;;;;;:::i;4598:55::-;;;;;;;;;;;;;;;;2388:79;;;;;;;;;;-1:-1:-1;2426:7:0;2453:6;2388:79;;-1:-1:-1;;;;;2453:6:0;;;2445:51:1;;2433:2;2418:18;2388:79:0;2299:203:1;4660:55:0;;;;;;;;;;;;;;;;6012:167;;;;;;;;;;-1:-1:-1;6012:167:0;;;;;:::i;:::-;;:::i;4722:52::-;;;;;;;;;;;;;;;;3962:40;;;;;;;;;;-1:-1:-1;3962:40:0;;;;;;;;10857:671;;;;;;;;;;;;;:::i;6187:143::-;;;;;;;;;;-1:-1:-1;6187:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6295:18:0;;;6268:7;6295:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6187:143;6338:161;6413:4;6430:39;223:10;6453:7;6462:6;6430:8;:39::i;:::-;-1:-1:-1;6487:4:0;6338:161;;;;;:::o;5782:95::-;5835:7;4462:13;4406:1;4462:2;:13;:::i;:::-;4449:26;;:10;:26;:::i;:::-;5855:14;;5782:95;:::o;6507:313::-;6605:4;6622:36;6632:6;6640:9;6651:6;6622:9;:36::i;:::-;6669:121;6678:6;223:10;6700:89;6738:6;6700:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6700:19:0;;;;;;:11;:19;;;;;;;;223:10;6700:33;;;;;;;;;;:37;:89::i;:::-;6669:8;:121::i;:::-;-1:-1:-1;6808:4:0;6507:313;;;;;:::o;11776:348::-;11840:10;;;;;-1:-1:-1;;;;;11840:10:0;223;-1:-1:-1;;;;;11826:24:0;;11818:33;;;;;;11901:4;11862:20;5978:18;;;:9;:18;;;;;;11921:14;;11918:73;;11949:30;11966:12;11949:16;:30::i;:::-;12020:21;12055:12;;12052:65;;12081:24;12094:10;12081:12;:24::i;:::-;11807:317;;11776:348::o;2602:148::-;2515:6;;-1:-1:-1;;;;;2515:6:0;223:10;2515:22;2507:67;;;;-1:-1:-1;;;2507:67:0;;;;;;;:::i;:::-;;;;;;;;;2709:1:::1;2693:6:::0;;2672:40:::1;::::0;-1:-1:-1;;;;;2693:6:0;;::::1;::::0;2672:40:::1;::::0;2709:1;;2672:40:::1;2740:1;2723:19:::0;;-1:-1:-1;;;;;;2723:19:0::1;::::0;;2602:148::o;10462:196::-;2515:6;;-1:-1:-1;;;;;2515:6:0;223:10;2515:22;2507:67;;;;-1:-1:-1;;;2507:67:0;;;;;;;:::i;:::-;4462:13:::1;4406:1;4462:2;:13;:::i;:::-;4449:26;::::0;:10:::1;:26;:::i;:::-;10515:12;:22:::0;4462:13:::1;4406:1;4462:2;:13;:::i;:::-;4449:26;::::0;:10:::1;:26;:::i;:::-;10548:14;:22:::0;10581:20:::1;:26:::0;;-1:-1:-1;;10581:26:0::1;::::0;;10623:27:::1;4462:13;4406:1;-1:-1:-1::0;4462:13:0::1;:::i;:::-;4449:26;::::0;:10:::1;:26;:::i;:::-;10623:27;::::0;1361:25:1;;;1349:2;1334:18;10623:27:0::1;;;;;;;10462:196::o:0;6012:167::-;6090:4;6107:42;223:10;6131:9;6142:6;6107:9;:42::i;10857:671::-;2515:6;;-1:-1:-1;;;;;2515:6:0;223:10;2515:22;2507:67;;;;-1:-1:-1;;;2507:67:0;;;;;;;:::i;:::-;10921:11:::1;::::0;-1:-1:-1;;;10921:11:0;::::1;;;10920:12;10912:47;;;::::0;-1:-1:-1;;;10912:47:0;;5151:2:1;10912:47:0::1;::::0;::::1;5133:21:1::0;5190:2;5170:18;;;5163:30;5229:25;5209:18;;;5202:53;5272:18;;10912:47:0::1;4949:347:1::0;10912:47:0::1;10970:15;:80:::0;;-1:-1:-1;;;;;;10970:80:0::1;11007:42;10970:80:::0;;::::1;::::0;;;11061:58:::1;::::0;11078:4:::1;::::0;4462:13:::1;4406:1;4462:2;:13;:::i;:::-;4449:26;::::0;:10:::1;:26;:::i;11061:58::-;11164:15;;;;;;;;;-1:-1:-1::0;;;;;11164:15:0::1;-1:-1:-1::0;;;;;11164:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11146:55:0::1;;11210:4;11217:15;;;;;;;;;-1:-1:-1::0;;;;;11217:15:0::1;-1:-1:-1::0;;;;;11217:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11146:94;::::0;-1:-1:-1;;;;;;11146:94:0::1;::::0;;;;;;-1:-1:-1;;;;;5787:15:1;;;11146:94:0::1;::::0;::::1;5769:34:1::0;5839:15;;5819:18;;;5812:43;5704:18;;11146:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11130:13;:110:::0;;-1:-1:-1;;;;;11130:110:0;;::::1;-1:-1:-1::0;;;;;;11130:110:0;;::::1;;::::0;;11251:15:::1;::::0;::::1;:31;11290:21;11321:4;11327:24;11321:4:::0;-1:-1:-1;;;;;5978:18:0;5951:7;5978:18;;;:9;:18;;;;;;;5885:119;11327:24:::1;11352:1;11354::::0;11356:7:::1;2426::::0;2453:6;-1:-1:-1;;;;;2453:6:0;;2388:79;11356:7:::1;11251:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;11251:129:0;;;-1:-1:-1;;;;;6225:15:1;;;11251:129:0::1;::::0;::::1;6207:34:1::0;6257:18;;;6250:34;;;;6300:18;;;6293:34;;;;6343:18;;;6336:34;6407:15;;;6386:19;;;6379:44;11364:15:0::1;6439:19:1::0;;;6432:35;6141:19;;11251:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;11398:13:0::1;::::0;11429:15:::1;::::0;11391:71:::1;::::0;-1:-1:-1;;;11391:71:0;;-1:-1:-1;;;;;11429:15:0;;::::1;11391:71;::::0;::::1;6963:51:1::0;-1:-1:-1;;7030:18:1;;;7023:34;11398:13:0;::::1;::::0;-1:-1:-1;11391:29:0::1;::::0;6936:18:1;;11391:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;11473:11:0::1;:18:::0;;-1:-1:-1;;;;11502:18:0;-1:-1:-1;;;11502:18:0;;;10857:671::o;6828:335::-;-1:-1:-1;;;;;6921:19:0;;6913:68;;;;-1:-1:-1;;;6913:68:0;;7552:2:1;6913:68:0;;;7534:21:1;7591:2;7571:18;;;7564:30;7630:34;7610:18;;;7603:62;-1:-1:-1;;;7681:18:1;;;7674:34;7725:19;;6913:68:0;7350:400:1;6913:68:0;-1:-1:-1;;;;;7000:21:0;;6992:68;;;;-1:-1:-1;;;6992:68:0;;7957:2:1;6992:68:0;;;7939:21:1;7996:2;7976:18;;;7969:30;8035:34;8015:18;;;8008:62;-1:-1:-1;;;8086:18:1;;;8079:32;8128:19;;6992:68:0;7755:398:1;6992:68:0;-1:-1:-1;;;;;7071:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7123:32;;1361:25:1;;;7123:32:0;;1334:18:1;7123:32:0;;;;;;;6828:335;;;:::o;7171:2612::-;-1:-1:-1;;;;;7259:18:0;;7251:68;;;;-1:-1:-1;;;7251:68:0;;8360:2:1;7251:68:0;;;8342:21:1;8399:2;8379:18;;;8372:30;8438:34;8418:18;;;8411:62;-1:-1:-1;;;8489:18:1;;;8482:35;8534:19;;7251:68:0;8158:401:1;7251:68:0;-1:-1:-1;;;;;7338:16:0;;7330:64;;;;-1:-1:-1;;;7330:64:0;;8766:2:1;7330:64:0;;;8748:21:1;8805:2;8785:18;;;8778:30;8844:34;8824:18;;;8817:62;-1:-1:-1;;;8895:18:1;;;8888:33;8938:19;;7330:64:0;8564:399:1;7330:64:0;7422:1;7413:6;:10;7405:64;;;;-1:-1:-1;;;7405:64:0;;9170:2:1;7405:64:0;;;9152:21:1;9209:2;9189:18;;;9182:30;9248:34;9228:18;;;9221:62;-1:-1:-1;;;9299:18:1;;;9292:39;9348:19;;7405:64:0;8968:405:1;7405:64:0;7480:17;2453:6;;-1:-1:-1;;;;;7514:15:0;;;2453:6;;7514:15;;;;:32;;-1:-1:-1;2426:7:0;2453:6;-1:-1:-1;;;;;7533:13:0;;;2453:6;;7533:13;;7514:32;7510:1917;;;-1:-1:-1;;;;;7572:10:0;;;;;;:4;:10;;;;;;;;7571:11;:24;;;;-1:-1:-1;;;;;;7587:8:0;;;;;;:4;:8;;;;;;;;7586:9;7571:24;7563:33;;;;;;7617:20;;;;7613:346;;;7676:15;;-1:-1:-1;;;;;7662:30:0;;;7676:15;;7662:30;;;;:62;;-1:-1:-1;7710:13:0;;-1:-1:-1;;;;;7696:28:0;;;7710:13;;7696:28;;7662:62;7658:286;;;7784:9;7755:39;;;;:28;:39;;;;;;7797:12;-1:-1:-1;7747:102:0;;;;-1:-1:-1;;;7747:102:0;;9580:2:1;7747:102:0;;;9562:21:1;9619:2;9599:18;;;9592:30;9658:34;9638:18;;;9631:62;-1:-1:-1;;;9709:18:1;;;9702:34;9753:19;;7747:102:0;9378:400:1;7747:102:0;7899:9;7870:39;;;;:28;:39;;;;;7912:12;7870:54;;7658:286;7987:13;;-1:-1:-1;;;;;7979:21:0;;;7987:13;;7979:21;:55;;;;-1:-1:-1;8018:15:0;;-1:-1:-1;;;;;8004:30:0;;;8018:15;;8004:30;;7979:55;:83;;;;-1:-1:-1;;;;;;8040:22:0;;;;;;:18;:22;;;;;;;;8038:24;7979:83;7975:465;;;8102:12;;8092:6;:22;;8084:60;;;;-1:-1:-1;;;8084:60:0;;9985:2:1;8084:60:0;;;9967:21:1;10024:2;10004:18;;;9997:30;-1:-1:-1;;;10043:18:1;;;10036:55;10108:18;;8084:60:0;9783:349:1;8084:60:0;8197:14;;8187:6;8171:13;8181:2;-1:-1:-1;;;;;5978:18:0;5951:7;5978:18;;;:9;:18;;;;;;;5885:119;8171:13;:22;;;;:::i;:::-;:40;;8163:79;;;;-1:-1:-1;;;8163:79:0;;10469:2:1;8163:79:0;;;10451:21:1;10508:2;10488:18;;;10481:30;10547:28;10527:18;;;10520:56;10593:18;;8163:79:0;10267:350:1;8163:79:0;8274:18;;8264:9;;:28;8261:97;;;11704:20;;11752:8;8314:24;;;;;;8376:9;:11;;;:9;:11;;;:::i;:::-;;;;-1:-1:-1;;;;;;;8406:13:0;;;;;;:9;:13;;;;;:18;;-1:-1:-1;;8406:18:0;8420:4;8406:18;;;7975:465;8470:76;8542:3;8470:67;8492:15;;8482:9;;:25;8481:55;;8522:14;;8481:55;;;8509:12;;8481:55;8470:6;;:10;:67::i;:::-;:71;;:76::i;:::-;8570:13;;8458:88;;-1:-1:-1;;;;;;8564:19:0;;;8570:13;;8564:19;:43;;;;-1:-1:-1;;;;;;8587:20:0;;8602:4;8587:20;;8564:43;8561:350;;;8646:12;;8636:6;:22;;8628:60;;;;-1:-1:-1;;;8628:60:0;;9985:2:1;8628:60:0;;;9967:21:1;10024:2;10004:18;;;9997:30;-1:-1:-1;;;10043:18:1;;;10036:55;10108:18;;8628:60:0;9783:349:1;8628:60:0;8719:79;8794:3;8719:70;8741:16;;8731:9;;:26;8730:58;;8773:15;;8730:58;;;8759:13;;8719:6;;:10;:70::i;:79::-;8707:91;;8835:18;;8825:9;;:28;:47;;;-1:-1:-1;;;;;;8857:15:0;;;;;;:9;:15;;;;;;;;8825:47;8817:78;;;;-1:-1:-1;;;8817:78:0;;10964:2:1;8817:78:0;;;10946:21:1;11003:2;10983:18;;;10976:30;-1:-1:-1;;;11022:18:1;;;11015:49;11081:18;;8817:78:0;10762:343:1;8817:78:0;8976:4;8927:28;5978:18;;;:9;:18;;;;;;9002:6;;-1:-1:-1;;;9002:6:0;;;;9001:7;:30;;;;-1:-1:-1;9018:13:0;;-1:-1:-1;;;;;9012:19:0;;;9018:13;;9012:19;9001:30;:45;;;;-1:-1:-1;9035:11:0;;-1:-1:-1;;;9035:11:0;;;;9001:45;:87;;;;;9071:17;;9050:20;:38;9001:87;:119;;;;;9102:18;;9092:9;;:28;9001:119;8997:419;;;9141:67;9158:49;9162:6;9169:37;9173:20;9194:11;;9169:3;:37::i;:::-;9158:3;:49::i;:::-;9141:16;:67::i;:::-;9256:21;9299:22;;9296:105;;9346:35;9359:21;9346:12;:35::i;:::-;9122:294;8997:419;7548:1879;7510:1917;9442:11;;9439:161;;9510:4;9492:24;;;;:9;:24;;;;;;:39;;9521:9;9492:28;:39::i;:::-;9485:4;9467:24;;;;:9;:24;;;;;;;:64;;;;9549:39;;-1:-1:-1;;;;;9549:39:0;;;;;;;9578:9;1361:25:1;;1349:2;1334:18;;1215:177;9549:39:0;;;;;;;;9439:161;-1:-1:-1;;;;;9626:15:0;;;;;;:9;:15;;;;;;:27;;9646:6;9626:19;:27::i;:::-;-1:-1:-1;;;;;9610:15:0;;;;;;:9;:15;;;;;:43;9678:40;9696:21;:6;9707:9;9696:10;:21::i;:::-;-1:-1:-1;;;;;9678:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;9664:13:0;;;;;;;:9;:13;;;;;:54;;;;9734:41;;;9753:21;:6;9764:9;9753:10;:21::i;:::-;9734:41;;1361:25:1;;;1349:2;1334:18;9734:41:0;;;;;;;7240:2543;7171:2612;;;:::o;1280:190::-;1366:7;1402:12;1394:6;;;;1386:29;;;;-1:-1:-1;;;1386:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1426:9:0;1438:5;1442:1;1438;:5;:::i;:::-;1426:17;1280:190;-1:-1:-1;;;;;1280:190:0:o;9899:555::-;5114:6;:13;;-1:-1:-1;;;;5114:13:0;-1:-1:-1;;;5114:13:0;;;9977:27;;9996:7:::1;9977:27;10018:11;::::0;-1:-1:-1;;;10018:11:0;::::1;;;10014:25:::0;10031:7:::1;10014:25;10073:16;::::0;;10087:1:::1;10073:16:::0;;;;;::::1;::::0;;10049:21:::1;::::0;10073:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10073:16:0::1;10049:40;;10118:4;10100;10105:1;10100:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10100:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10144:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;10144:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;10100:7;;10144:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10134:4;10139:1;10134:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10134:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;10209:15:::1;::::0;10177:62:::1;::::0;10194:4:::1;::::0;10209:15:::1;10227:11:::0;10177:8:::1;:62::i;:::-;10250:15;::::0;:196:::1;::::0;-1:-1:-1;;;10250:196:0;;-1:-1:-1;;;;;10250:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;10331:11;;10250:15:::1;::::0;10373:4;;10400::::1;::::0;10420:15:::1;::::0;10250:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9966:488;5138:1;-1:-1:-1::0;5150:6:0;:14;;-1:-1:-1;;;;5150:14:0;;;9899:555::o;10666:92::-;10723:10;;:27;;:10;;;;-1:-1:-1;;;;;10723:10:0;;:27;;;;;;;;;;;;:10;:27;;;;;;;;;;;;;;;;;;;1478:246;1536:7;1560:1;1565;1560:6;1556:47;;-1:-1:-1;1590:1:0;1583:8;;1556:47;1613:9;1625:5;1629:1;1625;:5;:::i;:::-;1613:17;-1:-1:-1;1658:1:0;1649:5;1653:1;1613:17;1649:5;:::i;:::-;:10;1641:56;;;;-1:-1:-1;;;1641:56:0;;12916:2:1;1641:56:0;;;12898:21:1;12955:2;12935:18;;;12928:30;12994:34;12974:18;;;12967:62;-1:-1:-1;;;13045:18:1;;;13038:31;13086:19;;1641:56:0;12714:397:1;1641:56:0;1715:1;1478:246;-1:-1:-1;;;1478:246:0:o;1732:132::-;1790:7;1817:39;1821:1;1824;1817:39;;;;;;;;;;;;;;;;;:3;:39::i;9793:98::-;9850:7;9877:1;9875;:3;9874:9;;9882:1;9874:9;;;-1:-1:-1;9880:1:0;9793:98;-1:-1:-1;9793:98:0:o;949:179::-;1007:7;;1039:5;1043:1;1039;:5;:::i;:::-;1027:17;;1068:1;1063;:6;;1055:46;;;;-1:-1:-1;;;1055:46:0;;13318:2:1;1055:46:0;;;13300:21:1;13357:2;13337:18;;;13330:30;13396:29;13376:18;;;13369:57;13443:18;;1055:46:0;13116:351:1;1136:136:0;1194:7;1221:43;1225:1;1228;1221:43;;;;;;;;;;;;;;;;;:3;:43::i;1872:189::-;1958:7;1993:12;1986:5;1978:28;;;;-1:-1:-1;;;1978:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2017:9:0;2029:5;2033:1;2029;: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:127::-;2961:10;2956:3;2952:20;2949:1;2942:31;2992:4;2989:1;2982:15;3016:4;3013:1;3006:15;3032:422;3121:1;3164:5;3121:1;3178:270;3199:7;3189:8;3186:21;3178:270;;;3258:4;3254:1;3250:6;3246:17;3240:4;3237:27;3234:53;;;3267:18;;:::i;:::-;3317:7;3307:8;3303:22;3300:55;;;3337:16;;;;3300:55;3416:22;;;;3376:15;;;;3178:270;;;3182:3;3032:422;;;;;:::o;3459:806::-;3508:5;3538:8;3528:80;;-1:-1:-1;3579:1:1;3593:5;;3528:80;3627:4;3617:76;;-1:-1:-1;3664:1:1;3678:5;;3617:76;3709:4;3727:1;3722:59;;;;3795:1;3790:130;;;;3702:218;;3722:59;3752:1;3743:10;;3766:5;;;3790:130;3827:3;3817:8;3814:17;3811:43;;;3834:18;;:::i;:::-;-1:-1:-1;;3890:1:1;3876:16;;3905:5;;3702:218;;4004:2;3994:8;3991:16;3985:3;3979:4;3976:13;3972:36;3966:2;3956:8;3953:16;3948:2;3942:4;3939:12;3935:35;3932:77;3929:159;;;-1:-1:-1;4041:19:1;;;4073:5;;3929:159;4120:34;4145:8;4139:4;4120:34;:::i;:::-;4190:6;4186:1;4182:6;4178:19;4169:7;4166:32;4163:58;;;4201:18;;:::i;:::-;4239:20;;3459:806;-1:-1:-1;;;3459:806:1:o;4270:140::-;4328:5;4357:47;4398:4;4388:8;4384:19;4378:4;4357:47;:::i;4415:168::-;4488:9;;;4519;;4536:15;;;4530:22;;4516:37;4506:71;;4557:18;;:::i;4588:356::-;4790:2;4772:21;;;4809:18;;;4802:30;4868:34;4863:2;4848:18;;4841:62;4935:2;4920:18;;4588:356::o;5301:251::-;5371:6;5424:2;5412:9;5403:7;5399:23;5395:32;5392:52;;;5440:1;5437;5430:12;5392:52;5472:9;5466:16;5491:31;5516:5;5491:31;:::i;6478:306::-;6566:6;6574;6582;6635:2;6623:9;6614:7;6610:23;6606:32;6603:52;;;6651:1;6648;6641:12;6603:52;6680:9;6674:16;6664:26;;6730:2;6719:9;6715:18;6709:25;6699:35;;6774:2;6763:9;6759:18;6753:25;6743:35;;6478:306;;;;;:::o;7068:277::-;7135:6;7188:2;7176:9;7167:7;7163:23;7159:32;7156:52;;;7204:1;7201;7194:12;7156:52;7236:9;7230:16;7289:5;7282:13;7275:21;7268:5;7265:32;7255:60;;7311:1;7308;7301:12;10137:125;10202:9;;;10223:10;;;10220:36;;;10236:18;;:::i;10622:135::-;10661:3;10682:17;;;10679:43;;10702:18;;:::i;:::-;-1:-1:-1;10749:1:1;10738:13;;10622:135::o;11110:128::-;11177:9;;;11198:11;;;11195:37;;;11212:18;;:::i;11375:127::-;11436:10;11431:3;11427:20;11424:1;11417:31;11467:4;11464:1;11457:15;11491:4;11488:1;11481:15;11507:980;11769:4;11817:3;11806:9;11802:19;11848:6;11837:9;11830:25;11874:2;11912:6;11907:2;11896:9;11892:18;11885:34;11955:3;11950:2;11939:9;11935:18;11928:31;11979:6;12014;12008:13;12045:6;12037;12030:22;12083:3;12072:9;12068:19;12061:26;;12122:2;12114:6;12110:15;12096:29;;12143:1;12153:195;12167:6;12164:1;12161:13;12153:195;;;12232:13;;-1:-1:-1;;;;;12228:39:1;12216:52;;12323:15;;;;12288:12;;;;12264:1;12182:9;12153:195;;;-1:-1:-1;;;;;;;12404:32:1;;;;12399:2;12384:18;;12377:60;-1:-1:-1;;;12468:3:1;12453:19;12446:35;12365:3;11507:980;-1:-1:-1;;;11507:980:1:o;12492:217::-;12532:1;12558;12548:132;;12602:10;12597:3;12593:20;12590:1;12583:31;12637:4;12634:1;12627:15;12665:4;12662:1;12655:15;12548:132;-1:-1:-1;12694:9:1;;12492:217::o

Swarm Source

ipfs://2923b262d7d995a2bd277e422457b88786b02846b2c50677544a843af63de357

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.