ETH Price: $3,430.12 (-1.93%)
Gas: 5 Gwei

Contract

0x2F53c0d3F1D60A8Da0e0A7E9653Edd6cb9574069
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve194815792024-03-21 7:33:23118 days ago1711006403IN
0x2F53c0d3...cb9574069
0 ETH0.0006805827.98559386
Approve169514262023-04-01 2:46:35474 days ago1680317195IN
0x2F53c0d3...cb9574069
0 ETH0.0005843624.02900752
Approve133799522021-10-08 19:04:201013 days ago1633719860IN
0x2F53c0d3...cb9574069
0 ETH0.00578284237.79120617
Approve130048402021-08-11 16:07:571071 days ago1628698077IN
0x2F53c0d3...cb9574069
0 ETH0.00287353118.15994884
Approve129333282021-07-31 12:31:081082 days ago1627734668IN
0x2F53c0d3...cb9574069
0 ETH0.0009267820
Approve128601112021-07-19 23:53:011094 days ago1626738781IN
0x2F53c0d3...cb9574069
0 ETH0.0007414216
Approve128600082021-07-19 23:32:071094 days ago1626737527IN
0x2F53c0d3...cb9574069
0 ETH0.0007456416.00000145
Approve128564652021-07-19 10:25:491094 days ago1626690349IN
0x2F53c0d3...cb9574069
0 ETH0.0006990415
Approve128519202021-07-18 17:22:341095 days ago1626628954IN
0x2F53c0d3...cb9574069
0 ETH0.0009786621
Approve128460152021-07-17 19:04:091096 days ago1626548649IN
0x2F53c0d3...cb9574069
0 ETH0.0009320620
Approve128408292021-07-16 23:23:161097 days ago1626477796IN
0x2F53c0d3...cb9574069
0 ETH0.0013048828
Approve128396362021-07-16 18:59:481097 days ago1626461988IN
0x2F53c0d3...cb9574069
0 ETH0.0017243137
Approve128313892021-07-15 11:50:091098 days ago1626349809IN
0x2F53c0d3...cb9574069
0 ETH0.0013328428.6
Approve128275662021-07-14 21:36:221099 days ago1626298582IN
0x2F53c0d3...cb9574069
0 ETH0.0016916836.3
Approve128274722021-07-14 21:13:581099 days ago1626297238IN
0x2F53c0d3...cb9574069
0 ETH0.001384129.7
Approve128266142021-07-14 17:59:221099 days ago1626285562IN
0x2F53c0d3...cb9574069
0 ETH0.0027961860
Approve128263342021-07-14 16:54:121099 days ago1626281652IN
0x2F53c0d3...cb9574069
0 ETH0.0021437346
Approve128249912021-07-14 11:50:591099 days ago1626263459IN
0x2F53c0d3...cb9574069
0 ETH0.0014446931
Approve128236022021-07-14 6:45:131099 days ago1626245113IN
0x2F53c0d3...cb9574069
0 ETH0.0016637235.7
Approve128231832021-07-14 5:06:571099 days ago1626239217IN
0x2F53c0d3...cb9574069
0 ETH0.0022369448
Approve128230592021-07-14 4:35:421099 days ago1626237342IN
0x2F53c0d3...cb9574069
0 ETH0.0023301550
Approve128230422021-07-14 4:31:531099 days ago1626237113IN
0x2F53c0d3...cb9574069
0 ETH0.0026097656
Approve128228742021-07-14 3:50:451100 days ago1626234645IN
0x2F53c0d3...cb9574069
0 ETH0.0019806242.5
Approve128227522021-07-14 3:20:321100 days ago1626232832IN
0x2F53c0d3...cb9574069
0 ETH0.0011723725.3000016
Approve128227172021-07-14 3:13:391100 days ago1626232419IN
0x2F53c0d3...cb9574069
0 ETH0.0014912932
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Billion

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-07-13
*/

// SPDX-License-Identifier: Unlicensed
//
// Billion Token - $BB
// Web: https://www.billiondefi.com/
// TG: @billionstoken
//
// Max supply 1,000,000,000
//

pragma solidity ^0.6.0;

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

    function _msgData() internal view virtual returns (bytes memory) {
        this;
        return msg.data;
    }
}

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

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

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

library Address {
    function isContract(address account) internal view returns (bool) {
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        assembly { codehash := extcodehash(account) }
        return (codehash != accountHash && codehash != 0x0);
    }

    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");
        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionCall(target, data, "Address: low-level call failed");
    }

    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return _functionCallWithValue(target, data, 0, errorMessage);
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        return _functionCallWithValue(target, data, value, errorMessage);
    }

    function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) {
        require(isContract(target), "Address: call to non-contract");
        (bool success, bytes memory returndata) = target.call{ value: weiValue }(data);
        if (success) {
            return returndata;
        } else {
            if (returndata.length > 0) {
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

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

    constructor () internal {
        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 Billion is Context, IERC20, Ownable {
    using SafeMath for uint256;
    using Address for address;
    
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    
    uint256 private _totalSupply = 1 * 1e9 * 1e18;
    
    string private _name = 'Billion';
    string private _symbol = 'BB';
    uint8 private _decimals = 18;
    

    mapping(address => uint256) public _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping(address => bool) public blacklist;

    uint256 public _maxTxLimit = 1 * 1e7 * 1e18;
    
    bool public _live = false;
    
    
    constructor () public {
        _balances[_msgSender()] = _totalSupply;
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());

        emit Transfer(address(0), _msgSender(), _totalSupply);
    }

    function name() public view returns (string memory) {
        return _name;
    }

    function symbol() public view returns (string memory) {
        return _symbol;
    }

    function decimals() public view returns (uint8) {
        return _decimals;
    }

    function totalSupply() public view override returns (uint256) {
        return _totalSupply;
    }

    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 burn(uint256 amount) public {
        require(amount > 0, "ERC20: burn amount must be greater than zero");
        
        _totalSupply = _totalSupply.sub(amount);
        _balances[_msgSender()] = _balances[_msgSender()].sub(amount);
        
        emit Transfer(_msgSender(), address(0x0), amount);
    }
    
    function burnFrom(address account, uint256 amount) public {
        require(amount > 0, "ERC20: burn amount must be greater than zero");
        require(_allowances[account][_msgSender()] >= amount, "ERC20: burn amount must be greater than allowance");
        
        _approve(account, _msgSender(), _allowances[account][_msgSender()].sub(amount));
        
        _totalSupply = _totalSupply.sub(amount);
        _balances[account] = _balances[account].sub(amount);
        
        emit Transfer(account, address(0x0), amount);
    }
    
    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, "ERC20: Transfer amount must be greater than zero");
        
        if (from != owner() && to != owner()) {
            require(amount <= _maxTxLimit, "ERC20: amount exceeds the max tx limit.");
            
            if(from != uniswapV2Pair)
                require(!blacklist[from] && !blacklist[to], 'ERC20: the transaction was blocked.');
            if(from == uniswapV2Pair && !_live)
                blacklist[to] = true;
        }
        
        _balances[from] = _balances[from].sub(amount);
        _balances[to] = _balances[to].add(amount);
        emit Transfer(from, to, amount);
    }
    
    
    function updateLive() external {
        if(!_live) {
            _live = true;
        }
    }
    
    function unblockWallet(address account) public onlyOwner {
        blacklist[account] = false;
    }
    
    function updateMaxLimit(uint256 maxTxLimit) public onlyOwner {
        require(maxTxLimit >= 1e4 * 1e18, 'ERC20: max tx limit should be greater than 1e22');
        _maxTxLimit = maxTxLimit;
    }
}

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":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":[{"internalType":"address","name":"","type":"address"}],"name":"_balances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_live","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxLimit","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":[{"internalType":"address","name":"","type":"address"}],"name":"blacklist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"unblockWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"updateLive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxLimit","type":"uint256"}],"name":"updateMaxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040526b033b2e3c9fd0803ce80000006004556040518060400160405280600781526020017f42696c6c696f6e00000000000000000000000000000000000000000000000000815250600590805190602001906200006192919062000532565b506040518060400160405280600281526020017f424200000000000000000000000000000000000000000000000000000000000081525060069080519060200190620000af92919062000532565b506012600760006101000a81548160ff021916908360ff1602179055506a084595161401484a000000600b556000600c60006101000a81548160ff0219169083151502179055503480156200010357600080fd5b506000620001166200052a60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060045460086000620001cb6200052a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550737a250d5630b4cf539739df2c5dacb4c659f2488d600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620002c757600080fd5b505afa158015620002dc573d6000803e3d6000fd5b505050506040513d6020811015620002f357600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200038957600080fd5b505afa1580156200039e573d6000803e3d6000fd5b505050506040513d6020811015620003b557600080fd5b81019080805190602001909291905050506040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b1580156200043057600080fd5b505af115801562000445573d6000803e3d6000fd5b505050506040513d60208110156200045c57600080fd5b8101908080519060200190929190505050600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620004bd6200052a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6004546040518082815260200191505060405180910390a3620005d8565b600033905090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200057557805160ff1916838001178555620005a6565b82800160010185558215620005a6579182015b82811115620005a557825182559160200191906001019062000588565b5b509050620005b59190620005b9565b5090565b5b80821115620005d4576000816000905550600101620005ba565b5090565b611f3d80620005e86000396000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c80636ebcf607116100b857806395d89b411161007c57806395d89b4114610555578063a9059cbb146105d8578063dd62ed3e1461063c578063f8f3c5a9146106b4578063f9f92be4146106d2578063fd2dbb0e1461072c57610142565b80636ebcf6071461041957806370a0823114610471578063715018a6146104c957806379cc6790146104d35780638da5cb5b1461052157610142565b806323b872dd1161010a57806323b872dd146102c457806329144bdb14610348578063313ce5671461037657806342966c681461039757806349bd5a5e146103c557806356e0ec72146103f957610142565b806306fdde0314610147578063095ea7b3146101ca5780631694505e1461022e57806318160ddd146102625780631c8e117914610280575b600080fd5b61014f610736565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561018f578082015181840152602081019050610174565b50505050905090810190601f1680156101bc5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610216600480360360408110156101e057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506107d8565b60405180821515815260200191505060405180910390f35b6102366107f6565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61026a61081c565b6040518082815260200191505060405180910390f35b6102c26004803603602081101561029657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610826565b005b610330600480360360608110156102da57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610949565b60405180821515815260200191505060405180910390f35b6103746004803603602081101561035e57600080fd5b8101908080359060200190929190505050610a22565b005b61037e610b57565b604051808260ff16815260200191505060405180910390f35b6103c3600480360360208110156103ad57600080fd5b8101908080359060200190929190505050610b6e565b005b6103cd610cf5565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610401610d1b565b60405180821515815260200191505060405180910390f35b61045b6004803603602081101561042f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d2e565b6040518082815260200191505060405180910390f35b6104b36004803603602081101561048757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d46565b6040518082815260200191505060405180910390f35b6104d1610d8f565b005b61051f600480360360408110156104e957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f15565b005b61052961120b565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61055d611234565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561059d578082015181840152602081019050610582565b50505050905090810190601f1680156105ca5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610624600480360360408110156105ee57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112d6565b60405180821515815260200191505060405180910390f35b61069e6004803603604081101561065257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112f4565b6040518082815260200191505060405180910390f35b6106bc61137b565b6040518082815260200191505060405180910390f35b610714600480360360208110156106e857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611381565b60405180821515815260200191505060405180910390f35b6107346113a1565b005b606060058054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107ce5780601f106107a3576101008083540402835291602001916107ce565b820191906000526020600020905b8154815290600101906020018083116107b157829003601f168201915b5050505050905090565b60006107ec6107e56113d3565b84846113db565b6001905092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600454905090565b61082e6113d3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006109568484846115d2565b610a17846109626113d3565b610a1285604051806060016040528060288152602001611e7460289139600960008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109c86113d3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bb99092919063ffffffff16565b6113db565b600190509392505050565b610a2a6113d3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b69021e19e0c9bab2400000811015610b4d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180611df2602f913960400191505060405180910390fd5b80600b8190555050565b6000600760009054906101000a900460ff16905090565b60008111610bc7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180611d6f602c913960400191505060405180910390fd5b610bdc81600454611c7990919063ffffffff16565b600481905550610c3b8160086000610bf26113d3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c7990919063ffffffff16565b60086000610c476113d3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff16610ca56113d3565b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c60009054906101000a900460ff1681565b60086020528060005260406000206000915090505481565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610d976113d3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e57576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008111610f6e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180611d6f602c913960400191505060405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610fb86113d3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561104a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526031815260200180611e436031913960400191505060405180910390fd5b6110f1826110566113d3565b6110ec84600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006110a36113d3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c7990919063ffffffff16565b6113db565b61110681600454611c7990919063ffffffff16565b60048190555061115e81600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c7990919063ffffffff16565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060068054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112cc5780601f106112a1576101008083540402835291602001916112cc565b820191906000526020600020905b8154815290600101906020018083116112af57829003601f168201915b5050505050905090565b60006112ea6112e36113d3565b84846115d2565b6001905092915050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600b5481565b600a6020528060005260406000206000915054906101000a900460ff1681565b600c60009054906101000a900460ff166113d1576001600c60006101000a81548160ff0219169083151502179055505b565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611461576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180611ee46024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114e7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180611e216022913960400191505060405180910390fd5b80600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611658576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180611ebf6025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156116de576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180611d4c6023913960400191505060405180910390fd5b60008111611737576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526030815260200180611dc26030913960400191505060405180910390fd5b61173f61120b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117ad575061177d61120b565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611a2557600b5481111561180d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526027815260200180611d9b6027913960400191505060405180910390fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461195c57600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156119065750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61195b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180611e9c6023913960400191505060405180910390fd5b5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156119c65750600c60009054906101000a900460ff16155b15611a24576001600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b611a7781600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c7990919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b0c81600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cc390919063ffffffff16565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000838311158290611c66576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611c2b578082015181840152602081019050611c10565b50505050905090810190601f168015611c585780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000611cbb83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611bb9565b905092915050565b600080828401905083811015611d41576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b809150509291505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e74206d7573742062652067726561746572207468616e207a65726f45524332303a20616d6f756e74206578636565647320746865206d6178207478206c696d69742e45524332303a205472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f45524332303a206d6178207478206c696d69742073686f756c642062652067726561746572207468616e203165323245524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e74206d7573742062652067726561746572207468616e20616c6c6f77616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a20746865207472616e73616374696f6e2077617320626c6f636b65642e45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a2646970667358221220efb50c12f4089bb2c6b97b2627c31fac3c523de2a421cc55a9edc95066d3bc7264736f6c634300060c0033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101425760003560e01c80636ebcf607116100b857806395d89b411161007c57806395d89b4114610555578063a9059cbb146105d8578063dd62ed3e1461063c578063f8f3c5a9146106b4578063f9f92be4146106d2578063fd2dbb0e1461072c57610142565b80636ebcf6071461041957806370a0823114610471578063715018a6146104c957806379cc6790146104d35780638da5cb5b1461052157610142565b806323b872dd1161010a57806323b872dd146102c457806329144bdb14610348578063313ce5671461037657806342966c681461039757806349bd5a5e146103c557806356e0ec72146103f957610142565b806306fdde0314610147578063095ea7b3146101ca5780631694505e1461022e57806318160ddd146102625780631c8e117914610280575b600080fd5b61014f610736565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561018f578082015181840152602081019050610174565b50505050905090810190601f1680156101bc5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610216600480360360408110156101e057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506107d8565b60405180821515815260200191505060405180910390f35b6102366107f6565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61026a61081c565b6040518082815260200191505060405180910390f35b6102c26004803603602081101561029657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610826565b005b610330600480360360608110156102da57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610949565b60405180821515815260200191505060405180910390f35b6103746004803603602081101561035e57600080fd5b8101908080359060200190929190505050610a22565b005b61037e610b57565b604051808260ff16815260200191505060405180910390f35b6103c3600480360360208110156103ad57600080fd5b8101908080359060200190929190505050610b6e565b005b6103cd610cf5565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610401610d1b565b60405180821515815260200191505060405180910390f35b61045b6004803603602081101561042f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d2e565b6040518082815260200191505060405180910390f35b6104b36004803603602081101561048757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d46565b6040518082815260200191505060405180910390f35b6104d1610d8f565b005b61051f600480360360408110156104e957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f15565b005b61052961120b565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61055d611234565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561059d578082015181840152602081019050610582565b50505050905090810190601f1680156105ca5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610624600480360360408110156105ee57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112d6565b60405180821515815260200191505060405180910390f35b61069e6004803603604081101561065257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112f4565b6040518082815260200191505060405180910390f35b6106bc61137b565b6040518082815260200191505060405180910390f35b610714600480360360208110156106e857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611381565b60405180821515815260200191505060405180910390f35b6107346113a1565b005b606060058054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107ce5780601f106107a3576101008083540402835291602001916107ce565b820191906000526020600020905b8154815290600101906020018083116107b157829003601f168201915b5050505050905090565b60006107ec6107e56113d3565b84846113db565b6001905092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600454905090565b61082e6113d3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006109568484846115d2565b610a17846109626113d3565b610a1285604051806060016040528060288152602001611e7460289139600960008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109c86113d3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bb99092919063ffffffff16565b6113db565b600190509392505050565b610a2a6113d3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b69021e19e0c9bab2400000811015610b4d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180611df2602f913960400191505060405180910390fd5b80600b8190555050565b6000600760009054906101000a900460ff16905090565b60008111610bc7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180611d6f602c913960400191505060405180910390fd5b610bdc81600454611c7990919063ffffffff16565b600481905550610c3b8160086000610bf26113d3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c7990919063ffffffff16565b60086000610c476113d3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff16610ca56113d3565b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c60009054906101000a900460ff1681565b60086020528060005260406000206000915090505481565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610d976113d3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e57576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008111610f6e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180611d6f602c913960400191505060405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610fb86113d3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561104a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526031815260200180611e436031913960400191505060405180910390fd5b6110f1826110566113d3565b6110ec84600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006110a36113d3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c7990919063ffffffff16565b6113db565b61110681600454611c7990919063ffffffff16565b60048190555061115e81600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c7990919063ffffffff16565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060068054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112cc5780601f106112a1576101008083540402835291602001916112cc565b820191906000526020600020905b8154815290600101906020018083116112af57829003601f168201915b5050505050905090565b60006112ea6112e36113d3565b84846115d2565b6001905092915050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600b5481565b600a6020528060005260406000206000915054906101000a900460ff1681565b600c60009054906101000a900460ff166113d1576001600c60006101000a81548160ff0219169083151502179055505b565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611461576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180611ee46024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114e7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180611e216022913960400191505060405180910390fd5b80600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611658576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180611ebf6025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156116de576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180611d4c6023913960400191505060405180910390fd5b60008111611737576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526030815260200180611dc26030913960400191505060405180910390fd5b61173f61120b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117ad575061177d61120b565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611a2557600b5481111561180d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526027815260200180611d9b6027913960400191505060405180910390fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461195c57600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156119065750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61195b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180611e9c6023913960400191505060405180910390fd5b5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156119c65750600c60009054906101000a900460ff16155b15611a24576001600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b611a7781600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c7990919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b0c81600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cc390919063ffffffff16565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000838311158290611c66576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611c2b578082015181840152602081019050611c10565b50505050905090810190601f168015611c585780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000611cbb83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611bb9565b905092915050565b600080828401905083811015611d41576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b809150509291505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e74206d7573742062652067726561746572207468616e207a65726f45524332303a20616d6f756e74206578636565647320746865206d6178207478206c696d69742e45524332303a205472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f45524332303a206d6178207478206c696d69742073686f756c642062652067726561746572207468616e203165323245524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e74206d7573742062652067726561746572207468616e20616c6c6f77616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a20746865207472616e73616374696f6e2077617320626c6f636b65642e45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a2646970667358221220efb50c12f4089bb2c6b97b2627c31fac3c523de2a421cc55a9edc95066d3bc7264736f6c634300060c0033

Deployed Bytecode Sourcemap

6408:4921:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7438:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8277:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;6531:41;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;7715:100;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11013:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8446:313;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;11127:199;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7624:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;8771:325;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6579:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;7029:25;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;6796:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7823:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5488:148;;;:::i;:::-;;9108:548;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5274:79;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;7529:87;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7951:167;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;8126:143;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6973:43;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6923:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;10902:99;;;:::i;:::-;;7438:83;7475:13;7508:5;7501:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7438:83;:::o;8277:161::-;8352:4;8369:39;8378:12;:10;:12::i;:::-;8392:7;8401:6;8369:8;:39::i;:::-;8426:4;8419:11;;8277:161;;;;:::o;6531:41::-;;;;;;;;;;;;;:::o;7715:100::-;7768:7;7795:12;;7788:19;;7715:100;:::o;11013:102::-;5411:12;:10;:12::i;:::-;5401:22;;:6;;;;;;;;;;:22;;;5393:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11102:5:::1;11081:9;:18;11091:7;11081:18;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;11013:102:::0;:::o;8446:313::-;8544:4;8561:36;8571:6;8579:9;8590:6;8561:9;:36::i;:::-;8608:121;8617:6;8625:12;:10;:12::i;:::-;8639:89;8677:6;8639:89;;;;;;;;;;;;;;;;;:11;:19;8651:6;8639:19;;;;;;;;;;;;;;;:33;8659:12;:10;:12::i;:::-;8639:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;8608:8;:121::i;:::-;8747:4;8740:11;;8446:313;;;;;:::o;11127:199::-;5411:12;:10;:12::i;:::-;5401:22;;:6;;;;;;;;;;:22;;;5393:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11221:10:::1;11207;:24;;11199:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11308:10;11294:11;:24;;;;11127:199:::0;:::o;7624:83::-;7665:5;7690:9;;;;;;;;;;;7683:16;;7624:83;:::o;8771:325::-;8836:1;8827:6;:10;8819:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8922:24;8939:6;8922:12;;:16;;:24;;;;:::i;:::-;8907:12;:39;;;;8983:35;9011:6;8983:9;:23;8993:12;:10;:12::i;:::-;8983:23;;;;;;;;;;;;;;;;:27;;:35;;;;:::i;:::-;8957:9;:23;8967:12;:10;:12::i;:::-;8957:23;;;;;;;;;;;;;;;:61;;;;9075:3;9044:44;;9053:12;:10;:12::i;:::-;9044:44;;;9081:6;9044:44;;;;;;;;;;;;;;;;;;8771:325;:::o;6579:28::-;;;;;;;;;;;;;:::o;7029:25::-;;;;;;;;;;;;;:::o;6796:44::-;;;;;;;;;;;;;;;;;:::o;7823:120::-;7889:7;7917:9;:18;7927:7;7917:18;;;;;;;;;;;;;;;;7910:25;;7823:120;;;:::o;5488:148::-;5411:12;:10;:12::i;:::-;5401:22;;:6;;;;;;;;;;:22;;;5393:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5595:1:::1;5558:40;;5579:6;::::0;::::1;;;;;;;;5558:40;;;;;;;;;;;;5626:1;5609:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;5488:148::o:0;9108:548::-;9194:1;9185:6;:10;9177:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9301:6;9263:11;:20;9275:7;9263:20;;;;;;;;;;;;;;;:34;9284:12;:10;:12::i;:::-;9263:34;;;;;;;;;;;;;;;;:44;;9255:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9382:79;9391:7;9400:12;:10;:12::i;:::-;9414:46;9453:6;9414:11;:20;9426:7;9414:20;;;;;;;;;;;;;;;:34;9435:12;:10;:12::i;:::-;9414:34;;;;;;;;;;;;;;;;:38;;:46;;;;:::i;:::-;9382:8;:79::i;:::-;9497:24;9514:6;9497:12;;:16;;:24;;;;:::i;:::-;9482:12;:39;;;;9553:30;9576:6;9553:9;:18;9563:7;9553:18;;;;;;;;;;;;;;;;:22;;:30;;;;:::i;:::-;9532:9;:18;9542:7;9532:18;;;;;;;;;;;;;;;:51;;;;9635:3;9609:39;;9618:7;9609:39;;;9641:6;9609:39;;;;;;;;;;;;;;;;;;9108:548;;:::o;5274:79::-;5312:7;5339:6;;;;;;;;;;;5332:13;;5274:79;:::o;7529:87::-;7568:13;7601:7;7594:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7529:87;:::o;7951:167::-;8029:4;8046:42;8056:12;:10;:12::i;:::-;8070:9;8081:6;8046:9;:42::i;:::-;8106:4;8099:11;;7951:167;;;;:::o;8126:143::-;8207:7;8234:11;:18;8246:5;8234:18;;;;;;;;;;;;;;;:27;8253:7;8234:27;;;;;;;;;;;;;;;;8227:34;;8126:143;;;;:::o;6973:43::-;;;;:::o;6923:41::-;;;;;;;;;;;;;;;;;;;;;;:::o;10902:99::-;10948:5;;;;;;;;;;;10944:50;;10978:4;10970:5;;:12;;;;;;;;;;;;;;;;;;10944:50;10902:99::o;228:106::-;281:15;316:10;309:17;;228:106;:::o;9668:335::-;9778:1;9761:19;;:5;:19;;;;9753:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9859:1;9840:21;;:7;:21;;;;9832:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9941:6;9911:11;:18;9923:5;9911:18;;;;;;;;;;;;;;;:27;9930:7;9911:27;;;;;;;;;;;;;;;:36;;;;9979:7;9963:32;;9972:5;9963:32;;;9988:6;9963:32;;;;;;;;;;;;;;;;;;9668:335;;;:::o;10011:873::-;10115:1;10099:18;;:4;:18;;;;10091:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10192:1;10178:16;;:2;:16;;;;10170:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10262:1;10253:6;:10;10245:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10349:7;:5;:7::i;:::-;10341:15;;:4;:15;;;;:32;;;;;10366:7;:5;:7::i;:::-;10360:13;;:2;:13;;;;10341:32;10337:380;;;10408:11;;10398:6;:21;;10390:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10503:13;;;;;;;;;;;10495:21;;:4;:21;;;10492:125;;10544:9;:15;10554:4;10544:15;;;;;;;;;;;;;;;;;;;;;;;;;10543:16;:34;;;;;10564:9;:13;10574:2;10564:13;;;;;;;;;;;;;;;;;;;;;;;;;10563:14;10543:34;10535:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10492:125;10643:13;;;;;;;;;;;10635:21;;:4;:21;;;:31;;;;;10661:5;;;;;;;;;;;10660:6;10635:31;10632:73;;;10701:4;10685:9;:13;10695:2;10685:13;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;10632:73;10337:380;10755:27;10775:6;10755:9;:15;10765:4;10755:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;10737:9;:15;10747:4;10737:15;;;;;;;;;;;;;;;:45;;;;10809:25;10827:6;10809:9;:13;10819:2;10809:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;10793:9;:13;10803:2;10793:13;;;;;;;;;;;;;;;:41;;;;10865:2;10850:26;;10859:4;10850:26;;;10869:6;10850:26;;;;;;;;;;;;;;;;;;10011:873;;;:::o;1495:190::-;1581:7;1614:1;1609;:6;;1617:12;1601:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1641:9;1657:1;1653;:5;1641:17;;1676:1;1669:8;;;1495:190;;;;;:::o;1351:136::-;1409:7;1436:43;1440:1;1443;1436:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1429:50;;1351:136;;;;:::o;1164:179::-;1222:7;1242:9;1258:1;1254;:5;1242:17;;1283:1;1278;:6;;1270:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1334:1;1327:8;;;1164:179;;;;:::o

Swarm Source

ipfs://efb50c12f4089bb2c6b97b2627c31fac3c523de2a421cc55a9edc95066d3bc72

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  ]

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.