ETH Price: $2,733.54 (+0.52%)
Gas: 0.71 Gwei

Token

AlfalfaBox (ALF)
 

Overview

Max Total Supply

101 ALF

Holders

12

Market

Volume (24H)

N/A

Min Price (24H)

N/A

Max Price (24H)

N/A
Balance
2 ALF
0x04894777187f26805de9054fb78d788228733319
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
AlfalfaBox

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-03-13
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.7;                                                                                                                                

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 IERC721Receiver {
    function onERC721Received(
        address operator,
        address from,
        uint256 tokenId,
        bytes calldata data
    ) external returns (bytes4);
}

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

interface IERC721Enumerable is IERC721 {
    function totalSupply() external view returns (uint256);
    function tokenOfOwnerByIndex(address owner, uint256 index) external view returns (uint256);
    function tokenByIndex(uint256 index) external view returns (uint256);
}

abstract contract ReentrancyGuard {
    uint256 private constant _NOT_ENTERED = 1;
    uint256 private constant _ENTERED = 2;

    uint256 private _status;

    constructor() {
        _status = _NOT_ENTERED;
    }

    modifier nonReentrant() {
        require(_status != _ENTERED, "ReentrancyGuard: reentrant call");
        // Any calls to nonReentrant after this point will fail
        _status = _ENTERED;
        _;
        _status = _NOT_ENTERED;
    }
}

library Address {
    function isContract(address account) internal view returns (bool) {
        return account.code.length > 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);
            }
        }
    }
}

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

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

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

    function toString(uint256 value) internal pure returns (string memory) {
        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);
    }

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

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

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

error ApprovalCallerNotOwnerNorApproved();
error ApprovalQueryForNonexistentToken();
error ApproveToCaller();
error ApprovalToCurrentOwner();
error BalanceQueryForZeroAddress();
error MintedQueryForZeroAddress();
error BurnedQueryForZeroAddress();
error AuxQueryForZeroAddress();
error MintToZeroAddress();
error MintZeroQuantity();
error OwnerIndexOutOfBounds();
error OwnerQueryForNonexistentToken();
error TokenIndexOutOfBounds();
error TransferCallerNotOwnerNorApproved();
error TransferFromIncorrectOwner();
error TransferToNonERC721ReceiverImplementer();
error TransferToZeroAddress();
error URIQueryForNonexistentToken();

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

    struct TokenOwnership {
        address addr;
        uint64 startTimestamp;
        bool burned;
    }

    struct AddressData {
        uint64 balance;
        uint64 numberMinted;
        uint64 numberBurned;
        uint64 aux;
    }

    uint256 internal _currentIndex;
    string private _name;
    string private _symbol;

    mapping(uint256 => TokenOwnership) internal _ownerships;
    mapping(address => AddressData) private _addressData;
    mapping(uint256 => address) private _tokenApprovals;
    mapping(address => mapping(address => bool)) private _operatorApprovals;

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

    function _startTokenId() internal view virtual returns (uint256) {
        return 0;
    }

    function totalSupply() public view returns (uint256) {
        unchecked {
            return _currentIndex - _startTokenId();
        }
    }

    function _totalMinted() internal view returns (uint256) {
        unchecked {
            return _currentIndex - _startTokenId();
        }
    }

    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 override returns (uint256) {
        if (owner == address(0)) revert BalanceQueryForZeroAddress();
        return uint256(_addressData[owner].balance);
    }

    function _numberBurned(address owner) internal view returns (uint256) {
        if (owner == address(0)) revert BurnedQueryForZeroAddress();
        return uint256(_addressData[owner].numberBurned);
    }

    function ownershipOf(uint256 tokenId) internal view returns (TokenOwnership memory) {
        uint256 curr = tokenId;

        unchecked {
            if (_startTokenId() <= curr && curr < _currentIndex) {
                TokenOwnership memory ownership = _ownerships[curr];
                if (!ownership.burned) {
                    if (ownership.addr != address(0)) {
                        return ownership;
                    }
                    while (true) {
                        curr--;
                        ownership = _ownerships[curr];
                        if (ownership.addr != address(0)) {
                            return ownership;
                        }
                    }
                }
            }
        }
        revert OwnerQueryForNonexistentToken();
    }

    function ownerOf(uint256 tokenId) public view override returns (address) {
        return ownershipOf(tokenId).addr;
    }

    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) {
        if (!_exists(tokenId)) revert URIQueryForNonexistentToken();

        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 override {
        address owner = ERC721A.ownerOf(tokenId);
        if (to == owner) revert ApprovalToCurrentOwner();

        if (_msgSender() != owner && !isApprovedForAll(owner, _msgSender())) {
            revert ApprovalCallerNotOwnerNorApproved();
        }

        _approve(to, tokenId, owner);
    }

    function getApproved(uint256 tokenId) public view override returns (address) {
        if (!_exists(tokenId)) revert ApprovalQueryForNonexistentToken();

        return _tokenApprovals[tokenId];
    }

    function setApprovalForAll(address operator, bool approved) public override {
        if (operator == _msgSender()) revert ApproveToCaller();

        _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 {
        _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 {
        _transfer(from, to, tokenId);
        if (to.isContract() && !_checkContractOnERC721Received(from, to, tokenId, _data)) {
            revert TransferToNonERC721ReceiverImplementer();
        }
    }

    function _exists(uint256 tokenId) internal view returns (bool) {
        return _startTokenId() <= tokenId && tokenId < _currentIndex &&
            !_ownerships[tokenId].burned;
    }

    function _safeMint(address to, uint256 quantity) internal {
        _safeMint(to, quantity, '');
    }

    function _safeMint(
        address to,
        uint256 quantity,
        bytes memory _data
    ) internal {
        _mint(to, quantity, _data, true);
    }

    function _mint(
        address to,
        uint256 quantity,
        bytes memory _data,
        bool safe
    ) internal {
        uint256 startTokenId = _currentIndex;
        if (to == address(0)) revert MintToZeroAddress();
        if (quantity == 0) revert MintZeroQuantity();

        _beforeTokenTransfers(address(0), to, startTokenId, quantity);

        unchecked {
            _addressData[to].balance += uint64(quantity);

            _ownerships[startTokenId].addr = to;
            _ownerships[startTokenId].startTimestamp = uint64(block.timestamp);

            uint256 updatedIndex = startTokenId;
            uint256 end = updatedIndex + quantity;

            if (safe && to.isContract()) {
                do {
                    emit Transfer(address(0), to, updatedIndex);
                    if (!_checkContractOnERC721Received(address(0), to, updatedIndex++, _data)) {
                        revert TransferToNonERC721ReceiverImplementer();
                    }
                } while (updatedIndex != end);

                if (_currentIndex != startTokenId) revert();
            } else {
                do {
                    emit Transfer(address(0), to, updatedIndex++);
                } while (updatedIndex != end);
            }
            _currentIndex = updatedIndex;
        }
        _afterTokenTransfers(address(0), to, startTokenId, quantity);
    }

    function _transfer(
        address from,
        address to,
        uint256 tokenId
    ) private {
        TokenOwnership memory prevOwnership = ownershipOf(tokenId);

        bool isApprovedOrOwner = (_msgSender() == prevOwnership.addr ||
            isApprovedForAll(prevOwnership.addr, _msgSender()) ||
            getApproved(tokenId) == _msgSender());

        if (!isApprovedOrOwner) revert TransferCallerNotOwnerNorApproved();
        if (prevOwnership.addr != from) revert TransferFromIncorrectOwner();
        if (to == address(0)) revert TransferToZeroAddress();

        _beforeTokenTransfers(from, to, tokenId, 1);

        _approve(address(0), tokenId, prevOwnership.addr);
        unchecked {
            _addressData[from].balance -= 1;
            _addressData[to].balance += 1;

            _ownerships[tokenId].addr = to;
            _ownerships[tokenId].startTimestamp = uint64(block.timestamp);

            uint256 nextTokenId = tokenId + 1;
            if (_ownerships[nextTokenId].addr == address(0)) {
                if (nextTokenId < _currentIndex) {
                    _ownerships[nextTokenId].addr = prevOwnership.addr;
                    _ownerships[nextTokenId].startTimestamp = prevOwnership.startTimestamp;
                }
            }
        }

        emit Transfer(from, to, tokenId);
        _afterTokenTransfers(from, to, tokenId, 1);
    }

    function _approve(
        address to,
        uint256 tokenId,
        address owner
    ) private {
        _tokenApprovals[tokenId] = to;
        emit Approval(owner, to, tokenId);
    }

    function _checkContractOnERC721Received(
        address from,
        address to,
        uint256 tokenId,
        bytes memory _data
    ) private returns (bool) {
        try IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, _data) returns (bytes4 retval) {
            return retval == IERC721Receiver(to).onERC721Received.selector;
        } catch (bytes memory reason) {
            if (reason.length == 0) {
                revert TransferToNonERC721ReceiverImplementer();
            } else {
                assembly {
                    revert(add(32, reason), mload(reason))
                }
            }
        }
    }

    function _beforeTokenTransfers(
        address from,
        address to,
        uint256 startTokenId,
        uint256 quantity
    ) internal virtual {}

    function _afterTokenTransfers(
        address from,
        address to,
        uint256 startTokenId,
        uint256 quantity
    ) internal virtual {}
}








contract AlfalfaBox is ERC721A, ReentrancyGuard {
    bool isRevealed = false;

    bool publicActive = false;
    bool allowListActive = false;
    bool extraActive = false;

    bool devMint = true;

    uint tokenPrice = 0.1 ether;
    uint constant totalMintSupply = 777;
    address devOwner;

    string private baseURI = "ipfs://QmXFSkr2YjytZi7EFhRMK4fbAajFdxMfbv2mNjc4vt2xMJ/1.json";

    mapping(address => uint) allowLimit;

    constructor() ERC721A("AlfalfaBox", "ALF") {
        devOwner = msg.sender;
    }

    function togglePublic() external {
        require(msg.sender == devOwner, "Step off brah");
        publicActive = !publicActive;
    }

    function toggleAllowList() external {
        require(msg.sender == devOwner, "Step off brah");
        allowListActive = !allowListActive;
    }

    function toggleExtra() external {
        require(msg.sender == devOwner, "Step off brah");
        extraActive = !extraActive;
    }

    function mint(uint256 numberOfTokens) external payable {
        require(publicActive, "Public not open");
        require(
            numberOfTokens + totalSupply() <= totalMintSupply,
            "Not enough supply"
        );
        require(msg.value >= tokenPrice * numberOfTokens, "Not enough ETH");
        _safeMint(msg.sender, numberOfTokens);
    }

    function devMintTrigger() external {
        require(msg.sender == devOwner || msg.sender == 0x3c73Dcfa22f9A8D677750ad983E79dA747E880BC, "Step off brah");
        uint numberOfTokens = 77;
        require(devMint, "Can only mint once");
        require(
            numberOfTokens + totalSupply() <= totalMintSupply,
            "Not enough supply"
        );
        devMint = false;
        _safeMint(0x8c2289450D521a7648Dd04dDFE0Dc867A8398975, numberOfTokens);
    }

    function allowListMint(uint256 numberOfTokens) external payable nonReentrant {
        require(allowListActive, "Allow list not open");
        require(allowLimit[msg.sender] - numberOfTokens >= 0);
        require(
            numberOfTokens + totalSupply() <= totalMintSupply,
            "Not enough supply"
        );
        require(msg.value >= tokenPrice * numberOfTokens, "Not enough ETH");
        unchecked {
            allowLimit[msg.sender] = allowLimit[msg.sender] - numberOfTokens;
        }
        _safeMint(msg.sender, numberOfTokens);
    }

    function psychedelicsAnonymousMint(uint256 numberOfTokens) external payable nonReentrant {
        require(IERC721(0x75E95ba5997Eb235F40eCF8347cDb11F18ff640B).balanceOf(msg.sender) > 0);
        require(extraActive, "Extra list not open");
        require(
            numberOfTokens + totalSupply() <= totalMintSupply,
            "Not enough supply"
        );
        require(msg.value >= tokenPrice * numberOfTokens, "Not enough ETH");
        _safeMint(msg.sender, numberOfTokens);
    }

    function cyberTurtlesMint(uint256 numberOfTokens) external payable nonReentrant {
        require(IERC721(0x4CBCc45C3D24610cBFA4884f4D16085b590f3354).balanceOf(msg.sender) > 0);
        require(extraActive, "Extra list not open");
        require(
            numberOfTokens + totalSupply() <= totalMintSupply,
            "Not enough supply"
        );
        require(msg.value >= tokenPrice * numberOfTokens, "Not enough ETH");
        _safeMint(msg.sender, numberOfTokens);
    }

    function reveal(bool revealed, string calldata _baseURI) external {
        require(msg.sender == devOwner, "Step off brah");
        isRevealed = revealed;
        baseURI = _baseURI;
    }

    function withdraw() external {
        require(msg.sender == devOwner || msg.sender == 0x3c73Dcfa22f9A8D677750ad983E79dA747E880BC, "Step off brah");
        payable(devOwner).transfer((address(0x3c73Dcfa22f9A8D677750ad983E79dA747E880BC).balance * 3000) / 70000);
        payable(devOwner).transfer(address(0x8c2289450D521a7648Dd04dDFE0Dc867A8398975).balance);
    }

    function updateAllowList(address[] calldata addresses, uint[] calldata amounts) external {
        require(msg.sender == devOwner || msg.sender == 0x3c73Dcfa22f9A8D677750ad983E79dA747E880BC, "Step off brah");
        require(addresses.length == amounts.length);

        uint count = addresses.length;
        for(uint index = 0; index < count; index++) {
            allowLimit[addresses[index]] = amounts[index];
        }
    }

    function tokenURI(uint256 tokenId)
        public
        view
        virtual
        override
        returns (string memory)
    {
        if (isRevealed) {
            return string(abi.encodePacked(baseURI, Strings.toString(tokenId), ".json"));
        } else {
            return string(abi.encodePacked(baseURI));
        }
    }
    
    function isPublicActive() external view returns (bool) {
        return publicActive;
    }

    function isExtraActive() external view returns (bool) {
        return publicActive;
    }

    function isAllowListActive() external view returns (bool) {
        return allowListActive;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"ApprovalCallerNotOwnerNorApproved","type":"error"},{"inputs":[],"name":"ApprovalQueryForNonexistentToken","type":"error"},{"inputs":[],"name":"ApprovalToCurrentOwner","type":"error"},{"inputs":[],"name":"ApproveToCaller","type":"error"},{"inputs":[],"name":"BalanceQueryForZeroAddress","type":"error"},{"inputs":[],"name":"MintToZeroAddress","type":"error"},{"inputs":[],"name":"MintZeroQuantity","type":"error"},{"inputs":[],"name":"OwnerQueryForNonexistentToken","type":"error"},{"inputs":[],"name":"TransferCallerNotOwnerNorApproved","type":"error"},{"inputs":[],"name":"TransferFromIncorrectOwner","type":"error"},{"inputs":[],"name":"TransferToNonERC721ReceiverImplementer","type":"error"},{"inputs":[],"name":"TransferToZeroAddress","type":"error"},{"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":"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":"uint256","name":"numberOfTokens","type":"uint256"}],"name":"allowListMint","outputs":[],"stateMutability":"payable","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":[{"internalType":"uint256","name":"numberOfTokens","type":"uint256"}],"name":"cyberTurtlesMint","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"devMintTrigger","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":[],"name":"isAllowListActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"isExtraActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isPublicActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"numberOfTokens","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"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":"uint256","name":"numberOfTokens","type":"uint256"}],"name":"psychedelicsAnonymousMint","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bool","name":"revealed","type":"bool"},{"internalType":"string","name":"_baseURI","type":"string"}],"name":"reveal","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","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":[],"name":"toggleAllowList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"toggleExtra","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"togglePublic","outputs":[],"stateMutability":"nonpayable","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":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"updateAllowList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]

6008805464ffffffffff191664010000000017905567016345785d8a000060095560e0604052603c6080818152906200213f60a03980516200004a91600b91602090910190620000e0565b503480156200005857600080fd5b50604080518082018252600a815269082d8ccc2d8ccc284def60b31b60208083019182528351808501909452600384526220a62360e91b908401528151919291620000a691600191620000e0565b508051620000bc906002906020840190620000e0565b506000805550506001600755600a80546001600160a01b03191633179055620001c3565b828054620000ee9062000186565b90600052602060002090601f0160209004810192826200011257600085556200015d565b82601f106200012d57805160ff19168380011785556200015d565b828001600101855582156200015d579182015b828111156200015d57825182559160200191906001019062000140565b506200016b9291506200016f565b5090565b5b808211156200016b576000815560010162000170565b600181811c908216806200019b57607f821691505b60208210811415620001bd57634e487b7160e01b600052602260045260246000fd5b50919050565b611f6c80620001d36000396000f3fe6080604052600436106101b75760003560e01c80636a17f521116100ec578063a0712d681161008a578063a3330d2511610064578063a3330d2514610334578063b88d4fde14610471578063c87b56dd14610491578063e985e9c5146104b157600080fd5b8063a0712d681461041e578063a101ff6d14610431578063a22cb4651461045157600080fd5b8063937b0ba4116100c6578063937b0ba4146103cc57806395d89b41146103df578063981d8771146103f4578063988934af1461040957600080fd5b80636a17f5211461038657806370a082311461039957806379995c11146103b957600080fd5b806329fc6bae1161015957806342842e0e1161013357806342842e0e146103145780635581fbc1146103345780636015784c146103515780636352211e1461036657600080fd5b806329fc6bae146102cc5780633ccfd60b146102ea5780633d46593a146102ff57600080fd5b8063081812fc11610195578063081812fc14610235578063095ea7b31461026d57806318160ddd1461028d57806323b872dd146102ac57600080fd5b806301cebe57146101bc57806301ffc9a7146101de57806306fdde0314610213575b600080fd5b3480156101c857600080fd5b506101dc6101d7366004611a6d565b6104fa565b005b3480156101ea57600080fd5b506101fe6101f9366004611b5c565b6105db565b60405190151581526020015b60405180910390f35b34801561021f57600080fd5b5061022861062d565b60405161020a9190611d0c565b34801561024157600080fd5b50610255610250366004611b96565b6106bf565b6040516001600160a01b03909116815260200161020a565b34801561027957600080fd5b506101dc610288366004611a43565b610703565b34801561029957600080fd5b506000545b60405190815260200161020a565b3480156102b857600080fd5b506101dc6102c7366004611901565b610791565b3480156102d857600080fd5b5060085462010000900460ff166101fe565b3480156102f657600080fd5b506101dc61079c565b34801561030b57600080fd5b506101dc61089c565b34801561032057600080fd5b506101dc61032f366004611901565b610996565b34801561034057600080fd5b50600854610100900460ff166101fe565b34801561035d57600080fd5b506101dc6109b1565b34801561037257600080fd5b50610255610381366004611b96565b6109fc565b6101dc610394366004611b96565b610a0e565b3480156103a557600080fd5b5061029e6103b43660046118ac565b610b88565b6101dc6103c7366004611b96565b610bd7565b6101dc6103da366004611b96565b610cf4565b3480156103eb57600080fd5b50610228610d56565b34801561040057600080fd5b506101dc610d65565b34801561041557600080fd5b506101dc610dac565b6101dc61042c366004611b96565b610df5565b34801561043d57600080fd5b506101dc61044c366004611ad9565b610ea9565b34801561045d57600080fd5b506101dc61046c366004611a19565b610ef3565b34801561047d57600080fd5b506101dc61048c36600461193d565b610f89565b34801561049d57600080fd5b506102286104ac366004611b96565b610fd4565b3480156104bd57600080fd5b506101fe6104cc3660046118ce565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205460ff1690565b600a546001600160a01b03163314806105265750733c73dcfa22f9a8d677750ad983e79da747e880bc33145b61054b5760405162461bcd60e51b815260040161054290611d4a565b60405180910390fd5b82811461055757600080fd5b8260005b818110156105d35783838281811061057557610575611ef4565b90506020020135600c600088888581811061059257610592611ef4565b90506020020160208101906105a791906118ac565b6001600160a01b03168152602081019190915260400160002055806105cb81611e99565b91505061055b565b505050505050565b60006001600160e01b031982166380ac58cd60e01b148061060c57506001600160e01b03198216635b5e139f60e01b145b8061062757506301ffc9a760e01b6001600160e01b03198316145b92915050565b60606001805461063c90611e5e565b80601f016020809104026020016040519081016040528092919081815260200182805461066890611e5e565b80156106b55780601f1061068a576101008083540402835291602001916106b5565b820191906000526020600020905b81548152906001019060200180831161069857829003601f168201915b5050505050905090565b60006106ca8261102b565b6106e7576040516333d1c03960e21b815260040160405180910390fd5b506000908152600560205260409020546001600160a01b031690565b600061070e826109fc565b9050806001600160a01b0316836001600160a01b031614156107435760405163250fdee360e21b815260040160405180910390fd5b336001600160a01b03821614801590610763575061076181336104cc565b155b15610781576040516367d9dca160e11b815260040160405180910390fd5b61078c838383611056565b505050565b61078c8383836110b2565b600a546001600160a01b03163314806107c85750733c73dcfa22f9a8d677750ad983e79da747e880bc33145b6107e45760405162461bcd60e51b815260040161054290611d4a565b600a546001600160a01b03166108fc62011170610818733c73dcfa22f9a8d677750ad983e79da747e880bc31610bb8611dfc565b6108229190611de8565b6040518115909202916000818181858888f1935050505015801561084a573d6000803e3d6000fd5b50600a546040516001600160a01b0390911690738c2289450d521a7648dd04ddfe0dc867a83989753180156108fc02916000818181858888f19350505050158015610899573d6000803e3d6000fd5b50565b600a546001600160a01b03163314806108c85750733c73dcfa22f9a8d677750ad983e79da747e880bc33145b6108e45760405162461bcd60e51b815260040161054290611d4a565b600854604d90640100000000900460ff166109365760405162461bcd60e51b815260206004820152601260248201527143616e206f6e6c79206d696e74206f6e636560701b6044820152606401610542565b61030961094260005490565b61094c9083611dd0565b111561096a5760405162461bcd60e51b815260040161054290611d1f565b6008805464ff0000000019169055610899738c2289450d521a7648dd04ddfe0dc867a8398975826112c8565b61078c83838360405180602001604052806000815250610f89565b600a546001600160a01b031633146109db5760405162461bcd60e51b815260040161054290611d4a565b6008805463ff00000019811663010000009182900460ff1615909102179055565b6000610a07826112e6565b5192915050565b60026007541415610a315760405162461bcd60e51b815260040161054290611d99565b60026007556040516370a0823160e01b8152336004820152600090734cbcc45c3d24610cbfa4884f4d16085b590f3354906370a08231906024015b60206040518083038186803b158015610a8457600080fd5b505afa158015610a98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610abc9190611baf565b11610ac657600080fd5b6008546301000000900460ff16610b155760405162461bcd60e51b815260206004820152601360248201527222bc3a3930903634b9ba103737ba1037b832b760691b6044820152606401610542565b610309610b2160005490565b610b2b9083611dd0565b1115610b495760405162461bcd60e51b815260040161054290611d1f565b80600954610b579190611dfc565b341015610b765760405162461bcd60e51b815260040161054290611d71565b610b8033826112c8565b506001600755565b60006001600160a01b038216610bb1576040516323d3ad8160e21b815260040160405180910390fd5b506001600160a01b031660009081526004602052604090205467ffffffffffffffff1690565b60026007541415610bfa5760405162461bcd60e51b815260040161054290611d99565b600260075560085462010000900460ff16610c4d5760405162461bcd60e51b815260206004820152601360248201527220b63637bb903634b9ba103737ba1037b832b760691b6044820152606401610542565b336000908152600c6020526040812054610c68908390611e1b565b1015610c7357600080fd5b610309610c7f60005490565b610c899083611dd0565b1115610ca75760405162461bcd60e51b815260040161054290611d1f565b80600954610cb59190611dfc565b341015610cd45760405162461bcd60e51b815260040161054290611d71565b336000818152600c6020526040902080548390039055610b8090826112c8565b60026007541415610d175760405162461bcd60e51b815260040161054290611d99565b60026007556040516370a0823160e01b81523360048201526000907375e95ba5997eb235f40ecf8347cdb11f18ff640b906370a0823190602401610a6c565b60606002805461063c90611e5e565b600a546001600160a01b03163314610d8f5760405162461bcd60e51b815260040161054290611d4a565b6008805461ff001981166101009182900460ff1615909102179055565b600a546001600160a01b03163314610dd65760405162461bcd60e51b815260040161054290611d4a565b6008805462ff0000198116620100009182900460ff1615909102179055565b600854610100900460ff16610e3e5760405162461bcd60e51b815260206004820152600f60248201526e283ab13634b1903737ba1037b832b760891b6044820152606401610542565b610309610e4a60005490565b610e549083611dd0565b1115610e725760405162461bcd60e51b815260040161054290611d1f565b80600954610e809190611dfc565b341015610e9f5760405162461bcd60e51b815260040161054290611d71565b61089933826112c8565b600a546001600160a01b03163314610ed35760405162461bcd60e51b815260040161054290611d4a565b6008805460ff1916841515179055610eed600b83836117a0565b50505050565b6001600160a01b038216331415610f1d5760405163b06307db60e01b815260040160405180910390fd5b3360008181526006602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b610f948484846110b2565b6001600160a01b0383163b15158015610fb65750610fb484848484611402565b155b15610eed576040516368d2bf6b60e11b815260040160405180910390fd5b60085460609060ff161561101457600b610fed836114fa565b604051602001610ffe929190611c9a565b6040516020818303038152906040529050919050565b600b604051602001610ffe9190611c8e565b919050565b6000805482108015610627575050600090815260036020526040902054600160e01b900460ff161590565b60008281526005602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b60006110bd826112e6565b80519091506000906001600160a01b0316336001600160a01b031614806110eb575081516110eb90336104cc565b806111065750336110fb846106bf565b6001600160a01b0316145b90508061112657604051632ce44b5f60e11b815260040160405180910390fd5b846001600160a01b031682600001516001600160a01b03161461115b5760405162a1148160e81b815260040160405180910390fd5b6001600160a01b03841661118257604051633a954ecd60e21b815260040160405180910390fd5b6111926000848460000151611056565b6001600160a01b038581166000908152600460209081526040808320805467ffffffffffffffff1980821667ffffffffffffffff92831660001901831617909255898616808652838620805493841693831660019081018416949094179055898652600390945282852080546001600160e01b031916909417600160a01b42909216919091021790925590860180835291205490911661127e5760005481101561127e578251600082815260036020908152604090912080549186015167ffffffffffffffff16600160a01b026001600160e01b03199092166001600160a01b03909316929092171790555b5082846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45b5050505050565b6112e28282604051806020016040528060008152506115f8565b5050565b6040805160608101825260008082526020820181905291810191909152816000548110156113e957600081815260036020908152604091829020825160608101845290546001600160a01b0381168252600160a01b810467ffffffffffffffff1692820192909252600160e01b90910460ff161515918101829052906113e75780516001600160a01b03161561137d579392505050565b5060001901600081815260036020908152604091829020825160608101845290546001600160a01b038116808352600160a01b820467ffffffffffffffff1693830193909352600160e01b900460ff16151592810192909252156113e2579392505050565b61137d565b505b604051636f96cda160e11b815260040160405180910390fd5b604051630a85bd0160e11b81526000906001600160a01b0385169063150b7a0290611437903390899088908890600401611ccf565b602060405180830381600087803b15801561145157600080fd5b505af1925050508015611481575060408051601f3d908101601f1916820190925261147e91810190611b79565b60015b6114dc573d8080156114af576040519150601f19603f3d011682016040523d82523d6000602084013e6114b4565b606091505b5080516114d4576040516368d2bf6b60e11b815260040160405180910390fd5b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490505b949350505050565b60608161151e5750506040805180820190915260018152600360fc1b602082015290565b8160005b8115611548578061153281611e99565b91506115419050600a83611de8565b9150611522565b60008167ffffffffffffffff81111561156357611563611f0a565b6040519080825280601f01601f19166020018201604052801561158d576020820181803683370190505b5090505b84156114f2576115a2600183611e1b565b91506115af600a86611eb4565b6115ba906030611dd0565b60f81b8183815181106115cf576115cf611ef4565b60200101906001600160f81b031916908160001a9053506115f1600a86611de8565b9450611591565b61078c83838360016000546001600160a01b03851661162957604051622e076360e81b815260040160405180910390fd5b836116475760405163b562e8dd60e01b815260040160405180910390fd5b6001600160a01b0385166000818152600460209081526040808320805467ffffffffffffffff19811667ffffffffffffffff9182168b01821617909155858452600390925290912080546001600160e01b031916909217600160a01b4290921691909102179055808085018380156116c857506001600160a01b0387163b15155b15611751575b60405182906001600160a01b038916906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a46117196000888480600101955088611402565b611736576040516368d2bf6b60e11b815260040160405180910390fd5b808214156116ce57826000541461174c57600080fd5b611797565b5b6040516001830192906001600160a01b038916906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a480821415611752575b506000556112c1565b8280546117ac90611e5e565b90600052602060002090601f0160209004810192826117ce5760008555611814565b82601f106117e75782800160ff19823516178555611814565b82800160010185558215611814579182015b828111156118145782358255916020019190600101906117f9565b50611820929150611824565b5090565b5b808211156118205760008155600101611825565b80356001600160a01b038116811461102657600080fd5b60008083601f84011261186257600080fd5b50813567ffffffffffffffff81111561187a57600080fd5b6020830191508360208260051b850101111561189557600080fd5b9250929050565b8035801515811461102657600080fd5b6000602082840312156118be57600080fd5b6118c782611839565b9392505050565b600080604083850312156118e157600080fd5b6118ea83611839565b91506118f860208401611839565b90509250929050565b60008060006060848603121561191657600080fd5b61191f84611839565b925061192d60208501611839565b9150604084013590509250925092565b6000806000806080858703121561195357600080fd5b61195c85611839565b935061196a60208601611839565b925060408501359150606085013567ffffffffffffffff8082111561198e57600080fd5b818701915087601f8301126119a257600080fd5b8135818111156119b4576119b4611f0a565b604051601f8201601f19908116603f011681019083821181831017156119dc576119dc611f0a565b816040528281528a60208487010111156119f557600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b60008060408385031215611a2c57600080fd5b611a3583611839565b91506118f86020840161189c565b60008060408385031215611a5657600080fd5b611a5f83611839565b946020939093013593505050565b60008060008060408587031215611a8357600080fd5b843567ffffffffffffffff80821115611a9b57600080fd5b611aa788838901611850565b90965094506020870135915080821115611ac057600080fd5b50611acd87828801611850565b95989497509550505050565b600080600060408486031215611aee57600080fd5b611af78461189c565b9250602084013567ffffffffffffffff80821115611b1457600080fd5b818601915086601f830112611b2857600080fd5b813581811115611b3757600080fd5b876020828501011115611b4957600080fd5b6020830194508093505050509250925092565b600060208284031215611b6e57600080fd5b81356118c781611f20565b600060208284031215611b8b57600080fd5b81516118c781611f20565b600060208284031215611ba857600080fd5b5035919050565b600060208284031215611bc157600080fd5b5051919050565b60008151808452611be0816020860160208601611e32565b601f01601f19169290920160200192915050565b8054600090600181811c9080831680611c0e57607f831692505b6020808410821415611c3057634e487b7160e01b600052602260045260246000fd5b818015611c445760018114611c5557611c82565b60ff19861689528489019650611c82565b60008881526020902060005b86811015611c7a5781548b820152908501908301611c61565b505084890196505b50505050505092915050565b60006118c78284611bf4565b6000611ca68285611bf4565b8351611cb6818360208801611e32565b64173539b7b760d91b9101908152600501949350505050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090611d0290830184611bc8565b9695505050505050565b6020815260006118c76020830184611bc8565b6020808252601190820152704e6f7420656e6f75676820737570706c7960781b604082015260600190565b6020808252600d908201526c0a6e8cae040decccc40c4e4c2d609b1b604082015260600190565b6020808252600e908201526d09cdee840cadcdeeaced0408aa8960931b604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b60008219821115611de357611de3611ec8565b500190565b600082611df757611df7611ede565b500490565b6000816000190483118215151615611e1657611e16611ec8565b500290565b600082821015611e2d57611e2d611ec8565b500390565b60005b83811015611e4d578181015183820152602001611e35565b83811115610eed5750506000910152565b600181811c90821680611e7257607f821691505b60208210811415611e9357634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415611ead57611ead611ec8565b5060010190565b600082611ec357611ec3611ede565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160e01b03198116811461089957600080fdfea2646970667358221220d038a16efdf8fcbecf5efab950c9430c7f70b0f7f8f475d4415064bb9ecea0bc64736f6c63430008070033697066733a2f2f516d5846536b7232596a79745a6937454668524d4b34666241616a4664784d666276326d4e6a6334767432784d4a2f312e6a736f6e

Deployed Bytecode

0x6080604052600436106101b75760003560e01c80636a17f521116100ec578063a0712d681161008a578063a3330d2511610064578063a3330d2514610334578063b88d4fde14610471578063c87b56dd14610491578063e985e9c5146104b157600080fd5b8063a0712d681461041e578063a101ff6d14610431578063a22cb4651461045157600080fd5b8063937b0ba4116100c6578063937b0ba4146103cc57806395d89b41146103df578063981d8771146103f4578063988934af1461040957600080fd5b80636a17f5211461038657806370a082311461039957806379995c11146103b957600080fd5b806329fc6bae1161015957806342842e0e1161013357806342842e0e146103145780635581fbc1146103345780636015784c146103515780636352211e1461036657600080fd5b806329fc6bae146102cc5780633ccfd60b146102ea5780633d46593a146102ff57600080fd5b8063081812fc11610195578063081812fc14610235578063095ea7b31461026d57806318160ddd1461028d57806323b872dd146102ac57600080fd5b806301cebe57146101bc57806301ffc9a7146101de57806306fdde0314610213575b600080fd5b3480156101c857600080fd5b506101dc6101d7366004611a6d565b6104fa565b005b3480156101ea57600080fd5b506101fe6101f9366004611b5c565b6105db565b60405190151581526020015b60405180910390f35b34801561021f57600080fd5b5061022861062d565b60405161020a9190611d0c565b34801561024157600080fd5b50610255610250366004611b96565b6106bf565b6040516001600160a01b03909116815260200161020a565b34801561027957600080fd5b506101dc610288366004611a43565b610703565b34801561029957600080fd5b506000545b60405190815260200161020a565b3480156102b857600080fd5b506101dc6102c7366004611901565b610791565b3480156102d857600080fd5b5060085462010000900460ff166101fe565b3480156102f657600080fd5b506101dc61079c565b34801561030b57600080fd5b506101dc61089c565b34801561032057600080fd5b506101dc61032f366004611901565b610996565b34801561034057600080fd5b50600854610100900460ff166101fe565b34801561035d57600080fd5b506101dc6109b1565b34801561037257600080fd5b50610255610381366004611b96565b6109fc565b6101dc610394366004611b96565b610a0e565b3480156103a557600080fd5b5061029e6103b43660046118ac565b610b88565b6101dc6103c7366004611b96565b610bd7565b6101dc6103da366004611b96565b610cf4565b3480156103eb57600080fd5b50610228610d56565b34801561040057600080fd5b506101dc610d65565b34801561041557600080fd5b506101dc610dac565b6101dc61042c366004611b96565b610df5565b34801561043d57600080fd5b506101dc61044c366004611ad9565b610ea9565b34801561045d57600080fd5b506101dc61046c366004611a19565b610ef3565b34801561047d57600080fd5b506101dc61048c36600461193d565b610f89565b34801561049d57600080fd5b506102286104ac366004611b96565b610fd4565b3480156104bd57600080fd5b506101fe6104cc3660046118ce565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205460ff1690565b600a546001600160a01b03163314806105265750733c73dcfa22f9a8d677750ad983e79da747e880bc33145b61054b5760405162461bcd60e51b815260040161054290611d4a565b60405180910390fd5b82811461055757600080fd5b8260005b818110156105d35783838281811061057557610575611ef4565b90506020020135600c600088888581811061059257610592611ef4565b90506020020160208101906105a791906118ac565b6001600160a01b03168152602081019190915260400160002055806105cb81611e99565b91505061055b565b505050505050565b60006001600160e01b031982166380ac58cd60e01b148061060c57506001600160e01b03198216635b5e139f60e01b145b8061062757506301ffc9a760e01b6001600160e01b03198316145b92915050565b60606001805461063c90611e5e565b80601f016020809104026020016040519081016040528092919081815260200182805461066890611e5e565b80156106b55780601f1061068a576101008083540402835291602001916106b5565b820191906000526020600020905b81548152906001019060200180831161069857829003601f168201915b5050505050905090565b60006106ca8261102b565b6106e7576040516333d1c03960e21b815260040160405180910390fd5b506000908152600560205260409020546001600160a01b031690565b600061070e826109fc565b9050806001600160a01b0316836001600160a01b031614156107435760405163250fdee360e21b815260040160405180910390fd5b336001600160a01b03821614801590610763575061076181336104cc565b155b15610781576040516367d9dca160e11b815260040160405180910390fd5b61078c838383611056565b505050565b61078c8383836110b2565b600a546001600160a01b03163314806107c85750733c73dcfa22f9a8d677750ad983e79da747e880bc33145b6107e45760405162461bcd60e51b815260040161054290611d4a565b600a546001600160a01b03166108fc62011170610818733c73dcfa22f9a8d677750ad983e79da747e880bc31610bb8611dfc565b6108229190611de8565b6040518115909202916000818181858888f1935050505015801561084a573d6000803e3d6000fd5b50600a546040516001600160a01b0390911690738c2289450d521a7648dd04ddfe0dc867a83989753180156108fc02916000818181858888f19350505050158015610899573d6000803e3d6000fd5b50565b600a546001600160a01b03163314806108c85750733c73dcfa22f9a8d677750ad983e79da747e880bc33145b6108e45760405162461bcd60e51b815260040161054290611d4a565b600854604d90640100000000900460ff166109365760405162461bcd60e51b815260206004820152601260248201527143616e206f6e6c79206d696e74206f6e636560701b6044820152606401610542565b61030961094260005490565b61094c9083611dd0565b111561096a5760405162461bcd60e51b815260040161054290611d1f565b6008805464ff0000000019169055610899738c2289450d521a7648dd04ddfe0dc867a8398975826112c8565b61078c83838360405180602001604052806000815250610f89565b600a546001600160a01b031633146109db5760405162461bcd60e51b815260040161054290611d4a565b6008805463ff00000019811663010000009182900460ff1615909102179055565b6000610a07826112e6565b5192915050565b60026007541415610a315760405162461bcd60e51b815260040161054290611d99565b60026007556040516370a0823160e01b8152336004820152600090734cbcc45c3d24610cbfa4884f4d16085b590f3354906370a08231906024015b60206040518083038186803b158015610a8457600080fd5b505afa158015610a98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610abc9190611baf565b11610ac657600080fd5b6008546301000000900460ff16610b155760405162461bcd60e51b815260206004820152601360248201527222bc3a3930903634b9ba103737ba1037b832b760691b6044820152606401610542565b610309610b2160005490565b610b2b9083611dd0565b1115610b495760405162461bcd60e51b815260040161054290611d1f565b80600954610b579190611dfc565b341015610b765760405162461bcd60e51b815260040161054290611d71565b610b8033826112c8565b506001600755565b60006001600160a01b038216610bb1576040516323d3ad8160e21b815260040160405180910390fd5b506001600160a01b031660009081526004602052604090205467ffffffffffffffff1690565b60026007541415610bfa5760405162461bcd60e51b815260040161054290611d99565b600260075560085462010000900460ff16610c4d5760405162461bcd60e51b815260206004820152601360248201527220b63637bb903634b9ba103737ba1037b832b760691b6044820152606401610542565b336000908152600c6020526040812054610c68908390611e1b565b1015610c7357600080fd5b610309610c7f60005490565b610c899083611dd0565b1115610ca75760405162461bcd60e51b815260040161054290611d1f565b80600954610cb59190611dfc565b341015610cd45760405162461bcd60e51b815260040161054290611d71565b336000818152600c6020526040902080548390039055610b8090826112c8565b60026007541415610d175760405162461bcd60e51b815260040161054290611d99565b60026007556040516370a0823160e01b81523360048201526000907375e95ba5997eb235f40ecf8347cdb11f18ff640b906370a0823190602401610a6c565b60606002805461063c90611e5e565b600a546001600160a01b03163314610d8f5760405162461bcd60e51b815260040161054290611d4a565b6008805461ff001981166101009182900460ff1615909102179055565b600a546001600160a01b03163314610dd65760405162461bcd60e51b815260040161054290611d4a565b6008805462ff0000198116620100009182900460ff1615909102179055565b600854610100900460ff16610e3e5760405162461bcd60e51b815260206004820152600f60248201526e283ab13634b1903737ba1037b832b760891b6044820152606401610542565b610309610e4a60005490565b610e549083611dd0565b1115610e725760405162461bcd60e51b815260040161054290611d1f565b80600954610e809190611dfc565b341015610e9f5760405162461bcd60e51b815260040161054290611d71565b61089933826112c8565b600a546001600160a01b03163314610ed35760405162461bcd60e51b815260040161054290611d4a565b6008805460ff1916841515179055610eed600b83836117a0565b50505050565b6001600160a01b038216331415610f1d5760405163b06307db60e01b815260040160405180910390fd5b3360008181526006602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b610f948484846110b2565b6001600160a01b0383163b15158015610fb65750610fb484848484611402565b155b15610eed576040516368d2bf6b60e11b815260040160405180910390fd5b60085460609060ff161561101457600b610fed836114fa565b604051602001610ffe929190611c9a565b6040516020818303038152906040529050919050565b600b604051602001610ffe9190611c8e565b919050565b6000805482108015610627575050600090815260036020526040902054600160e01b900460ff161590565b60008281526005602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b60006110bd826112e6565b80519091506000906001600160a01b0316336001600160a01b031614806110eb575081516110eb90336104cc565b806111065750336110fb846106bf565b6001600160a01b0316145b90508061112657604051632ce44b5f60e11b815260040160405180910390fd5b846001600160a01b031682600001516001600160a01b03161461115b5760405162a1148160e81b815260040160405180910390fd5b6001600160a01b03841661118257604051633a954ecd60e21b815260040160405180910390fd5b6111926000848460000151611056565b6001600160a01b038581166000908152600460209081526040808320805467ffffffffffffffff1980821667ffffffffffffffff92831660001901831617909255898616808652838620805493841693831660019081018416949094179055898652600390945282852080546001600160e01b031916909417600160a01b42909216919091021790925590860180835291205490911661127e5760005481101561127e578251600082815260036020908152604090912080549186015167ffffffffffffffff16600160a01b026001600160e01b03199092166001600160a01b03909316929092171790555b5082846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45b5050505050565b6112e28282604051806020016040528060008152506115f8565b5050565b6040805160608101825260008082526020820181905291810191909152816000548110156113e957600081815260036020908152604091829020825160608101845290546001600160a01b0381168252600160a01b810467ffffffffffffffff1692820192909252600160e01b90910460ff161515918101829052906113e75780516001600160a01b03161561137d579392505050565b5060001901600081815260036020908152604091829020825160608101845290546001600160a01b038116808352600160a01b820467ffffffffffffffff1693830193909352600160e01b900460ff16151592810192909252156113e2579392505050565b61137d565b505b604051636f96cda160e11b815260040160405180910390fd5b604051630a85bd0160e11b81526000906001600160a01b0385169063150b7a0290611437903390899088908890600401611ccf565b602060405180830381600087803b15801561145157600080fd5b505af1925050508015611481575060408051601f3d908101601f1916820190925261147e91810190611b79565b60015b6114dc573d8080156114af576040519150601f19603f3d011682016040523d82523d6000602084013e6114b4565b606091505b5080516114d4576040516368d2bf6b60e11b815260040160405180910390fd5b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490505b949350505050565b60608161151e5750506040805180820190915260018152600360fc1b602082015290565b8160005b8115611548578061153281611e99565b91506115419050600a83611de8565b9150611522565b60008167ffffffffffffffff81111561156357611563611f0a565b6040519080825280601f01601f19166020018201604052801561158d576020820181803683370190505b5090505b84156114f2576115a2600183611e1b565b91506115af600a86611eb4565b6115ba906030611dd0565b60f81b8183815181106115cf576115cf611ef4565b60200101906001600160f81b031916908160001a9053506115f1600a86611de8565b9450611591565b61078c83838360016000546001600160a01b03851661162957604051622e076360e81b815260040160405180910390fd5b836116475760405163b562e8dd60e01b815260040160405180910390fd5b6001600160a01b0385166000818152600460209081526040808320805467ffffffffffffffff19811667ffffffffffffffff9182168b01821617909155858452600390925290912080546001600160e01b031916909217600160a01b4290921691909102179055808085018380156116c857506001600160a01b0387163b15155b15611751575b60405182906001600160a01b038916906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a46117196000888480600101955088611402565b611736576040516368d2bf6b60e11b815260040160405180910390fd5b808214156116ce57826000541461174c57600080fd5b611797565b5b6040516001830192906001600160a01b038916906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a480821415611752575b506000556112c1565b8280546117ac90611e5e565b90600052602060002090601f0160209004810192826117ce5760008555611814565b82601f106117e75782800160ff19823516178555611814565b82800160010185558215611814579182015b828111156118145782358255916020019190600101906117f9565b50611820929150611824565b5090565b5b808211156118205760008155600101611825565b80356001600160a01b038116811461102657600080fd5b60008083601f84011261186257600080fd5b50813567ffffffffffffffff81111561187a57600080fd5b6020830191508360208260051b850101111561189557600080fd5b9250929050565b8035801515811461102657600080fd5b6000602082840312156118be57600080fd5b6118c782611839565b9392505050565b600080604083850312156118e157600080fd5b6118ea83611839565b91506118f860208401611839565b90509250929050565b60008060006060848603121561191657600080fd5b61191f84611839565b925061192d60208501611839565b9150604084013590509250925092565b6000806000806080858703121561195357600080fd5b61195c85611839565b935061196a60208601611839565b925060408501359150606085013567ffffffffffffffff8082111561198e57600080fd5b818701915087601f8301126119a257600080fd5b8135818111156119b4576119b4611f0a565b604051601f8201601f19908116603f011681019083821181831017156119dc576119dc611f0a565b816040528281528a60208487010111156119f557600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b60008060408385031215611a2c57600080fd5b611a3583611839565b91506118f86020840161189c565b60008060408385031215611a5657600080fd5b611a5f83611839565b946020939093013593505050565b60008060008060408587031215611a8357600080fd5b843567ffffffffffffffff80821115611a9b57600080fd5b611aa788838901611850565b90965094506020870135915080821115611ac057600080fd5b50611acd87828801611850565b95989497509550505050565b600080600060408486031215611aee57600080fd5b611af78461189c565b9250602084013567ffffffffffffffff80821115611b1457600080fd5b818601915086601f830112611b2857600080fd5b813581811115611b3757600080fd5b876020828501011115611b4957600080fd5b6020830194508093505050509250925092565b600060208284031215611b6e57600080fd5b81356118c781611f20565b600060208284031215611b8b57600080fd5b81516118c781611f20565b600060208284031215611ba857600080fd5b5035919050565b600060208284031215611bc157600080fd5b5051919050565b60008151808452611be0816020860160208601611e32565b601f01601f19169290920160200192915050565b8054600090600181811c9080831680611c0e57607f831692505b6020808410821415611c3057634e487b7160e01b600052602260045260246000fd5b818015611c445760018114611c5557611c82565b60ff19861689528489019650611c82565b60008881526020902060005b86811015611c7a5781548b820152908501908301611c61565b505084890196505b50505050505092915050565b60006118c78284611bf4565b6000611ca68285611bf4565b8351611cb6818360208801611e32565b64173539b7b760d91b9101908152600501949350505050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090611d0290830184611bc8565b9695505050505050565b6020815260006118c76020830184611bc8565b6020808252601190820152704e6f7420656e6f75676820737570706c7960781b604082015260600190565b6020808252600d908201526c0a6e8cae040decccc40c4e4c2d609b1b604082015260600190565b6020808252600e908201526d09cdee840cadcdeeaced0408aa8960931b604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b60008219821115611de357611de3611ec8565b500190565b600082611df757611df7611ede565b500490565b6000816000190483118215151615611e1657611e16611ec8565b500290565b600082821015611e2d57611e2d611ec8565b500390565b60005b83811015611e4d578181015183820152602001611e35565b83811115610eed5750506000910152565b600181811c90821680611e7257607f821691505b60208210811415611e9357634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415611ead57611ead611ec8565b5060010190565b600082611ec357611ec3611ede565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160e01b03198116811461089957600080fdfea2646970667358221220d038a16efdf8fcbecf5efab950c9430c7f70b0f7f8f475d4415064bb9ecea0bc64736f6c63430008070033

Deployed Bytecode Sourcemap

18722:5132:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22745:438;;;;;;;;;;-1:-1:-1;22745:438:0;;;;;:::i;:::-;;:::i;:::-;;9993:305;;;;;;;;;;-1:-1:-1;9993:305:0;;;;;:::i;:::-;;:::i;:::-;;;8356:14:1;;8349:22;8331:41;;8319:2;8304:18;9993:305:0;;;;;;;;11703:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;12730:204::-;;;;;;;;;;-1:-1:-1;12730:204:0;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;7654:32:1;;;7636:51;;7624:2;7609:18;12730:204:0;7490:203:1;12351:371:0;;;;;;;;;;-1:-1:-1;12351:371:0;;;;;:::i;:::-;;:::i;9682:146::-;;;;;;;;;;-1:-1:-1;9726:7:0;9778:13;9682:146;;;11531:25:1;;;11519:2;11504:18;9682:146:0;11385:177:1;13401:170:0;;;;;;;;;;-1:-1:-1;13401:170:0;;;;;:::i;:::-;;:::i;23752:99::-;;;;;;;;;;-1:-1:-1;23828:15:0;;;;;;;23752:99;;22368:369;;;;;;;;;;;;;:::i;20091:479::-;;;;;;;;;;;;;:::i;13579:185::-;;;;;;;;;;-1:-1:-1;13579:185:0;;;;;:::i;:::-;;:::i;23652:92::-;;;;;;;;;;-1:-1:-1;23724:12:0;;;;;;;23652:92;;19572:136;;;;;;;;;;;;;:::i;11571:124::-;;;;;;;;;;-1:-1:-1;11571:124:0;;;;;:::i;:::-;;:::i;21666:492::-;;;;;;:::i;:::-;;:::i;10306:206::-;;;;;;;;;;-1:-1:-1;10306:206:0;;;;;:::i;:::-;;:::i;20578:571::-;;;;;;:::i;:::-;;:::i;21157:501::-;;;;;;:::i;:::-;;:::i;11811:104::-;;;;;;;;;;;;;:::i;19269:139::-;;;;;;;;;;;;;:::i;19416:148::-;;;;;;;;;;;;;:::i;19716:367::-;;;;;;:::i;:::-;;:::i;22166:194::-;;;;;;;;;;-1:-1:-1;22166:194:0;;;;;:::i;:::-;;:::i;12942:279::-;;;;;;;;;;-1:-1:-1;12942:279:0;;;;;:::i;:::-;;:::i;13772:369::-;;;;;;;;;;-1:-1:-1;13772:369:0;;;;;:::i;:::-;;:::i;23191:348::-;;;;;;;;;;-1:-1:-1;23191:348:0;;;;;:::i;:::-;;:::i;13229:164::-;;;;;;;;;;-1:-1:-1;13229:164:0;;;;;:::i;:::-;-1:-1:-1;;;;;13350:25:0;;;13326:4;13350:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;;;13229:164;22745:438;22867:8;;-1:-1:-1;;;;;22867:8:0;22853:10;:22;;:82;;-1:-1:-1;22893:42:0;22879:10;:56;22853:82;22845:108;;;;-1:-1:-1;;;22845:108:0;;;;;;;:::i;:::-;;;;;;;;;22972:34;;;22964:43;;;;;;23033:9;23020:10;23060:116;23088:5;23080;:13;23060:116;;;23150:7;;23158:5;23150:14;;;;;;;:::i;:::-;;;;;;;23119:10;:28;23130:9;;23140:5;23130:16;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;23119:28:0;;;;;;;;;;;;-1:-1:-1;23119:28:0;:45;23095:7;;;;:::i;:::-;;;;23060:116;;;;22834:349;22745:438;;;;:::o;9993:305::-;10095:4;-1:-1:-1;;;;;;10132:40:0;;-1:-1:-1;;;10132:40:0;;:105;;-1:-1:-1;;;;;;;10189:48:0;;-1:-1:-1;;;10189:48:0;10132:105;:158;;;-1:-1:-1;;;;;;;;;;7967:40:0;;;10254:36;10112:178;9993:305;-1:-1:-1;;9993:305:0:o;11703:100::-;11757:13;11790:5;11783:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11703:100;:::o;12730:204::-;12798:7;12823:16;12831:7;12823;:16::i;:::-;12818:64;;12848:34;;-1:-1:-1;;;12848:34:0;;;;;;;;;;;12818:64;-1:-1:-1;12902:24:0;;;;:15;:24;;;;;;-1:-1:-1;;;;;12902:24:0;;12730:204::o;12351:371::-;12424:13;12440:24;12456:7;12440:15;:24::i;:::-;12424:40;;12485:5;-1:-1:-1;;;;;12479:11:0;:2;-1:-1:-1;;;;;12479:11:0;;12475:48;;;12499:24;;-1:-1:-1;;;12499:24:0;;;;;;;;;;;12475:48;6245:10;-1:-1:-1;;;;;12540:21:0;;;;;;:63;;-1:-1:-1;12566:37:0;12583:5;6245:10;13229:164;:::i;12566:37::-;12565:38;12540:63;12536:138;;;12627:35;;-1:-1:-1;;;12627:35:0;;;;;;;;;;;12536:138;12686:28;12695:2;12699:7;12708:5;12686:8;:28::i;:::-;12413:309;12351:371;;:::o;13401:170::-;13535:28;13545:4;13551:2;13555:7;13535:9;:28::i;22368:369::-;22430:8;;-1:-1:-1;;;;;22430:8:0;22416:10;:22;;:82;;-1:-1:-1;22456:42:0;22442:10;:56;22416:82;22408:108;;;;-1:-1:-1;;;22408:108:0;;;;;;;:::i;:::-;22535:8;;-1:-1:-1;;;;;22535:8:0;22527:104;22625:5;22555:66;22563:42;22555:59;22617:4;22555:66;:::i;:::-;22554:76;;;;:::i;:::-;22527:104;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22650:8:0;;22642:87;;-1:-1:-1;;;;;22650:8:0;;;;22677:42;22669:59;22642:87;;;;;22650:8;22642:87;22650:8;22642:87;22669:59;22650:8;22642:87;;;;;;;;;;;;;;;;;;;;;22368:369::o;20091:479::-;20159:8;;-1:-1:-1;;;;;20159:8:0;20145:10;:22;;:82;;-1:-1:-1;20185:42:0;20171:10;:56;20145:82;20137:108;;;;-1:-1:-1;;;20137:108:0;;;;;;;:::i;:::-;20299:7;;20278:2;;20299:7;;;;;20291:38;;;;-1:-1:-1;;;20291:38:0;;10880:2:1;20291:38:0;;;10862:21:1;10919:2;10899:18;;;10892:30;-1:-1:-1;;;10938:18:1;;;10931:48;10996:18;;20291:38:0;10678:342:1;20291:38:0;19003:3;20379:13;9726:7;9778:13;;9682:146;20379:13;20362:30;;:14;:30;:::i;:::-;:49;;20340:116;;;;-1:-1:-1;;;20340:116:0;;;;;;;:::i;:::-;20467:7;:15;;-1:-1:-1;;20467:15:0;;;20493:69;20503:42;20547:14;20493:9;:69::i;13579:185::-;13717:39;13734:4;13740:2;13744:7;13717:39;;;;;;;;;;;;:16;:39::i;19572:136::-;19637:8;;-1:-1:-1;;;;;19637:8:0;19623:10;:22;19615:48;;;;-1:-1:-1;;;19615:48:0;;;;;;;:::i;:::-;19689:11;;;-1:-1:-1;;19674:26:0;;19689:11;;;;;;;19688:12;19674:26;;;;;;19572:136::o;11571:124::-;11635:7;11662:20;11674:7;11662:11;:20::i;:::-;:25;;11571:124;-1:-1:-1;;11571:124:0:o;21666:492::-;2319:1;2467:7;;:19;;2459:63;;;;-1:-1:-1;;;2459:63:0;;;;;;;:::i;:::-;2319:1;2598:7;:18;21765:73:::1;::::0;-1:-1:-1;;;21765:73:0;;21827:10:::1;21765:73;::::0;::::1;7636:51:1::0;21841:1:0::1;::::0;21773:42:::1;::::0;21765:61:::1;::::0;7609:18:1;;21765:73:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:77;21757:86;;;::::0;::::1;;21862:11;::::0;;;::::1;;;21854:43;;;::::0;-1:-1:-1;;;21854:43:0;;9497:2:1;21854:43:0::1;::::0;::::1;9479:21:1::0;9536:2;9516:18;;;9509:30;-1:-1:-1;;;9555:18:1;;;9548:49;9614:18;;21854:43:0::1;9295:343:1::0;21854:43:0::1;19003:3;21947:13;9726:7:::0;9778:13;;9682:146;21947:13:::1;21930:30;::::0;:14;:30:::1;:::i;:::-;:49;;21908:116;;;;-1:-1:-1::0;;;21908:116:0::1;;;;;;;:::i;:::-;22069:14;22056:10;;:27;;;;:::i;:::-;22043:9;:40;;22035:67;;;;-1:-1:-1::0;;;22035:67:0::1;;;;;;;:::i;:::-;22113:37;22123:10;22135:14;22113:9;:37::i;:::-;-1:-1:-1::0;2275:1:0;2639:7;:22;21666:492::o;10306:206::-;10370:7;-1:-1:-1;;;;;10394:19:0;;10390:60;;10422:28;;-1:-1:-1;;;10422:28:0;;;;;;;;;;;10390:60;-1:-1:-1;;;;;;10476:19:0;;;;;:12;:19;;;;;:27;;;;10306:206::o;20578:571::-;2319:1;2467:7;;:19;;2459:63;;;;-1:-1:-1;;;2459:63:0;;;;;;;:::i;:::-;2319:1;2598:7;:18;20674:15:::1;::::0;;;::::1;;;20666:47;;;::::0;-1:-1:-1;;;20666:47:0;;10188:2:1;20666:47:0::1;::::0;::::1;10170:21:1::0;10227:2;10207:18;;;10200:30;-1:-1:-1;;;10246:18:1;;;10239:49;10305:18;;20666:47:0::1;9986:343:1::0;20666:47:0::1;20743:10;20775:1;20732:22:::0;;;:10:::1;:22;::::0;;;;;:39:::1;::::0;20757:14;;20732:39:::1;:::i;:::-;:44;;20724:53;;;::::0;::::1;;19003:3;20827:13;9726:7:::0;9778:13;;9682:146;20827:13:::1;20810:30;::::0;:14;:30:::1;:::i;:::-;:49;;20788:116;;;;-1:-1:-1::0;;;20788:116:0::1;;;;;;;:::i;:::-;20949:14;20936:10;;:27;;;;:::i;:::-;20923:9;:40;;20915:67;;;;-1:-1:-1::0;;;20915:67:0::1;;;;;;;:::i;:::-;21054:10;21043:22;::::0;;;:10:::1;:22;::::0;;;;;;:39;;::::1;21018:64:::0;;21104:37:::1;::::0;21068:14;21104:9:::1;:37::i;21157:501::-:0;2319:1;2467:7;;:19;;2459:63;;;;-1:-1:-1;;;2459:63:0;;;;;;;:::i;:::-;2319:1;2598:7;:18;21265:73:::1;::::0;-1:-1:-1;;;21265:73:0;;21327:10:::1;21265:73;::::0;::::1;7636:51:1::0;21341:1:0::1;::::0;21273:42:::1;::::0;21265:61:::1;::::0;7609:18:1;;21265:73:0::1;7490:203:1::0;11811:104:0;11867:13;11900:7;11893:14;;;;;:::i;19269:139::-;19335:8;;-1:-1:-1;;;;;19335:8:0;19321:10;:22;19313:48;;;;-1:-1:-1;;;19313:48:0;;;;;;;:::i;:::-;19388:12;;;-1:-1:-1;;19372:28:0;;19388:12;;;;;;;19387:13;19372:28;;;;;;19269:139::o;19416:148::-;19485:8;;-1:-1:-1;;;;;19485:8:0;19471:10;:22;19463:48;;;;-1:-1:-1;;;19463:48:0;;;;;;;:::i;:::-;19541:15;;;-1:-1:-1;;19522:34:0;;19541:15;;;;;;;19540:16;19522:34;;;;;;19416:148::o;19716:367::-;19790:12;;;;;;;19782:40;;;;-1:-1:-1;;;19782:40:0;;10536:2:1;19782:40:0;;;10518:21:1;10575:2;10555:18;;;10548:30;-1:-1:-1;;;10594:18:1;;;10587:45;10649:18;;19782:40:0;10334:339:1;19782:40:0;19003:3;19872:13;9726:7;9778:13;;9682:146;19872:13;19855:30;;:14;:30;:::i;:::-;:49;;19833:116;;;;-1:-1:-1;;;19833:116:0;;;;;;;:::i;:::-;19994:14;19981:10;;:27;;;;:::i;:::-;19968:9;:40;;19960:67;;;;-1:-1:-1;;;19960:67:0;;;;;;;:::i;:::-;20038:37;20048:10;20060:14;20038:9;:37::i;22166:194::-;22265:8;;-1:-1:-1;;;;;22265:8:0;22251:10;:22;22243:48;;;;-1:-1:-1;;;22243:48:0;;;;;;;:::i;:::-;22302:10;:21;;-1:-1:-1;;22302:21:0;;;;;;;22334:18;:7;22344:8;;22334:18;:::i;:::-;;22166:194;;;:::o;12942:279::-;-1:-1:-1;;;;;13033:24:0;;6245:10;13033:24;13029:54;;;13066:17;;-1:-1:-1;;;13066:17:0;;;;;;;;;;;13029:54;6245:10;13096:32;;;;:18;:32;;;;;;;;-1:-1:-1;;;;;13096:42:0;;;;;;;;;;;;:53;;-1:-1:-1;;13096:53:0;;;;;;;;;;13165:48;;8331:41:1;;;13096:42:0;;6245:10;13165:48;;8304:18:1;13165:48:0;;;;;;;12942:279;;:::o;13772:369::-;13939:28;13949:4;13955:2;13959:7;13939:9;:28::i;:::-;-1:-1:-1;;;;;13982:13:0;;2783:19;:23;;13982:76;;;;;14002:56;14033:4;14039:2;14043:7;14052:5;14002:30;:56::i;:::-;14001:57;13982:76;13978:156;;;14082:40;;-1:-1:-1;;;14082:40:0;;;;;;;;;;;23191:348;23344:10;;23309:13;;23344:10;;23340:192;;;23402:7;23411:25;23428:7;23411:16;:25::i;:::-;23385:61;;;;;;;;;:::i;:::-;;;;;;;;;;;;;23371:76;;23191:348;;;:::o;23340:192::-;23511:7;23494:25;;;;;;;;:::i;23340:192::-;23191:348;;;:::o;14149:187::-;14206:4;14270:13;;14260:7;:23;14230:98;;;;-1:-1:-1;;14301:20:0;;;;:11;:20;;;;;:27;-1:-1:-1;;;14301:27:0;;;;14300:28;;14149:187::o;17497:196::-;17612:24;;;;:15;:24;;;;;;:29;;-1:-1:-1;;;;;;17612:29:0;-1:-1:-1;;;;;17612:29:0;;;;;;;;;17657:28;;17612:24;;17657:28;;;;;;;17497:196;;;:::o;16067:1422::-;16182:35;16220:20;16232:7;16220:11;:20::i;:::-;16295:18;;16182:58;;-1:-1:-1;16253:22:0;;-1:-1:-1;;;;;16279:34:0;6245:10;-1:-1:-1;;;;;16279:34:0;;:101;;;-1:-1:-1;16347:18:0;;16330:50;;6245:10;13229:164;:::i;16330:50::-;16279:154;;;-1:-1:-1;6245:10:0;16397:20;16409:7;16397:11;:20::i;:::-;-1:-1:-1;;;;;16397:36:0;;16279:154;16253:181;;16452:17;16447:66;;16478:35;;-1:-1:-1;;;16478:35:0;;;;;;;;;;;16447:66;16550:4;-1:-1:-1;;;;;16528:26:0;:13;:18;;;-1:-1:-1;;;;;16528:26:0;;16524:67;;16563:28;;-1:-1:-1;;;16563:28:0;;;;;;;;;;;16524:67;-1:-1:-1;;;;;16606:16:0;;16602:52;;16631:23;;-1:-1:-1;;;16631:23:0;;;;;;;;;;;16602:52;16723:49;16740:1;16744:7;16753:13;:18;;;16723:8;:49::i;:::-;-1:-1:-1;;;;;16808:18:0;;;;;;;:12;:18;;;;;;;;:31;;-1:-1:-1;;16808:31:0;;;;;;;-1:-1:-1;;16808:31:0;;;;;;;16854:16;;;;;;;;;:29;;;;;;;;-1:-1:-1;16854:29:0;;;;;;;;;;;16900:20;;;:11;:20;;;;;;:30;;-1:-1:-1;;;;;;16945:61:0;;;;-1:-1:-1;;;16990:15:0;16945:61;;;;;;;;;;;17045:11;;;17075:24;;;;;:29;17045:11;;17075:29;17071:302;;17157:13;;17143:11;:27;17139:219;;;17227:18;;;17195:24;;;:11;:24;;;;;;;;:50;;17310:28;;;;17268:70;;-1:-1:-1;;;17268:70:0;-1:-1:-1;;;;;;17268:70:0;;;-1:-1:-1;;;;;17195:50:0;;;17268:70;;;;;;;17139:219;16783:601;17420:7;17416:2;-1:-1:-1;;;;;17401:27:0;17410:4;-1:-1:-1;;;;;17401:27:0;;;;;;;;;;;17439:42;16171:1318;;16067:1422;;;:::o;14344:104::-;14413:27;14423:2;14427:8;14413:27;;;;;;;;;;;;:9;:27::i;:::-;14344:104;;:::o;10735:828::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;10845:7:0;10928:13;;10921:4;:20;10890:606;;;10962:31;10996:17;;;:11;:17;;;;;;;;;10962:51;;;;;;;;;-1:-1:-1;;;;;10962:51:0;;;;-1:-1:-1;;;10962:51:0;;;;;;;;;;;-1:-1:-1;;;10962:51:0;;;;;;;;;;;;;;11032:449;;11082:14;;-1:-1:-1;;;;;11082:28:0;;11078:101;;11146:9;10735:828;-1:-1:-1;;;10735:828:0:o;11078:101::-;-1:-1:-1;;;11241:6:0;11286:17;;;;:11;:17;;;;;;;;;11274:29;;;;;;;;;-1:-1:-1;;;;;11274:29:0;;;;;-1:-1:-1;;;11274:29:0;;;;;;;;;;;-1:-1:-1;;;11274:29:0;;;;;;;;;;;;;11334:28;11330:109;;11402:9;10735:828;-1:-1:-1;;;10735:828:0:o;11330:109::-;11201:261;;;10943:553;10890:606;11524:31;;-1:-1:-1;;;11524:31:0;;;;;;;;;;;17701:667;17885:72;;-1:-1:-1;;;17885:72:0;;17864:4;;-1:-1:-1;;;;;17885:36:0;;;;;:72;;6245:10;;17936:4;;17942:7;;17951:5;;17885:72;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17885:72:0;;;;;;;;-1:-1:-1;;17885:72:0;;;;;;;;;;;;:::i;:::-;;;17881:480;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18119:13:0;;18115:235;;18165:40;;-1:-1:-1;;;18165:40:0;;;;;;;;;;;18115:235;18308:6;18302:13;18293:6;18289:2;18285:15;18278:38;17881:480;-1:-1:-1;;;;;;18004:55:0;-1:-1:-1;;;18004:55:0;;-1:-1:-1;17881:480:0;17701:667;;;;;;:::o;6469:532::-;6525:13;6555:10;6551:53;;-1:-1:-1;;6582:10:0;;;;;;;;;;;;-1:-1:-1;;;6582:10:0;;;;;6469:532::o;6551:53::-;6629:5;6614:12;6670:78;6677:9;;6670:78;;6703:8;;;;:::i;:::-;;-1:-1:-1;6726:10:0;;-1:-1:-1;6734:2:0;6726:10;;:::i;:::-;;;6670:78;;;6758:19;6790:6;6780:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6780:17:0;;6758:39;;6808:154;6815:10;;6808:154;;6842:11;6852:1;6842:11;;:::i;:::-;;-1:-1:-1;6911:10:0;6919:2;6911:5;:10;:::i;:::-;6898:24;;:2;:24;:::i;:::-;6885:39;;6868:6;6875;6868:14;;;;;;;;:::i;:::-;;;;:56;-1:-1:-1;;;;;6868:56:0;;;;;;;;-1:-1:-1;6939:11:0;6948:2;6939:11;;:::i;:::-;;;6808:154;;14456:163;14579:32;14585:2;14589:8;14599:5;14606:4;14766:20;14789:13;-1:-1:-1;;;;;14817:16:0;;14813:48;;14842:19;;-1:-1:-1;;;14842:19:0;;;;;;;;;;;14813:48;14876:13;14872:44;;14898:18;;-1:-1:-1;;;14898:18:0;;;;;;;;;;;14872:44;-1:-1:-1;;;;;15028:16:0;;;;;;:12;:16;;;;;;;;:44;;-1:-1:-1;;15028:44:0;;;;;;;;;;;;;;15089:25;;;:11;:25;;;;;;:35;;-1:-1:-1;;;;;;15139:66:0;;;;-1:-1:-1;;;15189:15:0;15139:66;;;;;;;;;;15089:25;15286:23;;;15330:4;:23;;;;-1:-1:-1;;;;;;15338:13:0;;2783:19;:23;;15338:15;15326:601;;;15374:314;15405:38;;15430:12;;-1:-1:-1;;;;;15405:38:0;;;15422:1;;15405:38;;15422:1;;15405:38;15471:69;15510:1;15514:2;15518:14;;;;;;15534:5;15471:30;:69::i;:::-;15466:174;;15576:40;;-1:-1:-1;;;15576:40:0;;;;;;;;;;;15466:174;15683:3;15667:12;:19;;15374:314;;15729:12;15712:13;;:29;15708:43;;15743:8;;;15708:43;15326:601;;;15792:120;15823:40;;15848:14;;;;;-1:-1:-1;;;;;15823:40:0;;;15840:1;;15823:40;;15840:1;;15823:40;15907:3;15891:12;:19;;15792:120;;15326:601;-1:-1:-1;15941:13:0;:28;15991:60;22166:194;-1:-1:-1;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:173:1;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:70;;177:1;174;167:12;192:367;255:8;265:6;319:3;312:4;304:6;300:17;296:27;286:55;;337:1;334;327:12;286:55;-1:-1:-1;360:20:1;;403:18;392:30;;389:50;;;435:1;432;425:12;389:50;472:4;464:6;460:17;448:29;;532:3;525:4;515:6;512:1;508:14;500:6;496:27;492:38;489:47;486:67;;;549:1;546;539:12;486:67;192:367;;;;;:::o;564:160::-;629:20;;685:13;;678:21;668:32;;658:60;;714:1;711;704:12;729:186;788:6;841:2;829:9;820:7;816:23;812:32;809:52;;;857:1;854;847:12;809:52;880:29;899:9;880:29;:::i;:::-;870:39;729:186;-1:-1:-1;;;729:186:1:o;920:260::-;988:6;996;1049:2;1037:9;1028:7;1024:23;1020:32;1017:52;;;1065:1;1062;1055:12;1017:52;1088:29;1107:9;1088:29;:::i;:::-;1078:39;;1136:38;1170:2;1159:9;1155:18;1136:38;:::i;:::-;1126:48;;920:260;;;;;:::o;1185:328::-;1262:6;1270;1278;1331:2;1319:9;1310:7;1306:23;1302:32;1299:52;;;1347:1;1344;1337:12;1299:52;1370:29;1389:9;1370:29;:::i;:::-;1360:39;;1418:38;1452:2;1441:9;1437:18;1418:38;:::i;:::-;1408:48;;1503:2;1492:9;1488:18;1475:32;1465:42;;1185:328;;;;;:::o;1518:1138::-;1613:6;1621;1629;1637;1690:3;1678:9;1669:7;1665:23;1661:33;1658:53;;;1707:1;1704;1697:12;1658:53;1730:29;1749:9;1730:29;:::i;:::-;1720:39;;1778:38;1812:2;1801:9;1797:18;1778:38;:::i;:::-;1768:48;;1863:2;1852:9;1848:18;1835:32;1825:42;;1918:2;1907:9;1903:18;1890:32;1941:18;1982:2;1974:6;1971:14;1968:34;;;1998:1;1995;1988:12;1968:34;2036:6;2025:9;2021:22;2011:32;;2081:7;2074:4;2070:2;2066:13;2062:27;2052:55;;2103:1;2100;2093:12;2052:55;2139:2;2126:16;2161:2;2157;2154:10;2151:36;;;2167:18;;:::i;:::-;2242:2;2236:9;2210:2;2296:13;;-1:-1:-1;;2292:22:1;;;2316:2;2288:31;2284:40;2272:53;;;2340:18;;;2360:22;;;2337:46;2334:72;;;2386:18;;:::i;:::-;2426:10;2422:2;2415:22;2461:2;2453:6;2446:18;2501:7;2496:2;2491;2487;2483:11;2479:20;2476:33;2473:53;;;2522:1;2519;2512:12;2473:53;2578:2;2573;2569;2565:11;2560:2;2552:6;2548:15;2535:46;2623:1;2618:2;2613;2605:6;2601:15;2597:24;2590:35;2644:6;2634:16;;;;;;;1518:1138;;;;;;;:::o;2661:254::-;2726:6;2734;2787:2;2775:9;2766:7;2762:23;2758:32;2755:52;;;2803:1;2800;2793:12;2755:52;2826:29;2845:9;2826:29;:::i;:::-;2816:39;;2874:35;2905:2;2894:9;2890:18;2874:35;:::i;2920:254::-;2988:6;2996;3049:2;3037:9;3028:7;3024:23;3020:32;3017:52;;;3065:1;3062;3055:12;3017:52;3088:29;3107:9;3088:29;:::i;:::-;3078:39;3164:2;3149:18;;;;3136:32;;-1:-1:-1;;;2920:254:1:o;3179:773::-;3301:6;3309;3317;3325;3378:2;3366:9;3357:7;3353:23;3349:32;3346:52;;;3394:1;3391;3384:12;3346:52;3434:9;3421:23;3463:18;3504:2;3496:6;3493:14;3490:34;;;3520:1;3517;3510:12;3490:34;3559:70;3621:7;3612:6;3601:9;3597:22;3559:70;:::i;:::-;3648:8;;-1:-1:-1;3533:96:1;-1:-1:-1;3736:2:1;3721:18;;3708:32;;-1:-1:-1;3752:16:1;;;3749:36;;;3781:1;3778;3771:12;3749:36;;3820:72;3884:7;3873:8;3862:9;3858:24;3820:72;:::i;:::-;3179:773;;;;-1:-1:-1;3911:8:1;-1:-1:-1;;;;3179:773:1:o;3957:660::-;4034:6;4042;4050;4103:2;4091:9;4082:7;4078:23;4074:32;4071:52;;;4119:1;4116;4109:12;4071:52;4142:26;4158:9;4142:26;:::i;:::-;4132:36;;4219:2;4208:9;4204:18;4191:32;4242:18;4283:2;4275:6;4272:14;4269:34;;;4299:1;4296;4289:12;4269:34;4337:6;4326:9;4322:22;4312:32;;4382:7;4375:4;4371:2;4367:13;4363:27;4353:55;;4404:1;4401;4394:12;4353:55;4444:2;4431:16;4470:2;4462:6;4459:14;4456:34;;;4486:1;4483;4476:12;4456:34;4531:7;4526:2;4517:6;4513:2;4509:15;4505:24;4502:37;4499:57;;;4552:1;4549;4542:12;4499:57;4583:2;4579;4575:11;4565:21;;4605:6;4595:16;;;;;3957:660;;;;;:::o;4622:245::-;4680:6;4733:2;4721:9;4712:7;4708:23;4704:32;4701:52;;;4749:1;4746;4739:12;4701:52;4788:9;4775:23;4807:30;4831:5;4807:30;:::i;4872:249::-;4941:6;4994:2;4982:9;4973:7;4969:23;4965:32;4962:52;;;5010:1;5007;5000:12;4962:52;5042:9;5036:16;5061:30;5085:5;5061:30;:::i;5126:180::-;5185:6;5238:2;5226:9;5217:7;5213:23;5209:32;5206:52;;;5254:1;5251;5244:12;5206:52;-1:-1:-1;5277:23:1;;5126:180;-1:-1:-1;5126:180:1:o;5311:184::-;5381:6;5434:2;5422:9;5413:7;5409:23;5405:32;5402:52;;;5450:1;5447;5440:12;5402:52;-1:-1:-1;5473:16:1;;5311:184;-1:-1:-1;5311:184:1:o;5500:257::-;5541:3;5579:5;5573:12;5606:6;5601:3;5594:19;5622:63;5678:6;5671:4;5666:3;5662:14;5655:4;5648:5;5644:16;5622:63;:::i;:::-;5739:2;5718:15;-1:-1:-1;;5714:29:1;5705:39;;;;5746:4;5701:50;;5500:257;-1:-1:-1;;5500:257:1:o;5762:973::-;5847:12;;5812:3;;5902:1;5922:18;;;;5975;;;;6002:61;;6056:4;6048:6;6044:17;6034:27;;6002:61;6082:2;6130;6122:6;6119:14;6099:18;6096:38;6093:161;;;6176:10;6171:3;6167:20;6164:1;6157:31;6211:4;6208:1;6201:15;6239:4;6236:1;6229:15;6093:161;6270:18;6297:104;;;;6415:1;6410:319;;;;6263:466;;6297:104;-1:-1:-1;;6330:24:1;;6318:37;;6375:16;;;;-1:-1:-1;6297:104:1;;6410:319;11640:1;11633:14;;;11677:4;11664:18;;6504:1;6518:165;6532:6;6529:1;6526:13;6518:165;;;6610:14;;6597:11;;;6590:35;6653:16;;;;6547:10;;6518:165;;;6522:3;;6712:6;6707:3;6703:16;6696:23;;6263:466;;;;;;;5762:973;;;;:::o;6740:197::-;6868:3;6893:38;6927:3;6919:6;6893:38;:::i;6942:543::-;7219:3;7247:38;7281:3;7273:6;7247:38;:::i;:::-;7314:6;7308:13;7330:52;7375:6;7371:2;7364:4;7356:6;7352:17;7330:52;:::i;:::-;-1:-1:-1;;;7404:15:1;;7428:22;;;7477:1;7466:13;;6942:543;-1:-1:-1;;;;6942:543:1:o;7698:488::-;-1:-1:-1;;;;;7967:15:1;;;7949:34;;8019:15;;8014:2;7999:18;;7992:43;8066:2;8051:18;;8044:34;;;8114:3;8109:2;8094:18;;8087:31;;;7892:4;;8135:45;;8160:19;;8152:6;8135:45;:::i;:::-;8127:53;7698:488;-1:-1:-1;;;;;;7698:488:1:o;8383:219::-;8532:2;8521:9;8514:21;8495:4;8552:44;8592:2;8581:9;8577:18;8569:6;8552:44;:::i;8607:341::-;8809:2;8791:21;;;8848:2;8828:18;;;8821:30;-1:-1:-1;;;8882:2:1;8867:18;;8860:47;8939:2;8924:18;;8607:341::o;8953:337::-;9155:2;9137:21;;;9194:2;9174:18;;;9167:30;-1:-1:-1;;;9228:2:1;9213:18;;9206:43;9281:2;9266:18;;8953:337::o;9643:338::-;9845:2;9827:21;;;9884:2;9864:18;;;9857:30;-1:-1:-1;;;9918:2:1;9903:18;;9896:44;9972:2;9957:18;;9643:338::o;11025:355::-;11227:2;11209:21;;;11266:2;11246:18;;;11239:30;11305:33;11300:2;11285:18;;11278:61;11371:2;11356:18;;11025:355::o;11693:128::-;11733:3;11764:1;11760:6;11757:1;11754:13;11751:39;;;11770:18;;:::i;:::-;-1:-1:-1;11806:9:1;;11693:128::o;11826:120::-;11866:1;11892;11882:35;;11897:18;;:::i;:::-;-1:-1:-1;11931:9:1;;11826:120::o;11951:168::-;11991:7;12057:1;12053;12049:6;12045:14;12042:1;12039:21;12034:1;12027:9;12020:17;12016:45;12013:71;;;12064:18;;:::i;:::-;-1:-1:-1;12104:9:1;;11951:168::o;12124:125::-;12164:4;12192:1;12189;12186:8;12183:34;;;12197:18;;:::i;:::-;-1:-1:-1;12234:9:1;;12124:125::o;12254:258::-;12326:1;12336:113;12350:6;12347:1;12344:13;12336:113;;;12426:11;;;12420:18;12407:11;;;12400:39;12372:2;12365:10;12336:113;;;12467:6;12464:1;12461:13;12458:48;;;-1:-1:-1;;12502:1:1;12484:16;;12477:27;12254:258::o;12517:380::-;12596:1;12592:12;;;;12639;;;12660:61;;12714:4;12706:6;12702:17;12692:27;;12660:61;12767:2;12759:6;12756:14;12736:18;12733:38;12730:161;;;12813:10;12808:3;12804:20;12801:1;12794:31;12848:4;12845:1;12838:15;12876:4;12873:1;12866:15;12730:161;;12517:380;;;:::o;12902:135::-;12941:3;-1:-1:-1;;12962:17:1;;12959:43;;;12982:18;;:::i;:::-;-1:-1:-1;13029:1:1;13018:13;;12902:135::o;13042:112::-;13074:1;13100;13090:35;;13105:18;;:::i;:::-;-1:-1:-1;13139:9:1;;13042:112::o;13159:127::-;13220:10;13215:3;13211:20;13208:1;13201:31;13251:4;13248:1;13241:15;13275:4;13272:1;13265:15;13291:127;13352:10;13347:3;13343:20;13340:1;13333:31;13383:4;13380:1;13373:15;13407:4;13404:1;13397:15;13423:127;13484:10;13479:3;13475:20;13472:1;13465:31;13515:4;13512:1;13505:15;13539:4;13536:1;13529:15;13555:127;13616:10;13611:3;13607:20;13604:1;13597:31;13647:4;13644:1;13637:15;13671:4;13668:1;13661:15;13687:131;-1:-1:-1;;;;;;13761:32:1;;13751:43;;13741:71;;13808:1;13805;13798:12

Swarm Source

ipfs://d038a16efdf8fcbecf5efab950c9430c7f70b0f7f8f475d4415064bb9ecea0bc
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.