ETH Price: $2,579.32 (-2.20%)

Contract

0x48A4fB7B60540EA4CEA9a90b23Be9AE2Ae0b661C
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve182607112023-10-02 5:19:11323 days ago1696223951IN
0x48A4fB7B...2Ae0b661C
0 ETH0.000293486.22459438
Approve182406672023-09-29 10:06:47326 days ago1695982007IN
0x48A4fB7B...2Ae0b661C
0 ETH0.000359477.66707892
Approve182376452023-09-28 23:55:59326 days ago1695945359IN
0x48A4fB7B...2Ae0b661C
0 ETH0.000415758.81765957
Approve182373102023-09-28 22:48:11327 days ago1695941291IN
0x48A4fB7B...2Ae0b661C
0 ETH0.000372637.95591847
Approve182372552023-09-28 22:37:11327 days ago1695940631IN
0x48A4fB7B...2Ae0b661C
0 ETH0.000599112.6901945
Approve182369722023-09-28 21:39:59327 days ago1695937199IN
0x48A4fB7B...2Ae0b661C
0 ETH0.0005190511.00865858
Approve182368722023-09-28 21:19:59327 days ago1695935999IN
0x48A4fB7B...2Ae0b661C
0 ETH0.0007017914.86531366
Approve182368112023-09-28 21:07:47327 days ago1695935267IN
0x48A4fB7B...2Ae0b661C
0 ETH0.000435769.30374658
Approve182367592023-09-28 20:57:23327 days ago1695934643IN
0x48A4fB7B...2Ae0b661C
0 ETH0.000445169.44150043
Approve182366992023-09-28 20:45:23327 days ago1695933923IN
0x48A4fB7B...2Ae0b661C
0 ETH0.000618413.11564892
Approve182366842023-09-28 20:42:23327 days ago1695933743IN
0x48A4fB7B...2Ae0b661C
0 ETH0.0005112410.91512323
Approve182366332023-09-28 20:32:11327 days ago1695933131IN
0x48A4fB7B...2Ae0b661C
0 ETH0.001205125.53299965
Approve182366332023-09-28 20:32:11327 days ago1695933131IN
0x48A4fB7B...2Ae0b661C
0 ETH0.001205125.53299965
Approve182365952023-09-28 20:24:35327 days ago1695932675IN
0x48A4fB7B...2Ae0b661C
0 ETH0.0006244913.24486632
Approve182364762023-09-28 20:00:35327 days ago1695931235IN
0x48A4fB7B...2Ae0b661C
0 ETH0.0006186813.1215649
Approve182364522023-09-28 19:55:47327 days ago1695930947IN
0x48A4fB7B...2Ae0b661C
0 ETH0.0005524511.78290447
Approve182362702023-09-28 19:19:11327 days ago1695928751IN
0x48A4fB7B...2Ae0b661C
0 ETH0.0005866312.50866419
Approve182361832023-09-28 19:01:35327 days ago1695927695IN
0x48A4fB7B...2Ae0b661C
0 ETH0.0006597414.06766735
Approve182361522023-09-28 18:55:23327 days ago1695927323IN
0x48A4fB7B...2Ae0b661C
0 ETH0.000590612.59335609
Approve182360062023-09-28 18:25:47327 days ago1695925547IN
0x48A4fB7B...2Ae0b661C
0 ETH0.0011015523.49432061
Approve182359972023-09-28 18:23:59327 days ago1695925439IN
0x48A4fB7B...2Ae0b661C
0 ETH0.0009677320.49854303
Transfer182358222023-09-28 17:48:35327 days ago1695923315IN
0x48A4fB7B...2Ae0b661C
0 ETH0.0014200318.05692768
Approve182358162023-09-28 17:47:23327 days ago1695923243IN
0x48A4fB7B...2Ae0b661C
0 ETH0.0011408124.16469518
Approve182358102023-09-28 17:46:11327 days ago1695923171IN
0x48A4fB7B...2Ae0b661C
0 ETH0.0009262319.61936989
Approve182357712023-09-28 17:38:23327 days ago1695922703IN
0x48A4fB7B...2Ae0b661C
0 ETH0.0007211224.24926161
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
182376592023-09-28 23:58:47326 days ago1695945527
0x48A4fB7B...2Ae0b661C
0.01010312 ETH
182376592023-09-28 23:58:47326 days ago1695945527
0x48A4fB7B...2Ae0b661C
0.01010312 ETH
182366362023-09-28 20:32:47327 days ago1695933167
0x48A4fB7B...2Ae0b661C
0.02434408 ETH
182366362023-09-28 20:32:47327 days ago1695933167
0x48A4fB7B...2Ae0b661C
0.02434408 ETH
182366342023-09-28 20:32:23327 days ago1695933143
0x48A4fB7B...2Ae0b661C
0.02434408 ETH
182366342023-09-28 20:32:23327 days ago1695933143
0x48A4fB7B...2Ae0b661C
0.02434408 ETH
182364112023-09-28 19:47:35327 days ago1695930455
0x48A4fB7B...2Ae0b661C
0.05061499 ETH
182364112023-09-28 19:47:35327 days ago1695930455
0x48A4fB7B...2Ae0b661C
0.05061499 ETH
182364112023-09-28 19:47:35327 days ago1695930455
0x48A4fB7B...2Ae0b661C
0.05091081 ETH
182364112023-09-28 19:47:35327 days ago1695930455
0x48A4fB7B...2Ae0b661C
0.05091081 ETH
182362742023-09-28 19:19:59327 days ago1695928799
0x48A4fB7B...2Ae0b661C
0.01644774 ETH
182362742023-09-28 19:19:59327 days ago1695928799
0x48A4fB7B...2Ae0b661C
0.01644774 ETH
182360092023-09-28 18:26:23327 days ago1695925583
0x48A4fB7B...2Ae0b661C
0.0565122 ETH
182360092023-09-28 18:26:23327 days ago1695925583
0x48A4fB7B...2Ae0b661C
0.0565122 ETH
182359902023-09-28 18:22:35327 days ago1695925355
0x48A4fB7B...2Ae0b661C
0.0052209 ETH
182359902023-09-28 18:22:35327 days ago1695925355
0x48A4fB7B...2Ae0b661C
0.0052209 ETH
182357182023-09-28 17:27:35327 days ago1695922055
0x48A4fB7B...2Ae0b661C
0.02165899 ETH
182357182023-09-28 17:27:35327 days ago1695922055
0x48A4fB7B...2Ae0b661C
0.02165899 ETH
182356722023-09-28 17:18:23327 days ago1695921503
0x48A4fB7B...2Ae0b661C
0.015024 ETH
182356722023-09-28 17:18:23327 days ago1695921503
0x48A4fB7B...2Ae0b661C
0.015024 ETH
182356132023-09-28 17:06:35327 days ago1695920795
0x48A4fB7B...2Ae0b661C
0.06666601 ETH
182356132023-09-28 17:06:35327 days ago1695920795
0x48A4fB7B...2Ae0b661C
0.06666601 ETH
182354912023-09-28 16:42:11327 days ago1695919331
0x48A4fB7B...2Ae0b661C
0.07207671 ETH
182354912023-09-28 16:42:11327 days ago1695919331
0x48A4fB7B...2Ae0b661C
0.07207671 ETH
182354802023-09-28 16:39:59327 days ago1695919199
0x48A4fB7B...2Ae0b661C
0.02752305 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
TrakrBot

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
File 1 of 1 : TrakrBot.sol
/*  
Trakr Bot
$TRAKR

Official Website:  https://www.trakrbot.com/
Official Telegram: https://t.me/trakrbotportal
Official Twitter:  https://twitter.com/TRAKRBOT
Official Gitbook:  https://trakrbot.gitbook.io/trakr/
*/
// SPDX-License-Identifier: UNLICENSED

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 TrakrBot 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;
    address payable private _taxWallet;
    uint256 firstBlock;

    uint256 private _initialBuyTax = 20;
    uint256 private _initialSellTax = 40;
    uint256 private _finalBuyTax = 5;
    uint256 private _finalSellTax = 5;
    uint256 private _reduceBuyTaxAt = 20;
    uint256 private _reduceSellTaxAt = 30;
    uint256 private _preventSwapBefore = 20;
    uint256 private _buyCount = 0;

    uint8 private constant _decimals = 8;
    uint256 private constant _tTotal = 100000000 * 10 ** _decimals;
    string private constant _name = unicode"Trakr Bot";
    string private constant _symbol = unicode"TRAKR";
    uint256 public _maxTxAmount = 2000000 * 10 ** _decimals; // 2%
    uint256 public _maxWalletSize = 2000000 * 10 ** _decimals; // 2%
    uint256 public _taxSwapThreshold = 1000000 * 10 ** _decimals; // 1%
    uint256 public _maxTaxSwap = 2000000 * 10 ** _decimals; // 2%

    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 (
                from == uniswapV2Pair &&
                to != address(uniswapV2Router) &&
                !_isExcludedFromFee[to]
            ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(
                    balanceOf(to) + amount <= _maxWalletSize,
                    "Exceeds the maxWalletSize."
                );

                if (firstBlock + 3 > block.number) {
                    require(!isContract(to));
                }
                _buyCount++;
            }

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

            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 isContract(address account) private view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

    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;
        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;
        firstBlock = block.number;
    }

    receive() external payable {}
}

Settings
{
  "optimizer": {
    "enabled": false,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "libraries": {}
}

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":"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":[{"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"}]

608060405260146006556028600755600560085560056009556014600a55601e600b556014600c556000600d556008600a6200003c919062000610565b621e84806200004c919062000661565b600e556008600a6200005f919062000610565b621e84806200006f919062000661565b600f556008600a62000082919062000610565b620f424062000092919062000661565b6010556008600a620000a5919062000610565b621e8480620000b5919062000661565b6011556000601360156101000a81548160ff0219169083151502179055506000601360166101000a81548160ff021916908315150217905550348015620000fb57600080fd5b5060006200010e6200044560201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001bc6200044560201b60201c565b600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506008600a6200020c919062000610565b6305f5e1006200021d919062000661565b60016000620002316200044560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160036000620002856200044d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620003b86200044560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6008600a62000417919062000610565b6305f5e10062000428919062000661565b604051620004379190620006bd565b60405180910390a3620006da565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200050457808604811115620004dc57620004db62000476565b5b6001851615620004ec5780820291505b8081029050620004fc85620004a5565b9450620004bc565b94509492505050565b6000826200051f5760019050620005f2565b816200052f5760009050620005f2565b8160018114620005485760028114620005535762000589565b6001915050620005f2565b60ff84111562000568576200056762000476565b5b8360020a91508482111562000582576200058162000476565b5b50620005f2565b5060208310610133831016604e8410600b8410161715620005c35782820a905083811115620005bd57620005bc62000476565b5b620005f2565b620005d28484846001620004b2565b92509050818404811115620005ec57620005eb62000476565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006200061d82620005f9565b91506200062a8362000603565b9250620006597fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200050d565b905092915050565b60006200066e82620005f9565b91506200067b83620005f9565b92508282026200068b81620005f9565b91508282048414831517620006a557620006a462000476565b5b5092915050565b620006b781620005f9565b82525050565b6000602082019050620006d46000830184620006ac565b92915050565b612e4880620006ea6000396000f3fe6080604052600436106101025760003560e01c8063751039fc1161009557806395d89b411161006457806395d89b4114610320578063a9059cbb1461034b578063bf474bed14610388578063c9567bf9146103b3578063dd62ed3e146103ca57610109565b8063751039fc146102885780637d1db4a51461029f5780638da5cb5b146102ca5780638f9a55c0146102f557610109565b806323b872dd116100d157806323b872dd146101cc578063313ce5671461020957806370a0823114610234578063715018a61461027157610109565b806306fdde031461010e578063095ea7b3146101395780630faee56f1461017657806318160ddd146101a157610109565b3661010957005b600080fd5b34801561011a57600080fd5b50610123610407565b6040516101309190611f76565b60405180910390f35b34801561014557600080fd5b50610160600480360381019061015b9190612031565b610444565b60405161016d919061208c565b60405180910390f35b34801561018257600080fd5b5061018b610462565b60405161019891906120b6565b60405180910390f35b3480156101ad57600080fd5b506101b6610468565b6040516101c391906120b6565b60405180910390f35b3480156101d857600080fd5b506101f360048036038101906101ee91906120d1565b61048c565b604051610200919061208c565b60405180910390f35b34801561021557600080fd5b5061021e610565565b60405161022b9190612140565b60405180910390f35b34801561024057600080fd5b5061025b6004803603810190610256919061215b565b61056e565b60405161026891906120b6565b60405180910390f35b34801561027d57600080fd5b506102866105b7565b005b34801561029457600080fd5b5061029d61070a565b005b3480156102ab57600080fd5b506102b461083a565b6040516102c191906120b6565b60405180910390f35b3480156102d657600080fd5b506102df610840565b6040516102ec9190612197565b60405180910390f35b34801561030157600080fd5b5061030a610869565b60405161031791906120b6565b60405180910390f35b34801561032c57600080fd5b5061033561086f565b6040516103429190611f76565b60405180910390f35b34801561035757600080fd5b50610372600480360381019061036d9190612031565b6108ac565b60405161037f919061208c565b60405180910390f35b34801561039457600080fd5b5061039d6108ca565b6040516103aa91906120b6565b60405180910390f35b3480156103bf57600080fd5b506103c86108d0565b005b3480156103d657600080fd5b506103f160048036038101906103ec91906121b2565b610e0f565b6040516103fe91906120b6565b60405180910390f35b60606040518060400160405280600981526020017f5472616b7220426f740000000000000000000000000000000000000000000000815250905090565b6000610458610451610e96565b8484610e9e565b6001905092915050565b60115481565b60006008600a6104789190612354565b6305f5e100610487919061239f565b905090565b6000610499848484611067565b61055a846104a5610e96565b61055585604051806060016040528060288152602001612deb60289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061050b610e96565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119a29092919063ffffffff16565b610e9e565b600190509392505050565b60006008905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6105bf610e96565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461064c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106439061242d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610712610e96565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461079f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107969061242d565b60405180910390fd5b6008600a6107ad9190612354565b6305f5e1006107bc919061239f565b600e819055506008600a6107d09190612354565b6305f5e1006107df919061239f565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6008600a6108149190612354565b6305f5e100610823919061239f565b60405161083091906120b6565b60405180910390a1565b600e5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600581526020017f5452414b52000000000000000000000000000000000000000000000000000000815250905090565b60006108c06108b9610e96565b8484611067565b6001905092915050565b60105481565b6108d8610e96565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610965576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095c9061242d565b60405180910390fd5b601360149054906101000a900460ff16156109b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ac90612499565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610a5330601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166008600a610a3f9190612354565b6305f5e100610a4e919061239f565b610e9e565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ac0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ae491906124ce565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b9191906124ce565b6040518363ffffffff1660e01b8152600401610bae9291906124fb565b6020604051808303816000875af1158015610bcd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf191906124ce565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610c7a3061056e565b600080610c85610840565b426040518863ffffffff1660e01b8152600401610ca796959493929190612569565b60606040518083038185885af1158015610cc5573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610cea91906125df565b505050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610d8c929190612632565b6020604051808303816000875af1158015610dab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dcf9190612687565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff02191690831515021790555043600581905550565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0490612726565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f73906127b8565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161105a91906120b6565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110cd9061284a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611145576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113c906128dc565b60405180910390fd5b60008111611188576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117f9061296e565b60405180910390fd5b6000611192610840565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561120057506111d0610840565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156116e5576112416064611233600a54600d541161122057600654611224565b6008545b85611a0690919063ffffffff16565b611a8090919063ffffffff16565b9050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156112ee5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156113445750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561142957600e5482111561138e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611385906129da565b60405180910390fd5b600f548261139b8561056e565b6113a591906129fa565b11156113e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113dd90612a7a565b60405180910390fd5b4360036005546113f691906129fa565b11156114105761140583611aca565b1561140f57600080fd5b5b600d600081548092919061142390612a9a565b91905055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156114d15750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561152f57600f54826114e38561056e565b6114ed91906129fa565b111561152e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152590612a7a565b60405180910390fd5b5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156115b857503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156115fc576115f960646115eb600b54600d54116115d8576007546115dc565b6009545b85611a0690919063ffffffff16565b611a8090919063ffffffff16565b90505b60006116073061056e565b9050601360159054906101000a900460ff161580156116735750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b801561168b5750601360169054906101000a900460ff165b8015611698575060105481115b80156116a75750600c54600d54115b156116e3576116c96116c4846116bf84601154611add565b611add565b611af6565b600047905060008111156116e1576116e047611d6f565b5b505b505b60008111156117e95761174081600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ddb90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516117e091906120b6565b60405180910390a35b61183b82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e3990919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506118e26118948284611e3990919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ddb90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6119878486611e3990919063ffffffff16565b60405161199491906120b6565b60405180910390a350505050565b60008383111582906119ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e19190611f76565b60405180910390fd5b50600083856119f99190612ae2565b9050809150509392505050565b6000808303611a185760009050611a7a565b60008284611a26919061239f565b9050828482611a359190612b45565b14611a75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6c90612be8565b60405180910390fd5b809150505b92915050565b6000611ac283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611e83565b905092915050565b600080823b905060008111915050919050565b6000818311611aec5782611aee565b815b905092915050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611b2e57611b2d612c08565b5b604051908082528060200260200182016040528015611b5c5781602001602082028036833780820191505090505b5090503081600081518110611b7457611b73612c37565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c3f91906124ce565b81600181518110611c5357611c52612c37565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611cba30601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610e9e565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611d1e959493929190612d24565b600060405180830381600087803b158015611d3857600080fd5b505af1158015611d4c573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611dd7573d6000803e3d6000fd5b5050565b6000808284611dea91906129fa565b905083811015611e2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2690612dca565b60405180910390fd5b8091505092915050565b6000611e7b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506119a2565b905092915050565b60008083118290611eca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec19190611f76565b60405180910390fd5b5060008385611ed99190612b45565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611f20578082015181840152602081019050611f05565b60008484015250505050565b6000601f19601f8301169050919050565b6000611f4882611ee6565b611f528185611ef1565b9350611f62818560208601611f02565b611f6b81611f2c565b840191505092915050565b60006020820190508181036000830152611f908184611f3d565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611fc882611f9d565b9050919050565b611fd881611fbd565b8114611fe357600080fd5b50565b600081359050611ff581611fcf565b92915050565b6000819050919050565b61200e81611ffb565b811461201957600080fd5b50565b60008135905061202b81612005565b92915050565b6000806040838503121561204857612047611f98565b5b600061205685828601611fe6565b92505060206120678582860161201c565b9150509250929050565b60008115159050919050565b61208681612071565b82525050565b60006020820190506120a1600083018461207d565b92915050565b6120b081611ffb565b82525050565b60006020820190506120cb60008301846120a7565b92915050565b6000806000606084860312156120ea576120e9611f98565b5b60006120f886828701611fe6565b935050602061210986828701611fe6565b925050604061211a8682870161201c565b9150509250925092565b600060ff82169050919050565b61213a81612124565b82525050565b60006020820190506121556000830184612131565b92915050565b60006020828403121561217157612170611f98565b5b600061217f84828501611fe6565b91505092915050565b61219181611fbd565b82525050565b60006020820190506121ac6000830184612188565b92915050565b600080604083850312156121c9576121c8611f98565b5b60006121d785828601611fe6565b92505060206121e885828601611fe6565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111561227857808604811115612254576122536121f2565b5b60018516156122635780820291505b808102905061227185612221565b9450612238565b94509492505050565b600082612291576001905061234d565b8161229f576000905061234d565b81600181146122b557600281146122bf576122ee565b600191505061234d565b60ff8411156122d1576122d06121f2565b5b8360020a9150848211156122e8576122e76121f2565b5b5061234d565b5060208310610133831016604e8410600b84101617156123235782820a90508381111561231e5761231d6121f2565b5b61234d565b612330848484600161222e565b92509050818404811115612347576123466121f2565b5b81810290505b9392505050565b600061235f82611ffb565b915061236a83612124565b92506123977fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612281565b905092915050565b60006123aa82611ffb565b91506123b583611ffb565b92508282026123c381611ffb565b915082820484148315176123da576123d96121f2565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612417602083611ef1565b9150612422826123e1565b602082019050919050565b600060208201905081810360008301526124468161240a565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612483601783611ef1565b915061248e8261244d565b602082019050919050565b600060208201905081810360008301526124b281612476565b9050919050565b6000815190506124c881611fcf565b92915050565b6000602082840312156124e4576124e3611f98565b5b60006124f2848285016124b9565b91505092915050565b60006040820190506125106000830185612188565b61251d6020830184612188565b9392505050565b6000819050919050565b6000819050919050565b600061255361254e61254984612524565b61252e565b611ffb565b9050919050565b61256381612538565b82525050565b600060c08201905061257e6000830189612188565b61258b60208301886120a7565b612598604083018761255a565b6125a5606083018661255a565b6125b26080830185612188565b6125bf60a08301846120a7565b979650505050505050565b6000815190506125d981612005565b92915050565b6000806000606084860312156125f8576125f7611f98565b5b6000612606868287016125ca565b9350506020612617868287016125ca565b9250506040612628868287016125ca565b9150509250925092565b60006040820190506126476000830185612188565b61265460208301846120a7565b9392505050565b61266481612071565b811461266f57600080fd5b50565b6000815190506126818161265b565b92915050565b60006020828403121561269d5761269c611f98565b5b60006126ab84828501612672565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612710602483611ef1565b915061271b826126b4565b604082019050919050565b6000602082019050818103600083015261273f81612703565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006127a2602283611ef1565b91506127ad82612746565b604082019050919050565b600060208201905081810360008301526127d181612795565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612834602583611ef1565b915061283f826127d8565b604082019050919050565b6000602082019050818103600083015261286381612827565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006128c6602383611ef1565b91506128d18261286a565b604082019050919050565b600060208201905081810360008301526128f5816128b9565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612958602983611ef1565b9150612963826128fc565b604082019050919050565b600060208201905081810360008301526129878161294b565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b60006129c4601983611ef1565b91506129cf8261298e565b602082019050919050565b600060208201905081810360008301526129f3816129b7565b9050919050565b6000612a0582611ffb565b9150612a1083611ffb565b9250828201905080821115612a2857612a276121f2565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612a64601a83611ef1565b9150612a6f82612a2e565b602082019050919050565b60006020820190508181036000830152612a9381612a57565b9050919050565b6000612aa582611ffb565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612ad757612ad66121f2565b5b600182019050919050565b6000612aed82611ffb565b9150612af883611ffb565b9250828203905081811115612b1057612b0f6121f2565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612b5082611ffb565b9150612b5b83611ffb565b925082612b6b57612b6a612b16565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612bd2602183611ef1565b9150612bdd82612b76565b604082019050919050565b60006020820190508181036000830152612c0181612bc5565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612c9b81611fbd565b82525050565b6000612cad8383612c92565b60208301905092915050565b6000602082019050919050565b6000612cd182612c66565b612cdb8185612c71565b9350612ce683612c82565b8060005b83811015612d17578151612cfe8882612ca1565b9750612d0983612cb9565b925050600181019050612cea565b5085935050505092915050565b600060a082019050612d3960008301886120a7565b612d46602083018761255a565b8181036040830152612d588186612cc6565b9050612d676060830185612188565b612d7460808301846120a7565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612db4601b83611ef1565b9150612dbf82612d7e565b602082019050919050565b60006020820190508181036000830152612de381612da7565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212208f92fb6a72375525390ad44b96bb53d64e11bcc43ad6c90bb2210c3b13afa56364736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101025760003560e01c8063751039fc1161009557806395d89b411161006457806395d89b4114610320578063a9059cbb1461034b578063bf474bed14610388578063c9567bf9146103b3578063dd62ed3e146103ca57610109565b8063751039fc146102885780637d1db4a51461029f5780638da5cb5b146102ca5780638f9a55c0146102f557610109565b806323b872dd116100d157806323b872dd146101cc578063313ce5671461020957806370a0823114610234578063715018a61461027157610109565b806306fdde031461010e578063095ea7b3146101395780630faee56f1461017657806318160ddd146101a157610109565b3661010957005b600080fd5b34801561011a57600080fd5b50610123610407565b6040516101309190611f76565b60405180910390f35b34801561014557600080fd5b50610160600480360381019061015b9190612031565b610444565b60405161016d919061208c565b60405180910390f35b34801561018257600080fd5b5061018b610462565b60405161019891906120b6565b60405180910390f35b3480156101ad57600080fd5b506101b6610468565b6040516101c391906120b6565b60405180910390f35b3480156101d857600080fd5b506101f360048036038101906101ee91906120d1565b61048c565b604051610200919061208c565b60405180910390f35b34801561021557600080fd5b5061021e610565565b60405161022b9190612140565b60405180910390f35b34801561024057600080fd5b5061025b6004803603810190610256919061215b565b61056e565b60405161026891906120b6565b60405180910390f35b34801561027d57600080fd5b506102866105b7565b005b34801561029457600080fd5b5061029d61070a565b005b3480156102ab57600080fd5b506102b461083a565b6040516102c191906120b6565b60405180910390f35b3480156102d657600080fd5b506102df610840565b6040516102ec9190612197565b60405180910390f35b34801561030157600080fd5b5061030a610869565b60405161031791906120b6565b60405180910390f35b34801561032c57600080fd5b5061033561086f565b6040516103429190611f76565b60405180910390f35b34801561035757600080fd5b50610372600480360381019061036d9190612031565b6108ac565b60405161037f919061208c565b60405180910390f35b34801561039457600080fd5b5061039d6108ca565b6040516103aa91906120b6565b60405180910390f35b3480156103bf57600080fd5b506103c86108d0565b005b3480156103d657600080fd5b506103f160048036038101906103ec91906121b2565b610e0f565b6040516103fe91906120b6565b60405180910390f35b60606040518060400160405280600981526020017f5472616b7220426f740000000000000000000000000000000000000000000000815250905090565b6000610458610451610e96565b8484610e9e565b6001905092915050565b60115481565b60006008600a6104789190612354565b6305f5e100610487919061239f565b905090565b6000610499848484611067565b61055a846104a5610e96565b61055585604051806060016040528060288152602001612deb60289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061050b610e96565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119a29092919063ffffffff16565b610e9e565b600190509392505050565b60006008905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6105bf610e96565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461064c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106439061242d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610712610e96565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461079f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107969061242d565b60405180910390fd5b6008600a6107ad9190612354565b6305f5e1006107bc919061239f565b600e819055506008600a6107d09190612354565b6305f5e1006107df919061239f565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6008600a6108149190612354565b6305f5e100610823919061239f565b60405161083091906120b6565b60405180910390a1565b600e5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600581526020017f5452414b52000000000000000000000000000000000000000000000000000000815250905090565b60006108c06108b9610e96565b8484611067565b6001905092915050565b60105481565b6108d8610e96565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610965576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095c9061242d565b60405180910390fd5b601360149054906101000a900460ff16156109b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ac90612499565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610a5330601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166008600a610a3f9190612354565b6305f5e100610a4e919061239f565b610e9e565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ac0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ae491906124ce565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b9191906124ce565b6040518363ffffffff1660e01b8152600401610bae9291906124fb565b6020604051808303816000875af1158015610bcd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf191906124ce565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610c7a3061056e565b600080610c85610840565b426040518863ffffffff1660e01b8152600401610ca796959493929190612569565b60606040518083038185885af1158015610cc5573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610cea91906125df565b505050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610d8c929190612632565b6020604051808303816000875af1158015610dab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dcf9190612687565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff02191690831515021790555043600581905550565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0490612726565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f73906127b8565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161105a91906120b6565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110cd9061284a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611145576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113c906128dc565b60405180910390fd5b60008111611188576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117f9061296e565b60405180910390fd5b6000611192610840565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561120057506111d0610840565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156116e5576112416064611233600a54600d541161122057600654611224565b6008545b85611a0690919063ffffffff16565b611a8090919063ffffffff16565b9050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156112ee5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156113445750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561142957600e5482111561138e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611385906129da565b60405180910390fd5b600f548261139b8561056e565b6113a591906129fa565b11156113e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113dd90612a7a565b60405180910390fd5b4360036005546113f691906129fa565b11156114105761140583611aca565b1561140f57600080fd5b5b600d600081548092919061142390612a9a565b91905055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156114d15750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561152f57600f54826114e38561056e565b6114ed91906129fa565b111561152e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152590612a7a565b60405180910390fd5b5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156115b857503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156115fc576115f960646115eb600b54600d54116115d8576007546115dc565b6009545b85611a0690919063ffffffff16565b611a8090919063ffffffff16565b90505b60006116073061056e565b9050601360159054906101000a900460ff161580156116735750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b801561168b5750601360169054906101000a900460ff165b8015611698575060105481115b80156116a75750600c54600d54115b156116e3576116c96116c4846116bf84601154611add565b611add565b611af6565b600047905060008111156116e1576116e047611d6f565b5b505b505b60008111156117e95761174081600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ddb90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516117e091906120b6565b60405180910390a35b61183b82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e3990919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506118e26118948284611e3990919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ddb90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6119878486611e3990919063ffffffff16565b60405161199491906120b6565b60405180910390a350505050565b60008383111582906119ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e19190611f76565b60405180910390fd5b50600083856119f99190612ae2565b9050809150509392505050565b6000808303611a185760009050611a7a565b60008284611a26919061239f565b9050828482611a359190612b45565b14611a75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6c90612be8565b60405180910390fd5b809150505b92915050565b6000611ac283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611e83565b905092915050565b600080823b905060008111915050919050565b6000818311611aec5782611aee565b815b905092915050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611b2e57611b2d612c08565b5b604051908082528060200260200182016040528015611b5c5781602001602082028036833780820191505090505b5090503081600081518110611b7457611b73612c37565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c3f91906124ce565b81600181518110611c5357611c52612c37565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611cba30601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610e9e565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611d1e959493929190612d24565b600060405180830381600087803b158015611d3857600080fd5b505af1158015611d4c573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611dd7573d6000803e3d6000fd5b5050565b6000808284611dea91906129fa565b905083811015611e2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2690612dca565b60405180910390fd5b8091505092915050565b6000611e7b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506119a2565b905092915050565b60008083118290611eca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec19190611f76565b60405180910390fd5b5060008385611ed99190612b45565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611f20578082015181840152602081019050611f05565b60008484015250505050565b6000601f19601f8301169050919050565b6000611f4882611ee6565b611f528185611ef1565b9350611f62818560208601611f02565b611f6b81611f2c565b840191505092915050565b60006020820190508181036000830152611f908184611f3d565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611fc882611f9d565b9050919050565b611fd881611fbd565b8114611fe357600080fd5b50565b600081359050611ff581611fcf565b92915050565b6000819050919050565b61200e81611ffb565b811461201957600080fd5b50565b60008135905061202b81612005565b92915050565b6000806040838503121561204857612047611f98565b5b600061205685828601611fe6565b92505060206120678582860161201c565b9150509250929050565b60008115159050919050565b61208681612071565b82525050565b60006020820190506120a1600083018461207d565b92915050565b6120b081611ffb565b82525050565b60006020820190506120cb60008301846120a7565b92915050565b6000806000606084860312156120ea576120e9611f98565b5b60006120f886828701611fe6565b935050602061210986828701611fe6565b925050604061211a8682870161201c565b9150509250925092565b600060ff82169050919050565b61213a81612124565b82525050565b60006020820190506121556000830184612131565b92915050565b60006020828403121561217157612170611f98565b5b600061217f84828501611fe6565b91505092915050565b61219181611fbd565b82525050565b60006020820190506121ac6000830184612188565b92915050565b600080604083850312156121c9576121c8611f98565b5b60006121d785828601611fe6565b92505060206121e885828601611fe6565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111561227857808604811115612254576122536121f2565b5b60018516156122635780820291505b808102905061227185612221565b9450612238565b94509492505050565b600082612291576001905061234d565b8161229f576000905061234d565b81600181146122b557600281146122bf576122ee565b600191505061234d565b60ff8411156122d1576122d06121f2565b5b8360020a9150848211156122e8576122e76121f2565b5b5061234d565b5060208310610133831016604e8410600b84101617156123235782820a90508381111561231e5761231d6121f2565b5b61234d565b612330848484600161222e565b92509050818404811115612347576123466121f2565b5b81810290505b9392505050565b600061235f82611ffb565b915061236a83612124565b92506123977fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612281565b905092915050565b60006123aa82611ffb565b91506123b583611ffb565b92508282026123c381611ffb565b915082820484148315176123da576123d96121f2565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612417602083611ef1565b9150612422826123e1565b602082019050919050565b600060208201905081810360008301526124468161240a565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612483601783611ef1565b915061248e8261244d565b602082019050919050565b600060208201905081810360008301526124b281612476565b9050919050565b6000815190506124c881611fcf565b92915050565b6000602082840312156124e4576124e3611f98565b5b60006124f2848285016124b9565b91505092915050565b60006040820190506125106000830185612188565b61251d6020830184612188565b9392505050565b6000819050919050565b6000819050919050565b600061255361254e61254984612524565b61252e565b611ffb565b9050919050565b61256381612538565b82525050565b600060c08201905061257e6000830189612188565b61258b60208301886120a7565b612598604083018761255a565b6125a5606083018661255a565b6125b26080830185612188565b6125bf60a08301846120a7565b979650505050505050565b6000815190506125d981612005565b92915050565b6000806000606084860312156125f8576125f7611f98565b5b6000612606868287016125ca565b9350506020612617868287016125ca565b9250506040612628868287016125ca565b9150509250925092565b60006040820190506126476000830185612188565b61265460208301846120a7565b9392505050565b61266481612071565b811461266f57600080fd5b50565b6000815190506126818161265b565b92915050565b60006020828403121561269d5761269c611f98565b5b60006126ab84828501612672565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612710602483611ef1565b915061271b826126b4565b604082019050919050565b6000602082019050818103600083015261273f81612703565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006127a2602283611ef1565b91506127ad82612746565b604082019050919050565b600060208201905081810360008301526127d181612795565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612834602583611ef1565b915061283f826127d8565b604082019050919050565b6000602082019050818103600083015261286381612827565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006128c6602383611ef1565b91506128d18261286a565b604082019050919050565b600060208201905081810360008301526128f5816128b9565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612958602983611ef1565b9150612963826128fc565b604082019050919050565b600060208201905081810360008301526129878161294b565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b60006129c4601983611ef1565b91506129cf8261298e565b602082019050919050565b600060208201905081810360008301526129f3816129b7565b9050919050565b6000612a0582611ffb565b9150612a1083611ffb565b9250828201905080821115612a2857612a276121f2565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612a64601a83611ef1565b9150612a6f82612a2e565b602082019050919050565b60006020820190508181036000830152612a9381612a57565b9050919050565b6000612aa582611ffb565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612ad757612ad66121f2565b5b600182019050919050565b6000612aed82611ffb565b9150612af883611ffb565b9250828203905081811115612b1057612b0f6121f2565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612b5082611ffb565b9150612b5b83611ffb565b925082612b6b57612b6a612b16565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612bd2602183611ef1565b9150612bdd82612b76565b604082019050919050565b60006020820190508181036000830152612c0181612bc5565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612c9b81611fbd565b82525050565b6000612cad8383612c92565b60208301905092915050565b6000602082019050919050565b6000612cd182612c66565b612cdb8185612c71565b9350612ce683612c82565b8060005b83811015612d17578151612cfe8882612ca1565b9750612d0983612cb9565b925050600181019050612cea565b5085935050505092915050565b600060a082019050612d3960008301886120a7565b612d46602083018761255a565b8181036040830152612d588186612cc6565b9050612d676060830185612188565b612d7460808301846120a7565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612db4601b83611ef1565b9150612dbf82612d7e565b602082019050919050565b60006020820190508181036000830152612de381612da7565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212208f92fb6a72375525390ad44b96bb53d64e11bcc43ad6c90bb2210c3b13afa56364736f6c63430008130033

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.