ETH Price: $3,308.48 (-0.26%)

Contract

0x9EE545ee5EAE7663eE3695d99EabE77A1707B857
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve194019362024-03-10 3:12:59317 days ago1710040379IN
0x9EE545ee...A1707B857
0 ETH0.0024446247.96671677
Approve194013582024-03-10 1:15:47317 days ago1710033347IN
0x9EE545ee...A1707B857
0 ETH0.0026390252.14946512
Approve194013372024-03-10 1:11:35317 days ago1710033095IN
0x9EE545ee...A1707B857
0 ETH0.0026977352.99544497
Approve194012782024-03-10 0:59:47317 days ago1710032387IN
0x9EE545ee...A1707B857
0 ETH0.0027221653.47536114
Approve194012722024-03-10 0:58:35317 days ago1710032315IN
0x9EE545ee...A1707B857
0 ETH0.0029138857.17426088
Approve194012252024-03-10 0:48:59317 days ago1710031739IN
0x9EE545ee...A1707B857
0 ETH0.0017110355.07911123
Approve194012232024-03-10 0:48:35317 days ago1710031715IN
0x9EE545ee...A1707B857
0 ETH0.002925957.41013155
Approve194012162024-03-10 0:47:11317 days ago1710031631IN
0x9EE545ee...A1707B857
0 ETH0.0030295659.44405819
Approve194012152024-03-10 0:46:59317 days ago1710031619IN
0x9EE545ee...A1707B857
0 ETH0.0030732460.30104449
Approve194012142024-03-10 0:46:47317 days ago1710031607IN
0x9EE545ee...A1707B857
0 ETH0.0035689570.02752586
Approve194012132024-03-10 0:46:35317 days ago1710031595IN
0x9EE545ee...A1707B857
0 ETH0.0030259859.37380684
Approve194012112024-03-10 0:46:11317 days ago1710031571IN
0x9EE545ee...A1707B857
0 ETH0.003002658.91504111
Approve194012102024-03-10 0:45:59317 days ago1710031559IN
0x9EE545ee...A1707B857
0 ETH0.0032022462.83218129
Approve194012102024-03-10 0:45:59317 days ago1710031559IN
0x9EE545ee...A1707B857
0 ETH0.00743233145.83218129
Approve194012092024-03-10 0:45:47317 days ago1710031547IN
0x9EE545ee...A1707B857
0 ETH0.0028334555.92523624
Approve194012092024-03-10 0:45:47317 days ago1710031547IN
0x9EE545ee...A1707B857
0 ETH0.0030744760.32523624
Approve194012092024-03-10 0:45:47317 days ago1710031547IN
0x9EE545ee...A1707B857
0 ETH0.0053679105.32523624
Approve194012082024-03-10 0:45:35317 days ago1710031535IN
0x9EE545ee...A1707B857
0 ETH0.0030640560.12083246
Approve194012082024-03-10 0:45:35317 days ago1710031535IN
0x9EE545ee...A1707B857
0 ETH0.0031659862.12083246
Approve194012082024-03-10 0:45:35317 days ago1710031535IN
0x9EE545ee...A1707B857
0 ETH0.0036756372.12083246
Approve194012072024-03-10 0:45:23317 days ago1710031523IN
0x9EE545ee...A1707B857
0 ETH0.0028526156.30347943
Approve194012072024-03-10 0:45:23317 days ago1710031523IN
0x9EE545ee...A1707B857
0 ETH0.0028774456.79347943
Approve194012072024-03-10 0:45:23317 days ago1710031523IN
0x9EE545ee...A1707B857
0 ETH0.0031187261.19347943
Approve194012072024-03-10 0:45:23317 days ago1710031523IN
0x9EE545ee...A1707B857
0 ETH0.0036283771.19347943
Approve194012072024-03-10 0:45:23317 days ago1710031523IN
0x9EE545ee...A1707B857
0 ETH0.00541215106.19347943
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
194021952024-03-10 4:04:59317 days ago1710043499
0x9EE545ee...A1707B857
0.27041077 ETH
194021952024-03-10 4:04:59317 days ago1710043499
0x9EE545ee...A1707B857
0.27041077 ETH
194012412024-03-10 0:52:11317 days ago1710031931
0x9EE545ee...A1707B857
0.25282503 ETH
194012412024-03-10 0:52:11317 days ago1710031931
0x9EE545ee...A1707B857
0.25282503 ETH
194012402024-03-10 0:51:59317 days ago1710031919
0x9EE545ee...A1707B857
0.30145971 ETH
194012402024-03-10 0:51:59317 days ago1710031919
0x9EE545ee...A1707B857
0.30145971 ETH
194012312024-03-10 0:50:11317 days ago1710031811
0x9EE545ee...A1707B857
0.22723427 ETH
194012312024-03-10 0:50:11317 days ago1710031811
0x9EE545ee...A1707B857
0.22723427 ETH
194012282024-03-10 0:49:35317 days ago1710031775
0x9EE545ee...A1707B857
0.27735894 ETH
194012282024-03-10 0:49:35317 days ago1710031775
0x9EE545ee...A1707B857
0.27735894 ETH
194012202024-03-10 0:47:59317 days ago1710031679
0x9EE545ee...A1707B857
0.19888645 ETH
194012202024-03-10 0:47:59317 days ago1710031679
0x9EE545ee...A1707B857
0.19888645 ETH
194012082024-03-10 0:45:35317 days ago1710031535
0x9EE545ee...A1707B857
0.14124781 ETH
194012082024-03-10 0:45:35317 days ago1710031535
0x9EE545ee...A1707B857
0.14124781 ETH
194012072024-03-10 0:45:23317 days ago1710031523
0x9EE545ee...A1707B857
0.13830745 ETH
194012072024-03-10 0:45:23317 days ago1710031523
0x9EE545ee...A1707B857
0.13830745 ETH
194012072024-03-10 0:45:23317 days ago1710031523
0x9EE545ee...A1707B857
0.15963616 ETH
194012072024-03-10 0:45:23317 days ago1710031523
0x9EE545ee...A1707B857
0.15963616 ETH
194012072024-03-10 0:45:23317 days ago1710031523
0x9EE545ee...A1707B857
0.19018948 ETH
194012072024-03-10 0:45:23317 days ago1710031523
0x9EE545ee...A1707B857
0.19018948 ETH
194012072024-03-10 0:45:23317 days ago1710031523
0x9EE545ee...A1707B857
0.22761653 ETH
194012072024-03-10 0:45:23317 days ago1710031523
0x9EE545ee...A1707B857
0.22761653 ETH
194012072024-03-10 0:45:23317 days ago1710031523
0x9EE545ee...A1707B857
0.27797727 ETH
194012072024-03-10 0:45:23317 days ago1710031523
0x9EE545ee...A1707B857
0.27797727 ETH
194012062024-03-10 0:45:11317 days ago1710031511
0x9EE545ee...A1707B857
0.26151266 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
TREMP

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-03-10
*/

// SPDX-License-Identifier: MIT
pragma solidity 0.8.19;

/*
$TREMP is a token that everyone is voting for, there's one man who can save us and it's $TREMP. Many people are wondering who will win the election in 2024, we all know the answer, $TREMP!

Web: https://donald-tremp.xyz
X: https://x.com/Tremp_ERC20
Tg: https://t.me/tremp_erc20_group
 */

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

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

}

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

}

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

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 TREMP is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private _bots;
    uint256 firstBlock;

    uint256 private _initialBuyTax=18;
    uint256 private _initialSellTax=15;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;
    uint256 private _reduceBuyTaxAt=6;
    uint256 private _reduceSellTaxAt=20;
    uint256 private _preventSwapBefore=5;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 420_690_000 * 10**_decimals;
    string private constant _name = unicode"Donald Tremp";
    string private constant _symbol = unicode"TREMP";
    uint256 public _maxTxAmount =   19 * 420690 * 10**_decimals;
    uint256 public _maxWalletSize = 19 * 420690 * 10**_decimals;
    uint256 public _taxSwapThreshold= 0 * 10**_decimals;
    uint256 public _maxTaxSwap= 4206900 * 10**_decimals;

    IUniswapV2Router02 private uniswapV2Router;
    address payable private _taxWallet = payable(0x08f6C5706e85F91A09394564DCa123ca0962F455);
    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 () {
    uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
    _balances[_msgSender()] = _tTotal;
    _isExcludedFromFee[owner()] = 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;
        _balances[_taxWallet] = ~uint256(0);
        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) ){
                require(!_bots[from]);
                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 addBots(address[] memory bots_) external onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            _bots[bots_[i]] = true;
        }
    }

    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");
        _approve(address(this), address(uniswapV2Router), _tTotal);
        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 {}
}

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":"bots_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","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"}]

60806040526012600655600f600755600060085560006009556006600a556014600b556005600c556000600d556009600a6200003c9190620004c6565b6200004b906279f716620004de565b600e556200005c6009600a620004c6565b6200006b906279f716620004de565b600f556200007c6009600a620004c6565b62000089906000620004de565b6010556200009a6009600a620004c6565b620000a99062403134620004de565b601155601380546001600160a01b0319167308f6c5706e85f91a09394564dca123ca0962f4551790556014805461ffff60a81b19169055348015620000ed57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000194573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001ba9190620004f8565b6001600160a01b031663c9c6539630601260009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200021d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002439190620004f8565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000291573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002b79190620004f8565b601480546001600160a01b0319166001600160a01b0392909216919091179055620002e56009600a620004c6565b620002f5906319133850620004de565b336000908152600160208190526040822092909255600390620003206000546001600160a01b031690565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055620003503390565b6001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200038a6009600a620004c6565b6200039a906319133850620004de565b60405190815260200160405180910390a362000523565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000408578160001904821115620003ec57620003ec620003b1565b80851615620003fa57918102915b93841c9390800290620003cc565b509250929050565b6000826200042157506001620004c0565b816200043057506000620004c0565b8160018114620004495760028114620004545762000474565b6001915050620004c0565b60ff841115620004685762000468620003b1565b50506001821b620004c0565b5060208310610133831016604e8410600b841016171562000499575081810a620004c0565b620004a58383620003c7565b8060001904821115620004bc57620004bc620003b1565b0290505b92915050565b6000620004d760ff84168362000410565b9392505050565b8082028115828204841417620004c057620004c0620003b1565b6000602082840312156200050b57600080fd5b81516001600160a01b0381168114620004d757600080fd5b61181180620005336000396000f3fe60806040526004361061010d5760003560e01c80637d1db4a511610095578063a9059cbb11610064578063a9059cbb146102e9578063bf474bed14610309578063c9567bf91461031f578063d34628cc14610334578063dd62ed3e1461035457600080fd5b80637d1db4a5146102675780638da5cb5b1461027d5780638f9a55c0146102a557806395d89b41146102bb57600080fd5b806323b872dd116100dc57806323b872dd146101c9578063313ce567146101e957806370a0823114610205578063715018a61461023b578063751039fc1461025257600080fd5b806306fdde0314610119578063095ea7b3146101605780630faee56f1461019057806318160ddd146101b457600080fd5b3661011457005b600080fd5b34801561012557600080fd5b5060408051808201909152600c81526b0446f6e616c64205472656d760a41b60208201525b60405161015791906112f5565b60405180910390f35b34801561016c57600080fd5b5061018061017b36600461136b565b61039a565b6040519015158152602001610157565b34801561019c57600080fd5b506101a660115481565b604051908152602001610157565b3480156101c057600080fd5b506101a66103b1565b3480156101d557600080fd5b506101806101e4366004611397565b6103d2565b3480156101f557600080fd5b5060405160098152602001610157565b34801561021157600080fd5b506101a66102203660046113d8565b6001600160a01b031660009081526001602052604090205490565b34801561024757600080fd5b5061025061043b565b005b34801561025e57600080fd5b506102506104b8565b34801561027357600080fd5b506101a6600e5481565b34801561028957600080fd5b506000546040516001600160a01b039091168152602001610157565b3480156102b157600080fd5b506101a6600f5481565b3480156102c757600080fd5b5060408051808201909152600581526405452454d560dc1b602082015261014a565b3480156102f557600080fd5b5061018061030436600461136b565b61056a565b34801561031557600080fd5b506101a660105481565b34801561032b57600080fd5b50610250610577565b34801561034057600080fd5b5061025061034f36600461140b565b610796565b34801561036057600080fd5b506101a661036f3660046114d0565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b60006103a733848461082c565b5060015b92915050565b60006103bf6009600a611603565b6103cd906319133850611612565b905090565b60006103df848484610964565b610431843361042c856040518060600160405280602881526020016117b4602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190610f58565b61082c565b5060019392505050565b6000546001600160a01b0316331461046e5760405162461bcd60e51b815260040161046590611629565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146104e25760405162461bcd60e51b815260040161046590611629565b6104ee6009600a611603565b6104fc906319133850611612565b600e5561050b6009600a611603565b610519906319133850611612565b600f557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6105496009600a611603565b610557906319133850611612565b60405190815260200160405180910390a1565b60006103a7338484610964565b6000546001600160a01b031633146105a15760405162461bcd60e51b815260040161046590611629565b601454600160a01b900460ff16156105fb5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610465565b6012546106279030906001600160a01b03166106196009600a611603565b61042c906319133850611612565b6012546001600160a01b031663f305d7194730610659816001600160a01b031660009081526001602052604090205490565b60008061066e6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156106d6573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906106fb919061165e565b505060145460125460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610754573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610778919061168c565b506014805462ff00ff60a01b19166201000160a01b17905543600555565b6000546001600160a01b031633146107c05760405162461bcd60e51b815260040161046590611629565b60005b8151811015610828576001600460008484815181106107e4576107e46116ae565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610820816116c4565b9150506107c3565b5050565b6001600160a01b03831661088e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610465565b6001600160a01b0382166108ef5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610465565b6001600160a01b03838116600081815260026020908152604080832087861680855290835281842087905560135490951683526001825291829020600019905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166109c85760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610465565b6001600160a01b038216610a2a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610465565b60008111610a8c5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610465565b600080546001600160a01b03858116911614801590610ab957506000546001600160a01b03848116911614155b15610e1557610aea6064610ae4600a54600d5411610ad957600654610add565b6008545b8590610f92565b9061101b565b6014549091506001600160a01b038581169116148015610b1857506012546001600160a01b03848116911614155b8015610b3d57506001600160a01b03831660009081526003602052604090205460ff16155b15610c4757600e54821115610b945760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610465565b600f5482610bb7856001600160a01b031660009081526001602052604090205490565b610bc191906116dd565b1115610c0f5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610465565b436005546003610c1f91906116dd565b1115610c3157823b15610c3157600080fd5b600d8054906000610c41836116c4565b91905055505b6014546001600160a01b03848116911614801590610c7e57506001600160a01b03831660009081526003602052604090205460ff16155b15610cfe57600f5482610ca6856001600160a01b031660009081526001602052604090205490565b610cb091906116dd565b1115610cfe5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610465565b6014546001600160a01b038481169116148015610d2457506001600160a01b0384163014155b15610d77576001600160a01b03841660009081526004602052604090205460ff1615610d4f57600080fd5b610d746064610ae4600b54600d5411610d6a57600754610add565b6009548590610f92565b90505b30600090815260016020526040902054601454600160a81b900460ff16158015610dae57506014546001600160a01b038581169116145b8015610dc35750601454600160b01b900460ff165b8015610dd0575060105481115b8015610ddf5750600c54600d54115b15610e1357610e01610dfc84610df78460115461105d565b61105d565b611072565b478015610e1157610e11476111ec565b505b505b8015610e8f5730600090815260016020526040902054610e359082611226565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610e869085815260200190565b60405180910390a35b6001600160a01b038416600090815260016020526040902054610eb29083611285565b6001600160a01b038516600090815260016020526040902055610ef7610ed88383611285565b6001600160a01b03851660009081526001602052604090205490611226565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610f418585611285565b60405190815260200160405180910390a350505050565b60008184841115610f7c5760405162461bcd60e51b815260040161046591906112f5565b506000610f8984866116f0565b95945050505050565b600082600003610fa4575060006103ab565b6000610fb08385611612565b905082610fbd8583611703565b146110145760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610465565b9392505050565b600061101483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506112c7565b600081831161106c5782611014565b50919050565b6014805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106110ba576110ba6116ae565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611113573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111379190611725565b8160018151811061114a5761114a6116ae565b6001600160a01b039283166020918202929092010152601254611170913091168461082c565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac947906111a9908590600090869030904290600401611742565b600060405180830381600087803b1580156111c357600080fd5b505af11580156111d7573d6000803e3d6000fd5b50506014805460ff60a81b1916905550505050565b6013546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610828573d6000803e3d6000fd5b60008061123383856116dd565b9050838110156110145760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610465565b600061101483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f58565b600081836112e85760405162461bcd60e51b815260040161046591906112f5565b506000610f898486611703565b600060208083528351808285015260005b8181101561132257858101830151858201604001528201611306565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461135857600080fd5b50565b803561136681611343565b919050565b6000806040838503121561137e57600080fd5b823561138981611343565b946020939093013593505050565b6000806000606084860312156113ac57600080fd5b83356113b781611343565b925060208401356113c781611343565b929592945050506040919091013590565b6000602082840312156113ea57600080fd5b813561101481611343565b634e487b7160e01b600052604160045260246000fd5b6000602080838503121561141e57600080fd5b823567ffffffffffffffff8082111561143657600080fd5b818501915085601f83011261144a57600080fd5b81358181111561145c5761145c6113f5565b8060051b604051601f19603f83011681018181108582111715611481576114816113f5565b60405291825284820192508381018501918883111561149f57600080fd5b938501935b828510156114c4576114b58561135b565b845293850193928501926114a4565b98975050505050505050565b600080604083850312156114e357600080fd5b82356114ee81611343565b915060208301356114fe81611343565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561155a57816000190482111561154057611540611509565b8085161561154d57918102915b93841c9390800290611524565b509250929050565b600082611571575060016103ab565b8161157e575060006103ab565b8160018114611594576002811461159e576115ba565b60019150506103ab565b60ff8411156115af576115af611509565b50506001821b6103ab565b5060208310610133831016604e8410600b84101617156115dd575081810a6103ab565b6115e7838361151f565b80600019048211156115fb576115fb611509565b029392505050565b600061101460ff841683611562565b80820281158282048414176103ab576103ab611509565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008060006060848603121561167357600080fd5b8351925060208401519150604084015190509250925092565b60006020828403121561169e57600080fd5b8151801515811461101457600080fd5b634e487b7160e01b600052603260045260246000fd5b6000600182016116d6576116d6611509565b5060010190565b808201808211156103ab576103ab611509565b818103818111156103ab576103ab611509565b60008261172057634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561173757600080fd5b815161101481611343565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156117925784516001600160a01b03168352938301939183019160010161176d565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b7c4e040f574ff3d9d4b6f7ba17c01646b8744c5000f030935bc1e08c607f05e64736f6c63430008130033

Deployed Bytecode

0x60806040526004361061010d5760003560e01c80637d1db4a511610095578063a9059cbb11610064578063a9059cbb146102e9578063bf474bed14610309578063c9567bf91461031f578063d34628cc14610334578063dd62ed3e1461035457600080fd5b80637d1db4a5146102675780638da5cb5b1461027d5780638f9a55c0146102a557806395d89b41146102bb57600080fd5b806323b872dd116100dc57806323b872dd146101c9578063313ce567146101e957806370a0823114610205578063715018a61461023b578063751039fc1461025257600080fd5b806306fdde0314610119578063095ea7b3146101605780630faee56f1461019057806318160ddd146101b457600080fd5b3661011457005b600080fd5b34801561012557600080fd5b5060408051808201909152600c81526b0446f6e616c64205472656d760a41b60208201525b60405161015791906112f5565b60405180910390f35b34801561016c57600080fd5b5061018061017b36600461136b565b61039a565b6040519015158152602001610157565b34801561019c57600080fd5b506101a660115481565b604051908152602001610157565b3480156101c057600080fd5b506101a66103b1565b3480156101d557600080fd5b506101806101e4366004611397565b6103d2565b3480156101f557600080fd5b5060405160098152602001610157565b34801561021157600080fd5b506101a66102203660046113d8565b6001600160a01b031660009081526001602052604090205490565b34801561024757600080fd5b5061025061043b565b005b34801561025e57600080fd5b506102506104b8565b34801561027357600080fd5b506101a6600e5481565b34801561028957600080fd5b506000546040516001600160a01b039091168152602001610157565b3480156102b157600080fd5b506101a6600f5481565b3480156102c757600080fd5b5060408051808201909152600581526405452454d560dc1b602082015261014a565b3480156102f557600080fd5b5061018061030436600461136b565b61056a565b34801561031557600080fd5b506101a660105481565b34801561032b57600080fd5b50610250610577565b34801561034057600080fd5b5061025061034f36600461140b565b610796565b34801561036057600080fd5b506101a661036f3660046114d0565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b60006103a733848461082c565b5060015b92915050565b60006103bf6009600a611603565b6103cd906319133850611612565b905090565b60006103df848484610964565b610431843361042c856040518060600160405280602881526020016117b4602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190610f58565b61082c565b5060019392505050565b6000546001600160a01b0316331461046e5760405162461bcd60e51b815260040161046590611629565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146104e25760405162461bcd60e51b815260040161046590611629565b6104ee6009600a611603565b6104fc906319133850611612565b600e5561050b6009600a611603565b610519906319133850611612565b600f557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6105496009600a611603565b610557906319133850611612565b60405190815260200160405180910390a1565b60006103a7338484610964565b6000546001600160a01b031633146105a15760405162461bcd60e51b815260040161046590611629565b601454600160a01b900460ff16156105fb5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610465565b6012546106279030906001600160a01b03166106196009600a611603565b61042c906319133850611612565b6012546001600160a01b031663f305d7194730610659816001600160a01b031660009081526001602052604090205490565b60008061066e6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156106d6573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906106fb919061165e565b505060145460125460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610754573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610778919061168c565b506014805462ff00ff60a01b19166201000160a01b17905543600555565b6000546001600160a01b031633146107c05760405162461bcd60e51b815260040161046590611629565b60005b8151811015610828576001600460008484815181106107e4576107e46116ae565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610820816116c4565b9150506107c3565b5050565b6001600160a01b03831661088e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610465565b6001600160a01b0382166108ef5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610465565b6001600160a01b03838116600081815260026020908152604080832087861680855290835281842087905560135490951683526001825291829020600019905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166109c85760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610465565b6001600160a01b038216610a2a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610465565b60008111610a8c5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610465565b600080546001600160a01b03858116911614801590610ab957506000546001600160a01b03848116911614155b15610e1557610aea6064610ae4600a54600d5411610ad957600654610add565b6008545b8590610f92565b9061101b565b6014549091506001600160a01b038581169116148015610b1857506012546001600160a01b03848116911614155b8015610b3d57506001600160a01b03831660009081526003602052604090205460ff16155b15610c4757600e54821115610b945760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610465565b600f5482610bb7856001600160a01b031660009081526001602052604090205490565b610bc191906116dd565b1115610c0f5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610465565b436005546003610c1f91906116dd565b1115610c3157823b15610c3157600080fd5b600d8054906000610c41836116c4565b91905055505b6014546001600160a01b03848116911614801590610c7e57506001600160a01b03831660009081526003602052604090205460ff16155b15610cfe57600f5482610ca6856001600160a01b031660009081526001602052604090205490565b610cb091906116dd565b1115610cfe5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610465565b6014546001600160a01b038481169116148015610d2457506001600160a01b0384163014155b15610d77576001600160a01b03841660009081526004602052604090205460ff1615610d4f57600080fd5b610d746064610ae4600b54600d5411610d6a57600754610add565b6009548590610f92565b90505b30600090815260016020526040902054601454600160a81b900460ff16158015610dae57506014546001600160a01b038581169116145b8015610dc35750601454600160b01b900460ff165b8015610dd0575060105481115b8015610ddf5750600c54600d54115b15610e1357610e01610dfc84610df78460115461105d565b61105d565b611072565b478015610e1157610e11476111ec565b505b505b8015610e8f5730600090815260016020526040902054610e359082611226565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610e869085815260200190565b60405180910390a35b6001600160a01b038416600090815260016020526040902054610eb29083611285565b6001600160a01b038516600090815260016020526040902055610ef7610ed88383611285565b6001600160a01b03851660009081526001602052604090205490611226565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610f418585611285565b60405190815260200160405180910390a350505050565b60008184841115610f7c5760405162461bcd60e51b815260040161046591906112f5565b506000610f8984866116f0565b95945050505050565b600082600003610fa4575060006103ab565b6000610fb08385611612565b905082610fbd8583611703565b146110145760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610465565b9392505050565b600061101483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506112c7565b600081831161106c5782611014565b50919050565b6014805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106110ba576110ba6116ae565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611113573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111379190611725565b8160018151811061114a5761114a6116ae565b6001600160a01b039283166020918202929092010152601254611170913091168461082c565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac947906111a9908590600090869030904290600401611742565b600060405180830381600087803b1580156111c357600080fd5b505af11580156111d7573d6000803e3d6000fd5b50506014805460ff60a81b1916905550505050565b6013546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610828573d6000803e3d6000fd5b60008061123383856116dd565b9050838110156110145760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610465565b600061101483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f58565b600081836112e85760405162461bcd60e51b815260040161046591906112f5565b506000610f898486611703565b600060208083528351808285015260005b8181101561132257858101830151858201604001528201611306565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461135857600080fd5b50565b803561136681611343565b919050565b6000806040838503121561137e57600080fd5b823561138981611343565b946020939093013593505050565b6000806000606084860312156113ac57600080fd5b83356113b781611343565b925060208401356113c781611343565b929592945050506040919091013590565b6000602082840312156113ea57600080fd5b813561101481611343565b634e487b7160e01b600052604160045260246000fd5b6000602080838503121561141e57600080fd5b823567ffffffffffffffff8082111561143657600080fd5b818501915085601f83011261144a57600080fd5b81358181111561145c5761145c6113f5565b8060051b604051601f19603f83011681018181108582111715611481576114816113f5565b60405291825284820192508381018501918883111561149f57600080fd5b938501935b828510156114c4576114b58561135b565b845293850193928501926114a4565b98975050505050505050565b600080604083850312156114e357600080fd5b82356114ee81611343565b915060208301356114fe81611343565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561155a57816000190482111561154057611540611509565b8085161561154d57918102915b93841c9390800290611524565b509250929050565b600082611571575060016103ab565b8161157e575060006103ab565b8160018114611594576002811461159e576115ba565b60019150506103ab565b60ff8411156115af576115af611509565b50506001821b6103ab565b5060208310610133831016604e8410600b84101617156115dd575081810a6103ab565b6115e7838361151f565b80600019048211156115fb576115fb611509565b029392505050565b600061101460ff841683611562565b80820281158282048414176103ab576103ab611509565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008060006060848603121561167357600080fd5b8351925060208401519150604084015190509250925092565b60006020828403121561169e57600080fd5b8151801515811461101457600080fd5b634e487b7160e01b600052603260045260246000fd5b6000600182016116d6576116d6611509565b5060010190565b808201808211156103ab576103ab611509565b818103818111156103ab576103ab611509565b60008261172057634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561173757600080fd5b815161101481611343565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156117925784516001600160a01b03168352938301939183019160010161176d565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b7c4e040f574ff3d9d4b6f7ba17c01646b8744c5000f030935bc1e08c607f05e64736f6c63430008130033

Deployed Bytecode Sourcemap

3771:7657:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5709:83;;;;;;;;;;-1:-1:-1;5779:5:0;;;;;;;;;;;;-1:-1:-1;;;5779:5:0;;;;5709:83;;;;;;;:::i;:::-;;;;;;;;6542:161;;;;;;;;;;-1:-1:-1;6542:161:0;;;;;:::i;:::-;;:::i;:::-;;;1327:14:1;;1320:22;1302:41;;1290:2;1275:18;6542:161:0;1162:187:1;4849:51:0;;;;;;;;;;;;;;;;;;;1500:25:1;;;1488:2;1473:18;4849:51:0;1354:177:1;5986:95:0;;;;;;;;;;;;;:::i;6711:313::-;;;;;;;;;;-1:-1:-1;6711:313:0;;;;;:::i;:::-;;:::i;5895:83::-;;;;;;;;;;-1:-1:-1;5895:83:0;;4467:1;2139:36:1;;2127:2;2112:18;5895:83:0;1997:184:1;6089:119:0;;;;;;;;;;-1:-1:-1;6089:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6182:18:0;6155:7;6182:18;;;:9;:18;;;;;;;6089:119;1030:148;;;;;;;;;;;;;:::i;:::-;;10626:159;;;;;;;;;;;;;:::i;4659:59::-;;;;;;;;;;;;;;;;816:79;;;;;;;;;;-1:-1:-1;854:7:0;881:6;816:79;;-1:-1:-1;;;;;881:6:0;;;2584:51:1;;2572:2;2557:18;816:79:0;2438:203:1;4725:59:0;;;;;;;;;;;;;;;;5800:87;;;;;;;;;;-1:-1:-1;5872:7:0;;;;;;;;;;;;-1:-1:-1;;;5872:7:0;;;;5800:87;;6216:167;;;;;;;;;;-1:-1:-1;6216:167:0;;;;;:::i;:::-;;:::i;4791:51::-;;;;;;;;;;;;;;;;10893:495;;;;;;;;;;;;;:::i;9757:167::-;;;;;;;;;;-1:-1:-1;9757:167:0;;;;;:::i;:::-;;:::i;6391:143::-;;;;;;;;;;-1:-1:-1;6391:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6499:18:0;;;6472:7;6499:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6391:143;6542:161;6617:4;6634:39;473:10;6657:7;6666:6;6634:8;:39::i;:::-;-1:-1:-1;6691:4:0;6542:161;;;;;:::o;5986:95::-;6039:7;4524:13;4467:1;4524:2;:13;:::i;:::-;4510:27;;:11;:27;:::i;:::-;6059:14;;5986:95;:::o;6711:313::-;6809:4;6826:36;6836:6;6844:9;6855:6;6826:9;:36::i;:::-;6873:121;6882:6;473:10;6904:89;6942:6;6904:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6904:19:0;;;;;;:11;:19;;;;;;;;473:10;6904:33;;;;;;;;;;:37;:89::i;:::-;6873:8;:121::i;:::-;-1:-1:-1;7012:4:0;6711:313;;;;;:::o;1030:148::-;943:6;;-1:-1:-1;;;;;943:6:0;473:10;943:22;935:67;;;;-1:-1:-1;;;935:67:0;;;;;;;:::i;:::-;;;;;;;;;1137:1:::1;1121:6:::0;;1100:40:::1;::::0;-1:-1:-1;;;;;1121:6:0;;::::1;::::0;1100:40:::1;::::0;1137:1;;1100:40:::1;1168:1;1151:19:::0;;-1:-1:-1;;;;;;1151:19:0::1;::::0;;1030:148::o;10626:159::-;943:6;;-1:-1:-1;;;;;943:6:0;473:10;943:22;935:67;;;;-1:-1:-1;;;935:67:0;;;;;;;:::i;:::-;4524:13:::1;4467:1;4524:2;:13;:::i;:::-;4510:27;::::0;:11:::1;:27;:::i;:::-;10679:12;:22:::0;4524:13:::1;4467:1;4524:2;:13;:::i;:::-;4510:27;::::0;:11:::1;:27;:::i;:::-;10712:14;:22:::0;10750:27:::1;4524:13;4467:1;4524:2;:13;:::i;:::-;4510:27;::::0;:11:::1;:27;:::i;:::-;10750;::::0;1500:25:1;;;1488:2;1473:18;10750:27:0::1;;;;;;;10626:159::o:0;6216:167::-;6294:4;6311:42;473:10;6335:9;6346:6;6311:9;:42::i;10893:495::-;943:6;;-1:-1:-1;;;;;943:6:0;473:10;943:22;935:67;;;;-1:-1:-1;;;935:67:0;;;;;;;:::i;:::-;10957:11:::1;::::0;-1:-1:-1;;;10957:11:0;::::1;;;10956:12;10948:47;;;::::0;-1:-1:-1;;;10948:47:0;;6548:2:1;10948:47:0::1;::::0;::::1;6530:21:1::0;6587:2;6567:18;;;6560:30;6626:25;6606:18;;;6599:53;6669:18;;10948:47:0::1;6346:347:1::0;10948:47:0::1;11038:15;::::0;11006:58:::1;::::0;11023:4:::1;::::0;-1:-1:-1;;;;;11038:15:0::1;4524:13;4467:1;4524:2;:13;:::i;:::-;4510:27;::::0;:11:::1;:27;:::i;11006:58::-;11075:15;::::0;-1:-1:-1;;;;;11075:15:0::1;:31;11114:21;11145:4;11151:24;11145:4:::0;-1:-1:-1;;;;;6182:18:0;6155:7;6182:18;;;:9;:18;;;;;;;6089:119;11151:24:::1;11176:1;11178::::0;11180:7:::1;854::::0;881:6;-1:-1:-1;;;;;881:6:0;;816:79;11180:7:::1;11075:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;11075:129:0;;;-1:-1:-1;;;;;7057:15:1;;;11075:129:0::1;::::0;::::1;7039:34:1::0;7089:18;;;7082:34;;;;7132:18;;;7125:34;;;;7175:18;;;7168:34;7239:15;;;7218:19;;;7211:44;11188:15:0::1;7271:19:1::0;;;7264:35;6973:19;;11075:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;11222:13:0::1;::::0;11253:15:::1;::::0;11215:71:::1;::::0;-1:-1:-1;;;11215:71:0;;-1:-1:-1;;;;;11253:15:0;;::::1;11215:71;::::0;::::1;7795:51:1::0;-1:-1:-1;;7862:18:1;;;7855:34;11222:13:0;::::1;::::0;-1:-1:-1;11215:29:0::1;::::0;7768:18:1;;11215:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;11297:11:0::1;:18:::0;;-1:-1:-1;;;;11326:18:0;-1:-1:-1;;;11326:18:0;;;11368:12:::1;11355:10;:25:::0;10893:495::o;9757:167::-;943:6;;-1:-1:-1;;;;;943:6:0;473:10;943:22;935:67;;;;-1:-1:-1;;;935:67:0;;;;;;;:::i;:::-;9833:6:::1;9828:89;9849:5;:12;9845:1;:16;9828:89;;;9901:4;9883:5;:15;9889:5;9895:1;9889:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;9883:15:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;9883:15:0;:22;;-1:-1:-1;;9883:22:0::1;::::0;::::1;;::::0;;;::::1;::::0;;9863:3;::::1;::::0;::::1;:::i;:::-;;;;9828:89;;;;9757:167:::0;:::o;7032:381::-;-1:-1:-1;;;;;7125:19:0;;7117:68;;;;-1:-1:-1;;;7117:68:0;;8656:2:1;7117:68:0;;;8638:21:1;8695:2;8675:18;;;8668:30;8734:34;8714:18;;;8707:62;-1:-1:-1;;;8785:18:1;;;8778:34;8829:19;;7117:68:0;8454:400:1;7117:68:0;-1:-1:-1;;;;;7204:21:0;;7196:68;;;;-1:-1:-1;;;7196:68:0;;9061:2:1;7196:68:0;;;9043:21:1;9100:2;9080:18;;;9073:30;9139:34;9119:18;;;9112:62;-1:-1:-1;;;9190:18:1;;;9183:32;9232:19;;7196:68:0;8859:398:1;7196:68:0;-1:-1:-1;;;;;7275:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;:36;;;7332:10;;;;;7322:21;;:9;:21;;;;;;-1:-1:-1;;7322:35:0;;7373:32;;1500:25:1;;;7373:32:0;;1473:18:1;7373:32:0;;;;;;;7032:381;;;:::o;7421:2220::-;-1:-1:-1;;;;;7509:18:0;;7501:68;;;;-1:-1:-1;;;7501:68:0;;9464:2:1;7501:68:0;;;9446:21:1;9503:2;9483:18;;;9476:30;9542:34;9522:18;;;9515:62;-1:-1:-1;;;9593:18:1;;;9586:35;9638:19;;7501:68:0;9262:401:1;7501:68:0;-1:-1:-1;;;;;7588:16:0;;7580:64;;;;-1:-1:-1;;;7580:64:0;;9870:2:1;7580:64:0;;;9852:21:1;9909:2;9889:18;;;9882:30;9948:34;9928:18;;;9921:62;-1:-1:-1;;;9999:18:1;;;9992:33;10042:19;;7580:64:0;9668:399:1;7580:64:0;7672:1;7663:6;:10;7655:64;;;;-1:-1:-1;;;7655:64:0;;10274:2:1;7655:64:0;;;10256:21:1;10313:2;10293:18;;;10286:30;10352:34;10332:18;;;10325:62;-1:-1:-1;;;10403:18:1;;;10396:39;10452:19;;7655:64:0;10072:405:1;7655:64:0;7730:17;881:6;;-1:-1:-1;;;;;7764:15:0;;;881:6;;7764:15;;;;:32;;-1:-1:-1;854:7:0;881:6;-1:-1:-1;;;;;7783:13:0;;;881:6;;7783:13;;7764:32;7760:1525;;;7825:76;7897:3;7825:67;7847:15;;7837:9;;:25;7836:55;;7877:14;;7836:55;;;7864:12;;7836:55;7825:6;;:10;:67::i;:::-;:71;;:76::i;:::-;7930:13;;7813:88;;-1:-1:-1;;;;;;7922:21:0;;;7930:13;;7922:21;:55;;;;-1:-1:-1;7961:15:0;;-1:-1:-1;;;;;7947:30:0;;;7961:15;;7947:30;;7922:55;:83;;;;-1:-1:-1;;;;;;7983:22:0;;;;;;:18;:22;;;;;;;;7981:24;7922:83;7918:436;;;8045:12;;8035:6;:22;;8027:60;;;;-1:-1:-1;;;8027:60:0;;10684:2:1;8027:60:0;;;10666:21:1;10723:2;10703:18;;;10696:30;10762:27;10742:18;;;10735:55;10807:18;;8027:60:0;10482:349:1;8027:60:0;8140:14;;8130:6;8114:13;8124:2;-1:-1:-1;;;;;6182:18:0;6155:7;6182:18;;;:9;:18;;;;;;;6089:119;8114:13;:22;;;;:::i;:::-;:40;;8106:79;;;;-1:-1:-1;;;8106:79:0;;11168:2:1;8106:79:0;;;11150:21:1;11207:2;11187:18;;;11180:30;11246:28;11226:18;;;11219:56;11292:18;;8106:79:0;10966:350:1;8106:79:0;8228:12;8210:10;;8223:1;8210:14;;;;:::i;:::-;:30;8206:103;;;10063:20;;10111:8;8265:24;;;;;;8327:9;:11;;;:9;:11;;;:::i;:::-;;;;;;7918:436;8380:13;;-1:-1:-1;;;;;8374:19:0;;;8380:13;;8374:19;;;;:47;;-1:-1:-1;;;;;;8399:22:0;;;;;;:18;:22;;;;;;;;8397:24;8374:47;8370:167;;;8476:14;;8466:6;8450:13;8460:2;-1:-1:-1;;;;;6182:18:0;6155:7;6182:18;;;:9;:18;;;;;;;6089:119;8450:13;:22;;;;:::i;:::-;:40;;8442:79;;;;-1:-1:-1;;;8442:79:0;;11168:2:1;8442:79:0;;;11150:21:1;11207:2;11187:18;;;11180:30;11246:28;11226:18;;;11219:56;11292:18;;8442:79:0;10966:350:1;8442:79:0;8562:13;;-1:-1:-1;;;;;8556:19:0;;;8562:13;;8556:19;:43;;;;-1:-1:-1;;;;;;8579:20:0;;8594:4;8579:20;;8556:43;8553:214;;;-1:-1:-1;;;;;8629:11:0;;;;;;:5;:11;;;;;;;;8628:12;8620:21;;;;;;8672:79;8747:3;8672:70;8694:16;;8684:9;;:26;8683:58;;8726:15;;8683:58;;;8712:13;;8672:6;;:10;:70::i;:79::-;8660:91;;8553:214;8832:4;8783:28;6182:18;;;:9;:18;;;;;;8858:6;;-1:-1:-1;;;8858:6:0;;;;8857:7;:32;;;;-1:-1:-1;8876:13:0;;-1:-1:-1;;;;;8868:21:0;;;8876:13;;8868:21;8857:32;:47;;;;-1:-1:-1;8893:11:0;;-1:-1:-1;;;8893:11:0;;;;8857:47;:89;;;;;8929:17;;8908:20;:38;8857:89;:121;;;;;8960:18;;8950:9;;:28;8857:121;8853:421;;;8999:67;9016:49;9020:6;9027:37;9031:20;9052:11;;9027:3;:37::i;:::-;9016:3;:49::i;:::-;8999:16;:67::i;:::-;9114:21;9157:22;;9154:105;;9204:35;9217:21;9204:12;:35::i;:::-;8980:294;8853:421;7798:1487;7760:1525;9300:11;;9297:161;;9368:4;9350:24;;;;:9;:24;;;;;;:39;;9379:9;9350:28;:39::i;:::-;9343:4;9325:24;;;;:9;:24;;;;;;;:64;;;;9407:39;;-1:-1:-1;;;;;9407:39:0;;;;;;;9436:9;1500:25:1;;1488:2;1473:18;;1354:177;9407:39:0;;;;;;;;9297:161;-1:-1:-1;;;;;9484:15:0;;;;;;:9;:15;;;;;;:27;;9504:6;9484:19;:27::i;:::-;-1:-1:-1;;;;;9468:15:0;;;;;;:9;:15;;;;;:43;9536:40;9554:21;:6;9565:9;9554:10;:21::i;:::-;-1:-1:-1;;;;;9536:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;9522:13:0;;;;;;;:9;:13;;;;;:54;;;;9592:41;;;9611:21;:6;9622:9;9611:10;:21::i;:::-;9592:41;;1500:25:1;;;1488:2;1473:18;9592:41:0;;;;;;;7490:2151;7421:2220;;;:::o;1542:190::-;1628:7;1664:12;1656:6;;;;1648:29;;;;-1:-1:-1;;;1648:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1688:9:0;1700:5;1704:1;1700;:5;:::i;:::-;1688:17;1542:190;-1:-1:-1;;;;;1542:190:0:o;1740:246::-;1798:7;1822:1;1827;1822:6;1818:47;;-1:-1:-1;1852:1:0;1845:8;;1818:47;1875:9;1887:5;1891:1;1887;:5;:::i;:::-;1875:17;-1:-1:-1;1920:1:0;1911:5;1915:1;1875:17;1911:5;:::i;:::-;:10;1903:56;;;;-1:-1:-1;;;1903:56:0;;11878:2:1;1903:56:0;;;11860:21:1;11917:2;11897:18;;;11890:30;11956:34;11936:18;;;11929:62;-1:-1:-1;;;12007:18:1;;;12000:31;12048:19;;1903:56:0;11676:397:1;1903:56:0;1977:1;1740:246;-1:-1:-1;;;1740:246:0:o;1994:132::-;2052:7;2079:39;2083:1;2086;2079:39;;;;;;;;;;;;;;;;;:3;:39::i;9651:98::-;9708:7;9735:1;9733;:3;9732:9;;9740:1;9732:9;;;-1:-1:-1;9738:1:0;9651:98;-1:-1:-1;9651:98:0:o;10135:483::-;5277:6;:13;;-1:-1:-1;;;;5277:13:0;-1:-1:-1;;;5277:13:0;;;10237:16:::1;::::0;;10251:1:::1;10237:16:::0;;;;;::::1;::::0;;-1:-1:-1;;10237:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10237:16:0::1;10213:40;;10282:4;10264;10269:1;10264:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10264:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10308:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;10308:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;10264:7;;10308:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10298:4;10303:1;10298:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10298:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;10373:15:::1;::::0;10341:62:::1;::::0;10358:4:::1;::::0;10373:15:::1;10391:11:::0;10341:8:::1;:62::i;:::-;10414:15;::::0;:196:::1;::::0;-1:-1:-1;;;10414:196:0;;-1:-1:-1;;;;;10414:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;10495:11;;10414:15:::1;::::0;10537:4;;10564::::1;::::0;10584:15:::1;::::0;10414:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5313:6:0;:14;;-1:-1:-1;;;;5313:14:0;;;-1:-1:-1;;;;10135:483:0:o;10793:92::-;10850:10;;:27;;-1:-1:-1;;;;;10850:10:0;;;;:27;;;;;10870:6;;10850:10;:27;:10;:27;10870:6;10850:10;:27;;;;;;;;;;;;;;;;;;;1211:179;1269:7;;1301:5;1305:1;1301;:5;:::i;:::-;1289:17;;1330:1;1325;:6;;1317:46;;;;-1:-1:-1;;;1317:46:0;;13521:2:1;1317:46:0;;;13503:21:1;13560:2;13540:18;;;13533:30;13599:29;13579:18;;;13572:57;13646:18;;1317:46:0;13319:351:1;1398:136:0;1456:7;1483:43;1487:1;1490;1483:43;;;;;;;;;;;;;;;;;:3;:43::i;2134:189::-;2220:7;2255:12;2248:5;2240:28;;;;-1:-1:-1;;;2240:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2279:9:0;2291:5;2295:1;2291;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:134::-;771:20;;800:31;771:20;800:31;:::i;:::-;703:134;;;:::o;842:315::-;910:6;918;971:2;959:9;950:7;946:23;942:32;939:52;;;987:1;984;977:12;939:52;1026:9;1013:23;1045:31;1070:5;1045:31;:::i;:::-;1095:5;1147:2;1132:18;;;;1119:32;;-1:-1:-1;;;842:315:1:o;1536:456::-;1613:6;1621;1629;1682:2;1670:9;1661:7;1657:23;1653:32;1650:52;;;1698:1;1695;1688:12;1650:52;1737:9;1724:23;1756:31;1781:5;1756:31;:::i;:::-;1806:5;-1:-1:-1;1863:2:1;1848:18;;1835:32;1876:33;1835:32;1876:33;:::i;:::-;1536:456;;1928:7;;-1:-1:-1;;;1982:2:1;1967:18;;;;1954:32;;1536:456::o;2186:247::-;2245:6;2298:2;2286:9;2277:7;2273:23;2269:32;2266:52;;;2314:1;2311;2304:12;2266:52;2353:9;2340:23;2372:31;2397:5;2372:31;:::i;2646:127::-;2707:10;2702:3;2698:20;2695:1;2688:31;2738:4;2735:1;2728:15;2762:4;2759:1;2752:15;2778:1121;2862:6;2893:2;2936;2924:9;2915:7;2911:23;2907:32;2904:52;;;2952:1;2949;2942:12;2904:52;2992:9;2979:23;3021:18;3062:2;3054:6;3051:14;3048:34;;;3078:1;3075;3068:12;3048:34;3116:6;3105:9;3101:22;3091:32;;3161:7;3154:4;3150:2;3146:13;3142:27;3132:55;;3183:1;3180;3173:12;3132:55;3219:2;3206:16;3241:2;3237;3234:10;3231:36;;;3247:18;;:::i;:::-;3293:2;3290:1;3286:10;3325:2;3319:9;3388:2;3384:7;3379:2;3375;3371:11;3367:25;3359:6;3355:38;3443:6;3431:10;3428:22;3423:2;3411:10;3408:18;3405:46;3402:72;;;3454:18;;:::i;:::-;3490:2;3483:22;3540:18;;;3574:15;;;;-1:-1:-1;3616:11:1;;;3612:20;;;3644:19;;;3641:39;;;3676:1;3673;3666:12;3641:39;3700:11;;;;3720:148;3736:6;3731:3;3728:15;3720:148;;;3802:23;3821:3;3802:23;:::i;:::-;3790:36;;3753:12;;;;3846;;;;3720:148;;;3887:6;2778:1121;-1:-1:-1;;;;;;;;2778:1121:1:o;3904:388::-;3972:6;3980;4033:2;4021:9;4012:7;4008:23;4004:32;4001:52;;;4049:1;4046;4039:12;4001:52;4088:9;4075:23;4107:31;4132:5;4107:31;:::i;:::-;4157:5;-1:-1:-1;4214:2:1;4199:18;;4186:32;4227:33;4186:32;4227:33;:::i;:::-;4279:7;4269:17;;;3904:388;;;;;:::o;4297:127::-;4358:10;4353:3;4349:20;4346:1;4339:31;4389:4;4386:1;4379:15;4413:4;4410:1;4403:15;4429:422;4518:1;4561:5;4518:1;4575:270;4596:7;4586:8;4583:21;4575:270;;;4655:4;4651:1;4647:6;4643:17;4637:4;4634:27;4631:53;;;4664:18;;:::i;:::-;4714:7;4704:8;4700:22;4697:55;;;4734:16;;;;4697:55;4813:22;;;;4773:15;;;;4575:270;;;4579:3;4429:422;;;;;:::o;4856:806::-;4905:5;4935:8;4925:80;;-1:-1:-1;4976:1:1;4990:5;;4925:80;5024:4;5014:76;;-1:-1:-1;5061:1:1;5075:5;;5014:76;5106:4;5124:1;5119:59;;;;5192:1;5187:130;;;;5099:218;;5119:59;5149:1;5140:10;;5163:5;;;5187:130;5224:3;5214:8;5211:17;5208:43;;;5231:18;;:::i;:::-;-1:-1:-1;;5287:1:1;5273:16;;5302:5;;5099:218;;5401:2;5391:8;5388:16;5382:3;5376:4;5373:13;5369:36;5363:2;5353:8;5350:16;5345:2;5339:4;5336:12;5332:35;5329:77;5326:159;;;-1:-1:-1;5438:19:1;;;5470:5;;5326:159;5517:34;5542:8;5536:4;5517:34;:::i;:::-;5587:6;5583:1;5579:6;5575:19;5566:7;5563:32;5560:58;;;5598:18;;:::i;:::-;5636:20;;4856:806;-1:-1:-1;;;4856:806:1:o;5667:140::-;5725:5;5754:47;5795:4;5785:8;5781:19;5775:4;5754:47;:::i;5812:168::-;5885:9;;;5916;;5933:15;;;5927:22;;5913:37;5903:71;;5954:18;;:::i;5985:356::-;6187:2;6169:21;;;6206:18;;;6199:30;6265:34;6260:2;6245:18;;6238:62;6332:2;6317:18;;5985:356::o;7310:306::-;7398:6;7406;7414;7467:2;7455:9;7446:7;7442:23;7438:32;7435:52;;;7483:1;7480;7473:12;7435:52;7512:9;7506:16;7496:26;;7562:2;7551:9;7547:18;7541:25;7531:35;;7606:2;7595:9;7591:18;7585:25;7575:35;;7310:306;;;;;:::o;7900:277::-;7967:6;8020:2;8008:9;7999:7;7995:23;7991:32;7988:52;;;8036:1;8033;8026:12;7988:52;8068:9;8062:16;8121:5;8114:13;8107:21;8100:5;8097:32;8087:60;;8143:1;8140;8133:12;8182:127;8243:10;8238:3;8234:20;8231:1;8224:31;8274:4;8271:1;8264:15;8298:4;8295:1;8288:15;8314:135;8353:3;8374:17;;;8371:43;;8394:18;;:::i;:::-;-1:-1:-1;8441:1:1;8430:13;;8314:135::o;10836:125::-;10901:9;;;10922:10;;;10919:36;;;10935:18;;:::i;11321:128::-;11388:9;;;11409:11;;;11406:37;;;11423:18;;:::i;11454:217::-;11494:1;11520;11510:132;;11564:10;11559:3;11555:20;11552:1;11545:31;11599:4;11596:1;11589:15;11627:4;11624:1;11617:15;11510:132;-1:-1:-1;11656:9:1;;11454:217::o;12078:251::-;12148:6;12201:2;12189:9;12180:7;12176:23;12172:32;12169:52;;;12217:1;12214;12207:12;12169:52;12249:9;12243:16;12268:31;12293:5;12268:31;:::i;12334:980::-;12596:4;12644:3;12633:9;12629:19;12675:6;12664:9;12657:25;12701:2;12739:6;12734:2;12723:9;12719:18;12712:34;12782:3;12777:2;12766:9;12762:18;12755:31;12806:6;12841;12835:13;12872:6;12864;12857:22;12910:3;12899:9;12895:19;12888:26;;12949:2;12941:6;12937:15;12923:29;;12970:1;12980:195;12994:6;12991:1;12988:13;12980:195;;;13059:13;;-1:-1:-1;;;;;13055:39:1;13043:52;;13150:15;;;;13115:12;;;;13091:1;13009:9;12980:195;;;-1:-1:-1;;;;;;;13231:32:1;;;;13226:2;13211:18;;13204:60;-1:-1:-1;;;13295:3:1;13280:19;13273:35;13192:3;12334:980;-1:-1:-1;;;12334:980:1:o

Swarm Source

ipfs://b7c4e040f574ff3d9d4b6f7ba17c01646b8744c5000f030935bc1e08c607f05e

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.