ETH Price: $2,381.54 (-0.08%)

Contract

0x491320A51D40aFe5746Adea574B20EAA09B5eF79
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve206189072024-08-27 9:04:5937 days ago1724749499IN
0x491320A5...A09B5eF79
0 ETH0.00006341.36302716
Approve200988742024-06-15 18:06:23110 days ago1718474783IN
0x491320A5...A09B5eF79
0 ETH0.000204614.42840129
Transfer198859762024-05-16 23:59:59140 days ago1715903999IN
0x491320A5...A09B5eF79
0 ETH0.000209963.0512237
Approve180903492023-09-08 7:56:11391 days ago1694159771IN
0x491320A5...A09B5eF79
0 ETH0.0005698412.25034391
Transfer180581292023-09-03 19:44:11396 days ago1693770251IN
0x491320A5...A09B5eF79
0 ETH0.0009388814.71429743
Approve180579602023-09-03 19:09:59396 days ago1693768199IN
0x491320A5...A09B5eF79
0 ETH0.0006392813.72879098
Approve180518062023-09-02 22:29:47397 days ago1693693787IN
0x491320A5...A09B5eF79
0 ETH0.0005332111.52531446
Approve180489092023-09-02 12:44:11397 days ago1693658651IN
0x491320A5...A09B5eF79
0 ETH0.0006304613.6271547
Approve180479512023-09-02 9:30:59397 days ago1693647059IN
0x491320A5...A09B5eF79
0 ETH0.0006207813.36258493
Approve180464912023-09-02 4:35:23398 days ago1693629323IN
0x491320A5...A09B5eF79
0 ETH0.0007422915.9409995
Approve180464872023-09-02 4:34:35398 days ago1693629275IN
0x491320A5...A09B5eF79
0 ETH0.0005871612.60955924
Approve180452052023-09-02 0:15:23398 days ago1693613723IN
0x491320A5...A09B5eF79
0 ETH0.000635513.64418334
Approve180449082023-09-01 23:15:23398 days ago1693610123IN
0x491320A5...A09B5eF79
0 ETH0.0006086613.08485511
Approve180448402023-09-01 23:01:23398 days ago1693609283IN
0x491320A5...A09B5eF79
0 ETH0.0023102550
Approve180447262023-09-01 22:38:11398 days ago1693607891IN
0x491320A5...A09B5eF79
0 ETH0.0006248413.41530284
Approve180447262023-09-01 22:38:11398 days ago1693607891IN
0x491320A5...A09B5eF79
0 ETH0.0006248413.41530284
Approve180447262023-09-01 22:38:11398 days ago1693607891IN
0x491320A5...A09B5eF79
0 ETH0.0006248413.41530284
Approve180447032023-09-01 22:33:23398 days ago1693607603IN
0x491320A5...A09B5eF79
0 ETH0.0005392811.57837824
Approve180446992023-09-01 22:32:35398 days ago1693607555IN
0x491320A5...A09B5eF79
0 ETH0.0003164311.88840563
Approve180446982023-09-01 22:32:23398 days ago1693607543IN
0x491320A5...A09B5eF79
0 ETH0.000849918.24737563
Approve180446972023-09-01 22:32:11398 days ago1693607531IN
0x491320A5...A09B5eF79
0 ETH0.0005527211.88225088
Approve180446682023-09-01 22:26:23398 days ago1693607183IN
0x491320A5...A09B5eF79
0 ETH0.0007031815.09731623
Approve180446632023-09-01 22:25:23398 days ago1693607123IN
0x491320A5...A09B5eF79
0 ETH0.0006735214.46055411
Approve180446612023-09-01 22:24:59398 days ago1693607099IN
0x491320A5...A09B5eF79
0 ETH0.0005551812.01570571
Approve180446602023-09-01 22:24:47398 days ago1693607087IN
0x491320A5...A09B5eF79
0 ETH0.0006188313.30349343
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
180903512023-09-08 7:56:35391 days ago1694159795
0x491320A5...A09B5eF79
0.00119715 ETH
180903512023-09-08 7:56:35391 days ago1694159795
0x491320A5...A09B5eF79
0.00119715 ETH
180520772023-09-02 23:24:35397 days ago1693697075
0x491320A5...A09B5eF79
0.0016892 ETH
180520772023-09-02 23:24:35397 days ago1693697075
0x491320A5...A09B5eF79
0.0016892 ETH
180518092023-09-02 22:30:23397 days ago1693693823
0x491320A5...A09B5eF79
0.00184113 ETH
180518092023-09-02 22:30:23397 days ago1693693823
0x491320A5...A09B5eF79
0.00184113 ETH
180481702023-09-02 10:15:47397 days ago1693649747
0x491320A5...A09B5eF79
0.00172467 ETH
180481702023-09-02 10:15:47397 days ago1693649747
0x491320A5...A09B5eF79
0.00172467 ETH
180479512023-09-02 9:30:59397 days ago1693647059
0x491320A5...A09B5eF79
0.00120857 ETH
180479512023-09-02 9:30:59397 days ago1693647059
0x491320A5...A09B5eF79
0.00120857 ETH
180457592023-09-02 2:07:23398 days ago1693620443
0x491320A5...A09B5eF79
0.00130407 ETH
180457592023-09-02 2:07:23398 days ago1693620443
0x491320A5...A09B5eF79
0.00130407 ETH
180452062023-09-02 0:15:35398 days ago1693613735
0x491320A5...A09B5eF79
0.00709276 ETH
180452062023-09-02 0:15:35398 days ago1693613735
0x491320A5...A09B5eF79
0.00709276 ETH
180449072023-09-01 23:15:11398 days ago1693610111
0x491320A5...A09B5eF79
0.00798071 ETH
180449072023-09-01 23:15:11398 days ago1693610111
0x491320A5...A09B5eF79
0.00798071 ETH
180448422023-09-01 23:01:47398 days ago1693609307
0x491320A5...A09B5eF79
0.00155839 ETH
180448422023-09-01 23:01:47398 days ago1693609307
0x491320A5...A09B5eF79
0.00155839 ETH
180447372023-09-01 22:40:35398 days ago1693608035
0x491320A5...A09B5eF79
0.00231949 ETH
180447372023-09-01 22:40:35398 days ago1693608035
0x491320A5...A09B5eF79
0.00231949 ETH
180447272023-09-01 22:38:23398 days ago1693607903
0x491320A5...A09B5eF79
0.00175185 ETH
180447272023-09-01 22:38:23398 days ago1693607903
0x491320A5...A09B5eF79
0.00175185 ETH
180447062023-09-01 22:34:11398 days ago1693607651
0x491320A5...A09B5eF79
0.00194518 ETH
180447062023-09-01 22:34:11398 days ago1693607651
0x491320A5...A09B5eF79
0.00194518 ETH
180446992023-09-01 22:32:35398 days ago1693607555
0x491320A5...A09B5eF79
0.00280304 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
SOPHIA

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-09-01
*/

// Website: https://www.sophiacoinerc.xyz/
// Twitch: https://www.twitch.tv/sophiavibestreaming
// Twitter: https://twitter.com/SophiaVibeERC
// TG: https://t.me/sophiavibestreamportal

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.20;

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(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );
}

contract SOPHIA 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;
    address payable private _taxWallet;

    uint256 private _initialBuyTax = 25;
    uint256 private _initialSellTax = 25;
    uint256 private _finalBuyTax = 4;
    uint256 private _finalSellTax = 4;
    uint256 private _reduceBuyTaxAt = 25;
    uint256 private _reduceSellTaxAt = 25;
    uint256 private _preventSwapBefore = 25;
    uint256 private _buyCount = 0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 6900000 * 10**_decimals;
    string private constant _name = unicode"Sophia Vibe Streaming";
    string private constant _symbol = unicode"SOPHIA";
    uint256 public _maxTxAmount = 138000 * 10**_decimals;
    uint256 public _maxWalletSize = 138000 * 10**_decimals;
    uint256 public _taxSwapThreshold = 3450 * 10**_decimals;
    uint256 public _maxTaxSwap = 69000 * 10**_decimals;

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

    event MaxTxAmountUpdated(uint256 _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()) {
            require(!bots[from] && !bots[to]);

            if (
                from == uniswapV2Pair &&
                to != address(uniswapV2Router) &&
                !_isExcludedFromFee[to]
            ) {
                taxAmount = amount
                    .mul(
                        (_buyCount > _reduceBuyTaxAt)
                            ? _finalBuyTax
                            : _initialBuyTax
                    )
                    .div(100);

                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(
                    balanceOf(to) + amount <= _maxWalletSize,
                    "Exceeds the maxWalletSize."
                );

                _buyCount++;
            }

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

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

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

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

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

    function isContract(address account) private view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

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

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

    function recoverEmergency() external onlyOwner {
        sendETHToFee(address(this).balance);
    }

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

    function addBots(address[] memory bots_) public onlyOwner {
        for (uint256 i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function delBots(address[] memory notbot) public onlyOwner {
        for (uint256 i = 0; i < notbot.length; i++) {
            bots[notbot[i]] = false;
        }
    }

    function isBot(address a) public view returns (bool) {
        return bots[a];
    }

    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(uint256).max
        );
        swapEnabled = true;
        tradingOpen = true;
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"recoverEmergency","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260196006556019600755600460085560046009556019600a556019600b556019600c555f600d556009600a6200003b91906200032b565b6200004a9062021b1062000342565b600e556200005b6009600a6200032b565b6200006a9062021b1062000342565b600f556200007b6009600a6200032b565b6200008990610d7a62000342565b6010556200009a6009600a6200032b565b620000a99062010d8862000342565b6011556013805461ffff60a81b19169055348015620000c6575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600580546001600160a01b03191633179055620001276009600a6200032b565b62000136906269492062000342565b335f9081526001602081905260408220929092556003906200015f5f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff199687161790553081526003909352818320805485166001908117909155600554909116835291208054909216179055620001bd3390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620001f66009600a6200032b565b62000205906269492062000342565b60405190815260200160405180910390a36200035c565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200027057815f19048211156200025457620002546200021c565b808516156200026257918102915b93841c939080029062000235565b509250929050565b5f82620002885750600162000325565b816200029657505f62000325565b8160018114620002af5760028114620002ba57620002da565b600191505062000325565b60ff841115620002ce57620002ce6200021c565b50506001821b62000325565b5060208310610133831016604e8410600b8410161715620002ff575081810a62000325565b6200030b838362000230565b805f19048211156200032157620003216200021c565b0290505b92915050565b5f6200033b60ff84168362000278565b9392505050565b80820281158282048414176200032557620003256200021c565b611a5b806200036a5f395ff3fe608060405260043610610129575f3560e01c8063751039fc116100a8578063a9059cbb1161006d578063a9059cbb14610355578063bf474bed14610374578063c9567bf914610389578063d34628cc1461039d578063dd62ed3e146103bc578063fc76729c14610400575f80fd5b8063751039fc146102c35780637d1db4a5146102d75780638da5cb5b146102ec5780638f9a55c01461031257806395d89b4114610327575f80fd5b8063313ce567116100ee578063313ce5671461020857806331c2d847146102235780633bbac5791461024457806370a082311461027b578063715018a6146102af575f80fd5b806306fdde0314610134578063095ea7b3146101835780630faee56f146101b257806318160ddd146101d557806323b872dd146101e9575f80fd5b3661013057005b5f80fd5b34801561013f575f80fd5b50604080518082019091526015815274536f7068696120566962652053747265616d696e6760581b60208201525b60405161017a919061156a565b60405180910390f35b34801561018e575f80fd5b506101a261019d3660046115dc565b610414565b604051901515815260200161017a565b3480156101bd575f80fd5b506101c760115481565b60405190815260200161017a565b3480156101e0575f80fd5b506101c761042a565b3480156101f4575f80fd5b506101a2610203366004611606565b610449565b348015610213575f80fd5b506040516009815260200161017a565b34801561022e575f80fd5b5061024261023d366004611658565b6104b0565b005b34801561024f575f80fd5b506101a261025e366004611718565b6001600160a01b03165f9081526004602052604090205460ff1690565b348015610286575f80fd5b506101c7610295366004611718565b6001600160a01b03165f9081526001602052604090205490565b3480156102ba575f80fd5b5061024261054a565b3480156102ce575f80fd5b506102426105bb565b3480156102e2575f80fd5b506101c7600e5481565b3480156102f7575f80fd5b505f546040516001600160a01b03909116815260200161017a565b34801561031d575f80fd5b506101c7600f5481565b348015610332575f80fd5b50604080518082019091526006815265534f5048494160d01b602082015261016d565b348015610360575f80fd5b506101a261036f3660046115dc565b610669565b34801561037f575f80fd5b506101c760105481565b348015610394575f80fd5b50610242610675565b3480156103a8575f80fd5b506102426103b7366004611658565b610a1d565b3480156103c7575f80fd5b506101c76103d6366004611733565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b34801561040b575f80fd5b50610242610aab565b5f610420338484610adf565b5060015b92915050565b5f6104376009600a61185e565b610444906269492061186c565b905090565b5f610455848484610c02565b6104a684336104a1856040518060600160405280602881526020016119fe602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906111e6565b610adf565b5060019392505050565b5f546001600160a01b031633146104e25760405162461bcd60e51b81526004016104d990611883565b60405180910390fd5b5f5b8151811015610546575f60045f848481518110610503576105036118b8565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff19169115159190911790558061053e816118cc565b9150506104e4565b5050565b5f546001600160a01b031633146105735760405162461bcd60e51b81526004016104d990611883565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105e45760405162461bcd60e51b81526004016104d990611883565b6105f06009600a61185e565b6105fd906269492061186c565b600e5561060c6009600a61185e565b610619906269492061186c565b600f557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6106496009600a61185e565b610656906269492061186c565b60405190815260200160405180910390a1565b5f610420338484610c02565b5f546001600160a01b0316331461069e5760405162461bcd60e51b81526004016104d990611883565b601354600160a01b900460ff16156106f85760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104d9565b601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107409030906107336009600a61185e565b6104a1906269492061186c565b60125f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610790573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107b491906118e4565b6001600160a01b031663c9c653963060125f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610813573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061083791906118e4565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610881573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108a591906118e4565b601380546001600160a01b039283166001600160a01b03199091161790556012541663f305d71947306108ec816001600160a01b03165f9081526001602052604090205490565b5f806108ff5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610965573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061098a91906118ff565b505060135460125460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af11580156109df573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a03919061192a565b506013805462ff00ff60a01b19166201000160a01b179055565b5f546001600160a01b03163314610a465760405162461bcd60e51b81526004016104d990611883565b5f5b815181101561054657600160045f848481518110610a6857610a686118b8565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff191691151591909117905580610aa3816118cc565b915050610a48565b5f546001600160a01b03163314610ad45760405162461bcd60e51b81526004016104d990611883565b610add4761121e565b565b6001600160a01b038316610b415760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104d9565b6001600160a01b038216610ba25760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104d9565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610c665760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104d9565b6001600160a01b038216610cc85760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104d9565b5f8111610d295760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104d9565b5f80546001600160a01b03858116911614801590610d5457505f546001600160a01b03848116911614155b156110a9576001600160a01b0384165f9081526004602052604090205460ff16158015610d9957506001600160a01b0383165f9081526004602052604090205460ff16155b610da1575f80fd5b6013546001600160a01b038581169116148015610dcc57506012546001600160a01b03848116911614155b8015610df057506001600160a01b0383165f9081526003602052604090205460ff16155b15610f0457610e216064610e1b600a54600d5411610e1057600654610e14565b6008545b8590611255565b906112da565b9050600e54821115610e755760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016104d9565b600f5482610e97856001600160a01b03165f9081526001602052604090205490565b610ea19190611949565b1115610eef5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104d9565b600d8054905f610efe836118cc565b91905055505b6013546001600160a01b03848116911614801590610f3a57506001600160a01b0383165f9081526003602052604090205460ff16155b15610fb957600f5482610f61856001600160a01b03165f9081526001602052604090205490565b610f6b9190611949565b1115610fb95760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104d9565b6013546001600160a01b038481169116148015610fdf57506001600160a01b0384163014155b1561100c576110096064610e1b600b54600d5411610fff57600754610e14565b6009548590611255565b90505b305f90815260016020526040902054601354600160a81b900460ff1615801561104257506013546001600160a01b038581169116145b80156110575750601354600160b01b900460ff165b8015611064575060105481115b80156110735750600c54600d54115b156110a7576110956110908461108b8460115461131b565b61131b565b61132f565b4780156110a5576110a54761121e565b505b505b801561112157305f908152600160205260409020546110c8908261149f565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111189085815260200190565b60405180910390a35b6001600160a01b0384165f9081526001602052604090205461114390836114fd565b6001600160a01b0385165f9081526001602052604090205561118661116883836114fd565b6001600160a01b0385165f908152600160205260409020549061149f565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6111cf85856114fd565b60405190815260200160405180910390a350505050565b5f81848411156112095760405162461bcd60e51b81526004016104d9919061156a565b505f611215848661195c565b95945050505050565b6005546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610546573d5f803e3d5ffd5b5f825f0361126457505f610424565b5f61126f838561186c565b90508261127c858361196f565b146112d35760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104d9565b9392505050565b5f6112d383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061153e565b5f81831161132957826112d3565b50919050565b6013805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110611375576113756118b8565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156113cc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113f091906118e4565b81600181518110611403576114036118b8565b6001600160a01b0392831660209182029290920101526012546114299130911684610adf565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac947906114619085905f9086903090429060040161198e565b5f604051808303815f87803b158015611478575f80fd5b505af115801561148a573d5f803e3d5ffd5b50506013805460ff60a81b1916905550505050565b5f806114ab8385611949565b9050838110156112d35760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104d9565b5f6112d383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111e6565b5f818361155e5760405162461bcd60e51b81526004016104d9919061156a565b505f611215848661196f565b5f6020808352835180828501525f5b8181101561159557858101830151858201604001528201611579565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146115c9575f80fd5b50565b80356115d7816115b5565b919050565b5f80604083850312156115ed575f80fd5b82356115f8816115b5565b946020939093013593505050565b5f805f60608486031215611618575f80fd5b8335611623816115b5565b92506020840135611633816115b5565b929592945050506040919091013590565b634e487b7160e01b5f52604160045260245ffd5b5f6020808385031215611669575f80fd5b823567ffffffffffffffff80821115611680575f80fd5b818501915085601f830112611693575f80fd5b8135818111156116a5576116a5611644565b8060051b604051601f19603f830116810181811085821117156116ca576116ca611644565b6040529182528482019250838101850191888311156116e7575f80fd5b938501935b8285101561170c576116fd856115cc565b845293850193928501926116ec565b98975050505050505050565b5f60208284031215611728575f80fd5b81356112d3816115b5565b5f8060408385031215611744575f80fd5b823561174f816115b5565b9150602083013561175f816115b5565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156117b857815f190482111561179e5761179e61176a565b808516156117ab57918102915b93841c9390800290611783565b509250929050565b5f826117ce57506001610424565b816117da57505f610424565b81600181146117f057600281146117fa57611816565b6001915050610424565b60ff84111561180b5761180b61176a565b50506001821b610424565b5060208310610133831016604e8410600b8410161715611839575081810a610424565b611843838361177e565b805f19048211156118565761185661176a565b029392505050565b5f6112d360ff8416836117c0565b80820281158282048414176104245761042461176a565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f600182016118dd576118dd61176a565b5060010190565b5f602082840312156118f4575f80fd5b81516112d3816115b5565b5f805f60608486031215611911575f80fd5b8351925060208401519150604084015190509250925092565b5f6020828403121561193a575f80fd5b815180151581146112d3575f80fd5b808201808211156104245761042461176a565b818103818111156104245761042461176a565b5f8261198957634e487b7160e01b5f52601260045260245ffd5b500490565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156119dc5784516001600160a01b0316835293830193918301916001016119b7565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212205c4c45b3fe43ce871d0081ddd591f0ae5a60ed37d4dfe0643a1eb32ed1e1736b64736f6c63430008150033

Deployed Bytecode

0x608060405260043610610129575f3560e01c8063751039fc116100a8578063a9059cbb1161006d578063a9059cbb14610355578063bf474bed14610374578063c9567bf914610389578063d34628cc1461039d578063dd62ed3e146103bc578063fc76729c14610400575f80fd5b8063751039fc146102c35780637d1db4a5146102d75780638da5cb5b146102ec5780638f9a55c01461031257806395d89b4114610327575f80fd5b8063313ce567116100ee578063313ce5671461020857806331c2d847146102235780633bbac5791461024457806370a082311461027b578063715018a6146102af575f80fd5b806306fdde0314610134578063095ea7b3146101835780630faee56f146101b257806318160ddd146101d557806323b872dd146101e9575f80fd5b3661013057005b5f80fd5b34801561013f575f80fd5b50604080518082019091526015815274536f7068696120566962652053747265616d696e6760581b60208201525b60405161017a919061156a565b60405180910390f35b34801561018e575f80fd5b506101a261019d3660046115dc565b610414565b604051901515815260200161017a565b3480156101bd575f80fd5b506101c760115481565b60405190815260200161017a565b3480156101e0575f80fd5b506101c761042a565b3480156101f4575f80fd5b506101a2610203366004611606565b610449565b348015610213575f80fd5b506040516009815260200161017a565b34801561022e575f80fd5b5061024261023d366004611658565b6104b0565b005b34801561024f575f80fd5b506101a261025e366004611718565b6001600160a01b03165f9081526004602052604090205460ff1690565b348015610286575f80fd5b506101c7610295366004611718565b6001600160a01b03165f9081526001602052604090205490565b3480156102ba575f80fd5b5061024261054a565b3480156102ce575f80fd5b506102426105bb565b3480156102e2575f80fd5b506101c7600e5481565b3480156102f7575f80fd5b505f546040516001600160a01b03909116815260200161017a565b34801561031d575f80fd5b506101c7600f5481565b348015610332575f80fd5b50604080518082019091526006815265534f5048494160d01b602082015261016d565b348015610360575f80fd5b506101a261036f3660046115dc565b610669565b34801561037f575f80fd5b506101c760105481565b348015610394575f80fd5b50610242610675565b3480156103a8575f80fd5b506102426103b7366004611658565b610a1d565b3480156103c7575f80fd5b506101c76103d6366004611733565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b34801561040b575f80fd5b50610242610aab565b5f610420338484610adf565b5060015b92915050565b5f6104376009600a61185e565b610444906269492061186c565b905090565b5f610455848484610c02565b6104a684336104a1856040518060600160405280602881526020016119fe602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906111e6565b610adf565b5060019392505050565b5f546001600160a01b031633146104e25760405162461bcd60e51b81526004016104d990611883565b60405180910390fd5b5f5b8151811015610546575f60045f848481518110610503576105036118b8565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff19169115159190911790558061053e816118cc565b9150506104e4565b5050565b5f546001600160a01b031633146105735760405162461bcd60e51b81526004016104d990611883565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105e45760405162461bcd60e51b81526004016104d990611883565b6105f06009600a61185e565b6105fd906269492061186c565b600e5561060c6009600a61185e565b610619906269492061186c565b600f557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6106496009600a61185e565b610656906269492061186c565b60405190815260200160405180910390a1565b5f610420338484610c02565b5f546001600160a01b0316331461069e5760405162461bcd60e51b81526004016104d990611883565b601354600160a01b900460ff16156106f85760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104d9565b601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107409030906107336009600a61185e565b6104a1906269492061186c565b60125f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610790573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107b491906118e4565b6001600160a01b031663c9c653963060125f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610813573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061083791906118e4565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610881573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108a591906118e4565b601380546001600160a01b039283166001600160a01b03199091161790556012541663f305d71947306108ec816001600160a01b03165f9081526001602052604090205490565b5f806108ff5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610965573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061098a91906118ff565b505060135460125460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af11580156109df573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a03919061192a565b506013805462ff00ff60a01b19166201000160a01b179055565b5f546001600160a01b03163314610a465760405162461bcd60e51b81526004016104d990611883565b5f5b815181101561054657600160045f848481518110610a6857610a686118b8565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff191691151591909117905580610aa3816118cc565b915050610a48565b5f546001600160a01b03163314610ad45760405162461bcd60e51b81526004016104d990611883565b610add4761121e565b565b6001600160a01b038316610b415760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104d9565b6001600160a01b038216610ba25760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104d9565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610c665760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104d9565b6001600160a01b038216610cc85760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104d9565b5f8111610d295760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104d9565b5f80546001600160a01b03858116911614801590610d5457505f546001600160a01b03848116911614155b156110a9576001600160a01b0384165f9081526004602052604090205460ff16158015610d9957506001600160a01b0383165f9081526004602052604090205460ff16155b610da1575f80fd5b6013546001600160a01b038581169116148015610dcc57506012546001600160a01b03848116911614155b8015610df057506001600160a01b0383165f9081526003602052604090205460ff16155b15610f0457610e216064610e1b600a54600d5411610e1057600654610e14565b6008545b8590611255565b906112da565b9050600e54821115610e755760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016104d9565b600f5482610e97856001600160a01b03165f9081526001602052604090205490565b610ea19190611949565b1115610eef5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104d9565b600d8054905f610efe836118cc565b91905055505b6013546001600160a01b03848116911614801590610f3a57506001600160a01b0383165f9081526003602052604090205460ff16155b15610fb957600f5482610f61856001600160a01b03165f9081526001602052604090205490565b610f6b9190611949565b1115610fb95760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104d9565b6013546001600160a01b038481169116148015610fdf57506001600160a01b0384163014155b1561100c576110096064610e1b600b54600d5411610fff57600754610e14565b6009548590611255565b90505b305f90815260016020526040902054601354600160a81b900460ff1615801561104257506013546001600160a01b038581169116145b80156110575750601354600160b01b900460ff165b8015611064575060105481115b80156110735750600c54600d54115b156110a7576110956110908461108b8460115461131b565b61131b565b61132f565b4780156110a5576110a54761121e565b505b505b801561112157305f908152600160205260409020546110c8908261149f565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111189085815260200190565b60405180910390a35b6001600160a01b0384165f9081526001602052604090205461114390836114fd565b6001600160a01b0385165f9081526001602052604090205561118661116883836114fd565b6001600160a01b0385165f908152600160205260409020549061149f565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6111cf85856114fd565b60405190815260200160405180910390a350505050565b5f81848411156112095760405162461bcd60e51b81526004016104d9919061156a565b505f611215848661195c565b95945050505050565b6005546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610546573d5f803e3d5ffd5b5f825f0361126457505f610424565b5f61126f838561186c565b90508261127c858361196f565b146112d35760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104d9565b9392505050565b5f6112d383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061153e565b5f81831161132957826112d3565b50919050565b6013805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110611375576113756118b8565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156113cc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113f091906118e4565b81600181518110611403576114036118b8565b6001600160a01b0392831660209182029290920101526012546114299130911684610adf565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac947906114619085905f9086903090429060040161198e565b5f604051808303815f87803b158015611478575f80fd5b505af115801561148a573d5f803e3d5ffd5b50506013805460ff60a81b1916905550505050565b5f806114ab8385611949565b9050838110156112d35760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104d9565b5f6112d383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111e6565b5f818361155e5760405162461bcd60e51b81526004016104d9919061156a565b505f611215848661196f565b5f6020808352835180828501525f5b8181101561159557858101830151858201604001528201611579565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146115c9575f80fd5b50565b80356115d7816115b5565b919050565b5f80604083850312156115ed575f80fd5b82356115f8816115b5565b946020939093013593505050565b5f805f60608486031215611618575f80fd5b8335611623816115b5565b92506020840135611633816115b5565b929592945050506040919091013590565b634e487b7160e01b5f52604160045260245ffd5b5f6020808385031215611669575f80fd5b823567ffffffffffffffff80821115611680575f80fd5b818501915085601f830112611693575f80fd5b8135818111156116a5576116a5611644565b8060051b604051601f19603f830116810181811085821117156116ca576116ca611644565b6040529182528482019250838101850191888311156116e7575f80fd5b938501935b8285101561170c576116fd856115cc565b845293850193928501926116ec565b98975050505050505050565b5f60208284031215611728575f80fd5b81356112d3816115b5565b5f8060408385031215611744575f80fd5b823561174f816115b5565b9150602083013561175f816115b5565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156117b857815f190482111561179e5761179e61176a565b808516156117ab57918102915b93841c9390800290611783565b509250929050565b5f826117ce57506001610424565b816117da57505f610424565b81600181146117f057600281146117fa57611816565b6001915050610424565b60ff84111561180b5761180b61176a565b50506001821b610424565b5060208310610133831016604e8410600b8410161715611839575081810a610424565b611843838361177e565b805f19048211156118565761185661176a565b029392505050565b5f6112d360ff8416836117c0565b80820281158282048414176104245761042461176a565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f600182016118dd576118dd61176a565b5060010190565b5f602082840312156118f4575f80fd5b81516112d3816115b5565b5f805f60608486031215611911575f80fd5b8351925060208401519150604084015190509250925092565b5f6020828403121561193a575f80fd5b815180151581146112d3575f80fd5b808201808211156104245761042461176a565b818103818111156104245761042461176a565b5f8261198957634e487b7160e01b5f52601260045260245ffd5b500490565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156119dc5784516001600160a01b0316835293830193918301916001016119b7565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212205c4c45b3fe43ce871d0081ddd591f0ae5a60ed37d4dfe0643a1eb32ed1e1736b64736f6c63430008150033

Deployed Bytecode Sourcemap

4009:9139:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5841:83;;;;;;;;;;-1:-1:-1;5911:5:0;;;;;;;;;;;;-1:-1:-1;;;5911:5:0;;;;5841:83;;;;;;;:::i;:::-;;;;;;;;6747:193;;;;;;;;;;-1:-1:-1;6747:193:0;;;;;:::i;:::-;;:::i;:::-;;;1327:14:1;;1320:22;1302:41;;1290:2;1275:18;6747:193:0;1162:187:1;5114:50:0;;;;;;;;;;;;;;;;;;;1500:25:1;;;1488:2;1473:18;5114:50:0;1354:177:1;6118:95:0;;;;;;;;;;;;;:::i;6948:446::-;;;;;;;;;;-1:-1:-1;6948:446:0;;;;;:::i;:::-;;:::i;6027:83::-;;;;;;;;;;-1:-1:-1;6027:83:0;;4734:1;2139:36:1;;2127:2;2112:18;6027:83:0;1997:184:1;11958:171:0;;;;;;;;;;-1:-1:-1;11958:171:0;;;;;:::i;:::-;;:::i;:::-;;12137:86;;;;;;;;;;-1:-1:-1;12137:86:0;;;;;:::i;:::-;-1:-1:-1;;;;;12208:7:0;12184:4;12208:7;;;:4;:7;;;;;;;;;12137:86;6221:119;;;;;;;;;;-1:-1:-1;6221:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6314:18:0;6287:7;6314:18;;;:9;:18;;;;;;;6221:119;2961:148;;;;;;;;;;;;;:::i;11404:162::-;;;;;;;;;;;;;:::i;4932:52::-;;;;;;;;;;;;;;;;2747:79;;;;;;;;;;-1:-1:-1;2785:7:0;2812:6;2747:79;;-1:-1:-1;;;;;2812:6:0;;;3842:51:1;;3830:2;3815:18;2747:79:0;3696:203:1;4991:54:0;;;;;;;;;;;;;;;;5932:87;;;;;;;;;;-1:-1:-1;6004:7:0;;;;;;;;;;;;-1:-1:-1;;;6004:7:0;;;;5932:87;;6348:199;;;;;;;;;;-1:-1:-1;6348:199:0;;;;;:::i;:::-;;:::i;5052:55::-;;;;;;;;;;;;;;;;12231:877;;;;;;;;;;;;;:::i;11783:167::-;;;;;;;;;;-1:-1:-1;11783:167:0;;;;;:::i;:::-;;:::i;6555:184::-;;;;;;;;;;-1:-1:-1;6555:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;6704:18:0;;;6672:7;6704:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6555:184;11574:101;;;;;;;;;;;;;:::i;6747:193::-;6849:4;6871:39;367:10;6894:7;6903:6;6871:8;:39::i;:::-;-1:-1:-1;6928:4:0;6747:193;;;;;:::o;6118:95::-;6171:7;4787:13;4734:1;4787:2;:13;:::i;:::-;4777:23;;:7;:23;:::i;:::-;6191:14;;6118:95;:::o;6948:446::-;7080:4;7097:36;7107:6;7115:9;7126:6;7097:9;:36::i;:::-;7144:220;7167:6;367:10;7215:138;7271:6;7215:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7215:19:0;;;;;;:11;:19;;;;;;;;367:10;7215:33;;;;;;;;;;:37;:138::i;:::-;7144:8;:220::i;:::-;-1:-1:-1;7382:4:0;6948:446;;;;;:::o;11958:171::-;2874:6;;-1:-1:-1;;;;;2874:6:0;367:10;2874:22;2866:67;;;;-1:-1:-1;;;2866:67:0;;;;;;;:::i;:::-;;;;;;;;;12033:9:::1;12028:94;12052:6;:13;12048:1;:17;12028:94;;;12105:5;12087:4;:15;12092:6;12099:1;12092:9;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;12087:15:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;12087:15:0;:23;;-1:-1:-1;;12087:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12067:3;::::1;::::0;::::1;:::i;:::-;;;;12028:94;;;;11958:171:::0;:::o;2961:148::-;2874:6;;-1:-1:-1;;;;;2874:6:0;367:10;2874:22;2866:67;;;;-1:-1:-1;;;2866:67:0;;;;;;;:::i;:::-;3068:1:::1;3052:6:::0;;3031:40:::1;::::0;-1:-1:-1;;;;;3052:6:0;;::::1;::::0;3031:40:::1;::::0;3068:1;;3031:40:::1;3099:1;3082:19:::0;;-1:-1:-1;;;;;;3082:19:0::1;::::0;;2961:148::o;11404:162::-;2874:6;;-1:-1:-1;;;;;2874:6:0;367:10;2874:22;2866:67;;;;-1:-1:-1;;;2866:67:0;;;;;;;:::i;:::-;4787:13:::1;4734:1;4787:2;:13;:::i;:::-;4777:23;::::0;:7:::1;:23;:::i;:::-;11458:12;:22:::0;4787:13:::1;4734:1;4787:2;:13;:::i;:::-;4777:23;::::0;:7:::1;:23;:::i;:::-;11491:14;:24:::0;11531:27:::1;4787:13;4734:1;4787:2;:13;:::i;:::-;4777:23;::::0;:7:::1;:23;:::i;:::-;11531:27;::::0;1500:25:1;;;1488:2;1473:18;11531:27:0::1;;;;;;;11404:162::o:0;6348:199::-;6453:4;6475:42;367:10;6499:9;6510:6;6475:9;:42::i;12231:877::-;2874:6;;-1:-1:-1;;;;;2874:6:0;367:10;2874:22;2866:67;;;;-1:-1:-1;;;2866:67:0;;;;;;;:::i;:::-;12293:11:::1;::::0;-1:-1:-1;;;12293:11:0;::::1;;;12292:12;12284:48;;;::::0;-1:-1:-1;;;12284:48:0;;6820:2:1;12284:48:0::1;::::0;::::1;6802:21:1::0;6859:2;6839:18;;;6832:30;6898:25;6878:18;;;6871:53;6941:18;;12284:48:0::1;6618:347:1::0;12284:48:0::1;12343:15;:104:::0;;-1:-1:-1;;;;;;12343:104:0::1;12394:42;12343:104:::0;;::::1;::::0;;;12458:58:::1;::::0;12475:4:::1;::::0;4787:13:::1;4734:1;4787:2;:13;:::i;:::-;4777:23;::::0;:7:::1;:23;:::i;12458:58::-;12561:15;;;;;;;;;-1:-1:-1::0;;;;;12561:15:0::1;-1:-1:-1::0;;;;;12561:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12543:55:0::1;;12625:4;12649:15;;;;;;;;;-1:-1:-1::0;;;;;12649:15:0::1;-1:-1:-1::0;;;;;12649:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12543:143;::::0;-1:-1:-1;;;;;;12543:143:0::1;::::0;;;;;;-1:-1:-1;;;;;7456:15:1;;;12543:143:0::1;::::0;::::1;7438:34:1::0;7508:15;;7488:18;;;7481:43;7373:18;;12543:143:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12527:13;:159:::0;;-1:-1:-1;;;;;12527:159:0;;::::1;-1:-1:-1::0;;;;;;12527:159:0;;::::1;;::::0;;12697:15:::1;::::0;::::1;:31;12736:21;12781:4;12801:24;12781:4:::0;-1:-1:-1;;;;;6314:18:0;6287:7;6314:18;;;:9;:18;;;;;;;6221:119;12801:24:::1;12840:1;12856::::0;12872:7:::1;2785::::0;2812:6;-1:-1:-1;;;;;2812:6:0;;2747:79;12872:7:::1;12697:223;::::0;::::1;::::0;;;-1:-1:-1;;;;;;12697:223:0;;;-1:-1:-1;;;;;7894:15:1;;;12697:223:0::1;::::0;::::1;7876:34:1::0;7926:18;;;7919:34;;;;7969:18;;;7962:34;;;;8012:18;;;8005:34;8076:15;;;8055:19;;;8048:44;12894:15:0::1;8108:19:1::0;;;8101:35;7810:19;;12697:223:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;12938:13:0::1;::::0;12983:15:::1;::::0;12931:111:::1;::::0;-1:-1:-1;;;12931:111:0;;-1:-1:-1;;;;;12983:15:0;;::::1;12931:111;::::0;::::1;8632:51:1::0;-1:-1:-1;;8699:18:1;;;8692:34;12938:13:0;::::1;::::0;-1:-1:-1;12931:29:0::1;::::0;8605:18:1;;12931:111:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;13053:11:0::1;:18:::0;;-1:-1:-1;;;;13082:18:0;-1:-1:-1;;;13082:18:0;;;12231:877::o;11783:167::-;2874:6;;-1:-1:-1;;;;;2874:6:0;367:10;2874:22;2866:67;;;;-1:-1:-1;;;2866:67:0;;;;;;;:::i;:::-;11857:9:::1;11852:91;11876:5;:12;11872:1;:16;11852:91;;;11927:4;11910;:14;11915:5;11921:1;11915:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;11910:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;11910:14:0;:21;;-1:-1:-1;;11910:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11890:3;::::1;::::0;::::1;:::i;:::-;;;;11852:91;;11574:101:::0;2874:6;;-1:-1:-1;;;;;2874:6:0;367:10;2874:22;2866:67;;;;-1:-1:-1;;;2866:67:0;;;;;;;:::i;:::-;11632:35:::1;11645:21;11632:12;:35::i;:::-;11574:101::o:0;7402:369::-;-1:-1:-1;;;;;7529:19:0;;7521:68;;;;-1:-1:-1;;;7521:68:0;;9221:2:1;7521:68:0;;;9203:21:1;9260:2;9240:18;;;9233:30;9299:34;9279:18;;;9272:62;-1:-1:-1;;;9350:18:1;;;9343:34;9394:19;;7521:68:0;9019:400:1;7521:68:0;-1:-1:-1;;;;;7608:21:0;;7600:68;;;;-1:-1:-1;;;7600:68:0;;9626:2:1;7600:68:0;;;9608:21:1;9665:2;9645:18;;;9638:30;9704:34;9684:18;;;9677:62;-1:-1:-1;;;9755:18:1;;;9748:32;9797:19;;7600:68:0;9424:398:1;7600:68:0;-1:-1:-1;;;;;7679:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7731:32;;1500:25:1;;;7731:32:0;;1473:18:1;7731:32:0;;;;;;;7402:369;;;:::o;7779:2808::-;-1:-1:-1;;;;;7901:18:0;;7893:68;;;;-1:-1:-1;;;7893:68:0;;10029:2:1;7893:68:0;;;10011:21:1;10068:2;10048:18;;;10041:30;10107:34;10087:18;;;10080:62;-1:-1:-1;;;10158:18:1;;;10151:35;10203:19;;7893:68:0;9827:401:1;7893:68:0;-1:-1:-1;;;;;7980:16:0;;7972:64;;;;-1:-1:-1;;;7972:64:0;;10435:2:1;7972:64:0;;;10417:21:1;10474:2;10454:18;;;10447:30;10513:34;10493:18;;;10486:62;-1:-1:-1;;;10564:18:1;;;10557:33;10607:19;;7972:64:0;10233:399:1;7972:64:0;8064:1;8055:6;:10;8047:64;;;;-1:-1:-1;;;8047:64:0;;10839:2:1;8047:64:0;;;10821:21:1;10878:2;10858:18;;;10851:30;10917:34;10897:18;;;10890:62;-1:-1:-1;;;10968:18:1;;;10961:39;11017:19;;8047:64:0;10637:405:1;8047:64:0;8122:17;2812:6;;-1:-1:-1;;;;;8158:15:0;;;2812:6;;8158:15;;;;:32;;-1:-1:-1;2785:7:0;2812:6;-1:-1:-1;;;;;8177:13:0;;;2812:6;;8177:13;;8158:32;8154:2062;;;-1:-1:-1;;;;;8216:10:0;;;;;;:4;:10;;;;;;;;8215:11;:24;;;;-1:-1:-1;;;;;;8231:8:0;;;;;;:4;:8;;;;;;;;8230:9;8215:24;8207:33;;;;;;8287:13;;-1:-1:-1;;;;;8279:21:0;;;8287:13;;8279:21;:72;;;;-1:-1:-1;8335:15:0;;-1:-1:-1;;;;;8321:30:0;;;8335:15;;8321:30;;8279:72;:116;;;;-1:-1:-1;;;;;;8373:22:0;;;;;;:18;:22;;;;;;;;8372:23;8279:116;8257:705;;;8442:232;8670:3;8442:201;8514:15;;8502:9;;:27;8501:119;;8606:14;;8501:119;;;8562:12;;8501:119;8442:6;;:32;:201::i;:::-;:227;;:232::i;:::-;8430:244;;8713:12;;8703:6;:22;;8695:60;;;;-1:-1:-1;;;8695:60:0;;11249:2:1;8695:60:0;;;11231:21:1;11288:2;11268:18;;;11261:30;11327:27;11307:18;;;11300:55;11372:18;;8695:60:0;11047:349:1;8695:60:0;8830:14;;8820:6;8804:13;8814:2;-1:-1:-1;;;;;6314:18:0;6287:7;6314:18;;;:9;:18;;;;;;;6221:119;8804:13;:22;;;;:::i;:::-;:40;;8774:140;;;;-1:-1:-1;;;8774:140:0;;11733:2:1;8774:140:0;;;11715:21:1;11772:2;11752:18;;;11745:30;11811:28;11791:18;;;11784:56;11857:18;;8774:140:0;11531:350:1;8774:140:0;8935:9;:11;;;:9;:11;;;:::i;:::-;;;;;;8257:705;8988:13;;-1:-1:-1;;;;;8982:19:0;;;8988:13;;8982:19;;;;:46;;-1:-1:-1;;;;;;9006:22:0;;;;;;:18;:22;;;;;;;;9005:23;8982:46;8978:227;;;9105:14;;9095:6;9079:13;9089:2;-1:-1:-1;;;;;6314:18:0;6287:7;6314:18;;;:9;:18;;;;;;;6221:119;9079:13;:22;;;;:::i;:::-;:40;;9049:140;;;;-1:-1:-1;;;9049:140:0;;11733:2:1;9049:140:0;;;11715:21:1;11772:2;11752:18;;;11745:30;11811:28;11791:18;;;11784:56;11857:18;;9049:140:0;11531:350:1;9049:140:0;9231:13;;-1:-1:-1;;;;;9225:19:0;;;9231:13;;9225:19;:44;;;;-1:-1:-1;;;;;;9248:21:0;;9264:4;9248:21;;9225:44;9221:332;;;9302:235;9533:3;9302:204;9374:16;;9362:9;;:28;9361:122;;9468:15;;9361:122;;;9423:13;;9302:6;;:32;:204::i;:235::-;9290:247;;9221:332;9618:4;9569:28;6314:18;;;:9;:18;;;;;;9662:6;;-1:-1:-1;;;9662:6:0;;;;9661:7;:47;;;;-1:-1:-1;9695:13:0;;-1:-1:-1;;;;;9689:19:0;;;9695:13;;9689:19;9661:47;:79;;;;-1:-1:-1;9729:11:0;;-1:-1:-1;;;9729:11:0;;;;9661:79;:140;;;;;9784:17;;9761:20;:40;9661:140;:191;;;;;9834:18;;9822:9;;:30;9661:191;9639:566;;;9887:109;9926:51;9930:6;9938:38;9942:20;9964:11;;9938:3;:38::i;:::-;9926:3;:51::i;:::-;9887:16;:109::i;:::-;10044:21;10088:22;;10084:106;;10135:35;10148:21;10135:12;:35::i;:::-;9868:337;9639:566;8192:2024;8154:2062;10232:13;;10228:172;;10307:4;10289:24;;;;:9;:24;;;;;;:39;;10318:9;10289:28;:39::i;:::-;10280:4;10262:24;;;;:9;:24;;;;;;;:66;;;;10348:40;;-1:-1:-1;;;;;10348:40:0;;;;;;;10378:9;1500:25:1;;1488:2;1473:18;;1354:177;10348:40:0;;;;;;;;10228:172;-1:-1:-1;;;;;10428:15:0;;;;;;:9;:15;;;;;;:27;;10448:6;10428:19;:27::i;:::-;-1:-1:-1;;;;;10410:15:0;;;;;;:9;:15;;;;;:45;10482:40;10500:21;:6;10511:9;10500:10;:21::i;:::-;-1:-1:-1;;;;;10482:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;10466:13:0;;;;;;;:9;:13;;;;;:56;;;;10538:41;;;10557:21;:6;10568:9;10557:10;:21::i;:::-;10538:41;;1500:25:1;;;1488:2;1473:18;10538:41:0;;;;;;;7882:2705;7779:2808;;;:::o;1549:224::-;1669:7;1705:12;1697:6;;;;1689:29;;;;-1:-1:-1;;;1689:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1729:9:0;1741:5;1745:1;1741;:5;:::i;:::-;1729:17;1549:224;-1:-1:-1;;;;;1549:224:0:o;11683:92::-;11740:10;;:27;;-1:-1:-1;;;;;11740:10:0;;;;:27;;;;;11760:6;;11740:10;:27;:10;:27;11760:6;11740:10;:27;;;;;;;;;;;;;;;;;;;1781:246;1839:7;1863:1;1868;1863:6;1859:47;;-1:-1:-1;1893:1:0;1886:8;;1859:47;1916:9;1928:5;1932:1;1928;:5;:::i;:::-;1916:17;-1:-1:-1;1961:1:0;1952:5;1956:1;1916:17;1952:5;:::i;:::-;:10;1944:56;;;;-1:-1:-1;;;1944:56:0;;12443:2:1;1944:56:0;;;12425:21:1;12482:2;12462:18;;;12455:30;12521:34;12501:18;;;12494:62;-1:-1:-1;;;12572:18:1;;;12565:31;12613:19;;1944:56:0;12241:397:1;1944:56:0;2018:1;1781:246;-1:-1:-1;;;1781:246:0:o;2035:132::-;2093:7;2120:39;2124:1;2127;2120:39;;;;;;;;;;;;;;;;;:3;:39::i;10595:107::-;10652:7;10684:1;10680;:5;10679:15;;10693:1;10679:15;;;-1:-1:-1;10689:1:0;10595:107;-1:-1:-1;10595:107:0:o;10913:483::-;5451:6;:13;;-1:-1:-1;;;;5451:13:0;-1:-1:-1;;;5451:13:0;;;11015:16:::1;::::0;;11029:1:::1;11015:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11015:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11015:16:0::1;10991:40;;11060:4;11042;11047:1;11042:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11042:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11086:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11086:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11042:7;;11086:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11076:4;11081:1;11076:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11076:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11151:15:::1;::::0;11119:62:::1;::::0;11136:4:::1;::::0;11151:15:::1;11169:11:::0;11119:8:::1;:62::i;:::-;11192:15;::::0;:196:::1;::::0;-1:-1:-1;;;11192:196:0;;-1:-1:-1;;;;;11192:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;11273:11;;11192:15:::1;::::0;11315:4;;11342::::1;::::0;11362:15:::1;::::0;11192:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5487:6:0;:14;;-1:-1:-1;;;;5487:14:0;;;-1:-1:-1;;;;10913:483:0:o;1218:179::-;1276:7;;1308:5;1312:1;1308;:5;:::i;:::-;1296:17;;1337:1;1332;:6;;1324:46;;;;-1:-1:-1;;;1324:46:0;;13830:2:1;1324:46:0;;;13812:21:1;13869:2;13849:18;;;13842:30;13908:29;13888:18;;;13881:57;13955:18;;1324:46:0;13628:351:1;1405:136:0;1463:7;1490:43;1494:1;1497;1490:43;;;;;;;;;;;;;;;;;:3;:43::i;2175:223::-;2295:7;2330:12;2323:5;2315:28;;;;-1:-1:-1;;;2315:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2354:9:0;2366:5;2370:1;2366;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:134::-;771:20;;800:31;771:20;800:31;:::i;:::-;703:134;;;:::o;842:315::-;910:6;918;971:2;959:9;950:7;946:23;942:32;939:52;;;987:1;984;977:12;939:52;1026:9;1013:23;1045:31;1070:5;1045:31;:::i;:::-;1095:5;1147:2;1132:18;;;;1119:32;;-1:-1:-1;;;842:315:1:o;1536:456::-;1613:6;1621;1629;1682:2;1670:9;1661:7;1657:23;1653:32;1650:52;;;1698:1;1695;1688:12;1650:52;1737:9;1724:23;1756:31;1781:5;1756:31;:::i;:::-;1806:5;-1:-1:-1;1863:2:1;1848:18;;1835:32;1876:33;1835:32;1876:33;:::i;:::-;1536:456;;1928:7;;-1:-1:-1;;;1982:2:1;1967:18;;;;1954:32;;1536:456::o;2186:127::-;2247:10;2242:3;2238:20;2235:1;2228:31;2278:4;2275:1;2268:15;2302:4;2299:1;2292:15;2318:1121;2402:6;2433:2;2476;2464:9;2455:7;2451:23;2447:32;2444:52;;;2492:1;2489;2482:12;2444:52;2532:9;2519:23;2561:18;2602:2;2594:6;2591:14;2588:34;;;2618:1;2615;2608:12;2588:34;2656:6;2645:9;2641:22;2631:32;;2701:7;2694:4;2690:2;2686:13;2682:27;2672:55;;2723:1;2720;2713:12;2672:55;2759:2;2746:16;2781:2;2777;2774:10;2771:36;;;2787:18;;:::i;:::-;2833:2;2830:1;2826:10;2865:2;2859:9;2928:2;2924:7;2919:2;2915;2911:11;2907:25;2899:6;2895:38;2983:6;2971:10;2968:22;2963:2;2951:10;2948:18;2945:46;2942:72;;;2994:18;;:::i;:::-;3030:2;3023:22;3080:18;;;3114:15;;;;-1:-1:-1;3156:11:1;;;3152:20;;;3184:19;;;3181:39;;;3216:1;3213;3206:12;3181:39;3240:11;;;;3260:148;3276:6;3271:3;3268:15;3260:148;;;3342:23;3361:3;3342:23;:::i;:::-;3330:36;;3293:12;;;;3386;;;;3260:148;;;3427:6;2318:1121;-1:-1:-1;;;;;;;;2318:1121:1:o;3444:247::-;3503:6;3556:2;3544:9;3535:7;3531:23;3527:32;3524:52;;;3572:1;3569;3562:12;3524:52;3611:9;3598:23;3630:31;3655:5;3630:31;:::i;3904:388::-;3972:6;3980;4033:2;4021:9;4012:7;4008:23;4004:32;4001:52;;;4049:1;4046;4039:12;4001:52;4088:9;4075:23;4107:31;4132:5;4107:31;:::i;:::-;4157:5;-1:-1:-1;4214:2:1;4199:18;;4186:32;4227:33;4186:32;4227:33;:::i;:::-;4279:7;4269:17;;;3904:388;;;;;:::o;4297:127::-;4358:10;4353:3;4349:20;4346:1;4339:31;4389:4;4386:1;4379:15;4413:4;4410:1;4403:15;4429:422;4518:1;4561:5;4518:1;4575:270;4596:7;4586:8;4583:21;4575:270;;;4655:4;4651:1;4647:6;4643:17;4637:4;4634:27;4631:53;;;4664:18;;:::i;:::-;4714:7;4704:8;4700:22;4697:55;;;4734:16;;;;4697:55;4813:22;;;;4773:15;;;;4575:270;;;4579:3;4429:422;;;;;:::o;4856:806::-;4905:5;4935:8;4925:80;;-1:-1:-1;4976:1:1;4990:5;;4925:80;5024:4;5014:76;;-1:-1:-1;5061:1:1;5075:5;;5014:76;5106:4;5124:1;5119:59;;;;5192:1;5187:130;;;;5099:218;;5119:59;5149:1;5140:10;;5163:5;;;5187:130;5224:3;5214:8;5211:17;5208:43;;;5231:18;;:::i;:::-;-1:-1:-1;;5287:1:1;5273:16;;5302:5;;5099:218;;5401:2;5391:8;5388:16;5382:3;5376:4;5373:13;5369:36;5363:2;5353:8;5350:16;5345:2;5339:4;5336:12;5332:35;5329:77;5326:159;;;-1:-1:-1;5438:19:1;;;5470:5;;5326:159;5517:34;5542:8;5536:4;5517:34;:::i;:::-;5587:6;5583:1;5579:6;5575:19;5566:7;5563:32;5560:58;;;5598:18;;:::i;:::-;5636:20;;4856:806;-1:-1:-1;;;4856:806:1:o;5667:140::-;5725:5;5754:47;5795:4;5785:8;5781:19;5775:4;5754:47;:::i;5812:168::-;5885:9;;;5916;;5933:15;;;5927:22;;5913:37;5903:71;;5954:18;;:::i;5985:356::-;6187:2;6169:21;;;6206:18;;;6199:30;6265:34;6260:2;6245:18;;6238:62;6332:2;6317:18;;5985:356::o;6346:127::-;6407:10;6402:3;6398:20;6395:1;6388:31;6438:4;6435:1;6428:15;6462:4;6459:1;6452:15;6478:135;6517:3;6538:17;;;6535:43;;6558:18;;:::i;:::-;-1:-1:-1;6605:1:1;6594:13;;6478:135::o;6970:251::-;7040:6;7093:2;7081:9;7072:7;7068:23;7064:32;7061:52;;;7109:1;7106;7099:12;7061:52;7141:9;7135:16;7160:31;7185:5;7160:31;:::i;8147:306::-;8235:6;8243;8251;8304:2;8292:9;8283:7;8279:23;8275:32;8272:52;;;8320:1;8317;8310:12;8272:52;8349:9;8343:16;8333:26;;8399:2;8388:9;8384:18;8378:25;8368:35;;8443:2;8432:9;8428:18;8422:25;8412:35;;8147:306;;;;;:::o;8737:277::-;8804:6;8857:2;8845:9;8836:7;8832:23;8828:32;8825:52;;;8873:1;8870;8863:12;8825:52;8905:9;8899:16;8958:5;8951:13;8944:21;8937:5;8934:32;8924:60;;8980:1;8977;8970:12;11401:125;11466:9;;;11487:10;;;11484:36;;;11500:18;;:::i;11886:128::-;11953:9;;;11974:11;;;11971:37;;;11988:18;;:::i;12019:217::-;12059:1;12085;12075:132;;12129:10;12124:3;12120:20;12117:1;12110:31;12164:4;12161:1;12154:15;12192:4;12189:1;12182:15;12075:132;-1:-1:-1;12221:9:1;;12019:217::o;12643:980::-;12905:4;12953:3;12942:9;12938:19;12984:6;12973:9;12966:25;13010:2;13048:6;13043:2;13032:9;13028:18;13021:34;13091:3;13086:2;13075:9;13071:18;13064:31;13115:6;13150;13144:13;13181:6;13173;13166:22;13219:3;13208:9;13204:19;13197:26;;13258:2;13250:6;13246:15;13232:29;;13279:1;13289:195;13303:6;13300:1;13297:13;13289:195;;;13368:13;;-1:-1:-1;;;;;13364:39:1;13352:52;;13459:15;;;;13424:12;;;;13400:1;13318:9;13289:195;;;-1:-1:-1;;;;;;;13540:32:1;;;;13535:2;13520:18;;13513:60;-1:-1:-1;;;13604:3:1;13589:19;13582:35;13501:3;12643:980;-1:-1:-1;;;12643:980:1:o

Swarm Source

ipfs://5c4c45b3fe43ce871d0081ddd591f0ae5a60ed37d4dfe0643a1eb32ed1e1736b

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.