ETH Price: $2,730.61 (+0.86%)

Token

Vinyl-Canvas (VC)
 

Overview

Max Total Supply

1,000 VC

Holders

50

Market

Volume (24H)

N/A

Min Price (24H)

N/A

Max Price (24H)

N/A
Balance
1 VC
0xecbf9122f1a7489d560ea3596451e814f4f845e5
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:
ERC721

Compiler Version
v0.8.0+commit.c7dfd78e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-09-19
*/

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


interface IERC165 {
    /**
     * @dev Returns true if this contract implements the interface defined by
     * `interfaceId`. See the corresponding
     * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]
     * to learn more about how these ids are created.
     *
     * This function call must use less than 30 000 gas.
     */
    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);

    function ownerOf(uint256 _tokenId) external view returns (address);
    
    function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes memory data) external;

    function safeTransferFrom(address _from, address _to, uint256 _tokenId) external;

    function transferFrom(address _from, address _to, uint256 _tokenId) external;

    function approve(address _approved, uint256 _tokenId) external;

    function setApprovalForAll(address _operator, bool _approved) external;

    function getApproved(uint256 _tokenId) external view returns (address);

    function isApprovedForAll(address _owner, address _operator) external view returns (bool);
    
}

interface IERC721Receiver {
    /**
     * @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}
     * by `operator` from `from`, this function is called.
     *
     * It must return its Solidity selector to confirm the token transfer.
     * If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.
     *
     * The selector can be obtained in Solidity with `IERC721.onERC721Received.selector`.
     */
    function onERC721Received(address operator, address from, uint256 tokenId, bytes calldata data) external returns (bytes4);
}

interface IERC721Metadata is IERC721 {

    /**
     * @dev Returns the token collection name.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the token collection symbol.
     */
    function symbol() external view returns (string memory);
    
    function totalSupply() external view returns(uint256);
    
    /**
     * @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token.
     */
    function tokenURI(uint256 tokenId) external view returns (string memory);
}

library Address {
    /**
     * @dev Returns true if `account` is a contract.
     *
     * [IMPORTANT]
     * ====
     * It is unsafe to assume that an address for which this function returns
     * false is an externally-owned account (EOA) and not a contract.
     *
     * Among others, `isContract` will return false for the following
     * types of addresses:
     *
     *  - an externally-owned account
     *  - a contract in construction
     *  - an address where a contract will be created
     *  - an address where a contract lived, but was destroyed
     * ====
     */
    function isContract(address account) internal view returns (bool) {
        // This method relies on extcodesize, which returns 0 for contracts in
        // construction, since the code is only stored at the end of the
        // constructor execution.

        uint256 size;
        // solhint-disable-next-line no-inline-assembly
        assembly { size := extcodesize(account) }
        return size > 0;
    }

    /**
     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to
     * `recipient`, forwarding all available gas and reverting on errors.
     *
     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost
     * of certain opcodes, possibly making contracts go over the 2300 gas limit
     * imposed by `transfer`, making them unable to receive funds via
     * `transfer`. {sendValue} removes this limitation.
     *
     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].
     *
     * IMPORTANT: because control is transferred to `recipient`, care must be
     * taken to not create reentrancy vulnerabilities. Consider using
     * {ReentrancyGuard} or the
     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].
     */
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        // solhint-disable-next-line avoid-low-level-calls, avoid-call-value
        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

    /**
     * @dev Performs a Solidity function call using a low level `call`. A
     * plain`call` is an unsafe replacement for a function call: use this
     * function instead.
     *
     * If `target` reverts with a revert reason, it is bubbled up by this
     * function (like regular Solidity function calls).
     *
     * Returns the raw returned data. To convert to the expected return value,
     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].
     *
     * Requirements:
     *
     * - `target` must be a contract.
     * - calling `target` with `data` must not revert.
     *
     * _Available since v3.1._
     */
    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
      return functionCall(target, data, "Address: low-level call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with
     * `errorMessage` as a fallback revert reason when `target` reverts.
     *
     * _Available since v3.1._
     */
    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but also transferring `value` wei to `target`.
     *
     * Requirements:
     *
     * - the calling contract must have an ETH balance of at least `value`.
     * - the called Solidity function must be `payable`.
     *
     * _Available since v3.1._
     */
    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    /**
     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but
     * with `errorMessage` as a fallback revert reason when `target` reverts.
     *
     * _Available since v3.1._
     */
    function 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");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = target.call{ value: value }(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but performing a static call.
     *
     * _Available since v3.3._
     */
    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
        return functionStaticCall(target, data, "Address: low-level static call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
     * but performing a static call.
     *
     * _Available since v3.3._
     */
    function functionStaticCall(address target, bytes memory data, string memory errorMessage) internal view returns (bytes memory) {
        require(isContract(target), "Address: static call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = target.staticcall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but performing a delegate call.
     *
     * _Available since v3.4._
     */
    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionDelegateCall(target, data, "Address: low-level delegate call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
     * but performing a delegate call.
     *
     * _Available since v3.4._
     */
    function functionDelegateCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        require(isContract(target), "Address: delegate call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = target.delegatecall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }

    function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private pure returns(bytes memory) {
        if (success) {
            return returndata;
        } else {
            // Look for revert reason and bubble it up if present
            if (returndata.length > 0) {
                // The easiest way to bubble the revert reason is using memory via assembly

                // solhint-disable-next-line no-inline-assembly
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

library Strings {
    bytes16 private constant alphabet = "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] = alphabet[value & 0xf];
            value >>= 4;
        }
        require(value == 0, "Strings: hex length insufficient");
        return string(buffer);
    }

}

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

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

    string private uriLink = "https://vinyl.red/api/canvas/";
    
    bool private _minting = true;
    
    address payable private _owner;
    
    uint256 private _count;
    
    string private _name;

    string private _symbol;

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

    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_;
        _owners[0] = msg.sender;
        _balances[msg.sender] = 1;
        _owner = payable(msg.sender);
    }
    
    function setMinting(bool boolean) external {
        require(msg.sender == _owner);
        _minting = boolean;
    }
    
    function transferOwnership(address to) external {
        require(msg.sender == _owner);
        _owner = payable(to);
    }
    
    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 totalSupply() external view override returns(uint256){return 1000;}

    function tokenURI(uint256 tokenId) external view override returns (string memory) {
        return _uri[tokenId];
    }

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

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

        require(msg.sender == owner || isApprovedForAll(owner, msg.sender),
            "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 != msg.sender, "ERC721: approve to caller");

        _operatorApprovals[msg.sender][operator] = approved;
        emit ApprovalForAll(msg.sender, 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) external override {
        //solhint-disable-next-line max-line-length
        require(_isApprovedOrOwner(msg.sender, tokenId), "ERC721: transfer caller is not owner nor approved");

        _transfer(from, to, tokenId);
    }

    function safeTransferFrom(address from, address to, uint256 tokenId) external override {
        _transfer(from, to, tokenId);
        require(_checkOnERC721Received(from, to, tokenId, ""), "ERC721: transfer to non ERC721Receiver implementer");
    }

    function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory _data) external override {
        require(_isApprovedOrOwner(msg.sender, 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 returns (bool) {
        return _owners[tokenId] != address(0);
    }

    function _isApprovedOrOwner(address spender, uint256 tokenId) internal view returns (bool) {
        require(_exists(tokenId), "ERC721: operator query for nonexistent token");
        address owner = _owners[tokenId];
        require(spender == owner || getApproved(tokenId) == spender || isApprovedForAll(owner, spender), "ERC721: Not approved or owner");
        return (spender == owner || getApproved(tokenId) == spender || isApprovedForAll(owner, spender));
    }

    function mint(address to) external payable returns(uint256 ID){
        require(_minting, "Minting disabeled");
        require(msg.value == 50000000000000000, "Insufficient ETH");
        require(_count < 1000, "All NFT's minted");
        _owner.transfer(address(this).balance);
        require(to != address(0), "ERC721: mint to the zero address");
        
        uint256 count = _count;
        string memory link = uriLink;
        
        _balances[to] += 1;
        _owners[count] = to;
            
        string memory uri = concat(link, count.toString());
        uri = concat(uri, ".json");
        _uri[count] = uri;
        
        _count += 1;
        
        emit Transfer(address(0), to, count);
        
        return count;
    }
    
    function mintInternal(address to) internal returns(uint256 ID){
        uint256 count = _count;
        string memory link = uriLink;
        
        _balances[to] += 1;
        _owners[count] = to;
            
        string memory uri = concat(link, count.toString());
        uri = concat(uri, ".json");
        _uri[count] = uri;
        
        _count += 1;
        
        emit Transfer(address(0), to, count);
        
        return count;
    }
    
    function concat(string memory _base, string memory _value) pure internal returns (string memory) {
        bytes memory _baseBytes = bytes(_base);
        bytes memory _valueBytes = bytes(_value);
        
        string memory _tmpValue = new string(_baseBytes.length + _valueBytes.length);
        bytes memory _newValue = bytes(_tmpValue);
        
        uint i;
        uint j;
        
        for(i=0;i<_baseBytes.length;i++) {
            _newValue[j++] = _baseBytes[i];
        }
        
        for(i=0;i<_valueBytes.length;i++) {
            _newValue[j++] = _valueBytes[i];
        }
        
        return string(_newValue);
    }

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

        // 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(msg.sender, from, tokenId, _data) returns (bytes4 retval) {
                return retval == IERC721Receiver(to).onERC721Received.selector;
            } catch (bytes memory reason) {
                if (reason.length == 0) {
                    revert("ERC721: transfer to non ERC721Receiver implementer");
                } else {
                    // solhint-disable-next-line no-inline-assembly
                    assembly {
                        revert(add(32, reason), mload(reason))
                    }
                }
            }
        } else {
            return true;
        }
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","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":"_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":"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":"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":[{"internalType":"address","name":"to","type":"address"}],"name":"mint","outputs":[{"internalType":"uint256","name":"ID","type":"uint256"}],"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":"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":"bool","name":"boolean","type":"bool"}],"name":"setMinting","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":"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":"to","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040526040518060400160405280601d81526020017f68747470733a2f2f76696e796c2e7265642f6170692f63616e7661732f0000008152506000908051906020019062000051929190620001b0565b5060018060006101000a81548160ff0219169083151502179055503480156200007957600080fd5b50604051620032f1380380620032f183398181016040528101906200009f9190620002d2565b8160039080519060200190620000b7929190620001b0565b508060049080519060200190620000d0929190620001b0565b50336005600080815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550336001806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505062000476565b828054620001be90620003e2565b90600052602060002090601f016020900481019282620001e257600085556200022e565b82601f10620001fd57805160ff19168380011785556200022e565b828001600101855582156200022e579182015b828111156200022d57825182559160200191906001019062000210565b5b5090506200023d919062000241565b5090565b5b808211156200025c57600081600090555060010162000242565b5090565b600062000277620002718462000379565b62000345565b9050828152602081018484840111156200029057600080fd5b6200029d848285620003ac565b509392505050565b600082601f830112620002b757600080fd5b8151620002c984826020860162000260565b91505092915050565b60008060408385031215620002e657600080fd5b600083015167ffffffffffffffff8111156200030157600080fd5b6200030f85828601620002a5565b925050602083015167ffffffffffffffff8111156200032d57600080fd5b6200033b85828601620002a5565b9150509250929050565b6000604051905081810181811067ffffffffffffffff821117156200036f576200036e62000447565b5b8060405250919050565b600067ffffffffffffffff82111562000397576200039662000447565b5b601f19601f8301169050602081019050919050565b60005b83811015620003cc578082015181840152602081019050620003af565b83811115620003dc576000848401525b50505050565b60006002820490506001821680620003fb57607f821691505b6020821081141562000412576200041162000418565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612e6b80620004866000396000f3fe6080604052600436106100fe5760003560e01c80636a62784211610095578063b4c7f06611610064578063b4c7f0661461034c578063b88d4fde14610375578063c87b56dd1461039e578063e985e9c5146103db578063f2fde38b14610418576100fe565b80636a6278421461028b57806370a08231146102bb57806395d89b41146102f8578063a22cb46514610323576100fe565b806318160ddd116100d157806318160ddd146101d157806323b872dd146101fc57806342842e0e146102255780636352211e1461024e576100fe565b806301ffc9a71461010357806306fdde0314610140578063081812fc1461016b578063095ea7b3146101a8575b600080fd5b34801561010f57600080fd5b5061012a60048036038101906101259190612101565b610441565b60405161013791906127fe565b60405180910390f35b34801561014c57600080fd5b50610155610523565b6040516101629190612819565b60405180910390f35b34801561017757600080fd5b50610192600480360381019061018d9190612153565b6105b5565b60405161019f9190612797565b60405180910390f35b3480156101b457600080fd5b506101cf60048036038101906101ca919061209c565b61063a565b005b3480156101dd57600080fd5b506101e6610744565b6040516101f39190612a3b565b60405180910390f35b34801561020857600080fd5b50610223600480360381019061021e9190611f96565b61074e565b005b34801561023157600080fd5b5061024c60048036038101906102479190611f96565b6107a7565b005b34801561025a57600080fd5b5061027560048036038101906102709190612153565b610811565b6040516102829190612797565b60405180910390f35b6102a560048036038101906102a09190611f31565b6108c3565b6040516102b29190612a3b565b60405180910390f35b3480156102c757600080fd5b506102e260048036038101906102dd9190611f31565b610cb8565b6040516102ef9190612a3b565b60405180910390f35b34801561030457600080fd5b5061030d610d70565b60405161031a9190612819565b60405180910390f35b34801561032f57600080fd5b5061034a60048036038101906103459190612060565b610e02565b005b34801561035857600080fd5b50610373600480360381019061036e91906120d8565b610f6e565b005b34801561038157600080fd5b5061039c60048036038101906103979190611fe5565b610fe3565b005b3480156103aa57600080fd5b506103c560048036038101906103c09190612153565b61103e565b6040516103d29190612819565b60405180910390f35b3480156103e757600080fd5b5061040260048036038101906103fd9190611f5a565b6110e3565b60405161040f91906127fe565b60405180910390f35b34801561042457600080fd5b5061043f600480360381019061043a9190611f31565b611177565b005b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061050c57507f43481e42000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061051c575061051b82611212565b5b9050919050565b60606003805461053290612c60565b80601f016020809104026020016040519081016040528092919081815260200182805461055e90612c60565b80156105ab5780601f10610580576101008083540402835291602001916105ab565b820191906000526020600020905b81548152906001019060200180831161058e57829003601f168201915b5050505050905090565b60006105c08261127c565b6105ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105f69061299b565b60405180910390fd5b6008600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061064582610811565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156106b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ad906129db565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806106f657506106f581336110e3565b5b610735576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072c9061291b565b60405180910390fd5b61073f83836112e8565b505050565b60006103e8905090565b61075833826113a1565b610797576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078e90612a1b565b60405180910390fd5b6107a2838383611567565b505050565b6107b2838383611567565b6107cd838383604051806020016040528060008152506117b8565b61080c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108039061285b565b60405180910390fd5b505050565b6000806005600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156108ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b19061295b565b60405180910390fd5b80915050919050565b6000600160009054906101000a900460ff16610914576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090b906128db565b60405180910390fd5b66b1a2bc2ec50000341461095d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109549061283b565b60405180910390fd5b6103e8600254106109a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099a9061287b565b60405180910390fd5b60018054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610a09573d6000803e3d6000fd5b50600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610a7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a719061297b565b60405180910390fd5b600060025490506000808054610a8f90612c60565b80601f0160208091040260200160405190810160405280929190818152602001828054610abb90612c60565b8015610b085780601f10610add57610100808354040283529160200191610b08565b820191906000526020600020905b815481529060010190602001808311610aeb57829003601f168201915b505050505090506001600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610b5f9190612aef565b92505081905550836005600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000610bcc82610bc785611948565b611af5565b9050610c0d816040518060400160405280600581526020017f2e6a736f6e000000000000000000000000000000000000000000000000000000815250611af5565b905080600660008581526020019081526020016000209080519060200190610c36929190611dbd565b50600160026000828254610c4a9190612aef565b92505081905550828573ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4829350505050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610d29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d209061293b565b60405180910390fd5b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b606060048054610d7f90612c60565b80601f0160208091040260200160405190810160405280929190818152602001828054610dab90612c60565b8015610df85780601f10610dcd57610100808354040283529160200191610df8565b820191906000526020600020905b815481529060010190602001808311610ddb57829003601f168201915b5050505050905090565b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610e71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e68906128bb565b60405180910390fd5b80600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610f6291906127fe565b60405180910390a35050565b60018054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610fc657600080fd5b80600160006101000a81548160ff02191690831515021790555050565b610fed33836113a1565b61102c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102390612a1b565b60405180910390fd5b61103884848484611d4e565b50505050565b606060066000838152602001908152602001600020805461105e90612c60565b80601f016020809104026020016040519081016040528092919081815260200182805461108a90612c60565b80156110d75780601f106110ac576101008083540402835291602001916110d7565b820191906000526020600020905b8154815290600101906020018083116110ba57829003601f168201915b50505050509050919050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60018054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146111cf57600080fd5b806001806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166005600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b816008600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff1661135b83610811565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60006113ac8261127c565b6113eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e2906128fb565b60405180910390fd5b60006005600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061149057508373ffffffffffffffffffffffffffffffffffffffff16611478846105b5565b73ffffffffffffffffffffffffffffffffffffffff16145b806114a157506114a081856110e3565b5b6114e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d7906129fb565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061154d57508373ffffffffffffffffffffffffffffffffffffffff16611535846105b5565b73ffffffffffffffffffffffffffffffffffffffff16145b8061155e575061155d81856110e3565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661158782610811565b73ffffffffffffffffffffffffffffffffffffffff16146115dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d4906129bb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561164d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116449061289b565b60405180910390fd5b6116586000826112e8565b6001600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546116a89190612b76565b925050819055506001600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546116ff9190612aef565b92505081905550816005600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b60006117d98473ffffffffffffffffffffffffffffffffffffffff16611daa565b1561193b578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02338786866040518563ffffffff1660e01b815260040161181d94939291906127b2565b602060405180830381600087803b15801561183757600080fd5b505af192505050801561186857506040513d601f19601f82011682018060405250810190611865919061212a565b60015b6118eb573d8060008114611898576040519150601f19603f3d011682016040523d82523d6000602084013e61189d565b606091505b506000815114156118e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118da9061285b565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050611940565b600190505b949350505050565b60606000821415611990576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611af0565b600082905060005b600082146119c25780806119ab90612c92565b915050600a826119bb9190612b45565b9150611998565b60008167ffffffffffffffff811115611a04577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015611a365781602001600182028036833780820191505090505b5090505b60008514611ae957600182611a4f9190612b76565b9150600a85611a5e9190612cdb565b6030611a6a9190612aef565b60f81b818381518110611aa6577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85611ae29190612b45565b9450611a3a565b8093505050505b919050565b606060008390506000839050600081518351611b119190612aef565b67ffffffffffffffff811115611b50577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015611b825781602001600182028036833780820191505090505b5090506000819050600080600091505b8551821015611c6657858281518110611bd4577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b838280611beb90612c92565b935081518110611c24577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508180611c5e90612c92565b925050611b92565b600091505b8451821015611d3f57848281518110611cad577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b838280611cc490612c92565b935081518110611cfd577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508180611d3790612c92565b925050611c6b565b82965050505050505092915050565b611d59848484611567565b611d65848484846117b8565b611da4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9b9061285b565b60405180910390fd5b50505050565b600080823b905060008111915050919050565b828054611dc990612c60565b90600052602060002090601f016020900481019282611deb5760008555611e32565b82601f10611e0457805160ff1916838001178555611e32565b82800160010185558215611e32579182015b82811115611e31578251825591602001919060010190611e16565b5b509050611e3f9190611e43565b5090565b5b80821115611e5c576000816000905550600101611e44565b5090565b6000611e73611e6e84612a87565b612a56565b905082815260208101848484011115611e8b57600080fd5b611e96848285612c1e565b509392505050565b600081359050611ead81612dd9565b92915050565b600081359050611ec281612df0565b92915050565b600081359050611ed781612e07565b92915050565b600081519050611eec81612e07565b92915050565b600082601f830112611f0357600080fd5b8135611f13848260208601611e60565b91505092915050565b600081359050611f2b81612e1e565b92915050565b600060208284031215611f4357600080fd5b6000611f5184828501611e9e565b91505092915050565b60008060408385031215611f6d57600080fd5b6000611f7b85828601611e9e565b9250506020611f8c85828601611e9e565b9150509250929050565b600080600060608486031215611fab57600080fd5b6000611fb986828701611e9e565b9350506020611fca86828701611e9e565b9250506040611fdb86828701611f1c565b9150509250925092565b60008060008060808587031215611ffb57600080fd5b600061200987828801611e9e565b945050602061201a87828801611e9e565b935050604061202b87828801611f1c565b925050606085013567ffffffffffffffff81111561204857600080fd5b61205487828801611ef2565b91505092959194509250565b6000806040838503121561207357600080fd5b600061208185828601611e9e565b925050602061209285828601611eb3565b9150509250929050565b600080604083850312156120af57600080fd5b60006120bd85828601611e9e565b92505060206120ce85828601611f1c565b9150509250929050565b6000602082840312156120ea57600080fd5b60006120f884828501611eb3565b91505092915050565b60006020828403121561211357600080fd5b600061212184828501611ec8565b91505092915050565b60006020828403121561213c57600080fd5b600061214a84828501611edd565b91505092915050565b60006020828403121561216557600080fd5b600061217384828501611f1c565b91505092915050565b61218581612baa565b82525050565b61219481612bbc565b82525050565b60006121a582612ab7565b6121af8185612acd565b93506121bf818560208601612c2d565b6121c881612dc8565b840191505092915050565b60006121de82612ac2565b6121e88185612ade565b93506121f8818560208601612c2d565b61220181612dc8565b840191505092915050565b6000612219601083612ade565b91507f496e73756666696369656e7420455448000000000000000000000000000000006000830152602082019050919050565b6000612259603283612ade565b91507f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008301527f63656976657220696d706c656d656e74657200000000000000000000000000006020830152604082019050919050565b60006122bf601083612ade565b91507f416c6c204e46542773206d696e746564000000000000000000000000000000006000830152602082019050919050565b60006122ff602483612ade565b91507f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612365601983612ade565b91507f4552433732313a20617070726f766520746f2063616c6c6572000000000000006000830152602082019050919050565b60006123a5601183612ade565b91507f4d696e74696e67206469736162656c65640000000000000000000000000000006000830152602082019050919050565b60006123e5602c83612ade565b91507f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008301527f697374656e7420746f6b656e00000000000000000000000000000000000000006020830152604082019050919050565b600061244b603883612ade565b91507f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008301527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006020830152604082019050919050565b60006124b1602a83612ade565b91507f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008301527f726f2061646472657373000000000000000000000000000000000000000000006020830152604082019050919050565b6000612517602983612ade565b91507f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008301527f656e7420746f6b656e00000000000000000000000000000000000000000000006020830152604082019050919050565b600061257d602083612ade565b91507f4552433732313a206d696e7420746f20746865207a65726f20616464726573736000830152602082019050919050565b60006125bd602c83612ade565b91507f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008301527f697374656e7420746f6b656e00000000000000000000000000000000000000006020830152604082019050919050565b6000612623602983612ade565b91507f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008301527f73206e6f74206f776e00000000000000000000000000000000000000000000006020830152604082019050919050565b6000612689602183612ade565b91507f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008301527f72000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006126ef601d83612ade565b91507f4552433732313a204e6f7420617070726f766564206f72206f776e65720000006000830152602082019050919050565b600061272f603183612ade565b91507f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008301527f776e6572206e6f7220617070726f7665640000000000000000000000000000006020830152604082019050919050565b61279181612c14565b82525050565b60006020820190506127ac600083018461217c565b92915050565b60006080820190506127c7600083018761217c565b6127d4602083018661217c565b6127e16040830185612788565b81810360608301526127f3818461219a565b905095945050505050565b6000602082019050612813600083018461218b565b92915050565b6000602082019050818103600083015261283381846121d3565b905092915050565b600060208201905081810360008301526128548161220c565b9050919050565b600060208201905081810360008301526128748161224c565b9050919050565b60006020820190508181036000830152612894816122b2565b9050919050565b600060208201905081810360008301526128b4816122f2565b9050919050565b600060208201905081810360008301526128d481612358565b9050919050565b600060208201905081810360008301526128f481612398565b9050919050565b60006020820190508181036000830152612914816123d8565b9050919050565b600060208201905081810360008301526129348161243e565b9050919050565b60006020820190508181036000830152612954816124a4565b9050919050565b600060208201905081810360008301526129748161250a565b9050919050565b6000602082019050818103600083015261299481612570565b9050919050565b600060208201905081810360008301526129b4816125b0565b9050919050565b600060208201905081810360008301526129d481612616565b9050919050565b600060208201905081810360008301526129f48161267c565b9050919050565b60006020820190508181036000830152612a14816126e2565b9050919050565b60006020820190508181036000830152612a3481612722565b9050919050565b6000602082019050612a506000830184612788565b92915050565b6000604051905081810181811067ffffffffffffffff82111715612a7d57612a7c612d99565b5b8060405250919050565b600067ffffffffffffffff821115612aa257612aa1612d99565b5b601f19601f8301169050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612afa82612c14565b9150612b0583612c14565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612b3a57612b39612d0c565b5b828201905092915050565b6000612b5082612c14565b9150612b5b83612c14565b925082612b6b57612b6a612d3b565b5b828204905092915050565b6000612b8182612c14565b9150612b8c83612c14565b925082821015612b9f57612b9e612d0c565b5b828203905092915050565b6000612bb582612bf4565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015612c4b578082015181840152602081019050612c30565b83811115612c5a576000848401525b50505050565b60006002820490506001821680612c7857607f821691505b60208210811415612c8c57612c8b612d6a565b5b50919050565b6000612c9d82612c14565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612cd057612ccf612d0c565b5b600182019050919050565b6000612ce682612c14565b9150612cf183612c14565b925082612d0157612d00612d3b565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b612de281612baa565b8114612ded57600080fd5b50565b612df981612bbc565b8114612e0457600080fd5b50565b612e1081612bc8565b8114612e1b57600080fd5b50565b612e2781612c14565b8114612e3257600080fd5b5056fea26469706673582212203b5d44af852d18eb70b1f3017e9b0264859daeee057d8a4bd185fbf49172b01664736f6c6343000800003300000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000c56696e796c2d43616e766173000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000025643000000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x6080604052600436106100fe5760003560e01c80636a62784211610095578063b4c7f06611610064578063b4c7f0661461034c578063b88d4fde14610375578063c87b56dd1461039e578063e985e9c5146103db578063f2fde38b14610418576100fe565b80636a6278421461028b57806370a08231146102bb57806395d89b41146102f8578063a22cb46514610323576100fe565b806318160ddd116100d157806318160ddd146101d157806323b872dd146101fc57806342842e0e146102255780636352211e1461024e576100fe565b806301ffc9a71461010357806306fdde0314610140578063081812fc1461016b578063095ea7b3146101a8575b600080fd5b34801561010f57600080fd5b5061012a60048036038101906101259190612101565b610441565b60405161013791906127fe565b60405180910390f35b34801561014c57600080fd5b50610155610523565b6040516101629190612819565b60405180910390f35b34801561017757600080fd5b50610192600480360381019061018d9190612153565b6105b5565b60405161019f9190612797565b60405180910390f35b3480156101b457600080fd5b506101cf60048036038101906101ca919061209c565b61063a565b005b3480156101dd57600080fd5b506101e6610744565b6040516101f39190612a3b565b60405180910390f35b34801561020857600080fd5b50610223600480360381019061021e9190611f96565b61074e565b005b34801561023157600080fd5b5061024c60048036038101906102479190611f96565b6107a7565b005b34801561025a57600080fd5b5061027560048036038101906102709190612153565b610811565b6040516102829190612797565b60405180910390f35b6102a560048036038101906102a09190611f31565b6108c3565b6040516102b29190612a3b565b60405180910390f35b3480156102c757600080fd5b506102e260048036038101906102dd9190611f31565b610cb8565b6040516102ef9190612a3b565b60405180910390f35b34801561030457600080fd5b5061030d610d70565b60405161031a9190612819565b60405180910390f35b34801561032f57600080fd5b5061034a60048036038101906103459190612060565b610e02565b005b34801561035857600080fd5b50610373600480360381019061036e91906120d8565b610f6e565b005b34801561038157600080fd5b5061039c60048036038101906103979190611fe5565b610fe3565b005b3480156103aa57600080fd5b506103c560048036038101906103c09190612153565b61103e565b6040516103d29190612819565b60405180910390f35b3480156103e757600080fd5b5061040260048036038101906103fd9190611f5a565b6110e3565b60405161040f91906127fe565b60405180910390f35b34801561042457600080fd5b5061043f600480360381019061043a9190611f31565b611177565b005b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061050c57507f43481e42000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061051c575061051b82611212565b5b9050919050565b60606003805461053290612c60565b80601f016020809104026020016040519081016040528092919081815260200182805461055e90612c60565b80156105ab5780601f10610580576101008083540402835291602001916105ab565b820191906000526020600020905b81548152906001019060200180831161058e57829003601f168201915b5050505050905090565b60006105c08261127c565b6105ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105f69061299b565b60405180910390fd5b6008600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061064582610811565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156106b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ad906129db565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806106f657506106f581336110e3565b5b610735576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072c9061291b565b60405180910390fd5b61073f83836112e8565b505050565b60006103e8905090565b61075833826113a1565b610797576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078e90612a1b565b60405180910390fd5b6107a2838383611567565b505050565b6107b2838383611567565b6107cd838383604051806020016040528060008152506117b8565b61080c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108039061285b565b60405180910390fd5b505050565b6000806005600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156108ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b19061295b565b60405180910390fd5b80915050919050565b6000600160009054906101000a900460ff16610914576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090b906128db565b60405180910390fd5b66b1a2bc2ec50000341461095d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109549061283b565b60405180910390fd5b6103e8600254106109a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099a9061287b565b60405180910390fd5b60018054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610a09573d6000803e3d6000fd5b50600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610a7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a719061297b565b60405180910390fd5b600060025490506000808054610a8f90612c60565b80601f0160208091040260200160405190810160405280929190818152602001828054610abb90612c60565b8015610b085780601f10610add57610100808354040283529160200191610b08565b820191906000526020600020905b815481529060010190602001808311610aeb57829003601f168201915b505050505090506001600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610b5f9190612aef565b92505081905550836005600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000610bcc82610bc785611948565b611af5565b9050610c0d816040518060400160405280600581526020017f2e6a736f6e000000000000000000000000000000000000000000000000000000815250611af5565b905080600660008581526020019081526020016000209080519060200190610c36929190611dbd565b50600160026000828254610c4a9190612aef565b92505081905550828573ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4829350505050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610d29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d209061293b565b60405180910390fd5b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b606060048054610d7f90612c60565b80601f0160208091040260200160405190810160405280929190818152602001828054610dab90612c60565b8015610df85780601f10610dcd57610100808354040283529160200191610df8565b820191906000526020600020905b815481529060010190602001808311610ddb57829003601f168201915b5050505050905090565b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610e71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e68906128bb565b60405180910390fd5b80600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610f6291906127fe565b60405180910390a35050565b60018054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610fc657600080fd5b80600160006101000a81548160ff02191690831515021790555050565b610fed33836113a1565b61102c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102390612a1b565b60405180910390fd5b61103884848484611d4e565b50505050565b606060066000838152602001908152602001600020805461105e90612c60565b80601f016020809104026020016040519081016040528092919081815260200182805461108a90612c60565b80156110d75780601f106110ac576101008083540402835291602001916110d7565b820191906000526020600020905b8154815290600101906020018083116110ba57829003601f168201915b50505050509050919050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60018054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146111cf57600080fd5b806001806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166005600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b816008600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff1661135b83610811565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60006113ac8261127c565b6113eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e2906128fb565b60405180910390fd5b60006005600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061149057508373ffffffffffffffffffffffffffffffffffffffff16611478846105b5565b73ffffffffffffffffffffffffffffffffffffffff16145b806114a157506114a081856110e3565b5b6114e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d7906129fb565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061154d57508373ffffffffffffffffffffffffffffffffffffffff16611535846105b5565b73ffffffffffffffffffffffffffffffffffffffff16145b8061155e575061155d81856110e3565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661158782610811565b73ffffffffffffffffffffffffffffffffffffffff16146115dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d4906129bb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561164d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116449061289b565b60405180910390fd5b6116586000826112e8565b6001600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546116a89190612b76565b925050819055506001600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546116ff9190612aef565b92505081905550816005600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b60006117d98473ffffffffffffffffffffffffffffffffffffffff16611daa565b1561193b578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02338786866040518563ffffffff1660e01b815260040161181d94939291906127b2565b602060405180830381600087803b15801561183757600080fd5b505af192505050801561186857506040513d601f19601f82011682018060405250810190611865919061212a565b60015b6118eb573d8060008114611898576040519150601f19603f3d011682016040523d82523d6000602084013e61189d565b606091505b506000815114156118e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118da9061285b565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050611940565b600190505b949350505050565b60606000821415611990576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611af0565b600082905060005b600082146119c25780806119ab90612c92565b915050600a826119bb9190612b45565b9150611998565b60008167ffffffffffffffff811115611a04577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015611a365781602001600182028036833780820191505090505b5090505b60008514611ae957600182611a4f9190612b76565b9150600a85611a5e9190612cdb565b6030611a6a9190612aef565b60f81b818381518110611aa6577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85611ae29190612b45565b9450611a3a565b8093505050505b919050565b606060008390506000839050600081518351611b119190612aef565b67ffffffffffffffff811115611b50577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015611b825781602001600182028036833780820191505090505b5090506000819050600080600091505b8551821015611c6657858281518110611bd4577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b838280611beb90612c92565b935081518110611c24577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508180611c5e90612c92565b925050611b92565b600091505b8451821015611d3f57848281518110611cad577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b838280611cc490612c92565b935081518110611cfd577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508180611d3790612c92565b925050611c6b565b82965050505050505092915050565b611d59848484611567565b611d65848484846117b8565b611da4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9b9061285b565b60405180910390fd5b50505050565b600080823b905060008111915050919050565b828054611dc990612c60565b90600052602060002090601f016020900481019282611deb5760008555611e32565b82601f10611e0457805160ff1916838001178555611e32565b82800160010185558215611e32579182015b82811115611e31578251825591602001919060010190611e16565b5b509050611e3f9190611e43565b5090565b5b80821115611e5c576000816000905550600101611e44565b5090565b6000611e73611e6e84612a87565b612a56565b905082815260208101848484011115611e8b57600080fd5b611e96848285612c1e565b509392505050565b600081359050611ead81612dd9565b92915050565b600081359050611ec281612df0565b92915050565b600081359050611ed781612e07565b92915050565b600081519050611eec81612e07565b92915050565b600082601f830112611f0357600080fd5b8135611f13848260208601611e60565b91505092915050565b600081359050611f2b81612e1e565b92915050565b600060208284031215611f4357600080fd5b6000611f5184828501611e9e565b91505092915050565b60008060408385031215611f6d57600080fd5b6000611f7b85828601611e9e565b9250506020611f8c85828601611e9e565b9150509250929050565b600080600060608486031215611fab57600080fd5b6000611fb986828701611e9e565b9350506020611fca86828701611e9e565b9250506040611fdb86828701611f1c565b9150509250925092565b60008060008060808587031215611ffb57600080fd5b600061200987828801611e9e565b945050602061201a87828801611e9e565b935050604061202b87828801611f1c565b925050606085013567ffffffffffffffff81111561204857600080fd5b61205487828801611ef2565b91505092959194509250565b6000806040838503121561207357600080fd5b600061208185828601611e9e565b925050602061209285828601611eb3565b9150509250929050565b600080604083850312156120af57600080fd5b60006120bd85828601611e9e565b92505060206120ce85828601611f1c565b9150509250929050565b6000602082840312156120ea57600080fd5b60006120f884828501611eb3565b91505092915050565b60006020828403121561211357600080fd5b600061212184828501611ec8565b91505092915050565b60006020828403121561213c57600080fd5b600061214a84828501611edd565b91505092915050565b60006020828403121561216557600080fd5b600061217384828501611f1c565b91505092915050565b61218581612baa565b82525050565b61219481612bbc565b82525050565b60006121a582612ab7565b6121af8185612acd565b93506121bf818560208601612c2d565b6121c881612dc8565b840191505092915050565b60006121de82612ac2565b6121e88185612ade565b93506121f8818560208601612c2d565b61220181612dc8565b840191505092915050565b6000612219601083612ade565b91507f496e73756666696369656e7420455448000000000000000000000000000000006000830152602082019050919050565b6000612259603283612ade565b91507f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008301527f63656976657220696d706c656d656e74657200000000000000000000000000006020830152604082019050919050565b60006122bf601083612ade565b91507f416c6c204e46542773206d696e746564000000000000000000000000000000006000830152602082019050919050565b60006122ff602483612ade565b91507f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612365601983612ade565b91507f4552433732313a20617070726f766520746f2063616c6c6572000000000000006000830152602082019050919050565b60006123a5601183612ade565b91507f4d696e74696e67206469736162656c65640000000000000000000000000000006000830152602082019050919050565b60006123e5602c83612ade565b91507f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008301527f697374656e7420746f6b656e00000000000000000000000000000000000000006020830152604082019050919050565b600061244b603883612ade565b91507f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008301527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006020830152604082019050919050565b60006124b1602a83612ade565b91507f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008301527f726f2061646472657373000000000000000000000000000000000000000000006020830152604082019050919050565b6000612517602983612ade565b91507f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008301527f656e7420746f6b656e00000000000000000000000000000000000000000000006020830152604082019050919050565b600061257d602083612ade565b91507f4552433732313a206d696e7420746f20746865207a65726f20616464726573736000830152602082019050919050565b60006125bd602c83612ade565b91507f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008301527f697374656e7420746f6b656e00000000000000000000000000000000000000006020830152604082019050919050565b6000612623602983612ade565b91507f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008301527f73206e6f74206f776e00000000000000000000000000000000000000000000006020830152604082019050919050565b6000612689602183612ade565b91507f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008301527f72000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006126ef601d83612ade565b91507f4552433732313a204e6f7420617070726f766564206f72206f776e65720000006000830152602082019050919050565b600061272f603183612ade565b91507f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008301527f776e6572206e6f7220617070726f7665640000000000000000000000000000006020830152604082019050919050565b61279181612c14565b82525050565b60006020820190506127ac600083018461217c565b92915050565b60006080820190506127c7600083018761217c565b6127d4602083018661217c565b6127e16040830185612788565b81810360608301526127f3818461219a565b905095945050505050565b6000602082019050612813600083018461218b565b92915050565b6000602082019050818103600083015261283381846121d3565b905092915050565b600060208201905081810360008301526128548161220c565b9050919050565b600060208201905081810360008301526128748161224c565b9050919050565b60006020820190508181036000830152612894816122b2565b9050919050565b600060208201905081810360008301526128b4816122f2565b9050919050565b600060208201905081810360008301526128d481612358565b9050919050565b600060208201905081810360008301526128f481612398565b9050919050565b60006020820190508181036000830152612914816123d8565b9050919050565b600060208201905081810360008301526129348161243e565b9050919050565b60006020820190508181036000830152612954816124a4565b9050919050565b600060208201905081810360008301526129748161250a565b9050919050565b6000602082019050818103600083015261299481612570565b9050919050565b600060208201905081810360008301526129b4816125b0565b9050919050565b600060208201905081810360008301526129d481612616565b9050919050565b600060208201905081810360008301526129f48161267c565b9050919050565b60006020820190508181036000830152612a14816126e2565b9050919050565b60006020820190508181036000830152612a3481612722565b9050919050565b6000602082019050612a506000830184612788565b92915050565b6000604051905081810181811067ffffffffffffffff82111715612a7d57612a7c612d99565b5b8060405250919050565b600067ffffffffffffffff821115612aa257612aa1612d99565b5b601f19601f8301169050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612afa82612c14565b9150612b0583612c14565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612b3a57612b39612d0c565b5b828201905092915050565b6000612b5082612c14565b9150612b5b83612c14565b925082612b6b57612b6a612d3b565b5b828204905092915050565b6000612b8182612c14565b9150612b8c83612c14565b925082821015612b9f57612b9e612d0c565b5b828203905092915050565b6000612bb582612bf4565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015612c4b578082015181840152602081019050612c30565b83811115612c5a576000848401525b50505050565b60006002820490506001821680612c7857607f821691505b60208210811415612c8c57612c8b612d6a565b5b50919050565b6000612c9d82612c14565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612cd057612ccf612d0c565b5b600182019050919050565b6000612ce682612c14565b9150612cf183612c14565b925082612d0157612d00612d3b565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b612de281612baa565b8114612ded57600080fd5b50565b612df981612bbc565b8114612e0457600080fd5b50565b612e1081612bc8565b8114612e1b57600080fd5b50565b612e2781612c14565b8114612e3257600080fd5b5056fea26469706673582212203b5d44af852d18eb70b1f3017e9b0264859daeee057d8a4bd185fbf49172b01664736f6c63430008000033

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

00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000c56696e796c2d43616e766173000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000025643000000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : name_ (string): Vinyl-Canvas
Arg [1] : symbol_ (string): VC

-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [2] : 000000000000000000000000000000000000000000000000000000000000000c
Arg [3] : 56696e796c2d43616e7661730000000000000000000000000000000000000000
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [5] : 5643000000000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

12918:8786:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14098:292;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14861:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15795:221;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15400:387;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15085:76;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16493:297;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16798:253;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14614:239;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18232:776;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14398:208;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14969:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16024:289;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13827:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17059:277;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15169:121;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16321:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13959:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14098:292;14200:4;14239:25;14224:40;;;:11;:40;;;;:105;;;;14296:33;14281:48;;;:11;:48;;;;14224:105;:158;;;;14346:36;14370:11;14346:23;:36::i;:::-;14224:158;14217:165;;14098:292;;;:::o;14861:100::-;14915:13;14948:5;14941:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14861:100;:::o;15795:221::-;15871:7;15899:16;15907:7;15899;:16::i;:::-;15891:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;15984:15;:24;16000:7;15984:24;;;;;;;;;;;;;;;;;;;;;15977:31;;15795:221;;;:::o;15400:387::-;15475:13;15491:23;15506:7;15491:14;:23::i;:::-;15475:39;;15539:5;15533:11;;:2;:11;;;;15525:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;15617:5;15603:19;;:10;:19;;;:58;;;;15626:35;15643:5;15650:10;15626:16;:35::i;:::-;15603:58;15595:150;;;;;;;;;;;;:::i;:::-;;;;;;;;;15758:21;15767:2;15771:7;15758:8;:21::i;:::-;15400:387;;;:::o;15085:76::-;15139:7;15155:4;15148:11;;15085:76;:::o;16493:297::-;16648:39;16667:10;16679:7;16648:18;:39::i;:::-;16640:101;;;;;;;;;;;;:::i;:::-;;;;;;;;;16754:28;16764:4;16770:2;16774:7;16754:9;:28::i;:::-;16493:297;;;:::o;16798:253::-;16896:28;16906:4;16912:2;16916:7;16896:9;:28::i;:::-;16943:45;16966:4;16972:2;16976:7;16943:45;;;;;;;;;;;;:22;:45::i;:::-;16935:108;;;;;;;;;;;;:::i;:::-;;;;;;;;;16798:253;;;:::o;14614:239::-;14686:7;14706:13;14722:7;:16;14730:7;14722:16;;;;;;;;;;;;;;;;;;;;;14706:32;;14774:1;14757:19;;:5;:19;;;;14749:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;14840:5;14833:12;;;14614:239;;;:::o;18232:776::-;18283:10;18313:8;;;;;;;;;;;18305:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;18375:17;18362:9;:30;18354:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;18441:4;18432:6;;:13;18424:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;18477:6;;;;;;;;;;:15;;:38;18493:21;18477:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18548:1;18534:16;;:2;:16;;;;18526:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;18608:13;18624:6;;18608:22;;18641:18;18662:7;18641:28;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18707:1;18690:9;:13;18700:2;18690:13;;;;;;;;;;;;;;;;:18;;;;;;;:::i;:::-;;;;;;;;18736:2;18719:7;:14;18727:5;18719:14;;;;;;;;;;;;:19;;;;;;;;;;;;;;;;;;18763:17;18783:30;18790:4;18796:16;:5;:14;:16::i;:::-;18783:6;:30::i;:::-;18763:50;;18830:20;18837:3;18830:20;;;;;;;;;;;;;;;;;:6;:20::i;:::-;18824:26;;18875:3;18861:4;:11;18866:5;18861:11;;;;;;;;;;;:17;;;;;;;;;;;;:::i;:::-;;18909:1;18899:6;;:11;;;;;;;:::i;:::-;;;;;;;;18961:5;18957:2;18936:31;;18953:1;18936:31;;;;;;;;;;;;18995:5;18988:12;;;;;18232:776;;;:::o;14398:208::-;14470:7;14515:1;14498:19;;:5;:19;;;;14490:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;14582:9;:16;14592:5;14582:16;;;;;;;;;;;;;;;;14575:23;;14398:208;;;:::o;14969:104::-;15025:13;15058:7;15051:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14969:104;:::o;16024:289::-;16139:10;16127:22;;:8;:22;;;;16119:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;16235:8;16192:18;:30;16211:10;16192:30;;;;;;;;;;;;;;;:40;16223:8;16192:40;;;;;;;;;;;;;;;;:51;;;;;;;;;;;;;;;;;;16286:8;16259:46;;16274:10;16259:46;;;16296:8;16259:46;;;;;;:::i;:::-;;;;;;;;16024:289;;:::o;13827:120::-;13903:6;;;;;;;;;;13889:20;;:10;:20;;;13881:29;;;;;;13932:7;13921:8;;:18;;;;;;;;;;;;;;;;;;13827:120;:::o;17059:277::-;17185:39;17204:10;17216:7;17185:18;:39::i;:::-;17177:101;;;;;;;;;;;;:::i;:::-;;;;;;;;;17289:39;17303:4;17309:2;17313:7;17322:5;17289:13;:39::i;:::-;17059:277;;;;:::o;15169:121::-;15236:13;15269:4;:13;15274:7;15269:13;;;;;;;;;;;15262:20;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15169:121;;;:::o;16321:164::-;16418:4;16442:18;:25;16461:5;16442:25;;;;;;;;;;;;;;;:35;16468:8;16442:35;;;;;;;;;;;;;;;;;;;;;;;;;16435:42;;16321:164;;;;:::o;13959:127::-;14040:6;;;;;;;;;;14026:20;;:10;:20;;;14018:29;;;;;;14075:2;14058:6;;:20;;;;;;;;;;;;;;;;;;13959:127;:::o;12754:157::-;12839:4;12878:25;12863:40;;;:11;:40;;;;12856:47;;12754:157;;;:::o;17624:119::-;17681:4;17733:1;17705:30;;:7;:16;17713:7;17705:16;;;;;;;;;;;;;;;;;;;;;:30;;;;17698:37;;17624:119;;;:::o;20678:174::-;20780:2;20753:15;:24;20769:7;20753:24;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;20836:7;20832:2;20798:46;;20807:23;20822:7;20807:14;:23::i;:::-;20798:46;;;;;;;;;;;;20678:174;;:::o;17751:473::-;17836:4;17861:16;17869:7;17861;:16::i;:::-;17853:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;17937:13;17953:7;:16;17961:7;17953:16;;;;;;;;;;;;;;;;;;;;;17937:32;;17999:5;17988:16;;:7;:16;;;:51;;;;18032:7;18008:31;;:20;18020:7;18008:11;:20::i;:::-;:31;;;17988:51;:87;;;;18043:32;18060:5;18067:7;18043:16;:32::i;:::-;17988:87;17980:129;;;;;;;;;;;;:::i;:::-;;;;;;;;;18139:5;18128:16;;:7;:16;;;:51;;;;18172:7;18148:31;;:20;18160:7;18148:11;:20::i;:::-;:31;;;18128:51;:87;;;;18183:32;18200:5;18207:7;18183:16;:32::i;:::-;18128:87;18120:96;;;17751:473;;;;:::o;20178:492::-;20303:4;20276:31;;:23;20291:7;20276:14;:23::i;:::-;:31;;;20268:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;20386:1;20372:16;;:2;:16;;;;20364:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;20494:29;20511:1;20515:7;20494:8;:29::i;:::-;20555:1;20536:9;:15;20546:4;20536:15;;;;;;;;;;;;;;;;:20;;;;;;;:::i;:::-;;;;;;;;20584:1;20567:9;:13;20577:2;20567:13;;;;;;;;;;;;;;;;:18;;;;;;;:::i;:::-;;;;;;;;20615:2;20596:7;:16;20604:7;20596:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;20654:7;20650:2;20635:27;;20644:4;20635:27;;;;;;;;;;;;20178:492;;;:::o;20860:841::-;20981:4;21007:15;:2;:13;;;:15::i;:::-;21003:691;;;21059:2;21043:36;;;21080:10;21092:4;21098:7;21107:5;21043:70;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;21039:600;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21304:1;21287:6;:13;:18;21283:341;;;21330:60;;;;;;;;;;:::i;:::-;;;;;;;;21283:341;21574:6;21568:13;21559:6;21555:2;21551:15;21544:38;21039:600;21174:45;;;21164:55;;;:6;:55;;;;21157:62;;;;;21003:691;21678:4;21671:11;;20860:841;;;;;;;:::o;10890:723::-;10946:13;11176:1;11167:5;:10;11163:53;;;11194:10;;;;;;;;;;;;;;;;;;;;;11163:53;11226:12;11241:5;11226:20;;11257:14;11282:78;11297:1;11289:4;:9;11282:78;;11315:8;;;;;:::i;:::-;;;;11346:2;11338:10;;;;;:::i;:::-;;;11282:78;;;11370:19;11402:6;11392:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11370:39;;11420:154;11436:1;11427:5;:10;11420:154;;11464:1;11454:11;;;;;:::i;:::-;;;11531:2;11523:5;:10;;;;:::i;:::-;11510:2;:24;;;;:::i;:::-;11497:39;;11480:6;11487;11480:14;;;;;;;;;;;;;;;;;;;:56;;;;;;;;;;;11560:2;11551:11;;;;;:::i;:::-;;;11420:154;;;11598:6;11584:21;;;;;10890:723;;;;:::o;19505:665::-;19587:13;19613:23;19645:5;19613:38;;19662:24;19695:6;19662:40;;19723:23;19780:11;:18;19760:10;:17;:38;;;;:::i;:::-;19749:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19723:76;;19810:22;19841:9;19810:41;;19872:6;19889;19922:1;19920:3;;19916:90;19926:10;:17;19924:1;:19;19916:90;;;19981:10;19992:1;19981:13;;;;;;;;;;;;;;;;;;;;;;;;19964:9;19974:3;;;;;:::i;:::-;;;19964:14;;;;;;;;;;;;;;;;;;;:30;;;;;;;;;;;19944:3;;;;;:::i;:::-;;;;19916:90;;;20032:1;20030:3;;20026:92;20036:11;:18;20034:1;:20;20026:92;;;20092:11;20104:1;20092:14;;;;;;;;;;;;;;;;;;;;;;;;20075:9;20085:3;;;;;:::i;:::-;;;20075:14;;;;;;;;;;;;;;;;;;;:31;;;;;;;;;;;20055:3;;;;;:::i;:::-;;;;20026:92;;;20152:9;20138:24;;;;;;;;19505:665;;;;:::o;17344:272::-;17458:28;17468:4;17474:2;17478:7;17458:9;:28::i;:::-;17505:48;17528:4;17534:2;17538:7;17547:5;17505:22;:48::i;:::-;17497:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;17344:272;;;;:::o;3447:422::-;3507:4;3715:12;3826:7;3814:20;3806:28;;3860:1;3853:4;:8;3846:15;;;3447:422;;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:342:1:-;;109:64;124:48;165:6;124:48;:::i;:::-;109:64;:::i;:::-;100:73;;196:6;189:5;182:21;234:4;227:5;223:16;272:3;263:6;258:3;254:16;251:25;248:2;;;289:1;286;279:12;248:2;302:41;336:6;331:3;326;302:41;:::i;:::-;90:259;;;;;;:::o;355:139::-;;439:6;426:20;417:29;;455:33;482:5;455:33;:::i;:::-;407:87;;;;:::o;500:133::-;;581:6;568:20;559:29;;597:30;621:5;597:30;:::i;:::-;549:84;;;;:::o;639:137::-;;722:6;709:20;700:29;;738:32;764:5;738:32;:::i;:::-;690:86;;;;:::o;782:141::-;;869:6;863:13;854:22;;885:32;911:5;885:32;:::i;:::-;844:79;;;;:::o;942:271::-;;1046:3;1039:4;1031:6;1027:17;1023:27;1013:2;;1064:1;1061;1054:12;1013:2;1104:6;1091:20;1129:78;1203:3;1195:6;1188:4;1180:6;1176:17;1129:78;:::i;:::-;1120:87;;1003:210;;;;;:::o;1219:139::-;;1303:6;1290:20;1281:29;;1319:33;1346:5;1319:33;:::i;:::-;1271:87;;;;:::o;1364:262::-;;1472:2;1460:9;1451:7;1447:23;1443:32;1440:2;;;1488:1;1485;1478:12;1440:2;1531:1;1556:53;1601:7;1592:6;1581:9;1577:22;1556:53;:::i;:::-;1546:63;;1502:117;1430:196;;;;:::o;1632:407::-;;;1757:2;1745:9;1736:7;1732:23;1728:32;1725:2;;;1773:1;1770;1763:12;1725:2;1816:1;1841:53;1886:7;1877:6;1866:9;1862:22;1841:53;:::i;:::-;1831:63;;1787:117;1943:2;1969:53;2014:7;2005:6;1994:9;1990:22;1969:53;:::i;:::-;1959:63;;1914:118;1715:324;;;;;:::o;2045:552::-;;;;2187:2;2175:9;2166:7;2162:23;2158:32;2155:2;;;2203:1;2200;2193:12;2155:2;2246:1;2271:53;2316:7;2307:6;2296:9;2292:22;2271:53;:::i;:::-;2261:63;;2217:117;2373:2;2399:53;2444:7;2435:6;2424:9;2420:22;2399:53;:::i;:::-;2389:63;;2344:118;2501:2;2527:53;2572:7;2563:6;2552:9;2548:22;2527:53;:::i;:::-;2517:63;;2472:118;2145:452;;;;;:::o;2603:809::-;;;;;2771:3;2759:9;2750:7;2746:23;2742:33;2739:2;;;2788:1;2785;2778:12;2739:2;2831:1;2856:53;2901:7;2892:6;2881:9;2877:22;2856:53;:::i;:::-;2846:63;;2802:117;2958:2;2984:53;3029:7;3020:6;3009:9;3005:22;2984:53;:::i;:::-;2974:63;;2929:118;3086:2;3112:53;3157:7;3148:6;3137:9;3133:22;3112:53;:::i;:::-;3102:63;;3057:118;3242:2;3231:9;3227:18;3214:32;3273:18;3265:6;3262:30;3259:2;;;3305:1;3302;3295:12;3259:2;3333:62;3387:7;3378:6;3367:9;3363:22;3333:62;:::i;:::-;3323:72;;3185:220;2729:683;;;;;;;:::o;3418:401::-;;;3540:2;3528:9;3519:7;3515:23;3511:32;3508:2;;;3556:1;3553;3546:12;3508:2;3599:1;3624:53;3669:7;3660:6;3649:9;3645:22;3624:53;:::i;:::-;3614:63;;3570:117;3726:2;3752:50;3794:7;3785:6;3774:9;3770:22;3752:50;:::i;:::-;3742:60;;3697:115;3498:321;;;;;:::o;3825:407::-;;;3950:2;3938:9;3929:7;3925:23;3921:32;3918:2;;;3966:1;3963;3956:12;3918:2;4009:1;4034:53;4079:7;4070:6;4059:9;4055:22;4034:53;:::i;:::-;4024:63;;3980:117;4136:2;4162:53;4207:7;4198:6;4187:9;4183:22;4162:53;:::i;:::-;4152:63;;4107:118;3908:324;;;;;:::o;4238:256::-;;4343:2;4331:9;4322:7;4318:23;4314:32;4311:2;;;4359:1;4356;4349:12;4311:2;4402:1;4427:50;4469:7;4460:6;4449:9;4445:22;4427:50;:::i;:::-;4417:60;;4373:114;4301:193;;;;:::o;4500:260::-;;4607:2;4595:9;4586:7;4582:23;4578:32;4575:2;;;4623:1;4620;4613:12;4575:2;4666:1;4691:52;4735:7;4726:6;4715:9;4711:22;4691:52;:::i;:::-;4681:62;;4637:116;4565:195;;;;:::o;4766:282::-;;4884:2;4872:9;4863:7;4859:23;4855:32;4852:2;;;4900:1;4897;4890:12;4852:2;4943:1;4968:63;5023:7;5014:6;5003:9;4999:22;4968:63;:::i;:::-;4958:73;;4914:127;4842:206;;;;:::o;5054:262::-;;5162:2;5150:9;5141:7;5137:23;5133:32;5130:2;;;5178:1;5175;5168:12;5130:2;5221:1;5246:53;5291:7;5282:6;5271:9;5267:22;5246:53;:::i;:::-;5236:63;;5192:117;5120:196;;;;:::o;5322:118::-;5409:24;5427:5;5409:24;:::i;:::-;5404:3;5397:37;5387:53;;:::o;5446:109::-;5527:21;5542:5;5527:21;:::i;:::-;5522:3;5515:34;5505:50;;:::o;5561:360::-;;5675:38;5707:5;5675:38;:::i;:::-;5729:70;5792:6;5787:3;5729:70;:::i;:::-;5722:77;;5808:52;5853:6;5848:3;5841:4;5834:5;5830:16;5808:52;:::i;:::-;5885:29;5907:6;5885:29;:::i;:::-;5880:3;5876:39;5869:46;;5651:270;;;;;:::o;5927:364::-;;6043:39;6076:5;6043:39;:::i;:::-;6098:71;6162:6;6157:3;6098:71;:::i;:::-;6091:78;;6178:52;6223:6;6218:3;6211:4;6204:5;6200:16;6178:52;:::i;:::-;6255:29;6277:6;6255:29;:::i;:::-;6250:3;6246:39;6239:46;;6019:272;;;;;:::o;6297:314::-;;6460:67;6524:2;6519:3;6460:67;:::i;:::-;6453:74;;6557:18;6553:1;6548:3;6544:11;6537:39;6602:2;6597:3;6593:12;6586:19;;6443:168;;;:::o;6617:382::-;;6780:67;6844:2;6839:3;6780:67;:::i;:::-;6773:74;;6877:34;6873:1;6868:3;6864:11;6857:55;6943:20;6938:2;6933:3;6929:12;6922:42;6990:2;6985:3;6981:12;6974:19;;6763:236;;;:::o;7005:314::-;;7168:67;7232:2;7227:3;7168:67;:::i;:::-;7161:74;;7265:18;7261:1;7256:3;7252:11;7245:39;7310:2;7305:3;7301:12;7294:19;;7151:168;;;:::o;7325:368::-;;7488:67;7552:2;7547:3;7488:67;:::i;:::-;7481:74;;7585:34;7581:1;7576:3;7572:11;7565:55;7651:6;7646:2;7641:3;7637:12;7630:28;7684:2;7679:3;7675:12;7668:19;;7471:222;;;:::o;7699:323::-;;7862:67;7926:2;7921:3;7862:67;:::i;:::-;7855:74;;7959:27;7955:1;7950:3;7946:11;7939:48;8013:2;8008:3;8004:12;7997:19;;7845:177;;;:::o;8028:315::-;;8191:67;8255:2;8250:3;8191:67;:::i;:::-;8184:74;;8288:19;8284:1;8279:3;8275:11;8268:40;8334:2;8329:3;8325:12;8318:19;;8174:169;;;:::o;8349:376::-;;8512:67;8576:2;8571:3;8512:67;:::i;:::-;8505:74;;8609:34;8605:1;8600:3;8596:11;8589:55;8675:14;8670:2;8665:3;8661:12;8654:36;8716:2;8711:3;8707:12;8700:19;;8495:230;;;:::o;8731:388::-;;8894:67;8958:2;8953:3;8894:67;:::i;:::-;8887:74;;8991:34;8987:1;8982:3;8978:11;8971:55;9057:26;9052:2;9047:3;9043:12;9036:48;9110:2;9105:3;9101:12;9094:19;;8877:242;;;:::o;9125:374::-;;9288:67;9352:2;9347:3;9288:67;:::i;:::-;9281:74;;9385:34;9381:1;9376:3;9372:11;9365:55;9451:12;9446:2;9441:3;9437:12;9430:34;9490:2;9485:3;9481:12;9474:19;;9271:228;;;:::o;9505:373::-;;9668:67;9732:2;9727:3;9668:67;:::i;:::-;9661:74;;9765:34;9761:1;9756:3;9752:11;9745:55;9831:11;9826:2;9821:3;9817:12;9810:33;9869:2;9864:3;9860:12;9853:19;;9651:227;;;:::o;9884:330::-;;10047:67;10111:2;10106:3;10047:67;:::i;:::-;10040:74;;10144:34;10140:1;10135:3;10131:11;10124:55;10205:2;10200:3;10196:12;10189:19;;10030:184;;;:::o;10220:376::-;;10383:67;10447:2;10442:3;10383:67;:::i;:::-;10376:74;;10480:34;10476:1;10471:3;10467:11;10460:55;10546:14;10541:2;10536:3;10532:12;10525:36;10587:2;10582:3;10578:12;10571:19;;10366:230;;;:::o;10602:373::-;;10765:67;10829:2;10824:3;10765:67;:::i;:::-;10758:74;;10862:34;10858:1;10853:3;10849:11;10842:55;10928:11;10923:2;10918:3;10914:12;10907:33;10966:2;10961:3;10957:12;10950:19;;10748:227;;;:::o;10981:365::-;;11144:67;11208:2;11203:3;11144:67;:::i;:::-;11137:74;;11241:34;11237:1;11232:3;11228:11;11221:55;11307:3;11302:2;11297:3;11293:12;11286:25;11337:2;11332:3;11328:12;11321:19;;11127:219;;;:::o;11352:327::-;;11515:67;11579:2;11574:3;11515:67;:::i;:::-;11508:74;;11612:31;11608:1;11603:3;11599:11;11592:52;11670:2;11665:3;11661:12;11654:19;;11498:181;;;:::o;11685:381::-;;11848:67;11912:2;11907:3;11848:67;:::i;:::-;11841:74;;11945:34;11941:1;11936:3;11932:11;11925:55;12011:19;12006:2;12001:3;11997:12;11990:41;12057:2;12052:3;12048:12;12041:19;;11831:235;;;:::o;12072:118::-;12159:24;12177:5;12159:24;:::i;:::-;12154:3;12147:37;12137:53;;:::o;12196:222::-;;12327:2;12316:9;12312:18;12304:26;;12340:71;12408:1;12397:9;12393:17;12384:6;12340:71;:::i;:::-;12294:124;;;;:::o;12424:640::-;;12657:3;12646:9;12642:19;12634:27;;12671:71;12739:1;12728:9;12724:17;12715:6;12671:71;:::i;:::-;12752:72;12820:2;12809:9;12805:18;12796:6;12752:72;:::i;:::-;12834;12902:2;12891:9;12887:18;12878:6;12834:72;:::i;:::-;12953:9;12947:4;12943:20;12938:2;12927:9;12923:18;12916:48;12981:76;13052:4;13043:6;12981:76;:::i;:::-;12973:84;;12624:440;;;;;;;:::o;13070:210::-;;13195:2;13184:9;13180:18;13172:26;;13208:65;13270:1;13259:9;13255:17;13246:6;13208:65;:::i;:::-;13162:118;;;;:::o;13286:313::-;;13437:2;13426:9;13422:18;13414:26;;13486:9;13480:4;13476:20;13472:1;13461:9;13457:17;13450:47;13514:78;13587:4;13578:6;13514:78;:::i;:::-;13506:86;;13404:195;;;;:::o;13605:419::-;;13809:2;13798:9;13794:18;13786:26;;13858:9;13852:4;13848:20;13844:1;13833:9;13829:17;13822:47;13886:131;14012:4;13886:131;:::i;:::-;13878:139;;13776:248;;;:::o;14030:419::-;;14234:2;14223:9;14219:18;14211:26;;14283:9;14277:4;14273:20;14269:1;14258:9;14254:17;14247:47;14311:131;14437:4;14311:131;:::i;:::-;14303:139;;14201:248;;;:::o;14455:419::-;;14659:2;14648:9;14644:18;14636:26;;14708:9;14702:4;14698:20;14694:1;14683:9;14679:17;14672:47;14736:131;14862:4;14736:131;:::i;:::-;14728:139;;14626:248;;;:::o;14880:419::-;;15084:2;15073:9;15069:18;15061:26;;15133:9;15127:4;15123:20;15119:1;15108:9;15104:17;15097:47;15161:131;15287:4;15161:131;:::i;:::-;15153:139;;15051:248;;;:::o;15305:419::-;;15509:2;15498:9;15494:18;15486:26;;15558:9;15552:4;15548:20;15544:1;15533:9;15529:17;15522:47;15586:131;15712:4;15586:131;:::i;:::-;15578:139;;15476:248;;;:::o;15730:419::-;;15934:2;15923:9;15919:18;15911:26;;15983:9;15977:4;15973:20;15969:1;15958:9;15954:17;15947:47;16011:131;16137:4;16011:131;:::i;:::-;16003:139;;15901:248;;;:::o;16155:419::-;;16359:2;16348:9;16344:18;16336:26;;16408:9;16402:4;16398:20;16394:1;16383:9;16379:17;16372:47;16436:131;16562:4;16436:131;:::i;:::-;16428:139;;16326:248;;;:::o;16580:419::-;;16784:2;16773:9;16769:18;16761:26;;16833:9;16827:4;16823:20;16819:1;16808:9;16804:17;16797:47;16861:131;16987:4;16861:131;:::i;:::-;16853:139;;16751:248;;;:::o;17005:419::-;;17209:2;17198:9;17194:18;17186:26;;17258:9;17252:4;17248:20;17244:1;17233:9;17229:17;17222:47;17286:131;17412:4;17286:131;:::i;:::-;17278:139;;17176:248;;;:::o;17430:419::-;;17634:2;17623:9;17619:18;17611:26;;17683:9;17677:4;17673:20;17669:1;17658:9;17654:17;17647:47;17711:131;17837:4;17711:131;:::i;:::-;17703:139;;17601:248;;;:::o;17855:419::-;;18059:2;18048:9;18044:18;18036:26;;18108:9;18102:4;18098:20;18094:1;18083:9;18079:17;18072:47;18136:131;18262:4;18136:131;:::i;:::-;18128:139;;18026:248;;;:::o;18280:419::-;;18484:2;18473:9;18469:18;18461:26;;18533:9;18527:4;18523:20;18519:1;18508:9;18504:17;18497:47;18561:131;18687:4;18561:131;:::i;:::-;18553:139;;18451:248;;;:::o;18705:419::-;;18909:2;18898:9;18894:18;18886:26;;18958:9;18952:4;18948:20;18944:1;18933:9;18929:17;18922:47;18986:131;19112:4;18986:131;:::i;:::-;18978:139;;18876:248;;;:::o;19130:419::-;;19334:2;19323:9;19319:18;19311:26;;19383:9;19377:4;19373:20;19369:1;19358:9;19354:17;19347:47;19411:131;19537:4;19411:131;:::i;:::-;19403:139;;19301:248;;;:::o;19555:419::-;;19759:2;19748:9;19744:18;19736:26;;19808:9;19802:4;19798:20;19794:1;19783:9;19779:17;19772:47;19836:131;19962:4;19836:131;:::i;:::-;19828:139;;19726:248;;;:::o;19980:419::-;;20184:2;20173:9;20169:18;20161:26;;20233:9;20227:4;20223:20;20219:1;20208:9;20204:17;20197:47;20261:131;20387:4;20261:131;:::i;:::-;20253:139;;20151:248;;;:::o;20405:222::-;;20536:2;20525:9;20521:18;20513:26;;20549:71;20617:1;20606:9;20602:17;20593:6;20549:71;:::i;:::-;20503:124;;;;:::o;20633:283::-;;20699:2;20693:9;20683:19;;20741:4;20733:6;20729:17;20848:6;20836:10;20833:22;20812:18;20800:10;20797:34;20794:62;20791:2;;;20859:18;;:::i;:::-;20791:2;20899:10;20895:2;20888:22;20673:243;;;;:::o;20922:331::-;;21073:18;21065:6;21062:30;21059:2;;;21095:18;;:::i;:::-;21059:2;21180:4;21176:9;21169:4;21161:6;21157:17;21153:33;21145:41;;21241:4;21235;21231:15;21223:23;;20988:265;;;:::o;21259:98::-;;21344:5;21338:12;21328:22;;21317:40;;;:::o;21363:99::-;;21449:5;21443:12;21433:22;;21422:40;;;:::o;21468:168::-;;21585:6;21580:3;21573:19;21625:4;21620:3;21616:14;21601:29;;21563:73;;;;:::o;21642:169::-;;21760:6;21755:3;21748:19;21800:4;21795:3;21791:14;21776:29;;21738:73;;;;:::o;21817:305::-;;21876:20;21894:1;21876:20;:::i;:::-;21871:25;;21910:20;21928:1;21910:20;:::i;:::-;21905:25;;22064:1;21996:66;21992:74;21989:1;21986:81;21983:2;;;22070:18;;:::i;:::-;21983:2;22114:1;22111;22107:9;22100:16;;21861:261;;;;:::o;22128:185::-;;22185:20;22203:1;22185:20;:::i;:::-;22180:25;;22219:20;22237:1;22219:20;:::i;:::-;22214:25;;22258:1;22248:2;;22263:18;;:::i;:::-;22248:2;22305:1;22302;22298:9;22293:14;;22170:143;;;;:::o;22319:191::-;;22379:20;22397:1;22379:20;:::i;:::-;22374:25;;22413:20;22431:1;22413:20;:::i;:::-;22408:25;;22452:1;22449;22446:8;22443:2;;;22457:18;;:::i;:::-;22443:2;22502:1;22499;22495:9;22487:17;;22364:146;;;;:::o;22516:96::-;;22582:24;22600:5;22582:24;:::i;:::-;22571:35;;22561:51;;;:::o;22618:90::-;;22695:5;22688:13;22681:21;22670:32;;22660:48;;;:::o;22714:149::-;;22790:66;22783:5;22779:78;22768:89;;22758:105;;;:::o;22869:126::-;;22946:42;22939:5;22935:54;22924:65;;22914:81;;;:::o;23001:77::-;;23067:5;23056:16;;23046:32;;;:::o;23084:154::-;23168:6;23163:3;23158;23145:30;23230:1;23221:6;23216:3;23212:16;23205:27;23135:103;;;:::o;23244:307::-;23312:1;23322:113;23336:6;23333:1;23330:13;23322:113;;;23421:1;23416:3;23412:11;23406:18;23402:1;23397:3;23393:11;23386:39;23358:2;23355:1;23351:10;23346:15;;23322:113;;;23453:6;23450:1;23447:13;23444:2;;;23533:1;23524:6;23519:3;23515:16;23508:27;23444:2;23293:258;;;;:::o;23557:320::-;;23638:1;23632:4;23628:12;23618:22;;23685:1;23679:4;23675:12;23706:18;23696:2;;23762:4;23754:6;23750:17;23740:27;;23696:2;23824;23816:6;23813:14;23793:18;23790:38;23787:2;;;23843:18;;:::i;:::-;23787:2;23608:269;;;;:::o;23883:233::-;;23945:24;23963:5;23945:24;:::i;:::-;23936:33;;23991:66;23984:5;23981:77;23978:2;;;24061:18;;:::i;:::-;23978:2;24108:1;24101:5;24097:13;24090:20;;23926:190;;;:::o;24122:176::-;;24171:20;24189:1;24171:20;:::i;:::-;24166:25;;24205:20;24223:1;24205:20;:::i;:::-;24200:25;;24244:1;24234:2;;24249:18;;:::i;:::-;24234:2;24290:1;24287;24283:9;24278:14;;24156:142;;;;:::o;24304:180::-;24352:77;24349:1;24342:88;24449:4;24446:1;24439:15;24473:4;24470:1;24463:15;24490:180;24538:77;24535:1;24528:88;24635:4;24632:1;24625:15;24659:4;24656:1;24649:15;24676:180;24724:77;24721:1;24714:88;24821:4;24818:1;24811:15;24845:4;24842:1;24835:15;24862:180;24910:77;24907:1;24900:88;25007:4;25004:1;24997:15;25031:4;25028:1;25021:15;25048:102;;25140:2;25136:7;25131:2;25124:5;25120:14;25116:28;25106:38;;25096:54;;;:::o;25156:122::-;25229:24;25247:5;25229:24;:::i;:::-;25222:5;25219:35;25209:2;;25268:1;25265;25258:12;25209:2;25199:79;:::o;25284:116::-;25354:21;25369:5;25354:21;:::i;:::-;25347:5;25344:32;25334:2;;25390:1;25387;25380:12;25334:2;25324:76;:::o;25406:120::-;25478:23;25495:5;25478:23;:::i;:::-;25471:5;25468:34;25458:2;;25516:1;25513;25506:12;25458:2;25448:78;:::o;25532:122::-;25605:24;25623:5;25605:24;:::i;:::-;25598:5;25595:35;25585:2;;25644:1;25641;25634:12;25585:2;25575:79;:::o

Swarm Source

ipfs://3b5d44af852d18eb70b1f3017e9b0264859daeee057d8a4bd185fbf49172b016
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.