local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_CorePackages_0.Roact);
local v3 = require(l_CorePackages_0.RoactRodux);
local l_RoactAppPolicy_0 = require(l_CorePackages_0.Workspace.Packages.UniversalAppPolicy).RoactAppPolicy;
local v5 = require(l_Modules_0.LuaApp.Constants);
local l_FormFactor_0 = require(l_CorePackages_0.Workspace.Packages.FormFactor).Enums.FormFactor;
local l_RoactServices_0 = require(l_CorePackages_0.Workspace.Packages.RoactServices).RoactServices;
local v8 = require(l_Modules_0.LuaApp.Components.FriendsCarousel.api);
local l_CarouselWithLoadingTimer_0 = v8.CarouselWithLoadingTimer;
local l_setupFireEvent_0 = v8.setupFireEvent;
local v11 = require(l_Modules_0.LuaApp.Components.FriendsCarousel.FriendsCarouselWrapper.Container);
local v12 = require(l_Modules_0.LuaApp.Services.AppEventIngestService);
local l_FFlagFriendsCarouselPassRefreshSignalDown_0 = require(l_CorePackages_0.Workspace.Packages.SharedFlags).FFlagFriendsCarouselPassRefreshSignalDown;
local l_GAME_CAROUSEL_SIDE_COMPACT_PADDING_0 = v5.GAME_CAROUSEL_SIDE_COMPACT_PADDING;
local l_GAME_CAROUSEL_SIDE_WIDE_PADDING_0 = v5.GAME_CAROUSEL_SIDE_WIDE_PADDING;
local v16 = v2.PureComponent:extend("HomeFriendCarousel");
v16.init = function(v17)
    v17.fireAnalyticsEvent = l_setupFireEvent_0({
        infoForAllEvents = {
            uid = v17.props.localUserId
        },
        analytics = {
            EventStream = v17.props.eventIngestService
        }
    });
end;
v16.render = function(v18)
    if v18.props.showHomeFriendSection then
        local l_formFactor_0 = v18.props.formFactor;
        local l_layoutOrder_0 = v18.props.layoutOrder;
        local v21 = nil;
        v21 = if l_formFactor_0 == l_FormFactor_0.COMPACT then l_GAME_CAROUSEL_SIDE_COMPACT_PADDING_0 else l_GAME_CAROUSEL_SIDE_WIDE_PADDING_0;
        return v2.createElement(l_CarouselWithLoadingTimer_0, {
            renderComponent = function(v22)
                return v2.createElement(v11, {
                    carouselProps = {
                        LayoutOrder = l_layoutOrder_0,
                        formFactor = l_formFactor_0,
                        sideMargin = v21,
                        refreshSignal = if not l_FFlagFriendsCarouselPassRefreshSignalDown_0 then nil else v18.props.refreshSignal
                    },
                    onSuccessfulRender = v22.onSuccessfulRender
                });
            end,
            fireEvent = v18.fireAnalyticsEvent
        });
    else
        return nil;
    end;
end;
return (l_RoactServices_0.connect({
    eventIngestService = v12
})((l_RoactAppPolicy_0.connect(function(v23, _)
    return {
        showHomeFriendSection = v23.getHomePageFriendSection()
    };
end)((v3.connect(function(v25, _)
    return {
        formFactor = v25.FormFactor,
        localUserId = tostring(v25.LocalUserId) or ""
    };
end)(v16))))));


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_CorePackages_0 = game:GetService("CorePackages");
local v2 = require(l_CorePackages_0.Roact);
local _ = require(l_CorePackages_0.Packages.React);
local v4 = require(l_CorePackages_0.Packages.Cryo);
local l_useDispatch_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).Hooks.RoactRodux.useDispatch;
local l_useSelector_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).Hooks.RoactRodux.useSelector;
local v7 = require(l_Modules_0.LuaApp.Thunks.NavigateToUserInfo);
local v8 = require(l_Modules_0.LuaApp.Thunks.NavigateDownToAddFriendsPage);
local v9 = require(l_Modules_0.LuaApp.Components.FriendsCarousel.utils.useNavigateFromAddFriends);
local l_useContactImporterConfiguration_0 = require(l_CorePackages_0.Workspace.Packages.ContactImporter).Utils.useContactImporterConfiguration;
local l_UniversalAppPolicy_0 = require(l_CorePackages_0.Workspace.Packages.UniversalAppPolicy).UniversalAppPolicy;
local l_FormFactor_0 = require(l_CorePackages_0.Workspace.Packages.FormFactor).Enums.FormFactor;
local v13 = require(l_Modules_0.LuaApp.Constants);
local l_RoactServices_0 = require(l_CorePackages_0.Workspace.Packages.RoactServices).RoactServices;
local v15 = require(l_Modules_0.LuaApp.Services.RoactAnalytics);
local v16 = require(l_Modules_0.LuaApp.Services.AppEventIngestService);
local v17 = require(l_Modules_0.LuaApp.Actions.SetCurrentToastMessage);
local v18 = require(l_CorePackages_0.LuaSocialLibrariesDeps);
local l_getDeepValue_0 = v18.SocialLibraries.config({}).Dictionary.getDeepValue;
local l_llama_0 = v18.llama;
local v21 = require(l_Modules_0.Personalization.OmniFeed.OmniFeedConstants);
local l_getFFlagPYMKAddFriendsEntry_0 = require(l_CorePackages_0.Workspace.Packages.SharedFlags).getFFlagPYMKAddFriendsEntry;
local v23 = require(l_Modules_0.Personalization.Flags.getFFlagPYMKShowAddFriendsButton_DEV);
local l_GAME_CAROUSEL_SIDE_COMPACT_PADDING_0 = v13.GAME_CAROUSEL_SIDE_COMPACT_PADDING;
local l_GAME_CAROUSEL_SIDE_WIDE_PADDING_0 = v13.GAME_CAROUSEL_SIDE_WIDE_PADDING;
local _ = require(l_Modules_0.LuaApp.Components.PYMKCarousel.api).PYMKCarouselComponent;
local l_PYMKCarouselEntryPoint_0 = require(l_Modules_0.LuaApp.Components.PYMKCarousel.api).PYMKCarouselEntryPoint;
local v29 = {
    renderFriendRecommendationCarousel = function(v28)
        return v2.createElement(l_PYMKCarouselEntryPoint_0, v28);
    end
};
local v50 = l_RoactServices_0.connect({
    roactAnalytics = v15,
    eventIngestService = v16
})(function(v30)
    local v31 = v4.Dictionary.join(v29, v30);
    local v33 = l_useSelector_0(function(v32)
        return v32.FormFactor;
    end);
    local v35 = l_useSelector_0(function(v34)
        return l_getDeepValue_0(v34, string.format("OmniRecommendations.%s.recommendationsId", v13.OmniRecommendationsPageType.PAGE_TYPE_HOME)) or {};
    end);
    local v36 = l_useDispatch_0();
    local function v39(v37, v38)
        v36(v7(v37, {
            profilePeekViewProps = v4.Dictionary.join({
                resetPeekView = true
            }, v38 or {})
        }));
    end;
    local v40 = v9({
        policyIsEnabled = v31.isContactImporterPolicyEnabled
    });
    local function v42(v41)
        if not v41 then
            v36(v8());
            return ;
        else
            v40();
            return ;
        end;
    end;
    local l_shouldShowContactImporterModal_0 = l_useContactImporterConfiguration_0({
        policyIsEnabled = v31.isContactImporterPolicyEnabled
    }).shouldShowContactImporterModal;
    local function v45(v44)
        v36(v17({
            toastMessage = v44
        }));
    end;
    local v46 = if v33 == l_FormFactor_0.COMPACT then l_GAME_CAROUSEL_SIDE_COMPACT_PADDING_0 else l_GAME_CAROUSEL_SIDE_WIDE_PADDING_0;
    local v47 = v31.topicLayoutData or {};
    local v48 = true;
    if v47[v21.TopicLayoutDataKeys.PYMKFindFriendsEnabled] ~= "true" then
        v48 = true;
        if v47[v21.TopicLayoutDataKeys.PYMKFindFriendsEnabled] ~= true then
            v48 = v23();
        end;
    end;
    local v49 = true;
    if v47[v21.TopicLayoutDataKeys.PYMKSeeAllEnabled] ~= "true" then
        v49 = true;
        if v47[v21.TopicLayoutDataKeys.PYMKSeeAllEnabled] ~= true then
            v49 = v23();
        end;
    end;
    return v2.createElement("Frame", {
        key = v35,
        Size = UDim2.new(1, 0, 1, 0),
        BackgroundTransparency = 1
    }, {
        FriendRecommendationCarouselFeedItem = v31.renderFriendRecommendationCarousel({
            findFriendsTileEnabled = v48,
            seeAllTileEnabled = v49,
            carouselTitle = v31.carouselTitle,
            openProfilePeekView = v39,
            sideMargin = v46,
            showToast = v45,
            roactAnalytics = l_llama_0.None,
            diagService = v31.roactAnalytics.Diag,
            shouldShowContactImporterBadge = if not l_getFFlagPYMKAddFriendsEntry_0() then nil else l_shouldShowContactImporterModal_0,
            goToAddFriendsPage = not l_getFFlagPYMKAddFriendsEntry_0() and function()
            end or v42,
            eventIngestService = v31.eventIngestService
        })
    });
end);
if l_getFFlagPYMKAddFriendsEntry_0() then
    v50 = l_UniversalAppPolicy_0.connect(function(v51)
        return {
            isContactImporterPolicyEnabled = v51.getContactImporterEnabled()
        };
    end)(v50);
end;
return v50;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_CorePackages_0 = game:GetService("CorePackages");
local v2 = require(l_CorePackages_0.Roact);
local v3 = require(l_CorePackages_0.RoactRodux);
local v4 = require(l_CorePackages_0.Packages.t);
local _ = require(l_CorePackages_0.Workspace.Packages.GameTile);
local v6 = require(l_Modules_0.LuaApp.Constants);
local l_FormFactor_0 = require(l_CorePackages_0.Workspace.Packages.FormFactor).Enums.FormFactor;
local v8 = require(l_Modules_0.LuaApp.AppPage);
local _ = require(l_Modules_0.Personalization.DataStoreTypes);
local v10 = require(l_Modules_0.Personalization.Games.GameSortContainer);
local v11 = require(l_Modules_0.Personalization.OmniFeed.OmniFeedProps);
local v12 = require(l_Modules_0.Personalization.Games.GameSortDataLoader);
local v13 = require(l_Modules_0.LuaApp.mutedError);
local v14 = require(l_Modules_0.Personalization.OmniFeed.OmniFeedConstants);
local l_GetFFlagApolloClientFetchExperiences_0 = require(l_CorePackages_0.Workspace.Packages.SharedFlags).GetFFlagApolloClientFetchExperiences;
local l_FFlagLuaAppPlayButtonStyle_0 = require(l_CorePackages_0.Workspace.Packages.SharedFlags).FFlagLuaAppPlayButtonStyle;
local v17 = require(l_Modules_0.Personalization.Flags.getFFlagLuaAppDiscoverPageGrid);
local v18 = require(l_Modules_0.Personalization.Flags.GetFFlagLuaAppSortHideSeeAll);
local l_GetFFlagLuaAppUseTooltipsFromSort_0 = require(l_CorePackages_0.Workspace.Packages.SharedFlags).GetFFlagLuaAppUseTooltipsFromSort;
local v20 = require(l_Modules_0.Personalization.Flags.FFlagLuaAppLinkSortTitle);
local v21 = require(l_Modules_0.Personalization.Flags.FFlagLuaAppCountdownSubtitle);
local v22 = require(l_Modules_0.Personalization.Flags.FFlagOmniItemsRowDataEnabled);
local l_GAME_CAROUSEL_SIDE_COMPACT_PADDING_0 = v6.GAME_CAROUSEL_SIDE_COMPACT_PADDING;
local l_GAME_CAROUSEL_SIDE_WIDE_PADDING_0 = v6.GAME_CAROUSEL_SIDE_WIDE_PADDING;
local v25 = v2.PureComponent:extend("GameCarouselFeedItem");
v25.validateProps = v4.strictInterface({
    [v11.key] = v11.interface,
    sortIndex = v4.number,
    isOmni = v4.boolean,
    topicLayoutData = v4.optional(v4.table),
    formFactor = v4.string,
    sortName = v4.string,
    itemRowData = v4.optional(v4.table)
});
v25.render = function(v26)
    local l_sortIndex_0 = v26.props.sortIndex;
    local l_sortName_0 = v26.props.sortName;
    local l_formFactor_0 = v26.props.formFactor;
    local l_scrollViewPositionChangedSignal_0 = v26.props[v11.key].scrollViewPositionChangedSignal;
    local l_appPage_0 = v26.props[v11.key].appPage;
    local v32 = nil;
    local v33 = nil;
    local v34 = nil;
    local v35 = nil;
    local v36 = nil;
    local v37 = "Narrow";
    if v26.props.topicLayoutData then
        v34 = v26.props.topicLayoutData[v14.TopicLayoutDataKeys.ComponentType];
        if v34 then
            if v34 == v14.ComponentTypeDataKeys.EventTile then
                v37 = "Event";
            elseif v34 == v14.ComponentTypeDataKeys.GridTile then
                v37 = "Wide";
            end;
            local v38 = true;
            if v37 ~= "Wide" then
                v38 = v37 == "Event";
            end;
            v32 = v38;
        end;
        if v20 then
            v35 = v26.props.topicLayoutData[v14.TopicLayoutDataKeys.LinkPath];
        end;
        v33 = v26.props.topicLayoutData[v14.TopicLayoutDataKeys.PlayerCountStyle];
        if l_FFlagLuaAppPlayButtonStyle_0 then
            v36 = v26.props.topicLayoutData[v14.TopicLayoutDataKeys.PlayButtonStyle];
        end;
    end;
    local v39 = nil;
    if v26.props.topicLayoutData then
        local v40 = v26.props.topicLayoutData[v14.TopicLayoutDataKeys.IsSponsoredFooterAllowed];
        local v41 = false;
        if v40 ~= nil then
            v41 = v40 == "true";
        end;
        v39 = v41;
    end;
    local v42 = nil;
    if not (not v18() or not v26.props.topicLayoutData) then
        local v43 = v26.props.topicLayoutData[v14.TopicLayoutDataKeys.HideSeeAll];
        local v44 = false;
        if v43 ~= nil then
            v44 = v43 == "true";
        end;
        v42 = v44;
    end;
    local v45 = if not not l_GetFFlagLuaAppUseTooltipsFromSort_0() and v26.props.topicLayoutData then v26.props.topicLayoutData[v14.TopicLayoutDataKeys.InfoText] else nil;
    local v46 = nil;
    if not (not v21 or not v26.props.topicLayoutData) then
        local v47 = v26.props.topicLayoutData[v14.TopicLayoutDataKeys.EndTimestamp];
        if v47 then
            v46 = tonumber(v47);
            if v46 == nil then
                v13(string.format("Unable to convert `endTimestamp` to number with value: %s", v47));
            end;
        end;
    end;
    local v48 = nil;
    if not (not v21 or not v26.props.topicLayoutData) then
        v48 = v26.props.topicLayoutData[v14.TopicLayoutDataKeys.CountdownString];
        if not (not (v48 ~= nil and v48 ~= "") or v48:find("{hours}") and v48:find("{minutes}")) then
            v13(string.format("Invalid `countdownString` missing placeholder strings {hours} or {minutes}: %s", v48));
            v48 = nil;
        end;
    end;
    local v49 = nil;
    if l_appPage_0 == v8.Home then
        v49 = true;
    elseif l_appPage_0 == v8.Games then
        v49 = not not v17() or nil;
    end;
    local _ = nil;
    local v51 = {
        gameSortId = l_sortName_0,
        analyticsIndexOnPage = l_sortIndex_0,
        itemRowData = if not v22 then nil else v26.props.itemRowData,
        pageContext = l_appPage_0,
        sideMargin = if l_formFactor_0 == l_FormFactor_0.COMPACT then l_GAME_CAROUSEL_SIDE_COMPACT_PADDING_0 else l_GAME_CAROUSEL_SIDE_WIDE_PADDING_0,
        scrollViewPositionChangedSignal = l_scrollViewPositionChangedSignal_0,
        tileHasFriendFooter = true,
        gridSupportAllowed = v49,
        useGridTiles = v32,
        playerCountStyle = v33,
        isSponsoredFooterAllowed = v39,
        componentType = v34,
        linkPath = v35,
        hideSeeAll = if not v18() then nil else v42,
        gameTileLayoutType = v37,
        infoText = if not l_GetFFlagLuaAppUseTooltipsFromSort_0() then nil else v45,
        endTimestamp = if not v21 then nil else v46,
        countdownString = if not v21 then nil else v48,
        playButtonStyle = if not l_FFlagLuaAppPlayButtonStyle_0 then nil else v36
    };
    if not v26.props.isOmni or not l_GetFFlagApolloClientFetchExperiences_0() then
        return v2.createElement(v10, v51);
    else
        return v2.createElement(v12, {
            gameSortId = l_sortName_0,
            containerProps = v51
        });
    end;
end;
return (v3.connect(function(v52, v53)
    local v54 = v53[v11.key];
    local l_appPage_1 = v54.appPage;
    local v56 = nil;
    local v57 = nil;
    if not v53.isOmni then
        local v58 = nil;
        if l_appPage_1 == v8.Home then
            v58 = v6.GameSortGroups.HomeGames;
        elseif l_appPage_1 == v8.Games then
            v58 = v6.GameSortGroups.Games;
        else
            v13("Unsupported page for GameCarouselFeedItem data: " .. tostring(l_appPage_1));
        end;
        v56 = v52.GameSortGroups[v58].sorts[v53.sortIndex];
    else
        assert(l_appPage_1 == v8.Home);
        local v59 = v52.OmniRecommendations[v6.OmniRecommendationsPageType.PAGE_TYPE_HOME];
        local v60 = (not not v59 and v59.sorts or {})[v53.sortIndex];
        if not (not v60 or not v60.topicId) then
            v56 = tostring(v60.topicId);
        end;
    end;
    if v22 then
        v57 = (v52.Personalization.OmniItemsRowData[l_appPage_1] or {})[v54.feedItemPosition];
    end;
    return {
        sortName = v56,
        itemRowData = if not v22 then nil else v57,
        formFactor = v52.FormFactor
    };
end)(v25));


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_CorePackages_0 = game:GetService("CorePackages");
local v2 = require(l_CorePackages_0.Packages.React);
local l_useSelector_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).Hooks.RoactRodux.useSelector;
local v4 = require(l_Modules_0.LuaApp.Components.Games.GameGridSelector);
local v5 = require(l_Modules_0.LuaApp.Hooks.useRoactService);
local l_RoactAnalyticsCommonGameEvents_0 = require(l_CorePackages_0.Workspace.Packages.RoactServiceTags).RoactAnalyticsCommonGameEvents;
local v7 = require(l_Modules_0.LuaApp.getCurrentPage);
local v8 = require(l_Modules_0.LuaApp.Constants);
local _ = require(l_CorePackages_0.Workspace.Packages.AppCommonLib);
local v10 = require(l_Modules_0.Personalization.OmniFeed.OmniFeedProps);
local v11 = require(l_Modules_0.LuaApp.AppPage);
local l_useDispatch_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).Hooks.RoactRodux.useDispatch;
local v13 = require(l_Modules_0.LuaApp.Actions.RemoveSearchInGames);
local v14 = require(l_Modules_0.LuaApp.Actions.SetSearchInGamesStatus);
local v15 = require(l_Modules_0.LuaApp.Enum.SearchRetrievalStatus);
local v16 = require(l_Modules_0.LuaApp.Analytics.Events.Games.gamePlayIntent);
local v17 = require(l_Modules_0.LuaApp.Services.AppEventIngestService);
local v18 = require(l_Modules_0.Personalization.Games.GameSortImpressionsDetector);
local v19 = require(l_Modules_0.Personalization.Games.SendGameImpressions);
local v20 = require(l_Modules_0.LuaApp.Services.RoactAnalytics);
return function(v21)
    local l_searchUuid_0 = v21.searchUuid;
    local l_feedItemPosition_0 = v21[v10.key].feedItemPosition;
    local v24 = l_useDispatch_0();
    local v25 = v5(l_RoactAnalyticsCommonGameEvents_0);
    local v26 = v5(v20);
    local v27 = v5(v17);
    local v28 = v2.useRef(nil);
    local v29 = "SearchResults" .. tostring(l_searchUuid_0);
    local v31 = l_useSelector_0(function(v30)
        return v30.Search.SearchesInGames[l_searchUuid_0];
    end);
    local v33 = l_useSelector_0(function(v32)
        return v7(v32);
    end);
    local v35 = l_useSelector_0(function(v34)
        return v34.ScreenSize;
    end);
    v2.useEffect(function()
        return function()
            local function _(v36)
                v24(v13(v36));
                v24(v14(v36, v15.Removed));
            end;
            local l_l_searchUuid_0_0 = l_searchUuid_0;
            v24(v13(l_l_searchUuid_0_0));
            v24(v14(l_l_searchUuid_0_0, v15.Removed));
        end;
    end, {});
    local v39 = v8.GetPageSideMargin(v35.X);
    local v40, v41 = v2.useState(v35);
    local v42, v43 = v2.useState(Vector2.new(v35.X - 2 * v39, v35.Y));
    local function v48(v44)
        local v45 = {};
        for _, v47 in ipairs(v44) do
            if v47.topicId == v21.topicId then
                table.insert(v45, v47);
            end;
        end;
        return v45;
    end;
    local v49, v50 = v2.useState(not not v31 and v48(v31.entries) or {});
    v2.useEffect(function()
        v50((v48(v31.entries)));
    end, {
        v31
    });
    local function v53(v51)
        local v52 = v49[v51];
        if v52 ~= nil then
            v25.reportOpenGameDetailFromSearch(v52.placeId, v51, #v49, v52.isSponsored, v52.universeId, v33, l_feedItemPosition_0, v21.topicId);
        end;
    end;
    local function v56(v54)
        if v54 then
            local l_AbsoluteContentSize_0 = v54.AbsoluteContentSize;
            if v42.X == l_AbsoluteContentSize_0.X and v42.Y == l_AbsoluteContentSize_0.Y then
                return ;
            elseif l_AbsoluteContentSize_0.X > 0 and l_AbsoluteContentSize_0.Y > 0 then
                v43(l_AbsoluteContentSize_0);
            end;
        end;
    end;
    local function v58(v57)
        if v57 then
            v41(v57.AbsoluteSize);
        end;
    end;
    local v59 = v40.X and v8.GetPageSideMargin(v40.X);
    return v2.createElement("Frame", {
        Size = UDim2.new(1, 0, 0, 0),
        Position = UDim2.new(0, 0, 0, 0),
        AutomaticSize = Enum.AutomaticSize.Y,
        BackgroundTransparency = 1,
        [v2.Change.AbsoluteSize] = v58,
        ref = v28
    }, {
        Layout = v2.createElement("UIListLayout", {
            FillDirection = Enum.FillDirection.Vertical,
            HorizontalAlignment = Enum.HorizontalAlignment.Center,
            SortOrder = Enum.SortOrder.LayoutOrder,
            Padding = UDim.new(0, 12),
            [v2.Change.AbsoluteContentSize] = v56
        }),
        Padding = v2.createElement("UIPadding", {
            PaddingLeft = UDim.new(0, v59),
            PaddingRight = UDim.new(0, v59)
        }),
        v2.createElement(v4, {
            LayoutOrder = 2,
            entries = v49,
            source = "SearchResults",
            reportGameDetailOpened = v53,
            horizontalAlignment = Enum.HorizontalAlignment.Left,
            windowSize = Vector2.new(v42.X, v40.Y),
            screenSize = v35,
            searchResultGrid = true,
            gameEmphasis = v31 and v31.emphasis,
            currentSidePadding = v59,
            scrollViewPositionChangedSignal = v21[v10.key].scrollViewPositionChangedSignal,
            impressionsTag = v29,
            reportExperienceLaunched = function(v60)
                v16(v27, v8.AnalyticsContext.SearchExperienceTile, {
                    placeId = v60.placeId,
                    rootPlaceId = tonumber(v60.placeId),
                    sortEntryIndex = tostring(v60.index),
                    sortIndex = l_feedItemPosition_0,
                    gameSetTypeId = v21.topicId
                });
            end,
            launchExperienceEventContext = v8.AnalyticsContext.SearchExperienceTile
        }),
        GameSortImpressionsDetector = v2.createElement(v18, {
            parentRef = v28,
            pageContext = v11.SearchPage,
            impressionsTag = v29,
            scrollViewPositionChangedSignal = v21[v10.key].scrollViewPositionChangedSignal,
            sendGameImpressions = function(v61)
                if v31 then
                    v19.sendFromSearch(v27, v26, v61, v49, v11.SearchPage, {
                        searchUuid = l_searchUuid_0,
                        emphasisFlag = not v31.emphasis and 0 or 1,
                        seeAllFlag = 1,
                        sortPos = l_feedItemPosition_0,
                        gameSetTypeId = v21.topicId
                    });
                    return ;
                else
                    return ;
                end;
            end
        })
    });
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_CorePackages_0 = game:GetService("CorePackages");
local v2 = require(l_CorePackages_0.Packages.React);
local l_useStyle_0 = require(l_CorePackages_0.UIBlox).Core.Style.useStyle;
local l_useSelector_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).Hooks.RoactRodux.useSelector;
local v5 = require(l_Modules_0.LuaApp.Constants);
return function(v6)
    local v7 = l_useStyle_0();
    local l_Font_0 = v7.Font;
    local l_Font_1 = l_Font_0.Body.Font;
    local v10 = l_Font_0.BaseSize * l_Font_0.Header2.RelativeSize;
    local v12, v13 = v2.useState((l_useSelector_0(function(v11)
        return v11.ScreenSize;
    end)));
    local function v15(v14)
        if v14 then
            v13(v14.AbsoluteSize);
        end;
    end;
    local v16 = v12.X and v5.GetPageSideMargin(v12.X);
    return v2.createElement("Frame", {
        Size = UDim2.new(1, 0, 0, 32),
        AutomaticSize = Enum.AutomaticSize.XY,
        Position = UDim2.new(0, 0, 0, 0),
        BackgroundTransparency = v7.Theme.BackgroundContrast.Transparency,
        BackgroundColor3 = v7.Theme.BackgroundContrast.Color,
        BorderSizePixel = 0,
        [v2.Change.AbsoluteSize] = v15
    }, {
        Padding = v2.createElement("UIPadding", {
            PaddingLeft = UDim.new(0, v16),
            PaddingRight = UDim.new(0, v16),
            PaddingTop = UDim.new(0, 16),
            PaddingBottom = UDim.new(0, 16)
        }),
        BannerText = v2.createElement("TextLabel", {
            AutomaticSize = Enum.AutomaticSize.Y,
            BackgroundTransparency = 1,
            RichText = true,
            Size = UDim2.new(1, 0, 0, 32),
            Text = l_useSelector_0(function(v17)
                local v18 = v17.Search.SearchesInGames[v6.searchUuid];
                if not (not v18 or not v18.entries) then
                    for _, v20 in v18.entries, nil, nil do
                        if v20.topicId == v6.topicId then
                            return v20.name;
                        end;
                    end;
                end;
                return nil;
            end),
            TextSize = v10,
            Font = l_Font_1,
            TextWrapped = true,
            TextXAlignment = Enum.TextXAlignment.Left,
            TextYAlignment = Enum.TextYAlignment.Center,
            TextColor3 = v7.Theme.TextEmphasis.Color
        })
    });
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_CorePackages_0 = game:GetService("CorePackages");
local v2 = require(l_CorePackages_0.Roact);
local v3 = require(l_CorePackages_0.RoactRodux);
local v4 = require(l_CorePackages_0.Packages.t);
local v5 = require(l_Modules_0.LuaApp.Promise);
local v6 = require(l_Modules_0.LuaApp.Constants);
local v7 = require(l_Modules_0.LuaApp.Thunks.SetNetworkingErrorToast);
local l_FormFactor_0 = require(l_CorePackages_0.Workspace.Packages.FormFactor).Enums.FormFactor;
local v9 = require(l_Modules_0.LuaApp.Components.Home.HomeUserInfoWidget);
local v10 = require(l_Modules_0.Common.memoize);
local l_RoactServices_0 = require(l_CorePackages_0.Workspace.Packages.RoactServices).RoactServices;
local v12 = require(l_Modules_0.LuaApp.Services.RoactNetworking);
local v13 = require(l_Modules_0.Personalization.OmniFeed.OmniFeedProps);
local l_PreloadUsersThumbnail_0 = require(l_CorePackages_0.Workspace.Packages.UserLib).Thunks.PreloadUsersThumbnail;
local l_AvatarThumbnailRequests_0 = require(l_CorePackages_0.Workspace.Packages.UserLib).Utils.AvatarThumbnailRequests;
local l_GAME_CAROUSEL_SIDE_COMPACT_PADDING_0 = v6.GAME_CAROUSEL_SIDE_COMPACT_PADDING;
local l_GAME_CAROUSEL_SIDE_WIDE_PADDING_0 = v6.GAME_CAROUSEL_SIDE_WIDE_PADDING;
local v18 = v2.PureComponent:extend("UserInfoFeedItem");
v18.validateProps = v4.strictInterface({
    [v13.key] = v13.interface,
    formFactor = v4.string,
    localUserModel = v4.optional(v4.table),
    refresh = v4.callback,
    networking = v4.any
});
v18.init = function(v19)
    v19.isMounted = false;
    v19.refreshSignalConnection = v19.props[v13.key].refreshSignal:connect(function()
        if v19.isMounted then
            v19.props.refresh(v19.props.networking, v19.props.localUserModel);
        end;
    end);
end;
v18.didMount = function(v20)
    v20.isMounted = true;
end;
v18.render = function(v21)
    local l_formFactor_0 = v21.props.formFactor;
    local _ = nil;
    return v2.createElement(v9, {
        sideMargin = if l_formFactor_0 == l_FormFactor_0.COMPACT then l_GAME_CAROUSEL_SIDE_COMPACT_PADDING_0 else l_GAME_CAROUSEL_SIDE_WIDE_PADDING_0
    });
end;
v18.willUnmount = function(v24)
    v24.isMounted = false;
    if v24.refreshSignalConnection then
        v24.refreshSignalConnection:disconnect();
        v24.refreshSignalConnection = nil;
    end;
end;
local v27 = v10(function(v25, v26)
    return v25[v26];
end);
return (l_RoactServices_0.connect({
    networking = v12
})((v3.connect(function(v28, _)
    return {
        formFactor = v28.FormFactor,
        localUserModel = v27(v28.Users, v28.LocalUserId)
    };
end, function(v30)
    return {
        refresh = function(_, v32)
            return v5.all({
                (v30(l_PreloadUsersThumbnail_0({
                    v32.id
                }, l_AvatarThumbnailRequests_0.HOME_HEADER_USER)))
            }):andThen(function(v33)
                return v5.resolve(v33);
            end, function(v34)
                v30(v7(v34));
                return v5.reject(v34);
            end);
        end
    };
end)(v18))));


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_CorePackages_0 = game:GetService("CorePackages");
local v2 = require(l_CorePackages_0.Roact);
local v3 = require(l_CorePackages_0.Packages.React);
local l_useStyle_0 = require(l_CorePackages_0.UIBlox).Core.Style.useStyle;
local v5 = require(l_CorePackages_0.Cryo);
local l_useDesignTokens_0 = require(l_CorePackages_0.Workspace.Packages.Style).useDesignTokens;
local l_Signal_0 = require(l_CorePackages_0.Workspace.Packages.AppCommonLib).Signal;
local v8 = require(l_CorePackages_0.Promise);
local l_isSubjectToDesktopPolicies_0 = require(l_CorePackages_0.Workspace.Packages.SharedFlags).isSubjectToDesktopPolicies;
local _ = require(l_CorePackages_0.Workspace.Packages.GameTile);
local l_useUiModeInfo_0 = require(l_CorePackages_0.Workspace.Packages.RobloxAppHooks).useUiModeInfo;
local l_UiMode_0 = require(l_CorePackages_0.Workspace.Packages.RobloxAppEnums).UiMode;
local v13 = require(l_Modules_0.LuaApp.Components.RefreshScrollingFrameWithLoadMore);
local v14 = require(l_Modules_0.Personalization.OmniFeed.OmniFeedItem);
local v15 = require(l_Modules_0.Personalization.OmniFeed.OmniFeedImpressionsDetector);
local v16 = require(l_Modules_0.Personalization.OmniFeed.OmniFeedConstants);
local v17 = require(l_Modules_0.Personalization.OmniFeed.OmniFeedProps);
local v18 = require(l_Modules_0.LuaApp.Hooks.useAppPolicy);
local l_useSelector_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).Hooks.RoactRodux.useSelector;
local l_dependencyArray_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).Hooks.dependencyArray;
local l_useAnimateScrollViewToSelection_0 = require(l_CorePackages_0.Workspace.Packages.GameCollectionViews).useAnimateScrollViewToSelection;
local _ = require(l_Modules_0.Personalization.DataStoreTypes);
local v23 = require(l_Modules_0.Personalization.OmniFeed.OmniFeedTypes);
local v24 = require(l_Modules_0.LuaApp.Components.EventReceivers.JoinYourFriendsRefreshEvent);
local v25 = require(l_Modules_0.LuaApp.Constants);
local v26 = require(l_Modules_0.Personalization.OmniFeed.DataStore.FeedItemModel);
local v27 = require(l_Modules_0.Personalization.Analytics.ScrollDetector);
local v28 = require(l_Modules_0.Personalization.Flags.GetFFlagOmniLoadMoreHeuristicMount);
local v29 = require(l_Modules_0.Personalization.Flags.GetFFlagUseUpsellCardOmniFeedItem);
local v30 = require(l_Modules_0.Personalization.Flags.FIntLuaJoinYourFriendsRefreshInterval);
local v31 = require(l_Modules_0.Personalization.Flags.getFFlagLuaAppFixFeedZIndex);
local v32 = require(l_Modules_0.Personalization.Flags.FFlagLuaAppConsoleSupportRFY);
local v33 = game:DefineFastFlag("UseOmniFeedDividerOverrides", false);
local v34 = game:DefineFastInt("OmniFeedDividerHeightOverride", -1);
local v35 = game:DefineFastInt("OmniFeedDividerPaddingOverride", -1);
local v36 = game:DefineFastInt("LuaAppOmniFeedInitialNumRows", 6);
local v37 = game:DefineFastInt("LuaAppOmniFeedLoadlNumRows", 3);
local function _(v38)
    local v39 = v38.treatmentProps.topicLayoutData and v38.treatmentProps.topicLayoutData[v16.TopicLayoutDataKeys.ComponentType];
    local v40 = true;
    if v39 ~= v16.ComponentTypeDataKeys.GridTile then
        v40 = v39 == v16.ComponentTypeDataKeys.EventTile;
    end;
    return v40;
end;
local v42 = game:DefineFastString("LuaAppSortsWithDividers", "200000000, 200000001");
local v43 = game:DefineFastFlag("LuaAppUseSortsWithDividersFString2", false);
local v44 = {};
if v43 then
    for v45 in v42:gmatch("(%d+)") do
        v44[v45] = true;
    end;
end;
local v46 = game:DefineFastInt("LuaAppOmniFeedScrollAnimDurationMs", 400) / 1000;
local function v55(v47, v48, v49)
    local v50 = 0;
    local v51 = 0;
    for v52 = v48, #v47 do
        local v53 = v47[v52];
        local v54 = (not not v53 and v53.treatmentProps) and v53.treatmentProps.numberOfRows or 1;
        if v54 == -1 then
            v54 = 1;
        end;
        v51 = v51 + 1;
        v50 = v50 + v54;
        if not (v49 > v50) then
            break;
        end;
    end;
    return v51;
end;
return function(v56)
    local v57 = l_useStyle_0();
    local v59 = v18(function(v58)
        return v58.useGridPageLayout();
    end);
    local v61 = v18(function(v60)
        return v60.getMountAllOmniFeedItems();
    end);
    local v62 = nil;
    if v32 then
        v62 = l_useUiModeInfo_0().uiMode == l_UiMode_0.TenFoot;
        v59 = v59 and not v62;
    end;
    local v63 = v3.useRef(l_Signal_0.new());
    local v64 = v3.useRef(l_Signal_0.new());
    local v65 = v3.useRef(0);
    local v66 = v3.useRef(false);
    local l_scrollingFrameRef_0 = v56.scrollingFrameRef;
    local v68 = nil;
    local v69 = nil;
    if v28() then
        local v70, v71 = v3.useState(function()
            if not v61 then
                if not v32 then
                    return 1;
                else
                    return (v55(v56.omniFeedItems, 1, v36));
                end;
            else
                return #v56.omniFeedItems;
            end;
        end);
        v68 = v70;
        v69 = v71;
    end;
    local l_pageContext_0 = v56.pageContext;
    local l_impressionsTag_0 = v56.impressionsTag;
    local l_omniFeedItems_0 = v56.omniFeedItems;
    local l_Theme_0 = v57.Theme;
    local l_Color_0 = l_Theme_0.BackgroundDefault.Color;
    local l_Transparency_0 = l_Theme_0.BackgroundDefault.Transparency;
    local l_Color_1 = l_Theme_0.BackgroundContrast.Color;
    local v79 = nil;
    v79 = not v59 and 0 or 4;
    local v80 = l_useDesignTokens_0();
    l_Color_0 = v80.LuaApps.App.Page.BackgroundColor;
    l_Transparency_0 = v80.LuaApps.App.Page.BackgroundTransparency;
    local v81 = v3.useMemo(function()
        return v80.LuaApps.HomeOmniFeed.getLayoutSpacing(v59);
    end, l_dependencyArray_0(v59, v80));
    local v82 = v56.topPadding or v81.topMargin;
    local v84 = l_useSelector_0(function(v83)
        return v83.Personalization.OmniItemsGlobalLayoutData;
    end);
    local l_v84_0 = v84;
    if l_v84_0 then
        l_v84_0 = true;
        if v84[v16.GlobalLayoutDataKeys.JYFRefresh] ~= "true" then
            l_v84_0 = v84[v16.GlobalLayoutDataKeys.JYFRefresh] == true;
        end;
    end;
    local v88 = v3.useCallback(function(v86)
        v65.current = tick();
        v64.current:fire();
        local _ = nil;
        return v56.refresh(if not v86 then v16.OmniRecommendationsRequestIntent.ManualRefresh else v16.OmniRecommendationsRequestIntent.FriendPresenceChange);
    end);
    local function _()
        v66.current = false;
        if l_scrollingFrameRef_0.current then
            local l_Y_0 = l_scrollingFrameRef_0.current.CanvasPosition.Y;
            local l_Height_0 = v25.JoinYourFriendsTile.Height;
            if l_Y_0 >= 0 and l_Y_0 <= l_Height_0 then
                v88(true);
            end;
        end;
    end;
    v3.useEffect(function()
        local v92 = nil;
        if l_v84_0 then
            v92 = v24.Event:Connect(function()
                if not v66.current then
                    local v93 = v30 - (tick() - v65.current);
                    if v93 < 0 then
                        v66.current = false;
                        if l_scrollingFrameRef_0.current then
                            local l_Y_1 = l_scrollingFrameRef_0.current.CanvasPosition.Y;
                            local l_Height_1 = v25.JoinYourFriendsTile.Height;
                            if l_Y_1 >= 0 and l_Y_1 <= l_Height_1 then
                                v88(true);
                                return ;
                            end;
                        end;
                    else
                        v66.current = true;
                        task.delay(v93, function()
                            v66.current = false;
                            if l_scrollingFrameRef_0.current then
                                local l_Y_2 = l_scrollingFrameRef_0.current.CanvasPosition.Y;
                                local l_Height_2 = v25.JoinYourFriendsTile.Height;
                                if l_Y_2 >= 0 and l_Y_2 <= l_Height_2 then
                                    v88(true);
                                end;
                            end;
                        end);
                    end;
                    return ;
                else
                    return ;
                end;
            end);
        end;
        return function()
            if v92 then
                v92:Disconnect();
                v92 = nil;
            end;
        end;
    end, {
        v56.refresh
    });
    local v99 = l_useSelector_0(function(v98)
        return v98.OmniRecommendations[l_pageContext_0];
    end);
    local v100 = not not v99 and v99.sorts or {};
    local v121 = v3.useMemo(function()
        local v101 = {
            Padding = v3.createElement("UIPadding", {
                PaddingTop = UDim.new(0, v82),
                PaddingBottom = UDim.new(0, 80)
            }),
            Layout = v3.createElement("UIListLayout", {
                SortOrder = Enum.SortOrder.LayoutOrder,
                FillDirection = Enum.FillDirection.Vertical
            })
        };
        local v102 = 1;
        local l_layoutPadding_0 = v81.layoutPadding;
        local v104 = v81.layoutPadding / 2;
        if v33 then
            if v35 >= 0 then
                l_layoutPadding_0 = v35;
            end;
            if v34 >= 0 then
                v104 = v34;
            end;
        end;
        for v105, v106 in ipairs(l_omniFeedItems_0) do
            if not v28() or v68 >= v105 then
                local v107 = v106.treatmentProps or {};
                local v108 = v26.getUniqueNameForAnalytics(v106);
                v107 = v5.Dictionary.join({
                    [v17.key] = v17.new(v105, v63.current, v64.current, l_pageContext_0)
                }, v107);
                local v109 = v105 > 1;
                local v110 = v109 and v106.treatmentType == v23.UpsellCard;
                local v111 = if not v106.itemId then nil else v106.itemId.sortIndex;
                local v112 = if not v111 then nil else v100[v111];
                if v112 and (not v112.topic or v112.topic == "") then
                    v109 = false;
                end;
                if v109 then
                    v101["feedPaddingTop_" .. tostring(v105)] = v2.createElement("Frame", {
                        Size = if not not v29() and v110 then UDim2.new(1, 0, 0, v80.Global.Space_150) else UDim2.new(1, 0, 0, l_layoutPadding_0),
                        BackgroundTransparency = 1,
                        BorderSizePixel = 0,
                        LayoutOrder = v102
                    });
                    v102 = v102 + 1;
                end;
                v101["feedItem_" .. tostring(v105)] = v3.createElement(v14, {
                    omniFeedItemType = v106.treatmentType,
                    layoutOrder = v102,
                    feedItemNameId = v108,
                    itemProps = v107,
                    itemIndex = v105,
                    impressionsTag = l_impressionsTag_0,
                    zIndex = if not not v28() and v31() then v68 - v105 else -1 * v105
                });
                v102 = v102 + 1;
                local v113 = v32 and v62;
                local v114 = nil;
                local v115 = false;
                if (not v113 and v105 > 1) and v105 < #l_omniFeedItems_0 then
                    local v116 = l_omniFeedItems_0[v105 - 1];
                    local v117 = l_omniFeedItems_0[v105];
                    local v118 = l_omniFeedItems_0[v105 + 1];
                    if not (not v43 or not (not (not v117.itemId or not v117.itemId.topicId) and v44[v117.itemId.topicId]) and ((not v118.itemId or not v118.itemId.topicId) or not v44[v118.itemId.topicId])) then
                        v115 = true;
                    end;
                    if not (not (v106.treatmentType == v23.HomeGameGrid) or v118.treatmentType == v23.HomeGameGrid) or (v106.treatmentType ~= v23.HomeGameGrid and v116.treatmentType == v23.HomeGameGrid) and v118.treatmentType == v23.HomeGameGrid then
                        v115 = true;
                    elseif l_isSubjectToDesktopPolicies_0() then
                        local v119 = false;
                        if v106.treatmentType == v23.Carousel then
                            v119 = false;
                            if v118.treatmentType == v23.HomeGameGrid then
                                local v120 = v106.treatmentProps.topicLayoutData and v106.treatmentProps.topicLayoutData[v16.TopicLayoutDataKeys.ComponentType];
                                v119 = true;
                                if v120 ~= v16.ComponentTypeDataKeys.GridTile then
                                    v119 = v120 == v16.ComponentTypeDataKeys.EventTile;
                                end;
                                if v119 then
                                    v120 = v118.treatmentProps.topicLayoutData and v118.treatmentProps.topicLayoutData[v16.TopicLayoutDataKeys.ComponentType];
                                    v119 = true;
                                    if v120 ~= v16.ComponentTypeDataKeys.GridTile then
                                        v119 = v120 == v16.ComponentTypeDataKeys.EventTile;
                                    end;
                                end;
                            end;
                        end;
                        v114 = v119;
                    end;
                end;
                if not (not v115 and not v114) then
                    v101["feedPaddingBottom_" .. tostring(v105)] = v2.createElement("Frame", {
                        Size = UDim2.new(1, 0, 0, l_layoutPadding_0),
                        BackgroundTransparency = 1,
                        BorderSizePixel = 0,
                        LayoutOrder = v102
                    });
                    v102 = v102 + 1;
                end;
                if v115 then
                    v101["feedDivider_" .. tostring(v105)] = v2.createElement("Frame", {
                        Size = UDim2.new(1, 0, 0, v104),
                        BackgroundTransparency = 0,
                        BackgroundColor3 = l_Color_1,
                        BorderSizePixel = 0,
                        LayoutOrder = v102
                    });
                    v102 = v102 + 1;
                end;
                if not (not (v28() and v105 == v68) or not v56.hasNextPage) then
                    v101["loadingBlank_" .. tostring(v105)] = v2.createElement("Frame", {
                        Size = UDim2.new(1, 0, 0, 10),
                        BackgroundTransparency = 1,
                        BorderSizePixel = 0,
                        LayoutOrder = v102
                    });
                    v102 = v102 + 1;
                end;
            else
                break;
            end;
        end;
        return v101;
    end, l_dependencyArray_0(l_omniFeedItems_0, v100, if not v28() then nil else v68));
    if v32 then
        l_useAnimateScrollViewToSelection_0(l_scrollingFrameRef_0, v46);
    end;
    local v122 = v3.useCallback(function()
        v63.current:fire();
    end);
    local v123 = nil;
    if v28() then
        v123 = function()
            if v68 < #l_omniFeedItems_0 then
                local _ = nil;
                v69(if not v61 then if v32 then v68 + v55(l_omniFeedItems_0, v68 + 1, v37) else v68 + 1 else #l_omniFeedItems_0);
                return true;
            else
                return false;
            end;
        end;
        v3.useEffect(function()
            v123();
        end, {
            l_omniFeedItems_0
        });
    end;
    return v2.createElement(v13, {
        Position = UDim2.new(0, 0, 0, 0),
        Size = UDim2.new(1, 0, 1, 0),
        CanvasSize = UDim2.new(1, 0, 0, 0),
        BackgroundColor3 = l_Color_0,
        BackgroundTransparency = l_Transparency_0,
        BorderSizePixel = 0,
        ScrollBarThickness = v79,
        onLoadMore = function()
            if not v28() or not v123() then
                local l_loadNext_0 = v56.loadNext;
                if not l_loadNext_0 then
                    return v8.resolve();
                else
                    return l_loadNext_0();
                end;
            else
                return v8.reject();
            end;
        end,
        refresh = v88,
        parentAppPage = l_pageContext_0,
        onAbsoluteSizeChangedCallback = v56.onAbsoluteSizeChanged,
        onCanvasSizeChangedCallback = v122,
        onCanvasPositionChangedCallback = v122,
        useAutomaticSizeContentFrame = true,
        [v2.Ref] = l_scrollingFrameRef_0,
        createEndOfScrollElement = v56.createEndOfScrollElement,
        onScrollDirectionChanged = v56.onScrollDirectionChanged,
        ScrollingEnabled = if not v32 then nil else not v62
    }, {
        OmniFeed = v3.createElement("Frame", {
            Size = UDim2.new(1, 0, 0, 0),
            AutomaticSize = Enum.AutomaticSize.Y,
            BackgroundTransparency = 1,
            BorderSizePixel = 0
        }, v121),
        OmniFeedImpressionsDetector = v3.createElement(v15, {
            onItemsUpdatedSignal = v63.current,
            impressionsTag = l_impressionsTag_0,
            omniFeedItems = l_omniFeedItems_0,
            eventContext = v56.analyticsContext
        }),
        ScrollDetector = if not v56.sendScrollEvent then nil else v3.createElement(v27, {
            scrollingFrameRef = l_scrollingFrameRef_0,
            sendScrollEvent = v56.sendScrollEvent
        })
    });
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_CorePackages_0 = game:GetService("CorePackages");
local v2 = require(l_CorePackages_0.Packages.React);
local v3 = require(l_CorePackages_0.Cryo);
local v4 = require(l_CorePackages_0.Workspace.Packages.RobloxAppEnums);
local l_useUiModeInfo_0 = require(l_CorePackages_0.Workspace.Packages.RobloxAppHooks).useUiModeInfo;
local l_UiMode_0 = v4.UiMode;
local v7 = require(l_Modules_0.Personalization.OmniFeed.FeedViews.OmniFeedViewLoadMore);
local v8 = require(l_Modules_0.Personalization.OmniFeed.FeedViews.OmniFeedViewAnimated);
local v9 = game:DefineFastFlag("EnableAnimatedOmniFeed", false);
return function(v10)
    local v11 = l_useUiModeInfo_0().uiMode == l_UiMode_0.TenFoot;
    if not v9 or not v11 then
        return v2.createElement(v7, v10);
    else
        return v2.createElement(v8, (v3.Dictionary.join(v10, {
            loadNext = v3.None,
            hasNextPage = v3.None
        })));
    end;
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_CorePackages_0.Packages.React);
local v3 = require(l_CorePackages_0.UIBlox);
local l_ExperienceTileV3_0 = v3.App.Tile.ExperienceTileV3;
local l_Images_0 = v3.App.ImageSet.Images;
local l_ImageSetLabel_0 = v3.Core.ImageSet.ImageSetLabel;
local v7 = require(l_Modules_0.LuaApp.Constants);
local v8 = require(l_Modules_0.LuaApp.getCurrentPage);
local l_AspectRatioModeEnum_0 = v3.App.Tile.AspectRatioModeEnum;
local l_StyledTextLabel_0 = v3.App.Text.StyledTextLabel;
local l_Button_0 = v3.App.Button.Button;
local l_ButtonType_0 = v3.App.Button.Enum.ButtonType;
local l_useStyle_0 = v3.Core.Style.useStyle;
local l_LoadableImage_0 = v3.App.Loading.LoadableImage;
local l_StandardButtonSize_0 = v3.App.Button.Enum.StandardButtonSize;
local v16 = require(l_Modules_0.LuaApp.Services.AppEventIngestService);
local l_AppSessionService_0 = require(l_CorePackages_0.Workspace.Packages.RoactServiceTags).AppSessionService;
local l_SetGamePlaySession_0 = require(l_CorePackages_0.Workspace.Packages.RobloxAppSessionization).SetGamePlaySession;
local v19 = require(l_Modules_0.LuaApp.Hooks.useRoactService);
local l_useDispatch_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).Hooks.RoactRodux.useDispatch;
local l_useSelector_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).Hooks.RoactRodux.useSelector;
local l_useImpressionsTagger_0 = require(l_CorePackages_0.Workspace.Packages.Impressions).useImpressionsTagger;
local l_useLocalization_0 = require(l_CorePackages_0.Workspace.Packages.Localization).Hooks.useLocalization;
local v24 = require(l_Modules_0.LuaApp.Thunks.OpenProfilePeekView);
local v25 = require(l_Modules_0.LuaApp.Util.joinGame);
local v26 = require(l_Modules_0.LuaApp.Analytics.Events.joinGameInPlacesList);
local l_SessionType_0 = require(l_CorePackages_0.Workspace.Packages.RobloxAppSessionization).SessionType;
local l_GameTileConstants_0 = require(l_CorePackages_0.Workspace.Packages.GameTile).GameTileConstants;
local v29 = require(l_Modules_0.Personalization.Flags.getFFlagLuaAppHomeJoinYourFriendsGridTile);
local v30 = require(l_Modules_0.Personalization.Flags.getFFlagLuaAppHomeJoinYourFriendsLogging);
local v31 = require(l_Modules_0.Personalization.Flags.getFFlagLuaAppHomeJoinYourFriendsSession);
local v32 = require(l_Modules_0.Personalization.Flags.getFFlagLuaAppHomeJoinYourFriendsDesktop);
local l_EnableOptionalPlaceIdForUserIdGameJoins_0 = require(l_CorePackages_0.Workspace.Packages.SharedFlags).EnableOptionalPlaceIdForUserIdGameJoins;
local l_SocialContextToastIxpConfig_0 = require(l_CorePackages_0.Workspace.Packages.SharedFlags).SocialContextToastIxpConfig;
local v35 = nil;
local v36 = nil;
if not v32() then
    v35 = v7.JoinYourFriendsTile.Width;
    v36 = v7.JoinYourFriendsTile.Height;
end;
local function _(v37, v38, v39)
    if v30() then
        v39:sendEventDeferred(v37, "joinYourFriendProfileViewOpen", {
            friendId = v38.friendUserId,
            universeId = v38.universeId,
            rootPlaceId = v38.rootPlaceId
        });
    end;
end;
local function v49(v41, v42, v43, v44, v45, v46, v47)
    local v48 = 0;
    if v32() then
        v48 = v47.X;
    end;
    return v2.createElement(l_Button_0, {
        buttonType = l_ButtonType_0.PrimaryContextual,
        position = l_GameTileConstants_0.TileOverlay.BottomRightPosition,
        anchorPoint = Vector2.new(1, 1),
        text = v42,
        fontStyle = v43.Font.CaptionHeader,
        fitContent = true,
        standardSize = l_StandardButtonSize_0.XSmall,
        maxWidth = if not v32() then v35 * 0.92 else v48 * 0.92,
        isDisabled = false,
        isLoading = false,
        onActivated = function()
            if v31() then
                l_SetGamePlaySession_0(v46, l_SessionType_0.StructuralIdentifier.GamePlayFromJoinYourFriends, true);
            end;
            if v30() then
                v26(v45, v41, v44, tonumber(v44), nil, nil, "JoinYourFriends");
            end;
            if not l_EnableOptionalPlaceIdForUserIdGameJoins_0() or not l_SocialContextToastIxpConfig_0.CheckIsFallbackPlaceIdParamEnabled() then
                v25:ByUser({
                    id = v41
                }, "JoinYourFriends");
                return ;
            else
                v25:ByUserAndPlaceId({
                    id = v41
                }, v44, "JoinYourFriends");
                return ;
            end;
        end
    });
end;
local function v53(v50, v51, v52)
    return v2.createElement(l_LoadableImage_0, {
        BackgroundTransparency = 1,
        ImageTransparency = v51,
        Image = v50,
        Position = UDim2.fromScale(0, 0),
        Size = UDim2.fromScale(1, 1),
        ScaleType = Enum.ScaleType.Fit,
        cornerRadius = if not v52 then nil else v52.CornerRadius
    });
end;
local function _(v54)
    if not v54 then
        return "";
    else
        return "rbxthumb://type=AvatarBust&id=" .. v54 .. "&w=150&h=150";
    end;
end;
local function _(v56)
    if not v56 then
        return "";
    else
        return "rbxthumb://type=Asset&id=" .. v56 .. "&w=420&h=420";
    end;
end;
local function v65(v58, v59, v60, v61, v62, v63)
    local _ = nil;
    return v2.createElement(l_StyledTextLabel_0, {
        text = v58,
        size = UDim2.new(0, if not v32() then (v35 - v62.Leading) - v62.Trailing else (v63.X - v62.Leading) - v62.Trailing, 0, 20),
        automaticSize = Enum.AutomaticSize.X,
        fontStyle = v59,
        colorStyle = v60,
        textTruncate = Enum.TextTruncate.AtEnd,
        lineHeight = 1,
        fluidSizing = false,
        layoutOrder = v61,
        richText = false
    });
end;
local function v71(v66, v67, v68)
    if not v29() then
        return nil;
    else
        local l_Spacing_0 = v67.Tokens.Component.VerticalTile.Base.ContentBottom.Spacing;
        local v70 = nil;
        v70 = if not v32() then (v35 - l_Spacing_0.Leading) - l_Spacing_0.Trailing else (v68.X - l_Spacing_0.Leading) - l_Spacing_0.Trailing;
        return v2.createElement("Frame", {
            AutomaticSize = Enum.AutomaticSize.XY,
            BackgroundTransparency = 1,
            LayoutOrder = 1
        }, {
            Layout = v2.createElement("UIListLayout", {
                FillDirection = Enum.FillDirection.Horizontal,
                HorizontalAlignment = Enum.HorizontalAlignment.Center,
                VerticalAlignment = Enum.VerticalAlignment.Center,
                SortOrder = Enum.SortOrder.LayoutOrder,
                Padding = UDim.new(0, 4)
            }),
            PresenceIcon = v2.createElement(l_ImageSetLabel_0, {
                LayoutOrder = 1,
                AnchorPoint = Vector2.new(0.5, 0.5),
                Image = l_Images_0["component_assets/circle_25"],
                ImageColor3 = v67.Theme.OnlineStatus.Color,
                ImageTransparency = v67.Theme.OnlineStatus.Transparency,
                Position = UDim2.fromScale(0.5, 0.5),
                Size = UDim2.new(0, 12, 0, 12),
                BackgroundTransparency = 1,
                ScaleType = Enum.ScaleType.Slice,
                Visible = true
            }),
            FriendName = v65(v66, v67.Font.Header2, v67.Theme.TextEmphasis, 2, l_Spacing_0, v68)
        });
    end;
end;
local function v75(v72)
    local l_Spacing_1 = v72.Tokens.Component.VerticalTile.Base.ContentTop.Spacing;
    local l_Spacing_2 = v72.Tokens.Component.VerticalTile.Base.ContentBottom.Spacing;
    return {
        backgroundColor = {
            Color = v72.Theme.BackgroundUIDefault.Color,
            Transparency = 0
        },
        dropShadow = {},
        overlayColors = {},
        contentTitleFont = v72.Font.Header2,
        border = {
            BorderColor = {
                Color = v72.Tokens.Component.VerticalTile.Base.Container.BorderColor.Color3,
                Transparency = v72.Tokens.Component.VerticalTile.Base.Container.BorderColor.Transparency
            },
            CornerRadius = if not v29() then UDim.new(0, 5) else UDim.new(0, 12),
            Width = v72.Tokens.Component.VerticalTile.Base.Container.BorderWidth
        },
        topContentPadding = {
            Left = l_Spacing_1.Leading,
            Right = l_Spacing_1.Trailing,
            Top = l_Spacing_1.Top,
            Bottom = l_Spacing_1.Bottom
        },
        bottomContentPadding = {
            Left = if not v29() then l_Spacing_2.Leading else 0,
            Right = l_Spacing_2.Trailing,
            Top = 3,
            Bottom = l_Spacing_2.Bottom
        },
        selectionCursorPadding = {
            Left = 0,
            Right = 0,
            Top = 0,
            Bottom = 0
        },
        contentTitlePadding = 8
    };
end;
return function(v76)
    local l_friendUserId_0 = v76.friendUserId;
    local l_thumbnailAssetId_0 = v76.thumbnailAssetId;
    local l_experienceName_0 = v76.experienceName;
    local v81 = l_useSelector_0(function(v80)
        return v80.Users[l_friendUserId_0];
    end);
    local v82 = l_useDispatch_0();
    local v84 = l_useSelector_0(function(v83)
        return v8(v83);
    end);
    local v85 = v19(v16);
    local v86 = nil;
    if v31() then
        v86 = v19(l_AppSessionService_0);
    end;
    local v87 = l_useStyle_0();
    local l_Spacing_3 = v87.Tokens.Component.VerticalTile.Base.ContentBottom.Spacing;
    local v89 = v76.size or Vector2.new(0, 0);
    local function v90()
        return v2.createElement("Frame", {
            Size = UDim2.new(1, 0, 1, 0),
            Position = UDim2.new(0, 0, 0, 0),
            BackgroundTransparency = 1
        }, {
            ListLayout = v2.createElement("UIListLayout", {
                SortOrder = Enum.SortOrder.LayoutOrder,
                FillDirection = Enum.FillDirection.Vertical,
                VerticalAlignment = Enum.VerticalAlignment.Center,
                Padding = UDim.new(0, 2)
            }),
            Title = if not v29() then v65(not v81 and "" or v81.displayName, v87.Font.Header2, v87.Theme.TextEmphasis, 1, l_Spacing_3, v89) else v71(not v81 and "" or v81.displayName, v87, v89),
            Padding = if not v29() then nil else v2.createElement("UIPadding", {
                PaddingTop = UDim.new(0, 4)
            }),
            SubTitle = v65(l_experienceName_0, v87.Font.CaptionHeader, v87.Theme.TextDefault, 2, l_Spacing_3, v89)
        });
    end;
    local v91 = l_useLocalization_0({
        joinButtonText = "Feature.Home.Button.Join"
    });
    local v92 = nil;
    if v30() then
        v92 = v2.createRef();
        l_useImpressionsTagger_0(v92, v76.impressionsTag, v76.LayoutOrder);
    end;
    return v2.createElement("Frame", {
        Size = if not v32() then UDim2.new(0, v35, 0, v36) else UDim2.new(0, v89.X, 0, v89.Y),
        BackgroundTransparency = 1,
        LayoutOrder = v76.LayoutOrder,
        ref = if not v30() then nil else v92
    }, {
        Tile = v2.createElement(l_ExperienceTileV3_0, {
            tileWidth = if not v32() then v35 else v89.X,
            hasBackground = if not v29() then nil else false,
            hasOutline = if not v29() then nil else false,
            isActive = true,
            isHoverEnabled = false,
            isExperienceActionRowEnabled = true,
            thumbnailAspectRatioOverride = l_AspectRatioModeEnum_0.Wide,
            contentTextLineCount = 1,
            contentTitlePadding = 0,
            renderTopContentOverlay = function(_, v94)
                local v95 = {
                    gradient = v53("rbxassetid://13074142871", 0.3, v94)
                };
                local l_v53_0 = v53;
                local l_l_friendUserId_0_0 = l_friendUserId_0;
                v95.avatar = l_v53_0(not l_l_friendUserId_0_0 and "" or "rbxthumb://type=AvatarBust&id=" .. l_l_friendUserId_0_0 .. "&w=150&h=150", 0, v94);
                v95.joinButton = v49(l_friendUserId_0, v91.joinButtonText, v87, v76.rootPlaceId, v85, v86, v89);
                return v95;
            end,
            onActivated = function()
                if not v30() then
                    v82(v24(l_friendUserId_0));
                    return ;
                else
                    local l_v84_0 = v84;
                    local l_v76_0 = v76;
                    local l_v85_0 = v85;
                    if v30() then
                        l_v85_0:sendEventDeferred(l_v84_0, "joinYourFriendProfileViewOpen", {
                            friendId = l_v76_0.friendUserId,
                            universeId = l_v76_0.universeId,
                            rootPlaceId = l_v76_0.rootPlaceId
                        });
                    end;
                    v82(v24(l_friendUserId_0, {
                        source = "JoinYourFriends"
                    }));
                    return ;
                end;
            end,
            wideThumbnail = not l_thumbnailAssetId_0 and "" or "rbxthumb://type=Asset&id=" .. l_thumbnailAssetId_0 .. "&w=420&h=420",
            renderBottomContent = v90,
            styleProps = v75(v87)
        })
    });
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_CorePackages_0 = game:GetService("CorePackages");
local v2 = require(l_CorePackages_0.Packages.React);
local l_Signal_0 = require(l_CorePackages_0.Workspace.Packages.AppCommonLib).Signal;
local v4 = require(l_CorePackages_0.Workspace.Packages.ArgCheck);
local l_usePrevious_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).Hooks.usePrevious;
local l_dependencyArray_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).Hooks.dependencyArray;
local l_ScreenSizeImpressionsDetector_0 = require(l_CorePackages_0.Workspace.Packages.Impressions).ScreenSizeImpressionsDetector;
local v8 = require(l_Modules_0.LuaApp.Hooks.useRoactService);
local v9 = require(l_Modules_0.LuaApp.Services.AppEventIngestService);
local _ = require(l_Modules_0.Personalization.DataStoreTypes);
local v11 = require(l_Modules_0.Personalization.OmniFeed.DataStore.FeedItemModel);
return function(v12)
    local v13 = v2.useRef({});
    local v14 = v2.useRef(l_Signal_0.new());
    local v15, v16 = v2.useState(nil);
    local v17 = v8(v9);
    local v18 = l_usePrevious_0(v12.omniFeedItems);
    local l_eventContext_0 = v12.eventContext;
    v2.useEffect(function()
        local v20 = nil;
        if v12.onItemsUpdatedSignal then
            v20 = v12.onItemsUpdatedSignal:connect(function()
                v14.current:fire();
            end);
        end;
        return function()
            if v20 ~= nil then
                v20:disconnect();
            end;
        end;
    end, {
        v12.onItemsUpdatedSignal
    });
    local function v31(v21)
        local l_omniFeedItems_0 = v12.omniFeedItems;
        if v17 then
            if not v21 or #v21 == 0 then
                return ;
            else
                local v23 = {};
                local v24 = {};
                local v25 = {};
                for v26 = 1, #v21 do
                    local v27 = v21[v26];
                    local v28 = l_omniFeedItems_0[v27];
                    local v29 = not not v28 and v28.treatmentType or "";
                    local v30 = v11.getUniqueNameForAnalytics(v28);
                    table.insert(v23, v27);
                    table.insert(v24, v29);
                    table.insert(v25, v30);
                end;
                v17:sendEventDeferred(l_eventContext_0, "feedImpressions", {
                    feedItemPos = table.concat(v23, ","),
                    treatmentType = table.concat(v24, ","),
                    feedItemNameId = table.concat(v25, ",")
                });
                return ;
            end;
        else
            return ;
        end;
    end;
    v2.useEffect(function()
        local v32 = false;
        if not (v18 ~= nil and v12.omniFeedItems ~= nil) or #v12.omniFeedItems < #v18 then
            v32 = true;
        else
            local v33 = 1;
            while v33 <= #v18 do
                if v18[v33] ~= v12.omniFeedItems[v33] then
                    v32 = true;
                    break;
                else
                    v33 = v33 + 1;
                end;
            end;
        end;
        if v32 then
            v13.current = {};
            v14.current:fire();
        end;
    end, l_dependencyArray_0(v12.omniFeedItems, v18));
    v2.useEffect(function()
        if v15 ~= nil then
            v31(v15);
            v16(nil);
        end;
    end, {
        v15
    });
    return v2.createElement(l_ScreenSizeImpressionsDetector_0, {
        onRequestImpressionsSignal = v14.current,
        filterImpressionFunc = function(v34)
            if v13.current[v34] ~= nil then
                return false;
            else
                v13.current[v34] = true;
                return true;
            end;
        end,
        onImpressionsDetected = function(v35)
            v4.assert(v35 ~= nil);
            v4.assert(#v35 ~= 0);
            v16(v35);
        end,
        impressionsTag = v12.impressionsTag,
        skipZeroSizes = true
    });
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_CorePackages_0 = game:GetService("CorePackages");
local l_HttpService_0 = game:GetService("HttpService");
local v3 = require(l_CorePackages_0.Roact);
local v4 = require(l_CorePackages_0.Packages.t);
local l_RoactAppPolicy_0 = require(l_CorePackages_0.Workspace.Packages.UniversalAppPolicy).RoactAppPolicy;
local l_RoactServices_0 = require(l_CorePackages_0.Workspace.Packages.RoactServices).RoactServices;
local v7 = require(l_CorePackages_0.FitFrame);
local v8 = require(l_Modules_0.LuaApp.Services.AppEventIngestService);
local v9 = require(l_Modules_0.Personalization.OmniFeed.OmniFeedItemMap);
local v10 = require(l_Modules_0.LuaApp.mutedError);
local v11 = require(l_Modules_0.Personalization.OmniFeed.OmniFeedConstants);
local v12 = require(l_Modules_0.Personalization.OmniFeed.OmniFeedTypes);
local l_ImpressionsTagUtility_0 = require(l_CorePackages_0.Workspace.Packages.Impressions).ImpressionsTagUtility;
local v14 = game:DefineFastFlag("FixOmniFeedFocusEscape", false);
local v15 = v3.PureComponent:extend("OmniFeedItem");
v15.validateProps = v4.strictInterface({
    omniFeedItemType = v4.string,
    layoutOrder = v4.optional(v4.number),
    zIndex = v4.optional(v4.number),
    impressionsTag = v4.string,
    itemIndex = v4.number,
    feedItemNameId = v4.string,
    itemProps = v4.optional(v4.table),
    onAbsoluteSizeChanged = v4.optional(v4.callback),
    useGridPageLayout = v4.optional(v4.boolean),
    eventIngest = v4.any
});
v15.init = function(v16)
    v16.feedItemRef = v3.createRef();
    v16.descendantGuiButtons = {};
    v16.addDescendantGuiButton = function(v17)
        local l_v17_Attribute_0 = v17:GetAttribute("GUID");
        if l_v17_Attribute_0 == nil then
            l_v17_Attribute_0 = l_HttpService_0:GenerateGUID();
            v17:SetAttribute("GUID", l_v17_Attribute_0);
        end;
        if v16.descendantGuiButtons[l_v17_Attribute_0] then
            v16.descendantGuiButtons[l_v17_Attribute_0].connection:Disconnect();
            v16.descendantGuiButtons[l_v17_Attribute_0] = nil;
        end;
        v16.descendantGuiButtons[l_v17_Attribute_0] = {
            name = v17.Name,
            connection = v17.Activated:Connect(function(_)
                if v16.isMounted then
                    v16.props.eventIngest:setRBXEventStream(v11.EventContext, "feedItemClicked", {
                        fullPath = v17:GetFullName(),
                        treatmentType = v16.props.omniFeedItemType,
                        feedItemPos = v16.props.layoutOrder,
                        feedItemNameId = v16.props.feedItemNameId
                    });
                    return ;
                else
                    return ;
                end;
            end)
        };
    end;
    v16.removeDescendantGuiButton = function(v20)
        if not (v20 ~= nil) or not v16.descendantGuiButtons[v20] then
            if not (not v16.isMounted or v16.descendantGuiButtonError) then
                v16.descendantGuiButtonError = true;
                v10((("OmniFeedItem: Expecting descendant button for guid: %*, feedItemNameId: %*"):format(v20, v16.props.feedItemNameId)));
            end;
            return ;
        else
            v16.descendantGuiButtons[v20].connection:Disconnect();
            v16.descendantGuiButtons[v20] = nil;
            return ;
        end;
    end;
    v16.descendantAdded = function(v21)
        if v21 and v21:IsA("GuiButton") then
            v16.addDescendantGuiButton(v21);
            return ;
        else
            return ;
        end;
    end;
    v16.descendantRemoving = function(v22)
        if v22 and v22:IsA("GuiButton") then
            v16.removeDescendantGuiButton((v22:GetAttribute("GUID")));
            return ;
        else
            return ;
        end;
    end;
    v16.addAllDescendantGuiButtons = function()
        local v23 = v16.feedItemRef and v16.feedItemRef.current;
        if v23 then
            local l_v23_Descendants_0 = v23:GetDescendants();
            if l_v23_Descendants_0 then
                for _, v26 in pairs(l_v23_Descendants_0) do
                    v16.descendantAdded(v26);
                end;
            end;
        end;
    end;
    v16.removeAllDescendantGuiButtons = function()
        for v27, _ in pairs(v16.descendantGuiButtons) do
            v16.removeDescendantGuiButton(v27);
        end;
        v16.descendantGuiButtons = {};
    end;
end;
v15.render = function(v29)
    local l_omniFeedItemType_0 = v29.props.omniFeedItemType;
    local l_layoutOrder_0 = v29.props.layoutOrder;
    local v32 = v9.getComponent(l_omniFeedItemType_0);
    if l_omniFeedItemType_0 ~= nil and v32 ~= nil then
        local v33 = v29.props.useGridPageLayout and l_omniFeedItemType_0 == v12.Carousel;
        return v3.createElement(not v33 and "Frame" or v7.FitFrameVertical, {
            width = if not v33 then nil else UDim.new(1, 0),
            Size = if not v33 then UDim2.new(1, 0, 0, 0) else nil,
            AutomaticSize = if not v33 then Enum.AutomaticSize.Y else nil,
            SelectionGroup = not not v14 or nil,
            SelectionBehaviorLeft = if not v14 then nil else Enum.SelectionBehavior.Stop,
            SelectionBehaviorRight = if not v14 then nil else Enum.SelectionBehavior.Stop,
            LayoutOrder = l_layoutOrder_0,
            ZIndex = v29.props.zIndex,
            BackgroundTransparency = 1,
            BorderSizePixel = 0,
            [v3.Ref] = v29.feedItemRef,
            [v3.Event.DescendantAdded] = function(_, v35)
                v29.descendantAdded(v35);
            end,
            [v3.Event.DescendantRemoving] = function(_, v37)
                v29.descendantRemoving(v37);
            end,
            [v3.Change.AbsoluteSize] = function(v38)
                if v38 then
                    local l_onAbsoluteSizeChanged_0 = v29.props.onAbsoluteSizeChanged;
                    if l_onAbsoluteSizeChanged_0 then
                        l_onAbsoluteSizeChanged_0(v38);
                    end;
                end;
            end
        }, {
            FeedItem = v3.createElement(v32, v29.props.itemProps)
        });
    else
        v10("OmniFeedItem: Unknown omni feed item type: " .. tostring(l_omniFeedItemType_0) .. ", should have already been filtered out.");
        return nil;
    end;
end;
v15.didMount = function(v40)
    v40.isMounted = true;
    l_ImpressionsTagUtility_0.AddTag(v40.feedItemRef, v40.props.impressionsTag, v40.props.itemIndex);
    v40.addAllDescendantGuiButtons();
end;
v15.willUnmount = function(v41)
    v41.isMounted = false;
    v41.removeAllDescendantGuiButtons();
    l_ImpressionsTagUtility_0.RemoveTag(v41.feedItemRef, v41.props.impressionsTag, v41.props.itemIndex);
end;
v15.didUpdate = function(v42, v43)
    if not (v43.impressionsTag == v42.props.impressionsTag) or v43.itemIndex ~= v42.props.itemIndex then
        l_ImpressionsTagUtility_0.RemoveTag(v42.feedItemRef, v43.impressionsTag, v43.itemIndex);
        l_ImpressionsTagUtility_0.AddTag(v42.feedItemRef, v42.props.impressionsTag, v42.props.itemIndex);
    end;
    if v43.feedItemNameId ~= v42.props.feedItemNameId then
        v42.removeAllDescendantGuiButtons();
        v42.addAllDescendantGuiButtons();
    end;
end;
return l_RoactServices_0.connect({
    eventIngest = v8
})((l_RoactAppPolicy_0.connect(function(v44, _)
    return {
        useGridPageLayout = v44.useGridPageLayout()
    };
end)(v15)));


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_CorePackages_0 = game:GetService("CorePackages");
local l_isSubjectToDesktopPolicies_0 = require(l_CorePackages_0.Workspace.Packages.SharedFlags).isSubjectToDesktopPolicies;
local v3 = require(l_Modules_0.Personalization.OmniFeed.FeedItems.GameCarouselFeedItem);
local v4 = require(l_Modules_0.Personalization.OmniFeed.FeedItems.UserInfoFeedItem);
local v5 = require(l_Modules_0.Personalization.OmniFeed.FeedItems.FriendCarouselFeedItem.FriendCarouselFeedItem);
local v6 = require(l_Modules_0.Personalization.OmniFeed.FeedItems.JoinYourFriendsFeedItem);
local v7 = require(l_Modules_0.Personalization.OmniFeed.FeedItems.FriendRecommendationCarouselFeedItem);
local v8 = require(l_Modules_0.Personalization.OmniFeed.FeedItems.HomeGameGridFlexFeedItem);
local v9 = require(l_Modules_0.Personalization.OmniFeed.FeedItems.SearchGameGridFeedItem);
local v10 = require(l_Modules_0.Personalization.OmniFeed.OmniFeedTypes);
local v11 = require(l_Modules_0.Personalization.OmniFeed.FeedItems.SearchTextFeedItem);
local v12 = require(l_Modules_0.Personalization.OmniFeed.FeedItems.UpsellCardFeedItem);
local l_IsVRAppBuild_0 = require(l_CorePackages_0.Workspace.Packages.AppCommonLib).IsVRAppBuild;
local v14 = require(l_Modules_0.Personalization.Flags.GetFFlagUseUpsellCardOmniFeedItem);
local function v16(v15)
    if v15 == v10.Carousel then
        return v3;
    elseif v15 == v10.UserInfo then
        if not l_isSubjectToDesktopPolicies_0() and not l_IsVRAppBuild_0() or _G.__TESTEZ_RUNNING_TEST__ then
            return v4;
        else
            return nil;
        end;
    elseif v15 == v10.JoinYourFriendsCarousel then
        return v6;
    elseif v15 == v10.FriendCarousel then
        return v5;
    elseif v15 == v10.AvatarCarousel then
        warn("AvatarCarousel is not currently supported on the client");
        return nil;
    elseif v15 == v10.FriendRecommendationCarousel then
        if l_isSubjectToDesktopPolicies_0() then
            return nil;
        else
            return v7;
        end;
    elseif v15 == v10.HomeGameGrid then
        return v8;
    elseif v15 == v10.GenreExplorer then
        warn("GenreExplorer is not currently supported on the client");
        return nil;
    elseif v15 == v10.SearchGameGrid then
        return v9;
    elseif v15 == v10.SearchText then
        return v11;
    elseif v14() and v15 == v10.UpsellCard then
        return v12;
    else
        warn("Unmapped omni feed item type: " .. tostring(v15));
        return nil;
    end;
end;
return {
    getComponent = v16,
    hasComponent = function(v17)
        return v16(v17) ~= nil;
    end
};


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Symbol);
local v2 = require(l_CorePackages_0.Packages.t);
return {
    interface = v2.strictInterface({
        feedItemPosition = v2.number,
        scrollViewPositionChangedSignal = v2.table,
        refreshSignal = v2.table,
        appPage = v2.string
    }),
    key = v1.named("OmniFeedProps"),
    new = function(v3, v4, v5, v6)
        return {
            feedItemPosition = v3,
            scrollViewPositionChangedSignal = v4,
            refreshSignal = v5,
            appPage = v6
        };
    end
};


return {
    GenreExplorer = "GenreExplorerLabel",
    Carousel = "Carousel",
    AvatarCarousel = "AvatarCarousel",
    UserInfo = "UserInfo",
    FriendCarousel = "FriendCarousel",
    FriendRecommendationCarousel = "FriendRecommendationCarousel",
    HomeGameGrid = "SortlessGrid",
    JoinYourFriendsCarousel = "JoinYourFriendsCarousel",
    SearchGameGrid = "SearchGameGrid",
    SearchText = "SearchText",
    UpsellCard = if not require(game:GetService("CoreGui").RobloxGui.Modules.Personalization.Flags.GetFFlagUseUpsellCardOmniFeedItem)() then nil else "UpsellCard"
};


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
return require(game:GetService("CorePackages").Rodux).combineReducers({
    OrderedOmniItems = require(l_Modules_0.Personalization.OmniFeed.DataStore.OrderedOmniItems),
    TopicContents = require(l_Modules_0.Personalization.Games.DataStore.TopicContents),
    PageSessionTimestamp = require(l_Modules_0.Personalization.Sessions.DataStore.PageSessionTimestamp),
    GameGridFlexFeedItemBounds = require(l_Modules_0.Personalization.OmniFeed.DataStore.GameGridFlexFeedItemBounds),
    OmniItemsGlobalLayoutData = require(l_Modules_0.Personalization.OmniFeed.DataStore.OmniItemsGlobalLayoutData),
    OmniItemsRowData = if not require(l_Modules_0.Personalization.Flags.FFlagOmniItemsRowDataEnabled) then nil else require(l_Modules_0.Personalization.OmniFeed.DataStore.OmniItemsRowData),
    DiscoveryNextPageId = if not require(l_Modules_0.Personalization.Flags.GetFFlagExploreApiSortsEnabled)() then nil else require(l_Modules_0.Personalization.Games.Discovery.DiscoveryNextPageId)
});


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_CorePackages_0 = game:GetService("CorePackages");
local v2 = require(l_CorePackages_0.Packages.React);
local v3 = require(l_CorePackages_0.Packages.RoactAppExperiment);
local v4 = require(l_Modules_0.LuaApp.Experiment.AppUserLayers);
local l_useUserExperiment_0 = v3.useUserExperiment;
local v6 = require(l_Modules_0.LuaApp.Constants);
local v7 = require(l_CorePackages_0.Workspace.Packages.RoactUtils);
local v8 = require(l_CorePackages_0.Workspace.Packages.SocialCommon);
local l_AppPage_0 = require(l_CorePackages_0.Workspace.Packages.RobloxAppEnums).AppPage;
local l_default_0 = v8.Experiments.NewChatTabExperimentation.default;
local l_useRouteName_0 = v7.Hooks.useRouteName;
local l_useSelector_0 = v7.Hooks.RoactRodux.useSelector;
local v13 = require(l_Modules_0.LuaApp.Components.TopBar.TopBar);
local v14 = require(l_Modules_0.LuaApp.Components.TopBar.TopBarConstants);
local v15 = require(l_Modules_0.LuaApp.Components.GridHome.Header.UserInfo);
local l_FFlagOmniSearchAutoTabIXP_0 = require(l_CorePackages_0.Workspace.Packages.SharedFlags).FFlagOmniSearchAutoTabIXP;
local function _(v17)
    return function()
        return v2.createElement("Frame", {
            BackgroundTransparency = 1,
            Size = UDim2.new(0, v17, 1, 0)
        });
    end;
end;
return function(v19)
    local v21 = if not l_FFlagOmniSearchAutoTabIXP_0 then nil else l_useUserExperiment_0({
        v4.OmniSearchResultsPageUXExposureLayer
    }, function(v20)
        return (v20[v4.OmniSearchResultsPageUXExposureLayer] or {}).isSearchTypeAuto;
    end, false);
    local v22 = nil;
    local v23 = nil;
    local v25 = l_useSelector_0(function(v24)
        return v24.ScreenSize;
    end);
    local v26 = if not not l_default_0.isEnabled() and l_default_0:getShowAddFriendsOnHomePageUtilityTray() then if not l_default_0.isEnabled() then nil else l_useRouteName_0() == l_AppPage_0.Home else nil;
    if not v19.useGridPageLayout then
        v22 = {
            v13.SearchButton,
            v13.BuyRobuxButton,
            v13.NotificationsButton
        };
        if not ((not l_default_0.isEnabled() or not l_default_0:getShowAddFriendsOnHomePageUtilityTray()) or not v26) then
            table.insert(v22, 2, v13.AddFriendsPageButton);
        end;
    else
        local v27 = {};
        local l_v15_0 = v15;
        local v29 = 0;
        local l_v29_0 = v29 --[[ copy: 10 -> 13 ]];
        local function v31()
            return v2.createElement("Frame", {
                BackgroundTransparency = 1,
                Size = UDim2.new(0, l_v29_0, 1, 0)
            });
        end;
        v29 = v13.SearchButton;
        local l_BuyRobuxButton_0 = v13.BuyRobuxButton;
        local l_NotificationsButton_0 = v13.NotificationsButton;
        setlist { ['R007[1 to 5]'] = 'R008 to R012' };
        v22 = v27;
        if not ((not l_default_0.isEnabled() or not l_default_0:getShowAddFriendsOnHomePageUtilityTray()) or not v26) then
            table.insert(v22, 4, v13.AddFriendsPageButton);
        end;
        v23 = v25.X < v14.COMPACT_WIDTH_BREAKPOINT;
    end;
    return v2.createElement(v13.Container, {
        titleText = v19.titleText,
        ZIndex = 2,
        forceCompactMode = v23,
        leftItem = v13.BackButton,
        rightItems = v22,
        searchType = if not not l_FFlagOmniSearchAutoTabIXP_0 and v21 then v6.SearchTypes.Auto else nil
    });
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(game:GetService("CorePackages").Cryo);
local v2 = require(l_Modules_0.Personalization.Sessions.DataStore.SetPageSessionTimestamp);
local _ = require(l_Modules_0.Personalization.DataStoreTypes);
return function(v4, v5)
    v4 = v4 or {};
    if v5.type == v2.name then
        v4 = v1.Dictionary.join(v4, {
            [v5.page] = v5.timestamp
        });
    end;
    return v4;
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(l_Modules_0.LuaApp.AppPage);
local v2 = require(l_Modules_0.Common.Action);
local v3 = require(l_Modules_0.LuaApp.mutedError);
return v2(script.Name, function(v4)
    if v1[v4] == nil then
        v3("SetPageSessionTimestamp action expects page to be a valid page type, %s is not in AppPage", v4);
    end;
    return {
        page = v4,
        timestamp = tick()
    };
end);


local l_HttpService_0 = game:GetService("HttpService");
return {
    _sessionId = "",
    Get = function(v1)
        if v1._sessionId == "" then
            v1._sessionId = l_HttpService_0:GenerateGUID(false);
        end;
        return v1._sessionId;
    end,
    Refresh = function(v2)
        v2._sessionId = l_HttpService_0:GenerateGUID(false);
        return v2._sessionId;
    end
};


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Packages.React);
local l_useRouteName_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).Hooks.useRouteName;
local l_useSelector_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).Hooks.RoactRodux.useSelector;
return function(v4)
    local v5 = v1.useRef(false);
    local v6 = v1.useRef(nil);
    local v7 = l_useRouteName_0();
    local v9 = l_useSelector_0(function(v8)
        return v8.Personalization.PageSessionTimestamp[v4.appPage];
    end);
    v1.useEffect(function()
        if v7 ~= v4.appPage then
            return ;
        elseif v9 == nil then
            return ;
        else
            if v6.current == nil then
                v6.current = v9;
            end;
            if not v5.current or v9 ~= nil and v6.current < v9 then
                v5.current = true;
                if v4.setPageSession then
                    v4.setPageSession();
                end;
                v6.current = v9;
            end;
            return function()
                if v4.clearPageSession then
                    v4.clearPageSession();
                end;
            end;
        end;
    end, {
        v7,
        v4.appPage,
        v9,
        v4.setPageSession,
        v4.clearPageSession
    });
    return nil;
end;


local l_SessionType_0 = require(game:GetService("CorePackages").Workspace.Packages.RobloxAppSessionization).SessionType;
return function(v1, v2, v3)
    if v1 == nil then
        return ;
    else
        v1:SetSession(l_SessionType_0.StructuralIdentifier.Level1, l_SessionType_0.StructuralIdentifier.HomePageSessionInfo, l_SessionType_0.StructuralIdentifier.HomePageSessionInfo);
        if v2 then
            v1:SetMetadata(l_SessionType_0.StructuralIdentifier.HomePageSessionInfo, l_SessionType_0.Metadata.HomePageSessionInfo.RequestId, v2);
        end;
        if v3 then
            v1:SetMetadata(l_SessionType_0.StructuralIdentifier.HomePageSessionInfo, l_SessionType_0.Metadata.HomePageSessionInfo.OmniSessionId, v3);
        end;
        return ;
    end;
end;


local v0 = require(game:GetService("CorePackages").Workspace.Packages.JestConfigs);
return {
    displayName = "Personalization",
    testMatch = {
        "**/*.test"
    },
    setupFilesAfterEnv = {
        v0.setupFiles.UIBloxInitializer,
        v0.setupFiles.createPromiseRejectionHandler()
    }
};


return require(script.Parent.Parent.ActionCreator)("AddGameStat", function(v0, v1, v2)
    return {
        statName = v0,
        isPrimary = v1,
        priority = v2
    };
end);


return require(script.Parent.Parent.ActionCreator)("AddPlayer", function(v0)
    return {
        player = v0,
        userId = v0.UserId
    };
end);


return require(script.Parent.Parent.ActionCreator)("AddPlayerToTeam", function(v0, v1)
    return {
        player = v0,
        userId = v0.UserId,
        team = v1
    };
end);


return require(script.Parent.Parent.ActionCreator)("AddTeam", function(v0)
    return {
        team = v0
    };
end);


return require(script.Parent.Parent.ActionCreator)("ClosePlayerDropDown", function()
    return {};
end);


return require(script.Parent.Parent.ActionCreator)("OpenPlayerDropDown", function(v0)
    return {
        selectedPlayer = v0
    };
end);


return require(script.Parent.Parent.ActionCreator)("RemoveGameStat", function(v0)
    return {
        statName = v0
    };
end);


return require(script.Parent.Parent.ActionCreator)("RemovePlayer", function(v0)
    return {
        player = v0,
        userId = v0.UserId
    };
end);


return require(script.Parent.Parent.ActionCreator)("RemovePlayerFromTeam", function(v0, v1)
    return {
        player = v0,
        userId = v0.UserId,
        team = v1
    };
end);


return require(script.Parent.Parent.ActionCreator)("RemoveTeam", function(v0)
    return {
        team = v0
    };
end);


return require(script.Parent.Parent.ActionCreator)("SetGameStatAddId", function(v0, v1)
    return {
        statName = v0,
        serverAddId = v1
    };
end);


return require(script.Parent.Parent.ActionCreator)("SetGameStatText", function(v0, v1)
    return {
        statName = v0,
        text = v1
    };
end);


return require(script.Parent.Parent.ActionCreator)("SetHasPermissionToVoiceChat", function(v0)
    return {
        hasPermissionToVoiceChat = v0
    };
end);


return require(script.Parent.Parent.ActionCreator)("SetInspectMenuEnabled", function(v0)
    return {
        enabled = v0
    };
end);


return require(script.Parent.Parent.ActionCreator)("SetIsUsingGamepad", function(v0)
    return {
        isUsingGamepad = v0
    };
end);


return require(script.Parent.Parent.ActionCreator)("SetMinimized", function(v0)
    return {
        isMinimized = v0
    };
end);


return require(script.Parent.Parent.ActionCreator)("SetPerformanceStatsVisible", function(v0)
    return {
        isVisible = v0
    };
end);


return require(script.Parent.Parent.ActionCreator)("SetPlayerAvatarIcon", function(v0, v1)
    return {
        player = v0,
        userId = v0.UserId,
        avatarIcon = v1
    };
end);


return require(script.Parent.Parent.ActionCreator)("SetPlayerFollowRelationship", function(v0, v1, v2)
    return {
        player = v0,
        userId = v0.UserId,
        isFollower = v1,
        isFollowing = v2
    };
end);


return require(script.Parent.Parent.ActionCreator)("SetPlayerFriendStatus", function(v0, v1)
    return {
        player = v0,
        userId = v0.UserId,
        friendStatus = v1
    };
end);


return require(script.Parent.Parent.ActionCreator)("SetPlayerIsBlocked", function(v0, v1)
    return {
        player = v0,
        userId = v0.UserId,
        isBlocked = v1
    };
end);


return require(script.Parent.Parent.ActionCreator)("SetPlayerIsCreator", function(v0, v1)
    return {
        player = v0,
        userId = v0.UserId,
        isCreator = v1
    };
end);


return require(script.Parent.Parent.ActionCreator)("SetPlayerIsFollowing", function(v0, v1)
    return {
        player = v0,
        userId = v0.UserId,
        isFollowing = v1
    };
end);


return require(script.Parent.Parent.ActionCreator)("SetPlayerIsLocalPlayer", function(v0, v1)
    return {
        player = v0,
        userId = v0.UserId,
        isLocalPlayer = v1
    };
end);


return require(script.Parent.Parent.ActionCreator)("SetPlayerLeaderstat", function(v0, v1, v2)
    return {
        player = v0,
        userId = v0.UserId,
        leaderstat = v1,
        value = v2
    };
end);


return require(script.Parent.Parent.ActionCreator)("SetPlayerListEnabled", function(v0)
    return {
        isEnabled = v0
    };
end);


return require(script.Parent.Parent.ActionCreator)("SetPlayerListVisibility", function(v0)
    return {
        isVisible = v0
    };
end);


return require(script.Parent.Parent.ActionCreator)("SetPlayerSpecialGroupIcon", function(v0, v1)
    return {
        player = v0,
        userId = v0.UserId,
        specialGroupIcon = v1
    };
end);


return require(script.Parent.Parent.ActionCreator)("SetScreenSize", function(v0, v1)
    return {
        sizeX = v0,
        sizeY = v1
    };
end);


return require(script.Parent.Parent.ActionCreator)("SetSettings", function(v0)
    return {
        preferredTransparency = v0.preferredTransparency,
        reducedMotion = v0.reducedMotion
    };
end);


return require(script.Parent.Parent.ActionCreator)("SetSmallTouchDevice", function(v0)
    return {
        isSmallTouchDevice = v0
    };
end);


return require(script.Parent.Parent.ActionCreator)("SetSubjectToChinaPolicies", function(v0)
    return {
        subjectToChinaPolicies = v0
    };
end);


return require(script.Parent.Parent.ActionCreator)("SetTeamColor", function(v0, v1)
    return {
        isTeamAction = true,
        team = v0,
        teamColor = v1
    };
end);


return require(script.Parent.Parent.ActionCreator)("SetTeamName", function(v0, v1)
    return {
        isTeamAction = true,
        team = v0,
        teamName = v1
    };
end);


return require(script.Parent.Parent.ActionCreator)("SetTempHideKey", function(v0, v1)
    return {
        tempHideKey = v0,
        tempHideValue = v1
    };
end);


return require(script.Parent.Parent.ActionCreator)("SetTenFootInterface", function(v0)
    return {
        isTenFootInterface = v0
    };
end);


local l_CorePackages_0 = game:GetService("CorePackages");
local l_ContextActionService_0 = game:GetService("ContextActionService");
local l_GuiService_0 = game:GetService("GuiService");
local v3 = require(l_CorePackages_0.Roact);
local v4 = require(l_CorePackages_0.RoactRodux);
local v5 = require(script.Parent.Parent.Parent.Actions.SetPlayerListVisibility);
local v6 = v3.PureComponent:extend("ContextActionsBinder");
local v7 = {
    Enum.UserInputType.Gamepad1,
    Enum.UserInputType.Gamepad2,
    Enum.UserInputType.Gamepad3,
    Enum.UserInputType.Gamepad4,
    Enum.UserInputType.Gamepad5,
    Enum.UserInputType.Gamepad6,
    Enum.UserInputType.Gamepad7,
    Enum.UserInputType.Gamepad8
};
v6.init = function(v8)
    v8.boundPlayerListActions = false;
end;
v6.bindActions = function(v9)
    l_ContextActionService_0:BindCoreAction("RbxPlayerListToggle", function(_, v11, _)
        if not l_GuiService_0.MenuIsOpen then
            if v11 ~= Enum.UserInputState.Begin then
                return Enum.ContextActionResult.Pass;
            else
                v9.props.setVisibility(not v9.props.displayOptions.isVisible);
                return Enum.ContextActionResult.Sink;
            end;
        else
            return Enum.ContextActionResult.Pass;
        end;
    end, false, Enum.KeyCode.Tab);
    l_ContextActionService_0:BindCoreAction("RbxPlayerListStopMovement", function(_, _, _)
        if not v9.props.displayOptions.isVisible or not v9.props.displayOptions.isTenFootInterface then
            return Enum.ContextActionResult.Pass;
        else
            return Enum.ContextActionResult.Sink;
        end;
    end, false, unpack(v7));
    l_ContextActionService_0:BindCoreAction("RbxPlayerListGamepadClose", function(_, v17, _)
        if v17 ~= Enum.UserInputState.Begin then
            return Enum.ContextActionResult.Pass;
        elseif not v9.props.displayOptions.isVisible or not v9.props.displayOptions.isTenFootInterface then
            return Enum.ContextActionResult.Pass;
        else
            v9.props.setVisibility(false);
            return Enum.ContextActionResult.Sink;
        end;
    end, false, Enum.KeyCode.ButtonB, Enum.KeyCode.ButtonStart);
    v9.boundPlayerListActions = true;
end;
v6.unbindActions = function(v19)
    l_ContextActionService_0:UnbindCoreAction("RbxPlayerListToggle");
    l_ContextActionService_0:UnbindCoreAction("RbxPlayerListStopMovement");
    l_ContextActionService_0:UnbindCoreAction("RbxPlayerListGamepadClose");
    v19.boundPlayerListActions = false;
end;
v6.didMount = function(v20)
    v20:bindActions();
end;
v6.render = function(_)
    return nil;
end;
v6.willUnmount = function(v22)
    if v22.boundPlayerListActions then
        v22:unbindActions();
    end;
end;
return v4.connect(function(v23)
    return {
        displayOptions = v23.displayOptions
    };
end, function(v24)
    return {
        setVisibility = function(v25)
            return v24(v5(v25));
        end
    };
end)(v6);


local l_CorePackages_0 = game:GetService("CorePackages");
local l_CoreGui_0 = game:GetService("CoreGui");
local l_Players_0 = game:GetService("Players");
local v3 = require(l_CorePackages_0.Roact);
local v4 = require(l_CorePackages_0.RoactRodux);
local l_UserGameSettings_0 = UserSettings():GetService("UserGameSettings");
local l_BlockedStatusChangedEvent_0 = require(l_CoreGui_0:WaitForChild("RobloxGui").Modules.BlockingUtility):GetBlockedStatusChangedEvent();
local l_Parent_0 = script.Parent.Parent.Parent;
local v8 = require(l_Parent_0.Actions.SetPerformanceStatsVisible);
local v9 = require(l_Parent_0.Actions.SetPlayerIsBlocked);
local v10 = require(script.Parent.EventConnection);
local v11 = v3.PureComponent:extend("CoreGuiConnector");
v11.didMount = function(v12)
    v12.props.setPerformanceStatsVisible(l_UserGameSettings_0.PerformanceStatsVisible);
end;
v11.render = function(v13)
    return v3.createFragment({
        PerformanceStatsChangedConnection = v3.createElement(v10, {
            event = l_UserGameSettings_0.PerformanceStatsVisibleChanged,
            callback = function(v14)
                v13.props.setPerformanceStatsVisible(v14);
            end
        }),
        BlockedStatusChangedConnection = v3.createElement(v10, {
            event = l_BlockedStatusChangedEvent_0,
            callback = function(v15, v16)
                local l_l_Players_0_PlayerByUserId_0 = l_Players_0:GetPlayerByUserId(v15);
                if l_l_Players_0_PlayerByUserId_0 then
                    v13.props.setPlayerIsBlocked(l_l_Players_0_PlayerByUserId_0, v16);
                end;
            end
        })
    });
end;
return v4.connect(nil, function(v18)
    return {
        setPerformanceStatsVisible = function(v19)
            return v18(v8(v19));
        end,
        setPlayerIsBlocked = function(v20, v21)
            return v18(v9(v20, v21));
        end
    };
end)(v11);


local v0 = require(game:GetService("CorePackages").Roact).Component:extend("EventConnection");
v0.init = function(v1)
    v1.connection = nil;
end;
v0.didMount = function(v2)
    v2.connection = v2.props.event:Connect(v2.props.callback);
end;
v0.render = function(_)
    return nil;
end;
v0.didUpdate = function(v4, v5)
    if not (v4.props.event == v5.event) or v4.props.callback ~= v5.callback then
        v4.connection:Disconnect();
        v4.connection = v4.props.event:Connect(v4.props.callback);
    end;
end;
v0.willUnmount = function(v6)
    if v6.connection then
        v6.connection:Disconnect();
        v6.connection = nil;
    end;
end;
return v0;


local v0 = require(game:GetService("CorePackages").Roact);
local v1 = require(script.Parent.PlayerServiceConnector);
local v2 = require(script.Parent.TeamServiceConnector);
local v3 = require(script.Parent.LeaderstatsConnector);
local v4 = require(script.Parent.CoreGuiConnector);
local v5 = require(script.Parent.SocialConnector);
local v6 = require(script.Parent.GuiServiceConnector);
local v7 = require(script.Parent.UserInputServiceConnector);
local v8 = require(script.Parent.ScreenSizeConnector);
local v9 = v0.PureComponent:extend("EventConnections");
v9.render = function(_)
    return v0.createFragment({
        PlayerServiceConnector = v0.createElement(v1),
        TeamServiceConnector = v0.createElement(v2),
        LeaderstatsConnector = v0.createElement(v3),
        CoreGuiConnector = v0.createElement(v4),
        SocialConnector = v0.createElement(v5),
        GuiServiceConnector = v0.createElement(v6),
        UserInputServiceConnector = v0.createElement(v7),
        ScreenSizeConnector = v0.createElement(v8)
    });
end;
return v9;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_GuiService_0 = game:GetService("GuiService");
local v2 = require(l_CorePackages_0.Roact);
local v3 = require(l_CorePackages_0.RoactRodux);
local v4 = require(script.Parent.Parent.Parent.Actions.SetInspectMenuEnabled);
local v5 = require(script.Parent.EventConnection);
local v6 = v2.PureComponent:extend("GuiServiceConnector");
v6.render = function(v7)
    return v2.createFragment({
        InspectMenuEnabledConnection = v2.createElement(v5, {
            event = l_GuiService_0.InspectMenuEnabledChangedSignal,
            callback = function(v8)
                v7.props.setInspectMenuEnabled(v8);
            end
        })
    });
end;
return v3.connect(nil, function(v9)
    return {
        setInspectMenuEnabled = function(v10)
            return v9(v4(v10));
        end
    };
end)(v6);


local v0 = require(game:GetService("CorePackages").Roact);
local v1 = require(script.Parent.LayoutValuesContext);
return {
    Provider = function(v2)
        return v0.createElement(v1.Provider, {
            value = v2.layoutValues
        }, v0.oneChild(v2[v0.Children]));
    end,
    Consumer = v1.Consumer,
    WithLayoutValues = function(v3)
        assert(type(v3) == "function", "Expect withLayoutValues callback to be a function.");
        return v0.createElement(v1.Consumer, {
            render = v3
        });
    end
};