ETH Price: $2,105.24 (-0.31%)
Gas: 0.03 Gwei

Contract

0x19Ebd2C19f0499Cba9d163258FF6b19ED38bB9bb
 

Overview

ETH Balance

7.38000000000000006 ETH

Eth Value

$15,536.64 (@ $2,105.24/ETH)

More Info

Private Name Tags

TokenTracker

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer From176027002023-07-02 0:16:11986 days ago1688256971IN
0x19Ebd2C1...ED38bB9bb
0 ETH0.0015229215.72799352
Transfer From176026972023-07-02 0:15:35986 days ago1688256935IN
0x19Ebd2C1...ED38bB9bb
0 ETH0.0013097215.13519685
Set Approval For...169802352023-04-05 4:28:111074 days ago1680668891IN
0x19Ebd2C1...ED38bB9bb
0 ETH0.0014195130.70350899
Set Approval For...164330332023-01-18 10:16:231150 days ago1674036983IN
0x19Ebd2C1...ED38bB9bb
0 ETH0.0006554614.20318704
Set Approval For...163614112023-01-08 10:15:471160 days ago1673172947IN
0x19Ebd2C1...ED38bB9bb
0 ETH0.0008330818.05211041
Set Approval For...160849432022-11-30 19:39:111199 days ago1669837151IN
0x19Ebd2C1...ED38bB9bb
0 ETH0.0008088117.49424073
Set Approval For...152688732022-08-03 10:06:571318 days ago1659521217IN
0x19Ebd2C1...ED38bB9bb
0 ETH0.0005493511.90395748
Set Approval For...147237632022-05-06 13:19:421407 days ago1651843182IN
0x19Ebd2C1...ED38bB9bb
0 ETH0.0017189437.18005821
Transfer From144612552022-03-26 10:18:351448 days ago1648289915IN
0x19Ebd2C1...ED38bB9bb
0 ETH0.001531618.29113483
Set Approval For...143295412022-03-05 22:15:111469 days ago1646518511IN
0x19Ebd2C1...ED38bB9bb
0 ETH0.001584534.27216409
Set Approval For...141980472022-02-13 13:23:041489 days ago1644758584IN
0x19Ebd2C1...ED38bB9bb
0 ETH0.0012528227.09813121
Set Approval For...141597952022-02-07 15:38:491495 days ago1644248329IN
0x19Ebd2C1...ED38bB9bb
0 ETH0.00491273106.26025445
Set Approval For...141121302022-01-31 6:55:241502 days ago1643612124IN
0x19Ebd2C1...ED38bB9bb
0 ETH0.0040741388.12174374
Transfer From140857892022-01-27 5:25:371506 days ago1643261137IN
0x19Ebd2C1...ED38bB9bb
0 ETH0.003510799.72747024
Transfer From140857892022-01-27 5:25:371506 days ago1643261137IN
0x19Ebd2C1...ED38bB9bb
0 ETH0.003510799.72747024
Set Approval For...140856272022-01-27 4:51:181507 days ago1643259078IN
0x19Ebd2C1...ED38bB9bb
0 ETH0.00300748114.20978627
Set Approval For...140856072022-01-27 4:48:211507 days ago1643258901IN
0x19Ebd2C1...ED38bB9bb
0 ETH0.00506525109.55921353
Set Approval For...140851392022-01-27 2:59:181507 days ago1643252358IN
0x19Ebd2C1...ED38bB9bb
0 ETH0.00630376136.34766851
Set Approval For...140827812022-01-26 18:05:441507 days ago1643220344IN
0x19Ebd2C1...ED38bB9bb
0 ETH0.0099074214.29296561
Set Approval For...140737782022-01-25 8:48:221508 days ago1643100502IN
0x19Ebd2C1...ED38bB9bb
0 ETH0.0038095482.39891913
Mint140731882022-01-25 6:34:251508 days ago1643092465IN
0x19Ebd2C1...ED38bB9bb
0.05 ETH0.0133730988.95350091
Pre Sale Buy140710212022-01-24 22:25:021509 days ago1643063102IN
0x19Ebd2C1...ED38bB9bb
0.04 ETH0.00337662141.89883619
Mint140677062022-01-24 10:09:151509 days ago1643018955IN
0x19Ebd2C1...ED38bB9bb
0.05 ETH0.0150580298.32975023
Mint140677042022-01-24 10:08:521509 days ago1643018932IN
0x19Ebd2C1...ED38bB9bb
0.05 ETH0.0122300679.86305774
Mint140676902022-01-24 10:05:321509 days ago1643018732IN
0x19Ebd2C1...ED38bB9bb
0.05 ETH0.0119112679.22989445
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
NFHoneyBadgers

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2022-01-16
*/

/**
 *Submitted for verification at Etherscan.io on 2022-01-16
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

library Strings {
    bytes16 private constant _HEX_SYMBOLS = "0123456789abcdef";

    /**
     * @dev Converts a `uint256` to its ASCII `string` decimal representation.
     */
    function toString(uint256 value) internal pure returns (string memory) {
        // Inspired by OraclizeAPI's implementation - MIT licence
        // https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.sol

        if (value == 0) {
            return "0";
        }
        uint256 temp = value;
        uint256 digits;
        while (temp != 0) {
            digits++;
            temp /= 10;
        }
        bytes memory buffer = new bytes(digits);
        while (value != 0) {
            digits -= 1;
            buffer[digits] = bytes1(uint8(48 + uint256(value % 10)));
            value /= 10;
        }
        return string(buffer);
    }

    /**
     * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation.
     */
    function toHexString(uint256 value) internal pure returns (string memory) {
        if (value == 0) {
            return "0x00";
        }
        uint256 temp = value;
        uint256 length = 0;
        while (temp != 0) {
            length++;
            temp >>= 8;
        }
        return toHexString(value, length);
    }

    /**
     * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length.
     */
    function toHexString(uint256 value, uint256 length)
        internal
        pure
        returns (string memory)
    {
        bytes memory buffer = new bytes(2 * length + 2);
        buffer[0] = "0";
        buffer[1] = "x";
        for (uint256 i = 2 * length + 1; i > 1; --i) {
            buffer[i] = _HEX_SYMBOLS[value & 0xf];
            value >>= 4;
        }
        require(value == 0, "Strings: hex length insufficient");
        return string(buffer);
    }
}

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

    function sendValue(address payable recipient, uint256 amount) internal {
        require(
            address(this).balance >= amount,
            "Address: insufficient balance"
        );

        (bool success, ) = recipient.call{value: amount}("");
        require(
            success,
            "Address: unable to send value, recipient may have reverted"
        );
    }

    function functionCall(address target, bytes memory data)
        internal
        returns (bytes memory)
    {
        return functionCall(target, data, "Address: low-level call failed");
    }

    function functionCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, errorMessage);
    }

    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value
    ) internal returns (bytes memory) {
        return
            functionCallWithValue(
                target,
                data,
                value,
                "Address: low-level call with value failed"
            );
    }

    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(
            address(this).balance >= value,
            "Address: insufficient balance for call"
        );
        require(isContract(target), "Address: call to non-contract");

        (bool success, bytes memory returndata) = target.call{value: value}(
            data
        );
        return verifyCallResult(success, returndata, errorMessage);
    }

    function functionStaticCall(address target, bytes memory data)
        internal
        view
        returns (bytes memory)
    {
        return
            functionStaticCall(
                target,
                data,
                "Address: low-level static call failed"
            );
    }

    function functionStaticCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal view returns (bytes memory) {
        require(isContract(target), "Address: static call to non-contract");

        (bool success, bytes memory returndata) = target.staticcall(data);
        return verifyCallResult(success, returndata, errorMessage);
    }

    function functionDelegateCall(address target, bytes memory data)
        internal
        returns (bytes memory)
    {
        return
            functionDelegateCall(
                target,
                data,
                "Address: low-level delegate call failed"
            );
    }

    function functionDelegateCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(isContract(target), "Address: delegate call to non-contract");

        (bool success, bytes memory returndata) = target.delegatecall(data);
        return verifyCallResult(success, returndata, errorMessage);
    }

    function verifyCallResult(
        bool success,
        bytes memory returndata,
        string memory errorMessage
    ) internal pure returns (bytes memory) {
        if (success) {
            return returndata;
        } else {
            if (returndata.length > 0) {
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

interface IERC165 {
    function supportsInterface(bytes4 interfaceId) external view returns (bool);
}

interface IERC721 is IERC165 {
    event Transfer(
        address indexed from,
        address indexed to,
        uint256 indexed tokenId
    );

    event Approval(
        address indexed owner,
        address indexed approved,
        uint256 indexed tokenId
    );

    event ApprovalForAll(
        address indexed owner,
        address indexed operator,
        bool approved
    );

    function balanceOf(address owner) external view returns (uint256 balance);

    function ownerOf(uint256 tokenId) external view returns (address owner);

    function safeTransferFrom(
        address from,
        address to,
        uint256 tokenId
    ) external;

    function transferFrom(
        address from,
        address to,
        uint256 tokenId
    ) external;

    function approve(address to, uint256 tokenId) external;

    function getApproved(uint256 tokenId)
        external
        view
        returns (address operator);

    function setApprovalForAll(address operator, bool _approved) external;

    function isApprovedForAll(address owner, address operator)
        external
        view
        returns (bool);

    function safeTransferFrom(
        address from,
        address to,
        uint256 tokenId,
        bytes calldata data
    ) external;
}

interface IERC721Enumerable is IERC721 {
    function totalSupply() external view returns (uint256);

    function tokenOfOwnerByIndex(address owner, uint256 index)
        external
        view
        returns (uint256 tokenId);

    function tokenByIndex(uint256 index) external view returns (uint256);
}

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

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

    constructor() {
        _setOwner(_msgSender());
    }

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

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

    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(
            newOwner != address(0),
            "Ownable: new owner is the zero address"
        );
        _setOwner(newOwner);
    }

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

interface IERC721Receiver {
    function onERC721Received(
        address operator,
        address from,
        uint256 tokenId,
        bytes calldata data
    ) external returns (bytes4);
}

abstract contract ERC165 is IERC165 {
    function supportsInterface(bytes4 interfaceId)
        public
        view
        virtual
        override
        returns (bool)
    {
        return interfaceId == type(IERC165).interfaceId;
    }
}

interface IERC721Metadata is IERC721 {
    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function tokenURI(uint256 tokenId) external view returns (string memory);
}

contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {
    using Address for address;
    using Strings for uint256;

    string private _name;

    string private _symbol;
    mapping(uint256 => address) private _owners;

    mapping(address => uint256) private _balances;

    mapping(uint256 => address) private _tokenApprovals;

    mapping(address => mapping(address => bool)) private _operatorApprovals;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    function supportsInterface(bytes4 interfaceId)
        public
        view
        virtual
        override(ERC165, IERC165)
        returns (bool)
    {
        return
            interfaceId == type(IERC721).interfaceId ||
            interfaceId == type(IERC721Metadata).interfaceId ||
            super.supportsInterface(interfaceId);
    }

    function balanceOf(address owner)
        public
        view
        virtual
        override
        returns (uint256)
    {
        require(
            owner != address(0),
            "ERC721: balance query for the zero address"
        );
        return _balances[owner];
    }

    function ownerOf(uint256 tokenId)
        public
        view
        virtual
        override
        returns (address)
    {
        address owner = _owners[tokenId];
        require(
            owner != address(0),
            "ERC721: owner query for nonexistent token"
        );
        return owner;
    }

    function name() public view virtual override returns (string memory) {
        return _name;
    }

    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    function tokenURI(uint256 tokenId)
        public
        view
        virtual
        override
        returns (string memory)
    {
        require(
            _exists(tokenId),
            "ERC721Metadata: URI query for nonexistent token"
        );

        string memory baseURI = _baseURI();
        return
            bytes(baseURI).length > 0
                ? string(abi.encodePacked(baseURI, tokenId.toString()))
                : "";
    }

    function _baseURI() internal view virtual returns (string memory) {
        return "";
    }

    function approve(address to, uint256 tokenId) public virtual override {
        address owner = ERC721.ownerOf(tokenId);
        require(to != owner, "ERC721: approval to current owner");

        require(
            _msgSender() == owner || isApprovedForAll(owner, _msgSender()),
            "ERC721: approve caller is not owner nor approved for all"
        );

        _approve(to, tokenId);
    }

    function getApproved(uint256 tokenId)
        public
        view
        virtual
        override
        returns (address)
    {
        require(
            _exists(tokenId),
            "ERC721: approved query for nonexistent token"
        );

        return _tokenApprovals[tokenId];
    }

    function setApprovalForAll(address operator, bool approved)
        public
        virtual
        override
    {
        require(operator != _msgSender(), "ERC721: approve to caller");

        _operatorApprovals[_msgSender()][operator] = approved;
        emit ApprovalForAll(_msgSender(), operator, approved);
    }

    function isApprovedForAll(address owner, address operator)
        public
        view
        virtual
        override
        returns (bool)
    {
        return _operatorApprovals[owner][operator];
    }

    function transferFrom(
        address from,
        address to,
        uint256 tokenId
    ) public virtual override {
        //solhint-disable-next-line max-line-length
        require(
            _isApprovedOrOwner(_msgSender(), tokenId),
            "ERC721: transfer caller is not owner nor approved"
        );

        _transfer(from, to, tokenId);
    }

    function safeTransferFrom(
        address from,
        address to,
        uint256 tokenId
    ) public virtual override {
        safeTransferFrom(from, to, tokenId, "");
    }

    function safeTransferFrom(
        address from,
        address to,
        uint256 tokenId,
        bytes memory _data
    ) public virtual override {
        require(
            _isApprovedOrOwner(_msgSender(), tokenId),
            "ERC721: transfer caller is not owner nor approved"
        );
        _safeTransfer(from, to, tokenId, _data);
    }

    function _safeTransfer(
        address from,
        address to,
        uint256 tokenId,
        bytes memory _data
    ) internal virtual {
        _transfer(from, to, tokenId);
        require(
            _checkOnERC721Received(from, to, tokenId, _data),
            "ERC721: transfer to non ERC721Receiver implementer"
        );
    }

    function _exists(uint256 tokenId) internal view virtual returns (bool) {
        return _owners[tokenId] != address(0);
    }

    function _isApprovedOrOwner(address spender, uint256 tokenId)
        internal
        view
        virtual
        returns (bool)
    {
        require(
            _exists(tokenId),
            "ERC721: operator query for nonexistent token"
        );
        address owner = ERC721.ownerOf(tokenId);
        return (spender == owner ||
            getApproved(tokenId) == spender ||
            isApprovedForAll(owner, spender));
    }

    function _safeMint(address to, uint256 tokenId) internal virtual {
        _safeMint(to, tokenId, "");
    }

    function _safeMint(
        address to,
        uint256 tokenId,
        bytes memory _data
    ) internal virtual {
        _mint(to, tokenId);
        require(
            _checkOnERC721Received(address(0), to, tokenId, _data),
            "ERC721: transfer to non ERC721Receiver implementer"
        );
    }

    function _mint(address to, uint256 tokenId) internal virtual {
        require(to != address(0), "ERC721: mint to the zero address");
        require(!_exists(tokenId), "ERC721: token already minted");

        _beforeTokenTransfer(address(0), to, tokenId);

        _balances[to] += 1;
        _owners[tokenId] = to;

        emit Transfer(address(0), to, tokenId);
    }

    function _burn(uint256 tokenId) internal virtual {
        address owner = ERC721.ownerOf(tokenId);

        _beforeTokenTransfer(owner, address(0), tokenId);

        // Clear approvals
        _approve(address(0), tokenId);

        _balances[owner] -= 1;
        delete _owners[tokenId];

        emit Transfer(owner, address(0), tokenId);
    }

    function _transfer(
        address from,
        address to,
        uint256 tokenId
    ) internal virtual {
        require(
            ERC721.ownerOf(tokenId) == from,
            "ERC721: transfer of token that is not own"
        );
        require(to != address(0), "ERC721: transfer to the zero address");

        _beforeTokenTransfer(from, to, tokenId);

        // Clear approvals from the previous owner
        _approve(address(0), tokenId);

        _balances[from] -= 1;
        _balances[to] += 1;
        _owners[tokenId] = to;

        emit Transfer(from, to, tokenId);
    }

    function _approve(address to, uint256 tokenId) internal virtual {
        _tokenApprovals[tokenId] = to;
        emit Approval(ERC721.ownerOf(tokenId), to, tokenId);
    }

    function _checkOnERC721Received(
        address from,
        address to,
        uint256 tokenId,
        bytes memory _data
    ) private returns (bool) {
        if (to.isContract()) {
            try
                IERC721Receiver(to).onERC721Received(
                    _msgSender(),
                    from,
                    tokenId,
                    _data
                )
            returns (bytes4 retval) {
                return retval == IERC721Receiver.onERC721Received.selector;
            } catch (bytes memory reason) {
                if (reason.length == 0) {
                    revert(
                        "ERC721: transfer to non ERC721Receiver implementer"
                    );
                } else {
                    assembly {
                        revert(add(32, reason), mload(reason))
                    }
                }
            }
        } else {
            return true;
        }
    }

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 tokenId
    ) internal virtual {}
}

abstract contract ERC721Enumerable is ERC721, IERC721Enumerable {
    mapping(address => mapping(uint256 => uint256)) private _ownedTokens;

    mapping(uint256 => uint256) private _ownedTokensIndex;

    uint256[] private _allTokens;

    mapping(uint256 => uint256) private _allTokensIndex;

    function supportsInterface(bytes4 interfaceId)
        public
        view
        virtual
        override(IERC165, ERC721)
        returns (bool)
    {
        return
            interfaceId == type(IERC721Enumerable).interfaceId ||
            super.supportsInterface(interfaceId);
    }

    function tokenOfOwnerByIndex(address owner, uint256 index)
        public
        view
        virtual
        override
        returns (uint256)
    {
        require(
            index < ERC721.balanceOf(owner),
            "ERC721Enumerable: owner index out of bounds"
        );
        return _ownedTokens[owner][index];
    }

    function totalSupply() public view virtual override returns (uint256) {
        return _allTokens.length;
    }

    function tokenByIndex(uint256 index)
        public
        view
        virtual
        override
        returns (uint256)
    {
        require(
            index < ERC721Enumerable.totalSupply(),
            "ERC721Enumerable: global index out of bounds"
        );
        return _allTokens[index];
    }

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 tokenId
    ) internal virtual override {
        super._beforeTokenTransfer(from, to, tokenId);

        if (from == address(0)) {
            _addTokenToAllTokensEnumeration(tokenId);
        } else if (from != to) {
            _removeTokenFromOwnerEnumeration(from, tokenId);
        }
        if (to == address(0)) {
            _removeTokenFromAllTokensEnumeration(tokenId);
        } else if (to != from) {
            _addTokenToOwnerEnumeration(to, tokenId);
        }
    }

    function _addTokenToOwnerEnumeration(address to, uint256 tokenId) private {
        uint256 length = ERC721.balanceOf(to);
        _ownedTokens[to][length] = tokenId;
        _ownedTokensIndex[tokenId] = length;
    }

    function _addTokenToAllTokensEnumeration(uint256 tokenId) private {
        _allTokensIndex[tokenId] = _allTokens.length;
        _allTokens.push(tokenId);
    }

    function _removeTokenFromOwnerEnumeration(address from, uint256 tokenId)
        private
    {
        uint256 lastTokenIndex = ERC721.balanceOf(from) - 1;
        uint256 tokenIndex = _ownedTokensIndex[tokenId];
        if (tokenIndex != lastTokenIndex) {
            uint256 lastTokenId = _ownedTokens[from][lastTokenIndex];

            _ownedTokens[from][tokenIndex] = lastTokenId; // Move the last token to the slot of the to-delete token
            _ownedTokensIndex[lastTokenId] = tokenIndex; // Update the moved token's index
        }

        delete _ownedTokensIndex[tokenId];
        delete _ownedTokens[from][lastTokenIndex];
    }

    function _removeTokenFromAllTokensEnumeration(uint256 tokenId) private {
        uint256 lastTokenIndex = _allTokens.length - 1;
        uint256 tokenIndex = _allTokensIndex[tokenId];

        uint256 lastTokenId = _allTokens[lastTokenIndex];

        _allTokens[tokenIndex] = lastTokenId; // Move the last token to the slot of the to-delete token
        _allTokensIndex[lastTokenId] = tokenIndex; // Update the moved token's index

        // This also deletes the contents at the last position of the array
        delete _allTokensIndex[tokenId];
        _allTokens.pop();
    }
}

contract NFHoneyBadgers is ERC721Enumerable, Ownable {
    using Strings for uint256 ; 

    bool public unreveal = false;
    bool public saleIsActive = false;
    bool public presaleActive = false;


    uint256 public reserved;
    uint256 public preSaleCount;
    uint256 public cost = 0.05 ether; //0.05eth
    uint256 public maxSupply = 10000 ;
    uint256 _price = 0.04 ether;

    string public baseURI ; 
    string public unrevealURI = "https://ipfs.io/ipfs/QmQ1ivSQyCFYy8gEz59oZ5cLMxwDMGP94q6YyNgvYFgMDk/" ;  
   

    mapping(address => uint8) public whiteList; 

    address[] internal list1 ; 
    address[] internal list2 ; 
    address[] internal list3 ; 

     constructor(
        string memory _name,
        string memory _symbol , 
        string memory _initURI
    ) ERC721(_name, _symbol) {
        setBaseURI(_initURI) ; 
     }
    

    // internal
    function _baseURI() internal view virtual override returns (string memory) {
        return baseURI ;
    } 

    function _unrevealURI() internal view returns (string memory) {
        return unrevealURI ;
    }

    function reserve(uint256 _numberOfTokens) public onlyOwner {
        require(
            reserved + _numberOfTokens <= 200, // reserved Number of NFTs
            "reserved: Exceeding reserve limit."
        );
        reserved = reserved + _numberOfTokens ;
        _mint(_numberOfTokens);
    }

    // public
    function mint(uint256 _mintAmount) external payable {
        uint256 supply = totalSupply();
        uint256 ownerTokenCount = balanceOf(_msgSender());

        require(saleIsActive, "Sale must be active to mint Badgers");
        require(
            _mintAmount > 0 && _mintAmount <= 9,
            "Can only mint 9 tokens at a time"
        );
        require(
            supply + _mintAmount <= maxSupply,
            "_mintAmount exceeds supply"
        );
        require(
            ownerTokenCount + _mintAmount <= 9,
            "Single Address Can only mint 9 tokens "
        );
        require(msg.value >= cost * _mintAmount );
        _mint(_mintAmount);
    }

    function _mint(uint256 _numberOfTokens) internal {
        uint256 supply = totalSupply();
        for (uint256 i = 1; i <= _numberOfTokens; i++) {
            _safeMint(msg.sender, supply + i);
        }
    }

    function tokenURI(uint256 tokenId)
        public
        view
        override
        returns (string memory)
    {
        require(
            _exists(tokenId),
            "ERC721Metadata: URI query for nonexistent token"
        );
        if (unreveal) {
            string memory currentBaseURI = _baseURI();
            return
                bytes(currentBaseURI).length > 0
                    ? string(
                        abi.encodePacked(currentBaseURI, tokenId.toString())
                    )
                    : "";
        } else { 
              
            string memory currentUnrevealURI = _unrevealURI();
            return
                bytes(currentUnrevealURI).length > 0
                    ? string(
                        abi.encodePacked(currentUnrevealURI, tokenId.toString(),".json")
                    )
                    : "";
            
            
        }
    }

    function preSaleBuy(uint8 _amount) external payable {
        require(presaleActive, "preSaleBuy: Presale is not active.");
        require(
            _amount > 0 && _amount <= checkInArr(msg.sender ) - whiteList[msg.sender] ,
            "preSaleBuy: Only for Whitelist users with specified amount"
        );
        require(
            preSaleCount + _amount  <= 350 , //preSaleLimit 350 
            "preSaleBuy: exceeding pre-sale limit."
        );
        require(
            msg.value >= _price * _amount ,
            "NFT25k::preSaleBuy: insufficient ethers"
        );
        preSaleCount = preSaleCount + _amount ;
        whiteList[msg.sender] += _amount ;
        _mint(_amount);
    }    

    function checkInArr(address _addr) view public returns(uint8) {
          
          for(uint256 i = 0 ;i < list1.length ; i++){
              if(list1[i] == _addr){
                  return 1 ; 
              }
          } 
          for(uint256 i = 0 ;i < list2.length ; i++){
              if(list2[i] == _addr){
                  return 2 ; 
              }
          }
          for(uint256 i = 0 ;i < list3.length ; i++){
              if(list3[i] == _addr){
                  return 3 ; 
              }
          }   
          return 0 ; 
    } 


    function addWhitelistUser( address[] memory l1, address[] memory l2, address[] memory l3 )
        external
        onlyOwner
    {
        list1 = l1 ; 
        list2 = l2 ;
        list3 = l3 ;  

    }

    function flipPresaleState() external onlyOwner {
        presaleActive = !presaleActive;
    }   

    function setMaxSupply(uint256 _maxSupply) external onlyOwner {
        maxSupply = _maxSupply ;
    } 
    
    function setBaseURI(string memory _newBaseURI) public onlyOwner {
        baseURI = _newBaseURI;
    } 

    function setUnrevealURI(string memory _newURI) external onlyOwner {
        unrevealURI = _newURI;
    }
   

    function flipSaleState() external onlyOwner {
        saleIsActive = !saleIsActive;
    }

    function setUnreveal() external onlyOwner {
        unreveal = !unreveal;
    }

    function withdraw() external payable onlyOwner {
       address payable _owner = payable(msg.sender);
        _owner.transfer(address(this).balance);
    }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"string","name":"_initURI","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","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":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address[]","name":"l1","type":"address[]"},{"internalType":"address[]","name":"l2","type":"address[]"},{"internalType":"address[]","name":"l3","type":"address[]"}],"name":"addWhitelistUser","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"baseURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"checkInArr","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cost","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"flipPresaleState","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"flipSaleState","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_mintAmount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"payable","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":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"_amount","type":"uint8"}],"name":"preSaleBuy","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"preSaleCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"presaleActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_numberOfTokens","type":"uint256"}],"name":"reserve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"reserved","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"saleIsActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_newBaseURI","type":"string"}],"name":"setBaseURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxSupply","type":"uint256"}],"name":"setMaxSupply","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setUnreveal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_newURI","type":"string"}],"name":"setUnrevealURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"tokenByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"tokenOfOwnerByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","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":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unreveal","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unrevealURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"whiteList","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"payable","type":"function"}]

600a805462ffffff60a01b1916905566b1a2bc2ec50000600d55612710600e55668e1bc9bf040000600f55610100604052604460808181529062002ec660a03980516200005591601191602090910190620001b4565b503480156200006357600080fd5b5060405162002f0a38038062002f0a833981016040819052620000869162000311565b8251839083906200009f906000906020850190620001b4565b508051620000b5906001906020840190620001b4565b505050620000d2620000cc620000e660201b60201c565b620000ea565b620000dd816200013c565b505050620003f5565b3390565b600a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600a546001600160a01b031633146200019b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640160405180910390fd5b8051620001b0906010906020840190620001b4565b5050565b828054620001c290620003a2565b90600052602060002090601f016020900481019282620001e6576000855562000231565b82601f106200020157805160ff191683800117855562000231565b8280016001018555821562000231579182015b828111156200023157825182559160200191906001019062000214565b506200023f92915062000243565b5090565b5b808211156200023f576000815560010162000244565b600082601f8301126200026c57600080fd5b81516001600160401b0380821115620002895762000289620003df565b604051601f8301601f19908116603f01168101908282118183101715620002b457620002b4620003df565b81604052838152602092508683858801011115620002d157600080fd5b600091505b83821015620002f55785820183015181830184015290820190620002d6565b83821115620003075760008385830101525b9695505050505050565b6000806000606084860312156200032757600080fd5b83516001600160401b03808211156200033f57600080fd5b6200034d878388016200025a565b945060208601519150808211156200036457600080fd5b62000372878388016200025a565b935060408601519150808211156200038957600080fd5b5062000398868287016200025a565b9150509250925092565b600181811c90821680620003b757607f821691505b60208210811415620003d957634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b612ac180620004056000396000f3fe6080604052600436106102465760003560e01c80636f8b44b011610139578063b88d4fde116100b6578063e985e9c51161007a578063e985e9c51461066f578063eb8d2444146106b8578063f2fde38b146106d9578063f61dabf4146106f9578063f81227d414610719578063fe60d12c1461072e57600080fd5b8063b88d4fde146105e3578063c87b56dd14610603578063d5abeb0114610623578063de0ec16414610639578063e7faa65c1461064f57600080fd5b80638da5cb5b116100fd5780638da5cb5b1461055d57806395d89b411461057b57806397bc411c14610590578063a0712d68146105b0578063a22cb465146105c357600080fd5b80636f8b44b0146104d357806370a08231146104f3578063715018a6146105135780637db1837214610528578063819b25ba1461053d57600080fd5b806334918dfd116101c75780634f6ccce71161018b5780634f6ccce71461043d57806353135ca01461045d57806355f804b31461047e5780636352211e1461049e5780636c0360eb146104be57600080fd5b806334918dfd146103ab578063372c12b1146103c057806338fe125e146104025780633ccfd60b1461041557806342842e0e1461041d57600080fd5b8063158756b91161020e578063158756b91461032057806318160ddd146103415780632126ea811461035657806323b872dd1461036b5780632f745c591461038b57600080fd5b806301ffc9a71461024b57806306fdde0314610280578063081812fc146102a2578063095ea7b3146102da57806313faede6146102fc575b600080fd5b34801561025757600080fd5b5061026b610266366004612615565b610744565b60405190151581526020015b60405180910390f35b34801561028c57600080fd5b5061029561076f565b60405161027791906127ab565b3480156102ae57600080fd5b506102c26102bd366004612698565b610801565b6040516001600160a01b039091168152602001610277565b3480156102e657600080fd5b506102fa6102f5366004612563565b61089b565b005b34801561030857600080fd5b50610312600d5481565b604051908152602001610277565b34801561032c57600080fd5b50600a5461026b90600160a01b900460ff1681565b34801561034d57600080fd5b50600854610312565b34801561036257600080fd5b506102956109b1565b34801561037757600080fd5b506102fa61038636600461246f565b610a3f565b34801561039757600080fd5b506103126103a6366004612563565b610a70565b3480156103b757600080fd5b506102fa610b06565b3480156103cc57600080fd5b506103f06103db366004612421565b60126020526000908152604090205460ff1681565b60405160ff9091168152602001610277565b6102fa6104103660046126b1565b610b51565b6102fa610da3565b34801561042957600080fd5b506102fa61043836600461246f565b610dff565b34801561044957600080fd5b50610312610458366004612698565b610e1a565b34801561046957600080fd5b50600a5461026b90600160b01b900460ff1681565b34801561048a57600080fd5b506102fa61049936600461264f565b610ead565b3480156104aa57600080fd5b506102c26104b9366004612698565b610eea565b3480156104ca57600080fd5b50610295610f61565b3480156104df57600080fd5b506102fa6104ee366004612698565b610f6e565b3480156104ff57600080fd5b5061031261050e366004612421565b610f9d565b34801561051f57600080fd5b506102fa611024565b34801561053457600080fd5b506102fa61105a565b34801561054957600080fd5b506102fa610558366004612698565b6110a5565b34801561056957600080fd5b50600a546001600160a01b03166102c2565b34801561058757600080fd5b50610295611152565b34801561059c57600080fd5b506102fa6105ab36600461264f565b611161565b6102fa6105be366004612698565b61119e565b3480156105cf57600080fd5b506102fa6105de366004612527565b611362565b3480156105ef57600080fd5b506102fa6105fe3660046124ab565b611427565b34801561060f57600080fd5b5061029561061e366004612698565b61145f565b34801561062f57600080fd5b50610312600e5481565b34801561064557600080fd5b50610312600c5481565b34801561065b57600080fd5b506102fa61066a36600461258d565b611596565b34801561067b57600080fd5b5061026b61068a36600461243c565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b3480156106c457600080fd5b50600a5461026b90600160a81b900460ff1681565b3480156106e557600080fd5b506102fa6106f4366004612421565b6115fb565b34801561070557600080fd5b506103f0610714366004612421565b611693565b34801561072557600080fd5b506102fa6117bf565b34801561073a57600080fd5b50610312600b5481565b60006001600160e01b0319821663780e9d6360e01b148061076957506107698261180a565b92915050565b60606000805461077e9061299d565b80601f01602080910402602001604051908101604052809291908181526020018280546107aa9061299d565b80156107f75780601f106107cc576101008083540402835291602001916107f7565b820191906000526020600020905b8154815290600101906020018083116107da57829003601f168201915b5050505050905090565b6000818152600260205260408120546001600160a01b031661087f5760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084015b60405180910390fd5b506000908152600460205260409020546001600160a01b031690565b60006108a682610eea565b9050806001600160a01b0316836001600160a01b031614156109145760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610876565b336001600160a01b03821614806109305750610930813361068a565b6109a25760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608401610876565b6109ac838361185a565b505050565b601180546109be9061299d565b80601f01602080910402602001604051908101604052809291908181526020018280546109ea9061299d565b8015610a375780601f10610a0c57610100808354040283529160200191610a37565b820191906000526020600020905b815481529060010190602001808311610a1a57829003601f168201915b505050505081565b610a4933826118c8565b610a655760405162461bcd60e51b815260040161087690612845565b6109ac8383836119bf565b6000610a7b83610f9d565b8210610add5760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b6064820152608401610876565b506001600160a01b03919091166000908152600660209081526040808320938352929052205490565b600a546001600160a01b03163314610b305760405162461bcd60e51b815260040161087690612810565b600a805460ff60a81b198116600160a81b9182900460ff1615909102179055565b600a54600160b01b900460ff16610bb55760405162461bcd60e51b815260206004820152602260248201527f70726553616c654275793a2050726573616c65206973206e6f74206163746976604482015261329760f11b6064820152608401610876565b60008160ff16118015610bf457503360008181526012602052604090205460ff1690610be090611693565b610bea919061294e565b60ff168160ff1611155b610c665760405162461bcd60e51b815260206004820152603a60248201527f70726553616c654275793a204f6e6c7920666f722057686974656c697374207560448201527f7365727320776974682073706563696669656420616d6f756e740000000000006064820152608401610876565b61015e8160ff16600c54610c7a91906128c7565b1115610cd65760405162461bcd60e51b815260206004820152602560248201527f70726553616c654275793a20657863656564696e67207072652d73616c65206c60448201526434b6b4ba1760d91b6064820152608401610876565b8060ff16600f54610ce79190612918565b341015610d465760405162461bcd60e51b815260206004820152602760248201527f4e465432356b3a3a70726553616c654275793a20696e73756666696369656e746044820152662065746865727360c81b6064820152608401610876565b8060ff16600c54610d5791906128c7565b600c553360009081526012602052604081208054839290610d7c90849060ff166128df565b92506101000a81548160ff021916908360ff160217905550610da08160ff16611b6a565b50565b600a546001600160a01b03163314610dcd5760405162461bcd60e51b815260040161087690612810565b604051339081904780156108fc02916000818181858888f19350505050158015610dfb573d6000803e3d6000fd5b5050565b6109ac83838360405180602001604052806000815250611427565b6000610e2560085490565b8210610e885760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b6064820152608401610876565b60088281548110610e9b57610e9b612a49565b90600052602060002001549050919050565b600a546001600160a01b03163314610ed75760405162461bcd60e51b815260040161087690612810565b8051610dfb906010906020840190612237565b6000818152600260205260408120546001600160a01b0316806107695760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201526832b73a103a37b5b2b760b91b6064820152608401610876565b601080546109be9061299d565b600a546001600160a01b03163314610f985760405162461bcd60e51b815260040161087690612810565b600e55565b60006001600160a01b0382166110085760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b6064820152608401610876565b506001600160a01b031660009081526003602052604090205490565b600a546001600160a01b0316331461104e5760405162461bcd60e51b815260040161087690612810565b6110586000611ba6565b565b600a546001600160a01b031633146110845760405162461bcd60e51b815260040161087690612810565b600a805460ff60a01b198116600160a01b9182900460ff1615909102179055565b600a546001600160a01b031633146110cf5760405162461bcd60e51b815260040161087690612810565b60c881600b546110df91906128c7565b11156111385760405162461bcd60e51b815260206004820152602260248201527f72657365727665643a20457863656564696e672072657365727665206c696d696044820152613a1760f11b6064820152608401610876565b80600b5461114691906128c7565b600b55610da081611b6a565b60606001805461077e9061299d565b600a546001600160a01b0316331461118b5760405162461bcd60e51b815260040161087690612810565b8051610dfb906011906020840190612237565b60006111a960085490565b905060006111b633610f9d565b600a54909150600160a81b900460ff1661121e5760405162461bcd60e51b815260206004820152602360248201527f53616c65206d7573742062652061637469766520746f206d696e74204261646760448201526265727360e81b6064820152608401610876565b60008311801561122f575060098311155b61127b5760405162461bcd60e51b815260206004820181905260248201527f43616e206f6e6c79206d696e74203920746f6b656e7320617420612074696d656044820152606401610876565b600e5461128884846128c7565b11156112d65760405162461bcd60e51b815260206004820152601a60248201527f5f6d696e74416d6f756e74206578636565647320737570706c790000000000006044820152606401610876565b60096112e284836128c7565b111561133f5760405162461bcd60e51b815260206004820152602660248201527f53696e676c6520416464726573732043616e206f6e6c79206d696e7420392074604482015265037b5b2b739960d51b6064820152608401610876565b82600d5461134d9190612918565b34101561135957600080fd5b6109ac83611b6a565b6001600160a01b0382163314156113bb5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610876565b3360008181526005602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b61143133836118c8565b61144d5760405162461bcd60e51b815260040161087690612845565b61145984848484611bf8565b50505050565b6000818152600260205260409020546060906001600160a01b03166114de5760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b6064820152608401610876565b600a54600160a01b900460ff161561154c5760006114fa611c2b565b9050600081511161151a5760405180602001604052806000815250611545565b8061152484611c3a565b604051602001611535929190612700565b6040516020818303038152906040525b9392505050565b6000611556611d38565b905060008151116115765760405180602001604052806000815250611545565b8061158084611c3a565b60405160200161153592919061272f565b919050565b600a546001600160a01b031633146115c05760405162461bcd60e51b815260040161087690612810565b82516115d39060139060208601906122bb565b5081516115e79060149060208501906122bb565b5080516114599060159060208401906122bb565b600a546001600160a01b031633146116255760405162461bcd60e51b815260040161087690612810565b6001600160a01b03811661168a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610876565b610da081611ba6565b6000805b6013548110156116f457826001600160a01b0316601382815481106116be576116be612a49565b6000918252602090912001546001600160a01b031614156116e25750600192915050565b806116ec816129d8565b915050611697565b5060005b60145481101561175557826001600160a01b03166014828154811061171f5761171f612a49565b6000918252602090912001546001600160a01b031614156117435750600292915050565b8061174d816129d8565b9150506116f8565b5060005b6015548110156117b657826001600160a01b03166015828154811061178057611780612a49565b6000918252602090912001546001600160a01b031614156117a45750600392915050565b806117ae816129d8565b915050611759565b50600092915050565b600a546001600160a01b031633146117e95760405162461bcd60e51b815260040161087690612810565b600a805460ff60b01b198116600160b01b9182900460ff1615909102179055565b60006001600160e01b031982166380ac58cd60e01b148061183b57506001600160e01b03198216635b5e139f60e01b145b8061076957506301ffc9a760e01b6001600160e01b0319831614610769565b600081815260046020526040902080546001600160a01b0319166001600160a01b038416908117909155819061188f82610eea565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000818152600260205260408120546001600160a01b03166119415760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610876565b600061194c83610eea565b9050806001600160a01b0316846001600160a01b031614806119875750836001600160a01b031661197c84610801565b6001600160a01b0316145b806119b757506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b949350505050565b826001600160a01b03166119d282610eea565b6001600160a01b031614611a3a5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201526839903737ba1037bbb760b91b6064820152608401610876565b6001600160a01b038216611a9c5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610876565b611aa7838383611d47565b611ab260008261185a565b6001600160a01b0383166000908152600360205260408120805460019290611adb908490612937565b90915550506001600160a01b0382166000908152600360205260408120805460019290611b099084906128c7565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6000611b7560085490565b905060015b8281116109ac57611b9433611b8f83856128c7565b611dff565b80611b9e816129d8565b915050611b7a565b600a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b611c038484846119bf565b611c0f84848484611e19565b6114595760405162461bcd60e51b8152600401610876906127be565b60606010805461077e9061299d565b606081611c5e5750506040805180820190915260018152600360fc1b602082015290565b8160005b8115611c885780611c72816129d8565b9150611c819050600a83612904565b9150611c62565b60008167ffffffffffffffff811115611ca357611ca3612a5f565b6040519080825280601f01601f191660200182016040528015611ccd576020820181803683370190505b5090505b84156119b757611ce2600183612937565b9150611cef600a866129f3565b611cfa9060306128c7565b60f81b818381518110611d0f57611d0f612a49565b60200101906001600160f81b031916908160001a905350611d31600a86612904565b9450611cd1565b60606011805461077e9061299d565b6001600160a01b038316611da257611d9d81600880546000838152600960205260408120829055600182018355919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30155565b611dc5565b816001600160a01b0316836001600160a01b031614611dc557611dc58382611f26565b6001600160a01b038216611ddc576109ac81611fc3565b826001600160a01b0316826001600160a01b0316146109ac576109ac8282612072565b610dfb8282604051806020016040528060008152506120b6565b60006001600160a01b0384163b15611f1b57604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290611e5d90339089908890889060040161276e565b602060405180830381600087803b158015611e7757600080fd5b505af1925050508015611ea7575060408051601f3d908101601f19168201909252611ea491810190612632565b60015b611f01573d808015611ed5576040519150601f19603f3d011682016040523d82523d6000602084013e611eda565b606091505b508051611ef95760405162461bcd60e51b8152600401610876906127be565b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490506119b7565b506001949350505050565b60006001611f3384610f9d565b611f3d9190612937565b600083815260076020526040902054909150808214611f90576001600160a01b03841660009081526006602090815260408083208584528252808320548484528184208190558352600790915290208190555b5060009182526007602090815260408084208490556001600160a01b039094168352600681528383209183525290812055565b600854600090611fd590600190612937565b60008381526009602052604081205460088054939450909284908110611ffd57611ffd612a49565b90600052602060002001549050806008838154811061201e5761201e612a49565b600091825260208083209091019290925582815260099091526040808220849055858252812055600880548061205657612056612a33565b6001900381819060005260206000200160009055905550505050565b600061207d83610f9d565b6001600160a01b039093166000908152600660209081526040808320868452825280832085905593825260079052919091209190915550565b6120c083836120e9565b6120cd6000848484611e19565b6109ac5760405162461bcd60e51b8152600401610876906127be565b6001600160a01b03821661213f5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610876565b6000818152600260205260409020546001600160a01b0316156121a45760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610876565b6121b060008383611d47565b6001600160a01b03821660009081526003602052604081208054600192906121d99084906128c7565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b8280546122439061299d565b90600052602060002090601f01602090048101928261226557600085556122ab565b82601f1061227e57805160ff19168380011785556122ab565b828001600101855582156122ab579182015b828111156122ab578251825591602001919060010190612290565b506122b7929150612310565b5090565b8280548282559060005260206000209081019282156122ab579160200282015b828111156122ab57825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906122db565b5b808211156122b75760008155600101612311565b600067ffffffffffffffff83111561233f5761233f612a5f565b612352601f8401601f1916602001612896565b905082815283838301111561236657600080fd5b828260208301376000602084830101529392505050565b80356001600160a01b038116811461159157600080fd5b600082601f8301126123a557600080fd5b8135602067ffffffffffffffff8211156123c1576123c1612a5f565b8160051b6123d0828201612896565b8381528281019086840183880185018910156123eb57600080fd5b600093505b85841015612415576124018161237d565b8352600193909301929184019184016123f0565b50979650505050505050565b60006020828403121561243357600080fd5b6115458261237d565b6000806040838503121561244f57600080fd5b6124588361237d565b91506124666020840161237d565b90509250929050565b60008060006060848603121561248457600080fd5b61248d8461237d565b925061249b6020850161237d565b9150604084013590509250925092565b600080600080608085870312156124c157600080fd5b6124ca8561237d565b93506124d86020860161237d565b925060408501359150606085013567ffffffffffffffff8111156124fb57600080fd5b8501601f8101871361250c57600080fd5b61251b87823560208401612325565b91505092959194509250565b6000806040838503121561253a57600080fd5b6125438361237d565b91506020830135801515811461255857600080fd5b809150509250929050565b6000806040838503121561257657600080fd5b61257f8361237d565b946020939093013593505050565b6000806000606084860312156125a257600080fd5b833567ffffffffffffffff808211156125ba57600080fd5b6125c687838801612394565b945060208601359150808211156125dc57600080fd5b6125e887838801612394565b935060408601359150808211156125fe57600080fd5b5061260b86828701612394565b9150509250925092565b60006020828403121561262757600080fd5b813561154581612a75565b60006020828403121561264457600080fd5b815161154581612a75565b60006020828403121561266157600080fd5b813567ffffffffffffffff81111561267857600080fd5b8201601f8101841361268957600080fd5b6119b784823560208401612325565b6000602082840312156126aa57600080fd5b5035919050565b6000602082840312156126c357600080fd5b813560ff8116811461154557600080fd5b600081518084526126ec816020860160208601612971565b601f01601f19169290920160200192915050565b60008351612712818460208801612971565b835190830190612726818360208801612971565b01949350505050565b60008351612741818460208801612971565b835190830190612755818360208801612971565b64173539b7b760d91b9101908152600501949350505050565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906127a1908301846126d4565b9695505050505050565b60208152600061154560208301846126d4565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b604051601f8201601f1916810167ffffffffffffffff811182821017156128bf576128bf612a5f565b604052919050565b600082198211156128da576128da612a07565b500190565b600060ff821660ff84168060ff038211156128fc576128fc612a07565b019392505050565b60008261291357612913612a1d565b500490565b600081600019048311821515161561293257612932612a07565b500290565b60008282101561294957612949612a07565b500390565b600060ff821660ff84168082101561296857612968612a07565b90039392505050565b60005b8381101561298c578181015183820152602001612974565b838111156114595750506000910152565b600181811c908216806129b157607f821691505b602082108114156129d257634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156129ec576129ec612a07565b5060010190565b600082612a0257612a02612a1d565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160e01b031981168114610da057600080fdfea2646970667358221220bc01c71211e93b2ef67f54cf61cce718dd34ae6d9a28c90640f4fdc5bb0eeeeb64736f6c6343000807003368747470733a2f2f697066732e696f2f697066732f516d51316976535179434659793867457a35396f5a35634c4d7877444d47503934713659794e67765946674d446b2f000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000000e4e46486f6e65794261646765727300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044e46484200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002468747470733a2f2f6e66686f6e6579626164676572732e636f6d2f6d657461646174612f00000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x6080604052600436106102465760003560e01c80636f8b44b011610139578063b88d4fde116100b6578063e985e9c51161007a578063e985e9c51461066f578063eb8d2444146106b8578063f2fde38b146106d9578063f61dabf4146106f9578063f81227d414610719578063fe60d12c1461072e57600080fd5b8063b88d4fde146105e3578063c87b56dd14610603578063d5abeb0114610623578063de0ec16414610639578063e7faa65c1461064f57600080fd5b80638da5cb5b116100fd5780638da5cb5b1461055d57806395d89b411461057b57806397bc411c14610590578063a0712d68146105b0578063a22cb465146105c357600080fd5b80636f8b44b0146104d357806370a08231146104f3578063715018a6146105135780637db1837214610528578063819b25ba1461053d57600080fd5b806334918dfd116101c75780634f6ccce71161018b5780634f6ccce71461043d57806353135ca01461045d57806355f804b31461047e5780636352211e1461049e5780636c0360eb146104be57600080fd5b806334918dfd146103ab578063372c12b1146103c057806338fe125e146104025780633ccfd60b1461041557806342842e0e1461041d57600080fd5b8063158756b91161020e578063158756b91461032057806318160ddd146103415780632126ea811461035657806323b872dd1461036b5780632f745c591461038b57600080fd5b806301ffc9a71461024b57806306fdde0314610280578063081812fc146102a2578063095ea7b3146102da57806313faede6146102fc575b600080fd5b34801561025757600080fd5b5061026b610266366004612615565b610744565b60405190151581526020015b60405180910390f35b34801561028c57600080fd5b5061029561076f565b60405161027791906127ab565b3480156102ae57600080fd5b506102c26102bd366004612698565b610801565b6040516001600160a01b039091168152602001610277565b3480156102e657600080fd5b506102fa6102f5366004612563565b61089b565b005b34801561030857600080fd5b50610312600d5481565b604051908152602001610277565b34801561032c57600080fd5b50600a5461026b90600160a01b900460ff1681565b34801561034d57600080fd5b50600854610312565b34801561036257600080fd5b506102956109b1565b34801561037757600080fd5b506102fa61038636600461246f565b610a3f565b34801561039757600080fd5b506103126103a6366004612563565b610a70565b3480156103b757600080fd5b506102fa610b06565b3480156103cc57600080fd5b506103f06103db366004612421565b60126020526000908152604090205460ff1681565b60405160ff9091168152602001610277565b6102fa6104103660046126b1565b610b51565b6102fa610da3565b34801561042957600080fd5b506102fa61043836600461246f565b610dff565b34801561044957600080fd5b50610312610458366004612698565b610e1a565b34801561046957600080fd5b50600a5461026b90600160b01b900460ff1681565b34801561048a57600080fd5b506102fa61049936600461264f565b610ead565b3480156104aa57600080fd5b506102c26104b9366004612698565b610eea565b3480156104ca57600080fd5b50610295610f61565b3480156104df57600080fd5b506102fa6104ee366004612698565b610f6e565b3480156104ff57600080fd5b5061031261050e366004612421565b610f9d565b34801561051f57600080fd5b506102fa611024565b34801561053457600080fd5b506102fa61105a565b34801561054957600080fd5b506102fa610558366004612698565b6110a5565b34801561056957600080fd5b50600a546001600160a01b03166102c2565b34801561058757600080fd5b50610295611152565b34801561059c57600080fd5b506102fa6105ab36600461264f565b611161565b6102fa6105be366004612698565b61119e565b3480156105cf57600080fd5b506102fa6105de366004612527565b611362565b3480156105ef57600080fd5b506102fa6105fe3660046124ab565b611427565b34801561060f57600080fd5b5061029561061e366004612698565b61145f565b34801561062f57600080fd5b50610312600e5481565b34801561064557600080fd5b50610312600c5481565b34801561065b57600080fd5b506102fa61066a36600461258d565b611596565b34801561067b57600080fd5b5061026b61068a36600461243c565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b3480156106c457600080fd5b50600a5461026b90600160a81b900460ff1681565b3480156106e557600080fd5b506102fa6106f4366004612421565b6115fb565b34801561070557600080fd5b506103f0610714366004612421565b611693565b34801561072557600080fd5b506102fa6117bf565b34801561073a57600080fd5b50610312600b5481565b60006001600160e01b0319821663780e9d6360e01b148061076957506107698261180a565b92915050565b60606000805461077e9061299d565b80601f01602080910402602001604051908101604052809291908181526020018280546107aa9061299d565b80156107f75780601f106107cc576101008083540402835291602001916107f7565b820191906000526020600020905b8154815290600101906020018083116107da57829003601f168201915b5050505050905090565b6000818152600260205260408120546001600160a01b031661087f5760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084015b60405180910390fd5b506000908152600460205260409020546001600160a01b031690565b60006108a682610eea565b9050806001600160a01b0316836001600160a01b031614156109145760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610876565b336001600160a01b03821614806109305750610930813361068a565b6109a25760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608401610876565b6109ac838361185a565b505050565b601180546109be9061299d565b80601f01602080910402602001604051908101604052809291908181526020018280546109ea9061299d565b8015610a375780601f10610a0c57610100808354040283529160200191610a37565b820191906000526020600020905b815481529060010190602001808311610a1a57829003601f168201915b505050505081565b610a4933826118c8565b610a655760405162461bcd60e51b815260040161087690612845565b6109ac8383836119bf565b6000610a7b83610f9d565b8210610add5760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b6064820152608401610876565b506001600160a01b03919091166000908152600660209081526040808320938352929052205490565b600a546001600160a01b03163314610b305760405162461bcd60e51b815260040161087690612810565b600a805460ff60a81b198116600160a81b9182900460ff1615909102179055565b600a54600160b01b900460ff16610bb55760405162461bcd60e51b815260206004820152602260248201527f70726553616c654275793a2050726573616c65206973206e6f74206163746976604482015261329760f11b6064820152608401610876565b60008160ff16118015610bf457503360008181526012602052604090205460ff1690610be090611693565b610bea919061294e565b60ff168160ff1611155b610c665760405162461bcd60e51b815260206004820152603a60248201527f70726553616c654275793a204f6e6c7920666f722057686974656c697374207560448201527f7365727320776974682073706563696669656420616d6f756e740000000000006064820152608401610876565b61015e8160ff16600c54610c7a91906128c7565b1115610cd65760405162461bcd60e51b815260206004820152602560248201527f70726553616c654275793a20657863656564696e67207072652d73616c65206c60448201526434b6b4ba1760d91b6064820152608401610876565b8060ff16600f54610ce79190612918565b341015610d465760405162461bcd60e51b815260206004820152602760248201527f4e465432356b3a3a70726553616c654275793a20696e73756666696369656e746044820152662065746865727360c81b6064820152608401610876565b8060ff16600c54610d5791906128c7565b600c553360009081526012602052604081208054839290610d7c90849060ff166128df565b92506101000a81548160ff021916908360ff160217905550610da08160ff16611b6a565b50565b600a546001600160a01b03163314610dcd5760405162461bcd60e51b815260040161087690612810565b604051339081904780156108fc02916000818181858888f19350505050158015610dfb573d6000803e3d6000fd5b5050565b6109ac83838360405180602001604052806000815250611427565b6000610e2560085490565b8210610e885760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b6064820152608401610876565b60088281548110610e9b57610e9b612a49565b90600052602060002001549050919050565b600a546001600160a01b03163314610ed75760405162461bcd60e51b815260040161087690612810565b8051610dfb906010906020840190612237565b6000818152600260205260408120546001600160a01b0316806107695760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201526832b73a103a37b5b2b760b91b6064820152608401610876565b601080546109be9061299d565b600a546001600160a01b03163314610f985760405162461bcd60e51b815260040161087690612810565b600e55565b60006001600160a01b0382166110085760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b6064820152608401610876565b506001600160a01b031660009081526003602052604090205490565b600a546001600160a01b0316331461104e5760405162461bcd60e51b815260040161087690612810565b6110586000611ba6565b565b600a546001600160a01b031633146110845760405162461bcd60e51b815260040161087690612810565b600a805460ff60a01b198116600160a01b9182900460ff1615909102179055565b600a546001600160a01b031633146110cf5760405162461bcd60e51b815260040161087690612810565b60c881600b546110df91906128c7565b11156111385760405162461bcd60e51b815260206004820152602260248201527f72657365727665643a20457863656564696e672072657365727665206c696d696044820152613a1760f11b6064820152608401610876565b80600b5461114691906128c7565b600b55610da081611b6a565b60606001805461077e9061299d565b600a546001600160a01b0316331461118b5760405162461bcd60e51b815260040161087690612810565b8051610dfb906011906020840190612237565b60006111a960085490565b905060006111b633610f9d565b600a54909150600160a81b900460ff1661121e5760405162461bcd60e51b815260206004820152602360248201527f53616c65206d7573742062652061637469766520746f206d696e74204261646760448201526265727360e81b6064820152608401610876565b60008311801561122f575060098311155b61127b5760405162461bcd60e51b815260206004820181905260248201527f43616e206f6e6c79206d696e74203920746f6b656e7320617420612074696d656044820152606401610876565b600e5461128884846128c7565b11156112d65760405162461bcd60e51b815260206004820152601a60248201527f5f6d696e74416d6f756e74206578636565647320737570706c790000000000006044820152606401610876565b60096112e284836128c7565b111561133f5760405162461bcd60e51b815260206004820152602660248201527f53696e676c6520416464726573732043616e206f6e6c79206d696e7420392074604482015265037b5b2b739960d51b6064820152608401610876565b82600d5461134d9190612918565b34101561135957600080fd5b6109ac83611b6a565b6001600160a01b0382163314156113bb5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610876565b3360008181526005602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b61143133836118c8565b61144d5760405162461bcd60e51b815260040161087690612845565b61145984848484611bf8565b50505050565b6000818152600260205260409020546060906001600160a01b03166114de5760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b6064820152608401610876565b600a54600160a01b900460ff161561154c5760006114fa611c2b565b9050600081511161151a5760405180602001604052806000815250611545565b8061152484611c3a565b604051602001611535929190612700565b6040516020818303038152906040525b9392505050565b6000611556611d38565b905060008151116115765760405180602001604052806000815250611545565b8061158084611c3a565b60405160200161153592919061272f565b919050565b600a546001600160a01b031633146115c05760405162461bcd60e51b815260040161087690612810565b82516115d39060139060208601906122bb565b5081516115e79060149060208501906122bb565b5080516114599060159060208401906122bb565b600a546001600160a01b031633146116255760405162461bcd60e51b815260040161087690612810565b6001600160a01b03811661168a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610876565b610da081611ba6565b6000805b6013548110156116f457826001600160a01b0316601382815481106116be576116be612a49565b6000918252602090912001546001600160a01b031614156116e25750600192915050565b806116ec816129d8565b915050611697565b5060005b60145481101561175557826001600160a01b03166014828154811061171f5761171f612a49565b6000918252602090912001546001600160a01b031614156117435750600292915050565b8061174d816129d8565b9150506116f8565b5060005b6015548110156117b657826001600160a01b03166015828154811061178057611780612a49565b6000918252602090912001546001600160a01b031614156117a45750600392915050565b806117ae816129d8565b915050611759565b50600092915050565b600a546001600160a01b031633146117e95760405162461bcd60e51b815260040161087690612810565b600a805460ff60b01b198116600160b01b9182900460ff1615909102179055565b60006001600160e01b031982166380ac58cd60e01b148061183b57506001600160e01b03198216635b5e139f60e01b145b8061076957506301ffc9a760e01b6001600160e01b0319831614610769565b600081815260046020526040902080546001600160a01b0319166001600160a01b038416908117909155819061188f82610eea565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000818152600260205260408120546001600160a01b03166119415760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610876565b600061194c83610eea565b9050806001600160a01b0316846001600160a01b031614806119875750836001600160a01b031661197c84610801565b6001600160a01b0316145b806119b757506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b949350505050565b826001600160a01b03166119d282610eea565b6001600160a01b031614611a3a5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201526839903737ba1037bbb760b91b6064820152608401610876565b6001600160a01b038216611a9c5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610876565b611aa7838383611d47565b611ab260008261185a565b6001600160a01b0383166000908152600360205260408120805460019290611adb908490612937565b90915550506001600160a01b0382166000908152600360205260408120805460019290611b099084906128c7565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6000611b7560085490565b905060015b8281116109ac57611b9433611b8f83856128c7565b611dff565b80611b9e816129d8565b915050611b7a565b600a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b611c038484846119bf565b611c0f84848484611e19565b6114595760405162461bcd60e51b8152600401610876906127be565b60606010805461077e9061299d565b606081611c5e5750506040805180820190915260018152600360fc1b602082015290565b8160005b8115611c885780611c72816129d8565b9150611c819050600a83612904565b9150611c62565b60008167ffffffffffffffff811115611ca357611ca3612a5f565b6040519080825280601f01601f191660200182016040528015611ccd576020820181803683370190505b5090505b84156119b757611ce2600183612937565b9150611cef600a866129f3565b611cfa9060306128c7565b60f81b818381518110611d0f57611d0f612a49565b60200101906001600160f81b031916908160001a905350611d31600a86612904565b9450611cd1565b60606011805461077e9061299d565b6001600160a01b038316611da257611d9d81600880546000838152600960205260408120829055600182018355919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30155565b611dc5565b816001600160a01b0316836001600160a01b031614611dc557611dc58382611f26565b6001600160a01b038216611ddc576109ac81611fc3565b826001600160a01b0316826001600160a01b0316146109ac576109ac8282612072565b610dfb8282604051806020016040528060008152506120b6565b60006001600160a01b0384163b15611f1b57604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290611e5d90339089908890889060040161276e565b602060405180830381600087803b158015611e7757600080fd5b505af1925050508015611ea7575060408051601f3d908101601f19168201909252611ea491810190612632565b60015b611f01573d808015611ed5576040519150601f19603f3d011682016040523d82523d6000602084013e611eda565b606091505b508051611ef95760405162461bcd60e51b8152600401610876906127be565b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490506119b7565b506001949350505050565b60006001611f3384610f9d565b611f3d9190612937565b600083815260076020526040902054909150808214611f90576001600160a01b03841660009081526006602090815260408083208584528252808320548484528184208190558352600790915290208190555b5060009182526007602090815260408084208490556001600160a01b039094168352600681528383209183525290812055565b600854600090611fd590600190612937565b60008381526009602052604081205460088054939450909284908110611ffd57611ffd612a49565b90600052602060002001549050806008838154811061201e5761201e612a49565b600091825260208083209091019290925582815260099091526040808220849055858252812055600880548061205657612056612a33565b6001900381819060005260206000200160009055905550505050565b600061207d83610f9d565b6001600160a01b039093166000908152600660209081526040808320868452825280832085905593825260079052919091209190915550565b6120c083836120e9565b6120cd6000848484611e19565b6109ac5760405162461bcd60e51b8152600401610876906127be565b6001600160a01b03821661213f5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610876565b6000818152600260205260409020546001600160a01b0316156121a45760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610876565b6121b060008383611d47565b6001600160a01b03821660009081526003602052604081208054600192906121d99084906128c7565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b8280546122439061299d565b90600052602060002090601f01602090048101928261226557600085556122ab565b82601f1061227e57805160ff19168380011785556122ab565b828001600101855582156122ab579182015b828111156122ab578251825591602001919060010190612290565b506122b7929150612310565b5090565b8280548282559060005260206000209081019282156122ab579160200282015b828111156122ab57825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906122db565b5b808211156122b75760008155600101612311565b600067ffffffffffffffff83111561233f5761233f612a5f565b612352601f8401601f1916602001612896565b905082815283838301111561236657600080fd5b828260208301376000602084830101529392505050565b80356001600160a01b038116811461159157600080fd5b600082601f8301126123a557600080fd5b8135602067ffffffffffffffff8211156123c1576123c1612a5f565b8160051b6123d0828201612896565b8381528281019086840183880185018910156123eb57600080fd5b600093505b85841015612415576124018161237d565b8352600193909301929184019184016123f0565b50979650505050505050565b60006020828403121561243357600080fd5b6115458261237d565b6000806040838503121561244f57600080fd5b6124588361237d565b91506124666020840161237d565b90509250929050565b60008060006060848603121561248457600080fd5b61248d8461237d565b925061249b6020850161237d565b9150604084013590509250925092565b600080600080608085870312156124c157600080fd5b6124ca8561237d565b93506124d86020860161237d565b925060408501359150606085013567ffffffffffffffff8111156124fb57600080fd5b8501601f8101871361250c57600080fd5b61251b87823560208401612325565b91505092959194509250565b6000806040838503121561253a57600080fd5b6125438361237d565b91506020830135801515811461255857600080fd5b809150509250929050565b6000806040838503121561257657600080fd5b61257f8361237d565b946020939093013593505050565b6000806000606084860312156125a257600080fd5b833567ffffffffffffffff808211156125ba57600080fd5b6125c687838801612394565b945060208601359150808211156125dc57600080fd5b6125e887838801612394565b935060408601359150808211156125fe57600080fd5b5061260b86828701612394565b9150509250925092565b60006020828403121561262757600080fd5b813561154581612a75565b60006020828403121561264457600080fd5b815161154581612a75565b60006020828403121561266157600080fd5b813567ffffffffffffffff81111561267857600080fd5b8201601f8101841361268957600080fd5b6119b784823560208401612325565b6000602082840312156126aa57600080fd5b5035919050565b6000602082840312156126c357600080fd5b813560ff8116811461154557600080fd5b600081518084526126ec816020860160208601612971565b601f01601f19169290920160200192915050565b60008351612712818460208801612971565b835190830190612726818360208801612971565b01949350505050565b60008351612741818460208801612971565b835190830190612755818360208801612971565b64173539b7b760d91b9101908152600501949350505050565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906127a1908301846126d4565b9695505050505050565b60208152600061154560208301846126d4565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b604051601f8201601f1916810167ffffffffffffffff811182821017156128bf576128bf612a5f565b604052919050565b600082198211156128da576128da612a07565b500190565b600060ff821660ff84168060ff038211156128fc576128fc612a07565b019392505050565b60008261291357612913612a1d565b500490565b600081600019048311821515161561293257612932612a07565b500290565b60008282101561294957612949612a07565b500390565b600060ff821660ff84168082101561296857612968612a07565b90039392505050565b60005b8381101561298c578181015183820152602001612974565b838111156114595750506000910152565b600181811c908216806129b157607f821691505b602082108114156129d257634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156129ec576129ec612a07565b5060010190565b600082612a0257612a02612a1d565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160e01b031981168114610da057600080fdfea2646970667358221220bc01c71211e93b2ef67f54cf61cce718dd34ae6d9a28c90640f4fdc5bb0eeeeb64736f6c63430008070033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000000e4e46486f6e65794261646765727300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044e46484200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002468747470733a2f2f6e66686f6e6579626164676572732e636f6d2f6d657461646174612f00000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _name (string): NFHoneyBadgers
Arg [1] : _symbol (string): NFHB
Arg [2] : _initURI (string): https://nfhoneybadgers.com/metadata/

-----Encoded View---------------
10 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [2] : 00000000000000000000000000000000000000000000000000000000000000e0
Arg [3] : 000000000000000000000000000000000000000000000000000000000000000e
Arg [4] : 4e46486f6e657942616467657273000000000000000000000000000000000000
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [6] : 4e46484200000000000000000000000000000000000000000000000000000000
Arg [7] : 0000000000000000000000000000000000000000000000000000000000000024
Arg [8] : 68747470733a2f2f6e66686f6e6579626164676572732e636f6d2f6d65746164
Arg [9] : 6174612f00000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

22212:5687:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18838:300;;;;;;;;;;-1:-1:-1;18838:300:0;;;;;:::i;:::-;;:::i;:::-;;;7897:14:1;;7890:22;7872:41;;7860:2;7845:18;18838:300:0;;;;;;;;11405:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;12622:308::-;;;;;;;;;;-1:-1:-1;12622:308:0;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;7195:32:1;;;7177:51;;7165:2;7150:18;12622:308:0;7031:203:1;12203:411:0;;;;;;;;;;-1:-1:-1;12203:411:0;;;;;:::i;:::-;;:::i;:::-;;22490:32;;;;;;;;;;;;;;;;;;;19075:25:1;;;19063:2;19048:18;22490:32:0;18929:177:1;22308:28:0;;;;;;;;;;-1:-1:-1;22308:28:0;;;;-1:-1:-1;;;22308:28:0;;;;;;19497:113;;;;;;;;;;-1:-1:-1;19585:10:0;:17;19497:113;;22645:98;;;;;;;;;;;;;:::i;13495:376::-;;;;;;;;;;-1:-1:-1;13495:376:0;;;;;:::i;:::-;;:::i;19146:343::-;;;;;;;;;;-1:-1:-1;19146:343:0;;;;;:::i;:::-;;:::i;27550:91::-;;;;;;;;;;;;;:::i;22760:42::-;;;;;;;;;;-1:-1:-1;22760:42:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19283:4:1;19271:17;;;19253:36;;19241:2;19226:18;22760:42:0;19111:184:1;25560:721:0;;;;;;:::i;:::-;;:::i;27738:158::-;;;:::i;13879:185::-;;;;;;;;;;-1:-1:-1;13879:185:0;;;;;:::i;:::-;;:::i;19618:320::-;;;;;;;;;;-1:-1:-1;19618:320:0;;;;;:::i;:::-;;:::i;22382:33::-;;;;;;;;;;-1:-1:-1;22382:33:0;;;;-1:-1:-1;;;22382:33:0;;;;;;27318:104;;;;;;;;;;-1:-1:-1;27318:104:0;;;;;:::i;:::-;;:::i;11071:326::-;;;;;;;;;;-1:-1:-1;11071:326:0;;;;;:::i;:::-;;:::i;22615:21::-;;;;;;;;;;;;;:::i;27202:103::-;;;;;;;;;;-1:-1:-1;27202:103:0;;;;;:::i;:::-;;:::i;10768:295::-;;;;;;;;;;-1:-1:-1;10768:295:0;;;;;:::i;:::-;;:::i;8612:94::-;;;;;;;;;;;;;:::i;27649:81::-;;;;;;;;;;;;;:::i;23352:304::-;;;;;;;;;;-1:-1:-1;23352:304:0;;;;;:::i;:::-;;:::i;8389:87::-;;;;;;;;;;-1:-1:-1;8462:6:0;;-1:-1:-1;;;;;8462:6:0;8389:87;;11513:104;;;;;;;;;;;;;:::i;27431:106::-;;;;;;;;;;-1:-1:-1;27431:106:0;;;;;:::i;:::-;;:::i;23679:696::-;;;;;;:::i;:::-;;:::i;12938:327::-;;;;;;;;;;-1:-1:-1;12938:327:0;;;;;:::i;:::-;;:::i;14072:365::-;;;;;;;;;;-1:-1:-1;14072:365:0;;;;;:::i;:::-;;:::i;24606:946::-;;;;;;;;;;-1:-1:-1;24606:946:0;;;;;:::i;:::-;;:::i;22539:32::-;;;;;;;;;;;;;;;;22456:27;;;;;;;;;;;;;;;;26875:212;;;;;;;;;;-1:-1:-1;26875:212:0;;;;;:::i;:::-;;:::i;13273:214::-;;;;;;;;;;-1:-1:-1;13273:214:0;;;;;:::i;:::-;-1:-1:-1;;;;;13444:25:0;;;13415:4;13444:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;;;13273:214;22343:32;;;;;;;;;;-1:-1:-1;22343:32:0;;;;-1:-1:-1;;;22343:32:0;;;;;;8714:229;;;;;;;;;;-1:-1:-1;8714:229:0;;;;;:::i;:::-;;:::i;26293:571::-;;;;;;;;;;-1:-1:-1;26293:571:0;;;;;:::i;:::-;;:::i;27095:96::-;;;;;;;;;;;;;:::i;22426:23::-;;;;;;;;;;;;;;;;18838:300;18985:4;-1:-1:-1;;;;;;19027:50:0;;-1:-1:-1;;;19027:50:0;;:103;;;19094:36;19118:11;19094:23;:36::i;:::-;19007:123;18838:300;-1:-1:-1;;18838:300:0:o;11405:100::-;11459:13;11492:5;11485:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11405:100;:::o;12622:308::-;12743:7;14894:16;;;:7;:16;;;;;;-1:-1:-1;;;;;14894:16:0;12768:110;;;;-1:-1:-1;;;12768:110:0;;14300:2:1;12768:110:0;;;14282:21:1;14339:2;14319:18;;;14312:30;14378:34;14358:18;;;14351:62;-1:-1:-1;;;14429:18:1;;;14422:42;14481:19;;12768:110:0;;;;;;;;;-1:-1:-1;12898:24:0;;;;:15;:24;;;;;;-1:-1:-1;;;;;12898:24:0;;12622:308::o;12203:411::-;12284:13;12300:23;12315:7;12300:14;:23::i;:::-;12284:39;;12348:5;-1:-1:-1;;;;;12342:11:0;:2;-1:-1:-1;;;;;12342:11:0;;;12334:57;;;;-1:-1:-1;;;12334:57:0;;16327:2:1;12334:57:0;;;16309:21:1;16366:2;16346:18;;;16339:30;16405:34;16385:18;;;16378:62;-1:-1:-1;;;16456:18:1;;;16449:31;16497:19;;12334:57:0;16125:397:1;12334:57:0;7999:10;-1:-1:-1;;;;;12426:21:0;;;;:62;;-1:-1:-1;12451:37:0;12468:5;7999:10;13273:214;:::i;12451:37::-;12404:168;;;;-1:-1:-1;;;12404:168:0;;11878:2:1;12404:168:0;;;11860:21:1;11917:2;11897:18;;;11890:30;11956:34;11936:18;;;11929:62;12027:26;12007:18;;;12000:54;12071:19;;12404:168:0;11676:420:1;12404:168:0;12585:21;12594:2;12598:7;12585:8;:21::i;:::-;12273:341;12203:411;;:::o;22645:98::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;13495:376::-;13704:41;7999:10;13737:7;13704:18;:41::i;:::-;13682:140;;;;-1:-1:-1;;;13682:140:0;;;;;;;:::i;:::-;13835:28;13845:4;13851:2;13855:7;13835:9;:28::i;19146:343::-;19288:7;19343:23;19360:5;19343:16;:23::i;:::-;19335:5;:31;19313:124;;;;-1:-1:-1;;;19313:124:0;;8705:2:1;19313:124:0;;;8687:21:1;8744:2;8724:18;;;8717:30;8783:34;8763:18;;;8756:62;-1:-1:-1;;;8834:18:1;;;8827:41;8885:19;;19313:124:0;8503:407:1;19313:124:0;-1:-1:-1;;;;;;19455:19:0;;;;;;;;:12;:19;;;;;;;;:26;;;;;;;;;19146:343::o;27550:91::-;8462:6;;-1:-1:-1;;;;;8462:6:0;7999:10;8524:23;8516:68;;;;-1:-1:-1;;;8516:68:0;;;;;;;:::i;:::-;27621:12:::1;::::0;;-1:-1:-1;;;;27605:28:0;::::1;-1:-1:-1::0;;;27621:12:0;;;::::1;;;27620:13;27605:28:::0;;::::1;;::::0;;27550:91::o;25560:721::-;25631:13;;-1:-1:-1;;;25631:13:0;;;;25623:60;;;;-1:-1:-1;;;25623:60:0;;18367:2:1;25623:60:0;;;18349:21:1;18406:2;18386:18;;;18379:30;18445:34;18425:18;;;18418:62;-1:-1:-1;;;18496:18:1;;;18489:32;18538:19;;25623:60:0;18165:398:1;25623:60:0;25726:1;25716:7;:11;;;:73;;;;-1:-1:-1;25778:10:0;25768:21;;;;:9;:21;;;;;;;;;25742:23;;:10;:23::i;:::-;:47;;;;:::i;:::-;25731:58;;:7;:58;;;;25716:73;25694:182;;;;-1:-1:-1;;;25694:182:0;;15900:2:1;25694:182:0;;;15882:21:1;15939:2;15919:18;;;15912:30;15978:34;15958:18;;;15951:62;16049:28;16029:18;;;16022:56;16095:19;;25694:182:0;15698:422:1;25694:182:0;25936:3;25924:7;25909:22;;:12;;:22;;;;:::i;:::-;:30;;25887:138;;;;-1:-1:-1;;;25887:138:0;;11472:2:1;25887:138:0;;;11454:21:1;11511:2;11491:18;;;11484:30;11550:34;11530:18;;;11523:62;-1:-1:-1;;;11601:18:1;;;11594:35;11646:19;;25887:138:0;11270:401:1;25887:138:0;26080:7;26071:16;;:6;;:16;;;;:::i;:::-;26058:9;:29;;26036:119;;;;-1:-1:-1;;;26036:119:0;;13124:2:1;26036:119:0;;;13106:21:1;13163:2;13143:18;;;13136:30;13202:34;13182:18;;;13175:62;-1:-1:-1;;;13253:18:1;;;13246:37;13300:19;;26036:119:0;12922:403:1;26036:119:0;26196:7;26181:22;;:12;;:22;;;;:::i;:::-;26166:12;:37;26225:10;26215:21;;;;:9;:21;;;;;:32;;26240:7;;26215:21;:32;;26240:7;;26215:32;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;26259:14;26265:7;26259:14;;:5;:14::i;:::-;25560:721;:::o;27738:158::-;8462:6;;-1:-1:-1;;;;;8462:6:0;7999:10;8524:23;8516:68;;;;-1:-1:-1;;;8516:68:0;;;;;;;:::i;:::-;27850:38:::1;::::0;27828:10:::1;::::0;;;27866:21:::1;27850:38:::0;::::1;;;::::0;27795:22:::1;27850:38:::0;27795:22;27850:38;27866:21;27828:10;27850:38;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;27785:111;27738:158::o:0;13879:185::-;14017:39;14034:4;14040:2;14044:7;14017:39;;;;;;;;;;;;:16;:39::i;19618:320::-;19738:7;19793:30;19585:10;:17;;19497:113;19793:30;19785:5;:38;19763:132;;;;-1:-1:-1;;;19763:132:0;;17954:2:1;19763:132:0;;;17936:21:1;17993:2;17973:18;;;17966:30;18032:34;18012:18;;;18005:62;-1:-1:-1;;;18083:18:1;;;18076:42;18135:19;;19763:132:0;17752:408:1;19763:132:0;19913:10;19924:5;19913:17;;;;;;;;:::i;:::-;;;;;;;;;19906:24;;19618:320;;;:::o;27318:104::-;8462:6;;-1:-1:-1;;;;;8462:6:0;7999:10;8524:23;8516:68;;;;-1:-1:-1;;;8516:68:0;;;;;;;:::i;:::-;27393:21;;::::1;::::0;:7:::1;::::0;:21:::1;::::0;::::1;::::0;::::1;:::i;11071:326::-:0;11188:7;11229:16;;;:7;:16;;;;;;-1:-1:-1;;;;;11229:16:0;11278:19;11256:110;;;;-1:-1:-1;;;11256:110:0;;12714:2:1;11256:110:0;;;12696:21:1;12753:2;12733:18;;;12726:30;12792:34;12772:18;;;12765:62;-1:-1:-1;;;12843:18:1;;;12836:39;12892:19;;11256:110:0;12512:405:1;22615:21:0;;;;;;;:::i;27202:103::-;8462:6;;-1:-1:-1;;;;;8462:6:0;7999:10;8524:23;8516:68;;;;-1:-1:-1;;;8516:68:0;;;;;;;:::i;:::-;27274:9:::1;:22:::0;27202:103::o;10768:295::-;10885:7;-1:-1:-1;;;;;10932:19:0;;10910:111;;;;-1:-1:-1;;;10910:111:0;;12303:2:1;10910:111:0;;;12285:21:1;12342:2;12322:18;;;12315:30;12381:34;12361:18;;;12354:62;-1:-1:-1;;;12432:18:1;;;12425:40;12482:19;;10910:111:0;12101:406:1;10910:111:0;-1:-1:-1;;;;;;11039:16:0;;;;;:9;:16;;;;;;;10768:295::o;8612:94::-;8462:6;;-1:-1:-1;;;;;8462:6:0;7999:10;8524:23;8516:68;;;;-1:-1:-1;;;8516:68:0;;;;;;;:::i;:::-;8677:21:::1;8695:1;8677:9;:21::i;:::-;8612:94::o:0;27649:81::-;8462:6;;-1:-1:-1;;;;;8462:6:0;7999:10;8524:23;8516:68;;;;-1:-1:-1;;;8516:68:0;;;;;;;:::i;:::-;27714:8:::1;::::0;;-1:-1:-1;;;;27702:20:0;::::1;-1:-1:-1::0;;;27714:8:0;;;::::1;;;27713:9;27702:20:::0;;::::1;;::::0;;27649:81::o;23352:304::-;8462:6;;-1:-1:-1;;;;;8462:6:0;7999:10;8524:23;8516:68;;;;-1:-1:-1;;;8516:68:0;;;;;;;:::i;:::-;23474:3:::1;23455:15;23444:8;;:26;;;;:::i;:::-;:33;;23422:144;;;::::0;-1:-1:-1;;;23422:144:0;;16729:2:1;23422:144:0::1;::::0;::::1;16711:21:1::0;16768:2;16748:18;;;16741:30;16807:34;16787:18;;;16780:62;-1:-1:-1;;;16858:18:1;;;16851:32;16900:19;;23422:144:0::1;16527:398:1::0;23422:144:0::1;23599:15;23588:8;;:26;;;;:::i;:::-;23577:8;:37:::0;23626:22:::1;23632:15:::0;23626:5:::1;:22::i;11513:104::-:0;11569:13;11602:7;11595:14;;;;;:::i;27431:106::-;8462:6;;-1:-1:-1;;;;;8462:6:0;7999:10;8524:23;8516:68;;;;-1:-1:-1;;;8516:68:0;;;;;;;:::i;:::-;27508:21;;::::1;::::0;:11:::1;::::0;:21:::1;::::0;::::1;::::0;::::1;:::i;23679:696::-:0;23742:14;23759:13;19585:10;:17;;19497:113;23759:13;23742:30;-1:-1:-1;23783:23:0;23809;7999:10;10768:295;:::i;23809:23::-;23853:12;;23783:49;;-1:-1:-1;;;;23853:12:0;;;;23845:60;;;;-1:-1:-1;;;23845:60:0;;17550:2:1;23845:60:0;;;17532:21:1;17589:2;17569:18;;;17562:30;17628:34;17608:18;;;17601:62;-1:-1:-1;;;17679:18:1;;;17672:33;17722:19;;23845:60:0;17348:399:1;23845:60:0;23952:1;23938:11;:15;:35;;;;;23972:1;23957:11;:16;;23938:35;23916:117;;;;-1:-1:-1;;;23916:117:0;;18770:2:1;23916:117:0;;;18752:21:1;;;18789:18;;;18782:30;18848:34;18828:18;;;18821:62;18900:18;;23916:117:0;18568:356:1;23916:117:0;24090:9;;24066:20;24075:11;24066:6;:20;:::i;:::-;:33;;24044:109;;;;-1:-1:-1;;;24044:109:0;;8350:2:1;24044:109:0;;;8332:21:1;8389:2;8369:18;;;8362:30;8428:28;8408:18;;;8401:56;8474:18;;24044:109:0;8148:350:1;24044:109:0;24219:1;24186:29;24204:11;24186:15;:29;:::i;:::-;:34;;24164:122;;;;-1:-1:-1;;;24164:122:0;;13893:2:1;24164:122:0;;;13875:21:1;13932:2;13912:18;;;13905:30;13971:34;13951:18;;;13944:62;-1:-1:-1;;;14022:18:1;;;14015:36;14068:19;;24164:122:0;13691:402:1;24164:122:0;24325:11;24318:4;;:18;;;;:::i;:::-;24305:9;:31;;24297:41;;;;;;24349:18;24355:11;24349:5;:18::i;12938:327::-;-1:-1:-1;;;;;13073:24:0;;7999:10;13073:24;;13065:62;;;;-1:-1:-1;;;13065:62:0;;10705:2:1;13065:62:0;;;10687:21:1;10744:2;10724:18;;;10717:30;10783:27;10763:18;;;10756:55;10828:18;;13065:62:0;10503:349:1;13065:62:0;7999:10;13140:32;;;;:18;:32;;;;;;;;-1:-1:-1;;;;;13140:42:0;;;;;;;;;;;;:53;;-1:-1:-1;;13140:53:0;;;;;;;;;;13209:48;;7872:41:1;;;13140:42:0;;7999:10;13209:48;;7845:18:1;13209:48:0;;;;;;;12938:327;;:::o;14072:365::-;14261:41;7999:10;14294:7;14261:18;:41::i;:::-;14239:140;;;;-1:-1:-1;;;14239:140:0;;;;;;;:::i;:::-;14390:39;14404:4;14410:2;14414:7;14423:5;14390:13;:39::i;:::-;14072:365;;;;:::o;24606:946::-;14870:4;14894:16;;;:7;:16;;;;;;24707:13;;-1:-1:-1;;;;;14894:16:0;24738:113;;;;-1:-1:-1;;;24738:113:0;;15484:2:1;24738:113:0;;;15466:21:1;15523:2;15503:18;;;15496:30;15562:34;15542:18;;;15535:62;-1:-1:-1;;;15613:18:1;;;15606:45;15668:19;;24738:113:0;15282:411:1;24738:113:0;24866:8;;-1:-1:-1;;;24866:8:0;;;;24862:683;;;24891:28;24922:10;:8;:10::i;:::-;24891:41;;25002:1;24977:14;24971:28;:32;:190;;;;;;;;;;;;;;;;;25077:14;25093:18;:7;:16;:18::i;:::-;25060:52;;;;;;;;;:::i;:::-;;;;;;;;;;;;;24971:190;24947:214;24606:946;-1:-1:-1;;;24606:946:0:o;24862:683::-;25211:32;25246:14;:12;:14::i;:::-;25211:49;;25334:1;25305:18;25299:32;:36;:206;;;;;;;;;;;;;;;;;25409:18;25429;:7;:16;:18::i;:::-;25392:64;;;;;;;;;:::i;24862:683::-;24606:946;;;:::o;26875:212::-;8462:6;;-1:-1:-1;;;;;8462:6:0;7999:10;8524:23;8516:68;;;;-1:-1:-1;;;8516:68:0;;;;;;;:::i;:::-;27019:10;;::::1;::::0;:5:::1;::::0;:10:::1;::::0;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;27042:10:0;;::::1;::::0;:5:::1;::::0;:10:::1;::::0;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;27064:10:0;;::::1;::::0;:5:::1;::::0;:10:::1;::::0;::::1;::::0;::::1;:::i;8714:229::-:0;8462:6;;-1:-1:-1;;;;;8462:6:0;7999:10;8524:23;8516:68;;;;-1:-1:-1;;;8516:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8817:22:0;::::1;8795:110;;;::::0;-1:-1:-1;;;8795:110:0;;9536:2:1;8795:110:0::1;::::0;::::1;9518:21:1::0;9575:2;9555:18;;;9548:30;9614:34;9594:18;;;9587:62;-1:-1:-1;;;9665:18:1;;;9658:36;9711:19;;8795:110:0::1;9334:402:1::0;8795:110:0::1;8916:19;8926:8;8916:9;:19::i;26293:571::-:0;26348:5;;26380:142;26403:5;:12;26399:16;;26380:142;;;26454:5;-1:-1:-1;;;;;26442:17:0;:5;26448:1;26442:8;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;26442:8:0;:17;26439:70;;;-1:-1:-1;26488:1:0;;26293:571;-1:-1:-1;;26293:571:0:o;26439:70::-;26418:3;;;;:::i;:::-;;;;26380:142;;;;26539:9;26535:142;26558:5;:12;26554:16;;26535:142;;;26609:5;-1:-1:-1;;;;;26597:17:0;:5;26603:1;26597:8;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;26597:8:0;:17;26594:70;;;-1:-1:-1;26643:1:0;;26293:571;-1:-1:-1;;26293:571:0:o;26594:70::-;26573:3;;;;:::i;:::-;;;;26535:142;;;;26693:9;26689:142;26712:5;:12;26708:16;;26689:142;;;26763:5;-1:-1:-1;;;;;26751:17:0;:5;26757:1;26751:8;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;26751:8:0;:17;26748:70;;;-1:-1:-1;26797:1:0;;26293:571;-1:-1:-1;;26293:571:0:o;26748:70::-;26727:3;;;;:::i;:::-;;;;26689:142;;;-1:-1:-1;26853:1:0;;26293:571;-1:-1:-1;;26293:571:0:o;27095:96::-;8462:6;;-1:-1:-1;;;;;8462:6:0;7999:10;8524:23;8516:68;;;;-1:-1:-1;;;8516:68:0;;;;;;;:::i;:::-;27170:13:::1;::::0;;-1:-1:-1;;;;27153:30:0;::::1;-1:-1:-1::0;;;27170:13:0;;;::::1;;;27169:14;27153:30:::0;;::::1;;::::0;;27095:96::o;10405:355::-;10552:4;-1:-1:-1;;;;;;10594:40:0;;-1:-1:-1;;;10594:40:0;;:105;;-1:-1:-1;;;;;;;10651:48:0;;-1:-1:-1;;;10651:48:0;10594:105;:158;;;-1:-1:-1;;;;;;;;;;9538:40:0;;;10716:36;9379:207;17228:174;17303:24;;;;:15;:24;;;;;:29;;-1:-1:-1;;;;;;17303:29:0;-1:-1:-1;;;;;17303:29:0;;;;;;;;:24;;17357:23;17303:24;17357:14;:23::i;:::-;-1:-1:-1;;;;;17348:46:0;;;;;;;;;;;17228:174;;:::o;14940:452::-;15069:4;14894:16;;;:7;:16;;;;;;-1:-1:-1;;;;;14894:16:0;15091:110;;;;-1:-1:-1;;;15091:110:0;;11059:2:1;15091:110:0;;;11041:21:1;11098:2;11078:18;;;11071:30;11137:34;11117:18;;;11110:62;-1:-1:-1;;;11188:18:1;;;11181:42;11240:19;;15091:110:0;10857:408:1;15091:110:0;15212:13;15228:23;15243:7;15228:14;:23::i;:::-;15212:39;;15281:5;-1:-1:-1;;;;;15270:16:0;:7;-1:-1:-1;;;;;15270:16:0;;:64;;;;15327:7;-1:-1:-1;;;;;15303:31:0;:20;15315:7;15303:11;:20::i;:::-;-1:-1:-1;;;;;15303:31:0;;15270:64;:113;;;-1:-1:-1;;;;;;13444:25:0;;;13415:4;13444:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;15351:32;15262:122;14940:452;-1:-1:-1;;;;14940:452:0:o;16605:615::-;16778:4;-1:-1:-1;;;;;16751:31:0;:23;16766:7;16751:14;:23::i;:::-;-1:-1:-1;;;;;16751:31:0;;16729:122;;;;-1:-1:-1;;;16729:122:0;;15074:2:1;16729:122:0;;;15056:21:1;15113:2;15093:18;;;15086:30;15152:34;15132:18;;;15125:62;-1:-1:-1;;;15203:18:1;;;15196:39;15252:19;;16729:122:0;14872:405:1;16729:122:0;-1:-1:-1;;;;;16870:16:0;;16862:65;;;;-1:-1:-1;;;16862:65:0;;10300:2:1;16862:65:0;;;10282:21:1;10339:2;10319:18;;;10312:30;10378:34;10358:18;;;10351:62;-1:-1:-1;;;10429:18:1;;;10422:34;10473:19;;16862:65:0;10098:400:1;16862:65:0;16940:39;16961:4;16967:2;16971:7;16940:20;:39::i;:::-;17044:29;17061:1;17065:7;17044:8;:29::i;:::-;-1:-1:-1;;;;;17086:15:0;;;;;;:9;:15;;;;;:20;;17105:1;;17086:15;:20;;17105:1;;17086:20;:::i;:::-;;;;-1:-1:-1;;;;;;;17117:13:0;;;;;;:9;:13;;;;;:18;;17134:1;;17117:13;:18;;17134:1;;17117:18;:::i;:::-;;;;-1:-1:-1;;17146:16:0;;;;:7;:16;;;;;;:21;;-1:-1:-1;;;;;;17146:21:0;-1:-1:-1;;;;;17146:21:0;;;;;;;;;17185:27;;17146:16;;17185:27;;;;;;;16605:615;;;:::o;24383:215::-;24443:14;24460:13;19585:10;:17;;19497:113;24460:13;24443:30;-1:-1:-1;24501:1:0;24484:107;24509:15;24504:1;:20;24484:107;;24546:33;24556:10;24568;24577:1;24568:6;:10;:::i;:::-;24546:9;:33::i;:::-;24526:3;;;;:::i;:::-;;;;24484:107;;8951:173;9026:6;;;-1:-1:-1;;;;;9043:17:0;;;-1:-1:-1;;;;;;9043:17:0;;;;;;;9076:40;;9026:6;;;9043:17;9026:6;;9076:40;;9007:16;;9076:40;8996:128;8951:173;:::o;14445:352::-;14602:28;14612:4;14618:2;14622:7;14602:9;:28::i;:::-;14663:48;14686:4;14692:2;14696:7;14705:5;14663:22;:48::i;:::-;14641:148;;;;-1:-1:-1;;;14641:148:0;;;;;;;:::i;23126:109::-;23186:13;23219:7;23212:14;;;;;:::i;321:723::-;377:13;598:10;594:53;;-1:-1:-1;;625:10:0;;;;;;;;;;;;-1:-1:-1;;;625:10:0;;;;;321:723::o;594:53::-;672:5;657:12;713:78;720:9;;713:78;;746:8;;;;:::i;:::-;;-1:-1:-1;769:10:0;;-1:-1:-1;777:2:0;769:10;;:::i;:::-;;;713:78;;;801:19;833:6;823:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;823:17:0;;801:39;;851:154;858:10;;851:154;;885:11;895:1;885:11;;:::i;:::-;;-1:-1:-1;954:10:0;962:2;954:5;:10;:::i;:::-;941:24;;:2;:24;:::i;:::-;928:39;;911:6;918;911:14;;;;;;;;:::i;:::-;;;;:56;-1:-1:-1;;;;;911:56:0;;;;;;;;-1:-1:-1;982:11:0;991:2;982:11;;:::i;:::-;;;851:154;;23244:100;23291:13;23324:11;23317:18;;;;;:::i;19946:589::-;-1:-1:-1;;;;;20152:18:0;;20148:187;;20187:40;20219:7;20876:10;:17;;20849:24;;;;:15;:24;;;;;:44;;;20904:24;;;;;;;;;;;;20772:164;20187:40;20148:187;;;20257:2;-1:-1:-1;;;;;20249:10:0;:4;-1:-1:-1;;;;;20249:10:0;;20245:90;;20276:47;20309:4;20315:7;20276:32;:47::i;:::-;-1:-1:-1;;;;;20349:16:0;;20345:183;;20382:45;20419:7;20382:36;:45::i;20345:183::-;20455:4;-1:-1:-1;;;;;20449:10:0;:2;-1:-1:-1;;;;;20449:10:0;;20445:83;;20476:40;20504:2;20508:7;20476:27;:40::i;15400:110::-;15476:26;15486:2;15490:7;15476:26;;;;;;;;;;;;:9;:26::i;17410:980::-;17565:4;-1:-1:-1;;;;;17586:13:0;;2267:20;2315:8;17582:801;;17639:175;;-1:-1:-1;;;17639:175:0;;-1:-1:-1;;;;;17639:36:0;;;;;:175;;7999:10;;17733:4;;17760:7;;17790:5;;17639:175;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17639:175:0;;;;;;;;-1:-1:-1;;17639:175:0;;;;;;;;;;;;:::i;:::-;;;17618:710;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17997:13:0;;17993:320;;18040:108;;-1:-1:-1;;;18040:108:0;;;;;;;:::i;17993:320::-;18263:6;18257:13;18248:6;18244:2;18240:15;18233:38;17618:710;-1:-1:-1;;;;;;17878:51:0;-1:-1:-1;;;17878:51:0;;-1:-1:-1;17871:58:0;;17582:801;-1:-1:-1;18367:4:0;17410:980;;;;;;:::o;20944:659::-;21050:22;21100:1;21075:22;21092:4;21075:16;:22::i;:::-;:26;;;;:::i;:::-;21112:18;21133:26;;;:17;:26;;;;;;21050:51;;-1:-1:-1;21174:28:0;;;21170:328;;-1:-1:-1;;;;;21241:18:0;;21219:19;21241:18;;;:12;:18;;;;;;;;:34;;;;;;;;;21292:30;;;;;;:44;;;21409:30;;:17;:30;;;;;:43;;;21170:328;-1:-1:-1;21517:26:0;;;;:17;:26;;;;;;;;21510:33;;;-1:-1:-1;;;;;21561:18:0;;;;;:12;:18;;;;;:34;;;;;;;21554:41;20944:659::o;21611:594::-;21718:10;:17;21693:22;;21718:21;;21738:1;;21718:21;:::i;:::-;21750:18;21771:24;;;:15;:24;;;;;;21830:10;:26;;21693:46;;-1:-1:-1;21771:24:0;;21693:46;;21830:26;;;;;;:::i;:::-;;;;;;;;;21808:48;;21894:11;21869:10;21880;21869:22;;;;;;;;:::i;:::-;;;;;;;;;;;;:36;;;;21974:28;;;:15;:28;;;;;;;:41;;;22146:24;;;;;22139:31;22181:10;:16;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;21682:523;;;21611:594;:::o;20543:221::-;20628:14;20645:20;20662:2;20645:16;:20::i;:::-;-1:-1:-1;;;;;20676:16:0;;;;;;;:12;:16;;;;;;;;:24;;;;;;;;:34;;;20721:26;;;:17;:26;;;;;;:35;;;;-1:-1:-1;20543:221:0:o;15518:321::-;15648:18;15654:2;15658:7;15648:5;:18::i;:::-;15699:54;15730:1;15734:2;15738:7;15747:5;15699:22;:54::i;:::-;15677:154;;;;-1:-1:-1;;;15677:154:0;;;;;;;:::i;15847:382::-;-1:-1:-1;;;;;15927:16:0;;15919:61;;;;-1:-1:-1;;;15919:61:0;;13532:2:1;15919:61:0;;;13514:21:1;;;13551:18;;;13544:30;13610:34;13590:18;;;13583:62;13662:18;;15919:61:0;13330:356:1;15919:61:0;14870:4;14894:16;;;:7;:16;;;;;;-1:-1:-1;;;;;14894:16:0;:30;15991:58;;;;-1:-1:-1;;;15991:58:0;;9943:2:1;15991:58:0;;;9925:21:1;9982:2;9962:18;;;9955:30;10021;10001:18;;;9994:58;10069:18;;15991:58:0;9741:352:1;15991:58:0;16062:45;16091:1;16095:2;16099:7;16062:20;:45::i;:::-;-1:-1:-1;;;;;16120:13:0;;;;;;:9;:13;;;;;:18;;16137:1;;16120:13;:18;;16137:1;;16120:18;:::i;:::-;;;;-1:-1:-1;;16149:16:0;;;;:7;:16;;;;;;:21;;-1:-1:-1;;;;;;16149:21:0;-1:-1:-1;;;;;16149:21:0;;;;;;;;16188:33;;16149:16;;;16188:33;;16149:16;;16188:33;15847:382;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:406:1;78:5;112:18;104:6;101:30;98:56;;;134:18;;:::i;:::-;172:57;217:2;196:15;;-1:-1:-1;;192:29:1;223:4;188:40;172:57;:::i;:::-;163:66;;252:6;245:5;238:21;292:3;283:6;278:3;274:16;271:25;268:45;;;309:1;306;299:12;268:45;358:6;353:3;346:4;339:5;335:16;322:43;412:1;405:4;396:6;389:5;385:18;381:29;374:40;14:406;;;;;:::o;425:173::-;493:20;;-1:-1:-1;;;;;542:31:1;;532:42;;522:70;;588:1;585;578:12;603:729;657:5;710:3;703:4;695:6;691:17;687:27;677:55;;728:1;725;718:12;677:55;764:6;751:20;790:4;813:18;809:2;806:26;803:52;;;835:18;;:::i;:::-;881:2;878:1;874:10;904:28;928:2;924;920:11;904:28;:::i;:::-;966:15;;;997:12;;;;1029:15;;;1063;;;1059:24;;1056:33;-1:-1:-1;1053:53:1;;;1102:1;1099;1092:12;1053:53;1124:1;1115:10;;1134:169;1148:2;1145:1;1142:9;1134:169;;;1205:23;1224:3;1205:23;:::i;:::-;1193:36;;1166:1;1159:9;;;;;1249:12;;;;1281;;1134:169;;;-1:-1:-1;1321:5:1;603:729;-1:-1:-1;;;;;;;603:729:1:o;1337:186::-;1396:6;1449:2;1437:9;1428:7;1424:23;1420:32;1417:52;;;1465:1;1462;1455:12;1417:52;1488:29;1507:9;1488:29;:::i;1528:260::-;1596:6;1604;1657:2;1645:9;1636:7;1632:23;1628:32;1625:52;;;1673:1;1670;1663:12;1625:52;1696:29;1715:9;1696:29;:::i;:::-;1686:39;;1744:38;1778:2;1767:9;1763:18;1744:38;:::i;:::-;1734:48;;1528:260;;;;;:::o;1793:328::-;1870:6;1878;1886;1939:2;1927:9;1918:7;1914:23;1910:32;1907:52;;;1955:1;1952;1945:12;1907:52;1978:29;1997:9;1978:29;:::i;:::-;1968:39;;2026:38;2060:2;2049:9;2045:18;2026:38;:::i;:::-;2016:48;;2111:2;2100:9;2096:18;2083:32;2073:42;;1793:328;;;;;:::o;2126:666::-;2221:6;2229;2237;2245;2298:3;2286:9;2277:7;2273:23;2269:33;2266:53;;;2315:1;2312;2305:12;2266:53;2338:29;2357:9;2338:29;:::i;:::-;2328:39;;2386:38;2420:2;2409:9;2405:18;2386:38;:::i;:::-;2376:48;;2471:2;2460:9;2456:18;2443:32;2433:42;;2526:2;2515:9;2511:18;2498:32;2553:18;2545:6;2542:30;2539:50;;;2585:1;2582;2575:12;2539:50;2608:22;;2661:4;2653:13;;2649:27;-1:-1:-1;2639:55:1;;2690:1;2687;2680:12;2639:55;2713:73;2778:7;2773:2;2760:16;2755:2;2751;2747:11;2713:73;:::i;:::-;2703:83;;;2126:666;;;;;;;:::o;2797:347::-;2862:6;2870;2923:2;2911:9;2902:7;2898:23;2894:32;2891:52;;;2939:1;2936;2929:12;2891:52;2962:29;2981:9;2962:29;:::i;:::-;2952:39;;3041:2;3030:9;3026:18;3013:32;3088:5;3081:13;3074:21;3067:5;3064:32;3054:60;;3110:1;3107;3100:12;3054:60;3133:5;3123:15;;;2797:347;;;;;:::o;3149:254::-;3217:6;3225;3278:2;3266:9;3257:7;3253:23;3249:32;3246:52;;;3294:1;3291;3284:12;3246:52;3317:29;3336:9;3317:29;:::i;:::-;3307:39;3393:2;3378:18;;;;3365:32;;-1:-1:-1;;;3149:254:1:o;3408:821::-;3560:6;3568;3576;3629:2;3617:9;3608:7;3604:23;3600:32;3597:52;;;3645:1;3642;3635:12;3597:52;3685:9;3672:23;3714:18;3755:2;3747:6;3744:14;3741:34;;;3771:1;3768;3761:12;3741:34;3794:61;3847:7;3838:6;3827:9;3823:22;3794:61;:::i;:::-;3784:71;;3908:2;3897:9;3893:18;3880:32;3864:48;;3937:2;3927:8;3924:16;3921:36;;;3953:1;3950;3943:12;3921:36;3976:63;4031:7;4020:8;4009:9;4005:24;3976:63;:::i;:::-;3966:73;;4092:2;4081:9;4077:18;4064:32;4048:48;;4121:2;4111:8;4108:16;4105:36;;;4137:1;4134;4127:12;4105:36;;4160:63;4215:7;4204:8;4193:9;4189:24;4160:63;:::i;:::-;4150:73;;;3408:821;;;;;:::o;4234:245::-;4292:6;4345:2;4333:9;4324:7;4320:23;4316:32;4313:52;;;4361:1;4358;4351:12;4313:52;4400:9;4387:23;4419:30;4443:5;4419:30;:::i;4484:249::-;4553:6;4606:2;4594:9;4585:7;4581:23;4577:32;4574:52;;;4622:1;4619;4612:12;4574:52;4654:9;4648:16;4673:30;4697:5;4673:30;:::i;4738:450::-;4807:6;4860:2;4848:9;4839:7;4835:23;4831:32;4828:52;;;4876:1;4873;4866:12;4828:52;4916:9;4903:23;4949:18;4941:6;4938:30;4935:50;;;4981:1;4978;4971:12;4935:50;5004:22;;5057:4;5049:13;;5045:27;-1:-1:-1;5035:55:1;;5086:1;5083;5076:12;5035:55;5109:73;5174:7;5169:2;5156:16;5151:2;5147;5143:11;5109:73;:::i;5193:180::-;5252:6;5305:2;5293:9;5284:7;5280:23;5276:32;5273:52;;;5321:1;5318;5311:12;5273:52;-1:-1:-1;5344:23:1;;5193:180;-1:-1:-1;5193:180:1:o;5378:269::-;5435:6;5488:2;5476:9;5467:7;5463:23;5459:32;5456:52;;;5504:1;5501;5494:12;5456:52;5543:9;5530:23;5593:4;5586:5;5582:16;5575:5;5572:27;5562:55;;5613:1;5610;5603:12;5652:257;5693:3;5731:5;5725:12;5758:6;5753:3;5746:19;5774:63;5830:6;5823:4;5818:3;5814:14;5807:4;5800:5;5796:16;5774:63;:::i;:::-;5891:2;5870:15;-1:-1:-1;;5866:29:1;5857:39;;;;5898:4;5853:50;;5652:257;-1:-1:-1;;5652:257:1:o;5914:470::-;6093:3;6131:6;6125:13;6147:53;6193:6;6188:3;6181:4;6173:6;6169:17;6147:53;:::i;:::-;6263:13;;6222:16;;;;6285:57;6263:13;6222:16;6319:4;6307:17;;6285:57;:::i;:::-;6358:20;;5914:470;-1:-1:-1;;;;5914:470:1:o;6389:637::-;6669:3;6707:6;6701:13;6723:53;6769:6;6764:3;6757:4;6749:6;6745:17;6723:53;:::i;:::-;6839:13;;6798:16;;;;6861:57;6839:13;6798:16;6895:4;6883:17;;6861:57;:::i;:::-;-1:-1:-1;;;6940:20:1;;6969:22;;;7018:1;7007:13;;6389:637;-1:-1:-1;;;;6389:637:1:o;7239:488::-;-1:-1:-1;;;;;7508:15:1;;;7490:34;;7560:15;;7555:2;7540:18;;7533:43;7607:2;7592:18;;7585:34;;;7655:3;7650:2;7635:18;;7628:31;;;7433:4;;7676:45;;7701:19;;7693:6;7676:45;:::i;:::-;7668:53;7239:488;-1:-1:-1;;;;;;7239:488:1:o;7924:219::-;8073:2;8062:9;8055:21;8036:4;8093:44;8133:2;8122:9;8118:18;8110:6;8093:44;:::i;8915:414::-;9117:2;9099:21;;;9156:2;9136:18;;;9129:30;9195:34;9190:2;9175:18;;9168:62;-1:-1:-1;;;9261:2:1;9246:18;;9239:48;9319:3;9304:19;;8915:414::o;14511:356::-;14713:2;14695:21;;;14732:18;;;14725:30;14791:34;14786:2;14771:18;;14764:62;14858:2;14843:18;;14511:356::o;16930:413::-;17132:2;17114:21;;;17171:2;17151:18;;;17144:30;17210:34;17205:2;17190:18;;17183:62;-1:-1:-1;;;17276:2:1;17261:18;;17254:47;17333:3;17318:19;;16930:413::o;19300:275::-;19371:2;19365:9;19436:2;19417:13;;-1:-1:-1;;19413:27:1;19401:40;;19471:18;19456:34;;19492:22;;;19453:62;19450:88;;;19518:18;;:::i;:::-;19554:2;19547:22;19300:275;;-1:-1:-1;19300:275:1:o;19580:128::-;19620:3;19651:1;19647:6;19644:1;19641:13;19638:39;;;19657:18;;:::i;:::-;-1:-1:-1;19693:9:1;;19580:128::o;19713:204::-;19751:3;19787:4;19784:1;19780:12;19819:4;19816:1;19812:12;19854:3;19848:4;19844:14;19839:3;19836:23;19833:49;;;19862:18;;:::i;:::-;19898:13;;19713:204;-1:-1:-1;;;19713:204:1:o;19922:120::-;19962:1;19988;19978:35;;19993:18;;:::i;:::-;-1:-1:-1;20027:9:1;;19922:120::o;20047:168::-;20087:7;20153:1;20149;20145:6;20141:14;20138:1;20135:21;20130:1;20123:9;20116:17;20112:45;20109:71;;;20160:18;;:::i;:::-;-1:-1:-1;20200:9:1;;20047:168::o;20220:125::-;20260:4;20288:1;20285;20282:8;20279:34;;;20293:18;;:::i;:::-;-1:-1:-1;20330:9:1;;20220:125::o;20350:195::-;20388:4;20425;20422:1;20418:12;20457:4;20454:1;20450:12;20482:3;20477;20474:12;20471:38;;;20489:18;;:::i;:::-;20526:13;;;20350:195;-1:-1:-1;;;20350:195:1:o;20550:258::-;20622:1;20632:113;20646:6;20643:1;20640:13;20632:113;;;20722:11;;;20716:18;20703:11;;;20696:39;20668:2;20661:10;20632:113;;;20763:6;20760:1;20757:13;20754:48;;;-1:-1:-1;;20798:1:1;20780:16;;20773:27;20550:258::o;20813:380::-;20892:1;20888:12;;;;20935;;;20956:61;;21010:4;21002:6;20998:17;20988:27;;20956:61;21063:2;21055:6;21052:14;21032:18;21029:38;21026:161;;;21109:10;21104:3;21100:20;21097:1;21090:31;21144:4;21141:1;21134:15;21172:4;21169:1;21162:15;21026:161;;20813:380;;;:::o;21198:135::-;21237:3;-1:-1:-1;;21258:17:1;;21255:43;;;21278:18;;:::i;:::-;-1:-1:-1;21325:1:1;21314:13;;21198:135::o;21338:112::-;21370:1;21396;21386:35;;21401:18;;:::i;:::-;-1:-1:-1;21435:9:1;;21338:112::o;21455:127::-;21516:10;21511:3;21507:20;21504:1;21497:31;21547:4;21544:1;21537:15;21571:4;21568:1;21561:15;21587:127;21648:10;21643:3;21639:20;21636:1;21629:31;21679:4;21676:1;21669:15;21703:4;21700:1;21693:15;21719:127;21780:10;21775:3;21771:20;21768:1;21761:31;21811:4;21808:1;21801:15;21835:4;21832:1;21825:15;21851:127;21912:10;21907:3;21903:20;21900:1;21893:31;21943:4;21940:1;21933:15;21967:4;21964:1;21957:15;21983:127;22044:10;22039:3;22035:20;22032:1;22025:31;22075:4;22072:1;22065:15;22099:4;22096:1;22089:15;22115:131;-1:-1:-1;;;;;;22189:32:1;;22179:43;;22169:71;;22236:1;22233;22226:12

Swarm Source

ipfs://bc01c71211e93b2ef67f54cf61cce718dd34ae6d9a28c90640f4fdc5bb0eeeeb

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
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.