ETH Price: $2,901.16 (-10.48%)
Gas: 30 Gwei

Contract

0x3479B4790A696754BF593FebB71D5d2Ef31a94EA
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Transaction Hash
Method
Block
From
To
Value
Approve176668342023-07-11 0:31:59360 days ago1689035519IN
0x3479B479...Ef31a94EA
0 ETH0.0004337317.85122167
Transfer175338652023-06-22 8:05:47378 days ago1687421147IN
0x3479B479...Ef31a94EA
0 ETH0.0026214813.87393948
Approve163247092023-01-03 7:17:35548 days ago1672730255IN
0x3479B479...Ef31a94EA
0 ETH0.000385214.64843297
Approve163247052023-01-03 7:16:47548 days ago1672730207IN
0x3479B479...Ef31a94EA
0 ETH0.000365615.0471312
Approve163208322023-01-02 18:18:47549 days ago1672683527IN
0x3479B479...Ef31a94EA
0 ETH0.0010520922.5863138
Approve163204412023-01-02 16:59:59549 days ago1672678799IN
0x3479B479...Ef31a94EA
0 ETH0.0007800416.74603305
Approve163200522023-01-02 15:41:35549 days ago1672674095IN
0x3479B479...Ef31a94EA
0 ETH0.0008207117.61908016
Approve163200482023-01-02 15:40:47549 days ago1672674047IN
0x3479B479...Ef31a94EA
0 ETH0.0009048919.42632528
Approve162021122022-12-17 4:44:59565 days ago1671252299IN
0x3479B479...Ef31a94EA
0 ETH0.0003564514.67088402
Approve160968592022-12-02 11:35:11580 days ago1669980911IN
0x3479B479...Ef31a94EA
0 ETH0.0005534511.8815707
Approve160559622022-11-26 18:30:47586 days ago1669487447IN
0x3479B479...Ef31a94EA
0 ETH0.0005292811.36271659
Approve160313612022-11-23 7:59:59589 days ago1669190399IN
0x3479B479...Ef31a94EA
0 ETH0.0006918214.85203305
Approve159906612022-11-17 15:33:23595 days ago1668699203IN
0x3479B479...Ef31a94EA
0 ETH0.0012157926.10062848
Approve159794782022-11-16 2:02:23597 days ago1668564143IN
0x3479B479...Ef31a94EA
0 ETH0.0008829318.95487184
Approve159688392022-11-14 14:21:59598 days ago1668435719IN
0x3479B479...Ef31a94EA
0 ETH0.0009377120.13089428
Approve159648542022-11-14 1:00:47599 days ago1668387647IN
0x3479B479...Ef31a94EA
0 ETH0.0007322615.72034351
Approve159591272022-11-13 5:51:35599 days ago1668318695IN
0x3479B479...Ef31a94EA
0 ETH0.0005162911.08372049
Approve159536712022-11-12 11:35:35600 days ago1668252935IN
0x3479B479...Ef31a94EA
0 ETH0.0006757714.50757952
Approve159523642022-11-12 7:13:11600 days ago1668237191IN
0x3479B479...Ef31a94EA
0 ETH0.0008314717.85
Approve159495442022-11-11 21:46:11601 days ago1668203171IN
0x3479B479...Ef31a94EA
0 ETH0.0007829816.80908686
Approve159482462022-11-11 17:24:47601 days ago1668187487IN
0x3479B479...Ef31a94EA
0 ETH0.0011719925.1603759
Approve159460742022-11-11 10:06:35601 days ago1668161195IN
0x3479B479...Ef31a94EA
0 ETH0.0006695814.37453308
Approve159431502022-11-11 0:18:11602 days ago1668125891IN
0x3479B479...Ef31a94EA
0 ETH0.0008192417.58762162
Approve159428102022-11-10 23:09:47602 days ago1668121787IN
0x3479B479...Ef31a94EA
0 ETH0.0007809216.76489811
Approve159422032022-11-10 21:08:11602 days ago1668114491IN
0x3479B479...Ef31a94EA
0 ETH0.0015651233.6
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To Value
175338652023-06-22 8:05:47378 days ago1687421147
0x3479B479...Ef31a94EA
0.01285856 ETH
175338652023-06-22 8:05:47378 days ago1687421147
0x3479B479...Ef31a94EA
0.01285856 ETH
163266842023-01-03 13:53:47548 days ago1672754027
0x3479B479...Ef31a94EA
0.00165518 ETH
163266842023-01-03 13:53:47548 days ago1672754027
0x3479B479...Ef31a94EA
0.00165518 ETH
163214572023-01-02 20:24:23549 days ago1672691063
0x3479B479...Ef31a94EA
0.0025526 ETH
163214572023-01-02 20:24:23549 days ago1672691063
0x3479B479...Ef31a94EA
0.0025526 ETH
163204432023-01-02 17:00:23549 days ago1672678823
0x3479B479...Ef31a94EA
0.00211816 ETH
163204432023-01-02 17:00:23549 days ago1672678823
0x3479B479...Ef31a94EA
0.00211816 ETH
163201542023-01-02 16:01:59549 days ago1672675319
0x3479B479...Ef31a94EA
0.00276349 ETH
163201542023-01-02 16:01:59549 days ago1672675319
0x3479B479...Ef31a94EA
0.00276349 ETH
160968672022-12-02 11:36:47580 days ago1669981007
0x3479B479...Ef31a94EA
0.00026444 ETH
160968672022-12-02 11:36:47580 days ago1669981007
0x3479B479...Ef31a94EA
0.00026444 ETH
160559632022-11-26 18:30:59586 days ago1669487459
0x3479B479...Ef31a94EA
0.00005687 ETH
160559632022-11-26 18:30:59586 days ago1669487459
0x3479B479...Ef31a94EA
0.00005687 ETH
160510992022-11-26 2:12:35587 days ago1669428755
0x3479B479...Ef31a94EA
0.00015305 ETH
160510992022-11-26 2:12:35587 days ago1669428755
0x3479B479...Ef31a94EA
0.00015305 ETH
160357532022-11-23 22:46:35589 days ago1669243595
0x3479B479...Ef31a94EA
0.00025536 ETH
160357532022-11-23 22:46:35589 days ago1669243595
0x3479B479...Ef31a94EA
0.00025536 ETH
160214722022-11-21 22:48:35591 days ago1669070915
0x3479B479...Ef31a94EA
0.00052174 ETH
160214722022-11-21 22:48:35591 days ago1669070915
0x3479B479...Ef31a94EA
0.00052174 ETH
159906642022-11-17 15:33:59595 days ago1668699239
0x3479B479...Ef31a94EA
0.00030892 ETH
159906642022-11-17 15:33:59595 days ago1668699239
0x3479B479...Ef31a94EA
0.00030892 ETH
159816172022-11-16 9:13:23596 days ago1668590003
0x3479B479...Ef31a94EA
0.00000873 ETH
159816172022-11-16 9:13:23596 days ago1668590003
0x3479B479...Ef31a94EA
0.00000873 ETH
159797192022-11-16 2:50:59597 days ago1668567059
0x3479B479...Ef31a94EA
0.0003048 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
SOLANA2POINT0

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-11-10
*/

pragma solidity 0.8.7;
// SPDX-License-Identifier: UNLICENSED
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;
    address private _previousOwner;
    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 SOLANA2POINT0 is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping (address => uint) private cooldown;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1_000_000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;

    uint256 private _feeAddr1;
    uint256 private _feeAddr2;
    uint256 private _initialTax;
    uint256 private _finalTax;
    uint256 private _reduceTaxCountdown;
    address payable private _feeAddrWallet;

    string private constant _name = "Solana 2.0 ";
    string private constant _symbol = "SOL 2.0";
    uint8 private constant _decimals = 9;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private cooldownEnabled = false;
    uint256 private _maxTxAmount = 1_000_000 * 10**9;
    uint256 private _maxWalletSize = 20_000 * 10**9;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _feeAddrWallet = payable(0xcbBe789e7D41447A0D71541dFA5dba2673253707);
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_feeAddrWallet] = true;
        _initialTax=2;
        _finalTax=2;
        _reduceTaxCountdown=60;

        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 tokenFromReflection(_rOwned[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 setCooldownEnabled(bool onoff) external onlyOwner() {
        cooldownEnabled = onoff;
    }

    function tokenFromReflection(uint256 rAmount) private view returns(uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate =  _getRate();
        return rAmount.div(currentRate);
    }

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


        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            _feeAddr1 = 0;
            _feeAddr2 = (_reduceTaxCountdown==0)?_finalTax:_initialTax;
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && cooldownEnabled) {
                // Cooldown
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                if(_reduceTaxCountdown>0){_reduceTaxCountdown--;}
            }


            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled && contractTokenBalance>0) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }else{
          _feeAddr1 = 0;
          _feeAddr2 = 0;
        }

        _tokenTransfer(from,to,amount);
    }

    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 addBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function delBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }


    function removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
    }

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

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _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);
        swapEnabled = true;
        cooldownEnabled = true;

        tradingOpen = true;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }

    function _tokenTransfer(address sender, address recipient, uint256 amount) private {
        _transferStandard(sender, recipient, amount);
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate =  _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}

    function manualswap() external {
        require(_msgSender() == _feeAddrWallet);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function manualsend() external {
        require(_msgSender() == _feeAddrWallet);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }


    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _feeAddr1, _feeAddr2);
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(uint256 tAmount, uint256 taxFee, uint256 TeamFee) private pure returns (uint256, uint256, uint256) {
        uint256 tFee = tAmount.mul(taxFee).div(100);
        uint256 tTeam = tAmount.mul(TeamFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

    function _getRValues(uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }

	function _getRate() private view returns(uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns(uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }
}

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":[{"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":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","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"}]

60806040526200001966038d7ea4c680006000196200020a565b6200002790600019620001e4565b6008556011805462ffffff60a81b1916905566038d7ea4c680006012556512309ce540006013553480156200005b57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600f80546001600160a01b03191673cbbe789e7d41447a0d71541dfa5dba267325370717905560085460026000620000d23390565b6001600160a01b03166001600160a01b03168152602001908152602001600020819055506001600560006200010c620001d560201b60201c565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526005909352818320805485166001908117909155600f549091168352912080549092161790556002600c819055600d55603c600e556200017a3390565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef66038d7ea4c68000604051620001c791815260200190565b60405180910390a36200022d565b6000546001600160a01b031690565b6000828210156200020557634e487b7160e01b600052601160045260246000fd5b500390565b6000826200022857634e487b7160e01b600052601260045260246000fd5b500690565b611a64806200023d6000396000f3fe60806040526004361061010d5760003560e01c8063715018a611610095578063a9059cbb11610064578063a9059cbb146102e8578063c3c8cd8014610308578063c9567bf91461031d578063d34628cc14610332578063dd62ed3e1461035257600080fd5b8063715018a614610266578063751039fc1461027b5780638da5cb5b1461029057806395d89b41146102b857600080fd5b8063273123b7116100dc578063273123b7146101d3578063313ce567146101f55780635932ead1146102115780636fc3eaec1461023157806370a082311461024657600080fd5b806306fdde0314610119578063095ea7b31461015f57806318160ddd1461018f57806323b872dd146101b357600080fd5b3661011457005b600080fd5b34801561012557600080fd5b5060408051808201909152600b81526a029b7b630b73090191718160ad1b60208201525b6040516101569190611804565b60405180910390f35b34801561016b57600080fd5b5061017f61017a3660046116a4565b610398565b6040519015158152602001610156565b34801561019b57600080fd5b5066038d7ea4c680005b604051908152602001610156565b3480156101bf57600080fd5b5061017f6101ce366004611663565b6103af565b3480156101df57600080fd5b506101f36101ee3660046115f0565b610418565b005b34801561020157600080fd5b5060405160098152602001610156565b34801561021d57600080fd5b506101f361022c36600461179c565b61046c565b34801561023d57600080fd5b506101f36104b4565b34801561025257600080fd5b506101a56102613660046115f0565b6104e1565b34801561027257600080fd5b506101f3610503565b34801561028757600080fd5b506101f3610577565b34801561029c57600080fd5b506000546040516001600160a01b039091168152602001610156565b3480156102c457600080fd5b506040805180820190915260078152660534f4c20322e360cc1b6020820152610149565b3480156102f457600080fd5b5061017f6103033660046116a4565b6105b3565b34801561031457600080fd5b506101f36105c0565b34801561032957600080fd5b506101f36105f6565b34801561033e57600080fd5b506101f361034d3660046116d0565b6109af565b34801561035e57600080fd5b506101a561036d36600461162a565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b60006103a5338484610a41565b5060015b92915050565b60006103bc848484610b65565b61040e843361040985604051806060016040528060288152602001611a07602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190610efc565b610a41565b5060019392505050565b6000546001600160a01b0316331461044b5760405162461bcd60e51b815260040161044290611859565b60405180910390fd5b6001600160a01b03166000908152600660205260409020805460ff19169055565b6000546001600160a01b031633146104965760405162461bcd60e51b815260040161044290611859565b60118054911515600160b81b0260ff60b81b19909216919091179055565b600f546001600160a01b0316336001600160a01b0316146104d457600080fd5b476104de81610f36565b50565b6001600160a01b0381166000908152600260205260408120546103a990610f70565b6000546001600160a01b0316331461052d5760405162461bcd60e51b815260040161044290611859565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146105a15760405162461bcd60e51b815260040161044290611859565b66038d7ea4c680006012819055601355565b60006103a5338484610b65565b600f546001600160a01b0316336001600160a01b0316146105e057600080fd5b60006105eb306104e1565b90506104de81610ff4565b6000546001600160a01b031633146106205760405162461bcd60e51b815260040161044290611859565b601154600160a01b900460ff161561067a5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610442565b601080546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556106b5308266038d7ea4c68000610a41565b806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156106ee57600080fd5b505afa158015610702573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610726919061160d565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561076e57600080fd5b505afa158015610782573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a6919061160d565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156107ee57600080fd5b505af1158015610802573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610826919061160d565b601180546001600160a01b0319166001600160a01b039283161790556010541663f305d7194730610856816104e1565b60008061086b6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b1580156108ce57600080fd5b505af11580156108e2573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061090791906117d6565b50506011805463ffff00ff60a01b198116630101000160a01b1790915560105460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b390604401602060405180830381600087803b15801561097357600080fd5b505af1158015610987573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ab91906117b9565b5050565b6000546001600160a01b031633146109d95760405162461bcd60e51b815260040161044290611859565b60005b81518110156109ab576001600660008484815181106109fd576109fd6119b7565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610a3981611986565b9150506109dc565b6001600160a01b038316610aa35760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610442565b6001600160a01b038216610b045760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610442565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610bc95760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610442565b6001600160a01b038216610c2b5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610442565b60008111610c8d5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610442565b6000546001600160a01b03848116911614801590610cb957506000546001600160a01b03838116911614155b15610ee1576001600160a01b03831660009081526006602052604090205460ff16158015610d0057506001600160a01b03821660009081526006602052604090205460ff16155b610d0957600080fd5b6000600a55600e5415610d1e57600c54610d22565b600d545b600b556011546001600160a01b038481169116148015610d5057506010546001600160a01b03838116911614155b8015610d7557506001600160a01b03821660009081526005602052604090205460ff16155b8015610d8a5750601154600160b81b900460ff165b15610e6457601254811115610de15760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610442565b60135481610dee846104e1565b610df891906118ff565b1115610e465760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610442565b600e5415610e6457600e8054906000610e5e8361196f565b91905055505b6000610e6f306104e1565b601154909150600160a81b900460ff16158015610e9a57506011546001600160a01b03858116911614155b8015610eaf5750601154600160b01b900460ff165b8015610ebb5750600081115b15610edb57610ec981610ff4565b478015610ed957610ed947610f36565b505b50610eec565b6000600a819055600b555b610ef783838361117d565b505050565b60008184841115610f205760405162461bcd60e51b81526004016104429190611804565b506000610f2d8486611958565b95945050505050565b600f546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156109ab573d6000803e3d6000fd5b6000600854821115610fd75760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610442565b6000610fe1611188565b9050610fed83826111ab565b9392505050565b6011805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061103c5761103c6119b7565b6001600160a01b03928316602091820292909201810191909152601054604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561109057600080fd5b505afa1580156110a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c8919061160d565b816001815181106110db576110db6119b7565b6001600160a01b0392831660209182029290920101526010546111019130911684610a41565b60105460405163791ac94760e01b81526001600160a01b039091169063791ac9479061113a90859060009086903090429060040161188e565b600060405180830381600087803b15801561115457600080fd5b505af1158015611168573d6000803e3d6000fd5b50506011805460ff60a81b1916905550505050565b610ef78383836111ed565b60008060006111956112e4565b90925090506111a482826111ab565b9250505090565b6000610fed83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611322565b6000806000806000806111ff87611350565b6001600160a01b038f16600090815260026020526040902054959b5093995091975095509350915061123190876113ad565b6001600160a01b03808b1660009081526002602052604080822093909355908a168152205461126090866113ef565b6001600160a01b0389166000908152600260205260409020556112828161144e565b61128c8483611498565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516112d191815260200190565b60405180910390a3505050505050505050565b600854600090819066038d7ea4c680006112fe82826111ab565b8210156113195750506008549266038d7ea4c6800092509050565b90939092509050565b600081836113435760405162461bcd60e51b81526004016104429190611804565b506000610f2d8486611917565b600080600080600080600080600061136d8a600a54600b546114bc565b925092509250600061137d611188565b905060008060006113908e878787611511565b919e509c509a509598509396509194505050505091939550919395565b6000610fed83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610efc565b6000806113fc83856118ff565b905083811015610fed5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610442565b6000611458611188565b905060006114668383611561565b3060009081526002602052604090205490915061148390826113ef565b30600090815260026020526040902055505050565b6008546114a590836113ad565b6008556009546114b590826113ef565b6009555050565b60008080806114d660646114d08989611561565b906111ab565b905060006114e960646114d08a89611561565b90506000611501826114fb8b866113ad565b906113ad565b9992985090965090945050505050565b60008080806115208886611561565b9050600061152e8887611561565b9050600061153c8888611561565b9050600061154e826114fb86866113ad565b939b939a50919850919650505050505050565b600082611570575060006103a9565b600061157c8385611939565b9050826115898583611917565b14610fed5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610442565b80356115eb816119e3565b919050565b60006020828403121561160257600080fd5b8135610fed816119e3565b60006020828403121561161f57600080fd5b8151610fed816119e3565b6000806040838503121561163d57600080fd5b8235611648816119e3565b91506020830135611658816119e3565b809150509250929050565b60008060006060848603121561167857600080fd5b8335611683816119e3565b92506020840135611693816119e3565b929592945050506040919091013590565b600080604083850312156116b757600080fd5b82356116c2816119e3565b946020939093013593505050565b600060208083850312156116e357600080fd5b823567ffffffffffffffff808211156116fb57600080fd5b818501915085601f83011261170f57600080fd5b813581811115611721576117216119cd565b8060051b604051601f19603f83011681018181108582111715611746576117466119cd565b604052828152858101935084860182860187018a101561176557600080fd5b600095505b8386101561178f5761177b816115e0565b85526001959095019493860193860161176a565b5098975050505050505050565b6000602082840312156117ae57600080fd5b8135610fed816119f8565b6000602082840312156117cb57600080fd5b8151610fed816119f8565b6000806000606084860312156117eb57600080fd5b8351925060208401519150604084015190509250925092565b600060208083528351808285015260005b8181101561183157858101830151858201604001528201611815565b81811115611843576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118de5784516001600160a01b0316835293830193918301916001016118b9565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611912576119126119a1565b500190565b60008261193457634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611953576119536119a1565b500290565b60008282101561196a5761196a6119a1565b500390565b60008161197e5761197e6119a1565b506000190190565b600060001982141561199a5761199a6119a1565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146104de57600080fd5b80151581146104de57600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220e888727430546424391a4b12d6c2fcb87502daa9ec503ae4de87edb130cee90964736f6c63430008070033

Deployed Bytecode

0x60806040526004361061010d5760003560e01c8063715018a611610095578063a9059cbb11610064578063a9059cbb146102e8578063c3c8cd8014610308578063c9567bf91461031d578063d34628cc14610332578063dd62ed3e1461035257600080fd5b8063715018a614610266578063751039fc1461027b5780638da5cb5b1461029057806395d89b41146102b857600080fd5b8063273123b7116100dc578063273123b7146101d3578063313ce567146101f55780635932ead1146102115780636fc3eaec1461023157806370a082311461024657600080fd5b806306fdde0314610119578063095ea7b31461015f57806318160ddd1461018f57806323b872dd146101b357600080fd5b3661011457005b600080fd5b34801561012557600080fd5b5060408051808201909152600b81526a029b7b630b73090191718160ad1b60208201525b6040516101569190611804565b60405180910390f35b34801561016b57600080fd5b5061017f61017a3660046116a4565b610398565b6040519015158152602001610156565b34801561019b57600080fd5b5066038d7ea4c680005b604051908152602001610156565b3480156101bf57600080fd5b5061017f6101ce366004611663565b6103af565b3480156101df57600080fd5b506101f36101ee3660046115f0565b610418565b005b34801561020157600080fd5b5060405160098152602001610156565b34801561021d57600080fd5b506101f361022c36600461179c565b61046c565b34801561023d57600080fd5b506101f36104b4565b34801561025257600080fd5b506101a56102613660046115f0565b6104e1565b34801561027257600080fd5b506101f3610503565b34801561028757600080fd5b506101f3610577565b34801561029c57600080fd5b506000546040516001600160a01b039091168152602001610156565b3480156102c457600080fd5b506040805180820190915260078152660534f4c20322e360cc1b6020820152610149565b3480156102f457600080fd5b5061017f6103033660046116a4565b6105b3565b34801561031457600080fd5b506101f36105c0565b34801561032957600080fd5b506101f36105f6565b34801561033e57600080fd5b506101f361034d3660046116d0565b6109af565b34801561035e57600080fd5b506101a561036d36600461162a565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b60006103a5338484610a41565b5060015b92915050565b60006103bc848484610b65565b61040e843361040985604051806060016040528060288152602001611a07602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190610efc565b610a41565b5060019392505050565b6000546001600160a01b0316331461044b5760405162461bcd60e51b815260040161044290611859565b60405180910390fd5b6001600160a01b03166000908152600660205260409020805460ff19169055565b6000546001600160a01b031633146104965760405162461bcd60e51b815260040161044290611859565b60118054911515600160b81b0260ff60b81b19909216919091179055565b600f546001600160a01b0316336001600160a01b0316146104d457600080fd5b476104de81610f36565b50565b6001600160a01b0381166000908152600260205260408120546103a990610f70565b6000546001600160a01b0316331461052d5760405162461bcd60e51b815260040161044290611859565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146105a15760405162461bcd60e51b815260040161044290611859565b66038d7ea4c680006012819055601355565b60006103a5338484610b65565b600f546001600160a01b0316336001600160a01b0316146105e057600080fd5b60006105eb306104e1565b90506104de81610ff4565b6000546001600160a01b031633146106205760405162461bcd60e51b815260040161044290611859565b601154600160a01b900460ff161561067a5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610442565b601080546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556106b5308266038d7ea4c68000610a41565b806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156106ee57600080fd5b505afa158015610702573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610726919061160d565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561076e57600080fd5b505afa158015610782573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a6919061160d565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156107ee57600080fd5b505af1158015610802573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610826919061160d565b601180546001600160a01b0319166001600160a01b039283161790556010541663f305d7194730610856816104e1565b60008061086b6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b1580156108ce57600080fd5b505af11580156108e2573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061090791906117d6565b50506011805463ffff00ff60a01b198116630101000160a01b1790915560105460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b390604401602060405180830381600087803b15801561097357600080fd5b505af1158015610987573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ab91906117b9565b5050565b6000546001600160a01b031633146109d95760405162461bcd60e51b815260040161044290611859565b60005b81518110156109ab576001600660008484815181106109fd576109fd6119b7565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610a3981611986565b9150506109dc565b6001600160a01b038316610aa35760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610442565b6001600160a01b038216610b045760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610442565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610bc95760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610442565b6001600160a01b038216610c2b5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610442565b60008111610c8d5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610442565b6000546001600160a01b03848116911614801590610cb957506000546001600160a01b03838116911614155b15610ee1576001600160a01b03831660009081526006602052604090205460ff16158015610d0057506001600160a01b03821660009081526006602052604090205460ff16155b610d0957600080fd5b6000600a55600e5415610d1e57600c54610d22565b600d545b600b556011546001600160a01b038481169116148015610d5057506010546001600160a01b03838116911614155b8015610d7557506001600160a01b03821660009081526005602052604090205460ff16155b8015610d8a5750601154600160b81b900460ff165b15610e6457601254811115610de15760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610442565b60135481610dee846104e1565b610df891906118ff565b1115610e465760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610442565b600e5415610e6457600e8054906000610e5e8361196f565b91905055505b6000610e6f306104e1565b601154909150600160a81b900460ff16158015610e9a57506011546001600160a01b03858116911614155b8015610eaf5750601154600160b01b900460ff165b8015610ebb5750600081115b15610edb57610ec981610ff4565b478015610ed957610ed947610f36565b505b50610eec565b6000600a819055600b555b610ef783838361117d565b505050565b60008184841115610f205760405162461bcd60e51b81526004016104429190611804565b506000610f2d8486611958565b95945050505050565b600f546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156109ab573d6000803e3d6000fd5b6000600854821115610fd75760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610442565b6000610fe1611188565b9050610fed83826111ab565b9392505050565b6011805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061103c5761103c6119b7565b6001600160a01b03928316602091820292909201810191909152601054604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561109057600080fd5b505afa1580156110a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c8919061160d565b816001815181106110db576110db6119b7565b6001600160a01b0392831660209182029290920101526010546111019130911684610a41565b60105460405163791ac94760e01b81526001600160a01b039091169063791ac9479061113a90859060009086903090429060040161188e565b600060405180830381600087803b15801561115457600080fd5b505af1158015611168573d6000803e3d6000fd5b50506011805460ff60a81b1916905550505050565b610ef78383836111ed565b60008060006111956112e4565b90925090506111a482826111ab565b9250505090565b6000610fed83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611322565b6000806000806000806111ff87611350565b6001600160a01b038f16600090815260026020526040902054959b5093995091975095509350915061123190876113ad565b6001600160a01b03808b1660009081526002602052604080822093909355908a168152205461126090866113ef565b6001600160a01b0389166000908152600260205260409020556112828161144e565b61128c8483611498565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516112d191815260200190565b60405180910390a3505050505050505050565b600854600090819066038d7ea4c680006112fe82826111ab565b8210156113195750506008549266038d7ea4c6800092509050565b90939092509050565b600081836113435760405162461bcd60e51b81526004016104429190611804565b506000610f2d8486611917565b600080600080600080600080600061136d8a600a54600b546114bc565b925092509250600061137d611188565b905060008060006113908e878787611511565b919e509c509a509598509396509194505050505091939550919395565b6000610fed83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610efc565b6000806113fc83856118ff565b905083811015610fed5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610442565b6000611458611188565b905060006114668383611561565b3060009081526002602052604090205490915061148390826113ef565b30600090815260026020526040902055505050565b6008546114a590836113ad565b6008556009546114b590826113ef565b6009555050565b60008080806114d660646114d08989611561565b906111ab565b905060006114e960646114d08a89611561565b90506000611501826114fb8b866113ad565b906113ad565b9992985090965090945050505050565b60008080806115208886611561565b9050600061152e8887611561565b9050600061153c8888611561565b9050600061154e826114fb86866113ad565b939b939a50919850919650505050505050565b600082611570575060006103a9565b600061157c8385611939565b9050826115898583611917565b14610fed5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610442565b80356115eb816119e3565b919050565b60006020828403121561160257600080fd5b8135610fed816119e3565b60006020828403121561161f57600080fd5b8151610fed816119e3565b6000806040838503121561163d57600080fd5b8235611648816119e3565b91506020830135611658816119e3565b809150509250929050565b60008060006060848603121561167857600080fd5b8335611683816119e3565b92506020840135611693816119e3565b929592945050506040919091013590565b600080604083850312156116b757600080fd5b82356116c2816119e3565b946020939093013593505050565b600060208083850312156116e357600080fd5b823567ffffffffffffffff808211156116fb57600080fd5b818501915085601f83011261170f57600080fd5b813581811115611721576117216119cd565b8060051b604051601f19603f83011681018181108582111715611746576117466119cd565b604052828152858101935084860182860187018a101561176557600080fd5b600095505b8386101561178f5761177b816115e0565b85526001959095019493860193860161176a565b5098975050505050505050565b6000602082840312156117ae57600080fd5b8135610fed816119f8565b6000602082840312156117cb57600080fd5b8151610fed816119f8565b6000806000606084860312156117eb57600080fd5b8351925060208401519150604084015190509250925092565b600060208083528351808285015260005b8181101561183157858101830151858201604001528201611815565b81811115611843576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118de5784516001600160a01b0316835293830193918301916001016118b9565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611912576119126119a1565b500190565b60008261193457634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611953576119536119a1565b500290565b60008282101561196a5761196a6119a1565b500390565b60008161197e5761197e6119a1565b506000190190565b600060001982141561199a5761199a6119a1565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146104de57600080fd5b80151581146104de57600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220e888727430546424391a4b12d6c2fcb87502daa9ec503ae4de87edb130cee90964736f6c63430008070033

Deployed Bytecode Sourcemap

3512:10375:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5428:83;;;;;;;;;;-1:-1:-1;5498:5:0;;;;;;;;;;;;-1:-1:-1;;;5498:5:0;;;;5428:83;;;;;;;:::i;:::-;;;;;;;;6280:161;;;;;;;;;;-1:-1:-1;6280:161:0;;;;;:::i;:::-;;:::i;:::-;;;5352:14:1;;5345:22;5327:41;;5315:2;5300:18;6280:161:0;5187:187:1;5705:95:0;;;;;;;;;;-1:-1:-1;4018:17:0;5705:95;;;10746:25:1;;;10734:2;10719:18;5705:95:0;10600:177:1;6449:313:0;;;;;;;;;;-1:-1:-1;6449:313:0;;;;;:::i;:::-;;:::i;9630:88::-;;;;;;;;;;-1:-1:-1;9630:88:0;;;;;:::i;:::-;;:::i;:::-;;5614:83;;;;;;;;;;-1:-1:-1;5614:83:0;;4489:1;11909:36:1;;11897:2;11882:18;5614:83:0;11767:184:1;6770:103:0;;;;;;;;;;-1:-1:-1;6770:103:0;;;;;:::i;:::-;;:::i;12002:193::-;;;;;;;;;;;;;:::i;5808:138::-;;;;;;;;;;-1:-1:-1;5808:138:0;;;;;:::i;:::-;;:::i;2593:148::-;;;;;;;;;;;;;:::i;9728:118::-;;;;;;;;;;;;;:::i;2379:79::-;;;;;;;;;;-1:-1:-1;2417:7:0;2444:6;2379:79;;-1:-1:-1;;;;;2444:6:0;;;3925:51:1;;3913:2;3898:18;2379:79:0;3779:203:1;5519:87:0;;;;;;;;;;-1:-1:-1;5591:7:0;;;;;;;;;;;;-1:-1:-1;;;5591:7:0;;;;5519:87;;5954:167;;;;;;;;;;-1:-1:-1;5954:167:0;;;;;:::i;:::-;;:::i;11800:194::-;;;;;;;;;;;;;:::i;9958:773::-;;;;;;;;;;;;;:::i;9458:164::-;;;;;;;;;;-1:-1:-1;9458:164:0;;;;;:::i;:::-;;:::i;6129:143::-;;;;;;;;;;-1:-1:-1;6129:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6237:18:0;;;6210:7;6237:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6129:143;6280:161;6355:4;6372:39;177:10;6395:7;6404:6;6372:8;:39::i;:::-;-1:-1:-1;6429:4:0;6280:161;;;;;:::o;6449:313::-;6547:4;6564:36;6574:6;6582:9;6593:6;6564:9;:36::i;:::-;6611:121;6620:6;177:10;6642:89;6680:6;6642:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6642:19:0;;;;;;:11;:19;;;;;;;;177:10;6642:33;;;;;;;;;;:37;:89::i;:::-;6611:8;:121::i;:::-;-1:-1:-1;6750:4:0;6449:313;;;;;:::o;9630:88::-;2506:6;;-1:-1:-1;;;;;2506:6:0;177:10;2506:22;2498:67;;;;-1:-1:-1;;;2498:67:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;9690:12:0::1;9705:5;9690:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;9690:20:0::1;::::0;;9630:88::o;6770:103::-;2506:6;;-1:-1:-1;;;;;2506:6:0;177:10;2506:22;2498:67;;;;-1:-1:-1;;;2498:67:0;;;;;;;:::i;:::-;6842:15:::1;:23:::0;;;::::1;;-1:-1:-1::0;;;6842:23:0::1;-1:-1:-1::0;;;;6842:23:0;;::::1;::::0;;;::::1;::::0;;6770:103::o;12002:193::-;12068:14;;-1:-1:-1;;;;;12068:14:0;177:10;-1:-1:-1;;;;;12052:30:0;;12044:39;;;;;;12123:21;12155:32;12123:21;12155:12;:32::i;:::-;12033:162;12002:193::o;5808:138::-;-1:-1:-1;;;;;5921:16:0;;5874:7;5921:16;;;:7;:16;;;;;;5901:37;;:19;:37::i;2593:148::-;2506:6;;-1:-1:-1;;;;;2506:6:0;177:10;2506:22;2498:67;;;;-1:-1:-1;;;2498:67:0;;;;;;;:::i;:::-;2700:1:::1;2684:6:::0;;2663:40:::1;::::0;-1:-1:-1;;;;;2684:6:0;;::::1;::::0;2663:40:::1;::::0;2700:1;;2663:40:::1;2731:1;2714:19:::0;;-1:-1:-1;;;;;;2714:19:0::1;::::0;;2593:148::o;9728:118::-;2506:6;;-1:-1:-1;;;;;2506:6:0;177:10;2506:22;2498:67;;;;-1:-1:-1;;;2498:67:0;;;;;;;:::i;:::-;4018:17:::1;9781:12;:22:::0;;;9814:14:::1;:24:::0;9728:118::o;5954:167::-;6032:4;6049:42;177:10;6073:9;6084:6;6049:9;:42::i;11800:194::-;11866:14;;-1:-1:-1;;;;;11866:14:0;177:10;-1:-1:-1;;;;;11850:30:0;;11842:39;;;;;;11892:23;11918:24;11936:4;11918:9;:24::i;:::-;11892:50;;11953:33;11970:15;11953:16;:33::i;9958:773::-;2506:6;;-1:-1:-1;;;;;2506:6:0;177:10;2506:22;2498:67;;;;-1:-1:-1;;;2498:67:0;;;;;;;:::i;:::-;10022:11:::1;::::0;-1:-1:-1;;;10022:11:0;::::1;;;10021:12;10013:47;;;::::0;-1:-1:-1;;;10013:47:0;;10450:2:1;10013:47:0::1;::::0;::::1;10432:21:1::0;10489:2;10469:18;;;10462:30;10528:25;10508:18;;;10501:53;10571:18;;10013:47:0::1;10248:347:1::0;10013:47:0::1;10182:15;:34:::0;;-1:-1:-1;;;;;;10182:34:0::1;10128:42;10182:34:::0;;::::1;::::0;;;10227:58:::1;10244:4;10128:42:::0;4018:17:::1;10227:8;:58::i;:::-;10330:16;-1:-1:-1::0;;;;;10330:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10312:56:0::1;;10377:4;10384:16;-1:-1:-1::0;;;;;10384:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10312:96;::::0;-1:-1:-1;;;;;;10312:96:0::1;::::0;;;;;;-1:-1:-1;;;;;4217:15:1;;;10312:96:0::1;::::0;::::1;4199:34:1::0;4269:15;;4249:18;;;4242:43;4134:18;;10312:96:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10296:13;:112:::0;;-1:-1:-1;;;;;;10296:112:0::1;-1:-1:-1::0;;;;;10296:112:0;;::::1;;::::0;;10419:15:::1;::::0;::::1;:31;10458:21;10489:4;10495:24;10489:4:::0;10495:9:::1;:24::i;:::-;10520:1;10522::::0;10524:7:::1;2417::::0;2444:6;-1:-1:-1;;;;;2444:6:0;;2379:79;10524:7:::1;10419:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;10419:129:0;;;-1:-1:-1;;;;;4934:15:1;;;10419:129:0::1;::::0;::::1;4916:34:1::0;4966:18;;;4959:34;;;;5009:18;;;5002:34;;;;5052:18;;;5045:34;5116:15;;;5095:19;;;5088:44;10532:15:0::1;5148:19:1::0;;;5141:35;4850:19;;10419:129:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;10559:11:0::1;:18:::0;;-1:-1:-1;;;;10623:18:0;;-1:-1:-1;;;10623:18:0;;;;10690:15:::1;::::0;10652:71:::1;::::0;-1:-1:-1;;;10652:71:0;;-1:-1:-1;;;;;10690:15:0;;::::1;10652:71;::::0;::::1;4470:51:1::0;-1:-1:-1;;4537:18:1;;;4530:34;10659:13:0;;;-1:-1:-1;10652:29:0::1;::::0;4443:18:1;;10652:71:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10002:729;9958:773::o:0;9458:164::-;2506:6;;-1:-1:-1;;;;;2506:6:0;177:10;2506:22;2498:67;;;;-1:-1:-1;;;2498:67:0;;;;;;;:::i;:::-;9532:6:::1;9527:88;9548:5;:12;9544:1;:16;9527:88;;;9599:4;9582;:14;9587:5;9593:1;9587:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;9582:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;9582:14:0;:21;;-1:-1:-1;;9582:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;9562:3;::::1;::::0;::::1;:::i;:::-;;;;9527:88;;7143:335:::0;-1:-1:-1;;;;;7236:19:0;;7228:68;;;;-1:-1:-1;;;7228:68:0;;10045:2:1;7228:68:0;;;10027:21:1;10084:2;10064:18;;;10057:30;10123:34;10103:18;;;10096:62;-1:-1:-1;;;10174:18:1;;;10167:34;10218:19;;7228:68:0;9843:400:1;7228:68:0;-1:-1:-1;;;;;7315:21:0;;7307:68;;;;-1:-1:-1;;;7307:68:0;;7352:2:1;7307:68:0;;;7334:21:1;7391:2;7371:18;;;7364:30;7430:34;7410:18;;;7403:62;-1:-1:-1;;;7481:18:1;;;7474:32;7523:19;;7307:68:0;7150:398:1;7307:68:0;-1:-1:-1;;;;;7386:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7438:32;;10746:25:1;;;7438:32:0;;10719:18:1;7438:32:0;;;;;;;7143:335;;;:::o;7486:1473::-;-1:-1:-1;;;;;7574:18:0;;7566:68;;;;-1:-1:-1;;;7566:68:0;;9284:2:1;7566:68:0;;;9266:21:1;9323:2;9303:18;;;9296:30;9362:34;9342:18;;;9335:62;-1:-1:-1;;;9413:18:1;;;9406:35;9458:19;;7566:68:0;9082:401:1;7566:68:0;-1:-1:-1;;;;;7653:16:0;;7645:64;;;;-1:-1:-1;;;7645:64:0;;6183:2:1;7645:64:0;;;6165:21:1;6222:2;6202:18;;;6195:30;6261:34;6241:18;;;6234:62;-1:-1:-1;;;6312:18:1;;;6305:33;6355:19;;7645:64:0;5981:399:1;7645:64:0;7737:1;7728:6;:10;7720:64;;;;-1:-1:-1;;;7720:64:0;;8874:2:1;7720:64:0;;;8856:21:1;8913:2;8893:18;;;8886:30;8952:34;8932:18;;;8925:62;-1:-1:-1;;;9003:18:1;;;8996:39;9052:19;;7720:64:0;8672:405:1;7720:64:0;2417:7;2444:6;-1:-1:-1;;;;;7803:15:0;;;2444:6;;7803:15;;;;:32;;-1:-1:-1;2417:7:0;2444:6;-1:-1:-1;;;;;7822:13:0;;;2444:6;;7822:13;;7803:32;7799:1110;;;-1:-1:-1;;;;;7861:10:0;;;;;;:4;:10;;;;;;;;7860:11;:24;;;;-1:-1:-1;;;;;;7876:8:0;;;;;;:4;:8;;;;;;;;7875:9;7860:24;7852:33;;;;;;7912:1;7900:9;:13;7941:19;;:22;7940:46;;7975:11;;7940:46;;;7965:9;;7940:46;7928:9;:58;8013:13;;-1:-1:-1;;;;;8005:21:0;;;8013:13;;8005:21;:55;;;;-1:-1:-1;8044:15:0;;-1:-1:-1;;;;;8030:30:0;;;8044:15;;8030:30;;8005:55;:83;;;;-1:-1:-1;;;;;;8066:22:0;;;;;;:18;:22;;;;;;;;8064:24;8005:83;:102;;;;-1:-1:-1;8092:15:0;;-1:-1:-1;;;8092:15:0;;;;8005:102;8001:397;;;8175:12;;8165:6;:22;;8157:60;;;;-1:-1:-1;;;8157:60:0;;6587:2:1;8157:60:0;;;6569:21:1;6626:2;6606:18;;;6599:30;6665:27;6645:18;;;6638:55;6710:18;;8157:60:0;6385:349:1;8157:60:0;8270:14;;8260:6;8244:13;8254:2;8244:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8236:79;;;;-1:-1:-1;;;8236:79:0;;9690:2:1;8236:79:0;;;9672:21:1;9729:2;9709:18;;;9702:30;9768:28;9748:18;;;9741:56;9814:18;;8236:79:0;9488:350:1;8236:79:0;8337:19;;:21;8334:49;;8360:19;:21;;;:19;:21;;;:::i;:::-;;;;;;8334:49;8416:28;8447:24;8465:4;8447:9;:24::i;:::-;8491:6;;8416:55;;-1:-1:-1;;;;8491:6:0;;;;8490:7;:32;;;;-1:-1:-1;8509:13:0;;-1:-1:-1;;;;;8501:21:0;;;8509:13;;8501:21;;8490:32;:47;;;;-1:-1:-1;8526:11:0;;-1:-1:-1;;;8526:11:0;;;;8490:47;:73;;;;;8562:1;8541:20;:22;8490:73;8486:344;;;8584:38;8601:20;8584:16;:38::i;:::-;8670:21;8713:22;;8710:105;;8760:35;8773:21;8760:12;:35::i;:::-;8565:265;8486:344;7837:1004;7799:1110;;;8870:1;8858:9;:13;;;8884:9;:13;7799:1110;8921:30;8936:4;8941:2;8944:6;8921:14;:30::i;:::-;7486:1473;;;:::o;1234:190::-;1320:7;1356:12;1348:6;;;;1340:29;;;;-1:-1:-1;;;1340:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1380:9:0;1392:5;1396:1;1392;:5;:::i;:::-;1380:17;1234:190;-1:-1:-1;;;;;1234:190:0:o;9854:96::-;9911:14;;:31;;-1:-1:-1;;;;;9911:14:0;;;;:31;;;;;9935:6;;9911:14;:31;:14;:31;9935:6;9911:14;:31;;;;;;;;;;;;;;;;;;;6881:254;6948:7;6987;;6976;:18;;6968:73;;;;-1:-1:-1;;;6968:73:0;;6941:2:1;6968:73:0;;;6923:21:1;6980:2;6960:18;;;6953:30;7019:34;6999:18;;;6992:62;-1:-1:-1;;;7070:18:1;;;7063:40;7120:19;;6968:73:0;6739:406:1;6968:73:0;7052:19;7075:10;:8;:10::i;:::-;7052:33;-1:-1:-1;7103:24:0;:7;7052:33;7103:11;:24::i;:::-;7096:31;6881:254;-1:-1:-1;;;6881:254:0:o;8967:483::-;4922:6;:13;;-1:-1:-1;;;;4922:13:0;-1:-1:-1;;;4922:13:0;;;9069:16:::1;::::0;;9083:1:::1;9069:16:::0;;;;;::::1;::::0;;-1:-1:-1;;9069:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9069:16:0::1;9045:40;;9114:4;9096;9101:1;9096:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9096:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;9140:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;9140:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;9096:7;;9140:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9130:4;9135:1;9130:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9130:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;9205:15:::1;::::0;9173:62:::1;::::0;9190:4:::1;::::0;9205:15:::1;9223:11:::0;9173:8:::1;:62::i;:::-;9246:15;::::0;:196:::1;::::0;-1:-1:-1;;;9246:196:0;;-1:-1:-1;;;;;9246:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;9327:11;;9246:15:::1;::::0;9369:4;;9396::::1;::::0;9416:15:::1;::::0;9246:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;4958:6:0;:14;;-1:-1:-1;;;;4958:14:0;;;-1:-1:-1;;;;8967:483:0:o;10739:146::-;10833:44;10851:6;10859:9;10870:6;10833:17;:44::i;13457:163::-;13498:7;13519:15;13536;13555:19;:17;:19::i;:::-;13518:56;;-1:-1:-1;13518:56:0;-1:-1:-1;13592:20:0;13518:56;;13592:11;:20::i;:::-;13585:27;;;;13457:163;:::o;1686:132::-;1744:7;1771:39;1775:1;1778;1771:39;;;;;;;;;;;;;;;;;:3;:39::i;10893:487::-;10992:15;11009:23;11034:12;11048:23;11073:12;11087:13;11104:19;11115:7;11104:10;:19::i;:::-;-1:-1:-1;;;;;11152:15:0;;;;;;:7;:15;;;;;;10991:132;;-1:-1:-1;10991:132:0;;-1:-1:-1;10991:132:0;;-1:-1:-1;10991:132:0;-1:-1:-1;10991:132:0;-1:-1:-1;10991:132:0;-1:-1:-1;11152:28:0;;10991:132;11152:19;:28::i;:::-;-1:-1:-1;;;;;11134:15:0;;;;;;;:7;:15;;;;;;:46;;;;11212:18;;;;;;;:39;;11235:15;11212:22;:39::i;:::-;-1:-1:-1;;;;;11191:18:0;;;;;;:7;:18;;;;;:60;11262:16;11272:5;11262:9;:16::i;:::-;11289:23;11301:4;11307;11289:11;:23::i;:::-;11345:9;-1:-1:-1;;;;;11328:44:0;11337:6;-1:-1:-1;;;;;11328:44:0;;11356:15;11328:44;;;;10746:25:1;;10734:2;10719:18;;10600:177;11328:44:0;;;;;;;;10980:400;;;;;;10893:487;;;:::o;13628:256::-;13725:7;;13678;;;;4018:17;13793:20;13725:7;4018:17;13793:11;:20::i;:::-;13783:7;:30;13779:61;;;-1:-1:-1;;13823:7:0;;;4018:17;;-1:-1:-1;13628:256:0;-1:-1:-1;13628:256:0:o;13779:61::-;13859:7;;13868;;-1:-1:-1;13628:256:0;-1:-1:-1;13628:256:0:o;1826:189::-;1912:7;1947:12;1940:5;1932:28;;;;-1:-1:-1;;;1932:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1971:9:0;1983:5;1987:1;1983;:5;:::i;12205:471::-;12264:7;12273;12282;12291;12300;12309;12330:23;12355:12;12369:13;12386:42;12398:7;12407:9;;12418;;12386:11;:42::i;:::-;12329:99;;;;;;12439:19;12462:10;:8;:10::i;:::-;12439:33;;12484:15;12501:23;12526:12;12542:46;12554:7;12563:4;12569:5;12576:11;12542;:46::i;:::-;12483:105;;-1:-1:-1;12483:105:0;-1:-1:-1;12483:105:0;-1:-1:-1;12639:15:0;;-1:-1:-1;12656:4:0;;-1:-1:-1;12662:5:0;;-1:-1:-1;;;;;12205:471:0;;;;;;;:::o;1090:136::-;1148:7;1175:43;1179:1;1182;1175:43;;;;;;;;;;;;;;;;;:3;:43::i;903:179::-;961:7;;993:5;997:1;993;:5;:::i;:::-;981:17;;1022:1;1017;:6;;1009:46;;;;-1:-1:-1;;;1009:46:0;;7755:2:1;1009:46:0;;;7737:21:1;7794:2;7774:18;;;7767:30;7833:29;7813:18;;;7806:57;7880:18;;1009:46:0;7553:351:1;11388:212:0;11441:19;11464:10;:8;:10::i;:::-;11441:33;-1:-1:-1;11485:13:0;11501:22;:5;11441:33;11501:9;:22::i;:::-;11575:4;11559:22;;;;:7;:22;;;;;;11485:38;;-1:-1:-1;11559:33:0;;11485:38;11559:26;:33::i;:::-;11550:4;11534:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;11388:212:0:o;11608:147::-;11686:7;;:17;;11698:4;11686:11;:17::i;:::-;11676:7;:27;11727:10;;:20;;11742:4;11727:14;:20::i;:::-;11714:10;:33;-1:-1:-1;;11608:147:0:o;12684:351::-;12777:7;;;;12830:28;12854:3;12830:19;:7;12842:6;12830:11;:19::i;:::-;:23;;:28::i;:::-;12815:43;-1:-1:-1;12869:13:0;12885:29;12910:3;12885:20;:7;12897;12885:11;:20::i;:29::-;12869:45;-1:-1:-1;12925:23:0;12951:28;12869:45;12951:17;:7;12963:4;12951:11;:17::i;:::-;:21;;:28::i;:::-;12925:54;13015:4;;-1:-1:-1;13021:5:0;;-1:-1:-1;12684:351:0;;-1:-1:-1;;;;;12684:351:0:o;13043:409::-;13153:7;;;;13209:24;:7;13221:11;13209;:24::i;:::-;13191:42;-1:-1:-1;13244:12:0;13259:21;:4;13268:11;13259:8;:21::i;:::-;13244:36;-1:-1:-1;13291:13:0;13307:22;:5;13317:11;13307:9;:22::i;:::-;13291:38;-1:-1:-1;13340:23:0;13366:28;13291:38;13366:17;:7;13378:4;13366:11;:17::i;:28::-;13413:7;;;;-1:-1:-1;13439:4:0;;-1:-1:-1;13043:409:0;;-1:-1:-1;;;;;;;13043:409:0:o;1432:246::-;1490:7;1514:6;1510:47;;-1:-1:-1;1544:1:0;1537:8;;1510:47;1567:9;1579:5;1583:1;1579;:5;:::i;:::-;1567:17;-1:-1:-1;1612:1:0;1603:5;1607:1;1567:17;1603:5;:::i;:::-;:10;1595:56;;;;-1:-1:-1;;;1595:56:0;;8111:2:1;1595:56:0;;;8093:21:1;8150:2;8130:18;;;8123:30;8189:34;8169:18;;;8162:62;-1:-1:-1;;;8240:18:1;;;8233:31;8281:19;;1595:56:0;7909:397:1;14:134;82:20;;111:31;82:20;111:31;:::i;:::-;14:134;;;:::o;153:247::-;212:6;265:2;253:9;244:7;240:23;236:32;233:52;;;281:1;278;271:12;233:52;320:9;307:23;339:31;364:5;339:31;:::i;405:251::-;475:6;528:2;516:9;507:7;503:23;499:32;496:52;;;544:1;541;534:12;496:52;576:9;570:16;595:31;620:5;595:31;:::i;661:388::-;729:6;737;790:2;778:9;769:7;765:23;761:32;758:52;;;806:1;803;796:12;758:52;845:9;832:23;864:31;889:5;864:31;:::i;:::-;914:5;-1:-1:-1;971:2:1;956:18;;943:32;984:33;943:32;984:33;:::i;:::-;1036:7;1026:17;;;661:388;;;;;:::o;1054:456::-;1131:6;1139;1147;1200:2;1188:9;1179:7;1175:23;1171:32;1168:52;;;1216:1;1213;1206:12;1168:52;1255:9;1242:23;1274:31;1299:5;1274:31;:::i;:::-;1324:5;-1:-1:-1;1381:2:1;1366:18;;1353:32;1394:33;1353:32;1394:33;:::i;:::-;1054:456;;1446:7;;-1:-1:-1;;;1500:2:1;1485:18;;;;1472:32;;1054:456::o;1515:315::-;1583:6;1591;1644:2;1632:9;1623:7;1619:23;1615:32;1612:52;;;1660:1;1657;1650:12;1612:52;1699:9;1686:23;1718:31;1743:5;1718:31;:::i;:::-;1768:5;1820:2;1805:18;;;;1792:32;;-1:-1:-1;;;1515:315:1:o;1835:1132::-;1919:6;1950:2;1993;1981:9;1972:7;1968:23;1964:32;1961:52;;;2009:1;2006;1999:12;1961:52;2049:9;2036:23;2078:18;2119:2;2111:6;2108:14;2105:34;;;2135:1;2132;2125:12;2105:34;2173:6;2162:9;2158:22;2148:32;;2218:7;2211:4;2207:2;2203:13;2199:27;2189:55;;2240:1;2237;2230:12;2189:55;2276:2;2263:16;2298:2;2294;2291:10;2288:36;;;2304:18;;:::i;:::-;2350:2;2347:1;2343:10;2382:2;2376:9;2445:2;2441:7;2436:2;2432;2428:11;2424:25;2416:6;2412:38;2500:6;2488:10;2485:22;2480:2;2468:10;2465:18;2462:46;2459:72;;;2511:18;;:::i;:::-;2547:2;2540:22;2597:18;;;2631:15;;;;-1:-1:-1;2666:11:1;;;2696;;;2692:20;;2689:33;-1:-1:-1;2686:53:1;;;2735:1;2732;2725:12;2686:53;2757:1;2748:10;;2767:169;2781:2;2778:1;2775:9;2767:169;;;2838:23;2857:3;2838:23;:::i;:::-;2826:36;;2799:1;2792:9;;;;;2882:12;;;;2914;;2767:169;;;-1:-1:-1;2955:6:1;1835:1132;-1:-1:-1;;;;;;;;1835:1132:1:o;2972:241::-;3028:6;3081:2;3069:9;3060:7;3056:23;3052:32;3049:52;;;3097:1;3094;3087:12;3049:52;3136:9;3123:23;3155:28;3177:5;3155:28;:::i;3218:245::-;3285:6;3338:2;3326:9;3317:7;3313:23;3309:32;3306:52;;;3354:1;3351;3344:12;3306:52;3386:9;3380:16;3405:28;3427:5;3405:28;:::i;3468:306::-;3556:6;3564;3572;3625:2;3613:9;3604:7;3600:23;3596:32;3593:52;;;3641:1;3638;3631:12;3593:52;3670:9;3664:16;3654:26;;3720:2;3709:9;3705:18;3699:25;3689:35;;3764:2;3753:9;3749:18;3743:25;3733:35;;3468:306;;;;;:::o;5379:597::-;5491:4;5520:2;5549;5538:9;5531:21;5581:6;5575:13;5624:6;5619:2;5608:9;5604:18;5597:34;5649:1;5659:140;5673:6;5670:1;5667:13;5659:140;;;5768:14;;;5764:23;;5758:30;5734:17;;;5753:2;5730:26;5723:66;5688:10;;5659:140;;;5817:6;5814:1;5811:13;5808:91;;;5887:1;5882:2;5873:6;5862:9;5858:22;5854:31;5847:42;5808:91;-1:-1:-1;5960:2:1;5939:15;-1:-1:-1;;5935:29:1;5920:45;;;;5967:2;5916:54;;5379:597;-1:-1:-1;;;5379:597:1:o;8311:356::-;8513:2;8495:21;;;8532:18;;;8525:30;8591:34;8586:2;8571:18;;8564:62;8658:2;8643:18;;8311:356::o;10782:980::-;11044:4;11092:3;11081:9;11077:19;11123:6;11112:9;11105:25;11149:2;11187:6;11182:2;11171:9;11167:18;11160:34;11230:3;11225:2;11214:9;11210:18;11203:31;11254:6;11289;11283:13;11320:6;11312;11305:22;11358:3;11347:9;11343:19;11336:26;;11397:2;11389:6;11385:15;11371:29;;11418:1;11428:195;11442:6;11439:1;11436:13;11428:195;;;11507:13;;-1:-1:-1;;;;;11503:39:1;11491:52;;11598:15;;;;11563:12;;;;11539:1;11457:9;11428:195;;;-1:-1:-1;;;;;;;11679:32:1;;;;11674:2;11659:18;;11652:60;-1:-1:-1;;;11743:3:1;11728:19;11721:35;11640:3;10782:980;-1:-1:-1;;;10782:980:1:o;11956:128::-;11996:3;12027:1;12023:6;12020:1;12017:13;12014:39;;;12033:18;;:::i;:::-;-1:-1:-1;12069:9:1;;11956:128::o;12089:217::-;12129:1;12155;12145:132;;12199:10;12194:3;12190:20;12187:1;12180:31;12234:4;12231:1;12224:15;12262:4;12259:1;12252:15;12145:132;-1:-1:-1;12291:9:1;;12089:217::o;12311:168::-;12351:7;12417:1;12413;12409:6;12405:14;12402:1;12399:21;12394:1;12387:9;12380:17;12376:45;12373:71;;;12424:18;;:::i;:::-;-1:-1:-1;12464:9:1;;12311:168::o;12484:125::-;12524:4;12552:1;12549;12546:8;12543:34;;;12557:18;;:::i;:::-;-1:-1:-1;12594:9:1;;12484:125::o;12614:136::-;12653:3;12681:5;12671:39;;12690:18;;:::i;:::-;-1:-1:-1;;;12726:18:1;;12614:136::o;12755:135::-;12794:3;-1:-1:-1;;12815:17:1;;12812:43;;;12835:18;;:::i;:::-;-1:-1:-1;12882:1:1;12871:13;;12755:135::o;12895:127::-;12956:10;12951:3;12947:20;12944:1;12937:31;12987:4;12984:1;12977:15;13011:4;13008:1;13001:15;13027:127;13088:10;13083:3;13079:20;13076:1;13069:31;13119:4;13116:1;13109:15;13143:4;13140:1;13133:15;13159:127;13220:10;13215:3;13211:20;13208:1;13201:31;13251:4;13248:1;13241:15;13275:4;13272:1;13265:15;13291:131;-1:-1:-1;;;;;13366:31:1;;13356:42;;13346:70;;13412:1;13409;13402:12;13427:118;13513:5;13506:13;13499:21;13492:5;13489:32;13479:60;;13535:1;13532;13525:12

Swarm Source

ipfs://e888727430546424391a4b12d6c2fcb87502daa9ec503ae4de87edb130cee909

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.