<?xml version="1.0" encoding="UTF-8"?>
<files psalm-version="6.14.3@d0b040a91f280f071c1abcb1b77ce3822058725a">
  <file src="../includes/api/class-presszone-forum-rest-admin.php">
    <PossiblyUnusedMethod>
      <code><![CDATA[assignModerator]]></code>
      <code><![CDATA[banUser]]></code>
      <code><![CDATA[checkAdminPermission]]></code>
      <code><![CDATA[checkModeratorPermission]]></code>
      <code><![CDATA[clearWarning]]></code>
      <code><![CDATA[cloudCallback]]></code>
      <code><![CDATA[createNode]]></code>
      <code><![CDATA[deleteNode]]></code>
      <code><![CDATA[demoteSuperModerator]]></code>
      <code><![CDATA[disconnectCloud]]></code>
      <code><![CDATA[getActiveWarnings]]></code>
      <code><![CDATA[getAvailableModerators]]></code>
      <code><![CDATA[getBannedUsers]]></code>
      <code><![CDATA[getInfractionSummary]]></code>
      <code><![CDATA[getModerationActivity]]></code>
      <code><![CDATA[getModerationStats]]></code>
      <code><![CDATA[getModerators]]></code>
      <code><![CDATA[getMutedUsers]]></code>
      <code><![CDATA[getNode]]></code>
      <code><![CDATA[getNodeModerators]]></code>
      <code><![CDATA[getNodes]]></code>
      <code><![CDATA[getPermissions]]></code>
      <code><![CDATA[getRecentReports]]></code>
      <code><![CDATA[getSettings]]></code>
      <code><![CDATA[getStaff]]></code>
      <code><![CDATA[getStats]]></code>
      <code><![CDATA[getUserInfo]]></code>
      <code><![CDATA[getUserWarnings]]></code>
      <code><![CDATA[issueWarning]]></code>
      <code><![CDATA[promoteSuperModerator]]></code>
      <code><![CDATA[removeForumModerator]]></code>
      <code><![CDATA[reorderNodes]]></code>
      <code><![CDATA[runTool]]></code>
      <code><![CDATA[savePermissions]]></code>
      <code><![CDATA[saveSettings]]></code>
      <code><![CDATA[searchUsers]]></code>
      <code><![CDATA[tracePermission]]></code>
      <code><![CDATA[unassignModerator]]></code>
      <code><![CDATA[unbanUser]]></code>
      <code><![CDATA[unmuteUser]]></code>
      <code><![CDATA[updateNode]]></code>
    </PossiblyUnusedMethod>
    <PossiblyUnusedProperty>
      <code><![CDATA[$namespace]]></code>
    </PossiblyUnusedProperty>
    <UnusedMethod>
      <code><![CDATA[buildTree]]></code>
      <code><![CDATA[formatDuration]]></code>
      <code><![CDATA[getNextNestedSetPosition]]></code>
      <code><![CDATA[getNodeArgs]]></code>
      <code><![CDATA[isDescendantOf]]></code>
      <code><![CDATA[updateTreeOrder]]></code>
    </UnusedMethod>
    <UnusedParam>
      <code><![CDATA[$request]]></code>
      <code><![CDATA[$request]]></code>
      <code><![CDATA[$request]]></code>
      <code><![CDATA[$request]]></code>
      <code><![CDATA[$request]]></code>
      <code><![CDATA[$request]]></code>
      <code><![CDATA[$request]]></code>
      <code><![CDATA[$request]]></code>
      <code><![CDATA[$request]]></code>
      <code><![CDATA[$request]]></code>
      <code><![CDATA[$request]]></code>
      <code><![CDATA[$request]]></code>
      <code><![CDATA[$request]]></code>
      <code><![CDATA[$request]]></code>
      <code><![CDATA[$request]]></code>
      <code><![CDATA[$request]]></code>
      <code><![CDATA[$request]]></code>
      <code><![CDATA[$request]]></code>
      <code><![CDATA[$request]]></code>
      <code><![CDATA[$request]]></code>
      <code><![CDATA[$request]]></code>
      <code><![CDATA[$request]]></code>
      <code><![CDATA[$request]]></code>
      <code><![CDATA[$request]]></code>
      <code><![CDATA[$request]]></code>
      <code><![CDATA[$request]]></code>
      <code><![CDATA[$request]]></code>
      <code><![CDATA[$request]]></code>
      <code><![CDATA[$request]]></code>
      <code><![CDATA[$request]]></code>
      <code><![CDATA[$request]]></code>
    </UnusedParam>
  </file>
  <file src="../includes/api/class-presszone-forum-rest-base.php">
    <PossiblyUnusedMethod>
      <code><![CDATA[checkPermission]]></code>
      <code><![CDATA[respondSuccess]]></code>
      <code><![CDATA[verifyNonce]]></code>
    </PossiblyUnusedMethod>
  </file>
  <file src="../includes/api/class-presszone-forum-rest-messenger.php">
    <PossiblyUnusedMethod>
      <code><![CDATA[deleteConversation]]></code>
      <code><![CDATA[getConversation]]></code>
      <code><![CDATA[getConversations]]></code>
      <code><![CDATA[getUnreadCount]]></code>
      <code><![CDATA[markRead]]></code>
      <code><![CDATA[searchUsers]]></code>
      <code><![CDATA[sendMessage]]></code>
      <code><![CDATA[startConversation]]></code>
      <code><![CDATA[toggleStar]]></code>
    </PossiblyUnusedMethod>
    <PossiblyUnusedParam>
      <code><![CDATA[$request]]></code>
      <code><![CDATA[$request]]></code>
      <code><![CDATA[$request]]></code>
      <code><![CDATA[$request]]></code>
      <code><![CDATA[$request]]></code>
      <code><![CDATA[$request]]></code>
      <code><![CDATA[$request]]></code>
      <code><![CDATA[$request]]></code>
    </PossiblyUnusedParam>
    <PossiblyUnusedProperty>
      <code><![CDATA[$namespace]]></code>
    </PossiblyUnusedProperty>
    <UnusedMethod>
      <code><![CDATA[getMessagesSince]]></code>
      <code><![CDATA[getStartConversationArgs]]></code>
      <code><![CDATA[resolveRecipient]]></code>
      <code><![CDATA[truncateMessage]]></code>
    </UnusedMethod>
    <UnusedProperty>
      <code><![CDATA[$messaging]]></code>
    </UnusedProperty>
  </file>
  <file src="../includes/api/class-presszone-forum-rest-public.php">
    <PossiblyUnusedMethod>
      <code><![CDATA[bulkAction]]></code>
      <code><![CDATA[checkModeratorPermission]]></code>
      <code><![CDATA[createReply]]></code>
      <code><![CDATA[createTopic]]></code>
      <code><![CDATA[getInlineEditForm]]></code>
      <code><![CDATA[getInlineReplyForm]]></code>
      <code><![CDATA[getThread]]></code>
      <code><![CDATA[getUsers]]></code>
    </PossiblyUnusedMethod>
    <PossiblyUnusedParam>
      <code><![CDATA[$request]]></code>
      <code><![CDATA[$request]]></code>
      <code><![CDATA[$request]]></code>
      <code><![CDATA[$request]]></code>
      <code><![CDATA[$request]]></code>
      <code><![CDATA[$request]]></code>
      <code><![CDATA[$request]]></code>
    </PossiblyUnusedParam>
    <PossiblyUnusedProperty>
      <code><![CDATA[$namespace]]></code>
    </PossiblyUnusedProperty>
    <UnusedMethod>
      <code><![CDATA[countPostsRecursive]]></code>
      <code><![CDATA[formatPost]]></code>
      <code><![CDATA[formatPostsTree]]></code>
      <code><![CDATA[getBulkActionArgs]]></code>
      <code><![CDATA[getReplyArgs]]></code>
      <code><![CDATA[getTopicArgs]]></code>
      <code><![CDATA[getUserArgs]]></code>
    </UnusedMethod>
  </file>
  <file src="../includes/auth/class-presszone-forum-auth-interceptor.php">
    <UnusedClass>
      <code><![CDATA[AuthInterceptor]]></code>
    </UnusedClass>
    <UnusedVariable>
      <code><![CDATA[$newHash]]></code>
    </UnusedVariable>
  </file>
  <file src="../includes/class-presszone-forum-admin-controller.php">
    <PossiblyInvalidCast>
      <code><![CDATA[$_GET['node_slug']]]></code>
      <code><![CDATA[$_GET['node_slug']]]></code>
      <code><![CDATA[$_GET['node_slug']]]></code>
      <code><![CDATA[wp_unslash($_GET['presszone_forum_nonce'])]]></code>
      <code><![CDATA[wp_unslash($_GET['presszone_forum_nonce'])]]></code>
      <code><![CDATA[wp_unslash($_GET['presszone_forum_nonce'])]]></code>
    </PossiblyInvalidCast>
    <RiskyCast>
      <code><![CDATA[$_GET['post_id']]]></code>
      <code><![CDATA[$_GET['thread_id']]]></code>
      <code><![CDATA[$_GET['thread_id']]]></code>
      <code><![CDATA[$_GET['thread_id']]]></code>
    </RiskyCast>
  </file>
  <file src="../includes/class-presszone-forum-anti-spam.php">
    <TypeDoesNotContainType>
      <code><![CDATA[!$result['success']]]></code>
      <code><![CDATA[!$result['success']]]></code>
    </TypeDoesNotContainType>
  </file>
  <file src="../includes/class-presszone-forum-attachments.php">
    <ArgumentTypeCoercion>
      <code><![CDATA[$att['mimetype']]]></code>
    </ArgumentTypeCoercion>
    <InvalidArgument>
      <code><![CDATA[strpos($att['mimetype'], 'image/') === 0]]></code>
    </InvalidArgument>
    <InvalidOperand>
      <code><![CDATA[$att['filepath']]]></code>
      <code><![CDATA[$att['thumbnail_path']]]></code>
    </InvalidOperand>
    <PossiblyInvalidArrayAccess>
      <code><![CDATA[$attachment['filepath']]]></code>
      <code><![CDATA[$attachment['thumbnail_path']]]></code>
      <code><![CDATA[$attachment['user_id']]]></code>
    </PossiblyInvalidArrayAccess>
    <PossiblyUnusedMethod>
      <code><![CDATA[attachToPost]]></code>
      <code><![CDATA[getMaxSizeForType]]></code>
      <code><![CDATA[isFileLimitReached]]></code>
    </PossiblyUnusedMethod>
    <RiskyCast>
      <code><![CDATA[$_POST['attachment_id'] ?? 0]]></code>
    </RiskyCast>
    <UnusedVariable>
      <code><![CDATA[$ext]]></code>
      <code><![CDATA[$mimeType]]></code>
    </UnusedVariable>
  </file>
  <file src="../includes/class-presszone-forum-autoloader.php">
    <PossiblyUnusedMethod>
      <code><![CDATA[unregister]]></code>
    </PossiblyUnusedMethod>
  </file>
  <file src="../includes/class-presszone-forum-bans.php">
    <PossiblyUnusedMethod>
      <code><![CDATA[getBannedUsers]]></code>
    </PossiblyUnusedMethod>
    <PossiblyUnusedReturnValue>
      <code><![CDATA[bool]]></code>
      <code><![CDATA[bool]]></code>
    </PossiblyUnusedReturnValue>
    <UnusedReturnValue>
      <code><![CDATA[bool]]></code>
    </UnusedReturnValue>
  </file>
  <file src="../includes/class-presszone-forum-breadcrumbs.php">
    <InvalidOperand>
      <code><![CDATA[$index]]></code>
    </InvalidOperand>
    <PossiblyFalseOperand>
      <code><![CDATA[wp_json_encode($schema, JSON_UNESCAPED_SLASHES)]]></code>
    </PossiblyFalseOperand>
  </file>
  <file src="../includes/class-presszone-forum-cache.php">
    <HookNotFound>
      <code><![CDATA[add_action('presszone_forum_after_post_save', function (int $postId, int $threadId) {
            self::invalidateThread($threadId);
            self::invalidateNode(); // Node tree may show updated thread info.
        }, 10, 2)]]></code>
      <code><![CDATA[add_action('presszone_forum_node_updated', function (?int $nodeId = null) {
            self::invalidateNode($nodeId);
        }, 10, 1)]]></code>
      <code><![CDATA[add_action('presszone_forum_thread_created', function (int $threadId, int $postId, int $userId) {
            self::invalidateNode();
        }, 10, 3)]]></code>
    </HookNotFound>
    <PossiblyUnusedMethod>
      <code><![CDATA[deletePattern]]></code>
      <code><![CDATA[flush]]></code>
      <code><![CDATA[getBackend]]></code>
      <code><![CDATA[isExternalCacheActive]]></code>
    </PossiblyUnusedMethod>
    <PossiblyUnusedReturnValue>
      <code><![CDATA[bool]]></code>
      <code><![CDATA[bool]]></code>
    </PossiblyUnusedReturnValue>
    <UnusedClosureParam>
      <code><![CDATA[$postId]]></code>
      <code><![CDATA[$threadId]]></code>
      <code><![CDATA[$userId]]></code>
    </UnusedClosureParam>
  </file>
  <file src="../includes/class-presszone-forum-digest.php">
    <HookNotFound>
      <code><![CDATA[add_action('presszone_forum_send_daily_digest', [$this, 'sendDailyDigests'])]]></code>
    </HookNotFound>
    <PossiblyUnusedMethod>
      <code><![CDATA[sendDailyDigests]]></code>
    </PossiblyUnusedMethod>
  </file>
  <file src="../includes/class-presszone-forum-editor.php">
    <FalsableReturnStatement>
      <code><![CDATA[ob_get_clean()]]></code>
      <code><![CDATA[ob_get_clean()]]></code>
      <code><![CDATA[ob_get_clean()]]></code>
    </FalsableReturnStatement>
    <PossiblyUnusedMethod>
      <code><![CDATA[getEditorHtml]]></code>
      <code><![CDATA[getInlineEditHtml]]></code>
      <code><![CDATA[getInlineReplyHtml]]></code>
    </PossiblyUnusedMethod>
  </file>
  <file src="../includes/class-presszone-forum-email-templates.php">
    <PossiblyUnusedMethod>
      <code><![CDATA[getPlaceholders]]></code>
      <code><![CDATA[getTemplateTypes]]></code>
    </PossiblyUnusedMethod>
    <PossiblyUnusedReturnValue>
      <code><![CDATA[bool]]></code>
    </PossiblyUnusedReturnValue>
  </file>
  <file src="../includes/class-presszone-forum-embeds.php">
    <PossiblyUnusedMethod>
      <code><![CDATA[clearAllCaches]]></code>
      <code><![CDATA[clearCache]]></code>
    </PossiblyUnusedMethod>
  </file>
  <file src="../includes/class-presszone-forum-maintenance.php">
    <PossiblyInvalidPropertyFetch>
      <code><![CDATA[$lastPost->post_date]]></code>
      <code><![CDATA[$lastPost->post_id]]></code>
      <code><![CDATA[$lastPost->user_id]]></code>
    </PossiblyInvalidPropertyFetch>
    <PossiblyUnusedMethod>
      <code><![CDATA[rebuildNestedSet]]></code>
    </PossiblyUnusedMethod>
  </file>
  <file src="../includes/class-presszone-forum-mentions.php">
    <NullableReturnStatement>
      <code><![CDATA[$content]]></code>
      <code><![CDATA[preg_replace_callback('/@\[([^\]]+)\]/', function ($matches) use ($mentionIds, &$mentionIndex) {
            $displayName = $matches[1];

            // If we have an ID for this mention sequential position
            if (isset($mentionIds[$mentionIndex])) {
                $userId = $mentionIds[$mentionIndex];
                $mentionIndex++;

                // Verify user exists
                if (get_userdata($userId)) {
                    // Return the format that Mentions::parse supports (HTML Span)
                    return sprintf('<span class="fpz-mention fpz-user-%d">@%s</span>', $userId, esc_html($displayName));
                }
            }
            return '@' . esc_html($displayName); // Fallback to plain text
        }, $content)]]></code>
    </NullableReturnStatement>
    <PossiblyUnusedMethod>
      <code><![CDATA[extractUsernames]]></code>
      <code><![CDATA[searchUsers]]></code>
    </PossiblyUnusedMethod>
    <UnusedVariable>
      <code><![CDATA[$user]]></code>
    </UnusedVariable>
  </file>
  <file src="../includes/class-presszone-forum-messaging.php">
    <LessSpecificReturnStatement>
      <code><![CDATA[[
            'messages' => $messages ?: [],
            'total' => $total,
            'conversation' => $conversation,
        ]]]></code>
    </LessSpecificReturnStatement>
    <NullableReturnStatement>
      <code><![CDATA[$this->db->get_results(
            $this->db->prepare(
                "SELECT u.ID, u.display_name, u.user_email
                 FROM {$this->prefix}conversations_users cu
                 INNER JOIN {$this->db->users} u ON cu.user_id = u.ID
                 WHERE cu.conversation_id = %d AND cu.user_id != %d AND cu.is_deleted = 0",
                $conversationId,
                $excludeUserId
            ),
            ARRAY_A
        )]]></code>
    </NullableReturnStatement>
    <PossiblyNullIterator>
      <code><![CDATA[$conversations]]></code>
    </PossiblyNullIterator>
    <RedundantCondition>
      <code><![CDATA[$conversations]]></code>
    </RedundantCondition>
    <TypeDoesNotContainType>
      <code><![CDATA[[]]]></code>
    </TypeDoesNotContainType>
    <UnusedMethod>
      <code><![CDATA[createMessageAlert]]></code>
    </UnusedMethod>
    <UnusedParam>
      <code><![CDATA[$conversationId]]></code>
      <code><![CDATA[$recipientId]]></code>
      <code><![CDATA[$senderId]]></code>
    </UnusedParam>
  </file>
  <file src="../includes/class-presszone-forum-migrations.php">
    <NullArgument>
      <code><![CDATA[null]]></code>
    </NullArgument>
  </file>
  <file src="../includes/class-presszone-forum-moderators.php">
    <PossiblyUnusedMethod>
      <code><![CDATA[assign]]></code>
      <code><![CDATA[canModerateNode]]></code>
      <code><![CDATA[getAllAssignments]]></code>
      <code><![CDATA[getAllModerators]]></code>
      <code><![CDATA[getAvailableModerators]]></code>
      <code><![CDATA[unassign]]></code>
    </PossiblyUnusedMethod>
  </file>
  <file src="../includes/class-presszone-forum-notifications.php">
    <PossiblyInvalidPropertyFetch>
      <code><![CDATA[$post->node_slug]]></code>
      <code><![CDATA[$post->post_id]]></code>
      <code><![CDATA[$post->thread_slug]]></code>
      <code><![CDATA[$thread->node_slug]]></code>
      <code><![CDATA[$thread->thread_slug]]></code>
    </PossiblyInvalidPropertyFetch>
    <PossiblyUnusedMethod>
      <code><![CDATA[checkLoggedIn]]></code>
      <code><![CDATA[handleGetNotifications]]></code>
      <code><![CDATA[handleGetUnreadCount]]></code>
      <code><![CDATA[handleMarkAllRead]]></code>
      <code><![CDATA[handleMarkRead]]></code>
    </PossiblyUnusedMethod>
  </file>
  <file src="../includes/class-presszone-forum-plugin.php">
    <ArgumentTypeCoercion>
      <code><![CDATA[[
                'thread_id' => $threadId,
                'user_id' => get_current_user_id(),
                'message' => $message,
                'parent_id' => $parentId,
                'depth' => $depth,
            ]]]></code>
    </ArgumentTypeCoercion>
    <FalsableReturnStatement>
      <code><![CDATA[ob_get_clean()]]></code>
      <code><![CDATA[ob_get_clean()]]></code>
    </FalsableReturnStatement>
    <InvalidArrayAccess>
      <code><![CDATA[$files['error'][$i]]]></code>
      <code><![CDATA[$files['size'][$i]]]></code>
    </InvalidArrayAccess>
    <NoValue>
      <code><![CDATA[$files['name']]]></code>
      <code><![CDATA[$files['name']]]></code>
    </NoValue>
    <PossiblyInvalidCast>
      <code><![CDATA[$_POST['description'] ?? '']]></code>
      <code><![CDATA[$_POST['g-recaptcha-response']]]></code>
      <code><![CDATA[$_POST['g-recaptcha-response']]]></code>
      <code><![CDATA[$_POST['g-recaptcha-response']]]></code>
      <code><![CDATA[$_POST['message'] ?? '']]></code>
      <code><![CDATA[$_POST['message'] ?? '']]></code>
      <code><![CDATA[$_POST['poll_close_date']]]></code>
      <code><![CDATA[$_POST['poll_question']]]></code>
      <code><![CDATA[$_POST['presszone_forum_message']]]></code>
      <code><![CDATA[$_POST['recaptcha_token']]]></code>
      <code><![CDATA[$_POST['recipient'] ?? '']]></code>
      <code><![CDATA[$_POST['redirect_url']]]></code>
      <code><![CDATA[$_POST['title']]]></code>
      <code><![CDATA[$_POST['title'] ?? '']]></code>
      <code><![CDATA[$_POST['user_url'] ?? '']]></code>
      <code><![CDATA[$previewText]]></code>
      <code><![CDATA[$rawMessage]]></code>
      <code><![CDATA[$rawMessage]]></code>
      <code><![CDATA[$rawMessage]]></code>
      <code><![CDATA[$rawMessage]]></code>
      <code><![CDATA[wp_unslash($_POST['message'])]]></code>
      <code><![CDATA[wp_unslash($_POST['nonce'])]]></code>
      <code><![CDATA[wp_unslash($_POST['presszone_forum_edit_post_nonce'])]]></code>
      <code><![CDATA[wp_unslash($_POST['presszone_forum_nonce'])]]></code>
      <code><![CDATA[wp_unslash($_POST['presszone_forum_nonce'])]]></code>
      <code><![CDATA[wp_unslash($_POST['presszone_forum_nonce'])]]></code>
      <code><![CDATA[wp_unslash($_POST['presszone_mentions'])]]></code>
      <code><![CDATA[wp_unslash($_POST['presszone_mentions'])]]></code>
    </PossiblyInvalidCast>
    <PossiblyInvalidPropertyFetch>
      <code><![CDATA[$recipientUser->ID]]></code>
    </PossiblyInvalidPropertyFetch>
    <PossiblyNullArrayAccess>
      <code><![CDATA[$post['depth']]]></code>
    </PossiblyNullArrayAccess>
    <PossiblyUnusedMethod>
      <code><![CDATA[getPath]]></code>
      <code><![CDATA[getUrl]]></code>
      <code><![CDATA[getVersion]]></code>
    </PossiblyUnusedMethod>
    <PossiblyUnusedReturnValue>
      <code><![CDATA[string]]></code>
    </PossiblyUnusedReturnValue>
    <RedundantCondition>
      <code><![CDATA[1]]></code>
    </RedundantCondition>
    <RiskyCast>
      <code><![CDATA[$_POST['conversation_id'] ?? 0]]></code>
      <code><![CDATA[$_POST['conversation_id'] ?? 0]]></code>
      <code><![CDATA[$_POST['conversation_id'] ?? 0]]></code>
      <code><![CDATA[$_POST['node_id']]]></code>
      <code><![CDATA[$_POST['parent_id']]]></code>
      <code><![CDATA[$_POST['parent_id']]]></code>
      <code><![CDATA[$_POST['poll_max_votes']]]></code>
      <code><![CDATA[$_POST['post_id']]]></code>
      <code><![CDATA[$_POST['post_id'] ?? 0]]></code>
      <code><![CDATA[$_POST['thread_id']]]></code>
      <code><![CDATA[$_POST['thread_id']]]></code>
      <code><![CDATA[$_POST['thread_id'] ?? 0]]></code>
    </RiskyCast>
    <TypeDoesNotContainType>
      <code><![CDATA[is_array($files['name'])]]></code>
      <code><![CDATA[is_array($files['name'])]]></code>
    </TypeDoesNotContainType>
    <UnusedParam>
      <code><![CDATA[$userLogin]]></code>
    </UnusedParam>
    <UnusedVariable>
      <code><![CDATA[$enableReactions]]></code>
      <code><![CDATA[$fpz]]></code>
      <code><![CDATA[$thread]]></code>
      <code><![CDATA[$updated]]></code>
      <code><![CDATA[$userId]]></code>
    </UnusedVariable>
  </file>
  <file src="../includes/class-presszone-forum-polls.php">
    <PossiblyInvalidArrayAccess>
      <code><![CDATA[$poll['close_date']]]></code>
      <code><![CDATA[$poll['close_date']]]></code>
      <code><![CDATA[$poll['max_votes']]]></code>
      <code><![CDATA[$poll['poll_id']]]></code>
    </PossiblyInvalidArrayAccess>
    <PossiblyInvalidArrayAssignment>
      <code><![CDATA[$poll['is_closed']]]></code>
      <code><![CDATA[$poll['options']]]></code>
      <code><![CDATA[$poll['total_votes']]]></code>
    </PossiblyInvalidArrayAssignment>
    <PossiblyUnusedReturnValue>
      <code><![CDATA[int|false]]></code>
    </PossiblyUnusedReturnValue>
    <RiskyCast>
      <code><![CDATA[$_POST['poll_id'] ?? 0]]></code>
    </RiskyCast>
    <UnusedVariable>
      <code><![CDATA[$poll]]></code>
    </UnusedVariable>
  </file>
  <file src="../includes/class-presszone-forum-post-creator.php">
    <PossiblyInvalidPropertyFetch>
      <code><![CDATA[$parentPost->user_id]]></code>
      <code><![CDATA[$thread->is_locked]]></code>
      <code><![CDATA[$thread->user_id]]></code>
    </PossiblyInvalidPropertyFetch>
  </file>
  <file src="../includes/class-presszone-forum-query.php">
    <PossiblyInvalidCast>
      <code><![CDATA[$content]]></code>
    </PossiblyInvalidCast>
    <PossiblyInvalidPropertyFetch>
      <code><![CDATA[$thread->last_post_date]]></code>
      <code><![CDATA[$thread->last_post_date]]></code>
    </PossiblyInvalidPropertyFetch>
    <PossiblyNullIterator>
      <code><![CDATA[$results]]></code>
    </PossiblyNullIterator>
    <PossiblyUnusedMethod>
      <code><![CDATA[getPostReactions]]></code>
      <code><![CDATA[getPostReplies]]></code>
      <code><![CDATA[getPosts]]></code>
      <code><![CDATA[getUserVote]]></code>
    </PossiblyUnusedMethod>
    <RedundantCondition>
      <code><![CDATA[$posts]]></code>
    </RedundantCondition>
    <TypeDoesNotContainType>
      <code><![CDATA[[]]]></code>
    </TypeDoesNotContainType>
    <UnusedVariable>
      <code><![CDATA[$params]]></code>
      <code><![CDATA[$searchSql]]></code>
      <code><![CDATA[$searchTerm]]></code>
    </UnusedVariable>
  </file>
  <file src="../includes/class-presszone-forum-reactions.php">
    <LessSpecificReturnStatement>
      <code><![CDATA[array_map(fn($r) => [
            'type' => $r['reaction_type'],
            'count' => (int) $r['count'],
        ], $results ?: [])]]></code>
    </LessSpecificReturnStatement>
    <PossiblyNullIterator>
      <code><![CDATA[$results]]></code>
    </PossiblyNullIterator>
    <UnusedParam>
      <code><![CDATA[$reactionType]]></code>
    </UnusedParam>
  </file>
  <file src="../includes/class-presszone-forum-reports.php">
    <PossiblyInvalidCast>
      <code><![CDATA[$_POST['content_type'] ?? 'post']]></code>
      <code><![CDATA[$_POST['reason'] ?? '']]></code>
    </PossiblyInvalidCast>
    <PossiblyInvalidPropertyFetch>
      <code><![CDATA[$postData->forum_title]]></code>
      <code><![CDATA[$postData->message]]></code>
      <code><![CDATA[$postData->position]]></code>
      <code><![CDATA[$postData->thread_id]]></code>
      <code><![CDATA[$postData->thread_slug]]></code>
      <code><![CDATA[$postData->thread_title]]></code>
      <code><![CDATA[$postData->user_id]]></code>
      <code><![CDATA[$postInfo->thread_id]]></code>
      <code><![CDATA[$report->content_id]]></code>
      <code><![CDATA[$report->content_id]]></code>
      <code><![CDATA[$report->content_id]]></code>
      <code><![CDATA[$report->content_id]]></code>
      <code><![CDATA[$report->content_type]]></code>
      <code><![CDATA[$report->content_type]]></code>
      <code><![CDATA[$threadData->forum_title]]></code>
      <code><![CDATA[$threadData->thread_slug]]></code>
      <code><![CDATA[$threadData->thread_title]]></code>
      <code><![CDATA[$threadData->user_id]]></code>
    </PossiblyInvalidPropertyFetch>
    <PossiblyNullIterator>
      <code><![CDATA[$reports]]></code>
    </PossiblyNullIterator>
    <PossiblyUnusedMethod>
      <code><![CDATA[deleteContentAndResolve]]></code>
      <code><![CDATA[deleteThreadAndResolve]]></code>
      <code><![CDATA[dismissReport]]></code>
      <code><![CDATA[getReports]]></code>
      <code><![CDATA[resolveReport]]></code>
    </PossiblyUnusedMethod>
    <RiskyCast>
      <code><![CDATA[$_POST['content_id'] ?? 0]]></code>
    </RiskyCast>
  </file>
  <file src="../includes/class-presszone-forum-roles.php">
    <PossiblyUnusedMethod>
      <code><![CDATA[canBanUsers]]></code>
      <code><![CDATA[canManageModerators]]></code>
      <code><![CDATA[canWarnUsers]]></code>
      <code><![CDATA[getModerationLevel]]></code>
      <code><![CDATA[unregister]]></code>
    </PossiblyUnusedMethod>
  </file>
  <file src="../includes/class-presszone-forum-router.php">
    <PossiblyInvalidCast>
      <code><![CDATA[$_GET['q']]]></code>
    </PossiblyInvalidCast>
    <PossiblyUnusedMethod>
      <code><![CDATA[flushRules]]></code>
      <code><![CDATA[getProfileUrl]]></code>
      <code><![CDATA[getThreadUrl]]></code>
    </PossiblyUnusedMethod>
    <PossiblyUnusedReturnValue>
      <code><![CDATA[array<string>]]></code>
      <code><![CDATA[string]]></code>
    </PossiblyUnusedReturnValue>
  </file>
  <file src="../includes/class-presszone-forum-schema.php">
    <PossiblyUnusedMethod>
      <code><![CDATA[generateBreadcrumbs]]></code>
    </PossiblyUnusedMethod>
  </file>
  <file src="../includes/class-presszone-forum-subscriptions.php">
    <HookNotFound>
      <code><![CDATA[add_action('presszone_forum_post_created', [$this, 'notifySubscribers'], 10, 2)]]></code>
    </HookNotFound>
    <PossiblyInvalidPropertyFetch>
      <code><![CDATA[$thread->node_slug]]></code>
      <code><![CDATA[$thread->slug]]></code>
      <code><![CDATA[$thread->title]]></code>
    </PossiblyInvalidPropertyFetch>
    <PossiblyUnusedMethod>
      <code><![CDATA[getUserSubscriptions]]></code>
      <code><![CDATA[notifySubscribers]]></code>
    </PossiblyUnusedMethod>
    <PossiblyUnusedReturnValue>
      <code><![CDATA[bool]]></code>
      <code><![CDATA[bool]]></code>
    </PossiblyUnusedReturnValue>
    <RiskyCast>
      <code><![CDATA[$_POST['thread_id'] ?? 0]]></code>
    </RiskyCast>
  </file>
  <file src="../includes/class-presszone-forum-template-loader.php">
    <PossiblyUnusedMethod>
      <code><![CDATA[getAvailableThemes]]></code>
    </PossiblyUnusedMethod>
    <UnusedParam>
      <code><![CDATA[$args]]></code>
      <code><![CDATA[$args]]></code>
      <code><![CDATA[$fpz]]></code>
      <code><![CDATA[$fpz]]></code>
    </UnusedParam>
  </file>
  <file src="../includes/class-presszone-forum-tracker.php">
    <HookNotFound>
      <code><![CDATA[add_action('presszone_forum_daily_cleanup', [$this, 'cleanupOldMarkers'])]]></code>
    </HookNotFound>
    <PossiblyUnusedMethod>
      <code><![CDATA[cleanupOldMarkers]]></code>
      <code><![CDATA[getTotalUnreadCount]]></code>
      <code><![CDATA[getUnreadCount]]></code>
      <code><![CDATA[isThreadUnread]]></code>
      <code><![CDATA[markAllRead]]></code>
      <code><![CDATA[markForumRead]]></code>
    </PossiblyUnusedMethod>
  </file>
  <file src="../includes/class-presszone-forum-warnings.php">
    <UnusedClass>
      <code><![CDATA[Warnings]]></code>
    </UnusedClass>
  </file>
  <file src="../includes/class-presszone-forum-wpml.php">
    <HookNotFound>
      <code><![CDATA[add_filter('wpml_active_string_package_kinds', [$this, 'registerPackageKinds'])]]></code>
    </HookNotFound>
    <PossiblyInvalidCast>
      <code><![CDATA[$_GET['wpml_lang']]]></code>
      <code><![CDATA[$_POST['wpml_lang']]]></code>
    </PossiblyInvalidCast>
    <PossiblyUnusedMethod>
      <code><![CDATA[addLanguageToUrl]]></code>
      <code><![CDATA[deleteNodeStrings]]></code>
      <code><![CDATA[deletePostStrings]]></code>
      <code><![CDATA[deleteThreadStrings]]></code>
      <code><![CDATA[getDefaultLanguage]]></code>
      <code><![CDATA[getTranslatedNodeDescription]]></code>
      <code><![CDATA[getTranslatedNodeTitle]]></code>
      <code><![CDATA[getTranslatedPostContent]]></code>
      <code><![CDATA[getTranslatedThreadTitle]]></code>
      <code><![CDATA[registerNodeStrings]]></code>
      <code><![CDATA[registerPackageKinds]]></code>
      <code><![CDATA[registerPostStrings]]></code>
      <code><![CDATA[registerThreadStrings]]></code>
    </PossiblyUnusedMethod>
  </file>
  <file src="../includes/functions.php">
    <FalsableReturnStatement>
      <code><![CDATA[get_avatar($userId, $size, '', '', ['class' => 'presszone-forum-avatar'])]]></code>
      <code><![CDATA[get_avatar('', $size, 'mystery', '', ['force_default' => true, 'class' => 'presszone-forum-avatar'])]]></code>
    </FalsableReturnStatement>
  </file>
  <file src="../includes/helpers/empty-state.php">
    <NoValue>
      <code><![CDATA[$args['cta_text']]]></code>
    </NoValue>
  </file>
  <file src="../templates/parts/account-avatar.php">
    <PossiblyInvalidCast>
      <code><![CDATA[$_POST['avatar_type'] ?? 'gravatar']]></code>
      <code><![CDATA[$_POST['presszone_forum_avatar_nonce']]]></code>
    </PossiblyInvalidCast>
  </file>
  <file src="../templates/parts/account-signature.php">
    <PossiblyInvalidCast>
      <code><![CDATA[$_POST['presszone_forum_signature_nonce']]]></code>
    </PossiblyInvalidCast>
  </file>
  <file src="../templates/parts/nested-post.php">
    <UnusedVariable>
      <code><![CDATA[$indentPx]]></code>
    </UnusedVariable>
  </file>
  <file src="../templates/presszone-forum-inbox.php">
    <InvalidArgument>
      <code><![CDATA[$total]]></code>
      <code><![CDATA[$unreadCount]]></code>
      <code><![CDATA[$unreadCount]]></code>
    </InvalidArgument>
  </file>
  <file src="../templates/presszone-forum-member.php">
    <UnusedVariable>
      <code><![CDATA[$breadcrumbs]]></code>
    </UnusedVariable>
  </file>
  <file src="../templates/presszone-forum-user-posts.php">
    <UnusedVariable>
      <code><![CDATA[$totalPosts]]></code>
    </UnusedVariable>
  </file>
  <file src="../templates/presszone/account.php">
    <UnusedVariable>
      <code><![CDATA[$extended]]></code>
    </UnusedVariable>
  </file>
  <file src="../templates/presszone/conversation.php">
    <InvalidArgument>
      <code><![CDATA[$conversationId]]></code>
      <code><![CDATA[$conversationId]]></code>
    </InvalidArgument>
  </file>
  <file src="../templates/presszone/edit-post.php">
    <NoValue>
      <code><![CDATA[$error]]></code>
    </NoValue>
    <TypeDoesNotContainType>
      <code><![CDATA[$error]]></code>
      <code><![CDATA[$error]]></code>
    </TypeDoesNotContainType>
  </file>
  <file src="../templates/presszone/embed-thread.php">
    <UndefinedMethod>
      <code><![CDATA[getFirstPost]]></code>
      <code><![CDATA[getThread]]></code>
    </UndefinedMethod>
  </file>
  <file src="../templates/presszone/inbox.php">
    <InvalidArgument>
      <code><![CDATA[$total]]></code>
      <code><![CDATA[$unreadCount]]></code>
      <code><![CDATA[$unreadCount]]></code>
    </InvalidArgument>
  </file>
  <file src="../templates/presszone/index.php">
    <PossiblyInvalidCast>
      <code><![CDATA[$content]]></code>
      <code><![CDATA[$content]]></code>
      <code><![CDATA[$content]]></code>
    </PossiblyInvalidCast>
  </file>
  <file src="../templates/presszone/member.php">
    <PossiblyInvalidCast>
      <code><![CDATA[$content]]></code>
    </PossiblyInvalidCast>
    <UnusedVariable>
      <code><![CDATA[$breadcrumbs]]></code>
    </UnusedVariable>
  </file>
  <file src="../templates/presszone/new-thread.php">
    <PossiblyInvalidCast>
      <code><![CDATA[$_GET['presszone_forum_error']]]></code>
      <code><![CDATA[$_GET['presszone_forum_title']]]></code>
    </PossiblyInvalidCast>
  </file>
  <file src="../templates/presszone/parts/account-avatar.php">
    <ParadoxicalCondition>
      <code><![CDATA[! defined( 'ABSPATH' )]]></code>
    </ParadoxicalCondition>
    <PossiblyInvalidCast>
      <code><![CDATA[$_POST['avatar_type'] ?? 'gravatar']]></code>
      <code><![CDATA[$_POST['presszone_forum_avatar_nonce']]]></code>
    </PossiblyInvalidCast>
  </file>
  <file src="../templates/presszone/parts/account-overview.php">
    <ParadoxicalCondition>
      <code><![CDATA[! defined( 'ABSPATH' )]]></code>
    </ParadoxicalCondition>
    <UnnecessaryVarAnnotation>
      <code><![CDATA[WP_User]]></code>
    </UnnecessaryVarAnnotation>
  </file>
  <file src="../templates/presszone/parts/account-preferences.php">
    <UnnecessaryVarAnnotation>
      <code><![CDATA[WP_User]]></code>
    </UnnecessaryVarAnnotation>
  </file>
  <file src="../templates/presszone/parts/account-profile.php">
    <UnnecessaryVarAnnotation>
      <code><![CDATA[WP_User]]></code>
    </UnnecessaryVarAnnotation>
  </file>
  <file src="../templates/presszone/parts/account-signature.php">
    <PossiblyInvalidCast>
      <code><![CDATA[$_POST['presszone_forum_signature_nonce']]]></code>
    </PossiblyInvalidCast>
  </file>
  <file src="../templates/presszone/parts/navbar.php">
    <InvalidOperand>
      <code><![CDATA[$currentUser->ID]]></code>
    </InvalidOperand>
    <ParadoxicalCondition>
      <code><![CDATA[! defined( 'ABSPATH' )]]></code>
    </ParadoxicalCondition>
    <PossiblyInvalidCast>
      <code><![CDATA[$_GET['q'] ?? '']]></code>
    </PossiblyInvalidCast>
    <PossiblyNullPropertyFetch>
      <code><![CDATA[$currentUser->ID]]></code>
      <code><![CDATA[$currentUser->ID]]></code>
      <code><![CDATA[$currentUser->display_name]]></code>
    </PossiblyNullPropertyFetch>
    <UnnecessaryVarAnnotation>
      <code><![CDATA[object]]></code>
    </UnnecessaryVarAnnotation>
  </file>
  <file src="../templates/presszone/parts/nested-post.php">
    <RedundantCondition>
      <code><![CDATA[isset($attachmentsHandler)]]></code>
    </RedundantCondition>
    <TypeDoesNotContainNull>
      <code><![CDATA[new \FPZ\Attachments()]]></code>
    </TypeDoesNotContainNull>
    <TypeDoesNotContainType>
      <code><![CDATA[!empty($filteredReactions)]]></code>
      <code><![CDATA[empty($filteredReactions)]]></code>
    </TypeDoesNotContainType>
    <UnusedVariable>
      <code><![CDATA[$indentPx]]></code>
      <code><![CDATA[$slugBase]]></code>
    </UnusedVariable>
  </file>
  <file src="../templates/presszone/parts/poll.php">
    <InvalidArgument>
      <code><![CDATA[$percentage]]></code>
    </InvalidArgument>
    <InvalidOperand>
      <code><![CDATA[($voteCount / $totalVotesCast) * 100]]></code>
    </InvalidOperand>
    <UnnecessaryVarAnnotation>
      <code><![CDATA[bool]]></code>
      <code><![CDATA[int]]></code>
    </UnnecessaryVarAnnotation>
  </file>
  <file src="../templates/presszone/search.php">
    <PossiblyInvalidCast>
      <code><![CDATA[$_GET['date_from']]]></code>
      <code><![CDATA[$_GET['date_range'] ?? '']]></code>
      <code><![CDATA[$_GET['date_to']]]></code>
      <code><![CDATA[$_GET['q'] ?? '']]></code>
      <code><![CDATA[$_GET['type']]]></code>
    </PossiblyInvalidCast>
    <RiskyCast>
      <code><![CDATA[$_GET['node_id']]]></code>
      <code><![CDATA[$_GET['user']]]></code>
    </RiskyCast>
    <UnusedVariable>
      <code><![CDATA[$no_results_messages]]></code>
      <code><![CDATA[$now]]></code>
      <code><![CDATA[$random_index]]></code>
    </UnusedVariable>
  </file>
  <file src="../templates/presszone/single-thread.php">
    <InvalidCast>
      <code><![CDATA[$totalPages]]></code>
    </InvalidCast>
    <NoValue>
      <code><![CDATA[$totalPages]]></code>
      <code><![CDATA[$totalPages]]></code>
      <code><![CDATA[$totalPages]]></code>
    </NoValue>
    <PossiblyFalseOperand>
      <code><![CDATA[$currentUrl]]></code>
    </PossiblyFalseOperand>
    <PossiblyInvalidCast>
      <code><![CDATA[$previewText]]></code>
      <code><![CDATA[$sortBy]]></code>
    </PossiblyInvalidCast>
    <TypeDoesNotContainType>
      <code><![CDATA[$totalPages > 1]]></code>
      <code><![CDATA[$totalPages > 1]]></code>
    </TypeDoesNotContainType>
    <UnusedForeachValue>
      <code><![CDATA[$post]]></code>
      <code><![CDATA[$post]]></code>
    </UnusedForeachValue>
    <UnusedVariable>
      <code><![CDATA[$attachmentsHandler]]></code>
      <code><![CDATA[$canVote]]></code>
      <code><![CDATA[$depth]]></code>
      <code><![CDATA[$depth]]></code>
      <code><![CDATA[$depth]]></code>
      <code><![CDATA[$enableReactions]]></code>
      <code><![CDATA[$maxThreadDepth]]></code>
      <code><![CDATA[$post]]></code>
      <code><![CDATA[$rangeEnd]]></code>
      <code><![CDATA[$rangeStart]]></code>
      <code><![CDATA[$useNestedView]]></code>
    </UnusedVariable>
  </file>
  <file src="../templates/presszone/user-posts.php">
    <UnusedVariable>
      <code><![CDATA[$totalPosts]]></code>
    </UnusedVariable>
  </file>
  <file src="mb_strcut_polyfill.php">
    <UnusedParam>
      <code><![CDATA[$encoding]]></code>
    </UnusedParam>
  </file>
</files>
