ETH Price: $2,882.43 (-10.00%)
Gas: 13 Gwei

Contract

0x7D4b70733102daCE120c89497870aaA3f57Ab9A2
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Value
Manual Swap182350562023-09-28 15:14:35280 days ago1695914075IN
0x7D4b7073...3f57Ab9A2
0 ETH0.0031094420.43387818
Approve181073902023-09-10 17:13:11298 days ago1694365991IN
0x7D4b7073...3f57Ab9A2
0 ETH0.000429.0282283
Approve180271872023-08-30 11:42:47309 days ago1693395767IN
0x7D4b7073...3f57Ab9A2
0 ETH0.0009452420.45583407
Approve179986792023-08-26 11:55:59313 days ago1693050959IN
0x7D4b7073...3f57Ab9A2
0 ETH0.0006857314.74035892
Approve179659612023-08-21 22:03:47318 days ago1692655427IN
0x7D4b7073...3f57Ab9A2
0 ETH0.0015108432.69588195
Approve179657242023-08-21 21:16:23318 days ago1692652583IN
0x7D4b7073...3f57Ab9A2
0 ETH0.0017559537.69676428
Approve179654772023-08-21 20:26:47318 days ago1692649607IN
0x7D4b7073...3f57Ab9A2
0 ETH0.0014584131.34951768
Approve179641972023-08-21 16:09:47318 days ago1692634187IN
0x7D4b7073...3f57Ab9A2
0 ETH0.002964563.72403095
Approve179641112023-08-21 15:52:11318 days ago1692633131IN
0x7D4b7073...3f57Ab9A2
0 ETH0.00233550.19240883
Approve179639122023-08-21 15:11:35318 days ago1692630695IN
0x7D4b7073...3f57Ab9A2
0 ETH0.0016806436.12664264
Approve179638792023-08-21 15:04:59318 days ago1692630299IN
0x7D4b7073...3f57Ab9A2
0 ETH0.0024708353.04386779
Transfer179638762023-08-21 15:04:23318 days ago1692630263IN
0x7D4b7073...3f57Ab9A2
0 ETH0.00345750.16112684
Approve179638392023-08-21 14:56:47318 days ago1692629807IN
0x7D4b7073...3f57Ab9A2
0 ETH0.0016198934.82079512
Approve179637332023-08-21 14:35:35318 days ago1692628535IN
0x7D4b7073...3f57Ab9A2
0 ETH0.0019574142.02179714
Approve179636642023-08-21 14:21:23318 days ago1692627683IN
0x7D4b7073...3f57Ab9A2
0 ETH0.0018216639.10737003
Approve179636612023-08-21 14:20:47318 days ago1692627647IN
0x7D4b7073...3f57Ab9A2
0 ETH0.0018677840.09767091
Approve179636602023-08-21 14:20:35318 days ago1692627635IN
0x7D4b7073...3f57Ab9A2
0 ETH0.0021515146.18867946
Approve179636542023-08-21 14:19:23318 days ago1692627563IN
0x7D4b7073...3f57Ab9A2
0 ETH0.0018608440
Approve179636132023-08-21 14:10:59318 days ago1692627059IN
0x7D4b7073...3f57Ab9A2
0 ETH0.0018937640.65533473
Approve179636122023-08-21 14:10:47318 days ago1692627047IN
0x7D4b7073...3f57Ab9A2
0 ETH0.0017486437.58831907
Approve179635582023-08-21 13:59:59318 days ago1692626399IN
0x7D4b7073...3f57Ab9A2
0 ETH0.0016140334.65
Approve179635502023-08-21 13:58:23318 days ago1692626303IN
0x7D4b7073...3f57Ab9A2
0 ETH0.0011477339.34764787
Approve179635432023-08-21 13:56:59318 days ago1692626219IN
0x7D4b7073...3f57Ab9A2
0 ETH0.0015831433.98689119
Approve179635302023-08-21 13:54:23318 days ago1692626063IN
0x7D4b7073...3f57Ab9A2
0 ETH0.0016148334.66716316
Approve179635142023-08-21 13:51:11318 days ago1692625871IN
0x7D4b7073...3f57Ab9A2
0 ETH0.0016453335.36749546
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To Value
182350562023-09-28 15:14:35280 days ago1695914075
0x7D4b7073...3f57Ab9A2
0.03317408 ETH
182350562023-09-28 15:14:35280 days ago1695914075
0x7D4b7073...3f57Ab9A2
0.00762156 ETH
181073912023-09-10 17:13:23298 days ago1694366003
0x7D4b7073...3f57Ab9A2
0.00262206 ETH
179659642023-08-21 22:04:23318 days ago1692655463
0x7D4b7073...3f57Ab9A2
0.00402431 ETH
179642192023-08-21 16:14:23318 days ago1692634463
0x7D4b7073...3f57Ab9A2
0.00666715 ETH
179638802023-08-21 15:05:11318 days ago1692630311
0x7D4b7073...3f57Ab9A2
0.01223899 ETH
179637142023-08-21 14:31:35318 days ago1692628295
0x7D4b7073...3f57Ab9A2
0.06441111 ETH
179637142023-08-21 14:31:35318 days ago1692628295
0x7D4b7073...3f57Ab9A2
0.03332352 ETH
179636162023-08-21 14:11:35318 days ago1692627095
0x7D4b7073...3f57Ab9A2
0.00609462 ETH
179636152023-08-21 14:11:23318 days ago1692627083
0x7D4b7073...3f57Ab9A2
0.00609462 ETH
179636132023-08-21 14:10:59318 days ago1692627059
0x7D4b7073...3f57Ab9A2
0.00919728 ETH
179635452023-08-21 13:57:23318 days ago1692626243
0x7D4b7073...3f57Ab9A2
0.01579568 ETH
179635192023-08-21 13:52:11318 days ago1692625931
0x7D4b7073...3f57Ab9A2
0.05396086 ETH
179635192023-08-21 13:52:11318 days ago1692625931
0x7D4b7073...3f57Ab9A2
0.01402616 ETH
179634772023-08-21 13:43:35318 days ago1692625415
0x7D4b7073...3f57Ab9A2
0.01241622 ETH
179634292023-08-21 13:33:59318 days ago1692624839
0x7D4b7073...3f57Ab9A2
0.02751847 ETH
179633932023-08-21 13:26:47318 days ago1692624407
0x7D4b7073...3f57Ab9A2
0.05768428 ETH
179633932023-08-21 13:26:47318 days ago1692624407
0x7D4b7073...3f57Ab9A2
0.02577142 ETH
179633502023-08-21 13:17:59318 days ago1692623879
0x7D4b7073...3f57Ab9A2
0.03191285 ETH
179633422023-08-21 13:16:23318 days ago1692623783
0x7D4b7073...3f57Ab9A2
0.07163009 ETH
179633422023-08-21 13:16:23318 days ago1692623783
0x7D4b7073...3f57Ab9A2
0.03410398 ETH
179633032023-08-21 13:08:23318 days ago1692623303
0x7D4b7073...3f57Ab9A2
0.0375261 ETH
179632802023-08-21 13:03:47318 days ago1692623027
0x7D4b7073...3f57Ab9A2
0.05655489 ETH
179632802023-08-21 13:03:47318 days ago1692623027
0x7D4b7073...3f57Ab9A2
0.03880505 ETH
179632562023-08-21 12:58:59318 days ago1692622739
0x7D4b7073...3f57Ab9A2
0.01774983 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Gollum

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

/** 
https://t.me/GollumOfficial
https://gollumeth.com
https://twitter.com/gollum_eth
*/


pragma solidity ^0.8.15;

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

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

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

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

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

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

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

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

}

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

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

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

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

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

}

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

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

contract Gollum 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;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = true;
    address payable private _taxWallet;

    uint256 private _initialBuyTax=20;
    uint256 private _initialSellTax=20;
    uint256 private _finalBuyTax=2;
    uint256 private _finalSellTax=2;
    uint256 private _reduceBuyTaxAt=20;
    uint256 private _reduceSellTaxAt=20;
    uint256 private _preventSwapBefore=20;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000 * 10**_decimals;
    string private constant _name = unicode"GOLLUM";
    string private constant _symbol = unicode"GOLLUM";
    uint256 public _maxTxAmount = _tTotal * 20 / 1000;
    uint256 public _maxWalletSize = _tTotal * 20 / 1000;
    uint256 public _taxSwapThreshold= _tTotal * 2 / 1000;
    uint256 public _maxTaxSwap= _tTotal * 10 / 100;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;

    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _taxWallet = payable(_msgSender());
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;

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

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

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

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

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);

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

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

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

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

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


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

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

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

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


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

    receive() external payable {}

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526006805460ff1916600117905560146007819055600881905560026009818155600a918255600b839055600c839055600d929092556000600e556103e8916200004d91620003c0565b6200005c90620f4240620003d8565b62000069906014620003d8565b620000759190620003f2565b600f556103e8620000896009600a620003c0565b6200009890620f4240620003d8565b620000a5906014620003d8565b620000b19190620003f2565b6010556103e8620000c56009600a620003c0565b620000d490620f4240620003d8565b620000e1906002620003d8565b620000ed9190620003f2565b6011556064620001006009600a620003c0565b6200010f90620f4240620003d8565b6200011c90600a620003d8565b620001289190620003f2565b6012556014805461ffff60a81b191690553480156200014657600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060068054610100600160a81b0319166101003302179055620001ad6009600a620003c0565b620001bc90620f4240620003d8565b336000908152600160208190526040822092909255600390620001e76000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055308152600390935281832080548516600190811790915560065461010090049091168352912080549092161790556200024b3390565b6001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002856009600a620003c0565b6200029490620f4240620003d8565b60405190815260200160405180910390a362000415565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000302578160001904821115620002e657620002e6620002ab565b80851615620002f457918102915b93841c9390800290620002c6565b509250929050565b6000826200031b57506001620003ba565b816200032a57506000620003ba565b81600181146200034357600281146200034e576200036e565b6001915050620003ba565b60ff841115620003625762000362620002ab565b50506001821b620003ba565b5060208310610133831016604e8410600b841016171562000393575081810a620003ba565b6200039f8383620002c1565b8060001904821115620003b657620003b6620002ab565b0290505b92915050565b6000620003d160ff8416836200030a565b9392505050565b8082028115828204841417620003ba57620003ba620002ab565b6000826200041057634e487b7160e01b600052601260045260246000fd5b500490565b61184c80620004256000396000f3fe6080604052600436106101185760003560e01c8063751039fc116100a0578063a9059cbb11610064578063a9059cbb146102d2578063bf474bed146102f2578063c876d0b914610308578063c9567bf914610322578063dd62ed3e1461033757600080fd5b8063751039fc146102695780637d1db4a51461027e5780638da5cb5b146102945780638f9a55c0146102bc57806395d89b411461012457600080fd5b806323b872dd116100e757806323b872dd146101cb578063313ce567146101eb57806351bc3c851461020757806370a082311461021e578063715018a61461025457600080fd5b806306fdde0314610124578063095ea7b3146101625780630faee56f1461019257806318160ddd146101b657600080fd5b3661011f57005b600080fd5b34801561013057600080fd5b506040805180820182526006815265474f4c4c554d60d01b60208201529051610159919061141b565b60405180910390f35b34801561016e57600080fd5b5061018261017d366004611481565b61037d565b6040519015158152602001610159565b34801561019e57600080fd5b506101a860125481565b604051908152602001610159565b3480156101c257600080fd5b506101a8610394565b3480156101d757600080fd5b506101826101e63660046114ad565b6103b4565b3480156101f757600080fd5b5060405160098152602001610159565b34801561021357600080fd5b5061021c61041d565b005b34801561022a57600080fd5b506101a86102393660046114ee565b6001600160a01b031660009081526001602052604090205490565b34801561026057600080fd5b5061021c610475565b34801561027557600080fd5b5061021c6104f2565b34801561028a57600080fd5b506101a8600f5481565b3480156102a057600080fd5b506000546040516001600160a01b039091168152602001610159565b3480156102c857600080fd5b506101a860105481565b3480156102de57600080fd5b506101826102ed366004611481565b6105ab565b3480156102fe57600080fd5b506101a860115481565b34801561031457600080fd5b506006546101829060ff1681565b34801561032e57600080fd5b5061021c6105b8565b34801561034357600080fd5b506101a861035236600461150b565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b600061038a338484610973565b5060015b92915050565b60006103a26009600a61163e565b6103af90620f424061164d565b905090565b60006103c1848484610a97565b610413843361040e856040518060600160405280602881526020016117ef602891396001600160a01b038a166000908152600260209081526040808320338452909152902054919061107a565b610973565b5060019392505050565b60065461010090046001600160a01b0316336001600160a01b03161461044257600080fd5b30600090815260016020526040902054801561046157610461816110b4565b478015610471576104718161122e565b5050565b6000546001600160a01b031633146104a85760405162461bcd60e51b815260040161049f90611664565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b0316331461051c5760405162461bcd60e51b815260040161049f90611664565b6105286009600a61163e565b61053590620f424061164d565b600f556105446009600a61163e565b61055190620f424061164d565b6010556006805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf61058b6009600a61163e565b61059890620f424061164d565b60405190815260200160405180910390a1565b600061038a338484610a97565b6000546001600160a01b031633146105e25760405162461bcd60e51b815260040161049f90611664565b601454600160a01b900460ff161561063c5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161049f565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556106849030906106776009600a61163e565b61040e90620f424061164d565b601360009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106fb9190611699565b6001600160a01b031663c9c6539630601360009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561075d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107819190611699565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156107ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f29190611699565b601480546001600160a01b039283166001600160a01b03199091161790556013541663f305d719473061083a816001600160a01b031660009081526001602052604090205490565b60008061084f6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156108b7573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906108dc91906116b6565b505060145460135460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610935573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095991906116e4565b506014805462ff00ff60a01b19166201000160a01b179055565b6001600160a01b0383166109d55760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161049f565b6001600160a01b038216610a365760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161049f565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610afb5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161049f565b6001600160a01b038216610b5d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161049f565b60008111610bbf5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161049f565b600080546001600160a01b03858116911614801590610bec57506000546001600160a01b03848116911614155b15610f3757610c1d6064610c17600b54600e5411610c0c57600754610c10565b6009545b859061126c565b906112f5565b60065490915060ff1615610d05576013546001600160a01b03848116911614801590610c5757506014546001600160a01b03848116911614155b15610d0557326000908152600560205260409020544311610cf25760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a40161049f565b3260009081526005602052604090204390555b6014546001600160a01b038581169116148015610d3057506013546001600160a01b03848116911614155b8015610d5557506001600160a01b03831660009081526003602052604090205460ff16155b15610e3d57600f54821115610dac5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161049f565b60105482610dcf856001600160a01b031660009081526001602052604090205490565b610dd99190611706565b1115610e275760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161049f565b600e8054906000610e3783611719565b91905055505b6014546001600160a01b038481169116148015610e6357506001600160a01b0384163014155b15610e9057610e8d6064610c17600c54600e5411610e8357600854610c10565b600a54859061126c565b90505b30600090815260016020526040902054601454600160a81b900460ff16158015610ec757506014546001600160a01b038581169116145b8015610edc5750601454600160b01b900460ff165b8015610ee9575060115481115b8015610ef85750600d54600e54115b15610f3557610f1a610f1584610f1084601254611337565b611337565b6110b4565b4766b1a2bc2ec50000811115610f3357610f334761122e565b505b505b8015610fb15730600090815260016020526040902054610f57908261134c565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610fa89085815260200190565b60405180910390a35b6001600160a01b038416600090815260016020526040902054610fd490836113ab565b6001600160a01b038516600090815260016020526040902055611019610ffa83836113ab565b6001600160a01b0385166000908152600160205260409020549061134c565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61106385856113ab565b60405190815260200160405180910390a350505050565b6000818484111561109e5760405162461bcd60e51b815260040161049f919061141b565b5060006110ab8486611732565b95945050505050565b6014805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106110fc576110fc611745565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611155573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111799190611699565b8160018151811061118c5761118c611745565b6001600160a01b0392831660209182029290920101526013546111b29130911684610973565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac947906111eb90859060009086903090429060040161175b565b600060405180830381600087803b15801561120557600080fd5b505af1158015611219573d6000803e3d6000fd5b50506014805460ff60a81b1916905550505050565b6006546040516101009091046001600160a01b0316906108fc8315029083906000818181858888f19350505050158015610471573d6000803e3d6000fd5b60008260000361127e5750600061038e565b600061128a838561164d565b90508261129785836117cc565b146112ee5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161049f565b9392505050565b60006112ee83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506113ed565b600081831161134657826112ee565b50919050565b6000806113598385611706565b9050838110156112ee5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161049f565b60006112ee83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061107a565b6000818361140e5760405162461bcd60e51b815260040161049f919061141b565b5060006110ab84866117cc565b600060208083528351808285015260005b818110156114485785810183015185820160400152820161142c565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461147e57600080fd5b50565b6000806040838503121561149457600080fd5b823561149f81611469565b946020939093013593505050565b6000806000606084860312156114c257600080fd5b83356114cd81611469565b925060208401356114dd81611469565b929592945050506040919091013590565b60006020828403121561150057600080fd5b81356112ee81611469565b6000806040838503121561151e57600080fd5b823561152981611469565b9150602083013561153981611469565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561159557816000190482111561157b5761157b611544565b8085161561158857918102915b93841c939080029061155f565b509250929050565b6000826115ac5750600161038e565b816115b95750600061038e565b81600181146115cf57600281146115d9576115f5565b600191505061038e565b60ff8411156115ea576115ea611544565b50506001821b61038e565b5060208310610133831016604e8410600b8410161715611618575081810a61038e565b611622838361155a565b806000190482111561163657611636611544565b029392505050565b60006112ee60ff84168361159d565b808202811582820484141761038e5761038e611544565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000602082840312156116ab57600080fd5b81516112ee81611469565b6000806000606084860312156116cb57600080fd5b8351925060208401519150604084015190509250925092565b6000602082840312156116f657600080fd5b815180151581146112ee57600080fd5b8082018082111561038e5761038e611544565b60006001820161172b5761172b611544565b5060010190565b8181038181111561038e5761038e611544565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156117ab5784516001600160a01b031683529383019391830191600101611786565b50506001600160a01b03969096166060850152505050608001529392505050565b6000826117e957634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122050958df86865247554190ebce4a0bd509e9753acff07afdb08e55118c069e37164736f6c63430008120033

Deployed Bytecode

0x6080604052600436106101185760003560e01c8063751039fc116100a0578063a9059cbb11610064578063a9059cbb146102d2578063bf474bed146102f2578063c876d0b914610308578063c9567bf914610322578063dd62ed3e1461033757600080fd5b8063751039fc146102695780637d1db4a51461027e5780638da5cb5b146102945780638f9a55c0146102bc57806395d89b411461012457600080fd5b806323b872dd116100e757806323b872dd146101cb578063313ce567146101eb57806351bc3c851461020757806370a082311461021e578063715018a61461025457600080fd5b806306fdde0314610124578063095ea7b3146101625780630faee56f1461019257806318160ddd146101b657600080fd5b3661011f57005b600080fd5b34801561013057600080fd5b506040805180820182526006815265474f4c4c554d60d01b60208201529051610159919061141b565b60405180910390f35b34801561016e57600080fd5b5061018261017d366004611481565b61037d565b6040519015158152602001610159565b34801561019e57600080fd5b506101a860125481565b604051908152602001610159565b3480156101c257600080fd5b506101a8610394565b3480156101d757600080fd5b506101826101e63660046114ad565b6103b4565b3480156101f757600080fd5b5060405160098152602001610159565b34801561021357600080fd5b5061021c61041d565b005b34801561022a57600080fd5b506101a86102393660046114ee565b6001600160a01b031660009081526001602052604090205490565b34801561026057600080fd5b5061021c610475565b34801561027557600080fd5b5061021c6104f2565b34801561028a57600080fd5b506101a8600f5481565b3480156102a057600080fd5b506000546040516001600160a01b039091168152602001610159565b3480156102c857600080fd5b506101a860105481565b3480156102de57600080fd5b506101826102ed366004611481565b6105ab565b3480156102fe57600080fd5b506101a860115481565b34801561031457600080fd5b506006546101829060ff1681565b34801561032e57600080fd5b5061021c6105b8565b34801561034357600080fd5b506101a861035236600461150b565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b600061038a338484610973565b5060015b92915050565b60006103a26009600a61163e565b6103af90620f424061164d565b905090565b60006103c1848484610a97565b610413843361040e856040518060600160405280602881526020016117ef602891396001600160a01b038a166000908152600260209081526040808320338452909152902054919061107a565b610973565b5060019392505050565b60065461010090046001600160a01b0316336001600160a01b03161461044257600080fd5b30600090815260016020526040902054801561046157610461816110b4565b478015610471576104718161122e565b5050565b6000546001600160a01b031633146104a85760405162461bcd60e51b815260040161049f90611664565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b0316331461051c5760405162461bcd60e51b815260040161049f90611664565b6105286009600a61163e565b61053590620f424061164d565b600f556105446009600a61163e565b61055190620f424061164d565b6010556006805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf61058b6009600a61163e565b61059890620f424061164d565b60405190815260200160405180910390a1565b600061038a338484610a97565b6000546001600160a01b031633146105e25760405162461bcd60e51b815260040161049f90611664565b601454600160a01b900460ff161561063c5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161049f565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556106849030906106776009600a61163e565b61040e90620f424061164d565b601360009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106fb9190611699565b6001600160a01b031663c9c6539630601360009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561075d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107819190611699565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156107ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f29190611699565b601480546001600160a01b039283166001600160a01b03199091161790556013541663f305d719473061083a816001600160a01b031660009081526001602052604090205490565b60008061084f6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156108b7573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906108dc91906116b6565b505060145460135460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610935573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095991906116e4565b506014805462ff00ff60a01b19166201000160a01b179055565b6001600160a01b0383166109d55760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161049f565b6001600160a01b038216610a365760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161049f565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610afb5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161049f565b6001600160a01b038216610b5d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161049f565b60008111610bbf5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161049f565b600080546001600160a01b03858116911614801590610bec57506000546001600160a01b03848116911614155b15610f3757610c1d6064610c17600b54600e5411610c0c57600754610c10565b6009545b859061126c565b906112f5565b60065490915060ff1615610d05576013546001600160a01b03848116911614801590610c5757506014546001600160a01b03848116911614155b15610d0557326000908152600560205260409020544311610cf25760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a40161049f565b3260009081526005602052604090204390555b6014546001600160a01b038581169116148015610d3057506013546001600160a01b03848116911614155b8015610d5557506001600160a01b03831660009081526003602052604090205460ff16155b15610e3d57600f54821115610dac5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161049f565b60105482610dcf856001600160a01b031660009081526001602052604090205490565b610dd99190611706565b1115610e275760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161049f565b600e8054906000610e3783611719565b91905055505b6014546001600160a01b038481169116148015610e6357506001600160a01b0384163014155b15610e9057610e8d6064610c17600c54600e5411610e8357600854610c10565b600a54859061126c565b90505b30600090815260016020526040902054601454600160a81b900460ff16158015610ec757506014546001600160a01b038581169116145b8015610edc5750601454600160b01b900460ff165b8015610ee9575060115481115b8015610ef85750600d54600e54115b15610f3557610f1a610f1584610f1084601254611337565b611337565b6110b4565b4766b1a2bc2ec50000811115610f3357610f334761122e565b505b505b8015610fb15730600090815260016020526040902054610f57908261134c565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610fa89085815260200190565b60405180910390a35b6001600160a01b038416600090815260016020526040902054610fd490836113ab565b6001600160a01b038516600090815260016020526040902055611019610ffa83836113ab565b6001600160a01b0385166000908152600160205260409020549061134c565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61106385856113ab565b60405190815260200160405180910390a350505050565b6000818484111561109e5760405162461bcd60e51b815260040161049f919061141b565b5060006110ab8486611732565b95945050505050565b6014805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106110fc576110fc611745565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611155573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111799190611699565b8160018151811061118c5761118c611745565b6001600160a01b0392831660209182029290920101526013546111b29130911684610973565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac947906111eb90859060009086903090429060040161175b565b600060405180830381600087803b15801561120557600080fd5b505af1158015611219573d6000803e3d6000fd5b50506014805460ff60a81b1916905550505050565b6006546040516101009091046001600160a01b0316906108fc8315029083906000818181858888f19350505050158015610471573d6000803e3d6000fd5b60008260000361127e5750600061038e565b600061128a838561164d565b90508261129785836117cc565b146112ee5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161049f565b9392505050565b60006112ee83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506113ed565b600081831161134657826112ee565b50919050565b6000806113598385611706565b9050838110156112ee5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161049f565b60006112ee83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061107a565b6000818361140e5760405162461bcd60e51b815260040161049f919061141b565b5060006110ab84866117cc565b600060208083528351808285015260005b818110156114485785810183015185820160400152820161142c565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461147e57600080fd5b50565b6000806040838503121561149457600080fd5b823561149f81611469565b946020939093013593505050565b6000806000606084860312156114c257600080fd5b83356114cd81611469565b925060208401356114dd81611469565b929592945050506040919091013590565b60006020828403121561150057600080fd5b81356112ee81611469565b6000806040838503121561151e57600080fd5b823561152981611469565b9150602083013561153981611469565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561159557816000190482111561157b5761157b611544565b8085161561158857918102915b93841c939080029061155f565b509250929050565b6000826115ac5750600161038e565b816115b95750600061038e565b81600181146115cf57600281146115d9576115f5565b600191505061038e565b60ff8411156115ea576115ea611544565b50506001821b61038e565b5060208310610133831016604e8410600b8410161715611618575081810a61038e565b611622838361155a565b806000190482111561163657611636611544565b029392505050565b60006112ee60ff84168361159d565b808202811582820484141761038e5761038e611544565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000602082840312156116ab57600080fd5b81516112ee81611469565b6000806000606084860312156116cb57600080fd5b8351925060208401519150604084015190509250925092565b6000602082840312156116f657600080fd5b815180151581146112ee57600080fd5b8082018082111561038e5761038e611544565b60006001820161172b5761172b611544565b5060010190565b8181038181111561038e5761038e611544565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156117ab5784516001600160a01b031683529383019391830191600101611786565b50506001600160a01b03969096166060850152505050608001529392505050565b6000826117e957634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122050958df86865247554190ebce4a0bd509e9753acff07afdb08e55118c069e37164736f6c63430008120033

Deployed Bytecode Sourcemap

3572:7970:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5478:83;;;;;;;;;;-1:-1:-1;5548:5:0;;;;;;;;;;;-1:-1:-1;;;5548:5:0;;;;5478:83;;;;5548:5;5478:83;:::i;:::-;;;;;;;;6311:161;;;;;;;;;;-1:-1:-1;6311:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6311:161:0;1023:187:1;4759:46:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;4759:46:0;1215:177:1;5755:95:0;;;;;;;;;;;;;:::i;6480:313::-;;;;;;;;;;-1:-1:-1;6480:313:0;;;;;:::i;:::-;;:::i;5664:83::-;;;;;;;;;;-1:-1:-1;5664:83:0;;4403:1;2000:36:1;;1988:2;1973:18;5664:83:0;1858:184:1;11191:348:0;;;;;;;;;;;;;:::i;:::-;;5858:119;;;;;;;;;;-1:-1:-1;5858:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;5951:18:0;5924:7;5951:18;;;:9;:18;;;;;;;5858:119;2653:148;;;;;;;;;;;;;:::i;10165:200::-;;;;;;;;;;;;;:::i;4586:49::-;;;;;;;;;;;;;;;;2439:79;;;;;;;;;;-1:-1:-1;2477:7:0;2504:6;2439:79;;-1:-1:-1;;;;;2504:6:0;;;2445:51:1;;2433:2;2418:18;2439:79:0;2299:203:1;4642:51:0;;;;;;;;;;;;;;;;5985:167;;;;;;;;;;-1:-1:-1;5985:167:0;;;;;:::i;:::-;;:::i;4700:52::-;;;;;;;;;;;;;;;;3960:39;;;;;;;;;;-1:-1:-1;3960:39:0;;;;;;;;10475:671;;;;;;;;;;;;;:::i;6160:143::-;;;;;;;;;;-1:-1:-1;6160:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6268:18:0;;;6241:7;6268:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6160:143;6311:161;6386:4;6403:39;274:10;6426:7;6435:6;6403:8;:39::i;:::-;-1:-1:-1;6460:4:0;6311:161;;;;;:::o;5755:95::-;5808:7;4456:13;4403:1;4456:2;:13;:::i;:::-;4446:23;;:7;:23;:::i;:::-;5828:14;;5755:95;:::o;6480:313::-;6578:4;6595:36;6605:6;6613:9;6624:6;6595:9;:36::i;:::-;6642:121;6651:6;274:10;6673:89;6711:6;6673:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6673:19:0;;;;;;:11;:19;;;;;;;;274:10;6673:33;;;;;;;;;;:37;:89::i;:::-;6642:8;:121::i;:::-;-1:-1:-1;6781:4:0;6480:313;;;;;:::o;11191:348::-;11255:10;;;;;-1:-1:-1;;;;;11255:10:0;274;-1:-1:-1;;;;;11241:24:0;;11233:33;;;;;;11316:4;11277:20;5951:18;;;:9;:18;;;;;;11336:14;;11333:73;;11364:30;11381:12;11364:16;:30::i;:::-;11435:21;11470:12;;11467:65;;11496:24;11509:10;11496:12;:24::i;:::-;11222:317;;11191:348::o;2653:148::-;2566:6;;-1:-1:-1;;;;;2566:6:0;274:10;2566:22;2558:67;;;;-1:-1:-1;;;2558:67:0;;;;;;;:::i;:::-;;;;;;;;;2760:1:::1;2744:6:::0;;2723:40:::1;::::0;-1:-1:-1;;;;;2744:6:0;;::::1;::::0;2723:40:::1;::::0;2760:1;;2723:40:::1;2791:1;2774:19:::0;;-1:-1:-1;;;;;;2774:19:0::1;::::0;;2653:148::o;10165:200::-;2566:6;;-1:-1:-1;;;;;2566:6:0;274:10;2566:22;2558:67;;;;-1:-1:-1;;;2558:67:0;;;;;;;:::i;:::-;4456:13:::1;4403:1;4456:2;:13;:::i;:::-;4446:23;::::0;:7:::1;:23;:::i;:::-;10218:12;:22:::0;4456:13:::1;4403:1;4456:2;:13;:::i;:::-;4446:23;::::0;:7:::1;:23;:::i;:::-;10251:14;:24:::0;10286:20:::1;:28:::0;;-1:-1:-1;;10286:28:0::1;::::0;;10330:27:::1;4456:13;4403:1;-1:-1:-1::0;4456:13:0::1;:::i;:::-;4446:23;::::0;:7:::1;:23;:::i;:::-;10330:27;::::0;1361:25:1;;;1349:2;1334:18;10330:27:0::1;;;;;;;10165:200::o:0;5985:167::-;6063:4;6080:42;274:10;6104:9;6115:6;6080:9;:42::i;10475:671::-;2566:6;;-1:-1:-1;;;;;2566:6:0;274:10;2566:22;2558:67;;;;-1:-1:-1;;;2558:67:0;;;;;;;:::i;:::-;10539:11:::1;::::0;-1:-1:-1;;;10539:11:0;::::1;;;10538:12;10530:47;;;::::0;-1:-1:-1;;;10530:47:0;;5151:2:1;10530:47:0::1;::::0;::::1;5133:21:1::0;5190:2;5170:18;;;5163:30;5229:25;5209:18;;;5202:53;5272:18;;10530:47:0::1;4949:347:1::0;10530:47:0::1;10588:15;:80:::0;;-1:-1:-1;;;;;;10588:80:0::1;10625:42;10588:80:::0;;::::1;::::0;;;10679:58:::1;::::0;10696:4:::1;::::0;4456:13:::1;4403:1;4456:2;:13;:::i;:::-;4446:23;::::0;:7:::1;:23;:::i;10679:58::-;10782:15;;;;;;;;;-1:-1:-1::0;;;;;10782:15:0::1;-1:-1:-1::0;;;;;10782:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10764:55:0::1;;10828:4;10835:15;;;;;;;;;-1:-1:-1::0;;;;;10835:15:0::1;-1:-1:-1::0;;;;;10835:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10764:94;::::0;-1:-1:-1;;;;;;10764:94:0::1;::::0;;;;;;-1:-1:-1;;;;;5787:15:1;;;10764:94:0::1;::::0;::::1;5769:34:1::0;5839:15;;5819:18;;;5812:43;5704:18;;10764:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10748:13;:110:::0;;-1:-1:-1;;;;;10748:110:0;;::::1;-1:-1:-1::0;;;;;;10748:110:0;;::::1;;::::0;;10869:15:::1;::::0;::::1;:31;10908:21;10939:4;10945:24;10939:4:::0;-1:-1:-1;;;;;5951:18:0;5924:7;5951:18;;;:9;:18;;;;;;;5858:119;10945:24:::1;10970:1;10972::::0;10974:7:::1;2477::::0;2504:6;-1:-1:-1;;;;;2504:6:0;;2439:79;10974:7:::1;10869:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;10869:129:0;;;-1:-1:-1;;;;;6225:15:1;;;10869:129:0::1;::::0;::::1;6207:34:1::0;6257:18;;;6250:34;;;;6300:18;;;6293:34;;;;6343:18;;;6336:34;6407:15;;;6386:19;;;6379:44;10982:15:0::1;6439:19:1::0;;;6432:35;6141:19;;10869:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;11016:13:0::1;::::0;11047:15:::1;::::0;11009:71:::1;::::0;-1:-1:-1;;;11009:71:0;;-1:-1:-1;;;;;11047:15:0;;::::1;11009:71;::::0;::::1;6963:51:1::0;-1:-1:-1;;7030:18:1;;;7023:34;11016:13:0;::::1;::::0;-1:-1:-1;11009:29:0::1;::::0;6936:18:1;;11009:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;11091:11:0::1;:18:::0;;-1:-1:-1;;;;11120:18:0;-1:-1:-1;;;11120:18:0;;;10475:671::o;6801:335::-;-1:-1:-1;;;;;6894:19:0;;6886:68;;;;-1:-1:-1;;;6886:68:0;;7552:2:1;6886:68:0;;;7534:21:1;7591:2;7571:18;;;7564:30;7630:34;7610:18;;;7603:62;-1:-1:-1;;;7681:18:1;;;7674:34;7725:19;;6886:68:0;7350:400:1;6886:68:0;-1:-1:-1;;;;;6973:21:0;;6965:68;;;;-1:-1:-1;;;6965:68:0;;7957:2:1;6965:68:0;;;7939:21:1;7996:2;7976:18;;;7969:30;8035:34;8015:18;;;8008:62;-1:-1:-1;;;8086:18:1;;;8079:32;8128:19;;6965:68:0;7755:398:1;6965:68:0;-1:-1:-1;;;;;7044:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7096:32;;1361:25:1;;;7096:32:0;;1334:18:1;7096:32:0;;;;;;;6801:335;;;:::o;7144:2414::-;-1:-1:-1;;;;;7232:18:0;;7224:68;;;;-1:-1:-1;;;7224:68:0;;8360:2:1;7224:68:0;;;8342:21:1;8399:2;8379:18;;;8372:30;8438:34;8418:18;;;8411:62;-1:-1:-1;;;8489:18:1;;;8482:35;8534:19;;7224:68:0;8158:401:1;7224:68:0;-1:-1:-1;;;;;7311:16:0;;7303:64;;;;-1:-1:-1;;;7303:64:0;;8766:2:1;7303:64:0;;;8748:21:1;8805:2;8785:18;;;8778:30;8844:34;8824:18;;;8817:62;-1:-1:-1;;;8895:18:1;;;8888:33;8938:19;;7303:64:0;8564:399:1;7303:64:0;7395:1;7386:6;:10;7378:64;;;;-1:-1:-1;;;7378:64:0;;9170:2:1;7378:64:0;;;9152:21:1;9209:2;9189:18;;;9182:30;9248:34;9228:18;;;9221:62;-1:-1:-1;;;9299:18:1;;;9292:39;9348:19;;7378:64:0;8968:405:1;7378:64:0;7453:17;2504:6;;-1:-1:-1;;;;;7487:15:0;;;2504:6;;7487:15;;;;:32;;-1:-1:-1;2477:7:0;2504:6;-1:-1:-1;;;;;7506:13:0;;;2504:6;;7506:13;;7487:32;7483:1719;;;7548:76;7620:3;7548:67;7570:15;;7560:9;;:25;7559:55;;7600:14;;7559:55;;;7587:12;;7559:55;7548:6;;:10;:67::i;:::-;:71;;:76::i;:::-;7645:20;;7536:88;;-1:-1:-1;7645:20:0;;7641:508;;;7706:15;;-1:-1:-1;;;;;7692:30:0;;;7706:15;;7692:30;;;;:62;;-1:-1:-1;7740:13:0;;-1:-1:-1;;;;;7726:28:0;;;7740:13;;7726:28;;7692:62;7688:444;;;7846:9;7817:39;;;;:28;:39;;;;;;7890:12;-1:-1:-1;7781:250:0;;;;-1:-1:-1;;;7781:250:0;;9580:2:1;7781:250:0;;;9562:21:1;9619:2;9599:18;;;9592:30;9658:34;9638:18;;;9631:62;9729:34;9709:18;;;9702:62;-1:-1:-1;;;9780:19:1;;;9773:40;9830:19;;7781:250:0;9378:477:1;7781:250:0;8085:9;8056:39;;;;:28;:39;;;;;8098:12;8056:54;;7688:444;8177:13;;-1:-1:-1;;;;;8169:21:0;;;8177:13;;8169:21;:55;;;;-1:-1:-1;8208:15:0;;-1:-1:-1;;;;;8194:30:0;;;8208:15;;8194:30;;8169:55;:83;;;;-1:-1:-1;;;;;;8230:22:0;;;;;;:18;:22;;;;;;;;8228:24;8169:83;8165:313;;;8292:12;;8282:6;:22;;8274:60;;;;-1:-1:-1;;;8274:60:0;;10062:2:1;8274:60:0;;;10044:21:1;10101:2;10081:18;;;10074:30;10140:27;10120:18;;;10113:55;10185:18;;8274:60:0;9860:349:1;8274:60:0;8387:14;;8377:6;8361:13;8371:2;-1:-1:-1;;;;;5951:18:0;5924:7;5951:18;;;:9;:18;;;;;;;5858:119;8361:13;:22;;;;:::i;:::-;:40;;8353:79;;;;-1:-1:-1;;;8353:79:0;;10546:2:1;8353:79:0;;;10528:21:1;10585:2;10565:18;;;10558:30;10624:28;10604:18;;;10597:56;10670:18;;8353:79:0;10344:350:1;8353:79:0;8451:9;:11;;;:9;:11;;;:::i;:::-;;;;;;8165:313;8503:13;;-1:-1:-1;;;;;8497:19:0;;;8503:13;;8497:19;:43;;;;-1:-1:-1;;;;;;8520:20:0;;8535:4;8520:20;;8497:43;8494:174;;;8573:79;8648:3;8573:70;8595:16;;8585:9;;:26;8584:58;;8627:15;;8584:58;;;8613:13;;8573:6;;:10;:70::i;:79::-;8561:91;;8494:174;8733:4;8684:28;5951:18;;;:9;:18;;;;;;8759:6;;-1:-1:-1;;;8759:6:0;;;;8758:7;:32;;;;-1:-1:-1;8777:13:0;;-1:-1:-1;;;;;8769:21:0;;;8777:13;;8769:21;8758:32;:47;;;;-1:-1:-1;8794:11:0;;-1:-1:-1;;;8794:11:0;;;;8758:47;:89;;;;;8830:17;;8809:20;:38;8758:89;:121;;;;;8861:18;;8851:9;;:28;8758:121;8754:437;;;8900:67;8917:49;8921:6;8928:37;8932:20;8953:11;;8928:3;:37::i;:::-;8917:3;:49::i;:::-;8900:16;:67::i;:::-;9015:21;9079:17;9058:38;;9055:121;;;9121:35;9134:21;9121:12;:35::i;:::-;8881:310;8754:437;7521:1681;7483:1719;9217:11;;9214:161;;9285:4;9267:24;;;;:9;:24;;;;;;:39;;9296:9;9267:28;:39::i;:::-;9260:4;9242:24;;;;:9;:24;;;;;;;:64;;;;9324:39;;-1:-1:-1;;;;;9324:39:0;;;;;;;9353:9;1361:25:1;;1349:2;1334:18;;1215:177;9324:39:0;;;;;;;;9214:161;-1:-1:-1;;;;;9401:15:0;;;;;;:9;:15;;;;;;:27;;9421:6;9401:19;:27::i;:::-;-1:-1:-1;;;;;9385:15:0;;;;;;:9;:15;;;;;:43;9453:40;9471:21;:6;9482:9;9471:10;:21::i;:::-;-1:-1:-1;;;;;9453:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;9439:13:0;;;;;;;:9;:13;;;;;:54;;;;9509:41;;;9528:21;:6;9539:9;9528:10;:21::i;:::-;9509:41;;1361:25:1;;;1349:2;1334:18;9509:41:0;;;;;;;7213:2345;7144:2414;;;:::o;1331:190::-;1417:7;1453:12;1445:6;;;;1437:29;;;;-1:-1:-1;;;1437:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1477:9:0;1489:5;1493:1;1489;:5;:::i;:::-;1477:17;1331:190;-1:-1:-1;;;;;1331:190:0:o;9674:483::-;5087:6;:13;;-1:-1:-1;;;;5087:13:0;-1:-1:-1;;;5087:13:0;;;9776:16:::1;::::0;;9790:1:::1;9776:16:::0;;;;;::::1;::::0;;-1:-1:-1;;9776:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9776:16:0::1;9752:40;;9821:4;9803;9808:1;9803:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9803:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;9847:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;9847:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;9803:7;;9847:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9837:4;9842:1;9837:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9837:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;9912:15:::1;::::0;9880:62:::1;::::0;9897:4:::1;::::0;9912:15:::1;9930:11:::0;9880:8:::1;:62::i;:::-;9953:15;::::0;:196:::1;::::0;-1:-1:-1;;;9953:196:0;;-1:-1:-1;;;;;9953:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;10034:11;;9953:15:::1;::::0;10076:4;;10103::::1;::::0;10123:15:::1;::::0;9953:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5123:6:0;:14;;-1:-1:-1;;;;5123:14:0;;;-1:-1:-1;;;;9674:483:0:o;10373:92::-;10430:10;;:27;;:10;;;;-1:-1:-1;;;;;10430:10:0;;:27;;;;;;;;;;;;:10;:27;;;;;;;;;;;;;;;;;;;1529:246;1587:7;1611:1;1616;1611:6;1607:47;;-1:-1:-1;1641:1:0;1634:8;;1607:47;1664:9;1676:5;1680:1;1676;:5;:::i;:::-;1664:17;-1:-1:-1;1709:1:0;1700:5;1704:1;1664:17;1700:5;:::i;:::-;:10;1692:56;;;;-1:-1:-1;;;1692:56:0;;12645:2:1;1692:56:0;;;12627:21:1;12684:2;12664:18;;;12657:30;12723:34;12703:18;;;12696:62;-1:-1:-1;;;12774:18:1;;;12767:31;12815:19;;1692:56:0;12443:397:1;1692:56:0;1766:1;1529:246;-1:-1:-1;;;1529:246:0:o;1783:132::-;1841:7;1868:39;1872:1;1875;1868:39;;;;;;;;;;;;;;;;;:3;:39::i;9568:98::-;9625:7;9652:1;9650;:3;9649:9;;9657:1;9649:9;;;-1:-1:-1;9655:1:0;9568:98;-1:-1:-1;9568:98:0:o;1000:179::-;1058:7;;1090:5;1094:1;1090;:5;:::i;:::-;1078:17;;1119:1;1114;:6;;1106:46;;;;-1:-1:-1;;;1106:46:0;;13047:2:1;1106:46:0;;;13029:21:1;13086:2;13066:18;;;13059:30;13125:29;13105:18;;;13098:57;13172:18;;1106:46:0;12845:351:1;1187:136:0;1245:7;1272:43;1276:1;1279;1272:43;;;;;;;;;;;;;;;;;:3;:43::i;1923:189::-;2009:7;2044:12;2037:5;2029:28;;;;-1:-1:-1;;;2029:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2068:9:0;2080:5;2084:1;2080;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2047:247::-;2106:6;2159:2;2147:9;2138:7;2134:23;2130:32;2127:52;;;2175:1;2172;2165:12;2127:52;2214:9;2201:23;2233:31;2258:5;2233:31;:::i;2507:388::-;2575:6;2583;2636:2;2624:9;2615:7;2611:23;2607:32;2604:52;;;2652:1;2649;2642:12;2604:52;2691:9;2678:23;2710:31;2735:5;2710:31;:::i;:::-;2760:5;-1:-1:-1;2817:2:1;2802:18;;2789:32;2830:33;2789:32;2830:33;:::i;:::-;2882:7;2872:17;;;2507:388;;;;;:::o;2900:127::-;2961:10;2956:3;2952:20;2949:1;2942:31;2992:4;2989:1;2982:15;3016:4;3013:1;3006:15;3032:422;3121:1;3164:5;3121:1;3178:270;3199:7;3189:8;3186:21;3178:270;;;3258:4;3254:1;3250:6;3246:17;3240:4;3237:27;3234:53;;;3267:18;;:::i;:::-;3317:7;3307:8;3303:22;3300:55;;;3337:16;;;;3300:55;3416:22;;;;3376:15;;;;3178:270;;;3182:3;3032:422;;;;;:::o;3459:806::-;3508:5;3538:8;3528:80;;-1:-1:-1;3579:1:1;3593:5;;3528:80;3627:4;3617:76;;-1:-1:-1;3664:1:1;3678:5;;3617:76;3709:4;3727:1;3722:59;;;;3795:1;3790:130;;;;3702:218;;3722:59;3752:1;3743:10;;3766:5;;;3790:130;3827:3;3817:8;3814:17;3811:43;;;3834:18;;:::i;:::-;-1:-1:-1;;3890:1:1;3876:16;;3905:5;;3702:218;;4004:2;3994:8;3991:16;3985:3;3979:4;3976:13;3972:36;3966:2;3956:8;3953:16;3948:2;3942:4;3939:12;3935:35;3932:77;3929:159;;;-1:-1:-1;4041:19:1;;;4073:5;;3929:159;4120:34;4145:8;4139:4;4120:34;:::i;:::-;4190:6;4186:1;4182:6;4178:19;4169:7;4166:32;4163:58;;;4201:18;;:::i;:::-;4239:20;;3459:806;-1:-1:-1;;;3459:806:1:o;4270:140::-;4328:5;4357:47;4398:4;4388:8;4384:19;4378:4;4357:47;:::i;4415:168::-;4488:9;;;4519;;4536:15;;;4530:22;;4516:37;4506:71;;4557:18;;:::i;4588:356::-;4790:2;4772:21;;;4809:18;;;4802:30;4868:34;4863:2;4848:18;;4841:62;4935:2;4920:18;;4588:356::o;5301:251::-;5371:6;5424:2;5412:9;5403:7;5399:23;5395:32;5392:52;;;5440:1;5437;5430:12;5392:52;5472:9;5466:16;5491:31;5516:5;5491:31;:::i;6478:306::-;6566:6;6574;6582;6635:2;6623:9;6614:7;6610:23;6606:32;6603:52;;;6651:1;6648;6641:12;6603:52;6680:9;6674:16;6664:26;;6730:2;6719:9;6715:18;6709:25;6699:35;;6774:2;6763:9;6759:18;6753:25;6743:35;;6478:306;;;;;:::o;7068:277::-;7135:6;7188:2;7176:9;7167:7;7163:23;7159:32;7156:52;;;7204:1;7201;7194:12;7156:52;7236:9;7230:16;7289:5;7282:13;7275:21;7268:5;7265:32;7255:60;;7311:1;7308;7301:12;10214:125;10279:9;;;10300:10;;;10297:36;;;10313:18;;:::i;10699:135::-;10738:3;10759:17;;;10756:43;;10779:18;;:::i;:::-;-1:-1:-1;10826:1:1;10815:13;;10699:135::o;10839:128::-;10906:9;;;10927:11;;;10924:37;;;10941:18;;:::i;11104:127::-;11165:10;11160:3;11156:20;11153:1;11146:31;11196:4;11193:1;11186:15;11220:4;11217:1;11210:15;11236:980;11498:4;11546:3;11535:9;11531:19;11577:6;11566:9;11559:25;11603:2;11641:6;11636:2;11625:9;11621:18;11614:34;11684:3;11679:2;11668:9;11664:18;11657:31;11708:6;11743;11737:13;11774:6;11766;11759:22;11812:3;11801:9;11797:19;11790:26;;11851:2;11843:6;11839:15;11825:29;;11872:1;11882:195;11896:6;11893:1;11890:13;11882:195;;;11961:13;;-1:-1:-1;;;;;11957:39:1;11945:52;;12052:15;;;;12017:12;;;;11993:1;11911:9;11882:195;;;-1:-1:-1;;;;;;;12133:32:1;;;;12128:2;12113:18;;12106:60;-1:-1:-1;;;12197:3:1;12182:19;12175:35;12094:3;11236:980;-1:-1:-1;;;11236:980:1:o;12221:217::-;12261:1;12287;12277:132;;12331:10;12326:3;12322:20;12319:1;12312:31;12366:4;12363:1;12356:15;12394:4;12391:1;12384:15;12277:132;-1:-1:-1;12423:9:1;;12221:217::o

Swarm Source

ipfs://50958df86865247554190ebce4a0bd509e9753acff07afdb08e55118c069e371

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.