ETH Price: $2,430.41 (+4.54%)

Token

 

Overview

Max Total Supply

158

Holders

122

Market

Volume (24H)

N/A

Min Price (24H)

N/A

Max Price (24H)

N/A
0x437fdd2d74df217bfb3858b396d367ebb903d1f6
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:
AverageCollabs

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity Multiple files format)

File 2 of 12: AverageCollabs.sol
// SPDX-License-Identifier: MIT

// Average Collabs by Average Creatures

pragma solidity ^0.8.2;

import "./ERC1155.sol";
import "./ERC1155Burnable.sol";
import "./Ownable.sol";
import "./Strings.sol";

abstract contract CollectionContract {
   function balanceOf(address owner) external virtual view returns (uint256 balance);
   function ownerOf(uint256 tokenId) public virtual view returns (address tokenOwner);
}

contract AverageCollabs is ERC1155, ERC1155Burnable, Ownable {
  
  using Strings for uint256;
  string public uriSuffix = ".json";
  mapping(address => uint256) public claimedList;
  bool public paused = true;
  bool public overdrive = false;

  uint256[] public _currentTokens;
  uint256 public _toLoop = 0;
  uint256 public _week = 0;
  uint256 public holderCost;
  uint256 public publicCost;
  uint256 public collabCost;
  address public guestContract;
  CollectionContract private _avgcreatures = CollectionContract(0xbB00B6B675b9a8Db9aA3b68Bf0aAc5e25f901656);
  CollectionContract private _collabContract;


  constructor(string memory uri_, uint256 _holderCost, uint256 _publicCost, uint256 _collabCost) ERC1155(uri_) {
    holderCost = _holderCost;
    publicCost = _publicCost;
    collabCost = _collabCost;
  }

  // Bouncer
  modifier claimCompliance() {
    require(!paused, "Average Token Claim is paused.");
    require(claimedList[msg.sender] != _week, "This wallet already claimed.");
    _;
  }

  // Paywall
  modifier mintPriceCompliance(uint256 _mintAmount) {
    require(msg.value >= calculateCost(msg.sender) * _mintAmount, "Insufficient funds!");
    _;
  }

  // Tiered Cost
  function calculateCost(address addy) public view returns (uint256) {
    if (_collabContract.balanceOf(addy) > 0) {
      return collabCost;
    } else if (_avgcreatures.balanceOf(addy) > 0) {
      return holderCost;
    }
    return publicCost;
  }

  // Claim your Tokens!
  function averageClaim(uint256 _mintAmount) public payable claimCompliance() mintPriceCompliance(_mintAmount) {
    if (!overdrive) {
      claimedList[msg.sender] = _week;
    }    
    _mint(msg.sender, _currentTokens[_toLoop], 1, '0x0000');
    randomToken();
  }

  // Spread token ID
  function randomToken() internal {
    if (_currentTokens.length > 1) {
      if (_toLoop + 1 > _currentTokens.length - 1) {
        _toLoop = 0;
      } else {
        _toLoop++;
      }
    }
  }

  // Justice for all
  function smallClaimsCourt(
    address[] memory addresses, 
    uint256[] memory ids, 
    uint256[] memory amounts, 
    bytes[] memory data
  ) external onlyOwner {
    uint numWallets = addresses.length;
    require(numWallets == ids.length, "Number of ids need to match number of addresses");
    require(numWallets == amounts.length, "Number of -amounts- need to match number of addresses");

    for (uint i = 0; i < numWallets; i++) {
      _mint(addresses[i], ids[i], amounts[i], data[i]);
    }
  }

  // Update our current Tokens being Claimed
  function updateCurrentTokens(uint256[] memory newTokens) public onlyOwner {
    _currentTokens = newTokens;
    _toLoop = 0;
  }

  // Retrieve URI
  function uri(uint id_) public view override returns (string memory) {
    return string(abi.encodePacked(super.uri(id_), id_.toString(), uriSuffix));
  } 

  // Set new URI prefix
  function setURI(string memory uri_) external onlyOwner {
    _setURI(uri_);
  }

  // Set new URI suffix
  function setUriSuffix(string memory _uriSuffix) public onlyOwner {
    uriSuffix = _uriSuffix;
  }

  // Set current claim week
  function setWeek(uint256 newWeek) public onlyOwner {
    _week = newWeek;
  }

  // Retrieve current claim week
  function currentWeek() public view returns (uint256) {
    return _week;
  }

  // Update Token Public Price
  function setPublicCost(uint256 _publicCost) public onlyOwner {
    publicCost = _publicCost;
  }

  // Update Token Holder Price
  function setHolderCost(uint256 _holderCost) public onlyOwner {
    holderCost = _holderCost;
  }

  // Update Token Collab Price
  function setCollabCost(uint256 _collabCost) public onlyOwner {
    collabCost = _collabCost;
  }

  // Show tokens being claimed
  function showCurrentTokens() public view returns (uint256[] memory) {
    return _currentTokens;
  }

  // Pause contract...
  function setPaused(bool _state) public onlyOwner {
    paused = _state;
  }

  // Set new Collab Contract Address
  function setCollabContract(address collabContract) public onlyOwner {
    _collabContract = CollectionContract(collabContract);
  }

  // Overdrive max amount of tokens claimable per wallet
  function setOverdrive(bool _overdrive) public onlyOwner {
    overdrive = _overdrive;
  }

  // Average Revenue Agency
  function withdraw() external onlyOwner {
    payable(msg.sender).transfer(address(this).balance);
  }
}

File 1 of 12: Address.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/Address.sol)

pragma solidity ^0.8.0;

/**
 * @dev Collection of functions related to the address type
 */
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;
        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");

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

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

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

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

    /**
     * @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the
     * revert reason using the provided one.
     *
     * _Available since v4.3._
     */
    function verifyCallResult(
        bool success,
        bytes memory returndata,
        string memory errorMessage
    ) internal 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

                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

File 3 of 12: Context.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)

pragma solidity ^0.8.0;

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

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

File 4 of 12: ERC1155.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (token/ERC1155/ERC1155.sol)

pragma solidity ^0.8.0;

import "./IERC1155.sol";
import "./IERC1155Receiver.sol";
import "./IERC1155MetadataURI.sol";
import "./Address.sol";
import "./Context.sol";
import "./ERC165.sol";

/**
 * @dev Implementation of the basic standard multi-token.
 * See https://eips.ethereum.org/EIPS/eip-1155
 * Originally based on code by Enjin: https://github.com/enjin/erc-1155
 *
 * _Available since v3.1._
 */
contract ERC1155 is Context, ERC165, IERC1155, IERC1155MetadataURI {
    using Address for address;

    // Mapping from token ID to account balances
    mapping(uint256 => mapping(address => uint256)) private _balances;

    // Mapping from account to operator approvals
    mapping(address => mapping(address => bool)) private _operatorApprovals;

    // Used as the URI for all token types by relying on ID substitution, e.g. https://token-cdn-domain/{id}.json
    string private _uri;

    /**
     * @dev See {_setURI}.
     */
    constructor(string memory uri_) {
        _setURI(uri_);
    }

    /**
     * @dev See {IERC165-supportsInterface}.
     */
    function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) {
        return
            interfaceId == type(IERC1155).interfaceId ||
            interfaceId == type(IERC1155MetadataURI).interfaceId ||
            super.supportsInterface(interfaceId);
    }

    /**
     * @dev See {IERC1155MetadataURI-uri}.
     *
     * This implementation returns the same URI for *all* token types. It relies
     * on the token type ID substitution mechanism
     * https://eips.ethereum.org/EIPS/eip-1155#metadata[defined in the EIP].
     *
     * Clients calling this function must replace the `\{id\}` substring with the
     * actual token type ID.
     */
    function uri(uint256) public view virtual override returns (string memory) {
        return _uri;
    }

    /**
     * @dev See {IERC1155-balanceOf}.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     */
    function balanceOf(address account, uint256 id) public view virtual override returns (uint256) {
        require(account != address(0), "ERC1155: balance query for the zero address");
        return _balances[id][account];
    }

    /**
     * @dev See {IERC1155-balanceOfBatch}.
     *
     * Requirements:
     *
     * - `accounts` and `ids` must have the same length.
     */
    function balanceOfBatch(address[] memory accounts, uint256[] memory ids)
        public
        view
        virtual
        override
        returns (uint256[] memory)
    {
        require(accounts.length == ids.length, "ERC1155: accounts and ids length mismatch");

        uint256[] memory batchBalances = new uint256[](accounts.length);

        for (uint256 i = 0; i < accounts.length; ++i) {
            batchBalances[i] = balanceOf(accounts[i], ids[i]);
        }

        return batchBalances;
    }

    /**
     * @dev See {IERC1155-setApprovalForAll}.
     */
    function setApprovalForAll(address operator, bool approved) public virtual override {
        _setApprovalForAll(_msgSender(), operator, approved);
    }

    /**
     * @dev See {IERC1155-isApprovedForAll}.
     */
    function isApprovedForAll(address account, address operator) public view virtual override returns (bool) {
        return _operatorApprovals[account][operator];
    }

    /**
     * @dev See {IERC1155-safeTransferFrom}.
     */
    function safeTransferFrom(
        address from,
        address to,
        uint256 id,
        uint256 amount,
        bytes memory data
    ) public virtual override {
        require(
            from == _msgSender() || isApprovedForAll(from, _msgSender()),
            "ERC1155: caller is not owner nor approved"
        );
        _safeTransferFrom(from, to, id, amount, data);
    }

    /**
     * @dev See {IERC1155-safeBatchTransferFrom}.
     */
    function safeBatchTransferFrom(
        address from,
        address to,
        uint256[] memory ids,
        uint256[] memory amounts,
        bytes memory data
    ) public virtual override {
        require(
            from == _msgSender() || isApprovedForAll(from, _msgSender()),
            "ERC1155: transfer caller is not owner nor approved"
        );
        _safeBatchTransferFrom(from, to, ids, amounts, data);
    }

    /**
     * @dev Transfers `amount` tokens of token type `id` from `from` to `to`.
     *
     * Emits a {TransferSingle} event.
     *
     * Requirements:
     *
     * - `to` cannot be the zero address.
     * - `from` must have a balance of tokens of type `id` of at least `amount`.
     * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the
     * acceptance magic value.
     */
    function _safeTransferFrom(
        address from,
        address to,
        uint256 id,
        uint256 amount,
        bytes memory data
    ) internal virtual {
        require(to != address(0), "ERC1155: transfer to the zero address");

        address operator = _msgSender();

        _beforeTokenTransfer(operator, from, to, _asSingletonArray(id), _asSingletonArray(amount), data);

        uint256 fromBalance = _balances[id][from];
        require(fromBalance >= amount, "ERC1155: insufficient balance for transfer");
        unchecked {
            _balances[id][from] = fromBalance - amount;
        }
        _balances[id][to] += amount;

        emit TransferSingle(operator, from, to, id, amount);

        _doSafeTransferAcceptanceCheck(operator, from, to, id, amount, data);
    }

    /**
     * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {_safeTransferFrom}.
     *
     * Emits a {TransferBatch} event.
     *
     * Requirements:
     *
     * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the
     * acceptance magic value.
     */
    function _safeBatchTransferFrom(
        address from,
        address to,
        uint256[] memory ids,
        uint256[] memory amounts,
        bytes memory data
    ) internal virtual {
        require(ids.length == amounts.length, "ERC1155: ids and amounts length mismatch");
        require(to != address(0), "ERC1155: transfer to the zero address");

        address operator = _msgSender();

        _beforeTokenTransfer(operator, from, to, ids, amounts, data);

        for (uint256 i = 0; i < ids.length; ++i) {
            uint256 id = ids[i];
            uint256 amount = amounts[i];

            uint256 fromBalance = _balances[id][from];
            require(fromBalance >= amount, "ERC1155: insufficient balance for transfer");
            unchecked {
                _balances[id][from] = fromBalance - amount;
            }
            _balances[id][to] += amount;
        }

        emit TransferBatch(operator, from, to, ids, amounts);

        _doSafeBatchTransferAcceptanceCheck(operator, from, to, ids, amounts, data);
    }

    /**
     * @dev Sets a new URI for all token types, by relying on the token type ID
     * substitution mechanism
     * https://eips.ethereum.org/EIPS/eip-1155#metadata[defined in the EIP].
     *
     * By this mechanism, any occurrence of the `\{id\}` substring in either the
     * URI or any of the amounts in the JSON file at said URI will be replaced by
     * clients with the token type ID.
     *
     * For example, the `https://token-cdn-domain/\{id\}.json` URI would be
     * interpreted by clients as
     * `https://token-cdn-domain/000000000000000000000000000000000000000000000000000000000004cce0.json`
     * for token type ID 0x4cce0.
     *
     * See {uri}.
     *
     * Because these URIs cannot be meaningfully represented by the {URI} event,
     * this function emits no events.
     */
    function _setURI(string memory newuri) internal virtual {
        _uri = newuri;
    }

    /**
     * @dev Creates `amount` tokens of token type `id`, and assigns them to `to`.
     *
     * Emits a {TransferSingle} event.
     *
     * Requirements:
     *
     * - `to` cannot be the zero address.
     * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the
     * acceptance magic value.
     */
    function _mint(
        address to,
        uint256 id,
        uint256 amount,
        bytes memory data
    ) internal virtual {
        require(to != address(0), "ERC1155: mint to the zero address");

        address operator = _msgSender();

        _beforeTokenTransfer(operator, address(0), to, _asSingletonArray(id), _asSingletonArray(amount), data);

        _balances[id][to] += amount;
        emit TransferSingle(operator, address(0), to, id, amount);

        _doSafeTransferAcceptanceCheck(operator, address(0), to, id, amount, data);
    }

    /**
     * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {_mint}.
     *
     * Requirements:
     *
     * - `ids` and `amounts` must have the same length.
     * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the
     * acceptance magic value.
     */
    function _mintBatch(
        address to,
        uint256[] memory ids,
        uint256[] memory amounts,
        bytes memory data
    ) internal virtual {
        require(to != address(0), "ERC1155: mint to the zero address");
        require(ids.length == amounts.length, "ERC1155: ids and amounts length mismatch");

        address operator = _msgSender();

        _beforeTokenTransfer(operator, address(0), to, ids, amounts, data);

        for (uint256 i = 0; i < ids.length; i++) {
            _balances[ids[i]][to] += amounts[i];
        }

        emit TransferBatch(operator, address(0), to, ids, amounts);

        _doSafeBatchTransferAcceptanceCheck(operator, address(0), to, ids, amounts, data);
    }

    /**
     * @dev Destroys `amount` tokens of token type `id` from `from`
     *
     * Requirements:
     *
     * - `from` cannot be the zero address.
     * - `from` must have at least `amount` tokens of token type `id`.
     */
    function _burn(
        address from,
        uint256 id,
        uint256 amount
    ) internal virtual {
        require(from != address(0), "ERC1155: burn from the zero address");

        address operator = _msgSender();

        _beforeTokenTransfer(operator, from, address(0), _asSingletonArray(id), _asSingletonArray(amount), "");

        uint256 fromBalance = _balances[id][from];
        require(fromBalance >= amount, "ERC1155: burn amount exceeds balance");
        unchecked {
            _balances[id][from] = fromBalance - amount;
        }

        emit TransferSingle(operator, from, address(0), id, amount);
    }

    /**
     * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {_burn}.
     *
     * Requirements:
     *
     * - `ids` and `amounts` must have the same length.
     */
    function _burnBatch(
        address from,
        uint256[] memory ids,
        uint256[] memory amounts
    ) internal virtual {
        require(from != address(0), "ERC1155: burn from the zero address");
        require(ids.length == amounts.length, "ERC1155: ids and amounts length mismatch");

        address operator = _msgSender();

        _beforeTokenTransfer(operator, from, address(0), ids, amounts, "");

        for (uint256 i = 0; i < ids.length; i++) {
            uint256 id = ids[i];
            uint256 amount = amounts[i];

            uint256 fromBalance = _balances[id][from];
            require(fromBalance >= amount, "ERC1155: burn amount exceeds balance");
            unchecked {
                _balances[id][from] = fromBalance - amount;
            }
        }

        emit TransferBatch(operator, from, address(0), ids, amounts);
    }

    /**
     * @dev Approve `operator` to operate on all of `owner` tokens
     *
     * Emits a {ApprovalForAll} event.
     */
    function _setApprovalForAll(
        address owner,
        address operator,
        bool approved
    ) internal virtual {
        require(owner != operator, "ERC1155: setting approval status for self");
        _operatorApprovals[owner][operator] = approved;
        emit ApprovalForAll(owner, operator, approved);
    }

    /**
     * @dev Hook that is called before any token transfer. This includes minting
     * and burning, as well as batched variants.
     *
     * The same hook is called on both single and batched variants. For single
     * transfers, the length of the `id` and `amount` arrays will be 1.
     *
     * Calling conditions (for each `id` and `amount` pair):
     *
     * - When `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * of token type `id` will be  transferred to `to`.
     * - When `from` is zero, `amount` tokens of token type `id` will be minted
     * for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens of token type `id`
     * will be burned.
     * - `from` and `to` are never both zero.
     * - `ids` and `amounts` have the same, non-zero length.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _beforeTokenTransfer(
        address operator,
        address from,
        address to,
        uint256[] memory ids,
        uint256[] memory amounts,
        bytes memory data
    ) internal virtual {}

    function _doSafeTransferAcceptanceCheck(
        address operator,
        address from,
        address to,
        uint256 id,
        uint256 amount,
        bytes memory data
    ) private {
        if (to.isContract()) {
            try IERC1155Receiver(to).onERC1155Received(operator, from, id, amount, data) returns (bytes4 response) {
                if (response != IERC1155Receiver.onERC1155Received.selector) {
                    revert("ERC1155: ERC1155Receiver rejected tokens");
                }
            } catch Error(string memory reason) {
                revert(reason);
            } catch {
                revert("ERC1155: transfer to non ERC1155Receiver implementer");
            }
        }
    }

    function _doSafeBatchTransferAcceptanceCheck(
        address operator,
        address from,
        address to,
        uint256[] memory ids,
        uint256[] memory amounts,
        bytes memory data
    ) private {
        if (to.isContract()) {
            try IERC1155Receiver(to).onERC1155BatchReceived(operator, from, ids, amounts, data) returns (
                bytes4 response
            ) {
                if (response != IERC1155Receiver.onERC1155BatchReceived.selector) {
                    revert("ERC1155: ERC1155Receiver rejected tokens");
                }
            } catch Error(string memory reason) {
                revert(reason);
            } catch {
                revert("ERC1155: transfer to non ERC1155Receiver implementer");
            }
        }
    }

    function _asSingletonArray(uint256 element) private pure returns (uint256[] memory) {
        uint256[] memory array = new uint256[](1);
        array[0] = element;

        return array;
    }
}

File 5 of 12: ERC1155Burnable.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (token/ERC1155/extensions/ERC1155Burnable.sol)

pragma solidity ^0.8.0;

import "./ERC1155.sol";

/**
 * @dev Extension of {ERC1155} that allows token holders to destroy both their
 * own tokens and those that they have been approved to use.
 *
 * _Available since v3.1._
 */
abstract contract ERC1155Burnable is ERC1155 {
    function burn(
        address account,
        uint256 id,
        uint256 value
    ) public virtual {
        require(
            account == _msgSender() || isApprovedForAll(account, _msgSender()),
            "ERC1155: caller is not owner nor approved"
        );

        _burn(account, id, value);
    }

    function burnBatch(
        address account,
        uint256[] memory ids,
        uint256[] memory values
    ) public virtual {
        require(
            account == _msgSender() || isApprovedForAll(account, _msgSender()),
            "ERC1155: caller is not owner nor approved"
        );

        _burnBatch(account, ids, values);
    }
}

File 6 of 12: ERC165.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/introspection/ERC165.sol)

pragma solidity ^0.8.0;

import "./IERC165.sol";

/**
 * @dev Implementation of the {IERC165} interface.
 *
 * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check
 * for the additional interface id that will be supported. For example:
 *
 * ```solidity
 * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {
 *     return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);
 * }
 * ```
 *
 * Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.
 */
abstract contract ERC165 is IERC165 {
    /**
     * @dev See {IERC165-supportsInterface}.
     */
    function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {
        return interfaceId == type(IERC165).interfaceId;
    }
}

File 7 of 12: IERC1155.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (token/ERC1155/IERC1155.sol)

pragma solidity ^0.8.0;

import "./IERC165.sol";

/**
 * @dev Required interface of an ERC1155 compliant contract, as defined in the
 * https://eips.ethereum.org/EIPS/eip-1155[EIP].
 *
 * _Available since v3.1._
 */
interface IERC1155 is IERC165 {
    /**
     * @dev Emitted when `value` tokens of token type `id` are transferred from `from` to `to` by `operator`.
     */
    event TransferSingle(address indexed operator, address indexed from, address indexed to, uint256 id, uint256 value);

    /**
     * @dev Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all
     * transfers.
     */
    event TransferBatch(
        address indexed operator,
        address indexed from,
        address indexed to,
        uint256[] ids,
        uint256[] values
    );

    /**
     * @dev Emitted when `account` grants or revokes permission to `operator` to transfer their tokens, according to
     * `approved`.
     */
    event ApprovalForAll(address indexed account, address indexed operator, bool approved);

    /**
     * @dev Emitted when the URI for token type `id` changes to `value`, if it is a non-programmatic URI.
     *
     * If an {URI} event was emitted for `id`, the standard
     * https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[guarantees] that `value` will equal the value
     * returned by {IERC1155MetadataURI-uri}.
     */
    event URI(string value, uint256 indexed id);

    /**
     * @dev Returns the amount of tokens of token type `id` owned by `account`.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     */
    function balanceOf(address account, uint256 id) external view returns (uint256);

    /**
     * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {balanceOf}.
     *
     * Requirements:
     *
     * - `accounts` and `ids` must have the same length.
     */
    function balanceOfBatch(address[] calldata accounts, uint256[] calldata ids)
        external
        view
        returns (uint256[] memory);

    /**
     * @dev Grants or revokes permission to `operator` to transfer the caller's tokens, according to `approved`,
     *
     * Emits an {ApprovalForAll} event.
     *
     * Requirements:
     *
     * - `operator` cannot be the caller.
     */
    function setApprovalForAll(address operator, bool approved) external;

    /**
     * @dev Returns true if `operator` is approved to transfer ``account``'s tokens.
     *
     * See {setApprovalForAll}.
     */
    function isApprovedForAll(address account, address operator) external view returns (bool);

    /**
     * @dev Transfers `amount` tokens of token type `id` from `from` to `to`.
     *
     * Emits a {TransferSingle} event.
     *
     * Requirements:
     *
     * - `to` cannot be the zero address.
     * - If the caller is not `from`, it must be have been approved to spend ``from``'s tokens via {setApprovalForAll}.
     * - `from` must have a balance of tokens of type `id` of at least `amount`.
     * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the
     * acceptance magic value.
     */
    function safeTransferFrom(
        address from,
        address to,
        uint256 id,
        uint256 amount,
        bytes calldata data
    ) external;

    /**
     * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {safeTransferFrom}.
     *
     * Emits a {TransferBatch} event.
     *
     * Requirements:
     *
     * - `ids` and `amounts` must have the same length.
     * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the
     * acceptance magic value.
     */
    function safeBatchTransferFrom(
        address from,
        address to,
        uint256[] calldata ids,
        uint256[] calldata amounts,
        bytes calldata data
    ) external;
}

File 8 of 12: IERC1155MetadataURI.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (token/ERC1155/extensions/IERC1155MetadataURI.sol)

pragma solidity ^0.8.0;

import "./IERC1155.sol";

/**
 * @dev Interface of the optional ERC1155MetadataExtension interface, as defined
 * in the https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[EIP].
 *
 * _Available since v3.1._
 */
interface IERC1155MetadataURI is IERC1155 {
    /**
     * @dev Returns the URI for token type `id`.
     *
     * If the `\{id\}` substring is present in the URI, it must be replaced by
     * clients with the actual token type ID.
     */
    function uri(uint256 id) external view returns (string memory);
}

File 9 of 12: IERC1155Receiver.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (token/ERC1155/IERC1155Receiver.sol)

pragma solidity ^0.8.0;

import "./IERC165.sol";

/**
 * @dev _Available since v3.1._
 */
interface IERC1155Receiver is IERC165 {
    /**
        @dev Handles the receipt of a single ERC1155 token type. This function is
        called at the end of a `safeTransferFrom` after the balance has been updated.
        To accept the transfer, this must return
        `bytes4(keccak256("onERC1155Received(address,address,uint256,uint256,bytes)"))`
        (i.e. 0xf23a6e61, or its own function selector).
        @param operator The address which initiated the transfer (i.e. msg.sender)
        @param from The address which previously owned the token
        @param id The ID of the token being transferred
        @param value The amount of tokens being transferred
        @param data Additional data with no specified format
        @return `bytes4(keccak256("onERC1155Received(address,address,uint256,uint256,bytes)"))` if transfer is allowed
    */
    function onERC1155Received(
        address operator,
        address from,
        uint256 id,
        uint256 value,
        bytes calldata data
    ) external returns (bytes4);

    /**
        @dev Handles the receipt of a multiple ERC1155 token types. This function
        is called at the end of a `safeBatchTransferFrom` after the balances have
        been updated. To accept the transfer(s), this must return
        `bytes4(keccak256("onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)"))`
        (i.e. 0xbc197c81, or its own function selector).
        @param operator The address which initiated the batch transfer (i.e. msg.sender)
        @param from The address which previously owned the token
        @param ids An array containing ids of each token being transferred (order and length must match values array)
        @param values An array containing amounts of each token being transferred (order and length must match ids array)
        @param data Additional data with no specified format
        @return `bytes4(keccak256("onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)"))` if transfer is allowed
    */
    function onERC1155BatchReceived(
        address operator,
        address from,
        uint256[] calldata ids,
        uint256[] calldata values,
        bytes calldata data
    ) external returns (bytes4);
}

File 10 of 12: IERC165.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC165 standard, as defined in the
 * https://eips.ethereum.org/EIPS/eip-165[EIP].
 *
 * Implementers can declare support of contract interfaces, which can then be
 * queried by others ({ERC165Checker}).
 *
 * For an implementation, see {ERC165}.
 */
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);
}

File 11 of 12: Ownable.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (access/Ownable.sol)

pragma solidity ^0.8.0;

import "./Context.sol";

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

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

File 12 of 12: Strings.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/Strings.sol)

pragma solidity ^0.8.0;

/**
 * @dev String operations.
 */
library Strings {
    bytes16 private constant _HEX_SYMBOLS = "0123456789abcdef";

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

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

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

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

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"uri_","type":"string"},{"internalType":"uint256","name":"_holderCost","type":"uint256"},{"internalType":"uint256","name":"_publicCost","type":"uint256"},{"internalType":"uint256","name":"_collabCost","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"indexed":false,"internalType":"uint256[]","name":"values","type":"uint256[]"}],"name":"TransferBatch","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"TransferSingle","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"value","type":"string"},{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"URI","type":"event"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"_currentTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_toLoop","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_week","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_mintAmount","type":"uint256"}],"name":"averageClaim","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"}],"name":"balanceOfBatch","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"}],"name":"burnBatch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addy","type":"address"}],"name":"calculateCost","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"claimedList","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"collabCost","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentWeek","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"guestContract","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"holderCost","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"overdrive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"publicCost","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeBatchTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","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":"address","name":"collabContract","type":"address"}],"name":"setCollabContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_collabCost","type":"uint256"}],"name":"setCollabCost","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_holderCost","type":"uint256"}],"name":"setHolderCost","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_overdrive","type":"bool"}],"name":"setOverdrive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_state","type":"bool"}],"name":"setPaused","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_publicCost","type":"uint256"}],"name":"setPublicCost","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"uri_","type":"string"}],"name":"setURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_uriSuffix","type":"string"}],"name":"setUriSuffix","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newWeek","type":"uint256"}],"name":"setWeek","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"showCurrentTokens","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"bytes[]","name":"data","type":"bytes[]"}],"name":"smallClaimsCourt","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":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"newTokens","type":"uint256[]"}],"name":"updateCurrentTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id_","type":"uint256"}],"name":"uri","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uriSuffix","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040526040518060400160405280600581526020017f2e6a736f6e000000000000000000000000000000000000000000000000000000815250600490805190602001906200005192919062000256565b506001600660006101000a81548160ff0219169083151502179055506000600660016101000a81548160ff0219169083151502179055506000600855600060095573bb00b6b675b9a8db9aa3b68bf0aac5e25f901656600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550348015620000f457600080fd5b50604051620059053803806200590583398181016040528101906200011a91906200039b565b836200012c816200016c60201b60201c565b506200014d620001416200018860201b60201c565b6200019060201b60201c565b82600a8190555081600b8190555080600c8190555050505050620005d4565b80600290805190602001906200018492919062000256565b5050565b600033905090565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8280546200026490620004cb565b90600052602060002090601f016020900481019282620002885760008555620002d4565b82601f10620002a357805160ff1916838001178555620002d4565b82800160010185558215620002d4579182015b82811115620002d3578251825591602001919060010190620002b6565b5b509050620002e39190620002e7565b5090565b5b8082111562000302576000816000905550600101620002e8565b5090565b60006200031d620003178462000455565b6200042c565b9050828152602081018484840111156200033c576200033b6200059a565b5b6200034984828562000495565b509392505050565b600082601f83011262000369576200036862000595565b5b81516200037b84826020860162000306565b91505092915050565b6000815190506200039581620005ba565b92915050565b60008060008060808587031215620003b857620003b7620005a4565b5b600085015167ffffffffffffffff811115620003d957620003d86200059f565b5b620003e78782880162000351565b9450506020620003fa8782880162000384565b93505060406200040d8782880162000384565b9250506060620004208782880162000384565b91505092959194509250565b6000620004386200044b565b905062000446828262000501565b919050565b6000604051905090565b600067ffffffffffffffff82111562000473576200047262000566565b5b6200047e82620005a9565b9050602081019050919050565b6000819050919050565b60005b83811015620004b557808201518184015260208101905062000498565b83811115620004c5576000848401525b50505050565b60006002820490506001821680620004e457607f821691505b60208210811415620004fb57620004fa62000537565b5b50919050565b6200050c82620005a9565b810181811067ffffffffffffffff821117156200052e576200052d62000566565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b620005c5816200048b565b8114620005d157600080fd5b50565b61532180620005e46000396000f3fe60806040526004361061023a5760003560e01c80635503a0e81161012e578063b602e3d6116100ab578063ee1868ef1161006f578063ee1868ef1461084b578063f242432a14610888578063f2fde38b146108b1578063f5298aca146108da578063fd38b8bf146109035761023a565b8063b602e3d61461075f578063b92b5a1e1461078a578063da7cbba3146107b5578063dae006ca146107f2578063e985e9c51461080e5761023a565b8063811d2437116100f2578063811d24371461068e5780638693da20146106b75780638da5cb5b146106e2578063a22cb4651461070d578063a68cc609146107365761023a565b80635503a0e8146105cd5780635c975abb146105f85780636b20c45414610623578063715018a61461064c5780637d06848f146106635761023a565b806316c38b3c116101bc578063309201181161018057806330920118146104fa578063343c82d3146105235780633ccfd60b1461054e5780634e1273f41461056557806354ae8a75146105a25761023a565b806316c38b3c146104195780631bfac2bb14610442578063226467a01461046b5780632bf02bfd146104a85780632eb2c2d6146104d15761023a565b806306575c891161020357806306575c89146103345780630a2e828c1461035f5780630e89341c1461038a578063112b46cb146103c757806316ba10e0146103f05761023a565b8062fdd58e1461023f57806301ffc9a71461027c57806302fe5305146102b9578063030efb8f146102e257806303d791391461030b575b600080fd5b34801561024b57600080fd5b5061026660048036038101906102619190613a90565b61092e565b6040516102739190614699565b60405180910390f35b34801561028857600080fd5b506102a3600480360381019061029e9190613ce8565b6109f7565b6040516102b091906143dc565b60405180910390f35b3480156102c557600080fd5b506102e060048036038101906102db9190613d42565b610ad9565b005b3480156102ee57600080fd5b5061030960048036038101906103049190613d8b565b610b61565b005b34801561031757600080fd5b50610332600480360381019061032d9190613c72565b610be7565b005b34801561034057600080fd5b50610349610c85565b6040516103569190614699565b60405180910390f35b34801561036b57600080fd5b50610374610c8f565b6040516103819190614383565b60405180910390f35b34801561039657600080fd5b506103b160048036038101906103ac9190613d8b565b610ce7565b6040516103be91906143f7565b60405180910390f35b3480156103d357600080fd5b506103ee60048036038101906103e99190613d8b565b610d25565b005b3480156103fc57600080fd5b5061041760048036038101906104129190613d42565b610dab565b005b34801561042557600080fd5b50610440600480360381019061043b9190613cbb565b610e41565b005b34801561044e57600080fd5b50610469600480360381019061046491906137f2565b610eda565b005b34801561047757600080fd5b50610492600480360381019061048d9190613d8b565b610f9a565b60405161049f9190614699565b60405180910390f35b3480156104b457600080fd5b506104cf60048036038101906104ca9190613b9b565b610fbe565b005b3480156104dd57600080fd5b506104f860048036038101906104f3919061385f565b611160565b005b34801561050657600080fd5b50610521600480360381019061051c9190613d8b565b611201565b005b34801561052f57600080fd5b50610538611287565b6040516105459190614699565b60405180910390f35b34801561055a57600080fd5b5061056361128d565b005b34801561057157600080fd5b5061058c60048036038101906105879190613b23565b611352565b6040516105999190614383565b60405180910390f35b3480156105ae57600080fd5b506105b761146b565b6040516105c491906143dc565b60405180910390f35b3480156105d957600080fd5b506105e261147e565b6040516105ef91906143f7565b60405180910390f35b34801561060457600080fd5b5061060d61150c565b60405161061a91906143dc565b60405180910390f35b34801561062f57600080fd5b5061064a600480360381019061064591906139c5565b61151f565b005b34801561065857600080fd5b506106616115bc565b005b34801561066f57600080fd5b50610678611644565b6040516106859190614699565b60405180910390f35b34801561069a57600080fd5b506106b560048036038101906106b09190613d8b565b61164a565b005b3480156106c357600080fd5b506106cc6116d0565b6040516106d99190614699565b60405180910390f35b3480156106ee57600080fd5b506106f76116d6565b60405161070491906142a6565b60405180910390f35b34801561071957600080fd5b50610734600480360381019061072f9190613a50565b611700565b005b34801561074257600080fd5b5061075d60048036038101906107589190613cbb565b611716565b005b34801561076b57600080fd5b506107746117af565b60405161078191906142a6565b60405180910390f35b34801561079657600080fd5b5061079f6117d5565b6040516107ac9190614699565b60405180910390f35b3480156107c157600080fd5b506107dc60048036038101906107d791906137f2565b6117db565b6040516107e99190614699565b60405180910390f35b61080c60048036038101906108079190613d8b565b6117f3565b005b34801561081a57600080fd5b506108356004803603810190610830919061381f565b6119e7565b60405161084291906143dc565b60405180910390f35b34801561085757600080fd5b50610872600480360381019061086d91906137f2565b611a7b565b60405161087f9190614699565b60405180910390f35b34801561089457600080fd5b506108af60048036038101906108aa919061392e565b611c01565b005b3480156108bd57600080fd5b506108d860048036038101906108d391906137f2565b611ca2565b005b3480156108e657600080fd5b5061090160048036038101906108fc9190613ad0565b611d9a565b005b34801561090f57600080fd5b50610918611e37565b6040516109259190614699565b60405180910390f35b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561099f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099690614459565b60405180910390fd5b60008083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60007fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610ac257507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610ad25750610ad182611e3d565b5b9050919050565b610ae1611ea7565b73ffffffffffffffffffffffffffffffffffffffff16610aff6116d6565b73ffffffffffffffffffffffffffffffffffffffff1614610b55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4c90614599565b60405180910390fd5b610b5e81611eaf565b50565b610b69611ea7565b73ffffffffffffffffffffffffffffffffffffffff16610b876116d6565b73ffffffffffffffffffffffffffffffffffffffff1614610bdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd490614599565b60405180910390fd5b80600a8190555050565b610bef611ea7565b73ffffffffffffffffffffffffffffffffffffffff16610c0d6116d6565b73ffffffffffffffffffffffffffffffffffffffff1614610c63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5a90614599565b60405180910390fd5b8060079080519060200190610c799291906133ac565b50600060088190555050565b6000600954905090565b60606007805480602002602001604051908101604052809291908181526020018280548015610cdd57602002820191906000526020600020905b815481526020019060010190808311610cc9575b5050505050905090565b6060610cf282611ec9565b610cfb83611f5d565b6004604051602001610d0f93929190614275565b6040516020818303038152906040529050919050565b610d2d611ea7565b73ffffffffffffffffffffffffffffffffffffffff16610d4b6116d6565b73ffffffffffffffffffffffffffffffffffffffff1614610da1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9890614599565b60405180910390fd5b80600c8190555050565b610db3611ea7565b73ffffffffffffffffffffffffffffffffffffffff16610dd16116d6565b73ffffffffffffffffffffffffffffffffffffffff1614610e27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1e90614599565b60405180910390fd5b8060049080519060200190610e3d9291906133f9565b5050565b610e49611ea7565b73ffffffffffffffffffffffffffffffffffffffff16610e676116d6565b73ffffffffffffffffffffffffffffffffffffffff1614610ebd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb490614599565b60405180910390fd5b80600660006101000a81548160ff02191690831515021790555050565b610ee2611ea7565b73ffffffffffffffffffffffffffffffffffffffff16610f006116d6565b73ffffffffffffffffffffffffffffffffffffffff1614610f56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4d90614599565b60405180910390fd5b80600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60078181548110610faa57600080fd5b906000526020600020016000915090505481565b610fc6611ea7565b73ffffffffffffffffffffffffffffffffffffffff16610fe46116d6565b73ffffffffffffffffffffffffffffffffffffffff161461103a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103190614599565b60405180910390fd5b60008451905083518114611083576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107a906144d9565b60405180910390fd5b825181146110c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110bd90614619565b60405180910390fd5b60005b81811015611158576111458682815181106110e7576110e6614bae565b5b602002602001015186838151811061110257611101614bae565b5b602002602001015186848151811061111d5761111c614bae565b5b602002602001015186858151811061113857611137614bae565b5b60200260200101516120be565b808061115090614aa7565b9150506110c9565b505050505050565b611168611ea7565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806111ae57506111ad856111a8611ea7565b6119e7565b5b6111ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e490614539565b60405180910390fd5b6111fa8585858585612254565b5050505050565b611209611ea7565b73ffffffffffffffffffffffffffffffffffffffff166112276116d6565b73ffffffffffffffffffffffffffffffffffffffff161461127d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127490614599565b60405180910390fd5b8060098190555050565b600a5481565b611295611ea7565b73ffffffffffffffffffffffffffffffffffffffff166112b36116d6565b73ffffffffffffffffffffffffffffffffffffffff1614611309576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130090614599565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f1935050505015801561134f573d6000803e3d6000fd5b50565b60608151835114611398576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138f906145d9565b60405180910390fd5b6000835167ffffffffffffffff8111156113b5576113b4614bdd565b5b6040519080825280602002602001820160405280156113e35781602001602082028036833780820191505090505b50905060005b84518110156114605761143085828151811061140857611407614bae565b5b602002602001015185838151811061142357611422614bae565b5b602002602001015161092e565b82828151811061144357611442614bae565b5b6020026020010181815250508061145990614aa7565b90506113e9565b508091505092915050565b600660019054906101000a900460ff1681565b6004805461148b90614a44565b80601f01602080910402602001604051908101604052809291908181526020018280546114b790614a44565b80156115045780601f106114d957610100808354040283529160200191611504565b820191906000526020600020905b8154815290600101906020018083116114e757829003601f168201915b505050505081565b600660009054906101000a900460ff1681565b611527611ea7565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148061156d575061156c83611567611ea7565b6119e7565b5b6115ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a3906144f9565b60405180910390fd5b6115b7838383612568565b505050565b6115c4611ea7565b73ffffffffffffffffffffffffffffffffffffffff166115e26116d6565b73ffffffffffffffffffffffffffffffffffffffff1614611638576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162f90614599565b60405180910390fd5b6116426000612819565b565b600c5481565b611652611ea7565b73ffffffffffffffffffffffffffffffffffffffff166116706116d6565b73ffffffffffffffffffffffffffffffffffffffff16146116c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116bd90614599565b60405180910390fd5b80600b8190555050565b600b5481565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61171261170b611ea7565b83836128df565b5050565b61171e611ea7565b73ffffffffffffffffffffffffffffffffffffffff1661173c6116d6565b73ffffffffffffffffffffffffffffffffffffffff1614611792576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178990614599565b60405180910390fd5b80600660016101000a81548160ff02191690831515021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60095481565b60056020528060005260406000206000915090505481565b600660009054906101000a900460ff1615611843576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183a906144b9565b60405180910390fd5b600954600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414156118c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118be90614659565b60405180910390fd5b80806118d233611a7b565b6118dc9190614900565b34101561191e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191590614679565b60405180910390fd5b600660019054906101000a900460ff1661197957600954600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6119db3360076008548154811061199357611992614bae565b5b906000526020600020015460016040518060400160405280600681526020017f30783030303000000000000000000000000000000000000000000000000000008152506120be565b6119e3612a4c565b5050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600080600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231846040518263ffffffff1660e01b8152600401611ad991906142a6565b60206040518083038186803b158015611af157600080fd5b505afa158015611b05573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b299190613db8565b1115611b3957600c549050611bfc565b6000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231846040518263ffffffff1660e01b8152600401611b9691906142a6565b60206040518083038186803b158015611bae57600080fd5b505afa158015611bc2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611be69190613db8565b1115611bf657600a549050611bfc565b600b5490505b919050565b611c09611ea7565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480611c4f5750611c4e85611c49611ea7565b6119e7565b5b611c8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c85906144f9565b60405180910390fd5b611c9b8585858585612aaa565b5050505050565b611caa611ea7565b73ffffffffffffffffffffffffffffffffffffffff16611cc86116d6565b73ffffffffffffffffffffffffffffffffffffffff1614611d1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1590614599565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611d8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8590614479565b60405180910390fd5b611d9781612819565b50565b611da2611ea7565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480611de85750611de783611de2611ea7565b6119e7565b5b611e27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1e906144f9565b60405180910390fd5b611e32838383612d2c565b505050565b60085481565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600033905090565b8060029080519060200190611ec59291906133f9565b5050565b606060028054611ed890614a44565b80601f0160208091040260200160405190810160405280929190818152602001828054611f0490614a44565b8015611f515780601f10611f2657610100808354040283529160200191611f51565b820191906000526020600020905b815481529060010190602001808311611f3457829003601f168201915b50505050509050919050565b60606000821415611fa5576040518060400160405280600181526020017f300000000000000000000000000000000000000000000000000000000000000081525090506120b9565b600082905060005b60008214611fd7578080611fc090614aa7565b915050600a82611fd091906148cf565b9150611fad565b60008167ffffffffffffffff811115611ff357611ff2614bdd565b5b6040519080825280601f01601f1916602001820160405280156120255781602001600182028036833780820191505090505b5090505b600085146120b25760018261203e919061495a565b9150600a8561204d9190614af0565b60306120599190614879565b60f81b81838151811061206f5761206e614bae565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856120ab91906148cf565b9450612029565b8093505050505b919050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561212e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212590614639565b60405180910390fd5b6000612138611ea7565b90506121598160008761214a88612f49565b61215388612f49565b87612fc3565b8260008086815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546121b89190614879565b925050819055508473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6287876040516122369291906146b4565b60405180910390a461224d81600087878787612fcb565b5050505050565b8151835114612298576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161228f906145f9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612308576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ff90614519565b60405180910390fd5b6000612312611ea7565b9050612322818787878787612fc3565b60005b84518110156124d357600085828151811061234357612342614bae565b5b60200260200101519050600085838151811061236257612361614bae565b5b60200260200101519050600080600084815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612403576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123fa90614579565b60405180910390fd5b81810360008085815260200190815260200160002060008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160008085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546124b89190614879565b92505081905550505050806124cc90614aa7565b9050612325565b508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb878760405161254a9291906143a5565b60405180910390a46125608187878787876131b2565b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156125d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125cf90614559565b60405180910390fd5b805182511461261c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612613906145f9565b60405180910390fd5b6000612626611ea7565b905061264681856000868660405180602001604052806000815250612fc3565b60005b835181101561279357600084828151811061266757612666614bae565b5b60200260200101519050600084838151811061268657612685614bae565b5b60200260200101519050600080600084815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612727576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161271e90614499565b60405180910390fd5b81810360008085815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050808061278b90614aa7565b915050612649565b50600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb868660405161280b9291906143a5565b60405180910390a450505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561294e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612945906145b9565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051612a3f91906143dc565b60405180910390a3505050565b60016007805490501115612aa8576001600780549050612a6c919061495a565b6001600854612a7b9190614879565b1115612a8e576000600881905550612aa7565b60086000815480929190612aa190614aa7565b91905055505b5b565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612b1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b1190614519565b60405180910390fd5b6000612b24611ea7565b9050612b44818787612b3588612f49565b612b3e88612f49565b87612fc3565b600080600086815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905083811015612bdb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bd290614579565b60405180910390fd5b83810360008087815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508360008087815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612c909190614879565b925050819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628888604051612d0d9291906146b4565b60405180910390a4612d23828888888888612fcb565b50505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612d9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d9390614559565b60405180910390fd5b6000612da6611ea7565b9050612dd681856000612db887612f49565b612dc187612f49565b60405180602001604052806000815250612fc3565b600080600085815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015612e6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e6490614499565b60405180910390fd5b82810360008086815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628787604051612f3a9291906146b4565b60405180910390a45050505050565b60606000600167ffffffffffffffff811115612f6857612f67614bdd565b5b604051908082528060200260200182016040528015612f965781602001602082028036833780820191505090505b5090508281600081518110612fae57612fad614bae565b5b60200260200101818152505080915050919050565b505050505050565b612fea8473ffffffffffffffffffffffffffffffffffffffff16613399565b156131aa578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401613030959493929190614329565b602060405180830381600087803b15801561304a57600080fd5b505af192505050801561307b57506040513d601f19601f820116820180604052508101906130789190613d15565b60015b61312157613087614c0c565b806308c379a014156130e4575061309c6151f9565b806130a757506130e6565b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130db91906143f7565b60405180910390fd5b505b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161311890614419565b60405180910390fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146131a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161319f90614439565b60405180910390fd5b505b505050505050565b6131d18473ffffffffffffffffffffffffffffffffffffffff16613399565b15613391578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b81526004016132179594939291906142c1565b602060405180830381600087803b15801561323157600080fd5b505af192505050801561326257506040513d601f19601f8201168201806040525081019061325f9190613d15565b60015b6133085761326e614c0c565b806308c379a014156132cb57506132836151f9565b8061328e57506132cd565b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132c291906143f7565b60405180910390fd5b505b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132ff90614419565b60405180910390fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461338f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161338690614439565b60405180910390fd5b505b505050505050565b600080823b905060008111915050919050565b8280548282559060005260206000209081019282156133e8579160200282015b828111156133e75782518255916020019190600101906133cc565b5b5090506133f5919061347f565b5090565b82805461340590614a44565b90600052602060002090601f016020900481019282613427576000855561346e565b82601f1061344057805160ff191683800117855561346e565b8280016001018555821561346e579182015b8281111561346d578251825591602001919060010190613452565b5b50905061347b919061347f565b5090565b5b80821115613498576000816000905550600101613480565b5090565b60006134af6134aa84614702565b6146dd565b905080838252602082019050828560208602820111156134d2576134d1614c33565b5b60005b8581101561350257816134e8888261368e565b8452602084019350602083019250506001810190506134d5565b5050509392505050565b600061351f61351a8461472e565b6146dd565b9050808382526020820190508285602086028201111561354257613541614c33565b5b60005b8581101561359057813567ffffffffffffffff81111561356857613567614c2e565b5b808601613575898261376c565b85526020850194506020840193505050600181019050613545565b5050509392505050565b60006135ad6135a88461475a565b6146dd565b905080838252602082019050828560208602820111156135d0576135cf614c33565b5b60005b8581101561360057816135e688826137c8565b8452602084019350602083019250506001810190506135d3565b5050509392505050565b600061361d61361884614786565b6146dd565b90508281526020810184848401111561363957613638614c38565b5b613644848285614a02565b509392505050565b600061365f61365a846147b7565b6146dd565b90508281526020810184848401111561367b5761367a614c38565b5b613686848285614a02565b509392505050565b60008135905061369d8161528f565b92915050565b600082601f8301126136b8576136b7614c2e565b5b81356136c884826020860161349c565b91505092915050565b600082601f8301126136e6576136e5614c2e565b5b81356136f684826020860161350c565b91505092915050565b600082601f83011261371457613713614c2e565b5b813561372484826020860161359a565b91505092915050565b60008135905061373c816152a6565b92915050565b600081359050613751816152bd565b92915050565b600081519050613766816152bd565b92915050565b600082601f83011261378157613780614c2e565b5b813561379184826020860161360a565b91505092915050565b600082601f8301126137af576137ae614c2e565b5b81356137bf84826020860161364c565b91505092915050565b6000813590506137d7816152d4565b92915050565b6000815190506137ec816152d4565b92915050565b60006020828403121561380857613807614c42565b5b60006138168482850161368e565b91505092915050565b6000806040838503121561383657613835614c42565b5b60006138448582860161368e565b92505060206138558582860161368e565b9150509250929050565b600080600080600060a0868803121561387b5761387a614c42565b5b60006138898882890161368e565b955050602061389a8882890161368e565b945050604086013567ffffffffffffffff8111156138bb576138ba614c3d565b5b6138c7888289016136ff565b935050606086013567ffffffffffffffff8111156138e8576138e7614c3d565b5b6138f4888289016136ff565b925050608086013567ffffffffffffffff81111561391557613914614c3d565b5b6139218882890161376c565b9150509295509295909350565b600080600080600060a0868803121561394a57613949614c42565b5b60006139588882890161368e565b95505060206139698882890161368e565b945050604061397a888289016137c8565b935050606061398b888289016137c8565b925050608086013567ffffffffffffffff8111156139ac576139ab614c3d565b5b6139b88882890161376c565b9150509295509295909350565b6000806000606084860312156139de576139dd614c42565b5b60006139ec8682870161368e565b935050602084013567ffffffffffffffff811115613a0d57613a0c614c3d565b5b613a19868287016136ff565b925050604084013567ffffffffffffffff811115613a3a57613a39614c3d565b5b613a46868287016136ff565b9150509250925092565b60008060408385031215613a6757613a66614c42565b5b6000613a758582860161368e565b9250506020613a868582860161372d565b9150509250929050565b60008060408385031215613aa757613aa6614c42565b5b6000613ab58582860161368e565b9250506020613ac6858286016137c8565b9150509250929050565b600080600060608486031215613ae957613ae8614c42565b5b6000613af78682870161368e565b9350506020613b08868287016137c8565b9250506040613b19868287016137c8565b9150509250925092565b60008060408385031215613b3a57613b39614c42565b5b600083013567ffffffffffffffff811115613b5857613b57614c3d565b5b613b64858286016136a3565b925050602083013567ffffffffffffffff811115613b8557613b84614c3d565b5b613b91858286016136ff565b9150509250929050565b60008060008060808587031215613bb557613bb4614c42565b5b600085013567ffffffffffffffff811115613bd357613bd2614c3d565b5b613bdf878288016136a3565b945050602085013567ffffffffffffffff811115613c0057613bff614c3d565b5b613c0c878288016136ff565b935050604085013567ffffffffffffffff811115613c2d57613c2c614c3d565b5b613c39878288016136ff565b925050606085013567ffffffffffffffff811115613c5a57613c59614c3d565b5b613c66878288016136d1565b91505092959194509250565b600060208284031215613c8857613c87614c42565b5b600082013567ffffffffffffffff811115613ca657613ca5614c3d565b5b613cb2848285016136ff565b91505092915050565b600060208284031215613cd157613cd0614c42565b5b6000613cdf8482850161372d565b91505092915050565b600060208284031215613cfe57613cfd614c42565b5b6000613d0c84828501613742565b91505092915050565b600060208284031215613d2b57613d2a614c42565b5b6000613d3984828501613757565b91505092915050565b600060208284031215613d5857613d57614c42565b5b600082013567ffffffffffffffff811115613d7657613d75614c3d565b5b613d828482850161379a565b91505092915050565b600060208284031215613da157613da0614c42565b5b6000613daf848285016137c8565b91505092915050565b600060208284031215613dce57613dcd614c42565b5b6000613ddc848285016137dd565b91505092915050565b6000613df18383614257565b60208301905092915050565b613e068161498e565b82525050565b6000613e178261480d565b613e21818561483b565b9350613e2c836147e8565b8060005b83811015613e5d578151613e448882613de5565b9750613e4f8361482e565b925050600181019050613e30565b5085935050505092915050565b613e73816149a0565b82525050565b6000613e8482614818565b613e8e818561484c565b9350613e9e818560208601614a11565b613ea781614c47565b840191505092915050565b6000613ebd82614823565b613ec7818561485d565b9350613ed7818560208601614a11565b613ee081614c47565b840191505092915050565b6000613ef682614823565b613f00818561486e565b9350613f10818560208601614a11565b80840191505092915050565b60008154613f2981614a44565b613f33818661486e565b94506001821660008114613f4e5760018114613f5f57613f92565b60ff19831686528186019350613f92565b613f68856147f8565b60005b83811015613f8a57815481890152600182019150602081019050613f6b565b838801955050505b50505092915050565b6000613fa860348361485d565b9150613fb382614c65565b604082019050919050565b6000613fcb60288361485d565b9150613fd682614cb4565b604082019050919050565b6000613fee602b8361485d565b9150613ff982614d03565b604082019050919050565b600061401160268361485d565b915061401c82614d52565b604082019050919050565b600061403460248361485d565b915061403f82614da1565b604082019050919050565b6000614057601e8361485d565b915061406282614df0565b602082019050919050565b600061407a602f8361485d565b915061408582614e19565b604082019050919050565b600061409d60298361485d565b91506140a882614e68565b604082019050919050565b60006140c060258361485d565b91506140cb82614eb7565b604082019050919050565b60006140e360328361485d565b91506140ee82614f06565b604082019050919050565b600061410660238361485d565b915061411182614f55565b604082019050919050565b6000614129602a8361485d565b915061413482614fa4565b604082019050919050565b600061414c60208361485d565b915061415782614ff3565b602082019050919050565b600061416f60298361485d565b915061417a8261501c565b604082019050919050565b600061419260298361485d565b915061419d8261506b565b604082019050919050565b60006141b560288361485d565b91506141c0826150ba565b604082019050919050565b60006141d860358361485d565b91506141e382615109565b604082019050919050565b60006141fb60218361485d565b915061420682615158565b604082019050919050565b600061421e601c8361485d565b9150614229826151a7565b602082019050919050565b600061424160138361485d565b915061424c826151d0565b602082019050919050565b614260816149f8565b82525050565b61426f816149f8565b82525050565b60006142818286613eeb565b915061428d8285613eeb565b91506142998284613f1c565b9150819050949350505050565b60006020820190506142bb6000830184613dfd565b92915050565b600060a0820190506142d66000830188613dfd565b6142e36020830187613dfd565b81810360408301526142f58186613e0c565b905081810360608301526143098185613e0c565b9050818103608083015261431d8184613e79565b90509695505050505050565b600060a08201905061433e6000830188613dfd565b61434b6020830187613dfd565b6143586040830186614266565b6143656060830185614266565b81810360808301526143778184613e79565b90509695505050505050565b6000602082019050818103600083015261439d8184613e0c565b905092915050565b600060408201905081810360008301526143bf8185613e0c565b905081810360208301526143d38184613e0c565b90509392505050565b60006020820190506143f16000830184613e6a565b92915050565b600060208201905081810360008301526144118184613eb2565b905092915050565b6000602082019050818103600083015261443281613f9b565b9050919050565b6000602082019050818103600083015261445281613fbe565b9050919050565b6000602082019050818103600083015261447281613fe1565b9050919050565b6000602082019050818103600083015261449281614004565b9050919050565b600060208201905081810360008301526144b281614027565b9050919050565b600060208201905081810360008301526144d28161404a565b9050919050565b600060208201905081810360008301526144f28161406d565b9050919050565b6000602082019050818103600083015261451281614090565b9050919050565b60006020820190508181036000830152614532816140b3565b9050919050565b60006020820190508181036000830152614552816140d6565b9050919050565b60006020820190508181036000830152614572816140f9565b9050919050565b600060208201905081810360008301526145928161411c565b9050919050565b600060208201905081810360008301526145b28161413f565b9050919050565b600060208201905081810360008301526145d281614162565b9050919050565b600060208201905081810360008301526145f281614185565b9050919050565b60006020820190508181036000830152614612816141a8565b9050919050565b60006020820190508181036000830152614632816141cb565b9050919050565b60006020820190508181036000830152614652816141ee565b9050919050565b6000602082019050818103600083015261467281614211565b9050919050565b6000602082019050818103600083015261469281614234565b9050919050565b60006020820190506146ae6000830184614266565b92915050565b60006040820190506146c96000830185614266565b6146d66020830184614266565b9392505050565b60006146e76146f8565b90506146f38282614a76565b919050565b6000604051905090565b600067ffffffffffffffff82111561471d5761471c614bdd565b5b602082029050602081019050919050565b600067ffffffffffffffff82111561474957614748614bdd565b5b602082029050602081019050919050565b600067ffffffffffffffff82111561477557614774614bdd565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156147a1576147a0614bdd565b5b6147aa82614c47565b9050602081019050919050565b600067ffffffffffffffff8211156147d2576147d1614bdd565b5b6147db82614c47565b9050602081019050919050565b6000819050602082019050919050565b60008190508160005260206000209050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b6000614884826149f8565b915061488f836149f8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156148c4576148c3614b21565b5b828201905092915050565b60006148da826149f8565b91506148e5836149f8565b9250826148f5576148f4614b50565b5b828204905092915050565b600061490b826149f8565b9150614916836149f8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561494f5761494e614b21565b5b828202905092915050565b6000614965826149f8565b9150614970836149f8565b92508282101561498357614982614b21565b5b828203905092915050565b6000614999826149d8565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015614a2f578082015181840152602081019050614a14565b83811115614a3e576000848401525b50505050565b60006002820490506001821680614a5c57607f821691505b60208210811415614a7057614a6f614b7f565b5b50919050565b614a7f82614c47565b810181811067ffffffffffffffff82111715614a9e57614a9d614bdd565b5b80604052505050565b6000614ab2826149f8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415614ae557614ae4614b21565b5b600182019050919050565b6000614afb826149f8565b9150614b06836149f8565b925082614b1657614b15614b50565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600060033d1115614c2b5760046000803e614c28600051614c58565b90505b90565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160e01c9050919050565b7f455243313135353a207472616e7366657220746f206e6f6e204552433131353560008201527f526563656976657220696d706c656d656e746572000000000000000000000000602082015250565b7f455243313135353a204552433131353552656365697665722072656a6563746560008201527f6420746f6b656e73000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a2062616c616e636520717565727920666f7220746865207a60008201527f65726f2061646472657373000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a206275726e20616d6f756e7420657863656564732062616c60008201527f616e636500000000000000000000000000000000000000000000000000000000602082015250565b7f4176657261676520546f6b656e20436c61696d206973207061757365642e0000600082015250565b7f4e756d626572206f6620696473206e65656420746f206d61746368206e756d6260008201527f6572206f66206164647265737365730000000000000000000000000000000000602082015250565b7f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260008201527f20617070726f7665640000000000000000000000000000000000000000000000602082015250565b7f455243313135353a207472616e7366657220746f20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a207472616e736665722063616c6c6572206973206e6f742060008201527f6f776e6572206e6f7220617070726f7665640000000000000000000000000000602082015250565b7f455243313135353a206275726e2066726f6d20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a20696e73756666696369656e742062616c616e636520666f60008201527f72207472616e7366657200000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f455243313135353a2073657474696e6720617070726f76616c2073746174757360008201527f20666f722073656c660000000000000000000000000000000000000000000000602082015250565b7f455243313135353a206163636f756e747320616e6420696473206c656e67746860008201527f206d69736d617463680000000000000000000000000000000000000000000000602082015250565b7f455243313135353a2069647320616e6420616d6f756e7473206c656e6774682060008201527f6d69736d61746368000000000000000000000000000000000000000000000000602082015250565b7f4e756d626572206f66202d616d6f756e74732d206e65656420746f206d61746360008201527f68206e756d626572206f66206164647265737365730000000000000000000000602082015250565b7f455243313135353a206d696e7420746f20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f546869732077616c6c657420616c726561647920636c61696d65642e00000000600082015250565b7f496e73756666696369656e742066756e64732100000000000000000000000000600082015250565b600060443d10156152095761528c565b6152116146f8565b60043d036004823e80513d602482011167ffffffffffffffff8211171561523957505061528c565b808201805167ffffffffffffffff811115615257575050505061528c565b80602083010160043d03850181111561527457505050505061528c565b61528382602001850186614a76565b82955050505050505b90565b6152988161498e565b81146152a357600080fd5b50565b6152af816149a0565b81146152ba57600080fd5b50565b6152c6816149ac565b81146152d157600080fd5b50565b6152dd816149f8565b81146152e857600080fd5b5056fea264697066735822122026c538ee0963331d7a1933493a21d9896e4145705a1add57cc272334f06337e164736f6c6343000807003300000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000011c37937e08000000000000000000000000000000000000000000000000000002386f26fc100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005668747470733a2f2f7761746368746f7765722e6d7966696c65626173652e636f6d2f697066732f516d55593969706e5a6b69396f3934657a6536787348626b507965674e4b50634575683164535a685364763871782f00000000000000000000

Deployed Bytecode

0x60806040526004361061023a5760003560e01c80635503a0e81161012e578063b602e3d6116100ab578063ee1868ef1161006f578063ee1868ef1461084b578063f242432a14610888578063f2fde38b146108b1578063f5298aca146108da578063fd38b8bf146109035761023a565b8063b602e3d61461075f578063b92b5a1e1461078a578063da7cbba3146107b5578063dae006ca146107f2578063e985e9c51461080e5761023a565b8063811d2437116100f2578063811d24371461068e5780638693da20146106b75780638da5cb5b146106e2578063a22cb4651461070d578063a68cc609146107365761023a565b80635503a0e8146105cd5780635c975abb146105f85780636b20c45414610623578063715018a61461064c5780637d06848f146106635761023a565b806316c38b3c116101bc578063309201181161018057806330920118146104fa578063343c82d3146105235780633ccfd60b1461054e5780634e1273f41461056557806354ae8a75146105a25761023a565b806316c38b3c146104195780631bfac2bb14610442578063226467a01461046b5780632bf02bfd146104a85780632eb2c2d6146104d15761023a565b806306575c891161020357806306575c89146103345780630a2e828c1461035f5780630e89341c1461038a578063112b46cb146103c757806316ba10e0146103f05761023a565b8062fdd58e1461023f57806301ffc9a71461027c57806302fe5305146102b9578063030efb8f146102e257806303d791391461030b575b600080fd5b34801561024b57600080fd5b5061026660048036038101906102619190613a90565b61092e565b6040516102739190614699565b60405180910390f35b34801561028857600080fd5b506102a3600480360381019061029e9190613ce8565b6109f7565b6040516102b091906143dc565b60405180910390f35b3480156102c557600080fd5b506102e060048036038101906102db9190613d42565b610ad9565b005b3480156102ee57600080fd5b5061030960048036038101906103049190613d8b565b610b61565b005b34801561031757600080fd5b50610332600480360381019061032d9190613c72565b610be7565b005b34801561034057600080fd5b50610349610c85565b6040516103569190614699565b60405180910390f35b34801561036b57600080fd5b50610374610c8f565b6040516103819190614383565b60405180910390f35b34801561039657600080fd5b506103b160048036038101906103ac9190613d8b565b610ce7565b6040516103be91906143f7565b60405180910390f35b3480156103d357600080fd5b506103ee60048036038101906103e99190613d8b565b610d25565b005b3480156103fc57600080fd5b5061041760048036038101906104129190613d42565b610dab565b005b34801561042557600080fd5b50610440600480360381019061043b9190613cbb565b610e41565b005b34801561044e57600080fd5b50610469600480360381019061046491906137f2565b610eda565b005b34801561047757600080fd5b50610492600480360381019061048d9190613d8b565b610f9a565b60405161049f9190614699565b60405180910390f35b3480156104b457600080fd5b506104cf60048036038101906104ca9190613b9b565b610fbe565b005b3480156104dd57600080fd5b506104f860048036038101906104f3919061385f565b611160565b005b34801561050657600080fd5b50610521600480360381019061051c9190613d8b565b611201565b005b34801561052f57600080fd5b50610538611287565b6040516105459190614699565b60405180910390f35b34801561055a57600080fd5b5061056361128d565b005b34801561057157600080fd5b5061058c60048036038101906105879190613b23565b611352565b6040516105999190614383565b60405180910390f35b3480156105ae57600080fd5b506105b761146b565b6040516105c491906143dc565b60405180910390f35b3480156105d957600080fd5b506105e261147e565b6040516105ef91906143f7565b60405180910390f35b34801561060457600080fd5b5061060d61150c565b60405161061a91906143dc565b60405180910390f35b34801561062f57600080fd5b5061064a600480360381019061064591906139c5565b61151f565b005b34801561065857600080fd5b506106616115bc565b005b34801561066f57600080fd5b50610678611644565b6040516106859190614699565b60405180910390f35b34801561069a57600080fd5b506106b560048036038101906106b09190613d8b565b61164a565b005b3480156106c357600080fd5b506106cc6116d0565b6040516106d99190614699565b60405180910390f35b3480156106ee57600080fd5b506106f76116d6565b60405161070491906142a6565b60405180910390f35b34801561071957600080fd5b50610734600480360381019061072f9190613a50565b611700565b005b34801561074257600080fd5b5061075d60048036038101906107589190613cbb565b611716565b005b34801561076b57600080fd5b506107746117af565b60405161078191906142a6565b60405180910390f35b34801561079657600080fd5b5061079f6117d5565b6040516107ac9190614699565b60405180910390f35b3480156107c157600080fd5b506107dc60048036038101906107d791906137f2565b6117db565b6040516107e99190614699565b60405180910390f35b61080c60048036038101906108079190613d8b565b6117f3565b005b34801561081a57600080fd5b506108356004803603810190610830919061381f565b6119e7565b60405161084291906143dc565b60405180910390f35b34801561085757600080fd5b50610872600480360381019061086d91906137f2565b611a7b565b60405161087f9190614699565b60405180910390f35b34801561089457600080fd5b506108af60048036038101906108aa919061392e565b611c01565b005b3480156108bd57600080fd5b506108d860048036038101906108d391906137f2565b611ca2565b005b3480156108e657600080fd5b5061090160048036038101906108fc9190613ad0565b611d9a565b005b34801561090f57600080fd5b50610918611e37565b6040516109259190614699565b60405180910390f35b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561099f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099690614459565b60405180910390fd5b60008083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60007fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610ac257507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610ad25750610ad182611e3d565b5b9050919050565b610ae1611ea7565b73ffffffffffffffffffffffffffffffffffffffff16610aff6116d6565b73ffffffffffffffffffffffffffffffffffffffff1614610b55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4c90614599565b60405180910390fd5b610b5e81611eaf565b50565b610b69611ea7565b73ffffffffffffffffffffffffffffffffffffffff16610b876116d6565b73ffffffffffffffffffffffffffffffffffffffff1614610bdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd490614599565b60405180910390fd5b80600a8190555050565b610bef611ea7565b73ffffffffffffffffffffffffffffffffffffffff16610c0d6116d6565b73ffffffffffffffffffffffffffffffffffffffff1614610c63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5a90614599565b60405180910390fd5b8060079080519060200190610c799291906133ac565b50600060088190555050565b6000600954905090565b60606007805480602002602001604051908101604052809291908181526020018280548015610cdd57602002820191906000526020600020905b815481526020019060010190808311610cc9575b5050505050905090565b6060610cf282611ec9565b610cfb83611f5d565b6004604051602001610d0f93929190614275565b6040516020818303038152906040529050919050565b610d2d611ea7565b73ffffffffffffffffffffffffffffffffffffffff16610d4b6116d6565b73ffffffffffffffffffffffffffffffffffffffff1614610da1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9890614599565b60405180910390fd5b80600c8190555050565b610db3611ea7565b73ffffffffffffffffffffffffffffffffffffffff16610dd16116d6565b73ffffffffffffffffffffffffffffffffffffffff1614610e27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1e90614599565b60405180910390fd5b8060049080519060200190610e3d9291906133f9565b5050565b610e49611ea7565b73ffffffffffffffffffffffffffffffffffffffff16610e676116d6565b73ffffffffffffffffffffffffffffffffffffffff1614610ebd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb490614599565b60405180910390fd5b80600660006101000a81548160ff02191690831515021790555050565b610ee2611ea7565b73ffffffffffffffffffffffffffffffffffffffff16610f006116d6565b73ffffffffffffffffffffffffffffffffffffffff1614610f56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4d90614599565b60405180910390fd5b80600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60078181548110610faa57600080fd5b906000526020600020016000915090505481565b610fc6611ea7565b73ffffffffffffffffffffffffffffffffffffffff16610fe46116d6565b73ffffffffffffffffffffffffffffffffffffffff161461103a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103190614599565b60405180910390fd5b60008451905083518114611083576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107a906144d9565b60405180910390fd5b825181146110c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110bd90614619565b60405180910390fd5b60005b81811015611158576111458682815181106110e7576110e6614bae565b5b602002602001015186838151811061110257611101614bae565b5b602002602001015186848151811061111d5761111c614bae565b5b602002602001015186858151811061113857611137614bae565b5b60200260200101516120be565b808061115090614aa7565b9150506110c9565b505050505050565b611168611ea7565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806111ae57506111ad856111a8611ea7565b6119e7565b5b6111ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e490614539565b60405180910390fd5b6111fa8585858585612254565b5050505050565b611209611ea7565b73ffffffffffffffffffffffffffffffffffffffff166112276116d6565b73ffffffffffffffffffffffffffffffffffffffff161461127d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127490614599565b60405180910390fd5b8060098190555050565b600a5481565b611295611ea7565b73ffffffffffffffffffffffffffffffffffffffff166112b36116d6565b73ffffffffffffffffffffffffffffffffffffffff1614611309576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130090614599565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f1935050505015801561134f573d6000803e3d6000fd5b50565b60608151835114611398576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138f906145d9565b60405180910390fd5b6000835167ffffffffffffffff8111156113b5576113b4614bdd565b5b6040519080825280602002602001820160405280156113e35781602001602082028036833780820191505090505b50905060005b84518110156114605761143085828151811061140857611407614bae565b5b602002602001015185838151811061142357611422614bae565b5b602002602001015161092e565b82828151811061144357611442614bae565b5b6020026020010181815250508061145990614aa7565b90506113e9565b508091505092915050565b600660019054906101000a900460ff1681565b6004805461148b90614a44565b80601f01602080910402602001604051908101604052809291908181526020018280546114b790614a44565b80156115045780601f106114d957610100808354040283529160200191611504565b820191906000526020600020905b8154815290600101906020018083116114e757829003601f168201915b505050505081565b600660009054906101000a900460ff1681565b611527611ea7565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148061156d575061156c83611567611ea7565b6119e7565b5b6115ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a3906144f9565b60405180910390fd5b6115b7838383612568565b505050565b6115c4611ea7565b73ffffffffffffffffffffffffffffffffffffffff166115e26116d6565b73ffffffffffffffffffffffffffffffffffffffff1614611638576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162f90614599565b60405180910390fd5b6116426000612819565b565b600c5481565b611652611ea7565b73ffffffffffffffffffffffffffffffffffffffff166116706116d6565b73ffffffffffffffffffffffffffffffffffffffff16146116c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116bd90614599565b60405180910390fd5b80600b8190555050565b600b5481565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61171261170b611ea7565b83836128df565b5050565b61171e611ea7565b73ffffffffffffffffffffffffffffffffffffffff1661173c6116d6565b73ffffffffffffffffffffffffffffffffffffffff1614611792576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178990614599565b60405180910390fd5b80600660016101000a81548160ff02191690831515021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60095481565b60056020528060005260406000206000915090505481565b600660009054906101000a900460ff1615611843576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183a906144b9565b60405180910390fd5b600954600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414156118c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118be90614659565b60405180910390fd5b80806118d233611a7b565b6118dc9190614900565b34101561191e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191590614679565b60405180910390fd5b600660019054906101000a900460ff1661197957600954600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6119db3360076008548154811061199357611992614bae565b5b906000526020600020015460016040518060400160405280600681526020017f30783030303000000000000000000000000000000000000000000000000000008152506120be565b6119e3612a4c565b5050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600080600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231846040518263ffffffff1660e01b8152600401611ad991906142a6565b60206040518083038186803b158015611af157600080fd5b505afa158015611b05573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b299190613db8565b1115611b3957600c549050611bfc565b6000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231846040518263ffffffff1660e01b8152600401611b9691906142a6565b60206040518083038186803b158015611bae57600080fd5b505afa158015611bc2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611be69190613db8565b1115611bf657600a549050611bfc565b600b5490505b919050565b611c09611ea7565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480611c4f5750611c4e85611c49611ea7565b6119e7565b5b611c8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c85906144f9565b60405180910390fd5b611c9b8585858585612aaa565b5050505050565b611caa611ea7565b73ffffffffffffffffffffffffffffffffffffffff16611cc86116d6565b73ffffffffffffffffffffffffffffffffffffffff1614611d1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1590614599565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611d8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8590614479565b60405180910390fd5b611d9781612819565b50565b611da2611ea7565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480611de85750611de783611de2611ea7565b6119e7565b5b611e27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1e906144f9565b60405180910390fd5b611e32838383612d2c565b505050565b60085481565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600033905090565b8060029080519060200190611ec59291906133f9565b5050565b606060028054611ed890614a44565b80601f0160208091040260200160405190810160405280929190818152602001828054611f0490614a44565b8015611f515780601f10611f2657610100808354040283529160200191611f51565b820191906000526020600020905b815481529060010190602001808311611f3457829003601f168201915b50505050509050919050565b60606000821415611fa5576040518060400160405280600181526020017f300000000000000000000000000000000000000000000000000000000000000081525090506120b9565b600082905060005b60008214611fd7578080611fc090614aa7565b915050600a82611fd091906148cf565b9150611fad565b60008167ffffffffffffffff811115611ff357611ff2614bdd565b5b6040519080825280601f01601f1916602001820160405280156120255781602001600182028036833780820191505090505b5090505b600085146120b25760018261203e919061495a565b9150600a8561204d9190614af0565b60306120599190614879565b60f81b81838151811061206f5761206e614bae565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856120ab91906148cf565b9450612029565b8093505050505b919050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561212e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212590614639565b60405180910390fd5b6000612138611ea7565b90506121598160008761214a88612f49565b61215388612f49565b87612fc3565b8260008086815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546121b89190614879565b925050819055508473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6287876040516122369291906146b4565b60405180910390a461224d81600087878787612fcb565b5050505050565b8151835114612298576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161228f906145f9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612308576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ff90614519565b60405180910390fd5b6000612312611ea7565b9050612322818787878787612fc3565b60005b84518110156124d357600085828151811061234357612342614bae565b5b60200260200101519050600085838151811061236257612361614bae565b5b60200260200101519050600080600084815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612403576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123fa90614579565b60405180910390fd5b81810360008085815260200190815260200160002060008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160008085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546124b89190614879565b92505081905550505050806124cc90614aa7565b9050612325565b508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb878760405161254a9291906143a5565b60405180910390a46125608187878787876131b2565b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156125d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125cf90614559565b60405180910390fd5b805182511461261c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612613906145f9565b60405180910390fd5b6000612626611ea7565b905061264681856000868660405180602001604052806000815250612fc3565b60005b835181101561279357600084828151811061266757612666614bae565b5b60200260200101519050600084838151811061268657612685614bae565b5b60200260200101519050600080600084815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612727576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161271e90614499565b60405180910390fd5b81810360008085815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050808061278b90614aa7565b915050612649565b50600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb868660405161280b9291906143a5565b60405180910390a450505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561294e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612945906145b9565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051612a3f91906143dc565b60405180910390a3505050565b60016007805490501115612aa8576001600780549050612a6c919061495a565b6001600854612a7b9190614879565b1115612a8e576000600881905550612aa7565b60086000815480929190612aa190614aa7565b91905055505b5b565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612b1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b1190614519565b60405180910390fd5b6000612b24611ea7565b9050612b44818787612b3588612f49565b612b3e88612f49565b87612fc3565b600080600086815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905083811015612bdb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bd290614579565b60405180910390fd5b83810360008087815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508360008087815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612c909190614879565b925050819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628888604051612d0d9291906146b4565b60405180910390a4612d23828888888888612fcb565b50505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612d9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d9390614559565b60405180910390fd5b6000612da6611ea7565b9050612dd681856000612db887612f49565b612dc187612f49565b60405180602001604052806000815250612fc3565b600080600085815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015612e6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e6490614499565b60405180910390fd5b82810360008086815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628787604051612f3a9291906146b4565b60405180910390a45050505050565b60606000600167ffffffffffffffff811115612f6857612f67614bdd565b5b604051908082528060200260200182016040528015612f965781602001602082028036833780820191505090505b5090508281600081518110612fae57612fad614bae565b5b60200260200101818152505080915050919050565b505050505050565b612fea8473ffffffffffffffffffffffffffffffffffffffff16613399565b156131aa578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401613030959493929190614329565b602060405180830381600087803b15801561304a57600080fd5b505af192505050801561307b57506040513d601f19601f820116820180604052508101906130789190613d15565b60015b61312157613087614c0c565b806308c379a014156130e4575061309c6151f9565b806130a757506130e6565b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130db91906143f7565b60405180910390fd5b505b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161311890614419565b60405180910390fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146131a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161319f90614439565b60405180910390fd5b505b505050505050565b6131d18473ffffffffffffffffffffffffffffffffffffffff16613399565b15613391578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b81526004016132179594939291906142c1565b602060405180830381600087803b15801561323157600080fd5b505af192505050801561326257506040513d601f19601f8201168201806040525081019061325f9190613d15565b60015b6133085761326e614c0c565b806308c379a014156132cb57506132836151f9565b8061328e57506132cd565b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132c291906143f7565b60405180910390fd5b505b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132ff90614419565b60405180910390fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461338f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161338690614439565b60405180910390fd5b505b505050505050565b600080823b905060008111915050919050565b8280548282559060005260206000209081019282156133e8579160200282015b828111156133e75782518255916020019190600101906133cc565b5b5090506133f5919061347f565b5090565b82805461340590614a44565b90600052602060002090601f016020900481019282613427576000855561346e565b82601f1061344057805160ff191683800117855561346e565b8280016001018555821561346e579182015b8281111561346d578251825591602001919060010190613452565b5b50905061347b919061347f565b5090565b5b80821115613498576000816000905550600101613480565b5090565b60006134af6134aa84614702565b6146dd565b905080838252602082019050828560208602820111156134d2576134d1614c33565b5b60005b8581101561350257816134e8888261368e565b8452602084019350602083019250506001810190506134d5565b5050509392505050565b600061351f61351a8461472e565b6146dd565b9050808382526020820190508285602086028201111561354257613541614c33565b5b60005b8581101561359057813567ffffffffffffffff81111561356857613567614c2e565b5b808601613575898261376c565b85526020850194506020840193505050600181019050613545565b5050509392505050565b60006135ad6135a88461475a565b6146dd565b905080838252602082019050828560208602820111156135d0576135cf614c33565b5b60005b8581101561360057816135e688826137c8565b8452602084019350602083019250506001810190506135d3565b5050509392505050565b600061361d61361884614786565b6146dd565b90508281526020810184848401111561363957613638614c38565b5b613644848285614a02565b509392505050565b600061365f61365a846147b7565b6146dd565b90508281526020810184848401111561367b5761367a614c38565b5b613686848285614a02565b509392505050565b60008135905061369d8161528f565b92915050565b600082601f8301126136b8576136b7614c2e565b5b81356136c884826020860161349c565b91505092915050565b600082601f8301126136e6576136e5614c2e565b5b81356136f684826020860161350c565b91505092915050565b600082601f83011261371457613713614c2e565b5b813561372484826020860161359a565b91505092915050565b60008135905061373c816152a6565b92915050565b600081359050613751816152bd565b92915050565b600081519050613766816152bd565b92915050565b600082601f83011261378157613780614c2e565b5b813561379184826020860161360a565b91505092915050565b600082601f8301126137af576137ae614c2e565b5b81356137bf84826020860161364c565b91505092915050565b6000813590506137d7816152d4565b92915050565b6000815190506137ec816152d4565b92915050565b60006020828403121561380857613807614c42565b5b60006138168482850161368e565b91505092915050565b6000806040838503121561383657613835614c42565b5b60006138448582860161368e565b92505060206138558582860161368e565b9150509250929050565b600080600080600060a0868803121561387b5761387a614c42565b5b60006138898882890161368e565b955050602061389a8882890161368e565b945050604086013567ffffffffffffffff8111156138bb576138ba614c3d565b5b6138c7888289016136ff565b935050606086013567ffffffffffffffff8111156138e8576138e7614c3d565b5b6138f4888289016136ff565b925050608086013567ffffffffffffffff81111561391557613914614c3d565b5b6139218882890161376c565b9150509295509295909350565b600080600080600060a0868803121561394a57613949614c42565b5b60006139588882890161368e565b95505060206139698882890161368e565b945050604061397a888289016137c8565b935050606061398b888289016137c8565b925050608086013567ffffffffffffffff8111156139ac576139ab614c3d565b5b6139b88882890161376c565b9150509295509295909350565b6000806000606084860312156139de576139dd614c42565b5b60006139ec8682870161368e565b935050602084013567ffffffffffffffff811115613a0d57613a0c614c3d565b5b613a19868287016136ff565b925050604084013567ffffffffffffffff811115613a3a57613a39614c3d565b5b613a46868287016136ff565b9150509250925092565b60008060408385031215613a6757613a66614c42565b5b6000613a758582860161368e565b9250506020613a868582860161372d565b9150509250929050565b60008060408385031215613aa757613aa6614c42565b5b6000613ab58582860161368e565b9250506020613ac6858286016137c8565b9150509250929050565b600080600060608486031215613ae957613ae8614c42565b5b6000613af78682870161368e565b9350506020613b08868287016137c8565b9250506040613b19868287016137c8565b9150509250925092565b60008060408385031215613b3a57613b39614c42565b5b600083013567ffffffffffffffff811115613b5857613b57614c3d565b5b613b64858286016136a3565b925050602083013567ffffffffffffffff811115613b8557613b84614c3d565b5b613b91858286016136ff565b9150509250929050565b60008060008060808587031215613bb557613bb4614c42565b5b600085013567ffffffffffffffff811115613bd357613bd2614c3d565b5b613bdf878288016136a3565b945050602085013567ffffffffffffffff811115613c0057613bff614c3d565b5b613c0c878288016136ff565b935050604085013567ffffffffffffffff811115613c2d57613c2c614c3d565b5b613c39878288016136ff565b925050606085013567ffffffffffffffff811115613c5a57613c59614c3d565b5b613c66878288016136d1565b91505092959194509250565b600060208284031215613c8857613c87614c42565b5b600082013567ffffffffffffffff811115613ca657613ca5614c3d565b5b613cb2848285016136ff565b91505092915050565b600060208284031215613cd157613cd0614c42565b5b6000613cdf8482850161372d565b91505092915050565b600060208284031215613cfe57613cfd614c42565b5b6000613d0c84828501613742565b91505092915050565b600060208284031215613d2b57613d2a614c42565b5b6000613d3984828501613757565b91505092915050565b600060208284031215613d5857613d57614c42565b5b600082013567ffffffffffffffff811115613d7657613d75614c3d565b5b613d828482850161379a565b91505092915050565b600060208284031215613da157613da0614c42565b5b6000613daf848285016137c8565b91505092915050565b600060208284031215613dce57613dcd614c42565b5b6000613ddc848285016137dd565b91505092915050565b6000613df18383614257565b60208301905092915050565b613e068161498e565b82525050565b6000613e178261480d565b613e21818561483b565b9350613e2c836147e8565b8060005b83811015613e5d578151613e448882613de5565b9750613e4f8361482e565b925050600181019050613e30565b5085935050505092915050565b613e73816149a0565b82525050565b6000613e8482614818565b613e8e818561484c565b9350613e9e818560208601614a11565b613ea781614c47565b840191505092915050565b6000613ebd82614823565b613ec7818561485d565b9350613ed7818560208601614a11565b613ee081614c47565b840191505092915050565b6000613ef682614823565b613f00818561486e565b9350613f10818560208601614a11565b80840191505092915050565b60008154613f2981614a44565b613f33818661486e565b94506001821660008114613f4e5760018114613f5f57613f92565b60ff19831686528186019350613f92565b613f68856147f8565b60005b83811015613f8a57815481890152600182019150602081019050613f6b565b838801955050505b50505092915050565b6000613fa860348361485d565b9150613fb382614c65565b604082019050919050565b6000613fcb60288361485d565b9150613fd682614cb4565b604082019050919050565b6000613fee602b8361485d565b9150613ff982614d03565b604082019050919050565b600061401160268361485d565b915061401c82614d52565b604082019050919050565b600061403460248361485d565b915061403f82614da1565b604082019050919050565b6000614057601e8361485d565b915061406282614df0565b602082019050919050565b600061407a602f8361485d565b915061408582614e19565b604082019050919050565b600061409d60298361485d565b91506140a882614e68565b604082019050919050565b60006140c060258361485d565b91506140cb82614eb7565b604082019050919050565b60006140e360328361485d565b91506140ee82614f06565b604082019050919050565b600061410660238361485d565b915061411182614f55565b604082019050919050565b6000614129602a8361485d565b915061413482614fa4565b604082019050919050565b600061414c60208361485d565b915061415782614ff3565b602082019050919050565b600061416f60298361485d565b915061417a8261501c565b604082019050919050565b600061419260298361485d565b915061419d8261506b565b604082019050919050565b60006141b560288361485d565b91506141c0826150ba565b604082019050919050565b60006141d860358361485d565b91506141e382615109565b604082019050919050565b60006141fb60218361485d565b915061420682615158565b604082019050919050565b600061421e601c8361485d565b9150614229826151a7565b602082019050919050565b600061424160138361485d565b915061424c826151d0565b602082019050919050565b614260816149f8565b82525050565b61426f816149f8565b82525050565b60006142818286613eeb565b915061428d8285613eeb565b91506142998284613f1c565b9150819050949350505050565b60006020820190506142bb6000830184613dfd565b92915050565b600060a0820190506142d66000830188613dfd565b6142e36020830187613dfd565b81810360408301526142f58186613e0c565b905081810360608301526143098185613e0c565b9050818103608083015261431d8184613e79565b90509695505050505050565b600060a08201905061433e6000830188613dfd565b61434b6020830187613dfd565b6143586040830186614266565b6143656060830185614266565b81810360808301526143778184613e79565b90509695505050505050565b6000602082019050818103600083015261439d8184613e0c565b905092915050565b600060408201905081810360008301526143bf8185613e0c565b905081810360208301526143d38184613e0c565b90509392505050565b60006020820190506143f16000830184613e6a565b92915050565b600060208201905081810360008301526144118184613eb2565b905092915050565b6000602082019050818103600083015261443281613f9b565b9050919050565b6000602082019050818103600083015261445281613fbe565b9050919050565b6000602082019050818103600083015261447281613fe1565b9050919050565b6000602082019050818103600083015261449281614004565b9050919050565b600060208201905081810360008301526144b281614027565b9050919050565b600060208201905081810360008301526144d28161404a565b9050919050565b600060208201905081810360008301526144f28161406d565b9050919050565b6000602082019050818103600083015261451281614090565b9050919050565b60006020820190508181036000830152614532816140b3565b9050919050565b60006020820190508181036000830152614552816140d6565b9050919050565b60006020820190508181036000830152614572816140f9565b9050919050565b600060208201905081810360008301526145928161411c565b9050919050565b600060208201905081810360008301526145b28161413f565b9050919050565b600060208201905081810360008301526145d281614162565b9050919050565b600060208201905081810360008301526145f281614185565b9050919050565b60006020820190508181036000830152614612816141a8565b9050919050565b60006020820190508181036000830152614632816141cb565b9050919050565b60006020820190508181036000830152614652816141ee565b9050919050565b6000602082019050818103600083015261467281614211565b9050919050565b6000602082019050818103600083015261469281614234565b9050919050565b60006020820190506146ae6000830184614266565b92915050565b60006040820190506146c96000830185614266565b6146d66020830184614266565b9392505050565b60006146e76146f8565b90506146f38282614a76565b919050565b6000604051905090565b600067ffffffffffffffff82111561471d5761471c614bdd565b5b602082029050602081019050919050565b600067ffffffffffffffff82111561474957614748614bdd565b5b602082029050602081019050919050565b600067ffffffffffffffff82111561477557614774614bdd565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156147a1576147a0614bdd565b5b6147aa82614c47565b9050602081019050919050565b600067ffffffffffffffff8211156147d2576147d1614bdd565b5b6147db82614c47565b9050602081019050919050565b6000819050602082019050919050565b60008190508160005260206000209050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b6000614884826149f8565b915061488f836149f8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156148c4576148c3614b21565b5b828201905092915050565b60006148da826149f8565b91506148e5836149f8565b9250826148f5576148f4614b50565b5b828204905092915050565b600061490b826149f8565b9150614916836149f8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561494f5761494e614b21565b5b828202905092915050565b6000614965826149f8565b9150614970836149f8565b92508282101561498357614982614b21565b5b828203905092915050565b6000614999826149d8565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015614a2f578082015181840152602081019050614a14565b83811115614a3e576000848401525b50505050565b60006002820490506001821680614a5c57607f821691505b60208210811415614a7057614a6f614b7f565b5b50919050565b614a7f82614c47565b810181811067ffffffffffffffff82111715614a9e57614a9d614bdd565b5b80604052505050565b6000614ab2826149f8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415614ae557614ae4614b21565b5b600182019050919050565b6000614afb826149f8565b9150614b06836149f8565b925082614b1657614b15614b50565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600060033d1115614c2b5760046000803e614c28600051614c58565b90505b90565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160e01c9050919050565b7f455243313135353a207472616e7366657220746f206e6f6e204552433131353560008201527f526563656976657220696d706c656d656e746572000000000000000000000000602082015250565b7f455243313135353a204552433131353552656365697665722072656a6563746560008201527f6420746f6b656e73000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a2062616c616e636520717565727920666f7220746865207a60008201527f65726f2061646472657373000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a206275726e20616d6f756e7420657863656564732062616c60008201527f616e636500000000000000000000000000000000000000000000000000000000602082015250565b7f4176657261676520546f6b656e20436c61696d206973207061757365642e0000600082015250565b7f4e756d626572206f6620696473206e65656420746f206d61746368206e756d6260008201527f6572206f66206164647265737365730000000000000000000000000000000000602082015250565b7f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260008201527f20617070726f7665640000000000000000000000000000000000000000000000602082015250565b7f455243313135353a207472616e7366657220746f20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a207472616e736665722063616c6c6572206973206e6f742060008201527f6f776e6572206e6f7220617070726f7665640000000000000000000000000000602082015250565b7f455243313135353a206275726e2066726f6d20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a20696e73756666696369656e742062616c616e636520666f60008201527f72207472616e7366657200000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f455243313135353a2073657474696e6720617070726f76616c2073746174757360008201527f20666f722073656c660000000000000000000000000000000000000000000000602082015250565b7f455243313135353a206163636f756e747320616e6420696473206c656e67746860008201527f206d69736d617463680000000000000000000000000000000000000000000000602082015250565b7f455243313135353a2069647320616e6420616d6f756e7473206c656e6774682060008201527f6d69736d61746368000000000000000000000000000000000000000000000000602082015250565b7f4e756d626572206f66202d616d6f756e74732d206e65656420746f206d61746360008201527f68206e756d626572206f66206164647265737365730000000000000000000000602082015250565b7f455243313135353a206d696e7420746f20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f546869732077616c6c657420616c726561647920636c61696d65642e00000000600082015250565b7f496e73756666696369656e742066756e64732100000000000000000000000000600082015250565b600060443d10156152095761528c565b6152116146f8565b60043d036004823e80513d602482011167ffffffffffffffff8211171561523957505061528c565b808201805167ffffffffffffffff811115615257575050505061528c565b80602083010160043d03850181111561527457505050505061528c565b61528382602001850186614a76565b82955050505050505b90565b6152988161498e565b81146152a357600080fd5b50565b6152af816149a0565b81146152ba57600080fd5b50565b6152c6816149ac565b81146152d157600080fd5b50565b6152dd816149f8565b81146152e857600080fd5b5056fea264697066735822122026c538ee0963331d7a1933493a21d9896e4145705a1add57cc272334f06337e164736f6c63430008070033

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

00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000011c37937e08000000000000000000000000000000000000000000000000000002386f26fc100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005668747470733a2f2f7761746368746f7765722e6d7966696c65626173652e636f6d2f697066732f516d55593969706e5a6b69396f3934657a6536787348626b507965674e4b50634575683164535a685364763871782f00000000000000000000

-----Decoded View---------------
Arg [0] : uri_ (string): https://watchtower.myfilebase.com/ipfs/QmUY9ipnZki9o94eze6xsHbkPyegNKPcEuh1dSZhSdv8qx/
Arg [1] : _holderCost (uint256): 5000000000000000
Arg [2] : _publicCost (uint256): 10000000000000000
Arg [3] : _collabCost (uint256): 0

-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [1] : 0000000000000000000000000000000000000000000000000011c37937e08000
Arg [2] : 000000000000000000000000000000000000000000000000002386f26fc10000
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000056
Arg [5] : 68747470733a2f2f7761746368746f7765722e6d7966696c65626173652e636f
Arg [6] : 6d2f697066732f516d55593969706e5a6b69396f3934657a6536787348626b50
Arg [7] : 7965674e4b50634575683164535a685364763871782f00000000000000000000


Deployed Bytecode Sourcemap

435:4546:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2184:231:3;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1207:310;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3409:81:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4027:98;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3066:131;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3775:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4299:102;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3222:155;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4163:98;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3521:100;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4431:77;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4552:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;690:31;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2494:520;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4123:442:3;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3656:79:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;786:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4875:103;;;;;;;;;;;;;:::i;:::-;;2581:524:3;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;654:29:1;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;535:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;624:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;735:353:4;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1714:103:10;;;;;;;;;;;;;:::i;:::-;;846:25:1;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3891:98;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;816:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1063:87:10;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3178:155:3;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4749:91:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;876:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;757:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;573:46;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1963:271;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3405:168:3;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1675:257:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3645:401:3;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1972:201:10;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;406:321:4;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;726:26:1;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2184:231:3;2270:7;2317:1;2298:21;;:7;:21;;;;2290:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;2385:9;:13;2395:2;2385:13;;;;;;;;;;;:22;2399:7;2385:22;;;;;;;;;;;;;;;;2378:29;;2184:231;;;;:::o;1207:310::-;1309:4;1361:26;1346:41;;;:11;:41;;;;:110;;;;1419:37;1404:52;;;:11;:52;;;;1346:110;:163;;;;1473:36;1497:11;1473:23;:36::i;:::-;1346:163;1326:183;;1207:310;;;:::o;3409:81:1:-;1294:12:10;:10;:12::i;:::-;1283:23;;:7;:5;:7::i;:::-;:23;;;1275:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3471:13:1::1;3479:4;3471:7;:13::i;:::-;3409:81:::0;:::o;4027:98::-;1294:12:10;:10;:12::i;:::-;1283:23;;:7;:5;:7::i;:::-;:23;;;1275:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4108:11:1::1;4095:10;:24;;;;4027:98:::0;:::o;3066:131::-;1294:12:10;:10;:12::i;:::-;1283:23;;:7;:5;:7::i;:::-;:23;;;1275:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3164:9:1::1;3147:14;:26;;;;;;;;;;;;:::i;:::-;;3190:1;3180:7;:11;;;;3066:131:::0;:::o;3775:78::-;3819:7;3842:5;;3835:12;;3775:78;:::o;4299:102::-;4349:16;4381:14;4374:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4299:102;:::o;3222:155::-;3275:13;3328:14;3338:3;3328:9;:14::i;:::-;3344;:3;:12;:14::i;:::-;3360:9;3311:59;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3297:74;;3222:155;;;:::o;4163:98::-;1294:12:10;:10;:12::i;:::-;1283:23;;:7;:5;:7::i;:::-;:23;;;1275:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4244:11:1::1;4231:10;:24;;;;4163:98:::0;:::o;3521:100::-;1294:12:10;:10;:12::i;:::-;1283:23;;:7;:5;:7::i;:::-;:23;;;1275:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3605:10:1::1;3593:9;:22;;;;;;;;;;;;:::i;:::-;;3521:100:::0;:::o;4431:77::-;1294:12:10;:10;:12::i;:::-;1283:23;;:7;:5;:7::i;:::-;:23;;;1275:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4496:6:1::1;4487;;:15;;;;;;;;;;;;;;;;;;4431:77:::0;:::o;4552:133::-;1294:12:10;:10;:12::i;:::-;1283:23;;:7;:5;:7::i;:::-;:23;;;1275:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4664:14:1::1;4627:15;;:52;;;;;;;;;;;;;;;;;;4552:133:::0;:::o;690:31::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2494:520::-;1294:12:10;:10;:12::i;:::-;1283:23;;:7;:5;:7::i;:::-;:23;;;1275:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2671:15:1::1;2689:9;:16;2671:34;;2734:3;:10;2720;:24;2712:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;2825:7;:14;2811:10;:28;2803:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;2911:6;2906:103;2927:10;2923:1;:14;2906:103;;;2953:48;2959:9;2969:1;2959:12;;;;;;;;:::i;:::-;;;;;;;;2973:3;2977:1;2973:6;;;;;;;;:::i;:::-;;;;;;;;2981:7;2989:1;2981:10;;;;;;;;:::i;:::-;;;;;;;;2993:4;2998:1;2993:7;;;;;;;;:::i;:::-;;;;;;;;2953:5;:48::i;:::-;2939:3;;;;;:::i;:::-;;;;2906:103;;;;2664:350;2494:520:::0;;;;:::o;4123:442:3:-;4364:12;:10;:12::i;:::-;4356:20;;:4;:20;;;:60;;;;4380:36;4397:4;4403:12;:10;:12::i;:::-;4380:16;:36::i;:::-;4356:60;4334:160;;;;;;;;;;;;:::i;:::-;;;;;;;;;4505:52;4528:4;4534:2;4538:3;4543:7;4552:4;4505:22;:52::i;:::-;4123:442;;;;;:::o;3656:79:1:-;1294:12:10;:10;:12::i;:::-;1283:23;;:7;:5;:7::i;:::-;:23;;;1275:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3722:7:1::1;3714:5;:15;;;;3656:79:::0;:::o;786:25::-;;;;:::o;4875:103::-;1294:12:10;:10;:12::i;:::-;1283:23;;:7;:5;:7::i;:::-;:23;;;1275:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4929:10:1::1;4921:28;;:51;4950:21;4921:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;4875:103::o:0;2581:524:3:-;2737:16;2798:3;:10;2779:8;:15;:29;2771:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;2867:30;2914:8;:15;2900:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2867:63;;2948:9;2943:122;2967:8;:15;2963:1;:19;2943:122;;;3023:30;3033:8;3042:1;3033:11;;;;;;;;:::i;:::-;;;;;;;;3046:3;3050:1;3046:6;;;;;;;;:::i;:::-;;;;;;;;3023:9;:30::i;:::-;3004:13;3018:1;3004:16;;;;;;;;:::i;:::-;;;;;;;:49;;;;;2984:3;;;;:::i;:::-;;;2943:122;;;;3084:13;3077:20;;;2581:524;;;;:::o;654:29:1:-;;;;;;;;;;;;;:::o;535:33::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;624:25::-;;;;;;;;;;;;;:::o;735:353:4:-;911:12;:10;:12::i;:::-;900:23;;:7;:23;;;:66;;;;927:39;944:7;953:12;:10;:12::i;:::-;927:16;:39::i;:::-;900:66;878:157;;;;;;;;;;;;:::i;:::-;;;;;;;;;1048:32;1059:7;1068:3;1073:6;1048:10;:32::i;:::-;735:353;;;:::o;1714:103:10:-;1294:12;:10;:12::i;:::-;1283:23;;:7;:5;:7::i;:::-;:23;;;1275:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1779:30:::1;1806:1;1779:18;:30::i;:::-;1714:103::o:0;846:25:1:-;;;;:::o;3891:98::-;1294:12:10;:10;:12::i;:::-;1283:23;;:7;:5;:7::i;:::-;:23;;;1275:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3972:11:1::1;3959:10;:24;;;;3891:98:::0;:::o;816:25::-;;;;:::o;1063:87:10:-;1109:7;1136:6;;;;;;;;;;;1129:13;;1063:87;:::o;3178:155:3:-;3273:52;3292:12;:10;:12::i;:::-;3306:8;3316;3273:18;:52::i;:::-;3178:155;;:::o;4749:91:1:-;1294:12:10;:10;:12::i;:::-;1283:23;;:7;:5;:7::i;:::-;:23;;;1275:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4824:10:1::1;4812:9;;:22;;;;;;;;;;;;;;;;;;4749:91:::0;:::o;876:28::-;;;;;;;;;;;;;:::o;757:24::-;;;;:::o;573:46::-;;;;;;;;;;;;;;;;;:::o;1963:271::-;1341:6;;;;;;;;;;;1340:7;1332:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;1424:5;;1397:11;:23;1409:10;1397:23;;;;;;;;;;;;;;;;:32;;1389:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2059:11:::1;1602;1574:25;1588:10;1574:13;:25::i;:::-;:39;;;;:::i;:::-;1561:9;:52;;1553:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;2084:9:::2;;;;;;;;;;;2079:64;;2130:5;;2104:11;:23;2116:10;2104:23;;;;;;;;;;;;;;;:31;;;;2079:64;2153:55;2159:10;2171:14;2186:7;;2171:23;;;;;;;;:::i;:::-;;;;;;;;;;2196:1;2153:55;;;;;;;;;;;;;;;;::::0;:5:::2;:55::i;:::-;2215:13;:11;:13::i;:::-;1469:1:::1;1963:271:::0;:::o;3405:168:3:-;3504:4;3528:18;:27;3547:7;3528:27;;;;;;;;;;;;;;;:37;3556:8;3528:37;;;;;;;;;;;;;;;;;;;;;;;;;3521:44;;3405:168;;;;:::o;1675:257:1:-;1733:7;1787:1;1753:15;;;;;;;;;;;:25;;;1779:4;1753:31;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:35;1749:154;;;1806:10;;1799:17;;;;1749:154;1866:1;1834:13;;;;;;;;;;;:23;;;1858:4;1834:29;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:33;1830:73;;;1885:10;;1878:17;;;;1830:73;1916:10;;1909:17;;1675:257;;;;:::o;3645:401:3:-;3861:12;:10;:12::i;:::-;3853:20;;:4;:20;;;:60;;;;3877:36;3894:4;3900:12;:10;:12::i;:::-;3877:16;:36::i;:::-;3853:60;3831:151;;;;;;;;;;;;:::i;:::-;;;;;;;;;3993:45;4011:4;4017:2;4021;4025:6;4033:4;3993:17;:45::i;:::-;3645:401;;;;;:::o;1972:201:10:-;1294:12;:10;:12::i;:::-;1283:23;;:7;:5;:7::i;:::-;:23;;;1275:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2081:1:::1;2061:22;;:8;:22;;;;2053:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2137:28;2156:8;2137:18;:28::i;:::-;1972:201:::0;:::o;406:321:4:-;557:12;:10;:12::i;:::-;546:23;;:7;:23;;;:66;;;;573:39;590:7;599:12;:10;:12::i;:::-;573:16;:39::i;:::-;546:66;524:157;;;;;;;;;;;;:::i;:::-;;;;;;;;;694:25;700:7;709:2;713:5;694;:25::i;:::-;406:321;;;:::o;726:26:1:-;;;;:::o;854:157:5:-;939:4;978:25;963:40;;;:11;:40;;;;956:47;;854:157;;;:::o;656:98:2:-;709:7;736:10;729:17;;656:98;:::o;8125:88:3:-;8199:6;8192:4;:13;;;;;;;;;;;;:::i;:::-;;8125:88;:::o;1928:105::-;1988:13;2021:4;2014:11;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1928:105;;;:::o;342:723:11:-;398:13;628:1;619:5;:10;615:53;;;646:10;;;;;;;;;;;;;;;;;;;;;615:53;678:12;693:5;678:20;;709:14;734:78;749:1;741:4;:9;734:78;;767:8;;;;;:::i;:::-;;;;798:2;790:10;;;;;:::i;:::-;;;734:78;;;822:19;854:6;844:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;822:39;;872:154;888:1;879:5;:10;872:154;;916:1;906:11;;;;;:::i;:::-;;;983:2;975:5;:10;;;;:::i;:::-;962:2;:24;;;;:::i;:::-;949:39;;932:6;939;932:14;;;;;;;;:::i;:::-;;;;;:56;;;;;;;;;;;1012:2;1003:11;;;;;:::i;:::-;;;872:154;;;1050:6;1036:21;;;;;342:723;;;;:::o;8599:569:3:-;8766:1;8752:16;;:2;:16;;;;8744:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;8819:16;8838:12;:10;:12::i;:::-;8819:31;;8863:102;8884:8;8902:1;8906:2;8910:21;8928:2;8910:17;:21::i;:::-;8933:25;8951:6;8933:17;:25::i;:::-;8960:4;8863:20;:102::i;:::-;8999:6;8978:9;:13;8988:2;8978:13;;;;;;;;;;;:17;8992:2;8978:17;;;;;;;;;;;;;;;;:27;;;;;;;:::i;:::-;;;;;;;;9058:2;9021:52;;9054:1;9021:52;;9036:8;9021:52;;;9062:2;9066:6;9021:52;;;;;;;:::i;:::-;;;;;;;;9086:74;9117:8;9135:1;9139:2;9143;9147:6;9155:4;9086:30;:74::i;:::-;8733:435;8599:569;;;;:::o;6207:1074::-;6434:7;:14;6420:3;:10;:28;6412:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;6526:1;6512:16;;:2;:16;;;;6504:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;6583:16;6602:12;:10;:12::i;:::-;6583:31;;6627:60;6648:8;6658:4;6664:2;6668:3;6673:7;6682:4;6627:20;:60::i;:::-;6705:9;6700:421;6724:3;:10;6720:1;:14;6700:421;;;6756:10;6769:3;6773:1;6769:6;;;;;;;;:::i;:::-;;;;;;;;6756:19;;6790:14;6807:7;6815:1;6807:10;;;;;;;;:::i;:::-;;;;;;;;6790:27;;6834:19;6856:9;:13;6866:2;6856:13;;;;;;;;;;;:19;6870:4;6856:19;;;;;;;;;;;;;;;;6834:41;;6913:6;6898:11;:21;;6890:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;7046:6;7032:11;:20;7010:9;:13;7020:2;7010:13;;;;;;;;;;;:19;7024:4;7010:19;;;;;;;;;;;;;;;:42;;;;7103:6;7082:9;:13;7092:2;7082:13;;;;;;;;;;;:17;7096:2;7082:17;;;;;;;;;;;;;;;;:27;;;;;;;:::i;:::-;;;;;;;;6741:380;;;6736:3;;;;:::i;:::-;;;6700:421;;;;7168:2;7138:47;;7162:4;7138:47;;7152:8;7138:47;;;7172:3;7177:7;7138:47;;;;;;;:::i;:::-;;;;;;;;7198:75;7234:8;7244:4;7250:2;7254:3;7259:7;7268:4;7198:35;:75::i;:::-;6401:880;6207:1074;;;;;:::o;11360:891::-;11528:1;11512:18;;:4;:18;;;;11504:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;11603:7;:14;11589:3;:10;:28;11581:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;11675:16;11694:12;:10;:12::i;:::-;11675:31;;11719:66;11740:8;11750:4;11764:1;11768:3;11773:7;11719:66;;;;;;;;;;;;:20;:66::i;:::-;11803:9;11798:373;11822:3;:10;11818:1;:14;11798:373;;;11854:10;11867:3;11871:1;11867:6;;;;;;;;:::i;:::-;;;;;;;;11854:19;;11888:14;11905:7;11913:1;11905:10;;;;;;;;:::i;:::-;;;;;;;;11888:27;;11932:19;11954:9;:13;11964:2;11954:13;;;;;;;;;;;:19;11968:4;11954:19;;;;;;;;;;;;;;;;11932:41;;12011:6;11996:11;:21;;11988:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;12138:6;12124:11;:20;12102:9;:13;12112:2;12102:13;;;;;;;;;;;:19;12116:4;12102:19;;;;;;;;;;;;;;;:42;;;;11839:332;;;11834:3;;;;;:::i;:::-;;;;11798:373;;;;12226:1;12188:55;;12212:4;12188:55;;12202:8;12188:55;;;12230:3;12235:7;12188:55;;;;;;;:::i;:::-;;;;;;;;11493:758;11360:891;;;:::o;2333:191:10:-;2407:16;2426:6;;;;;;;;;;;2407:25;;2452:8;2443:6;;:17;;;;;;;;;;;;;;;;;;2507:8;2476:40;;2497:8;2476:40;;;;;;;;;;;;2396:128;2333:191;:::o;12393:331:3:-;12548:8;12539:17;;:5;:17;;;;12531:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;12651:8;12613:18;:25;12632:5;12613:25;;;;;;;;;;;;;;;:35;12639:8;12613:35;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;12697:8;12675:41;;12690:5;12675:41;;;12707:8;12675:41;;;;;;:::i;:::-;;;;;;;;12393:331;;;:::o;2262:204:1:-;2329:1;2305:14;:21;;;;:25;2301:160;;;2383:1;2359:14;:21;;;;:25;;;;:::i;:::-;2355:1;2345:7;;:11;;;;:::i;:::-;:39;2341:113;;;2407:1;2397:7;:11;;;;2341:113;;;2435:7;;:9;;;;;;;;;:::i;:::-;;;;;;2341:113;2301:160;2262:204::o;5029:820:3:-;5231:1;5217:16;;:2;:16;;;;5209:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;5288:16;5307:12;:10;:12::i;:::-;5288:31;;5332:96;5353:8;5363:4;5369:2;5373:21;5391:2;5373:17;:21::i;:::-;5396:25;5414:6;5396:17;:25::i;:::-;5423:4;5332:20;:96::i;:::-;5441:19;5463:9;:13;5473:2;5463:13;;;;;;;;;;;:19;5477:4;5463:19;;;;;;;;;;;;;;;;5441:41;;5516:6;5501:11;:21;;5493:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;5641:6;5627:11;:20;5605:9;:13;5615:2;5605:13;;;;;;;;;;;:19;5619:4;5605:19;;;;;;;;;;;;;;;:42;;;;5690:6;5669:9;:13;5679:2;5669:13;;;;;;;;;;;:17;5683:2;5669:17;;;;;;;;;;;;;;;;:27;;;;;;;:::i;:::-;;;;;;;;5745:2;5714:46;;5739:4;5714:46;;5729:8;5714:46;;;5749:2;5753:6;5714:46;;;;;;;:::i;:::-;;;;;;;;5773:68;5804:8;5814:4;5820:2;5824;5828:6;5836:4;5773:30;:68::i;:::-;5198:651;;5029:820;;;;;:::o;10509:648::-;10652:1;10636:18;;:4;:18;;;;10628:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;10707:16;10726:12;:10;:12::i;:::-;10707:31;;10751:102;10772:8;10782:4;10796:1;10800:21;10818:2;10800:17;:21::i;:::-;10823:25;10841:6;10823:17;:25::i;:::-;10751:102;;;;;;;;;;;;:20;:102::i;:::-;10866:19;10888:9;:13;10898:2;10888:13;;;;;;;;;;;:19;10902:4;10888:19;;;;;;;;;;;;;;;;10866:41;;10941:6;10926:11;:21;;10918:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;11060:6;11046:11;:20;11024:9;:13;11034:2;11024:13;;;;;;;;;;;:19;11038:4;11024:19;;;;;;;;;;;;;;;:42;;;;11134:1;11095:54;;11120:4;11095:54;;11110:8;11095:54;;;11138:2;11142:6;11095:54;;;;;;;:::i;:::-;;;;;;;;10617:540;;10509:648;;;:::o;15482:198::-;15548:16;15577:22;15616:1;15602:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15577:41;;15640:7;15629:5;15635:1;15629:8;;;;;;;;:::i;:::-;;;;;;;:18;;;;;15667:5;15660:12;;;15482:198;;;:::o;13680:221::-;;;;;;;:::o;13909:744::-;14124:15;:2;:13;;;:15::i;:::-;14120:526;;;14177:2;14160:38;;;14199:8;14209:4;14215:2;14219:6;14227:4;14160:72;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;14156:479;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;14508:6;14501:14;;;;;;;;;;;:::i;:::-;;;;;;;;14156:479;;;14557:62;;;;;;;;;;:::i;:::-;;;;;;;;14156:479;14294:43;;;14282:55;;;:8;:55;;;;14278:154;;14362:50;;;;;;;;;;:::i;:::-;;;;;;;;14278:154;14233:214;14120:526;13909:744;;;;;;:::o;14661:813::-;14901:15;:2;:13;;;:15::i;:::-;14897:570;;;14954:2;14937:43;;;14981:8;14991:4;14997:3;15002:7;15011:4;14937:79;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;14933:523;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;15329:6;15322:14;;;;;;;;;;;:::i;:::-;;;;;;;;14933:523;;;15378:62;;;;;;;;;;:::i;:::-;;;;;;;;14933:523;15110:48;;;15098:60;;;:8;:60;;;;15094:159;;15183:50;;;;;;;;;;:::i;:::-;;;;;;;;15094:159;15017:251;14897:570;14661:813;;;;;;:::o;797:387:0:-;857:4;1065:12;1132:7;1120:20;1112:28;;1175:1;1168:4;:8;1161:15;;;797:387;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;24:722:12:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:143;;;404:79;;:::i;:::-;350:143;517:1;502:238;527:6;524:1;521:13;502:238;;;595:3;624:37;657:3;645:10;624:37;:::i;:::-;619:3;612:50;691:4;686:3;682:14;675:21;;725:4;720:3;716:14;709:21;;562:178;549:1;546;542:9;537:14;;502:238;;;506:14;126:620;;24:722;;;;;:::o;767:954::-;872:5;897:90;913:73;979:6;913:73;:::i;:::-;897:90;:::i;:::-;888:99;;1007:5;1036:6;1029:5;1022:21;1070:4;1063:5;1059:16;1052:23;;1096:6;1146:3;1138:4;1130:6;1126:17;1121:3;1117:27;1114:36;1111:143;;;1165:79;;:::i;:::-;1111:143;1278:1;1263:452;1288:6;1285:1;1282:13;1263:452;;;1370:3;1357:17;1406:18;1393:11;1390:35;1387:122;;;1428:79;;:::i;:::-;1387:122;1552:11;1544:6;1540:24;1590:46;1632:3;1620:10;1590:46;:::i;:::-;1585:3;1578:59;1666:4;1661:3;1657:14;1650:21;;1700:4;1695:3;1691:14;1684:21;;1323:392;;1310:1;1307;1303:9;1298:14;;1263:452;;;1267:14;878:843;;767:954;;;;;:::o;1744:722::-;1840:5;1865:81;1881:64;1938:6;1881:64;:::i;:::-;1865:81;:::i;:::-;1856:90;;1966:5;1995:6;1988:5;1981:21;2029:4;2022:5;2018:16;2011:23;;2055:6;2105:3;2097:4;2089:6;2085:17;2080:3;2076:27;2073:36;2070:143;;;2124:79;;:::i;:::-;2070:143;2237:1;2222:238;2247:6;2244:1;2241:13;2222:238;;;2315:3;2344:37;2377:3;2365:10;2344:37;:::i;:::-;2339:3;2332:50;2411:4;2406:3;2402:14;2395:21;;2445:4;2440:3;2436:14;2429:21;;2282:178;2269:1;2266;2262:9;2257:14;;2222:238;;;2226:14;1846:620;;1744:722;;;;;:::o;2472:410::-;2549:5;2574:65;2590:48;2631:6;2590:48;:::i;:::-;2574:65;:::i;:::-;2565:74;;2662:6;2655:5;2648:21;2700:4;2693:5;2689:16;2738:3;2729:6;2724:3;2720:16;2717:25;2714:112;;;2745:79;;:::i;:::-;2714:112;2835:41;2869:6;2864:3;2859;2835:41;:::i;:::-;2555:327;2472:410;;;;;:::o;2888:412::-;2966:5;2991:66;3007:49;3049:6;3007:49;:::i;:::-;2991:66;:::i;:::-;2982:75;;3080:6;3073:5;3066:21;3118:4;3111:5;3107:16;3156:3;3147:6;3142:3;3138:16;3135:25;3132:112;;;3163:79;;:::i;:::-;3132:112;3253:41;3287:6;3282:3;3277;3253:41;:::i;:::-;2972:328;2888:412;;;;;:::o;3306:139::-;3352:5;3390:6;3377:20;3368:29;;3406:33;3433:5;3406:33;:::i;:::-;3306:139;;;;:::o;3468:370::-;3539:5;3588:3;3581:4;3573:6;3569:17;3565:27;3555:122;;3596:79;;:::i;:::-;3555:122;3713:6;3700:20;3738:94;3828:3;3820:6;3813:4;3805:6;3801:17;3738:94;:::i;:::-;3729:103;;3545:293;3468:370;;;;:::o;3859:388::-;3939:5;3988:3;3981:4;3973:6;3969:17;3965:27;3955:122;;3996:79;;:::i;:::-;3955:122;4113:6;4100:20;4138:103;4237:3;4229:6;4222:4;4214:6;4210:17;4138:103;:::i;:::-;4129:112;;3945:302;3859:388;;;;:::o;4270:370::-;4341:5;4390:3;4383:4;4375:6;4371:17;4367:27;4357:122;;4398:79;;:::i;:::-;4357:122;4515:6;4502:20;4540:94;4630:3;4622:6;4615:4;4607:6;4603:17;4540:94;:::i;:::-;4531:103;;4347:293;4270:370;;;;:::o;4646:133::-;4689:5;4727:6;4714:20;4705:29;;4743:30;4767:5;4743:30;:::i;:::-;4646:133;;;;:::o;4785:137::-;4830:5;4868:6;4855:20;4846:29;;4884:32;4910:5;4884:32;:::i;:::-;4785:137;;;;:::o;4928:141::-;4984:5;5015:6;5009:13;5000:22;;5031:32;5057:5;5031:32;:::i;:::-;4928:141;;;;:::o;5088:338::-;5143:5;5192:3;5185:4;5177:6;5173:17;5169:27;5159:122;;5200:79;;:::i;:::-;5159:122;5317:6;5304:20;5342:78;5416:3;5408:6;5401:4;5393:6;5389:17;5342:78;:::i;:::-;5333:87;;5149:277;5088:338;;;;:::o;5446:340::-;5502:5;5551:3;5544:4;5536:6;5532:17;5528:27;5518:122;;5559:79;;:::i;:::-;5518:122;5676:6;5663:20;5701:79;5776:3;5768:6;5761:4;5753:6;5749:17;5701:79;:::i;:::-;5692:88;;5508:278;5446:340;;;;:::o;5792:139::-;5838:5;5876:6;5863:20;5854:29;;5892:33;5919:5;5892:33;:::i;:::-;5792:139;;;;:::o;5937:143::-;5994:5;6025:6;6019:13;6010:22;;6041:33;6068:5;6041:33;:::i;:::-;5937:143;;;;:::o;6086:329::-;6145:6;6194:2;6182:9;6173:7;6169:23;6165:32;6162:119;;;6200:79;;:::i;:::-;6162:119;6320:1;6345:53;6390:7;6381:6;6370:9;6366:22;6345:53;:::i;:::-;6335:63;;6291:117;6086:329;;;;:::o;6421:474::-;6489:6;6497;6546:2;6534:9;6525:7;6521:23;6517:32;6514:119;;;6552:79;;:::i;:::-;6514:119;6672:1;6697:53;6742:7;6733:6;6722:9;6718:22;6697:53;:::i;:::-;6687:63;;6643:117;6799:2;6825:53;6870:7;6861:6;6850:9;6846:22;6825:53;:::i;:::-;6815:63;;6770:118;6421:474;;;;;:::o;6901:1509::-;7055:6;7063;7071;7079;7087;7136:3;7124:9;7115:7;7111:23;7107:33;7104:120;;;7143:79;;:::i;:::-;7104:120;7263:1;7288:53;7333:7;7324:6;7313:9;7309:22;7288:53;:::i;:::-;7278:63;;7234:117;7390:2;7416:53;7461:7;7452:6;7441:9;7437:22;7416:53;:::i;:::-;7406:63;;7361:118;7546:2;7535:9;7531:18;7518:32;7577:18;7569:6;7566:30;7563:117;;;7599:79;;:::i;:::-;7563:117;7704:78;7774:7;7765:6;7754:9;7750:22;7704:78;:::i;:::-;7694:88;;7489:303;7859:2;7848:9;7844:18;7831:32;7890:18;7882:6;7879:30;7876:117;;;7912:79;;:::i;:::-;7876:117;8017:78;8087:7;8078:6;8067:9;8063:22;8017:78;:::i;:::-;8007:88;;7802:303;8172:3;8161:9;8157:19;8144:33;8204:18;8196:6;8193:30;8190:117;;;8226:79;;:::i;:::-;8190:117;8331:62;8385:7;8376:6;8365:9;8361:22;8331:62;:::i;:::-;8321:72;;8115:288;6901:1509;;;;;;;;:::o;8416:1089::-;8520:6;8528;8536;8544;8552;8601:3;8589:9;8580:7;8576:23;8572:33;8569:120;;;8608:79;;:::i;:::-;8569:120;8728:1;8753:53;8798:7;8789:6;8778:9;8774:22;8753:53;:::i;:::-;8743:63;;8699:117;8855:2;8881:53;8926:7;8917:6;8906:9;8902:22;8881:53;:::i;:::-;8871:63;;8826:118;8983:2;9009:53;9054:7;9045:6;9034:9;9030:22;9009:53;:::i;:::-;8999:63;;8954:118;9111:2;9137:53;9182:7;9173:6;9162:9;9158:22;9137:53;:::i;:::-;9127:63;;9082:118;9267:3;9256:9;9252:19;9239:33;9299:18;9291:6;9288:30;9285:117;;;9321:79;;:::i;:::-;9285:117;9426:62;9480:7;9471:6;9460:9;9456:22;9426:62;:::i;:::-;9416:72;;9210:288;8416:1089;;;;;;;;:::o;9511:1039::-;9638:6;9646;9654;9703:2;9691:9;9682:7;9678:23;9674:32;9671:119;;;9709:79;;:::i;:::-;9671:119;9829:1;9854:53;9899:7;9890:6;9879:9;9875:22;9854:53;:::i;:::-;9844:63;;9800:117;9984:2;9973:9;9969:18;9956:32;10015:18;10007:6;10004:30;10001:117;;;10037:79;;:::i;:::-;10001:117;10142:78;10212:7;10203:6;10192:9;10188:22;10142:78;:::i;:::-;10132:88;;9927:303;10297:2;10286:9;10282:18;10269:32;10328:18;10320:6;10317:30;10314:117;;;10350:79;;:::i;:::-;10314:117;10455:78;10525:7;10516:6;10505:9;10501:22;10455:78;:::i;:::-;10445:88;;10240:303;9511:1039;;;;;:::o;10556:468::-;10621:6;10629;10678:2;10666:9;10657:7;10653:23;10649:32;10646:119;;;10684:79;;:::i;:::-;10646:119;10804:1;10829:53;10874:7;10865:6;10854:9;10850:22;10829:53;:::i;:::-;10819:63;;10775:117;10931:2;10957:50;10999:7;10990:6;10979:9;10975:22;10957:50;:::i;:::-;10947:60;;10902:115;10556:468;;;;;:::o;11030:474::-;11098:6;11106;11155:2;11143:9;11134:7;11130:23;11126:32;11123:119;;;11161:79;;:::i;:::-;11123:119;11281:1;11306:53;11351:7;11342:6;11331:9;11327:22;11306:53;:::i;:::-;11296:63;;11252:117;11408:2;11434:53;11479:7;11470:6;11459:9;11455:22;11434:53;:::i;:::-;11424:63;;11379:118;11030:474;;;;;:::o;11510:619::-;11587:6;11595;11603;11652:2;11640:9;11631:7;11627:23;11623:32;11620:119;;;11658:79;;:::i;:::-;11620:119;11778:1;11803:53;11848:7;11839:6;11828:9;11824:22;11803:53;:::i;:::-;11793:63;;11749:117;11905:2;11931:53;11976:7;11967:6;11956:9;11952:22;11931:53;:::i;:::-;11921:63;;11876:118;12033:2;12059:53;12104:7;12095:6;12084:9;12080:22;12059:53;:::i;:::-;12049:63;;12004:118;11510:619;;;;;:::o;12135:894::-;12253:6;12261;12310:2;12298:9;12289:7;12285:23;12281:32;12278:119;;;12316:79;;:::i;:::-;12278:119;12464:1;12453:9;12449:17;12436:31;12494:18;12486:6;12483:30;12480:117;;;12516:79;;:::i;:::-;12480:117;12621:78;12691:7;12682:6;12671:9;12667:22;12621:78;:::i;:::-;12611:88;;12407:302;12776:2;12765:9;12761:18;12748:32;12807:18;12799:6;12796:30;12793:117;;;12829:79;;:::i;:::-;12793:117;12934:78;13004:7;12995:6;12984:9;12980:22;12934:78;:::i;:::-;12924:88;;12719:303;12135:894;;;;;:::o;13035:1623::-;13230:6;13238;13246;13254;13303:3;13291:9;13282:7;13278:23;13274:33;13271:120;;;13310:79;;:::i;:::-;13271:120;13458:1;13447:9;13443:17;13430:31;13488:18;13480:6;13477:30;13474:117;;;13510:79;;:::i;:::-;13474:117;13615:78;13685:7;13676:6;13665:9;13661:22;13615:78;:::i;:::-;13605:88;;13401:302;13770:2;13759:9;13755:18;13742:32;13801:18;13793:6;13790:30;13787:117;;;13823:79;;:::i;:::-;13787:117;13928:78;13998:7;13989:6;13978:9;13974:22;13928:78;:::i;:::-;13918:88;;13713:303;14083:2;14072:9;14068:18;14055:32;14114:18;14106:6;14103:30;14100:117;;;14136:79;;:::i;:::-;14100:117;14241:78;14311:7;14302:6;14291:9;14287:22;14241:78;:::i;:::-;14231:88;;14026:303;14396:2;14385:9;14381:18;14368:32;14427:18;14419:6;14416:30;14413:117;;;14449:79;;:::i;:::-;14413:117;14554:87;14633:7;14624:6;14613:9;14609:22;14554:87;:::i;:::-;14544:97;;14339:312;13035:1623;;;;;;;:::o;14664:539::-;14748:6;14797:2;14785:9;14776:7;14772:23;14768:32;14765:119;;;14803:79;;:::i;:::-;14765:119;14951:1;14940:9;14936:17;14923:31;14981:18;14973:6;14970:30;14967:117;;;15003:79;;:::i;:::-;14967:117;15108:78;15178:7;15169:6;15158:9;15154:22;15108:78;:::i;:::-;15098:88;;14894:302;14664:539;;;;:::o;15209:323::-;15265:6;15314:2;15302:9;15293:7;15289:23;15285:32;15282:119;;;15320:79;;:::i;:::-;15282:119;15440:1;15465:50;15507:7;15498:6;15487:9;15483:22;15465:50;:::i;:::-;15455:60;;15411:114;15209:323;;;;:::o;15538:327::-;15596:6;15645:2;15633:9;15624:7;15620:23;15616:32;15613:119;;;15651:79;;:::i;:::-;15613:119;15771:1;15796:52;15840:7;15831:6;15820:9;15816:22;15796:52;:::i;:::-;15786:62;;15742:116;15538:327;;;;:::o;15871:349::-;15940:6;15989:2;15977:9;15968:7;15964:23;15960:32;15957:119;;;15995:79;;:::i;:::-;15957:119;16115:1;16140:63;16195:7;16186:6;16175:9;16171:22;16140:63;:::i;:::-;16130:73;;16086:127;15871:349;;;;:::o;16226:509::-;16295:6;16344:2;16332:9;16323:7;16319:23;16315:32;16312:119;;;16350:79;;:::i;:::-;16312:119;16498:1;16487:9;16483:17;16470:31;16528:18;16520:6;16517:30;16514:117;;;16550:79;;:::i;:::-;16514:117;16655:63;16710:7;16701:6;16690:9;16686:22;16655:63;:::i;:::-;16645:73;;16441:287;16226:509;;;;:::o;16741:329::-;16800:6;16849:2;16837:9;16828:7;16824:23;16820:32;16817:119;;;16855:79;;:::i;:::-;16817:119;16975:1;17000:53;17045:7;17036:6;17025:9;17021:22;17000:53;:::i;:::-;16990:63;;16946:117;16741:329;;;;:::o;17076:351::-;17146:6;17195:2;17183:9;17174:7;17170:23;17166:32;17163:119;;;17201:79;;:::i;:::-;17163:119;17321:1;17346:64;17402:7;17393:6;17382:9;17378:22;17346:64;:::i;:::-;17336:74;;17292:128;17076:351;;;;:::o;17433:179::-;17502:10;17523:46;17565:3;17557:6;17523:46;:::i;:::-;17601:4;17596:3;17592:14;17578:28;;17433:179;;;;:::o;17618:118::-;17705:24;17723:5;17705:24;:::i;:::-;17700:3;17693:37;17618:118;;:::o;17772:732::-;17891:3;17920:54;17968:5;17920:54;:::i;:::-;17990:86;18069:6;18064:3;17990:86;:::i;:::-;17983:93;;18100:56;18150:5;18100:56;:::i;:::-;18179:7;18210:1;18195:284;18220:6;18217:1;18214:13;18195:284;;;18296:6;18290:13;18323:63;18382:3;18367:13;18323:63;:::i;:::-;18316:70;;18409:60;18462:6;18409:60;:::i;:::-;18399:70;;18255:224;18242:1;18239;18235:9;18230:14;;18195:284;;;18199:14;18495:3;18488:10;;17896:608;;;17772:732;;;;:::o;18510:109::-;18591:21;18606:5;18591:21;:::i;:::-;18586:3;18579:34;18510:109;;:::o;18625:360::-;18711:3;18739:38;18771:5;18739:38;:::i;:::-;18793:70;18856:6;18851:3;18793:70;:::i;:::-;18786:77;;18872:52;18917:6;18912:3;18905:4;18898:5;18894:16;18872:52;:::i;:::-;18949:29;18971:6;18949:29;:::i;:::-;18944:3;18940:39;18933:46;;18715:270;18625:360;;;;:::o;18991:364::-;19079:3;19107:39;19140:5;19107:39;:::i;:::-;19162:71;19226:6;19221:3;19162:71;:::i;:::-;19155:78;;19242:52;19287:6;19282:3;19275:4;19268:5;19264:16;19242:52;:::i;:::-;19319:29;19341:6;19319:29;:::i;:::-;19314:3;19310:39;19303:46;;19083:272;18991:364;;;;:::o;19361:377::-;19467:3;19495:39;19528:5;19495:39;:::i;:::-;19550:89;19632:6;19627:3;19550:89;:::i;:::-;19543:96;;19648:52;19693:6;19688:3;19681:4;19674:5;19670:16;19648:52;:::i;:::-;19725:6;19720:3;19716:16;19709:23;;19471:267;19361:377;;;;:::o;19768:845::-;19871:3;19908:5;19902:12;19937:36;19963:9;19937:36;:::i;:::-;19989:89;20071:6;20066:3;19989:89;:::i;:::-;19982:96;;20109:1;20098:9;20094:17;20125:1;20120:137;;;;20271:1;20266:341;;;;20087:520;;20120:137;20204:4;20200:9;20189;20185:25;20180:3;20173:38;20240:6;20235:3;20231:16;20224:23;;20120:137;;20266:341;20333:38;20365:5;20333:38;:::i;:::-;20393:1;20407:154;20421:6;20418:1;20415:13;20407:154;;;20495:7;20489:14;20485:1;20480:3;20476:11;20469:35;20545:1;20536:7;20532:15;20521:26;;20443:4;20440:1;20436:12;20431:17;;20407:154;;;20590:6;20585:3;20581:16;20574:23;;20273:334;;20087:520;;19875:738;;19768:845;;;;:::o;20619:366::-;20761:3;20782:67;20846:2;20841:3;20782:67;:::i;:::-;20775:74;;20858:93;20947:3;20858:93;:::i;:::-;20976:2;20971:3;20967:12;20960:19;;20619:366;;;:::o;20991:::-;21133:3;21154:67;21218:2;21213:3;21154:67;:::i;:::-;21147:74;;21230:93;21319:3;21230:93;:::i;:::-;21348:2;21343:3;21339:12;21332:19;;20991:366;;;:::o;21363:::-;21505:3;21526:67;21590:2;21585:3;21526:67;:::i;:::-;21519:74;;21602:93;21691:3;21602:93;:::i;:::-;21720:2;21715:3;21711:12;21704:19;;21363:366;;;:::o;21735:::-;21877:3;21898:67;21962:2;21957:3;21898:67;:::i;:::-;21891:74;;21974:93;22063:3;21974:93;:::i;:::-;22092:2;22087:3;22083:12;22076:19;;21735:366;;;:::o;22107:::-;22249:3;22270:67;22334:2;22329:3;22270:67;:::i;:::-;22263:74;;22346:93;22435:3;22346:93;:::i;:::-;22464:2;22459:3;22455:12;22448:19;;22107:366;;;:::o;22479:::-;22621:3;22642:67;22706:2;22701:3;22642:67;:::i;:::-;22635:74;;22718:93;22807:3;22718:93;:::i;:::-;22836:2;22831:3;22827:12;22820:19;;22479:366;;;:::o;22851:::-;22993:3;23014:67;23078:2;23073:3;23014:67;:::i;:::-;23007:74;;23090:93;23179:3;23090:93;:::i;:::-;23208:2;23203:3;23199:12;23192:19;;22851:366;;;:::o;23223:::-;23365:3;23386:67;23450:2;23445:3;23386:67;:::i;:::-;23379:74;;23462:93;23551:3;23462:93;:::i;:::-;23580:2;23575:3;23571:12;23564:19;;23223:366;;;:::o;23595:::-;23737:3;23758:67;23822:2;23817:3;23758:67;:::i;:::-;23751:74;;23834:93;23923:3;23834:93;:::i;:::-;23952:2;23947:3;23943:12;23936:19;;23595:366;;;:::o;23967:::-;24109:3;24130:67;24194:2;24189:3;24130:67;:::i;:::-;24123:74;;24206:93;24295:3;24206:93;:::i;:::-;24324:2;24319:3;24315:12;24308:19;;23967:366;;;:::o;24339:::-;24481:3;24502:67;24566:2;24561:3;24502:67;:::i;:::-;24495:74;;24578:93;24667:3;24578:93;:::i;:::-;24696:2;24691:3;24687:12;24680:19;;24339:366;;;:::o;24711:::-;24853:3;24874:67;24938:2;24933:3;24874:67;:::i;:::-;24867:74;;24950:93;25039:3;24950:93;:::i;:::-;25068:2;25063:3;25059:12;25052:19;;24711:366;;;:::o;25083:::-;25225:3;25246:67;25310:2;25305:3;25246:67;:::i;:::-;25239:74;;25322:93;25411:3;25322:93;:::i;:::-;25440:2;25435:3;25431:12;25424:19;;25083:366;;;:::o;25455:::-;25597:3;25618:67;25682:2;25677:3;25618:67;:::i;:::-;25611:74;;25694:93;25783:3;25694:93;:::i;:::-;25812:2;25807:3;25803:12;25796:19;;25455:366;;;:::o;25827:::-;25969:3;25990:67;26054:2;26049:3;25990:67;:::i;:::-;25983:74;;26066:93;26155:3;26066:93;:::i;:::-;26184:2;26179:3;26175:12;26168:19;;25827:366;;;:::o;26199:::-;26341:3;26362:67;26426:2;26421:3;26362:67;:::i;:::-;26355:74;;26438:93;26527:3;26438:93;:::i;:::-;26556:2;26551:3;26547:12;26540:19;;26199:366;;;:::o;26571:::-;26713:3;26734:67;26798:2;26793:3;26734:67;:::i;:::-;26727:74;;26810:93;26899:3;26810:93;:::i;:::-;26928:2;26923:3;26919:12;26912:19;;26571:366;;;:::o;26943:::-;27085:3;27106:67;27170:2;27165:3;27106:67;:::i;:::-;27099:74;;27182:93;27271:3;27182:93;:::i;:::-;27300:2;27295:3;27291:12;27284:19;;26943:366;;;:::o;27315:::-;27457:3;27478:67;27542:2;27537:3;27478:67;:::i;:::-;27471:74;;27554:93;27643:3;27554:93;:::i;:::-;27672:2;27667:3;27663:12;27656:19;;27315:366;;;:::o;27687:::-;27829:3;27850:67;27914:2;27909:3;27850:67;:::i;:::-;27843:74;;27926:93;28015:3;27926:93;:::i;:::-;28044:2;28039:3;28035:12;28028:19;;27687:366;;;:::o;28059:108::-;28136:24;28154:5;28136:24;:::i;:::-;28131:3;28124:37;28059:108;;:::o;28173:118::-;28260:24;28278:5;28260:24;:::i;:::-;28255:3;28248:37;28173:118;;:::o;28297:589::-;28522:3;28544:95;28635:3;28626:6;28544:95;:::i;:::-;28537:102;;28656:95;28747:3;28738:6;28656:95;:::i;:::-;28649:102;;28768:92;28856:3;28847:6;28768:92;:::i;:::-;28761:99;;28877:3;28870:10;;28297:589;;;;;;:::o;28892:222::-;28985:4;29023:2;29012:9;29008:18;29000:26;;29036:71;29104:1;29093:9;29089:17;29080:6;29036:71;:::i;:::-;28892:222;;;;:::o;29120:1053::-;29443:4;29481:3;29470:9;29466:19;29458:27;;29495:71;29563:1;29552:9;29548:17;29539:6;29495:71;:::i;:::-;29576:72;29644:2;29633:9;29629:18;29620:6;29576:72;:::i;:::-;29695:9;29689:4;29685:20;29680:2;29669:9;29665:18;29658:48;29723:108;29826:4;29817:6;29723:108;:::i;:::-;29715:116;;29878:9;29872:4;29868:20;29863:2;29852:9;29848:18;29841:48;29906:108;30009:4;30000:6;29906:108;:::i;:::-;29898:116;;30062:9;30056:4;30052:20;30046:3;30035:9;30031:19;30024:49;30090:76;30161:4;30152:6;30090:76;:::i;:::-;30082:84;;29120:1053;;;;;;;;:::o;30179:751::-;30402:4;30440:3;30429:9;30425:19;30417:27;;30454:71;30522:1;30511:9;30507:17;30498:6;30454:71;:::i;:::-;30535:72;30603:2;30592:9;30588:18;30579:6;30535:72;:::i;:::-;30617;30685:2;30674:9;30670:18;30661:6;30617:72;:::i;:::-;30699;30767:2;30756:9;30752:18;30743:6;30699:72;:::i;:::-;30819:9;30813:4;30809:20;30803:3;30792:9;30788:19;30781:49;30847:76;30918:4;30909:6;30847:76;:::i;:::-;30839:84;;30179:751;;;;;;;;:::o;30936:373::-;31079:4;31117:2;31106:9;31102:18;31094:26;;31166:9;31160:4;31156:20;31152:1;31141:9;31137:17;31130:47;31194:108;31297:4;31288:6;31194:108;:::i;:::-;31186:116;;30936:373;;;;:::o;31315:634::-;31536:4;31574:2;31563:9;31559:18;31551:26;;31623:9;31617:4;31613:20;31609:1;31598:9;31594:17;31587:47;31651:108;31754:4;31745:6;31651:108;:::i;:::-;31643:116;;31806:9;31800:4;31796:20;31791:2;31780:9;31776:18;31769:48;31834:108;31937:4;31928:6;31834:108;:::i;:::-;31826:116;;31315:634;;;;;:::o;31955:210::-;32042:4;32080:2;32069:9;32065:18;32057:26;;32093:65;32155:1;32144:9;32140:17;32131:6;32093:65;:::i;:::-;31955:210;;;;:::o;32171:313::-;32284:4;32322:2;32311:9;32307:18;32299:26;;32371:9;32365:4;32361:20;32357:1;32346:9;32342:17;32335:47;32399:78;32472:4;32463:6;32399:78;:::i;:::-;32391:86;;32171:313;;;;:::o;32490:419::-;32656:4;32694:2;32683:9;32679:18;32671:26;;32743:9;32737:4;32733:20;32729:1;32718:9;32714:17;32707:47;32771:131;32897:4;32771:131;:::i;:::-;32763:139;;32490:419;;;:::o;32915:::-;33081:4;33119:2;33108:9;33104:18;33096:26;;33168:9;33162:4;33158:20;33154:1;33143:9;33139:17;33132:47;33196:131;33322:4;33196:131;:::i;:::-;33188:139;;32915:419;;;:::o;33340:::-;33506:4;33544:2;33533:9;33529:18;33521:26;;33593:9;33587:4;33583:20;33579:1;33568:9;33564:17;33557:47;33621:131;33747:4;33621:131;:::i;:::-;33613:139;;33340:419;;;:::o;33765:::-;33931:4;33969:2;33958:9;33954:18;33946:26;;34018:9;34012:4;34008:20;34004:1;33993:9;33989:17;33982:47;34046:131;34172:4;34046:131;:::i;:::-;34038:139;;33765:419;;;:::o;34190:::-;34356:4;34394:2;34383:9;34379:18;34371:26;;34443:9;34437:4;34433:20;34429:1;34418:9;34414:17;34407:47;34471:131;34597:4;34471:131;:::i;:::-;34463:139;;34190:419;;;:::o;34615:::-;34781:4;34819:2;34808:9;34804:18;34796:26;;34868:9;34862:4;34858:20;34854:1;34843:9;34839:17;34832:47;34896:131;35022:4;34896:131;:::i;:::-;34888:139;;34615:419;;;:::o;35040:::-;35206:4;35244:2;35233:9;35229:18;35221:26;;35293:9;35287:4;35283:20;35279:1;35268:9;35264:17;35257:47;35321:131;35447:4;35321:131;:::i;:::-;35313:139;;35040:419;;;:::o;35465:::-;35631:4;35669:2;35658:9;35654:18;35646:26;;35718:9;35712:4;35708:20;35704:1;35693:9;35689:17;35682:47;35746:131;35872:4;35746:131;:::i;:::-;35738:139;;35465:419;;;:::o;35890:::-;36056:4;36094:2;36083:9;36079:18;36071:26;;36143:9;36137:4;36133:20;36129:1;36118:9;36114:17;36107:47;36171:131;36297:4;36171:131;:::i;:::-;36163:139;;35890:419;;;:::o;36315:::-;36481:4;36519:2;36508:9;36504:18;36496:26;;36568:9;36562:4;36558:20;36554:1;36543:9;36539:17;36532:47;36596:131;36722:4;36596:131;:::i;:::-;36588:139;;36315:419;;;:::o;36740:::-;36906:4;36944:2;36933:9;36929:18;36921:26;;36993:9;36987:4;36983:20;36979:1;36968:9;36964:17;36957:47;37021:131;37147:4;37021:131;:::i;:::-;37013:139;;36740:419;;;:::o;37165:::-;37331:4;37369:2;37358:9;37354:18;37346:26;;37418:9;37412:4;37408:20;37404:1;37393:9;37389:17;37382:47;37446:131;37572:4;37446:131;:::i;:::-;37438:139;;37165:419;;;:::o;37590:::-;37756:4;37794:2;37783:9;37779:18;37771:26;;37843:9;37837:4;37833:20;37829:1;37818:9;37814:17;37807:47;37871:131;37997:4;37871:131;:::i;:::-;37863:139;;37590:419;;;:::o;38015:::-;38181:4;38219:2;38208:9;38204:18;38196:26;;38268:9;38262:4;38258:20;38254:1;38243:9;38239:17;38232:47;38296:131;38422:4;38296:131;:::i;:::-;38288:139;;38015:419;;;:::o;38440:::-;38606:4;38644:2;38633:9;38629:18;38621:26;;38693:9;38687:4;38683:20;38679:1;38668:9;38664:17;38657:47;38721:131;38847:4;38721:131;:::i;:::-;38713:139;;38440:419;;;:::o;38865:::-;39031:4;39069:2;39058:9;39054:18;39046:26;;39118:9;39112:4;39108:20;39104:1;39093:9;39089:17;39082:47;39146:131;39272:4;39146:131;:::i;:::-;39138:139;;38865:419;;;:::o;39290:::-;39456:4;39494:2;39483:9;39479:18;39471:26;;39543:9;39537:4;39533:20;39529:1;39518:9;39514:17;39507:47;39571:131;39697:4;39571:131;:::i;:::-;39563:139;;39290:419;;;:::o;39715:::-;39881:4;39919:2;39908:9;39904:18;39896:26;;39968:9;39962:4;39958:20;39954:1;39943:9;39939:17;39932:47;39996:131;40122:4;39996:131;:::i;:::-;39988:139;;39715:419;;;:::o;40140:::-;40306:4;40344:2;40333:9;40329:18;40321:26;;40393:9;40387:4;40383:20;40379:1;40368:9;40364:17;40357:47;40421:131;40547:4;40421:131;:::i;:::-;40413:139;;40140:419;;;:::o;40565:::-;40731:4;40769:2;40758:9;40754:18;40746:26;;40818:9;40812:4;40808:20;40804:1;40793:9;40789:17;40782:47;40846:131;40972:4;40846:131;:::i;:::-;40838:139;;40565:419;;;:::o;40990:222::-;41083:4;41121:2;41110:9;41106:18;41098:26;;41134:71;41202:1;41191:9;41187:17;41178:6;41134:71;:::i;:::-;40990:222;;;;:::o;41218:332::-;41339:4;41377:2;41366:9;41362:18;41354:26;;41390:71;41458:1;41447:9;41443:17;41434:6;41390:71;:::i;:::-;41471:72;41539:2;41528:9;41524:18;41515:6;41471:72;:::i;:::-;41218:332;;;;;:::o;41556:129::-;41590:6;41617:20;;:::i;:::-;41607:30;;41646:33;41674:4;41666:6;41646:33;:::i;:::-;41556:129;;;:::o;41691:75::-;41724:6;41757:2;41751:9;41741:19;;41691:75;:::o;41772:311::-;41849:4;41939:18;41931:6;41928:30;41925:56;;;41961:18;;:::i;:::-;41925:56;42011:4;42003:6;41999:17;41991:25;;42071:4;42065;42061:15;42053:23;;41772:311;;;:::o;42089:320::-;42175:4;42265:18;42257:6;42254:30;42251:56;;;42287:18;;:::i;:::-;42251:56;42337:4;42329:6;42325:17;42317:25;;42397:4;42391;42387:15;42379:23;;42089:320;;;:::o;42415:311::-;42492:4;42582:18;42574:6;42571:30;42568:56;;;42604:18;;:::i;:::-;42568:56;42654:4;42646:6;42642:17;42634:25;;42714:4;42708;42704:15;42696:23;;42415:311;;;:::o;42732:307::-;42793:4;42883:18;42875:6;42872:30;42869:56;;;42905:18;;:::i;:::-;42869:56;42943:29;42965:6;42943:29;:::i;:::-;42935:37;;43027:4;43021;43017:15;43009:23;;42732:307;;;:::o;43045:308::-;43107:4;43197:18;43189:6;43186:30;43183:56;;;43219:18;;:::i;:::-;43183:56;43257:29;43279:6;43257:29;:::i;:::-;43249:37;;43341:4;43335;43331:15;43323:23;;43045:308;;;:::o;43359:132::-;43426:4;43449:3;43441:11;;43479:4;43474:3;43470:14;43462:22;;43359:132;;;:::o;43497:141::-;43546:4;43569:3;43561:11;;43592:3;43589:1;43582:14;43626:4;43623:1;43613:18;43605:26;;43497:141;;;:::o;43644:114::-;43711:6;43745:5;43739:12;43729:22;;43644:114;;;:::o;43764:98::-;43815:6;43849:5;43843:12;43833:22;;43764:98;;;:::o;43868:99::-;43920:6;43954:5;43948:12;43938:22;;43868:99;;;:::o;43973:113::-;44043:4;44075;44070:3;44066:14;44058:22;;43973:113;;;:::o;44092:184::-;44191:11;44225:6;44220:3;44213:19;44265:4;44260:3;44256:14;44241:29;;44092:184;;;;:::o;44282:168::-;44365:11;44399:6;44394:3;44387:19;44439:4;44434:3;44430:14;44415:29;;44282:168;;;;:::o;44456:169::-;44540:11;44574:6;44569:3;44562:19;44614:4;44609:3;44605:14;44590:29;;44456:169;;;;:::o;44631:148::-;44733:11;44770:3;44755:18;;44631:148;;;;:::o;44785:305::-;44825:3;44844:20;44862:1;44844:20;:::i;:::-;44839:25;;44878:20;44896:1;44878:20;:::i;:::-;44873:25;;45032:1;44964:66;44960:74;44957:1;44954:81;44951:107;;;45038:18;;:::i;:::-;44951:107;45082:1;45079;45075:9;45068:16;;44785:305;;;;:::o;45096:185::-;45136:1;45153:20;45171:1;45153:20;:::i;:::-;45148:25;;45187:20;45205:1;45187:20;:::i;:::-;45182:25;;45226:1;45216:35;;45231:18;;:::i;:::-;45216:35;45273:1;45270;45266:9;45261:14;;45096:185;;;;:::o;45287:348::-;45327:7;45350:20;45368:1;45350:20;:::i;:::-;45345:25;;45384:20;45402:1;45384:20;:::i;:::-;45379:25;;45572:1;45504:66;45500:74;45497:1;45494:81;45489:1;45482:9;45475:17;45471:105;45468:131;;;45579:18;;:::i;:::-;45468:131;45627:1;45624;45620:9;45609:20;;45287:348;;;;:::o;45641:191::-;45681:4;45701:20;45719:1;45701:20;:::i;:::-;45696:25;;45735:20;45753:1;45735:20;:::i;:::-;45730:25;;45774:1;45771;45768:8;45765:34;;;45779:18;;:::i;:::-;45765:34;45824:1;45821;45817:9;45809:17;;45641:191;;;;:::o;45838:96::-;45875:7;45904:24;45922:5;45904:24;:::i;:::-;45893:35;;45838:96;;;:::o;45940:90::-;45974:7;46017:5;46010:13;46003:21;45992:32;;45940:90;;;:::o;46036:149::-;46072:7;46112:66;46105:5;46101:78;46090:89;;46036:149;;;:::o;46191:126::-;46228:7;46268:42;46261:5;46257:54;46246:65;;46191:126;;;:::o;46323:77::-;46360:7;46389:5;46378:16;;46323:77;;;:::o;46406:154::-;46490:6;46485:3;46480;46467:30;46552:1;46543:6;46538:3;46534:16;46527:27;46406:154;;;:::o;46566:307::-;46634:1;46644:113;46658:6;46655:1;46652:13;46644:113;;;46743:1;46738:3;46734:11;46728:18;46724:1;46719:3;46715:11;46708:39;46680:2;46677:1;46673:10;46668:15;;46644:113;;;46775:6;46772:1;46769:13;46766:101;;;46855:1;46846:6;46841:3;46837:16;46830:27;46766:101;46615:258;46566:307;;;:::o;46879:320::-;46923:6;46960:1;46954:4;46950:12;46940:22;;47007:1;47001:4;46997:12;47028:18;47018:81;;47084:4;47076:6;47072:17;47062:27;;47018:81;47146:2;47138:6;47135:14;47115:18;47112:38;47109:84;;;47165:18;;:::i;:::-;47109:84;46930:269;46879:320;;;:::o;47205:281::-;47288:27;47310:4;47288:27;:::i;:::-;47280:6;47276:40;47418:6;47406:10;47403:22;47382:18;47370:10;47367:34;47364:62;47361:88;;;47429:18;;:::i;:::-;47361:88;47469:10;47465:2;47458:22;47248:238;47205:281;;:::o;47492:233::-;47531:3;47554:24;47572:5;47554:24;:::i;:::-;47545:33;;47600:66;47593:5;47590:77;47587:103;;;47670:18;;:::i;:::-;47587:103;47717:1;47710:5;47706:13;47699:20;;47492:233;;;:::o;47731:176::-;47763:1;47780:20;47798:1;47780:20;:::i;:::-;47775:25;;47814:20;47832:1;47814:20;:::i;:::-;47809:25;;47853:1;47843:35;;47858:18;;:::i;:::-;47843:35;47899:1;47896;47892:9;47887:14;;47731:176;;;;:::o;47913:180::-;47961:77;47958:1;47951:88;48058:4;48055:1;48048:15;48082:4;48079:1;48072:15;48099:180;48147:77;48144:1;48137:88;48244:4;48241:1;48234:15;48268:4;48265:1;48258:15;48285:180;48333:77;48330:1;48323:88;48430:4;48427:1;48420:15;48454:4;48451:1;48444:15;48471:180;48519:77;48516:1;48509:88;48616:4;48613:1;48606:15;48640:4;48637:1;48630:15;48657:180;48705:77;48702:1;48695:88;48802:4;48799:1;48792:15;48826:4;48823:1;48816:15;48843:183;48878:3;48916:1;48898:16;48895:23;48892:128;;;48954:1;48951;48948;48933:23;48976:34;49007:1;49001:8;48976:34;:::i;:::-;48969:41;;48892:128;48843:183;:::o;49032:117::-;49141:1;49138;49131:12;49155:117;49264:1;49261;49254:12;49278:117;49387:1;49384;49377:12;49401:117;49510:1;49507;49500:12;49524:117;49633:1;49630;49623:12;49647:102;49688:6;49739:2;49735:7;49730:2;49723:5;49719:14;49715:28;49705:38;;49647:102;;;:::o;49755:106::-;49799:8;49848:5;49843:3;49839:15;49818:36;;49755:106;;;:::o;49867:239::-;50007:34;50003:1;49995:6;49991:14;49984:58;50076:22;50071:2;50063:6;50059:15;50052:47;49867:239;:::o;50112:227::-;50252:34;50248:1;50240:6;50236:14;50229:58;50321:10;50316:2;50308:6;50304:15;50297:35;50112:227;:::o;50345:230::-;50485:34;50481:1;50473:6;50469:14;50462:58;50554:13;50549:2;50541:6;50537:15;50530:38;50345:230;:::o;50581:225::-;50721:34;50717:1;50709:6;50705:14;50698:58;50790:8;50785:2;50777:6;50773:15;50766:33;50581:225;:::o;50812:223::-;50952:34;50948:1;50940:6;50936:14;50929:58;51021:6;51016:2;51008:6;51004:15;50997:31;50812:223;:::o;51041:180::-;51181:32;51177:1;51169:6;51165:14;51158:56;51041:180;:::o;51227:234::-;51367:34;51363:1;51355:6;51351:14;51344:58;51436:17;51431:2;51423:6;51419:15;51412:42;51227:234;:::o;51467:228::-;51607:34;51603:1;51595:6;51591:14;51584:58;51676:11;51671:2;51663:6;51659:15;51652:36;51467:228;:::o;51701:224::-;51841:34;51837:1;51829:6;51825:14;51818:58;51910:7;51905:2;51897:6;51893:15;51886:32;51701:224;:::o;51931:237::-;52071:34;52067:1;52059:6;52055:14;52048:58;52140:20;52135:2;52127:6;52123:15;52116:45;51931:237;:::o;52174:222::-;52314:34;52310:1;52302:6;52298:14;52291:58;52383:5;52378:2;52370:6;52366:15;52359:30;52174:222;:::o;52402:229::-;52542:34;52538:1;52530:6;52526:14;52519:58;52611:12;52606:2;52598:6;52594:15;52587:37;52402:229;:::o;52637:182::-;52777:34;52773:1;52765:6;52761:14;52754:58;52637:182;:::o;52825:228::-;52965:34;52961:1;52953:6;52949:14;52942:58;53034:11;53029:2;53021:6;53017:15;53010:36;52825:228;:::o;53059:::-;53199:34;53195:1;53187:6;53183:14;53176:58;53268:11;53263:2;53255:6;53251:15;53244:36;53059:228;:::o;53293:227::-;53433:34;53429:1;53421:6;53417:14;53410:58;53502:10;53497:2;53489:6;53485:15;53478:35;53293:227;:::o;53526:240::-;53666:34;53662:1;53654:6;53650:14;53643:58;53735:23;53730:2;53722:6;53718:15;53711:48;53526:240;:::o;53772:220::-;53912:34;53908:1;53900:6;53896:14;53889:58;53981:3;53976:2;53968:6;53964:15;53957:28;53772:220;:::o;53998:178::-;54138:30;54134:1;54126:6;54122:14;54115:54;53998:178;:::o;54182:169::-;54322:21;54318:1;54310:6;54306:14;54299:45;54182:169;:::o;54357:711::-;54396:3;54434:4;54416:16;54413:26;54410:39;;;54442:5;;54410:39;54471:20;;:::i;:::-;54546:1;54528:16;54524:24;54521:1;54515:4;54500:49;54579:4;54573:11;54678:16;54671:4;54663:6;54659:17;54656:39;54623:18;54615:6;54612:30;54596:113;54593:146;;;54724:5;;;;54593:146;54770:6;54764:4;54760:17;54806:3;54800:10;54833:18;54825:6;54822:30;54819:43;;;54855:5;;;;;;54819:43;54903:6;54896:4;54891:3;54887:14;54883:27;54962:1;54944:16;54940:24;54934:4;54930:35;54925:3;54922:44;54919:57;;;54969:5;;;;;;;54919:57;54986;55034:6;55028:4;55024:17;55016:6;55012:30;55006:4;54986:57;:::i;:::-;55059:3;55052:10;;54400:668;;;;;54357:711;;:::o;55074:122::-;55147:24;55165:5;55147:24;:::i;:::-;55140:5;55137:35;55127:63;;55186:1;55183;55176:12;55127:63;55074:122;:::o;55202:116::-;55272:21;55287:5;55272:21;:::i;:::-;55265:5;55262:32;55252:60;;55308:1;55305;55298:12;55252:60;55202:116;:::o;55324:120::-;55396:23;55413:5;55396:23;:::i;:::-;55389:5;55386:34;55376:62;;55434:1;55431;55424:12;55376:62;55324:120;:::o;55450:122::-;55523:24;55541:5;55523:24;:::i;:::-;55516:5;55513:35;55503:63;;55562:1;55559;55552:12;55503:63;55450:122;:::o

Swarm Source

ipfs://26c538ee0963331d7a1933493a21d9896e4145705a1add57cc272334f06337e1
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.