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.UIBlox);
local v4 = require(l_Modules_0.LuaApp.FitChildren);
local l_withStyle_0 = v3.Style.withStyle;
local v6 = Vector2.new(375, 70);
local v7 = require(l_Modules_0.LuaApp.Components.More.DevSubGame);
local v8 = v2.PureComponent:extend("DevSubGameList");
local function v20(v9, _)
    local v11 = {};
    local v12 = {};
    for _, v14 in pairs(v9) do
        if v14.activeSubs > 0 then
            table.insert(v11, v14);
        else
            table.insert(v12, v14);
        end;
    end;
    local v15 = {};
    for _, v17 in pairs(v11) do
        table.insert(v15, v17);
    end;
    for _, v19 in pairs(v12) do
        table.insert(v15, v19);
    end;
    return v15;
end;
v8.render = function(v21)
    return l_withStyle_0(function(_)
        local l_props_0 = v21.props;
        local l_games_0 = l_props_0.games;
        local l_subsByGameId_0 = l_props_0.subsByGameId;
        local l_onGameActivated_0 = l_props_0.onGameActivated;
        local v27 = {
            Layout = v2.createElement("UIListLayout", {
                SortOrder = Enum.SortOrder.LayoutOrder,
                HorizontalAlignment = Enum.HorizontalAlignment.Center,
                Padding = UDim.new(0, 0)
            })
        };
        l_games_0 = v20(l_games_0, l_subsByGameId_0);
        for v28, v29 in pairs(l_games_0) do
            local v30 = {};
            for _, v32 in pairs(l_subsByGameId_0[v29.id]) do
                table.insert(v30, v32.name);
            end;
            table.insert(v27, v2.createElement(v7, {
                game = v29,
                subNames = v30,
                activeSubs = v29.activeSubs,
                active = v29.activeSubs > 0,
                dividerDisabled = v28 == #l_games_0,
                onActivated = function()
                    l_onGameActivated_0(v29);
                end,
                maxSize = v6,
                layoutOrder = v28
            }));
        end;
        return v2.createElement(v4.FitFrame, {
            Size = UDim2.new(1, 0, 1, 0),
            BackgroundTransparency = 1,
            fitFields = {
                Size = v4.FitAxis.Height
            }
        }, v27);
    end);
end;
return v8;


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.UIBlox);
local v4 = require(l_Modules_0.LuaApp.FitChildren);
local v5 = require(l_Modules_0.LuaApp.Enum.DevSubPlanStatus);
local v6 = require(l_Modules_0.LuaApp.withLocalization);
local l_withStyle_0 = v3.Style.withStyle;
local v8 = Vector2.new(375, 104);
local v9 = {
    LEFT = 20
};
local v10 = require(l_Modules_0.LuaApp.Components.More.DevSubListItem);
local v11 = require(l_Modules_0.LuaApp.Components.More.DevSubListHeader);
local v12 = v2.PureComponent:extend("DevSubList");
local function _(v13)
    return not v13.isAutoRenewing or v13.planStatus ~= v5.Open;
end;
v12.render = function(v15)
    return v6({
        inactiveSubs = "Feature.DevSubs.Label.InactiveSubscriptions",
        activeSubs = "Feature.DevSubs.Label.ActiveSubscriptions"
    })(function(v16)
        return l_withStyle_0(function(v17)
            local l_props_0 = v15.props;
            local l_devSubs_0 = l_props_0.devSubs;
            local l_game_0 = l_props_0.game;
            local l_onDevSubActivated_0 = l_props_0.onDevSubActivated;
            local v22 = {
                Layout = v2.createElement("UIListLayout", {
                    SortOrder = Enum.SortOrder.LayoutOrder,
                    HorizontalAlignment = Enum.HorizontalAlignment.Center,
                    Padding = UDim.new(0, 0)
                }),
                Title = v2.createElement("Frame", {
                    LayoutOrder = 0,
                    BackgroundTransparency = 1,
                    Size = UDim2.new(1, 0, 0, 70)
                }, {
                    SizeConstraint = v2.createElement("UISizeConstraint", {
                        MaxSize = v8
                    }),
                    Padding = v2.createElement("UIPadding", {
                        PaddingLeft = UDim.new(0, v9.LEFT)
                    }),
                    Layout = v2.createElement("UIListLayout", {
                        SortOrder = Enum.SortOrder.LayoutOrder,
                        FillDirection = Enum.FillDirection.Horizontal,
                        VerticalAlignment = Enum.VerticalAlignment.Center,
                        Padding = UDim.new(0, 10)
                    }),
                    Icon = v2.createElement("ImageLabel", {
                        Size = UDim2.new(0, 44, 0, 44),
                        LayoutOrder = 1,
                        BackgroundTransparency = l_game_0.icon ~= nil and 1 or 0,
                        Image = l_game_0.icon
                    }),
                    Text = v2.createElement("TextLabel", {
                        BackgroundTransparency = 1,
                        Size = UDim2.new(1, -54, 0, 40),
                        LayoutOrder = 2,
                        Font = v17.Font.Title.Font,
                        TextSize = v17.Font.BaseSize * v17.Font.Title.RelativeSize,
                        TextXAlignment = Enum.TextXAlignment.Left,
                        TextColor3 = v17.Theme.TextDefault.Color,
                        TextTransparency = v17.Theme.TextDefault.Transparency,
                        TextTruncate = Enum.TextTruncate.AtEnd,
                        Text = l_game_0.name
                    })
                })
            };
            local v23 = {};
            local v24 = {};
            for _, v26 in pairs(l_devSubs_0) do
                if v26.status == "Active" then
                    table.insert(v23, v26);
                else
                    table.insert(v24, v26);
                end;
            end;
            table.sort(v23, function(v27, v28)
                local v29 = not v27.isAutoRenewing or v27.planStatus ~= v5.Open;
                local v30 = not v28.isAutoRenewing or v28.planStatus ~= v5.Open;
                if not v29 or not v30 then
                    return v29;
                else
                    return string.upper(v27.name) < string.upper(v28.name);
                end;
            end);
            local v31 = false;
            if #v23 > 0 then
                v31 = #v24 > 0;
            end;
            local v32 = 1;
            table.insert(v22, v31 and v2.createElement(v11, {
                layoutOrder = v32,
                maxSize = v8,
                text = v16.activeSubs
            }));
            v32 = v32 + 1;
            local function v35(v33, v34)
                table.insert(v22, v2.createElement(v10, {
                    devSub = v34,
                    maxSize = v8,
                    layoutOrder = v32,
                    hasFullDivider = v31 and v33 == 1,
                    onActivated = function(...)
                        l_onDevSubActivated_0(v34, ...);
                    end
                }));
                v32 = v32 + 1;
            end;
            for v36, v37 in pairs(v23) do
                v35(v36, v37);
            end;
            table.insert(v22, v31 and v2.createElement(v11, {
                layoutOrder = v32,
                maxSize = v8,
                text = v16.inactiveSubs
            }));
            v32 = v32 + 1;
            for v38, v39 in pairs(v24) do
                v35(v38, v39);
            end;
            return v2.createElement(v4.FitFrame, {
                Size = UDim2.new(1, 0, 1, 0),
                BackgroundTransparency = 1,
                fitFields = {
                    Size = v4.FitAxis.Height
                }
            }, v22);
        end);
    end);
end;
return v12;


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Roact);
local l_withStyle_0 = require(l_CorePackages_0.UIBlox).Style.withStyle;
local v3 = {
    LEFT = 22,
    TOP = 5,
    BOTTOM = 5
};
return function(v4)
    local l_maxSize_0 = v4.maxSize;
    local l_layoutOrder_0 = v4.layoutOrder;
    local l_text_0 = v4.text;
    return l_withStyle_0(function(v8)
        return v1.createElement("Frame", {
            LayoutOrder = l_layoutOrder_0,
            BackgroundTransparency = 1,
            Size = UDim2.new(1, 0, 0, 32)
        }, {
            SizeConstraint = v1.createElement("UISizeConstraint", {
                MaxSize = l_maxSize_0
            }),
            Padding = v1.createElement("UIPadding", {
                PaddingLeft = UDim.new(0, v3.LEFT),
                PaddingTop = UDim.new(0, v3.TOP),
                PaddingBottom = UDim.new(0, v3.BOTTOM)
            }),
            Text = v1.createElement("TextLabel", {
                BackgroundTransparency = 1,
                Size = UDim2.new(1, 0, 1, 0),
                Font = v8.Font.Header2.Font,
                TextSize = v8.Font.BaseSize * v8.Font.Header2.RelativeSize,
                TextXAlignment = Enum.TextXAlignment.Left,
                TextColor3 = v8.Theme.TextDefault.Color,
                TextTransparency = v8.Theme.TextDefault.Transparency,
                TextTruncate = Enum.TextTruncate.AtEnd,
                Text = l_text_0
            })
        });
    end);
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_CorePackages_0 = game:GetService("CorePackages");
local l_DateTime_0 = require(l_CorePackages_0.Workspace.Packages.Time).DateTime;
local v3 = require(l_CorePackages_0.Roact);
local v4 = require(l_CorePackages_0.UIBlox);
local v5 = require(l_CorePackages_0.Cryo);
local v6 = require(l_Modules_0.LuaApp.Components.DEPRECATED_ImageSetLabel);
local v7 = require(l_Modules_0.LuaApp.Components.DEPRECATED_ImageSetButton);
local v8 = require(l_Modules_0.LuaApp.withLocalization);
local l_withStyle_0 = v4.Style.withStyle;
local v10 = require(l_Modules_0.LuaApp.Enum.DevSubStatus);
local v11 = require(l_Modules_0.LuaApp.Enum.DevSubPlanStatus);
local v12 = v3.PureComponent:extend("DevSubListItem");
local v13 = {
    TOP = 15,
    LEFT = 24,
    RIGHT = 25
};
v12.defaultProps = {
    layoutOrder = 0
};
v12.getRenewalText = function(_, v15, v16)
    if not v15.isAutoRenewing then
        return v16.expirationDate;
    else
        return v16.renewalDate;
    end;
end;
v12.render = function(v17)
    local l_devSub_0 = v17.props.devSub;
    local l_Values_0 = l_DateTime_0.fromIsoDate(l_devSub_0.expirationDate):GetValues();
    local v20 = string.format("%d/%d/%d", l_Values_0.Month, l_Values_0.Day, l_Values_0.Year);
    return v8({
        monthlyPrice = {
            "Feature.DevSubs.UserManagement.MonthlyPrice";
            robuxAmount = l_devSub_0.price
        },
        renewalDate = {
            "Feature.DevSubs.Label.RenewalDate";
            date = v20
        },
        expirationDate = {
            "Feature.DevSubs.Label.ExpirationDate";
            date = v20
        },
        discontinueDate = {
            "Feature.DevSubs.Label.DiscontinueDate";
            date = v20
        }
    })(function(v21)
        return l_withStyle_0(function(v22)
            local l_props_0 = v17.props;
            local l_devSub_1 = l_props_0.devSub;
            local l_layoutOrder_0 = l_props_0.layoutOrder;
            local l_maxSize_0 = l_props_0.maxSize;
            local l_hasFullDivider_0 = l_props_0.hasFullDivider;
            local l_onActivated_0 = l_props_0.onActivated;
            local v29 = nil;
            local v30 = nil;
            if not l_hasFullDivider_0 then
                v29 = UDim2.new(1, v13.RIGHT, 0, 1);
                v30 = UDim2.new(0, 0, 0, -v13.TOP);
            else
                v29 = UDim2.new(1, v13.LEFT + v13.RIGHT, 0, 1);
                v30 = UDim2.new(0, -v13.LEFT, 0, -v13.TOP);
            end;
            local v31 = nil;
            if not l_devSub_1.isAutoRenewing then
                v31 = {
                    Font = v22.Font.CaptionHeader.Font,
                    TextSize = v22.Font.BaseSize * v22.Font.CaptionHeader.RelativeSize,
                    TextColor3 = v22.Theme.TextEmphasis.Color,
                    TextTransparency = v22.Theme.TextEmphasis.Transparency,
                    Text = v21.expirationDate
                };
                if l_devSub_1.planStatus ~= "Open" then
                    v31.Text = v21.discontinueDate;
                end;
            else
                v31 = {
                    Font = v22.Font.CaptionBody.Font,
                    TextSize = v22.Font.BaseSize * v22.Font.CaptionBody.RelativeSize,
                    TextColor3 = v22.Theme.TextDefault.Color,
                    TextTransparency = v22.Theme.TextDefault.Transparency,
                    Text = v21.renewalDate
                };
            end;
            local l_createElement_0 = v3.createElement;
            local v33 = "Frame";
            local v34 = {
                Size = UDim2.new(1, 0, 0, l_maxSize_0.Y),
                LayoutOrder = l_layoutOrder_0,
                BackgroundTransparency = 1
            };
            local v35 = {
                SizeConstraint = v3.createElement("UISizeConstraint", {
                    MaxSize = l_maxSize_0
                }),
                Padding = v3.createElement("UIPadding", {
                    PaddingTop = UDim.new(0, v13.TOP),
                    PaddingLeft = UDim.new(0, v13.LEFT),
                    PaddingRight = UDim.new(0, v13.RIGHT)
                })
            };
            local l_createElement_1 = v3.createElement;
            local l_v7_0 = v7;
            local v38 = {
                Image = "LuaApp/icons/navbar_more",
                AnchorPoint = Vector2.new(1, 0),
                Size = UDim2.new(0, 26, 0, 26),
                Position = UDim2.new(1, 0, 0, 18),
                BackgroundTransparency = 1
            };
            local v39 = false;
            if l_devSub_1.status == v10.Active then
                v39 = l_devSub_1.planStatus == v11.Open;
            end;
            v38.Visible = v39;
            v38[v3.Event.Activated] = function(v40)
                l_onActivated_0(v40.AbsolutePosition, v40.AbsoluteSize);
            end;
            v35.MoreButton = l_createElement_1(l_v7_0, v38);
            v35.TextFrame = v3.createElement("Frame", {
                BackgroundTransparency = 1,
                Size = UDim2.new(1, -(v13.RIGHT + 26), 1, 0)
            }, {
                Layout = v3.createElement("UIListLayout", {
                    SortOrder = Enum.SortOrder.LayoutOrder,
                    Padding = UDim.new(0, 4)
                }),
                Title = v3.createElement("TextLabel", {
                    BackgroundTransparency = 1,
                    Size = UDim2.new(1, 0, 0, 22),
                    LayoutOrder = 1,
                    Font = v22.Font.Header2.Font,
                    TextSize = v22.Font.BaseSize * v22.Font.Header2.RelativeSize,
                    TextXAlignment = Enum.TextXAlignment.Left,
                    TextColor3 = v22.Theme.TextDefault.Color,
                    TextTransparency = v22.Theme.TextDefault.Transparency,
                    TextTruncate = Enum.TextTruncate.AtEnd,
                    Text = l_devSub_1.name
                }),
                PriceFrame = v3.createElement("Frame", {
                    BackgroundTransparency = 1,
                    Size = UDim2.new(1, 0, 0, 17),
                    LayoutOrder = 2
                }, {
                    Layout = v3.createElement("UIListLayout", {
                        FillDirection = Enum.FillDirection.Horizontal,
                        HorizontalAlignment = Enum.HorizontalAlignment.Left,
                        SortOrder = Enum.SortOrder.LayoutOrder,
                        Padding = UDim.new(0, 4)
                    }),
                    Icon = v3.createElement(v6, {
                        BackgroundTransparency = 1,
                        Image = "LuaApp/icons/robux-hex",
                        Size = UDim2.new(0, 17, 0, 17),
                        LayoutOrder = 1
                    }),
                    Text = v3.createElement("TextLabel", {
                        BackgroundTransparency = 1,
                        Size = UDim2.new(1, -21, 1, 0),
                        LayoutOrder = 2,
                        Font = v22.Font.CaptionBody.Font,
                        TextSize = v22.Font.BaseSize * v22.Font.CaptionBody.RelativeSize,
                        TextXAlignment = Enum.TextXAlignment.Left,
                        TextColor3 = v22.Theme.TextDefault.Color,
                        TextTransparency = v22.Theme.TextDefault.Transparency,
                        TextTruncate = Enum.TextTruncate.AtEnd,
                        Text = l_devSub_1.price
                    })
                }),
                RenewalDate = v3.createElement("TextLabel", v5.Dictionary.join(v31, {
                    BackgroundTransparency = 1,
                    Size = UDim2.new(1, 0, 0, 17),
                    LayoutOrder = 3,
                    TextXAlignment = Enum.TextXAlignment.Left,
                    TextTruncate = Enum.TextTruncate.AtEnd
                }))
            });
            v35.Divider = v3.createElement("Frame", {
                BorderSizePixel = 0,
                BackgroundColor3 = v22.Theme.Divider.Color,
                BackgroundTransparency = v22.Theme.Divider.Transparency,
                Size = v29,
                Position = v30
            });
            return l_createElement_0(v33, v34, v35);
        end);
    end);
end;
return v12;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_CorePackages_0 = game:GetService("CorePackages");
local v2 = require(l_Modules_0.Common.Roact);
local v3 = require(l_CorePackages_0.UIBlox);
local v4 = require(l_Modules_0.Common.RoactRodux);
local l_RoactServices_0 = require(l_CorePackages_0.Workspace.Packages.RoactServices).RoactServices;
local v6 = require(l_Modules_0.LuaApp.Services.RoactNetworking);
local l_withStyle_0 = v3.Style.withStyle;
local v8 = require(l_Modules_0.LuaApp.Constants);
local v9 = require(l_Modules_0.LuaApp.FitChildren);
local l_FormFactor_0 = require(l_CorePackages_0.Workspace.Packages.FormFactor).Enums.FormFactor;
local v11 = require(l_Modules_0.LuaApp.Enum.RetrievalStatus);
local v12 = require(l_Modules_0.LuaApp.Enum.DevSubStatus);
local v13 = require(l_Modules_0.LuaApp.Thunks.DevSubs);
local v14 = require(l_Modules_0.LuaApp.AppPage);
local v15 = require(l_Modules_0.LuaApp.Thunks.NavigateDown);
local v16 = require(l_Modules_0.LuaApp.Components.TopBar.TopBar);
local v17 = require(l_Modules_0.LuaApp.Components.More.DevSubGameList);
local v18 = require(l_Modules_0.LuaApp.Components.More.DevSubList);
local v19 = require(l_Modules_0.LuaApp.Enum.OverlayType);
local v20 = require(l_Modules_0.LuaApp.Actions.SetCentralOverlay);
local l_GameIconReducer_0 = require(l_CorePackages_0.Workspace.Packages.GameIconRodux).GameIcons.GameIconReducer;
local function _(v22)
    return v22.status == v12.Active;
end;
local v24 = v2.Component:extend("DevSubsPage");
v24.init = function(v25)
    v25.onGameActivated = function(v26)
        v25.props.navigateDown({
            name = v14.DevSubs,
            detail = v26.id
        });
    end;
    v25.onDevSubActivated = function(v27, v28, v29)
        v25.props.dispatchDevSubMoreMenuOverlay({
            anchorSpacePosition = v28,
            anchorSpaceSize = v29,
            devSub = v27
        });
    end;
end;
v24.render = function(v30)
    return l_withStyle_0(function(v31)
        local l_formFactor_0 = v30.props.formFactor;
        local l_devSubs_0 = v30.props.devSubs;
        local l_selectedGame_0 = v30.props.selectedGame;
        local v35 = l_formFactor_0 == l_FormFactor_0.WIDE;
        local v36 = {
            Layout = v2.createElement("UIListLayout", {
                SortOrder = Enum.SortOrder.LayoutOrder,
                HorizontalAlignment = Enum.HorizontalAlignment.Center,
                Padding = UDim.new(0, 0)
            }),
            UIPadding = v2.createElement("UIPadding", {
                PaddingLeft = UDim.new(0, not not v35 and v8.MORE_PAGE_WIDE_PADDING_HORIZONTAL or 0),
                PaddingRight = UDim.new(0, not not v35 and v8.MORE_PAGE_WIDE_PADDING_HORIZONTAL or 0),
                PaddingTop = UDim.new(0, not not v35 and v8.MORE_PAGE_WIDE_PADDING_VERTICAL or v8.MORE_PAGE_SECTION_PADDING),
                PaddingBottom = UDim.new(0, not not v35 and v8.MORE_PAGE_WIDE_PADDING_VERTICAL or v8.MORE_PAGE_SECTION_PADDING)
            })
        };
        local v37 = v30:getDevSubsByGameId(l_devSubs_0);
        local v38 = v30:getGamesById(l_devSubs_0);
        if not l_selectedGame_0 then
            v36.GameList = v2.createElement(v17, {
                games = v38,
                subsByGameId = v37,
                onGameActivated = v30.onGameActivated
            });
        else
            v36.SubList = v2.createElement(v18, {
                game = v38[l_selectedGame_0],
                devSubs = v37[l_selectedGame_0],
                onDevSubActivated = v30.onDevSubActivated
            });
        end;
        return v2.createElement("Frame", {
            Size = UDim2.new(1, 0, 1, 0),
            BorderSizePixel = 0,
            BackgroundColor3 = v31.Theme.BackgroundDefault.Color,
            BackgroundTransparency = v31.Theme.BackgroundDefault.Transparency
        }, {
            TopBarMorePage = v2.createElement(v16.Container, {
                leftItem = v16.BackButton,
                rightItems = {
                    v16.BuyRobuxButton,
                    v16.NotificationsButton
                }
            }),
            PageContent = v2.createElement(v16.PageContent, {}, {
                Scroller = v2.createElement(v9.FitScrollingFrame, {
                    Position = UDim2.fromScale(0, 0),
                    Size = UDim2.fromScale(1, 1),
                    CanvasSize = UDim2.new(1, 0, 0, 0),
                    BackgroundTransparency = 1,
                    BorderSizePixel = 0,
                    ScrollBarThickness = 0,
                    ClipsDescendants = false,
                    fitFields = {
                        CanvasSize = v9.FitAxis.Height
                    }
                }, v36)
            })
        });
    end);
end;
v24.getDevSubsByGameId = function(_, v40)
    local v41 = {};
    for _, v43 in pairs(v40) do
        local l_gameId_0 = v43.gameId;
        if not v41[l_gameId_0] then
            v41[l_gameId_0] = {
                v43
            };
        else
            table.insert(v41[l_gameId_0], v43);
        end;
    end;
    return v41;
end;
v24.getGameIcon = function(v45, v46)
    v46 = tostring(v46);
    local l_gameIcons_0 = v45.props.gameIcons;
    if not l_gameIcons_0 or not l_gameIcons_0[v46] then
        return "";
    else
        return l_gameIcons_0[v46].url;
    end;
end;
v24.getGamesById = function(v48, v49)
    local v50 = {};
    for _, v52 in pairs(v49) do
        local v53 = v50[v52.gameId];
        local v54 = v52.status == v12.Active;
        if not v53 then
            v50[v52.gameId] = {
                name = v52.gameData.name,
                icon = v48:getGameIcon(v52.gameId),
                id = v52.gameId,
                activeSubs = not v54 and 0 or 1
            };
        elseif v54 then
            v53.activeSubs = v53.activeSubs + 1;
        end;
    end;
    return v50;
end;
v24.didMount = function(v55)
    if v55.props.devSubsFetchingStatus == v11.NotStarted then
        v55.props.dispatchFetchDevSubs(v55.props.networking);
    end;
end;
return l_RoactServices_0.connect({
    networking = v6
})((v4.connect(function(v56, _)
    return {
        formFactor = v56.FormFactor,
        devSubsFetchingStatus = v13.GetFetchingStatus(v56),
        devSubs = v56.DevSubs,
        gameIcons = v56[l_GameIconReducer_0.key]
    };
end, function(v58)
    return {
        dispatchFetchDevSubs = function(v59)
            return v58(v13.Fetch(v59));
        end,
        navigateDown = function(...)
            return v58(v15(...));
        end,
        dispatchDevSubMoreMenuOverlay = function(v60)
            return v58(v20(v19.DevSubMore, v60));
        end
    };
end)(v24)));


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Packages.React);
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v3 = require(l_CorePackages_0.UIBlox);
local l_AppGuiService_0 = require(l_CorePackages_0.Workspace.Packages.RoactServiceTags).AppGuiService;
local v5 = require(l_Modules_0.LuaApp.Services.RoactNetworking);
local l_useLocalization_0 = require(l_CorePackages_0.Workspace.Packages.Localization).Hooks.useLocalization;
local v7 = require(l_Modules_0.LuaApp.Hooks.useRoactService);
local l_useDispatch_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).Hooks.RoactRodux.useDispatch;
local v9 = require(l_Modules_0.LuaApp.Thunks.OpenCentralOverlayForConfirmSignOut);
local v10 = require(l_Modules_0.LuaApp.Themes.DeprecatedDarkTheme);
local l_useDesignTokens_0 = require(l_CorePackages_0.Workspace.Packages.Style).useDesignTokens;
local l_Button_0 = v3.App.Button.Button;
local l_ButtonType_0 = v3.App.Button.Enum.ButtonType;
local v14 = require(l_Modules_0.LuaApp.Thunks.Authentication.Console.ConsoleDisconnect);
local l_GetFFlagFixTenFootUiMorePage_0 = require(l_CorePackages_0.Workspace.Packages.SharedFlags).GetFFlagFixTenFootUiMorePage;
return function()
    local v16 = if not l_GetFFlagFixTenFootUiMorePage_0() then nil else l_useDesignTokens_0().LuaApps.More.DisconnectTextFont;
    local v17 = l_useDispatch_0();
    local v18 = l_useLocalization_0({
        logout = "Application.Logout.Action.Logout"
    });
    local v19 = v7(v5);
    local v20 = v7(l_AppGuiService_0);
    return v1.createElement("Frame", {
        AnchorPoint = Vector2.new(0.5, 0),
        BackgroundTransparency = 1,
        Position = UDim2.new(0.5, 0, 0, 0),
        Size = UDim2.new(1, 0, 1, 0)
    }, {
        DisconnectButton = v1.createElement(l_Button_0, {
            buttonType = l_ButtonType_0.Secondary,
            size = UDim2.new(1, 0, 1, 0),
            text = v18.logout,
            fontStyle = if not l_GetFFlagFixTenFootUiMorePage_0() then nil else v16,
            onActivated = v1.useCallback(function()
                v17(v9(function()
                    v17(v14(v19, v20));
                end, v10));
            end, {
                v17,
                v19,
                v20
            })
        })
    });
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Roact);
local v2 = require(l_CorePackages_0.UIBlox);
local v3 = require(l_CorePackages_0.Cryo);
local v4 = require(l_CorePackages_0.Packages.t);
local l_withStyle_0 = v2.Core.Style.withStyle;
local l_VerticalScrollViewWithMargin_0 = v2.App.Container.VerticalScrollViewWithMargin;
local v7 = v1.PureComponent:extend("LicenseText");
v7.defaultProps = {
    contentMaxWidth = math.huge,
    paddingHorizontal = 0
};
v7.validateProps = v4.strictInterface({
    licenseTextLines = v4.array(v4.string),
    contentMaxWidth = v4.optional(v4.number),
    paddingHorizontal = v4.optional(v4.number)
});
v7.getTextLines = function(v8, v9)
    local l_licenseTextLines_0 = v8.props.licenseTextLines;
    local v11 = {
        TextLayout = v1.createElement("UIListLayout", {
            SortOrder = Enum.SortOrder.LayoutOrder,
            FillDirection = Enum.FillDirection.Vertical
        })
    };
    for v12, v13 in ipairs(l_licenseTextLines_0) do
        v11[v12] = v1.createElement("TextLabel", v3.Dictionary.join(v9, {
            LayoutOrder = v12,
            Text = v13
        }));
    end;
    return v11;
end;
v7.render = function(v14)
    return l_withStyle_0(function(v15)
        local l_TextDefault_0 = v15.Theme.TextDefault;
        local l_Font_0 = v15.Font;
        local l_Font_1 = l_Font_0.Body.Font;
        local v19 = l_Font_0.BaseSize * l_Font_0.Body.RelativeSize;
        local l_contentMaxWidth_0 = v14.props.contentMaxWidth;
        local l_paddingHorizontal_0 = v14.props.paddingHorizontal;
        return v1.createElement(l_VerticalScrollViewWithMargin_0, {
            canvasSizeY = UDim.new(0, 0),
            useAutomaticCanvasSize = true,
            paddingHorizontal = 0
        }, {
            LicenseFrame = v1.createElement("Frame", {
                AutomaticSize = Enum.AutomaticSize.Y,
                Size = UDim2.fromScale(1, 0),
                Position = UDim2.fromScale(0.5, 0),
                AnchorPoint = Vector2.new(0.5, 0),
                BackgroundTransparency = 1
            }, {
                License = v1.createElement("Frame", {
                    AutomaticSize = Enum.AutomaticSize.Y,
                    Size = UDim2.fromScale(1, 0),
                    BackgroundTransparency = 1
                }, (v14:getTextLines({
                    Size = UDim2.fromScale(1, 0),
                    AutomaticSize = Enum.AutomaticSize.Y,
                    TextXAlignment = Enum.TextXAlignment.Left,
                    TextYAlignment = Enum.TextYAlignment.Top,
                    BackgroundTransparency = 1,
                    Font = l_Font_1,
                    TextSize = v19,
                    LineHeight = 1.25,
                    TextWrapped = true,
                    TextColor3 = l_TextDefault_0.Color,
                    TextTransparency = l_TextDefault_0.Transparency
                }))),
                LicenseMaxWidth = v1.createElement("UISizeConstraint", {
                    MaxSize = Vector2.new(l_contentMaxWidth_0 + 2 * l_paddingHorizontal_0, math.huge)
                }),
                LicensePadding = v1.createElement("UIPadding", {
                    PaddingLeft = UDim.new(0, l_paddingHorizontal_0),
                    PaddingRight = UDim.new(0, l_paddingHorizontal_0),
                    PaddingBottom = UDim.new(0, 24)
                })
            })
        });
    end);
end;
return v7;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_InsertService_0 = game:GetService("InsertService");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v3 = require(l_CorePackages_0.Packages.React);
local _ = require(l_Modules_0.Common.memoize);
local v5 = require(l_CorePackages_0.Promise);
local _ = function()
    return v5.new(function(v6, v7)
        task.spawn(function()
            local l_status_0, l_result_0 = pcall(function()
                local v8 = {};
                for _, v10 in pairs(l_InsertService_0:LoadLocalAsset("rbxasset://models/Licenses/Licenses.rbxm"):FindFirstChild("CoreScripts"):GetChildren()) do
                    local v11, v12 = v10.Name:match("^(%d*)-(.*)");
                    v8[v11 + 1] = {
                        key = v12,
                        value = v10.Value:match("(.-)\n*$"):split("\n")
                    };
                end;
                return v8;
            end);
            if not l_status_0 then
                v7(l_result_0);
                return ;
            else
                v6(l_result_0);
                return ;
            end;
        end);
    end);
end;
return function()
    local v16, v17 = v3.useState({
        licenseList = {},
        initialLicense = nil,
        initialLicenseKey = nil
    });
    v3.useLayoutEffect(function()
        v5.new(function(v18, v19)
            task.spawn(function()
                local l_status_1, l_result_1 = pcall(function()
                    local v20 = {};
                    for _, v22 in pairs(l_InsertService_0:LoadLocalAsset("rbxasset://models/Licenses/Licenses.rbxm"):FindFirstChild("CoreScripts"):GetChildren()) do
                        local v23, v24 = v22.Name:match("^(%d*)-(.*)");
                        v20[v23 + 1] = {
                            key = v24,
                            value = v22.Value:match("(.-)\n*$"):split("\n")
                        };
                    end;
                    return v20;
                end);
                if not l_status_1 then
                    v19(l_result_1);
                    return ;
                else
                    v18(l_result_1);
                    return ;
                end;
            end);
        end):andThen(function(v27)
            v17({
                licenseList = v27,
                initialLicense = v27[1],
                initialLicenseKey = if not v27[1] then nil else v27[1].key
            });
        end):catch(function(v28)
            warn("Failed to retrieve license data: ", v28);
        end);
    end, {});
    return v16;
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_InsertService_0 = game:GetService("InsertService");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v3 = require(l_CorePackages_0.Roact);
local v4 = require(l_CorePackages_0.RoactRodux);
local v5 = require(l_CorePackages_0.UIBlox);
local v6 = require(l_CorePackages_0.Packages.t);
local l_withStyle_0 = v5.Style.withStyle;
local v8 = require(l_Modules_0.LuaApp.withLocalization);
local _ = require(l_Modules_0.LuaApp.Constants);
local v10 = require(l_Modules_0.Common.memoize);
local v11 = require(l_Modules_0.LuaApp.Components.TopBar.TopBar);
local v12 = require(l_Modules_0.LuaApp.Components.Generic.DropdownSelector);
local v13 = require(l_Modules_0.LuaApp.Components.More.LicenseText);
local v14 = require(l_Modules_0.LuaApp.Components.More.MorePageUtils);
local l_EmptyState_0 = v5.App.Indicator.EmptyState;
local v16 = require(l_Modules_0.LuaApp.Flags.FFlagLuaAppSingleHeaderBar);
local v17 = v3.PureComponent:extend("LicensingPage");
v17.validateProps = v6.strictInterface({
    screenSize = v6.Vector2,
    formFactor = v6.string
});
v17.getLicenseList = function()
    local l_status_0, l_result_0 = pcall(function()
        local v18 = {};
        for _, v20 in pairs(l_InsertService_0:LoadLocalAsset("rbxasset://models/Licenses/Licenses.rbxm"):FindFirstChild("CoreScripts"):GetChildren()) do
            local v21, v22 = v20.Name:match("^(%d*)-(.*)");
            local v23 = v20.Value:match("(.-)\n*$");
            v18[v21 + 1] = {
                key = v22,
                value = v10(function()
                    return v23:split("\n");
                end)
            };
        end;
        return v18;
    end);
    return not not l_status_0 and l_result_0 or {};
end;
v17.init = function(v26)
    v26:setState({
        licenseList = v26.getLicenseList()
    });
end;
v17.renderWithProviders = function(v27, v28, v29)
    local l_emptyStateText_0 = v28.emptyStateText;
    local l_BackgroundDefault_0 = v29.Theme.BackgroundDefault;
    local l_licenseList_0 = v27.state.licenseList;
    local l_screenSize_0 = v27.props.screenSize;
    local v34, v35, v36 = v14.paddingsForFormFactor(v27.props.formFactor);
    local v38 = v3.createElement(v12, {
        itemList = l_licenseList_0,
        screenSize = l_screenSize_0,
        renderSelectedItem = function(v37)
            return v3.createElement(v13, {
                licenseTextLines = v37(),
                contentMaxWidth = v36,
                paddingHorizontal = v34
            });
        end,
        contentMaxWidth = v36,
        selectorHeight = 48,
        selectorSpacer = 24,
        paddingHorizontal = v34,
        paddingVertical = v35,
        isDisabled = #l_licenseList_0 == 0,
        errorText = l_emptyStateText_0,
        renderErrorItem = function()
            return v3.createElement(l_EmptyState_0, {
                text = l_emptyStateText_0
            });
        end
    });
    return v3.createElement("Frame", {
        Size = UDim2.fromScale(1, 1),
        BackgroundColor3 = l_BackgroundDefault_0.Color,
        BackgroundTransparency = l_BackgroundDefault_0.Transparency,
        BorderSizePixel = if not v16 then nil else 0
    }, {
        TopBar = if not v16 then v3.createElement(v11.Container, {
            leftItem = v11.BackButton,
            rightItems = {
                v11.BuyRobuxButton,
                v11.NotificationsButton
            }
        }) else nil,
        LicenseSelectorFrame = if not v16 then v3.createElement(v11.PageContent, {}, {
            LicenseSelector = v38
        }) else v38
    });
end;
v17.render = function(v39)
    return v8({
        emptyStateText = "CommonUI.Messages.Message.NoLicenses"
    })(function(v40)
        return l_withStyle_0(function(v41)
            return v39:renderWithProviders(v40, v41);
        end);
    end);
end;
return (v4.connect(function(v42, _)
    return {
        screenSize = v42.ScreenSize,
        formFactor = v42.FormFactor
    };
end)(v17));


local v0 = require(game:GetService("CorePackages").Roact);
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_Modules_0.LuaApp.ArgCheck);
local v3 = require(l_Modules_0.LuaApp.withLocalization);
local v4 = require(l_Modules_0.LuaApp.Components.SecondaryButtonRetheme);
local _ = require(l_Modules_0.LuaApp.Hooks.useAppPolicy);
return function(v6)
    local l_onActivated_0 = v6.onActivated;
    v2.isType(l_onActivated_0, "function", "onActivated");
    return v3({
        logOutText = "Application.Logout.Action.Logout"
    })(function(v8)
        return v0.createElement("Frame", {
            AnchorPoint = Vector2.new(0.5, 0),
            BackgroundTransparency = 1,
            Position = UDim2.new(0.5, 0, 0, 0),
            Size = UDim2.new(1, 0, 1, 0)
        }, {
            UIPadding = v0.createElement("UIPadding", {
                PaddingLeft = UDim.new(0, 24),
                PaddingRight = UDim.new(0, 24)
            }),
            UISizeConstraint = v0.createElement("UISizeConstraint", {
                MaxSize = Vector2.new(688, math.huge)
            }),
            LogOutButtonFrame = v0.createElement("Frame", {
                AnchorPoint = Vector2.new(0.5, 0),
                BackgroundTransparency = 1,
                Position = UDim2.new(0.5, 0, 0, 0),
                Size = UDim2.new(1, 0, 1, 0)
            }, {
                LogOutButton = v0.createElement(v4, {
                    Size = UDim2.new(1, 0, 1, 0),
                    Text = v8.logOutText,
                    isLoading = false,
                    isDisabled = false,
                    onActivated = l_onActivated_0
                })
            })
        });
    end);
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_CorePackages_0.Cryo);
local v3 = require(l_CorePackages_0.Roact);
local l_withStyle_0 = require(l_CorePackages_0.UIBlox).Style.withStyle;
local v5 = require(l_Modules_0.LuaApp.Constants);
local v6 = require(l_Modules_0.LuaApp.withLocalization);
local v7 = require(l_Modules_0.LuaApp.Components.DEPRECATED_ImageSetLabel);
local v8 = v3.PureComponent:extend("MoreButton");
v8.defaultProps = {
    Size = UDim2.new(1, 0, 1, 0),
    Position = UDim2.new(0, 0, 0, 0),
    TextXAlignment = Enum.TextXAlignment.Left,
    LayoutOrder = 1
};
v8.eventDisconnect = function(v9)
    if v9.onAbsolutePositionChanged then
        v9.onAbsolutePositionChanged:disconnect();
        v9.onAbsolutePositionChanged = nil;
    end;
end;
v8.onButtonUp = function(v10)
    if v10.state.buttonPressed then
        v10:setState({
            buttonPressed = false
        });
    end;
    v10:eventDisconnect();
end;
v8.onButtonDown = function(v11)
    if not v11.state.buttonPressed then
        v11:eventDisconnect();
        v11.onAbsolutePositionChanged = v11.buttonRef.current and v11.buttonRef.current:GetPropertyChangedSignal("AbsolutePosition"):connect(function()
            v11:onButtonUp();
        end);
        v11:setState({
            buttonPressed = true
        });
    end;
end;
v8.init = function(v12)
    v12.state = {
        buttonPressed = false
    };
    v12.buttonRef = v3.createRef();
    v12.onButtonInputBegan = function(_, v14)
        if v14.UserInputState == Enum.UserInputState.Begin and (not (v14.UserInputType ~= Enum.UserInputType.Touch) or v14.UserInputType == Enum.UserInputType.MouseButton1) then
            v12:onButtonDown();
        end;
    end;
    v12.onButtonInputEnded = function()
        v12:onButtonUp();
    end;
    v12.onButtonActivated = function()
        v12:onButtonUp();
        local l_onActivated_0 = v12.props.onActivated;
        if l_onActivated_0 then
            l_onActivated_0();
        end;
    end;
end;
v8.render = function(v16)
    local l_buttonPressed_0 = v16.state.buttonPressed;
    local l_Size_0 = v16.props.Size;
    local l_Position_0 = v16.props.Position;
    local l_LayoutOrder_0 = v16.props.LayoutOrder;
    local l_textKey_0 = v16.props.textKey;
    local l_TextXAlignment_0 = v16.props.TextXAlignment;
    local l_icon_0 = v16.props.icon;
    local l_rightImage_0 = v16.props.rightImage;
    local l_badgeComponent_0 = v16.props.badgeComponent;
    local l_badgeCount_0 = v16.props.badgeCount;
    local v27 = l_TextXAlignment_0 == Enum.TextXAlignment.Center and 0 or (l_icon_0 and v5.MORE_PAGE_TEXT_PADDING_WITH_ICON or v5.MORE_PAGE_ROW_PADDING_LEFT);
    local v28 = (l_badgeComponent_0 and l_badgeCount_0) and l_badgeCount_0 > 0;
    local function v34(v29, v30, v31, v32, v33)
        return v3.createElement("ImageButton", {
            Size = l_Size_0,
            Position = l_Position_0,
            AutoButtonColor = false,
            LayoutOrder = l_LayoutOrder_0,
            BackgroundColor3 = v30.Color,
            BackgroundTransparency = v30.Transparency,
            BorderSizePixel = 0,
            [v3.Event.InputBegan] = v16.onButtonInputBegan,
            [v3.Event.InputEnded] = v16.onButtonInputEnded,
            [v3.Event.Activated] = v16.onButtonActivated,
            [v3.Ref] = v16.buttonRef
        }, {
            Icon = l_icon_0 and v3.createElement(v7, {
                AnchorPoint = Vector2.new(0, 0.5),
                Size = UDim2.new(0, 26, 0, 26),
                Position = UDim2.new(0, v5.MORE_PAGE_ROW_PADDING_LEFT, 0.5, 0),
                BackgroundTransparency = 1,
                BorderSizePixel = 0,
                ClipsDescendants = false,
                Image = l_icon_0,
                ImageColor3 = v32.Color,
                ImageTransparency = v32.Transparency
            }),
            Text = v3.createElement("TextLabel", {
                Size = UDim2.new(1, 0, 1, 0),
                Position = UDim2.new(0, v27, 0, 0),
                BackgroundTransparency = 1,
                BorderSizePixel = 0,
                Text = v29.moreButtonText,
                Font = v31.Font,
                TextSize = v31.Size,
                TextColor3 = v31.Color,
                TextTransparency = v31.Transparency,
                TextXAlignment = l_TextXAlignment_0,
                TextYAlignment = Enum.TextYAlignment.Center
            }),
            RightImage = l_rightImage_0 and v3.createElement(v7, {
                AnchorPoint = Vector2.new(1, 0.5),
                Size = UDim2.new(0, 14, 0, 14),
                Position = UDim2.new(1, -v5.MORE_PAGE_ROW_PADDING_RIGHT, 0.5, 0),
                BackgroundTransparency = 1,
                BorderSizePixel = 0,
                Image = l_rightImage_0,
                ImageColor3 = v33.Color,
                ImageTransparency = v33.Transparency
            }),
            NotificationBadge = v28 and v3.createElement(l_badgeComponent_0, {
                AnchorPoint = Vector2.new(1, 0.5),
                Position = UDim2.new(1, -v5.MORE_PAGE_ROW_PADDING_RIGHT * 2 - 14, 0.5, 0),
                badgeCount = l_badgeCount_0
            })
        });
    end;
    return v6({
        moreButtonText = l_textKey_0
    })(function(v35)
        return l_withStyle_0(function(v36)
            return v34(v35, not not l_buttonPressed_0 and v36.Theme.BackgroundOnPress or v36.Theme.BackgroundDefault, v2.Dictionary.join(v36.Theme.TextDefault, {
                Font = v36.Font.Header2.Font,
                Size = v36.Font.BaseSize * v36.Font.Header2.RelativeSize
            }), v36.Theme.TextDefault, v36.Theme.SecondaryDefault);
        end);
    end);
end;
v8.willUnmount = function(v37)
    v37:eventDisconnect();
end;
return v8;


local v0 = require(game:GetService("CorePackages").Packages.t);
local v1 = require(game:GetService("CoreGui").RobloxGui.Modules.Common.Roact);
local v2 = v1.PureComponent:extend("MoreGrid");
v2.defaultProps = {
    layoutOrder = 1,
    size = UDim2.fromScale(1, 1)
};
v2.validateProps = v0.strictInterface({
    gridCellPadding = v0.integer,
    gridCellSize = v0.integer,
    items = v0.table,
    layoutOrder = v0.optional(v0.integer),
    renderItem = v0.callback,
    size = v0.optional(v0.UDim2)
});
v2.render = function(v3)
    local l_gridCellPadding_0 = v3.props.gridCellPadding;
    local l_gridCellSize_0 = v3.props.gridCellSize;
    local l_items_0 = v3.props.items;
    local l_layoutOrder_0 = v3.props.layoutOrder;
    local l_renderItem_0 = v3.props.renderItem;
    local l_size_0 = v3.props.size;
    local v10 = UDim2.fromOffset(l_gridCellPadding_0, l_gridCellPadding_0);
    local v11 = UDim2.fromOffset(l_gridCellSize_0, l_gridCellSize_0);
    local v12 = {};
    for v13, v14 in ipairs(l_items_0) do
        v12[v13] = l_renderItem_0(v14, v13);
    end;
    v12.GridLayout = v1.createElement("UIGridLayout", {
        CellPadding = v10,
        CellSize = v11,
        HorizontalAlignment = Enum.HorizontalAlignment.Center,
        SortOrder = Enum.SortOrder.LayoutOrder
    });
    return v1.createElement("Frame", {
        BackgroundTransparency = 1,
        LayoutOrder = l_layoutOrder_0,
        Size = l_size_0
    }, v12);
end;
return v2;


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Roact);
local v2 = require(l_CorePackages_0.RoactNavigation);
local v3 = require(l_CorePackages_0.RoactRodux);
local v4 = require(l_CorePackages_0.Packages.t);
local v5 = require(l_CorePackages_0.UIBlox);
local l_MenuTile_0 = v5.App.Tile.MenuTile;
local v7 = require(l_CorePackages_0.Cryo);
local v8 = require(l_CorePackages_0.Logging);
local l_IconSize_0 = v5.App.ImageSet.Enum.IconSize;
local l_validateColorInfo_0 = v5.Style.Validator.validateColorInfo;
local l_validateFontInfo_0 = v5.Style.Validator.validateFontInfo;
local l_validateTypographyInfo_0 = v5.Style.Validator.validateTypographyInfo;
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v14 = require(l_Modules_0.LuaApp.AppPage);
local v15 = require(l_Modules_0.AvatarExperience.Catalog.Services.Analytics);
local v16 = require(l_Modules_0.LuaApp.Components.More.Settings.MorePageSettings);
local v17 = require(l_Modules_0.LuaApp.Thunks.NavigateDown);
local l_RoactServices_0 = require(l_CorePackages_0.Workspace.Packages.RoactServices).RoactServices;
local v19 = require(l_Modules_0.LuaApp.Services.AppEventIngestService);
local l_AppLinking_0 = require(l_CorePackages_0.Workspace.Packages.RoactServiceTags).AppLinking;
local v21 = require(l_Modules_0.LuaApp.withLocalization);
local l_RoactAppPolicy_0 = require(l_CorePackages_0.Workspace.Packages.UniversalAppPolicy).RoactAppPolicy;
local v23 = require(l_Modules_0.LuaApp.openExternalBrowser);
local _ = require(l_Modules_0.AvatarExperience.Common.Thunks.NavigateIntoAvatarExperience);
local v25 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AvatarScreen);
local v26 = require(l_Modules_0.LuaApp.Actions.SetCurrentToastMessage);
local v27 = require(l_Modules_0.LuaApp.Constants);
local v28 = require(l_Modules_0.LuaApp.Thunks.OpenCentralOverlayForLeaveRobloxAlert);
local v29 = require(l_Modules_0.LuaApp.Thunks.OpenCentralOverlayForReportLogs);
local v30 = require(l_Modules_0.LuaApp.Thunks.CloseCentralOverlay);
local v31 = require(l_Modules_0.LuaApp.Components.FriendsLanding.navigateToFriendsLandingEvent);
local v32 = require(l_Modules_0.Profile.Analytics.ProfileAnalytics);
local v33 = require(l_Modules_0.Profile.Analytics.EntryPoints);
local _ = require(l_Modules_0.LuaApp.Experiment.RoactAppExperiment);
local _ = require(l_Modules_0.LuaApp.Experiment.AppUserLayers);
local l_Sources_0 = require(l_CorePackages_0.Workspace.Packages.SocialLuaAnalytics).Analytics.Enums.Sources;
local l_GetFFlagFixTenFootUiMorePage_0 = require(l_CorePackages_0.Workspace.Packages.SharedFlags).GetFFlagFixTenFootUiMorePage;
local v38 = require(l_Modules_0.LuaApp.Flags.GetFFlagEnableReportLogsButton);
local v39 = require(l_Modules_0.LuaApp.Flags.GetFFlagForceEnableReportLogsButton);
local l_FFlagLuaAppConsolidateProfileLogging_0 = require(l_CorePackages_0.Workspace.Packages.SharedFlags).FFlagLuaAppConsolidateProfileLogging;
local v41 = v1.PureComponent:extend("MoreGridItem");
v41.validateProps = v4.strictInterface({
    item = v4.table,
    layoutOrder = v4.integer,
    formFactor = v4.string,
    localUserId = v4.string,
    navigateDown = v4.callback,
    openLeaveRobloxAlertUIBlox = v4.callback,
    openReportLogConfirmation = if v39() or v38() then v4.callback else nil,
    closeAlert = v4.callback,
    catalogAnalytics = v4.table,
    shouldUseExternalBrowserForMorePageItem = v4.callback,
    linking = v4.table,
    navigation = v4.table,
    luaProfileEnabled = v4.optional(v4.boolean),
    eventIngest = v4.any,
    disableWebViewSupport = v4.boolean,
    disableIAPEntryPoint = v4.optional(v4.boolean),
    showWebViewNotAvailableToastMessage = v4.callback,
    itemStyleProps = v4.optional(v4.strictInterface({
        iconStyle = v4.optional(l_validateColorInfo_0),
        iconSize = v4.optional(l_IconSize_0.isEnumValue),
        titleStyle = v4.optional(l_validateColorInfo_0),
        titleFont = v4.optional(v4.union(l_validateFontInfo_0, l_validateTypographyInfo_0))
    }))
});
v41.init = function(v42)
    v42.navigateDown = function(v43)
        local l_item_0 = v42.props.item;
        local l_url_0 = l_item_0.context.url;
        local l_titleKey_0 = l_item_0.context.titleKey;
        if l_item_0.urlGenerator then
            l_url_0 = l_item_0.urlGenerator(v42.props.localUserId);
        end;
        local v47 = nil;
        if l_item_0.getSearchParams then
            v47 = l_item_0.getSearchParams(v42.props.formFactor);
        end;
        local v48 = nil;
        if not (not l_titleKey_0 and not v47) then
            v48 = {
                titleKey = l_titleKey_0,
                searchParams = v47
            };
        end;
        local v49 = l_item_0.shouldOpenInExternalBrowser and v42.props.shouldUseExternalBrowserForMorePageItem();
        local v50 = false;
        if v42.props.disableWebViewSupport == true then
            v50 = l_item_0.context.fallbackToExternalBrowser == true;
        end;
        if not v49 and not v50 then
            if l_item_0.itemType == v16.ItemType.Catalog then
                v42.props.navigation.navigate(v25.Catalog);
                return ;
            elseif l_item_0.itemType == v16.ItemType.OfficialStore then
                v42.props.openLeaveRobloxAlertUIBlox(v42.openUrl);
                return ;
            elseif not (not v39() and not v38()) and l_item_0.itemType == v16.ItemType.ReportLogs then
                v42.props.openReportLogConfirmation();
                return ;
            else
                v42.props.navigateDown({
                    name = l_item_0.context.page,
                    detail = l_url_0,
                    extraProps = v7.Dictionary.join(v48 or {}, v43 or {})
                });
                return ;
            end;
        else
            v23(v42.props.linking, l_url_0);
            return ;
        end;
    end;
    v42.openUrl = function()
        v42.props.linking:openURL(v42.props.item.context.url):andThen(function(v51)
            if v51 == false then
                v8.warn("LinkingProtocol:openURL failed for offical amazon store.");
            end;
        end);
        v42.props.closeAlert();
    end;
    v42.onActivated = function()
        local l_catalogAnalytics_0 = v42.props.catalogAnalytics;
        local l_item_1 = v42.props.item;
        local v54 = nil;
        local v55 = false;
        if l_item_1.itemType == v16.ItemType.Settings then
            v55 = v42.props.disableWebViewSupport;
        end;
        local v56 = false;
        if l_item_1.itemType == v16.ItemType.BuildersClub then
            v56 = v42.props.disableIAPEntryPoint;
        end;
        if not v55 and not v56 then
            if l_item_1.itemType == v16.ItemType.Catalog then
                l_catalogAnalytics_0.moreMenuToCatalogButton();
            end;
            if l_item_1.itemType == v16.ItemType.Friends then
                v31({
                    context = "morePage",
                    localUserId = v42.props.localUserId
                });
                v54 = {
                    navigateToFriendsLandingEventStart = {
                        startPage = v14.More,
                        startTime = os.clock()
                    }
                };
            end;
            if l_item_1.itemType == v16.ItemType.Profile then
                if not l_FFlagLuaAppConsolidateProfileLogging_0 then
                    v32.new({
                        localUserId = v42.props.localUserId,
                        profileUserId = v42.props.localUserId
                    }):navigateToProfile(v33.MorePageSelf);
                else
                    v54 = {
                        source = l_Sources_0.MorePageTile
                    };
                end;
            end;
            v42.navigateDown(v54);
            v42.props.eventIngest:sendEventDeferred("moreGridItem", "moreGridItemClick", {
                itemType = l_item_1.itemType,
                url = l_item_1.context.url,
                localUserId = v42.props.localUserId
            });
            return ;
        else
            v42.props.showWebViewNotAvailableToastMessage();
            return ;
        end;
    end;
    v42:setState({
        refreshLock = 1
    });
end;
v41.render = function(v57)
    local l_item_2 = v57.props.item;
    local l_badgeCount_0 = l_item_2.badgeCount;
    local l_icon_0 = l_item_2.icon;
    local l_layoutOrder_0 = v57.props.layoutOrder;
    local l_textKey_0 = l_item_2.textKey;
    local l_refreshLock_0 = v57.state.refreshLock;
    local v64 = if not l_GetFFlagFixTenFootUiMorePage_0() then nil else v57.props.itemStyleProps;
    return v21({
        title = l_textKey_0
    })(function(v65)
        return v1.createFragment({
            [l_layoutOrder_0 .. "-" .. l_refreshLock_0] = v1.createElement(l_MenuTile_0, {
                badgeValue = l_badgeCount_0 > 0 and l_badgeCount_0 or nil,
                icon = l_icon_0,
                layoutOrder = l_layoutOrder_0,
                onActivated = function()
                    v57.onActivated();
                    v57:setState({
                        refreshLock = l_refreshLock_0 + 1
                    });
                end,
                title = v65.title,
                styleProps = if not l_GetFFlagFixTenFootUiMorePage_0() then nil else v64
            })
        });
    end);
end;
return l_RoactServices_0.connect({
    catalogAnalytics = v15,
    linking = l_AppLinking_0,
    eventIngest = v19
})((l_RoactAppPolicy_0.connect(function(v66)
    return {
        disableWebViewSupport = not v66.getWebViewSupport(),
        disableIAPEntryPoint = v66.getDisableIAPEntryPoint()
    };
end)((v2.withNavigation((l_RoactAppPolicy_0.connect(function(v67)
    return {
        shouldUseExternalBrowserForMorePageItem = v67.shouldUseExternalBrowserForMorePageItem
    };
end)((v3.connect(function(v68, _)
    return {
        formFactor = v68.FormFactor,
        localUserId = v68.LocalUserId
    };
end, function(v70)
    return {
        navigateDown = function(v71)
            v70(v17(v71));
        end,
        showWebViewNotAvailableToastMessage = function()
            v70(v26(v27.WEBVIEWS_UNAVAILABLE_TOAST));
        end,
        openLeaveRobloxAlertUIBlox = function(v72)
            v70(v28(v72));
        end,
        openReportLogConfirmation = (v39() or v38()) and function()
            v70(v29());
        end or nil,
        closeAlert = function()
            v70(v30());
        end
    };
end)(v41)))))))));


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Cryo);
local v2 = require(l_CorePackages_0.Roact);
local v3 = require(l_CorePackages_0.RoactRodux);
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v5 = require(l_Modules_0.LuaApp.ArgCheck);
local v6 = require(l_Modules_0.LuaApp.Components.More.Settings.MorePageSettings);
local l_RoactServices_0 = require(l_CorePackages_0.Workspace.Packages.RoactServices).RoactServices;
local l_AppLinking_0 = require(l_CorePackages_0.Workspace.Packages.RoactServiceTags).AppLinking;
local v9 = require(l_Modules_0.LuaApp.Components.More.LogOutButton);
local v10 = require(l_Modules_0.LuaApp.Components.More.MoreButton);
local v11 = require(l_Modules_0.LuaApp.Services.RoactNetworking);
local v12 = require(l_Modules_0.LuaApp.Thunks.NavigateDown);
local l_RoactAppPolicy_0 = require(l_CorePackages_0.Workspace.Packages.UniversalAppPolicy).RoactAppPolicy;
local v14 = require(l_Modules_0.LuaApp.openExternalBrowser);
local v15 = require(l_Modules_0.LuaApp.Flags.GetFFlagEnableGUACControlTOSPPLinks);
local v16 = v2.PureComponent:extend("MoreItemContainer");
v16.defaultProps = {
    layoutInfo = {}
};
v16.init = function(v17)
    v17.navigateDown = function()
        local l_item_0 = v17.props.item;
        local l_url_0 = l_item_0.context.url;
        local l_titleKey_0 = l_item_0.context.titleKey;
        local l_notificationType_0 = l_item_0.context.notificationType;
        if l_item_0.urlGenerator then
            local l_localUserId_0 = v17.props.localUserId;
            l_url_0 = if not v15() then l_item_0.urlGenerator(l_localUserId_0) else l_item_0.urlGenerator(l_localUserId_0, v17.props.appPolicy);
        end;
        local v23 = nil;
        if l_item_0.getSearchParams then
            v23 = l_item_0.getSearchParams(v17.props.formFactor);
        end;
        local v24 = nil;
        if not (not (l_titleKey_0 or v23) and not l_notificationType_0) then
            v24 = {
                titleKey = l_titleKey_0,
                searchParams = v23,
                notificationType = l_notificationType_0
            };
        end;
        local v25 = l_item_0.shouldOpenInExternalBrowser and v17.props.shouldUseExternalBrowserForMorePageItem();
        local v26 = false;
        if v17.props.disableWebViewSupport == true then
            v26 = l_item_0.context.fallbackToExternalBrowser == true;
        end;
        if not v25 and not v26 then
            v17.props.navigateDown({
                name = l_item_0.context.page,
                detail = l_url_0,
                extraProps = v24
            });
            return ;
        else
            v14(v17.props.linking, l_url_0);
            return ;
        end;
    end;
end;
v16.render = function(v27)
    local l_layoutInfo_0 = v27.props.layoutInfo;
    local l_item_1 = v27.props.item;
    v5.isType(l_layoutInfo_0, "table", "MoreItemContainer.props.layoutInfo");
    v5.isType(l_item_1, "table", "MoreItemContainer.props.item");
    if l_item_1.itemType == v6.ItemType.LogOut then
        return v2.createElement(v9, {
            onActivated = v27.onActivated
        });
    else
        return v2.createElement(v10, v1.Dictionary.join(l_layoutInfo_0, {
            badgeComponent = l_item_1.badgeComponent,
            badgeCount = l_item_1.badgeCount,
            icon = l_item_1.icon,
            rightImage = l_item_1.rightImage,
            textKey = l_item_1.textKey,
            TextXAlignment = l_item_1.textXAlignment,
            onActivated = v27.navigateDown
        }));
    end;
end;
return l_RoactServices_0.connect({
    linking = l_AppLinking_0,
    networkImpl = v11
})((l_RoactAppPolicy_0.connect(function(v30)
    return {
        shouldUseExternalBrowserForMorePageItem = v30.shouldUseExternalBrowserForMorePageItem,
        disableWebViewSupport = not v30.getWebViewSupport(),
        appPolicy = if not v15() then nil else v30
    };
end)((v3.connect(function(v31, _)
    return {
        formFactor = v31.FormFactor,
        localUserId = v31.LocalUserId
    };
end, function(v33)
    return {
        navigateDown = function(v34)
            v33(v12(v34));
        end
    };
end)(v16)))));


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.Workspace.Packages.QRCodeDisplay);
local l_DisplayQRCode_0 = v3.DisplayQRCode;
local l_ECLevels_0 = v3.ECLevels;
local l_useLocalization_0 = require(l_CorePackages_0.Workspace.Packages.Localization).Hooks.useLocalization;
local l_useDesignTokens_0 = require(l_CorePackages_0.Workspace.Packages.Style).useDesignTokens;
local v8 = require(l_Modules_0.LuaApp.Http.UrlBuilder);
local v9 = require(l_Modules_0.LuaApp.TenFootUI.MoreComponents.MoreText);
local l_BodyText_0 = v9.BodyText;
local l_SubheaderText_0 = v9.SubheaderText;
local l_BoldBodyText_0 = v9.BoldBodyText;
local _ = require(script.Parent.Types);
local v14 = v8.static.settings.account();
local function v21(v15)
    local l_layoutOrder_0 = v15.layoutOrder;
    local l_itemsPadding_0 = v15.itemsPadding;
    local l_subheaderText_0 = v15.subheaderText;
    local l_bodyText_0 = v15.bodyText;
    local l_boldBodyText_0 = v15.boldBodyText;
    return v2.createElement("Frame", {
        Size = UDim2.fromScale(1, 0),
        AutomaticSize = Enum.AutomaticSize.Y,
        BackgroundTransparency = 1,
        LayoutOrder = l_layoutOrder_0
    }, {
        UIListLayout = v2.createElement("UIListLayout", {
            FillDirection = Enum.FillDirection.Vertical,
            SortOrder = Enum.SortOrder.LayoutOrder,
            Padding = l_itemsPadding_0
        }),
        Subheader = v2.createElement(l_SubheaderText_0, {
            layoutOrder = 1,
            text = l_subheaderText_0
        }),
        Body = if not l_bodyText_0 then nil else v2.createElement(l_BodyText_0, {
            layoutOrder = 2,
            text = l_bodyText_0
        }),
        BoldBody = if not l_boldBodyText_0 then nil else v2.createElement(l_BoldBodyText_0, {
            layoutOrder = 3,
            text = l_boldBodyText_0
        })
    });
end;
return function(v22)
    local v23 = l_useDesignTokens_0();
    local v24 = UDim.new(0, v23.Global.Space_200);
    local l_QrSize_0 = v23.LuaApps.More.QrSize;
    local v26 = l_useLocalization_0({
        accountSettingsWebsite = "Feature.Settings.Subheading.AccountSettingsWebsite",
        accountSettingsWebsiteDescription = "Feature.Settings.Description.AccountSettingsWebsite",
        accountSettingsScan = "Feature.Settings.Subheading.AccountSettingsScan",
        accountSettingsScanDescription = "Feature.Settings.Description.AccountSettingsScan"
    });
    return v2.createElement("Frame", {
        Size = UDim2.fromScale(1, 0),
        LayoutOrder = v22.layoutOrder,
        AutomaticSize = Enum.AutomaticSize.Y,
        BackgroundTransparency = 1
    }, {
        v2.createElement("Frame", {
            Size = UDim2.fromScale(1, 0),
            AutomaticSize = Enum.AutomaticSize.Y,
            BackgroundTransparency = 1
        }, v2.createElement("UIListLayout", {
            FillDirection = Enum.FillDirection.Horizontal,
            SortOrder = Enum.SortOrder.LayoutOrder
        }), v2.createElement("Frame", {
            Size = UDim2.new(1, -l_QrSize_0, 1, 0),
            AutomaticSize = Enum.AutomaticSize.Y,
            BackgroundTransparency = 1,
            LayoutOrder = 1
        }, v2.createElement("UIListLayout", {
            FillDirection = Enum.FillDirection.Vertical,
            SortOrder = Enum.SortOrder.LayoutOrder,
            Padding = v24
        }), v2.createElement(v21, {
            layoutOrder = 1,
            itemsPadding = v24,
            subheaderText = v26.accountSettingsWebsite,
            bodyText = v26.accountSettingsWebsiteDescription,
            boldBodyText = v14
        }), v2.createElement(v21, {
            layoutOrder = 2,
            itemsPadding = v24,
            subheaderText = v26.accountSettingsScan,
            bodyText = v26.accountSettingsScanDescription
        })), v2.createElement("Frame", {
            BackgroundTransparency = 1,
            LayoutOrder = 2
        }, v2.createElement(l_DisplayQRCode_0, {
            ecLevel = l_ECLevels_0.EC_LEVEL_1,
            sideLength = l_QrSize_0,
            toEncode = v14
        })))
    });
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_CorePackages_0 = game:GetService("CorePackages");
local v2 = require(l_CorePackages_0.Packages.Dash);
local v3 = require(l_CorePackages_0.Packages.React);
local v4 = require(l_CorePackages_0.Workspace.Packages.TenFootUiShell);
local l_CrossPlayCapabilities_0 = require(l_CorePackages_0.Workspace.Packages.UniversalAppPolicy).Enum.CrossPlayCapabilities;
local l_useLocalization_0 = require(l_CorePackages_0.Workspace.Packages.Localization).Hooks.useLocalization;
local v7 = require(l_Modules_0.LuaApp.Hooks.useAppPolicy);
local l_useEffectOnMount_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).Hooks.useEffectOnMount;
local v9 = require(l_Modules_0.LuaApp.TenFootUI.MoreComponents.MoreSection);
local v10 = require(l_Modules_0.LuaApp.TenFootUI.MoreComponents.MoreStatusButton);
local l_BodyText_0 = require(l_Modules_0.LuaApp.TenFootUI.MoreComponents.MoreText).BodyText;
local _ = require(script.Parent.Types);
local function _(v13, v14)
    local v15 = not v13.isEnabled and "" or "(" .. v14.recommended .. ") ";
    if not v13.isLoading then
        if not v13.hasError then
            if not v13.isEnabled then
                return v15 .. v14.disabled;
            else
                return v15 .. v14.enabled;
            end;
        else
            return v15 .. v14.error;
        end;
    else
        return v15 .. v14.loading;
    end;
end;
local function _(v17)
    return ((v17 and v17.Success) and v17.CanJoinGame) and v17.PrivilegeCheckResult == "NoIssue";
end;
local function v28(v19, v20, v21, v22)
    local v23 = {
        [l_CrossPlayCapabilities_0.CrossPlatform] = v21.crossPlatform,
        [l_CrossPlayCapabilities_0.Multiplayer] = v21.multiplayer,
        [l_CrossPlayCapabilities_0.SharedContent] = v21.sharedContent
    };
    return v2.map(v19, function(v24)
        local v25 = v20[v24];
        local v26 = ((v25 and v25.Success) and v25.CanJoinGame) and v25.PrivilegeCheckResult == "NoIssue";
        v25 = v20[v24] and v20[v24].PrivilegeCheckResult == "Error";
        local _ = nil;
        return {
            label = v23[v24],
            status = if not v22 then if v25 then v21.error else if v26 then v21.allowed else v21.disallowed else v21.loading
        };
    end);
end;
local function v34(v29)
    local v30 = v4.useCrossPlaySettings();
    local v31 = l_useLocalization_0({
        multiplayer = "Feature.Settings.Label.Multiplayer",
        sharedContent = "Feature.Settings.Label.SharedContent",
        recommended = "Feature.Settings.Label.Recommended",
        enabled = "Feature.Settings.Label.Enabled",
        disabled = "Feature.Settings.Label.Disabled",
        loading = "Feature.Settings.Label.Loading",
        error = "Feature.Settings.Label.Error",
        allowed = "Feature.Settings.Label.Allowed",
        disallowed = "Feature.Settings.Label.Disallowed"
    });
    local v32 = not v30.isEnabled and "" or "(" .. v31.recommended .. ") ";
    local v33 = if not v30.isLoading then if v30.hasError then v32 .. v31.error else if v30.isEnabled then v32 .. v31.enabled else v32 .. v31.disabled else v32 .. v31.loading;
    v32 = v3.useMemo(function()
        return v28(v29, v30.systemPrivileges, v31, v30.isLoading);
    end, {
        v30,
        v29,
        v31
    });
    l_useEffectOnMount_0(function()
        v30.reload();
    end);
    return (v3.useMemo(function()
        return {
            crossPlaySettings = v30,
            crossPlayStatusText = v33,
            privilegeStatuses = v32
        };
    end, {
        v30,
        v33,
        v32
    }));
end;
local function _(v35, v36, v37)
    return v2.reduce(v36, function(v38, v39)
        local l_v38_0 = v38;
        if l_v38_0 then
            local v41 = v37[v39];
            l_v38_0 = ((v41 and v41.Success) and v41.CanJoinGame) and v41.PrivilegeCheckResult == "NoIssue";
        end;
        return l_v38_0;
    end, v35.isEnabled);
end;
return function(v43)
    local v45 = v7(function(v44)
        return v44.getPlatformAccountName();
    end);
    local v46 = l_useLocalization_0({
        platformAccountSettingsSuccess = {
            "Feature.Settings.Description.PlatformAccountSettingsSuccess";
            platform = v45
        },
        platformAccountSettings = {
            "Feature.Settings.Heading.PlatformAccountSettings";
            platform = v45
        },
        crossPlatform = "Feature.Settings.Label.CrossPlatform",
        crossPlatformDescription = "Feature.Settings.Description.CrossPlatform"
    });
    local v48 = v7(function(v47)
        return (v47.getCrossPlayCapabilities());
    end);
    local v49 = v34(v48);
    local l_crossPlaySettings_0 = v49.crossPlaySettings;
    local l_crossPlayStatusText_0 = v49.crossPlayStatusText;
    local v54 = v2.map(v49.privilegeStatuses, function(v52, v53)
        return v3.createElement(v10, {
            layoutOrder = v53 + 2,
            title = v52.label,
            status = v52.status,
            onActivated = l_crossPlaySettings_0.invokeSystemUi
        });
    end);
    local l_systemPrivileges_0 = l_crossPlaySettings_0.systemPrivileges;
    return v3.createElement(v9, {
        layoutOrder = v43.layoutOrder,
        withDivider = v43.withDivider,
        title = v46.platformAccountSettings
    }, v2.append({
        v3.createElement(v10, {
            layoutOrder = 1,
            title = v46.crossPlatform,
            status = l_crossPlayStatusText_0,
            isDisabled = l_crossPlaySettings_0.isLoading,
            onActivated = l_crossPlaySettings_0.toggle
        }),
        v3.createElement(l_BodyText_0, {
            layoutOrder = 2,
            text = v46.crossPlatformDescription
        })
    }, v54, {
        if not v2.reduce(v48, function(v56, v57)
            local l_v56_0 = v56;
            if l_v56_0 then
                local v59 = l_systemPrivileges_0[v57];
                l_v56_0 = ((v59 and v59.Success) and v59.CanJoinGame) and v59.PrivilegeCheckResult == "NoIssue";
            end;
            return l_v56_0;
        end, l_crossPlaySettings_0.isEnabled) then nil else v3.createElement(l_BodyText_0, {
            layoutOrder = 10,
            text = v46.platformAccountSettingsSuccess
        })
    }));
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_CorePackages_0.Packages.Dash);
local v3 = require(l_CorePackages_0.Packages.React);
local v4 = require(l_CorePackages_0.UIBlox);
local l_DropdownMenu_0 = v4.App.Menu.DropdownMenu;
local l_useLocalization_0 = require(l_CorePackages_0.Workspace.Packages.Localization).Hooks.useLocalization;
local l_useDesignTokens_0 = require(l_CorePackages_0.Workspace.Packages.Style).useDesignTokens;
local v8 = require(l_Modules_0.LuaApp.Components.More.Licensing.useLicenseData);
local l_GetTextSize_0 = require(l_CorePackages_0.Workspace.Packages.Style).GetTextSize;
local l_ScrollBarType_0 = v4.App.Container.Enum.ScrollBarType;
local l_VerticalScrollView_0 = v4.App.Container.VerticalScrollView;
local v12 = require(l_Modules_0.LuaApp.Components.FocusFrame);
local v13 = require(l_Modules_0.LuaApp.TenFootUI.MoreComponents.MoreSection);
local l_BodyText_0 = require(l_Modules_0.LuaApp.TenFootUI.MoreComponents.MoreText).BodyText;
local _ = require(script.Parent.Types);
local function v25()
    local v16 = v8();
    local l_licenseList_0 = v16.licenseList;
    local l_initialLicenseKey_0 = v16.initialLicenseKey;
    local v19, v20 = v3.useState(nil);
    return v3.useMemo(function()
        return v2.map(l_licenseList_0, function(v21)
            return {
                text = v21.key
            };
        end);
    end, {
        l_licenseList_0
    }), v3.useMemo(function()
        local v23 = v2.map(l_licenseList_0, function(v22)
            return {
                key = v22.key,
                value = table.concat(v22.value, "\n")
            };
        end);
        return ((v2.find(v23, function(v24)
            return v24.key == (v19 or l_initialLicenseKey_0);
        end) or v23[1]) or {
            key = "",
            value = ""
        }).value;
    end, {
        v19,
        l_licenseList_0,
        l_initialLicenseKey_0
    }), v20;
end;
local function v32(v26)
    local v27 = l_useDesignTokens_0();
    local v28 = v3.useRef(nil);
    local v29 = v3.useRef(nil);
    v3.useEffect(function()
        if v28.current then
            for _, v31 in v28.current:GetDescendants() do
                if v31:IsA("GuiObject") then
                    if not (v31 == v29.current) or not v26.selectable then
                        v31.Selectable = false;
                    else
                        v31.Selectable = true;
                    end;
                end;
            end;
        end;
    end);
    return v3.createElement("Frame", {
        ref = v28,
        Position = UDim2.new(),
        Size = UDim2.fromScale(1, 1),
        BackgroundColor3 = v27.Semantic.Color.Background.Default.Color3,
        BackgroundTransparency = not v26.selectable and 1 or v27.Semantic.Color.Background.Default.Transparency,
        SelectionGroup = true,
        SelectionBehaviorDown = Enum.SelectionBehavior.Stop,
        SelectionBehaviorLeft = Enum.SelectionBehavior.Stop,
        SelectionBehaviorRight = Enum.SelectionBehavior.Stop,
        SelectionBehaviorUp = Enum.SelectionBehavior.Stop
    }, v3.createElement(l_VerticalScrollView_0, {
        ref = v29,
        canvasSizeY = UDim.new(),
        useAutomaticCanvasSize = true,
        isGamepadFocusable = true,
        scrollingEnabled = v26.scrollingEnabled,
        scrollBarType = if not v26.scrollingEnabled then nil else l_ScrollBarType_0.Gamepad
    }, v26.children));
end;
local function v36(v33, v34, v35)
    return v3.createElement(v32, {
        scrollingEnabled = v33,
        selectable = v34
    }, v35);
end;
return function(v37)
    local v38 = l_useLocalization_0({
        title = v37.titleKey,
        noLicenses = "CommonUI.Messages.Message.NoLicenses"
    });
    local v39 = l_useDesignTokens_0();
    local l_LicensePanelWidthScale_0 = v39.LuaApps.More.LicensePanelWidthScale;
    local v41, v42 = v3.useState(0);
    local v43 = UDim.new(0, v39.Global.Space_300);
    local l_Color3_0 = v39.Semantic.Color.Common.Overlay.Color3;
    local l_Transparency_0 = v39.Semantic.Color.Common.Overlay.Transparency;
    local l_Default_0 = v39.Semantic.Color.Background.Default;
    local l_Font_0 = v39.Semantic.Typography.Body.Font;
    local l_FontSize_0 = v39.Semantic.Typography.Body.FontSize;
    local l_Size_300_0 = v39.Global.Size_300;
    local v50, v51, v52 = v25();
    local v54 = v3.useCallback(function(v53)
        if v53 then
            v42(v53.AbsoluteSize.X * l_LicensePanelWidthScale_0);
        end;
    end, {});
    local v55 = v3.useMemo(function()
        if not v51 then
            return 0;
        else
            return l_GetTextSize_0(v51, l_FontSize_0, l_Font_0, Vector2.new(v41 + l_Size_300_0 * 2, math.huge)).Y;
        end;
    end, {
        v51,
        l_FontSize_0,
        l_Font_0,
        v41,
        l_Size_300_0
    });
    return v3.createElement(v13, {
        layoutOrder = v37.layoutOrder,
        withDivider = v37.withDivider,
        title = v38.title
    }, v3.createElement("Frame", {
        Name = "LicenseDropdown",
        ref = v54,
        LayoutOrder = 1,
        Size = UDim2.new(1, 0, 0, 72),
        BackgroundTransparency = 1,
        ZIndex = 2
    }, v3.createElement("Frame", {
        Size = UDim2.new(1, 0, 1, 0),
        BackgroundTransparency = 1
    }, v3.createElement(l_DropdownMenu_0, {
        placeholder = if #v50 > 0 then v50[1].text else v38.noLicenses,
        onChange = v52,
        height = UDim.new(0, 72),
        screenSize = Vector2.new(1920, 1080),
        cellDatas = v50,
        menuListBackground = {
            Color = l_Default_0.Color3,
            Transparency = l_Default_0.Transparency
        }
    }))), v3.createElement(v12, {
        layoutOrder = 2,
        safeAreaSize = UDim2.new(1, -2 * v39.Global.Size_800, 0, 3 * v39.Global.Size_1000),
        limitInlineHeight = true,
        overlayColor3 = l_Color3_0,
        overlayTransparency = l_Transparency_0,
        renderContents = v3.useCallback(function()
            return v3.createElement("Frame", {
                Position = UDim2.new(),
                Size = UDim2.fromScale(l_LicensePanelWidthScale_0, 0),
                AutomaticSize = Enum.AutomaticSize.Y,
                BackgroundTransparency = 1
            }, v3.createElement("UIPadding", {
                PaddingTop = v43,
                PaddingBottom = v43
            }), v3.createElement(l_BodyText_0, {
                text = v51,
                layoutOrder = 2,
                size = UDim2.new(1, 0, 1, v55),
                TextYAlignment = Enum.TextYAlignment.Top
            }));
        end, {
            v51,
            v55,
            v43,
            l_LicensePanelWidthScale_0
        }),
        renderContentWrapper = v36
    }));
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 l_useLocalization_0 = require(l_CorePackages_0.Workspace.Packages.Localization).Hooks.useLocalization;
local l_AppLinking_0 = require(l_CorePackages_0.Workspace.Packages.RoactServiceTags).AppLinking;
local v5 = require(l_Modules_0.LuaApp.Hooks.useRoactService);
local v6 = require(l_Modules_0.LuaApp.openExternalBrowser);
local v7 = require(l_Modules_0.LuaApp.TenFootUI.MoreComponents.MoreStatusButton);
local _ = require(script.Parent.Types);
return function(v9)
    local l_layoutOrder_0 = v9.layoutOrder;
    local l_itemData_0 = v9.itemData;
    local l_textKey_0 = l_itemData_0.textKey;
    local l_rightImage_0 = l_itemData_0.rightImage;
    local v14 = if not l_itemData_0.context then nil else l_itemData_0.context.url;
    local v15 = v5(l_AppLinking_0);
    return v2.createElement(v7, {
        layoutOrder = l_layoutOrder_0,
        title = l_useLocalization_0({
            title = l_textKey_0
        }).title,
        icon = l_rightImage_0,
        onActivated = v2.useCallback(function()
            if v14 then
                v6(v15, v14);
            end;
        end, {
            v14
        })
    });
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_useLocalization_0 = require(l_CorePackages_0.Workspace.Packages.Localization).Hooks.useLocalization;
local v4 = require(l_Modules_0.LuaApp.Hooks.useAppPolicy);
local v5 = require(l_Modules_0.LuaApp.TenFootUI.MoreComponents.MoreSection);
local v6 = require(l_Modules_0.LuaApp.TenFootUI.MoreComponents.MoreStatusButton);
local l_BodyText_0 = require(l_Modules_0.LuaApp.TenFootUI.MoreComponents.MoreText).BodyText;
local _ = require(script.Parent.Types);
local l_ThirdPartyUserService_0 = game:GetService("ThirdPartyUserService");
local function v10()
    if l_ThirdPartyUserService_0 then
        l_ThirdPartyUserService_0:ShowAccountPicker();
    end;
end;
return function(v11)
    local v13 = l_useLocalization_0({
        title = v11.titleKey,
        switchProfile = "Feature.Settings.Heading.SwitchProfile",
        switchProfileDescription = {
            "Feature.Settings.Description.SwitchProfile";
            platform = v4(function(v12)
                return v12.getPlatformDisplayName();
            end)
        },
        open = "Feature.Settings.Label.Open"
    });
    return v2.createElement(v5, {
        layoutOrder = v11.layoutOrder,
        withDivider = v11.withDivider,
        title = v13.title
    }, {
        v2.createElement(v6, {
            layoutOrder = 1,
            title = v13.switchProfile,
            status = v13.open,
            onActivated = v10
        }),
        v2.createElement(l_BodyText_0, {
            layoutOrder = 2,
            text = v13.switchProfileDescription
        })
    });
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local _ = require(game:GetService("CorePackages").Packages.React);
local v2 = require(l_Modules_0.LuaApp.Components.More.Settings.MorePageSettings);
local _ = require(l_Modules_0.LuaApp.Components.More.MoreItems.Types);
local v4 = require(l_Modules_0.LuaApp.Components.More.MoreItems.SwitchProfileSection);
local v5 = require(l_Modules_0.LuaApp.Components.More.MoreItems.DeviceSettingsSection);
local v6 = require(l_Modules_0.LuaApp.Components.More.MoreItems.LicensingSection);
local v7 = require(l_Modules_0.LuaApp.Components.More.MoreItems.AccountSettingsInfoItem);
local v8 = require(l_Modules_0.LuaApp.Components.More.MoreItems.LinkButtonItem);
local v9 = {
    [v2.ItemType.Settings_SwitchProfileSection] = v4,
    [v2.ItemType.Settings_DeviceSettingsSection] = v5,
    [v2.ItemType.About_LicensingSection] = v6
};
local v10 = {
    [v2.ItemType.Settings_AccountSettingsInfo] = v7,
    [v2.ItemType.About_TermsOfService] = v8,
    [v2.ItemType.About_Privacy] = v8
};
return {
    getSectionComponent = function(v11)
        return v9[v11];
    end,
    getItemComponent = function(v12)
        return v10[v12];
    end
};


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_CorePackages_0.Workspace.Packages.ArgCheck);
local v3 = require(l_CorePackages_0.Roact);
local l_withStyle_0 = require(l_CorePackages_0.UIBlox).Style.withStyle;
local v5 = require(l_Modules_0.LuaApp.Constants);
local v6 = v3.PureComponent:extend("MoreList");
v6.defaultProps = {
    LayoutOrder = 1
};
v6.render = function(v7)
    local l_LayoutOrder_0 = v7.props.LayoutOrder;
    local l_itemList_0 = v7.props.itemList;
    local l_renderItem_0 = v7.props.renderItem;
    local l_rowHeight_0 = v7.props.rowHeight;
    v2.isType(l_renderItem_0, "function", "MoreList.props.renderItem");
    if not l_itemList_0 or #l_itemList_0 == 0 then
        return ;
    else
        local function v22(v12, v13)
            local v14 = {};
            local v15 = 0;
            local v16;
            if #l_itemList_0[1] <= 1 then
                v16 = false;
                if not (#l_itemList_0 > 1) then
                    goto label0;
                end;
            end;
            v16 = v3.createElement("UIListLayout", {
                SortOrder = Enum.SortOrder.LayoutOrder,
                HorizontalAlignment = Enum.HorizontalAlignment.Right
            });
            ::label0::;
            v14.Layout = v16;
            for v17, v18 in ipairs(l_itemList_0) do
                for v19, v20 in ipairs(v18) do
                    v15 = v15 + 1;
                    local v21 = true;
                    if v19 >= #v18 then
                        v21 = v17 < #l_itemList_0;
                    end;
                    v14["Row" .. v15] = l_renderItem_0(v20, {
                        Size = UDim2.new(1, 0, 0, not not v21 and l_rowHeight_0 - 1 or l_rowHeight_0),
                        LayoutOrder = v15 * 2 - 1
                    });
                    if v21 then
                        v14["Divider" .. v15] = v3.createElement("Frame", {
                            Size = UDim2.new(1, -(not not v20.icon and v5.MORE_PAGE_TEXT_PADDING_WITH_ICON or v5.MORE_PAGE_ROW_PADDING_LEFT), 0, 1),
                            BackgroundColor3 = v13.Color,
                            BackgroundTransparency = v13.Transparency,
                            BorderSizePixel = 0,
                            LayoutOrder = v15 * 2
                        });
                    end;
                end;
            end;
            return v3.createElement("Frame", {
                Size = UDim2.new(1, 0, 0, l_rowHeight_0 * v15),
                BackgroundColor3 = v12.Color,
                BackgroundTransparency = v12.Transparency,
                BorderSizePixel = 0,
                BorderColor3 = v13.Color,
                LayoutOrder = l_LayoutOrder_0
            }, v14);
        end;
        return l_withStyle_0(function(v23)
            return v22(v23.Theme.BackgroundDefault, v23.Theme.Divider);
        end);
    end;
end;
return v6;


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Roact);
local v2 = require(l_CorePackages_0.RoactRodux);
local v3 = require(l_CorePackages_0.UIBlox);
local v4 = require(l_CorePackages_0.Packages.t);
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_AppGuiService_0 = require(l_CorePackages_0.Workspace.Packages.RoactServiceTags).AppGuiService;
local l_RoactAppPolicy_0 = require(l_CorePackages_0.Workspace.Packages.UniversalAppPolicy).RoactAppPolicy;
local v8 = require(l_Modules_0.LuaApp.Themes.DeprecatedDarkTheme);
local v9 = require(l_Modules_0.LuaApp.Thunks.Authentication.Logout);
local v10 = require(l_Modules_0.LuaApp.Thunks.NavigateDown);
local v11 = require(l_Modules_0.LuaApp.Thunks.OpenCentralOverlayForConfirmSignOut);
local v12 = require(l_Modules_0.LuaApp.Services.RoactNetworking);
local l_RoactServices_0 = require(l_CorePackages_0.Workspace.Packages.RoactServices).RoactServices;
local v14 = require(l_Modules_0.LuaApp.withLocalization);
local v15 = require(l_Modules_0.LuaApp.Thunks.Authentication.EmailVerification.CheckEmailVerificationBeforeLogout);
local v16 = require(l_Modules_0.LuaApp.Thunks.Authentication.PhoneVerification.CheckPhoneVerification);
local v17 = require(l_Modules_0.LuaApp.Flags.GetFFlagEmailUpsellAtLogout);
local l_Button_0 = v3.App.Button.Button;
local l_ButtonType_0 = v3.App.Button.Enum.ButtonType;
local v20 = v1.PureComponent:extend("MoreLogOut");
local v21 = require(l_Modules_0.LuaApp.Analytics.Events.Auth.luaLogoutReasonNames);
local v22 = require(l_Modules_0.LuaApp.Flags.GetFFlagEnablePhoneVerificationLogoutUpsell);
local v23 = require(l_Modules_0.LuaApp.Flags.GetFFlagEnablePhoneLogoutUpsellExperiment);
local v24 = require(l_Modules_0.LuaApp.Flags.GetFFlagGuacControlPhoneUpsellEnabled);
local v25 = require(l_Modules_0.LuaApp.Experiment.RoactAppExperiment);
local l_IXPService_0 = game:GetService("IXPService");
local v27 = require(l_Modules_0.LuaApp.Experiment.AppUserLayers);
local v28 = require(script.Parent.DisconnectButton);
v20.defaultProps = {
    layoutOrder = 1,
    isPhoneLogoutUpsellEnabled = false,
    shouldShowPhoneUpsell = false
};
v20.validateProps = v4.strictInterface({
    buttonHeight = v4.integer,
    buttonMaxWidth = v4.integer,
    item = v4.table,
    layoutOrder = v4.optional(v4.integer),
    position = v4.optional(v4.UDim2),
    navigateDown = v4.callback,
    logout = v4.callback,
    showEmailBeforeLogout = v4.callback,
    showPhoneBeforeLogout = v4.callback,
    logoutWithoutShowConfirmation = v4.callback,
    guiService = v4.union(v4.Instance, v4.table),
    networkImpl = v4.callback,
    willActivate = v4.optional(v4.callback),
    showDisconnectButton = v4.boolean,
    isPhoneLogoutUpsellEnabled = v4.boolean,
    shouldShowPhoneUpsell = v4.boolean
});
v20.init = function(v29)
    local l_guiService_0 = v29.props.guiService;
    local l_item_0 = v29.props.item;
    local l_networkImpl_0 = v29.props.networkImpl;
    v29.navigateDown = function()
        v29.props.navigateDown({
            name = l_item_0.context.page
        });
    end;
    v29.showEmailVerificationOrLogout = function()
        if not v17() then
            v29.props.logout(l_networkImpl_0, l_guiService_0, v8);
            return ;
        else
            v29.props.showEmailBeforeLogout(l_networkImpl_0, l_guiService_0, v8);
            return ;
        end;
    end;
    v29.showPhoneVerificationOrLogout = function()
        v29.props.showPhoneBeforeLogout(l_networkImpl_0, l_guiService_0, v8);
    end;
    v29.onActivated = function()
        if v29.props.willActivate then
            v29.props.willActivate();
        end;
        if not v24() then
            l_IXPService_0:LogUserLayerExposure(v27.LogoutLayer);
            local v33 = v23() and v29.props.isPhoneLogoutUpsellEnabled;
            if not v22() and not v33 then
                v29.showEmailVerificationOrLogout();
                return ;
            else
                v29.showPhoneVerificationOrLogout();
                return ;
            end;
        elseif not v29.props.shouldShowPhoneUpsell then
            v29.showEmailVerificationOrLogout();
            return ;
        else
            l_IXPService_0:LogUserLayerExposure(v27.LogoutLayer);
            local v34 = v23() and v29.props.isPhoneLogoutUpsellEnabled;
            if not v22() and not v34 then
                v29.showEmailVerificationOrLogout();
                return ;
            else
                v29.showPhoneVerificationOrLogout();
                return ;
            end;
        end;
    end;
end;
v20.render = function(v35)
    local l_buttonHeight_0 = v35.props.buttonHeight;
    local l_buttonMaxWidth_0 = v35.props.buttonMaxWidth;
    local l_item_1 = v35.props.item;
    local l_layoutOrder_0 = v35.props.layoutOrder;
    local l_position_0 = v35.props.position;
    return v14({
        logOutText = l_item_1.textKey
    })(function(v41)
        return v1.createElement("Frame", {
            BackgroundTransparency = 1,
            Position = l_position_0,
            LayoutOrder = l_layoutOrder_0,
            Size = UDim2.new(1, 0, 0, l_buttonHeight_0)
        }, {
            UIListLayout = v1.createElement("UIListLayout", {
                HorizontalAlignment = Enum.HorizontalAlignment.Center,
                SortOrder = Enum.SortOrder.LayoutOrder
            }),
            LogOutButtonFrame = v1.createElement("Frame", {
                BackgroundTransparency = 1,
                Size = UDim2.new(1, 0, 1, 0)
            }, {
                UISizeConstraint = v1.createElement("UISizeConstraint", {
                    MaxSize = Vector2.new(l_buttonMaxWidth_0, l_buttonHeight_0)
                }),
                LogOutButton = if not v35.props.showDisconnectButton then v1.createElement(l_Button_0, {
                    buttonType = l_ButtonType_0.Secondary,
                    isDisabled = false,
                    isLoading = false,
                    onActivated = v35.onActivated,
                    size = UDim2.new(1, 0, 1, 0),
                    text = v41.logOutText
                }) else v1.createElement(v28)
            })
        });
    end);
end;
return l_RoactServices_0.connect({
    guiService = l_AppGuiService_0,
    networkImpl = v12
})((v25.connectUserLayer({
    v27.LogoutLayer
}, function(v42, _)
    return {
        isPhoneLogoutUpsellEnabled = (v42[v27.LogoutLayer] or {}).IsPhoneLogoutUpsellEnabled
    };
end)((l_RoactAppPolicy_0.connect(function(v44, _)
    return {
        showDisconnectButton = v44.getShowDisconnectButton(),
        shouldShowPhoneUpsell = not not v24() and v44.getShouldShowPhoneUpsell()
    };
end)((v2.connect(function(_, _)
end, function(v48)
    return {
        navigateDown = function(v49)
            v48(v10(v49));
        end,
        showEmailBeforeLogout = function(v50, v51, v52)
            v48(v15(v50, v51)):andThen(function()
                v48(v11(function()
                    v48(v9(v50, v51, v21.MoreLogOut));
                end, v52));
            end, function()
            end);
        end,
        showPhoneBeforeLogout = function(v53, v54, v55)
            v48(v16(v53, v54)):andThen(function()
                v48(v11(function()
                    v48(v9(v53, v54));
                end, v55));
            end, function()
            end);
        end,
        logout = function(v56, v57, v58)
            v48(v11(function()
                v48(v9(v56, v57, v21.MoreLogOut));
            end, v58));
        end,
        logoutWithoutShowConfirmation = function(v59, v60)
            v48(v9(v59, v60, v21.MoreLogOut));
        end
    };
end)(v20)))))));


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_Modules_0.LuaApp.Components.More.MorePageGridLayout);
local v4 = require(l_Modules_0.LuaApp.Components.More.MorePageCarouselLayout);
local l_MorePageLayout_0 = require(l_CorePackages_0.Workspace.Packages.UniversalAppPolicy).Enum.MorePageLayout;
local v6 = require(l_Modules_0.LuaApp.Hooks.useAppPolicy);
return function()
    if not v6(function(v7)
        return v7.getMorePageLayout() == l_MorePageLayout_0.Carousel;
    end) then
        return v2.createElement(v3);
    else
        return v2.createElement(v4);
    end;
end;