local l_CoreGui_0 = game:GetService("CoreGui");
local l_Modules_0 = l_CoreGui_0.RobloxGui.Modules;
local v2 = require(l_Modules_0.Common.Roact);
local v3 = require(l_Modules_0.Shell.GlobalSettings);
local v4 = require(l_Modules_0.LuaApp.RoactMotion);
local v5 = require(l_Modules_0.Shell.SoundManager);
local l_Components_0 = l_Modules_0.Shell.Components;
local v7 = require(l_Modules_0.Shell.Components.Common.SoundComponent);
local v8 = require(l_Components_0.ContextActionEvent);
local v9 = require(l_Modules_0.Shell.Utility);
local v10 = v2.PureComponent:extend("SideBar");
v10.init = function(v11)
    v11.groupKey = "SideBar";
    v11.buttonImage = v3.Images.ButtonDefault;
    v11.selectionImageObject = v9.Create("ImageLabel")({
        Name = "SelectorImage",
        BackgroundTransparency = 1,
        Visible = false
    });
    v11.defaultProps = {
        buttonColor3 = v3.Colors.WhiteButton,
        buttonTransparency = 1,
        textColor3 = v3.Colors.WhiteText
    };
    v11.focusedProps = {
        buttonColor3 = v3.Colors.BlueButton,
        buttonTransparency = 0,
        textColor3 = v3.Colors.TextSelected
    };
end;
v10.render = function(v12)
    local l_props_0 = v12.props;
    local function v14()
        v12.buttons = {};
        v9.RemoveSelectionGroup(v12.groupKey);
        if l_props_0.onClose then
            l_props_0.onClose();
        end;
    end;
    local v15 = {
        UIPadding = v2.createElement("UIPadding", {
            PaddingTop = l_props_0.paddingTop or UDim.new(0, 156),
            PaddingBottom = l_props_0.paddingBottom or UDim.new(0, 39)
        })
    };
    if not l_props_0.buttons then
        v15.TextLabel = v2.createElement("TextLabel", {
            Size = UDim2.new(1, -165, 1, 0),
            Position = UDim2.new(0, 65, 0, 0),
            BorderSizePixel = 0,
            BackgroundTransparency = 1,
            Text = l_props_0.text,
            TextXAlignment = Enum.TextXAlignment.Left,
            TextYAlignment = Enum.TextYAlignment.Top,
            TextColor3 = v3.WhiteTextColor,
            Font = v3.RegularFont,
            FontSize = v3.DescriptionSize,
            TextWrapped = true
        });
    else
        local v16 = 0;
        for _, v18 in ipairs(l_props_0.buttons) do
            v16 = v16 + 1;
            local l_v16_0 = v16;
            local v20 = not not (v12.state.selectedIndex and v12.state.selectedIndex == l_v16_0) and v12.focusedProps or v12.defaultProps;
            v15["Button" .. l_v16_0] = v2.createElement("ImageButton", {
                Image = v12.buttonImage,
                Position = UDim2.new(0.5, 0, 0.5, 0),
                AnchorPoint = Vector2.new(0.5, 0.5),
                Size = UDim2.new(1, -1, 0, 75),
                LayoutOrder = l_v16_0,
                ImageColor3 = v20.buttonColor3,
                ImageTransparency = v20.buttonTransparency,
                ScaleType = Enum.ScaleType.Slice,
                SliceCenter = Rect.new(8, 8, 9, 9),
                SelectionImageObject = v12.selectionImageObject,
                BackgroundTransparency = 1,
                [v2.Event.SelectionGained] = function()
                    v12:setState({
                        selectedIndex = l_v16_0
                    });
                end,
                [v2.Event.SelectionLost] = function()
                    v12:setState({
                        selectedIndex = v2.None
                    });
                end,
                [v2.Event.Activated] = function()
                    v5:Play("ButtonPress");
                    v12.buttons = {};
                    v9.RemoveSelectionGroup(v12.groupKey);
                    if l_props_0.onClose then
                        l_props_0.onClose();
                    end;
                    v18.callback();
                end,
                [v2.Ref] = function(v21)
                    v12.buttons = v12.buttons or {};
                    v12.buttons[l_v16_0] = v21;
                end
            }, {
                ButtonText = v2.createElement("TextLabel", {
                    Size = UDim2.new(1, -65, 1, 0),
                    Position = UDim2.new(0, 65, 0, 0),
                    AnchorPoint = Vector2.new(0, 0),
                    Text = v18.text,
                    TextSize = v3.TextSizes.Medium,
                    TextXAlignment = Enum.TextXAlignment.Left,
                    TextColor3 = v20.textColor3,
                    Font = v3.RegularFont,
                    BackgroundTransparency = 1
                }),
                MoveSelection = v2.createElement(v7, {
                    SoundName = "MoveSelection"
                })
            });
        end;
        if v16 > 0 then
            v15.UIListLayout = v2.createElement("UIListLayout", {
                Padding = UDim.new(0, 0),
                SortOrder = Enum.SortOrder.LayoutOrder,
                HorizontalAlignment = Enum.HorizontalAlignment.Left,
                VerticalAlignment = Enum.VerticalAlignment.Top
            });
        end;
    end;
    local l_inFocus_0 = l_props_0.inFocus;
    local v23 = not not l_inFocus_0 and v3.ModalBackgroundTransparency or 1;
    local v24 = not l_inFocus_0 and 1 or 0.7;
    if not l_inFocus_0 then
        v12.seenPressed = false;
    end;
    return v2.createElement(v4.SimpleMotion, {
        defaultStyle = {
            modalBackgroundTransparency = 1,
            containerPositionXScale = 1
        },
        style = {
            modalBackgroundTransparency = v4.spring(v23, 600, 60),
            containerPositionXScale = v4.spring(v24, 600, 60)
        },
        onRested = not l_inFocus_0 and v14,
        render = function(v25)
            return v2.createElement(v2.Portal, {
                target = l_CoreGui_0
            }, {
                SideBarGui = v2.createElement("ScreenGui", {
                    ZIndexBehavior = Enum.ZIndexBehavior.Sibling,
                    DisplayOrder = l_props_0.displayOrder or 1
                }, {
                    BackConnector = l_inFocus_0 and v2.createElement(v8, {
                        name = "CloseSideBar",
                        callback = function(_, v27, v28)
                            if v28.KeyCode == Enum.KeyCode.ButtonB then
                                if v27 == Enum.UserInputState.Begin then
                                    v12.seenPressed = true;
                                    return ;
                                elseif not (not (v27 == Enum.UserInputState.End) or not v12.seenPressed) then
                                    v12:setState({
                                        selectedIndex = v2.None
                                    });
                                    if l_props_0.onRemoveFocus then
                                        l_props_0.onRemoveFocus();
                                    end;
                                end;
                            end;
                        end,
                        binds = {
                            Enum.UserInputType.Gamepad1,
                            Enum.UserInputType.Gamepad2,
                            Enum.UserInputType.Gamepad3,
                            Enum.UserInputType.Gamepad4
                        },
                        actionPriority = l_props_0.actionPriority
                    }),
                    ModalOverlay = v2.createElement("Frame", {
                        Size = UDim2.new(1, 0, 1, 0),
                        BackgroundTransparency = v25.modalBackgroundTransparency,
                        BackgroundColor3 = v3.ModalBackgroundColor,
                        BorderSizePixel = 0
                    }, {
                        SideBarContainer = v2.createElement("Frame", {
                            Size = UDim2.new(0.3, 0, 1, 0),
                            Position = UDim2.new(v25.containerPositionXScale, 0, 0, 0),
                            BorderSizePixel = 0,
                            BackgroundColor3 = v3.OverlayColor,
                            [v2.Ref] = function(v29)
                                v12.container = v29;
                            end
                        }, v15)
                    })
                })
            });
        end
    });
end;
v10.didMount = function(v30)
    delay(0, function()
        if not (not v30.props.inFocus or not v30.container) then
            v9.RemoveSelectionGroup(v30.groupKey);
            v9.AddSelectionParent(v30.groupKey, v30.container);
            local v31 = v30.props.selectIndex or 1;
            if not v30.buttons or not v30.buttons[v31] then
                v9.SetSelectedCoreObject(nil);
            elseif not v30.state.selectedIndex then
                v9.SetSelectedCoreObject(v30.buttons[v31]);
                return ;
            end;
        end;
    end);
end;
v10.didUpdate = function(v32, v33, _)
    if v32.props.inFocus == v33.inFocus then
        return ;
    else
        if not v32.props.inFocus or not v32.container then
            v9.RemoveSelectionGroup(v32.groupKey);
        else
            v9.RemoveSelectionGroup(v32.groupKey);
            v9.AddSelectionParent(v32.groupKey, v32.container);
            local v35 = v32.props.selectIndex or 1;
            if not v32.buttons or not v32.buttons[v35] then
                v9.SetSelectedCoreObject(nil);
                return ;
            elseif not v32.state.selectedIndex then
                v9.SetSelectedCoreObject(v32.buttons[v35]);
                return ;
            end;
        end;
        return ;
    end;
end;
v10.willUnmount = function(v36)
    v9.RemoveSelectionGroup(v36.groupKey);
end;
return v10;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(l_Modules_0.Common.Roact);
local v2 = require(l_Modules_0.Shell.GlobalSettings);
return function(v3)
    return v1.createElement("Sound", {
        SoundId = v2.Sounds[v3.SoundName]
    });
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(l_Modules_0.Common.Roact);
local v2 = require(l_Modules_0.Shell.Components.RenderStep);
local v3 = v1.PureComponent:extend("Spinner");
v3.init = function(v4)
    v4.state = {
        rotation = 0
    };
    v4.speed = 360;
    v4.update = function(v5)
        v4:setState({
            rotation = v4.state.rotation + v5 * v4.speed
        });
    end;
end;
v3.render = function(v6)
    local l_props_0 = v6.props;
    local l_rotation_0 = v6.state.rotation;
    v6.speed = l_props_0.speed or 360;
    return v1.createElement("ImageLabel", {
        Rotation = l_rotation_0,
        BackgroundTransparency = 1,
        Size = l_props_0.Size or UDim2.new(0, 100, 0, 100),
        AnchorPoint = l_props_0.AnchorPoint or Vector2.new(0.5, 0.5),
        Position = l_props_0.Position or UDim2.new(0.5, 0, 0.5, 0),
        Image = "rbxasset://textures/ui/Shell/Icons/LoadingSpinner@1080.png",
        ZIndex = l_props_0.ZIndex or 10,
        ImageTransparency = l_props_0.ImageTransparency or 0
    }, {
        Render = v1.createElement(v2, {
            name = tick(),
            priority = Enum.RenderPriority.Input.Value,
            callback = v6.update
        })
    });
end;
return v3;


local v0 = require(game:GetService("CoreGui").RobloxGui.Modules.Common.Roact);
local v1 = v0.Component:extend("SplitViewLR");
v1.init = function(_)
end;
v1.render = function(v3)
    local l_props_0 = v3.props;
    local l_Bias_0 = l_props_0.Bias;
    v3.leftView = l_props_0.LeftView;
    v3.rightView = l_props_0.RightView;
    v3.divider = l_props_0.Divider;
    return v0.createElement("Frame", {
        Size = UDim2.new(1, 0, 1, 0),
        BackgroundTransparency = 1
    }, {
        LeftFrame = v0.createElement("Frame", {
            Size = UDim2.new(l_Bias_0, 0, 1, 0),
            Position = UDim2.new(0, 0, 0, 0),
            BackgroundTransparency = 1
        }, {
            Left = v3.leftView
        }),
        Divider = v0.createElement("Frame", {
            Size = UDim2.new(0, 0, 0, 0),
            Position = UDim2.new(l_Bias_0, 0, 0, 0),
            BackgroundTransparency = 1
        }, {
            Divider = v3.divider
        }),
        RightFrame = v0.createElement("Frame", {
            Size = UDim2.new(1 - l_Bias_0, 0, 1, 0),
            Position = UDim2.new(l_Bias_0, 0, 0, 0),
            BackgroundTransparency = 1
        }, {
            Right = v3.rightView
        })
    });
end;
return v1;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(l_Modules_0.Common.Roact);
local v2 = require(l_Modules_0.Common.Immutable);
local v3 = require(l_Modules_0.Shell.GlobalSettings);
local v4 = require(l_Modules_0.Shell.Components.Common.RoundedButton);
local v5 = v1.Component:extend("ToggleButton");
v5.init = function(v6)
    v6.key = v6.props.ButtonKey;
    v6.state = {
        selected = false,
        active = false
    };
    v6.onSelectionGained = function()
        if v6.props.OnSelectionGained then
            v6.props.OnSelectionGained(v6.key);
        end;
    end;
    v6.onSelectionLost = function()
        if v6.props.OnSelectionLost then
            v6.props.OnSelectionLost(v6.key);
        end;
    end;
    v6.onActivated = function()
        if v6.props.OnActivated then
            v6.props.OnActivated();
        end;
    end;
end;
v5.render = function(v7)
    local v8 = {};
    local v9 = {};
    local l_Size_0 = v7.props.Size;
    local l_Position_0 = v7.props.Position;
    local l_AnchorPoint_0 = v7.props.AnchorPoint;
    local l_Focused_0 = v7.props.Focused;
    local l_Disabled_0 = v7.props.Disabled;
    local l_Selected_0 = v7.props.Selected;
    local l_StatusIconUnknownColor_0 = v3.StatusIconUnknownColor;
    if v7.props.Toggle == true then
        l_StatusIconUnknownColor_0 = v3.StatusIconEnabledColor;
    elseif v7.props.Toggle == false then
        l_StatusIconUnknownColor_0 = v3.StatusIconDisabledColor;
    end;
    v8.Size = UDim2.new(1, 0, 1, 0);
    v8.AnchorPoint = Vector2.new(0.5, 0.5);
    v8.Position = UDim2.new(0.5, 0, 0.5, 0);
    v8.Selectable = v7.props.Selectable;
    v9.Text = v7.props.Text;
    v9.Size = UDim2.new(1, 0, 1, 0);
    v9.AnchorPoint = Vector2.new(0, 0.5);
    v9.Position = UDim2.new(0, 72, 0.5, 0);
    return v1.createElement("Frame", {
        Size = l_Size_0,
        Position = l_Position_0,
        AnchorPoint = l_AnchorPoint_0,
        BackgroundTransparency = 1
    }, v2.JoinDictionaries({
        Button = v1.createElement(v4, {
            Button = v8,
            Text = v9,
            Focused = l_Focused_0,
            Disabled = l_Disabled_0,
            Selected = l_Selected_0,
            OnSelectionGained = v7.onSelectionGained,
            OnSelectionLost = v7.onSelectionLost,
            OnActivated = v7.onActivated
        }, {
            ToggleImage = v1.createElement("ImageLabel", {
                Size = UDim2.new(0, 32, 0, 32),
                Image = v3.Images.EnabledStatusIcon,
                ImageColor3 = l_StatusIconUnknownColor_0,
                Position = UDim2.new(0, 20, 0.5, 0),
                AnchorPoint = Vector2.new(0, 0.5),
                BackgroundTransparency = 1
            })
        })
    }, v7.props[v1.Children] or {}));
end;
return v5;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_Components_0 = l_Modules_0.Shell.Components;
local v2 = require(l_Modules_0.Common.Roact);
local v3 = require(l_Modules_0.Shell.GlobalSettings);
local v4 = require(l_Modules_0.Common.RoactRodux);
local v5 = require(l_Modules_0.Shell.Thunks.ApiFetchUserThumbnail);
local v6 = require(l_Components_0.Common.Spinner);
local v7 = require(l_Modules_0.Common.memoize);
local v8 = v2.PureComponent:extend("UserThumbnailLoader");
v8.render = function(v9)
    local l_props_0 = v9.props;
    local l_rbxuid_0 = l_props_0.rbxuid;
    local v12 = {};
    local v13 = "";
    if l_rbxuid_0 and l_rbxuid_0 > 0 then
        if not l_props_0.hasThumbnailData or not l_props_0.imageUrl then
            l_props_0.fetchImage(l_rbxuid_0, l_props_0.thumbnailType, l_props_0.thumbnailSize);
        else
            v13 = l_props_0.imageUrl;
        end;
        if l_props_0.showSpinner then
            v12.Spinner = l_props_0.isFetching and v2.createElement(v6);
        end;
    else
        v12.XboxDefaultProfileImage = v2.createElement("ImageLabel", {
            Size = UDim2.new(0.5, 0, 0.5, 0),
            Position = UDim2.new(0.25, 0, 0.25, 0),
            BackgroundTransparency = 1,
            Image = v3.Images.DefaultProfile
        });
    end;
    return v2.createElement("ImageLabel", {
        Image = v13,
        Size = l_props_0.size or UDim2.new(1, 0, 1, 0),
        Position = l_props_0.position or UDim2.new(0, 0, 0, 0),
        BackgroundTransparency = l_props_0.backgroundTransparency or 0,
        BorderSizePixel = 0,
        BackgroundColor3 = l_props_0.backgroundColor3 or v3.Colors.CharacterBackground
    }, v12);
end;
local v15 = v7(function(v14)
    return {
        hasThumbnailData = v14 ~= nil,
        isFetching = v14 and v14.isFetching,
        imageUrl = v14 and v14.imageUrl
    };
end);
return v4.connect(function(v16, v17)
    local l_rbxuid_1 = v17.rbxuid;
    local l_thumbnailType_0 = v17.thumbnailType;
    local l_thumbnailSize_0 = v17.thumbnailSize;
    local v21 = nil;
    if not ((not (l_rbxuid_1 and l_rbxuid_1 > 0) or not l_thumbnailType_0) or not l_thumbnailSize_0) then
        v21 = v16.UserThumbnails[table.concat({
            l_rbxuid_1,
            l_thumbnailType_0.Name,
            l_thumbnailSize_0.Name
        })];
    end;
    return v15(v21);
end, function(v22)
    return {
        fetchImage = function(v23, v24, v25)
            return v22(v5(v23, v24, v25, 6));
        end
    };
end)(v8);


local v0 = require(game:GetService("CoreGui").RobloxGui.Modules.Shell.Utility);
local l_ContextActionService_0 = game:GetService("ContextActionService");
local v2 = {};
v2.__index = v2;
local function _(v3, v4)
    local v5 = "EnterSection" .. tostring(v4);
    v3._actions.EnterSection[v4] = v5;
    l_ContextActionService_0:BindCoreAction(v5, function(v6, v7, v8)
        return v3:_enterAction(v6, v7, v8);
    end, false, v4);
end;
local function _(v10, v11)
    local v12 = "ExitSection" .. tostring(v11);
    v10._actions.ExitSection[v11] = v12;
    l_ContextActionService_0:BindCoreAction(v12, function(v13, v14, v15)
        return v10:_exitAction(v13, v14, v15);
    end, false, v11);
end;
v2.new = function()
    local v17 = {
        _levels = {},
        _guiobjs = {},
        _nextPageKey = "",
        _actions = {},
        _seenPressed = {}
    };
    v17._actions.EnterSection = {};
    v17._actions.ExitSection = {};
    local l_ButtonB_0 = Enum.KeyCode.ButtonB;
    local v19 = "ExitSection" .. tostring(l_ButtonB_0);
    v17._actions.ExitSection[l_ButtonB_0] = v19;
    l_ContextActionService_0:BindCoreAction(v19, function(v20, v21, v22)
        return v17:_exitAction(v20, v21, v22);
    end, false, l_ButtonB_0);
    setmetatable(v17, v2);
    return v17;
end;
v2.AddEnterButton = function(v23, v24)
    local v25 = "EnterSection" .. tostring(v24);
    v23._actions.EnterSection[v24] = v25;
    l_ContextActionService_0:BindCoreAction(v25, function(v26, v27, v28)
        return v23:_enterAction(v26, v27, v28);
    end, false, v24);
end;
v2.AddExitButton = function(v29, v30)
    local v31 = "ExitSection" .. tostring(v30);
    v29._actions.ExitSection[v30] = v31;
    l_ContextActionService_0:BindCoreAction(v31, function(v32, v33, v34)
        return v29:_exitAction(v32, v33, v34);
    end, false, v30);
end;
v2.EnterRootSection = function(v35, v36)
    if v35._guiobjs[v36] == nil then
        return false;
    else
        v35._levels = {};
        table.insert(v35._levels, v36);
        v0.SetSelectedCoreObject(v35._guiobjs[v36]);
        return true;
    end;
end;
v2.EnterSection = function(v37)
    local l__nextPageKey_0 = v37._nextPageKey;
    if not (l__nextPageKey_0 ~= nil) or v37._guiobjs[l__nextPageKey_0] == nil then
        return false;
    else
        table.insert(v37._levels, l__nextPageKey_0);
        v0.SetSelectedCoreObject(v37._guiobjs[l__nextPageKey_0]);
        v37._nextPageKey = nil;
        return true;
    end;
end;
v2.ExitSection = function(v39)
    table.remove(v39._levels);
    local v40 = v39._levels[#v39._levels];
    if v39._guiobjs[v40] == nil then
        return false;
    else
        v0.SetSelectedCoreObject(v39._guiobjs[v40]);
        return true;
    end;
end;
v2._enterAction = function(v41, _, v43, v44)
    if v41._nextPageKey == nil then
        return Enum.ContextActionResult.Pass;
    elseif v43 == Enum.UserInputState.Begin then
        v41._seenPressed[v44.KeyCode] = true;
        return Enum.ContextActionResult.Sink;
    elseif not (v43 == Enum.UserInputState.End) or not v41._seenPressed[v44.KeyCode] then
        return ;
    else
        v41._seenPressed[v44.KeyCode] = false;
        v41:EnterSection();
        return Enum.ContextActionResult.Sink;
    end;
end;
v2._exitAction = function(v45, _, v47, v48)
    if #v45._levels <= 1 then
        return Enum.ContextActionResult.Pass;
    else
        if v47 == Enum.UserInputState.Begin then
            v45._seenPressed[v48.KeyCode] = true;
        elseif not (not (v47 == Enum.UserInputState.End) or not v45._seenPressed[v48.KeyCode]) then
            v45._seenPressed[v48.KeyCode] = false;
            v45:ExitSection();
        end;
        return Enum.ContextActionResult.Sink;
    end;
end;
v2.Set = function(v49, v50, v51)
    v49._guiobjs[v50] = v51;
end;
v2.SetNextPage = function(v52, v53)
    v52._nextPageKey = v53;
end;
v2.Destruct = function(v54)
    for _, v56 in pairs(v54._actions.EnterSection) do
        l_ContextActionService_0:UnbindCoreAction(v56);
    end;
    for _, v58 in pairs(v54._actions.ExitSection) do
        l_ContextActionService_0:UnbindCoreAction(v58);
    end;
end;
return v2;


local v0 = require(game:GetService("CoreGui").RobloxGui.Modules.Common.Roact);
return function(v1)
    local l_PaddingTop_0 = v1.PaddingTop;
    local l_PaddingBottom_0 = v1.PaddingBottom;
    local l_Spacing_0 = v1.Spacing;
    local l_HorizontalAlignment_0 = v1.HorizontalAlignment;
    local l_ScrollBarThickness_0 = v1.ScrollBarThickness;
    local l_ScrollingEnabled_0 = v1.ScrollingEnabled;
    local v8 = {
        UIPadding = v0.createElement("UIPadding", {
            PaddingTop = l_PaddingTop_0,
            PaddingBottom = l_PaddingBottom_0
        }),
        UIListLayout = v0.createElement("UIListLayout", {
            Padding = l_Spacing_0,
            FillDirection = Enum.FillDirection.Vertical,
            SortOrder = Enum.SortOrder.LayoutOrder,
            HorizontalAlignment = l_HorizontalAlignment_0,
            VerticalAlignment = Enum.VerticalAlignment.Top
        })
    };
    for v9, v10 in pairs(v1.Items) do
        v8[v9] = v10;
    end;
    return v0.createElement("ScrollingFrame", {
        Size = UDim2.new(1, 0, 1, 0),
        ScrollBarThickness = l_ScrollBarThickness_0,
        BackgroundTransparency = 1,
        Selectable = false,
        ScrollingEnabled = l_ScrollingEnabled_0
    }, v8);
end;


local l_GuiService_0 = game:GetService("GuiService");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_Modules_0.Shell.Utility);
local v3 = require(l_Modules_0.Common.Roact);
local v4 = v3.PureComponent:extend("WindowedScrollingFrame");
local function v7(v5, v6)
    return Vector2.new(math.max(0, (math.min(v6.X, v5.CanvasSize.X.Offset - v5.AbsoluteWindowSize.X))), (math.max(0, (math.min(v6.Y, v5.CanvasSize.Y.Offset - v5.AbsoluteWindowSize.Y)))));
end;
v4.init = function(v8)
    v8.state = {
        viewStart = 0,
        viewSize = 0,
        paddingStart = 0
    };
    v8.scrollingFrameRef = function(v9)
        v8.scrollingFrame = v9;
    end;
end;
v4.onSelectionChanged = function(v10, v11)
    if v10.scrollingFrame then
        if (v11 ~= nil and v11 ~= v10.savedSelectedObject) and v11:IsDescendantOf(v10.scrollingFrame) then
            v10.savedSelectedObject = v11;
            local l_scrollingFrame_0 = v10.scrollingFrame;
            local v13 = v10.props.scrollingDirection or Enum.ScrollingDirection.Y;
            local l_AbsoluteWindowSize_0 = l_scrollingFrame_0.AbsoluteWindowSize;
            local l_CanvasPosition_0 = l_scrollingFrame_0.CanvasPosition;
            local v16 = "X";
            if v13 == Enum.ScrollingDirection.Y then
                v16 = "Y";
            end;
            if l_AbsoluteWindowSize_0[v16] == 0 then
                return ;
            else
                local v17 = v10.props.itemOffsetStart or 0;
                local v18 = v10.props.itemOffsetEnd or 0;
                local v19 = v10.props.customScrollDist or {};
                local v20 = nil;
                local v21 = nil;
                if v13 == Enum.ScrollingDirection.Y then
                    local v22 = v11.AbsolutePosition.Y - l_scrollingFrame_0.AbsolutePosition.Y;
                    local l_Y_0 = (((l_scrollingFrame_0.AbsolutePosition + l_scrollingFrame_0.AbsoluteWindowSize) - v11.AbsolutePosition) - v11.AbsoluteSize).Y;
                    if v22 < (v19.Top or v17) then
                        if v22 < 0 then
                            v20 = Vector2.new(l_CanvasPosition_0.X, l_CanvasPosition_0.Y + v22);
                        end;
                        v21 = Vector2.new(l_CanvasPosition_0.X, l_CanvasPosition_0.Y - (v17 - v22));
                    elseif l_Y_0 < (v19.Bottom or v18) then
                        if l_Y_0 < 0 then
                            v20 = Vector2.new(l_CanvasPosition_0.X, l_CanvasPosition_0.Y - l_Y_0);
                        end;
                        v21 = Vector2.new(l_CanvasPosition_0.X, (l_CanvasPosition_0.Y + v18) - l_Y_0);
                    end;
                elseif v13 == Enum.ScrollingDirection.X then
                    local v24 = v11.AbsolutePosition.X - l_scrollingFrame_0.AbsolutePosition.X;
                    local l_X_0 = (((l_scrollingFrame_0.AbsolutePosition + l_scrollingFrame_0.AbsoluteWindowSize) - v11.AbsolutePosition) - v11.AbsoluteSize).X;
                    if v24 < (v19.Left or v17) then
                        if v24 < 0 then
                            v20 = Vector2.new(l_CanvasPosition_0.X + v24, l_CanvasPosition_0.Y);
                        end;
                        v21 = Vector2.new(l_CanvasPosition_0.X - (v17 - v24), l_CanvasPosition_0.Y);
                    elseif l_X_0 < (v19.Right or v18) then
                        if l_X_0 < 0 then
                            v20 = Vector2.new(l_CanvasPosition_0.X - l_X_0, l_CanvasPosition_0.Y);
                        end;
                        v21 = Vector2.new((l_CanvasPosition_0.X + v18) - l_X_0, l_CanvasPosition_0.Y);
                    end;
                end;
                if v20 then
                    v20 = v7(l_scrollingFrame_0, v20);
                    v2.PropertyTweener(l_scrollingFrame_0, "CanvasPosition", v20, v20, 0, v2.EaseOutQuad, true, function()
                        if v21 then
                            v21 = v7(l_scrollingFrame_0, v21);
                            v2.PropertyTweener(l_scrollingFrame_0, "CanvasPosition", v20, v21, 0.2, v2.EaseOutQuad, true);
                        end;
                    end);
                end;
                if not (v20 or not v21) then
                    v21 = v7(l_scrollingFrame_0, v21);
                    v2.PropertyTweener(l_scrollingFrame_0, "CanvasPosition", l_CanvasPosition_0, v21, 0.2, v2.EaseOutQuad, true);
                end;
                return ;
            end;
        else
            return ;
        end;
    else
        return ;
    end;
end;
v4.updateViewBounds = function(v26)
    if v26.scrollingFrame then
        local l_scrollingFrame_1 = v26.scrollingFrame;
        local l_itemSize_0 = v26.props.itemSize;
        local v29 = v26.props.itemsPaddingOffset or 0;
        local v30 = v26.props.scrollingDirection or Enum.ScrollingDirection.Y;
        local l_AbsoluteWindowSize_1 = l_scrollingFrame_1.AbsoluteWindowSize;
        local l_CanvasPosition_1 = l_scrollingFrame_1.CanvasPosition;
        local v33 = "X";
        if v30 == Enum.ScrollingDirection.Y then
            v33 = "Y";
        end;
        if l_AbsoluteWindowSize_1[v33] == 0 then
            return ;
        else
            l_CanvasPosition_1 = v7(l_scrollingFrame_1, l_CanvasPosition_1);
            local v34 = l_itemSize_0[v33] + v29;
            local v35 = math.ceil(l_AbsoluteWindowSize_1[v33] / v34) + 1;
            local v36 = math.floor(l_CanvasPosition_1[v33] / v34);
            local v37 = math.max(0, (v36 - 1) * v34);
            local v38 = true;
            if v35 == v26.state.viewSize then
                v38 = true;
                if v36 == v26.state.viewStart then
                    v38 = v37 ~= v26.state.paddingStart;
                end;
            end;
            if v38 then
                v26:setState({
                    viewStart = v36,
                    viewSize = v35,
                    paddingStart = v37
                });
            end;
            return ;
        end;
    else
        return ;
    end;
end;
v4.render = function(v39)
    local l_items_0 = v39.props.items;
    local l_generateKey_0 = v39.props.generateKey;
    local l_renderItem_0 = v39.props.renderItem;
    local l_itemSize_1 = v39.props.itemSize;
    local v44 = v39.props.itemsPaddingOffset or 0;
    local v45 = v39.props.scrollingDirection or Enum.ScrollingDirection.Y;
    assert(v45 ~= Enum.ScrollingDirection.XY, "Can't set ScrollingDirection as XY.");
    local v46 = {
        UIListLayout = v3.createElement("UIListLayout", {
            Padding = UDim.new(0, v44),
            SortOrder = Enum.SortOrder.LayoutOrder,
            FillDirection = v45 == Enum.ScrollingDirection.Y and Enum.FillDirection.Vertical or Enum.FillDirection.Horizontal
        })
    };
    if v45 == Enum.ScrollingDirection.Y then
        v46.UIPadding = v3.createElement("UIPadding", {
            PaddingTop = UDim.new(0, v39.state.paddingStart)
        });
    elseif v45 == Enum.ScrollingDirection.X then
        v46.UIPadding = v3.createElement("UIPadding", {
            PaddingLeft = UDim.new(0, v39.state.paddingStart)
        });
    end;
    for v47 = math.max(1, v39.state.viewStart), math.min(#l_items_0, v39.state.viewStart + v39.state.viewSize) do
        v46[not not l_generateKey_0 and l_generateKey_0(v47) or v47] = l_renderItem_0(l_items_0[v47], v47);
    end;
    local v48 = v39.props.scrollingFrameProps or {};
    local v49 = nil;
    if v45 == Enum.ScrollingDirection.Y then
        v49 = UDim2.new(1, 0, 0, #l_items_0 * l_itemSize_1.Y + (#l_items_0 - 1) * v44);
    elseif v45 == Enum.ScrollingDirection.X then
        v49 = UDim2.new(0, #l_items_0 * l_itemSize_1.X + (#l_items_0 - 1) * v44, 1, 0);
    end;
    return v3.createElement("ScrollingFrame", {
        Size = UDim2.new(1, 0, 1, 0),
        ScrollingEnabled = false,
        CanvasSize = v49,
        Selectable = v48.selectable or false,
        ScrollBarThickness = 0,
        ClipsDescendants = v48.clipsDescendants,
        BackgroundTransparency = 1,
        ScrollingDirection = v45,
        [v3.Ref] = v39.scrollingFrameRef,
        [v3.Change.CanvasPosition] = function()
            v39:updateViewBounds();
        end,
        [v3.Change.AbsoluteSize] = function()
            v39:updateViewBounds();
        end
    }, v46);
end;
v4.didMount = function(v50)
    v50:updateViewBounds();
end;
v4.didUpdate = function(v51, v52, _)
    if v52.inFocus or not v51.props.inFocus then
        if not (not v52.inFocus or v51.props.inFocus) then
            v2.DisconnectEvent(v51.conn);
        end;
    else
        v51.conn = l_GuiService_0:GetPropertyChangedSignal("SelectedCoreObject"):connect(function()
            v51:onSelectionChanged(l_GuiService_0.SelectedCoreObject);
        end);
    end;
    if v51.props ~= v52 then
        v51:updateViewBounds();
    end;
end;
return v4;


local l_ContextActionService_0 = game:GetService("ContextActionService");
local v1 = require(game:GetService("CoreGui").RobloxGui.Modules.Common.Roact).Component:extend("ContextActionEvent");
v1.render = function(_)
    return nil;
end;
v1.didMount = function(v3)
    if not v3.props.actionPriority then
        l_ContextActionService_0:BindCoreAction(v3.props.name, v3.props.callback, false, unpack(v3.props.binds));
        return ;
    else
        l_ContextActionService_0:BindCoreActionAtPriority(v3.props.name, v3.props.callback, false, 2000 + v3.props.actionPriority, unpack(v3.props.binds));
        return ;
    end;
end;
v1.didUpdate = function(v4, v5)
    if not (v4.props.callback == v5.callback) or v4.props.name ~= v5.name then
        l_ContextActionService_0:UnbindCoreAction(v5.name);
        if not v4.props.actionPriority then
            l_ContextActionService_0:BindCoreAction(v4.props.name, v4.props.callback, false, unpack(v4.props.binds));
        else
            l_ContextActionService_0:BindCoreActionAtPriority(v4.props.name, v4.props.callback, false, 2000 + v4.props.actionPriority, unpack(v4.props.binds));
            return ;
        end;
    end;
end;
v1.willUnmount = function(v6)
    l_ContextActionService_0:UnbindCoreAction(v6.props.name);
end;
return v1;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(l_Modules_0.Common.Roact);
local v2 = require(l_Modules_0.Shell.GlobalSettings);
return function(v3)
    return v1.createElement("ImageLabel", {
        Size = UDim2.new(0, 65, 0, 65),
        Position = v3.Position,
        BackgroundTransparency = 1,
        Image = v3.Image
    }, {
        Text = v1.createElement("TextLabel", {
            Size = UDim2.new(0, 0, 1, 0),
            Position = UDim2.new(1, 5, 0, -3),
            BackgroundTransparency = 1,
            Font = v2.RegularFont,
            FontSize = v2.ButtonSize,
            TextColor3 = v2.WhiteTextColor,
            TextXAlignment = Enum.TextXAlignment.Left,
            Text = v3.Text
        })
    });
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(l_Modules_0.Common.Roact);
local v2 = require(l_Modules_0.Shell.GlobalSettings);
local v3 = require(l_Modules_0.Shell.LocalizedStrings);
return function(_)
    return v1.createElement("ImageLabel", {
        Size = UDim2.new(0, 599, 0, 404),
        Position = UDim2.new(0.5, 0, 0.5, 0),
        AnchorPoint = Vector2.new(0.5, 0.5),
        BackgroundTransparency = 1,
        Image = "rbxasset://textures/ui/Shell/ScreenAdjustment/Controller@1080.png"
    }, {
        Line = v1.createElement("Frame", {
            Size = UDim2.new(0, 240, 0, 1),
            Position = UDim2.new(0, 437, 0, 220),
            BackgroundTransparency = 0,
            BackgroundColor3 = Color3.new(1, 1, 1),
            BorderSizePixel = 0
        }, {
            InputHint = v1.createElement("TextLabel", {
                Size = UDim2.new(0, 0, 0, 0),
                Position = UDim2.new(1, 3, 0, -1),
                BackgroundTransparency = 1,
                Font = v2.RegularFont,
                FontSize = v2.ButtonSize,
                TextColor3 = v2.WhiteTextColor,
                TextXAlignment = Enum.TextXAlignment.Left,
                Text = v3:LocalizedString("ResizeScreenInputHint")
            })
        })
    });
end;


local l_UserGameSettings_0 = UserSettings():GetService("UserGameSettings");
local l_FirstChild_0 = settings():FindFirstChild("Game Options");
local l_UserInputService_0 = game:GetService("UserInputService");
local v3 = nil;
pcall(function()
    v3 = game:GetService("PlatformService");
end);
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v5 = require(l_Modules_0.Common.Roact);
local v6 = require(l_Modules_0.Shell.Utility);
local v7 = require(l_Modules_0.Shell.Components.ContextActionEvent);
local v8 = require(l_Modules_0.Common.RoactUtilities.ExternalEventConnection);
local v9 = require(l_Modules_0.Shell.Components.RenderStep);
local l_game_EngineFeature_0 = game:GetEngineFeature("MigrateOverscanToGameBasicSettings");
local v11 = Vector2.new(0.85, 0.85);
local v12 = Vector2.new(0.9, 0.9);
local v13 = Vector2.new(1920, 1080);
local v14 = Vector2.new(0, 0);
local v15 = {
    [Enum.KeyCode.DPadDown] = Vector2.new(0, 2),
    [Enum.KeyCode.DPadUp] = Vector2.new(0, -2),
    [Enum.KeyCode.DPadLeft] = Vector2.new(-2, 0),
    [Enum.KeyCode.DPadRight] = Vector2.new(2, 0)
};
local function v17(v16)
    return v5.createElement("ImageLabel", {
        Size = UDim2.new(0, 95, 0, 95),
        Position = v16.Position,
        AnchorPoint = v16.AnchorPoint,
        BackgroundTransparency = 1,
        Rotation = v16.Rotation,
        Image = "rbxasset://textures/ui/Shell/ScreenAdjustment/ScreenAdjustmentArrow.png"
    });
end;
local v18 = v5.Component:extend("Edges");
v18.init = function(v19)
    local function _(v20)
        return v6.ClampVector2(v11, Vector2.new(1, 1), v20);
    end;
    local function _(v22)
        local v23 = v22 * v13;
        return v6.ClampVector2(v14, v13, Vector2.new(v6.Round(v23.X / 2), v6.Round(v23.Y / 2)) * 2);
    end;
    v19.onAdjustThumbstick = function(_, _, v27)
        v19._stickPosition = v6.GamepadLinearToCurve(Vector2.new(v27.Position.X, -v27.Position.Y), 0.2);
    end;
    v19.onAdjustDPad = function(_, v29, v30)
        if v29 == Enum.UserInputState.Begin then
            local v31 = v15[v30.KeyCode];
            if v31 then
                v31 = v31 / v13;
                if not (not v6.IsFinite(v31.X) or not v6.IsFinite(v31.Y)) then
                    v19._edgePercent = v6.ClampVector2(v11, Vector2.new(1, 1), v19._edgePercent + v31);
                    local l_v19_0 = v19;
                    local v33 = {};
                    local v34 = v19._edgePercent * v13;
                    v33.currentSize = v6.ClampVector2(v14, v13, Vector2.new(v6.Round(v34.X / 2), v6.Round(v34.Y / 2)) * 2);
                    l_v19_0:setState(v33);
                end;
            end;
        end;
    end;
    v19.onReset = function(_, v36, _)
        if v36 == Enum.UserInputState.End then
            v19._stickPosition = v14;
            v19._edgePercent = v6.ClampVector2(v11, Vector2.new(1, 1), v12);
            v19._acceleration = 1;
            local l_v19_1 = v19;
            local v39 = {};
            local v40 = v19._edgePercent * v13;
            v39.currentSize = v6.ClampVector2(v14, v13, Vector2.new(v6.Round(v40.X / 2), v6.Round(v40.Y / 2)) * 2);
            l_v19_1:setState(v39);
        end;
    end;
    v19.onAccept = function(_, v42, _)
        if v42 == Enum.UserInputState.Begin then
            v19._seenAPressed = true;
            return ;
        else
            if not (not (v42 == Enum.UserInputState.End) or not v19._seenAPressed) then
                local _, _ = pcall(function()
                    if not l_game_EngineFeature_0 then
                        l_FirstChild_0.OverscanPX = math.min(1, v19._edgePercent.X);
                        l_FirstChild_0.OverscanPY = math.min(1, v19._edgePercent.Y);
                        return ;
                    else
                        l_UserGameSettings_0.Overscan = Vector2.new(math.min(1, v19._edgePercent.X), (math.min(1, v19._edgePercent.Y)));
                        return ;
                    end;
                end);
                if v19.props.onSetEdges then
                    v19.props.onSetEdges();
                end;
            end;
            return ;
        end;
    end;
    v19.onRenderStep = function()
        local v46 = tick();
        if v19._lastUpdate then
            if v19._stickPosition ~= v14 then
                local v47 = v46 - v19._lastUpdate;
                v19._edgePercent = v6.ClampVector2(v11, Vector2.new(1, 1), ((v19._stickPosition * v19._acceleration) * v47) * 0.05 + v19._edgePercent);
                v19._acceleration = math.min(v19._acceleration + v47 * 1, 3);
                local l_v19_2 = v19;
                local v49 = {};
                local v50 = v19._edgePercent * v13;
                v49.currentSize = v6.ClampVector2(v14, v13, Vector2.new(v6.Round(v50.X / 2), v6.Round(v50.Y / 2)) * 2);
                l_v19_2:setState(v49);
            else
                v19._acceleration = 1;
            end;
        end;
        v19._lastUpdate = v46;
    end;
    v19.onSuspended = function()
        pcall(function()
            if not l_game_EngineFeature_0 then
                l_FirstChild_0.OverscanPX = v19._lastSavedOverscan.X;
                l_FirstChild_0.OverscanPY = v19._lastSavedOverscan.Y;
                return ;
            else
                l_UserGameSettings_0.Overscan = Vector2.new(v19._lastSavedOverscan.X, v19._lastSavedOverscan.Y);
                return ;
            end;
        end);
    end;
    local v51 = v6.ClampVector2(v11, Vector2.new(1, 1), v12);
    local v52 = v51 * v13;
    local v53 = v6.ClampVector2(v14, v13, Vector2.new(v6.Round(v52.X / 2), v6.Round(v52.Y / 2)) * 2);
    if l_UserInputService_0:GetPlatform() == Enum.Platform.XBoxOne then
        pcall(function()
            if not l_game_EngineFeature_0 then
                if l_FirstChild_0.OverscanPX > 0 and l_FirstChild_0.OverscanPY > 0 then
                    v51 = Vector2.new(l_FirstChild_0.OverscanPX, l_FirstChild_0.OverscanPY);
                    v51 = v6.ClampVector2(v11, Vector2.new(1, 1), v51);
                    local v54 = v51 * v13;
                    v53 = v6.ClampVector2(v14, v13, Vector2.new(v6.Round(v54.X / 2), v6.Round(v54.Y / 2)) * 2);
                    v19._lastSavedOverscan = Vector2.new(l_FirstChild_0.OverscanPX, l_FirstChild_0.OverscanPY);
                    l_FirstChild_0.OverscanPX = 1;
                    l_FirstChild_0.OverscanPY = 1;
                end;
            elseif l_UserGameSettings_0.Overscan.x > 0 and l_UserGameSettings_0.Overscan.y > 0 then
                v51 = Vector2.new(l_UserGameSettings_0.Overscan.x, l_UserGameSettings_0.Overscan.y);
                v51 = v6.ClampVector2(v11, Vector2.new(1, 1), v51);
                local v55 = v51 * v13;
                v53 = v6.ClampVector2(v14, v13, Vector2.new(v6.Round(v55.X / 2), v6.Round(v55.Y / 2)) * 2);
                v19._lastSavedOverscan = Vector2.new(l_UserGameSettings_0.Overscan.x, l_UserGameSettings_0.Overscan.y);
                l_UserGameSettings_0.Overscan = Vector2.new(1, 1);
                return ;
            end;
        end);
    end;
    v19._stickPosition = v14;
    v19._edgePercent = v51;
    v19._lastUpdate = nil;
    v19._acceleration = 1;
    v19._seenAPressed = false;
    v19.state = {
        currentSize = v53
    };
end;
v18.render = function(v56)
    return v5.createElement("Frame", {
        Size = UDim2.new(0, v56.state.currentSize.X, 0, v56.state.currentSize.Y),
        Position = UDim2.new(0.5, 0, 0.5, 0),
        AnchorPoint = Vector2.new(0.5, 0.5),
        BackgroundTransparency = 1
    }, {
        SelectionImage = v5.createElement("ImageLabel", {
            Size = UDim2.new(1, 2, 1, 2),
            Position = UDim2.new(0, -1, 0, -1),
            BackgroundTransparency = 1,
            ScaleType = Enum.ScaleType.Slice,
            SliceCenter = Rect.new(21, 21, 41, 41),
            Image = "rbxasset://textures/ui/Shell/ScreenAdjustment/ScreenRangeOverlay.png"
        }),
        TopLeft = v5.createElement(v17, {
            Rotation = 0,
            Position = UDim2.new(0, 0, 0, 0),
            AnchorPoint = Vector2.new(0, 0)
        }),
        TopRight = v5.createElement(v17, {
            Rotation = 90,
            Position = UDim2.new(1, 0, 0, 0),
            AnchorPoint = Vector2.new(1, 0)
        }),
        BottomRight = v5.createElement(v17, {
            Rotation = 180,
            Position = UDim2.new(1, 0, 1, 0),
            AnchorPoint = Vector2.new(1, 1)
        }),
        BottomLeft = v5.createElement(v17, {
            Rotation = 270,
            Position = UDim2.new(0, 0, 1, 0),
            AnchorPoint = Vector2.new(0, 1)
        }),
        Render = v5.createElement(v9, {
            name = "UpdateAdjustmentScreen",
            priority = Enum.RenderPriority.Input.Value,
            callback = v56.onRenderStep
        }),
        AdjustConnectorThumbstick = v5.createElement(v7, {
            name = "ThumbstickAdjustmentScreen",
            callback = v56.onAdjustThumbstick,
            binds = {
                Enum.KeyCode.Thumbstick2
            }
        }),
        AdjustConnectorDPad = v5.createElement(v7, {
            name = "DPadAdjustmentScreen",
            callback = v56.onAdjustDPad,
            binds = {
                Enum.KeyCode.DPadDown,
                Enum.KeyCode.DPadUp,
                Enum.KeyCode.DPadLeft,
                Enum.KeyCode.DPadRight
            }
        }),
        ResetConnector = v5.createElement(v7, {
            name = "ResetAdjustmentScreen",
            callback = v56.onReset,
            binds = {
                Enum.KeyCode.ButtonX
            }
        }),
        AcceptConnector = v5.createElement(v7, {
            name = "AcceptAdjustmentScreen",
            callback = v56.onAccept,
            binds = {
                Enum.KeyCode.ButtonA
            }
        }),
        SuspendedCn = v3 and v5.createElement(v8, {
            event = v3.Suspended,
            callback = v56.onSuspended
        })
    });
end;
return v18;


local l_TextService_0 = game:GetService("TextService");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_Modules_0.Common.Roact);
local v3 = require(l_Modules_0.Shell.GlobalSettings);
local v4 = require(l_Modules_0.Shell.LocalizedStrings);
local v5 = require(l_Modules_0.Shell.Utility);
local v6 = require(script.Parent.ControllerHint);
local v7 = require(script.Parent.Edges);
local v8 = require(script.Parent.ButtonHint);
local v9 = v2.Component:extend("Overscan");
v9.render = function(v10)
    return v2.createElement("Frame", {
        Size = UDim2.new(1, 0, 1, 0),
        BorderSizePixel = 1,
        BackgroundTransparency = v10.props.BackgroundTransparency,
        BackgroundColor3 = Color3.new(0.011764705882352941, 0.011764705882352941, 0.011764705882352941)
    }, {
        v2.createElement("ImageLabel", {
            Size = UDim2.new(1, 0, 1, 0),
            BackgroundTransparency = 1,
            BackgroundColor3 = Color3.new(0.011764705882352941, 0.011764705882352941, 0.011764705882352941),
            BorderSizePixel = 1,
            Visible = v10.props.ImageVisible,
            Image = "rbxasset://textures/ui/Shell/ScreenAdjustment/Background.png"
        });
        Title = v2.createElement("TextLabel", {
            Position = UDim2.new(0, 230, 0, 205),
            BackgroundTransparency = 1,
            Font = v3.LightFont,
            FontSize = v3.HeaderSize,
            TextColor3 = v3.WhiteTextColor,
            TextXAlignment = Enum.TextXAlignment.Left,
            Text = v4:LocalizedString("ScreenSizeWord")
        }),
        Prompt = v2.createElement("TextLabel", {
            Position = UDim2.new(0, 230, 0, 243),
            BackgroundTransparency = 1,
            Font = v3.RegularFont,
            FontSize = v3.ButtonSize,
            TextColor3 = v3.WhiteTextColor,
            TextXAlignment = Enum.TextXAlignment.Left,
            Text = v4:LocalizedString("ResizeScreenPrompt")
        }),
        Controller = v2.createElement(v6),
        AcceptHint = v2.createElement(v8, {
            Position = UDim2.new(0.5, 25, 0.75, 0),
            Image = "rbxasset://textures/ui/Shell/ButtonIcons/AButton.png",
            Text = v4:LocalizedString("AcceptWord")
        }),
        ResetHint = v2.createElement(v8, {
            Position = UDim2.new(0.5, -90 - l_TextService_0:GetTextSize(v4:LocalizedString("ResetWord"), v5.ConvertFontSizeEnumToInt(v3.ButtonSize), v3.RegularFont, Vector2.new(0, 0)).X, 0.75, 0),
            Image = "rbxasset://textures/ui/Shell/ButtonIcons/XButton.png",
            Text = v4:LocalizedString("ResetWord")
        }),
        EdgeSelector = v2.createElement(v7, {
            onSetEdges = v10.props.onUnmount
        })
    });
end;
return v9;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_UserGameSettings_0 = UserSettings():GetService("UserGameSettings");
local l_FirstChild_0 = settings():FindFirstChild("Game Options");
local l_UserInputService_0 = game:GetService("UserInputService");
local v4 = nil;
pcall(function()
    v4 = game:GetService("PlatformService");
end);
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v6 = require(l_CorePackages_0.Packages.React);
local v7 = require(l_Modules_0.Shell.Utility);
local v8 = require(l_Modules_0.Shell.Components.ContextActionEvent);
local v9 = require(l_Modules_0.Common.RoactUtilities.ExternalEventConnection);
local v10 = require(l_Modules_0.Shell.Components.RenderStep);
local l_game_EngineFeature_0 = game:GetEngineFeature("MigrateOverscanToGameBasicSettings");
local v12 = Vector2.new(0.85, 0.85);
local v13 = Vector2.new(0.9, 0.9);
local v14 = Vector2.new(1920, 1080);
local v15 = Vector2.new(0, 0);
local function v17(v16)
    return v6.createElement("ImageLabel", {
        Size = UDim2.new(0, 95, 0, 95),
        Position = v16.Position,
        AnchorPoint = v16.AnchorPoint,
        BackgroundTransparency = 1,
        Rotation = v16.Rotation,
        Image = "rbxasset://textures/ui/Shell/ScreenAdjustment/ScreenAdjustmentArrow.png"
    });
end;
local v18 = v6.Component:extend("Edges");
v18.init = function(v19)
    local function _(v20)
        return v7.ClampVector2(v12, Vector2.new(1, 1), v20);
    end;
    local function _(v22)
        local v23 = v22 * v14;
        return v7.ClampVector2(v15, v14, Vector2.new(v7.Round(v23.X / 2), v7.Round(v23.Y / 2)) * 2);
    end;
    v19.onAdjustThumbstick = function(_, _, v27)
        v19._stickPosition = v7.GamepadLinearToCurve(Vector2.new(v27.Position.X, -v27.Position.Y), 0.2);
    end;
    v19.onAccept = function()
        local _, _ = pcall(function()
            if not l_game_EngineFeature_0 then
                l_FirstChild_0.OverscanPX = math.min(1, v19._edgePercent.X);
                l_FirstChild_0.OverscanPY = math.min(1, v19._edgePercent.Y);
                return ;
            else
                l_UserGameSettings_0.Overscan = Vector2.new(math.min(1, v19._edgePercent.X), (math.min(1, v19._edgePercent.Y)));
                return ;
            end;
        end);
        if v19.props.onSetEdges then
            v19.props.onSetEdges();
        end;
    end;
    v19.onRenderStep = function()
        local v30 = tick();
        if v19._lastUpdate then
            if v19._stickPosition ~= v15 then
                local v31 = v30 - v19._lastUpdate;
                v19._edgePercent = v7.ClampVector2(v12, Vector2.new(1, 1), ((v19._stickPosition * v19._acceleration) * v31) * 0.05 + v19._edgePercent);
                v19._acceleration = math.min(v19._acceleration + v31 * 1, 3);
                local l_v19_0 = v19;
                local v33 = {};
                local v34 = v19._edgePercent * v14;
                v33.currentSize = v7.ClampVector2(v15, v14, Vector2.new(v7.Round(v34.X / 2), v7.Round(v34.Y / 2)) * 2);
                l_v19_0:setState(v33);
            else
                v19._acceleration = 1;
            end;
        end;
        v19._lastUpdate = v30;
    end;
    v19.onSuspended = function()
        pcall(function()
            if not l_game_EngineFeature_0 then
                l_FirstChild_0.OverscanPX = v19._lastSavedOverscan.X;
                l_FirstChild_0.OverscanPY = v19._lastSavedOverscan.Y;
                return ;
            else
                l_UserGameSettings_0.Overscan = Vector2.new(v19._lastSavedOverscan.X, v19._lastSavedOverscan.Y);
                return ;
            end;
        end);
    end;
    local v35 = v7.ClampVector2(v12, Vector2.new(1, 1), v13);
    local v36 = v35 * v14;
    local v37 = v7.ClampVector2(v15, v14, Vector2.new(v7.Round(v36.X / 2), v7.Round(v36.Y / 2)) * 2);
    if l_UserInputService_0:GetPlatform() == Enum.Platform.XBoxOne then
        pcall(function()
            if not l_game_EngineFeature_0 then
                if l_FirstChild_0.OverscanPX > 0 and l_FirstChild_0.OverscanPY > 0 then
                    v35 = Vector2.new(l_FirstChild_0.OverscanPX, l_FirstChild_0.OverscanPY);
                    v35 = v7.ClampVector2(v12, Vector2.new(1, 1), v35);
                    local v38 = v35 * v14;
                    v37 = v7.ClampVector2(v15, v14, Vector2.new(v7.Round(v38.X / 2), v7.Round(v38.Y / 2)) * 2);
                    v19._lastSavedOverscan = Vector2.new(l_FirstChild_0.OverscanPX, l_FirstChild_0.OverscanPY);
                    l_FirstChild_0.OverscanPX = 1;
                    l_FirstChild_0.OverscanPY = 1;
                end;
            elseif l_UserGameSettings_0.Overscan.x > 0 and l_UserGameSettings_0.Overscan.y > 0 then
                v35 = Vector2.new(l_UserGameSettings_0.Overscan.x, l_UserGameSettings_0.Overscan.y);
                v35 = v7.ClampVector2(v12, Vector2.new(1, 1), v35);
                local v39 = v35 * v14;
                v37 = v7.ClampVector2(v15, v14, Vector2.new(v7.Round(v39.X / 2), v7.Round(v39.Y / 2)) * 2);
                v19._lastSavedOverscan = Vector2.new(l_UserGameSettings_0.Overscan.x, l_UserGameSettings_0.Overscan.y);
                l_UserGameSettings_0.Overscan = Vector2.new(1, 1);
                return ;
            end;
        end);
    end;
    v19._stickPosition = v15;
    v19._edgePercent = v35;
    v19._lastUpdate = nil;
    v19._acceleration = 1;
    v19._seenAPressed = false;
    v19.state = {
        currentSize = v37
    };
end;
v18.render = function(v40)
    return v6.createElement("Frame", {
        Size = UDim2.new(0, v40.state.currentSize.X, 0, v40.state.currentSize.Y),
        Position = UDim2.new(0.5, 0, 0.5, 0),
        AnchorPoint = Vector2.new(0.5, 0.5),
        BackgroundTransparency = 1
    }, {
        SelectionImage = v6.createElement("ImageLabel", {
            Size = UDim2.new(1, 2, 1, 2),
            Position = UDim2.new(0, -1, 0, -1),
            BackgroundTransparency = 1,
            ScaleType = Enum.ScaleType.Slice,
            SliceCenter = Rect.new(21, 21, 41, 41),
            Image = "rbxasset://textures/ui/Shell/ScreenAdjustment/ScreenRangeOverlay.png"
        }),
        TopLeft = v6.createElement(v17, {
            Rotation = 0,
            Position = UDim2.new(0, 0, 0, 0),
            AnchorPoint = Vector2.new(0, 0)
        }),
        TopRight = v6.createElement(v17, {
            Rotation = 90,
            Position = UDim2.new(1, 0, 0, 0),
            AnchorPoint = Vector2.new(1, 0)
        }),
        BottomRight = v6.createElement(v17, {
            Rotation = 180,
            Position = UDim2.new(1, 0, 1, 0),
            AnchorPoint = Vector2.new(1, 1)
        }),
        BottomLeft = v6.createElement(v17, {
            Rotation = 270,
            Position = UDim2.new(0, 0, 1, 0),
            AnchorPoint = Vector2.new(0, 1)
        }),
        Render = v6.createElement(v10, {
            name = "UpdateAdjustmentScreen",
            priority = Enum.RenderPriority.Input.Value,
            callback = v40.onRenderStep
        }),
        AdjustConnectorThumbstick = v6.createElement(v8, {
            name = "ThumbstickAdjustmentScreen",
            callback = v40.onAdjustThumbstick,
            binds = {
                Enum.KeyCode.Thumbstick2
            }
        }),
        SuspendedCn = v4 and v6.createElement(v9, {
            event = v4.Suspended,
            callback = v40.onSuspended
        })
    });
end;
return v18;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_CorePackages_0.Packages.React);
local v3 = require(l_CorePackages_0.UIBlox);
local l_ButtonStack_0 = v3.App.Button.ButtonStack;
local l_ButtonType_0 = v3.App.Button.Enum.ButtonType;
local l_useDesignTokens_0 = require(l_CorePackages_0.Workspace.Packages.Style).useDesignTokens;
local l_useStyle_0 = v3.Core.Style.useStyle;
local v8 = require(l_Modules_0.Shell.GlobalSettings);
local v9 = require(l_Modules_0.Shell.LocalizedStrings);
local l_useLocalization_0 = require(l_CorePackages_0.Workspace.Packages.Localization).Hooks.useLocalization;
local l_useNavigation_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).Hooks.useNavigation;
local v12 = require(l_Modules_0.Shell.Components.Overscan.ControllerHint);
local v13 = require(script.Parent.Edges);
return function(v14)
    local v15 = v14.onUnmount or l_useNavigation_0().goBack;
    local v16 = l_useLocalization_0({
        accept = "CommonUI.Controls.Action.Accept",
        cancel = "CommonUI.Controls.Action.Cancel"
    });
    local v18 = l_useDesignTokens_0(function(v17)
        return {
            buttonHeight = v17.Global.Size_600,
            marginBetween = v17.Global.Space_150
        };
    end);
    local v19 = l_useStyle_0();
    local v20 = v2.useRef(nil);
    return v2.createElement("Frame", {
        Size = UDim2.new(1, 0, 1, 0),
        BorderSizePixel = 1,
        BackgroundTransparency = v14.BackgroundTransparency,
        BackgroundColor3 = Color3.new(0.011764705882352941, 0.011764705882352941, 0.011764705882352941)
    }, {
        v2.createElement("ImageLabel", {
            Size = UDim2.new(1, 0, 1, 0),
            BackgroundTransparency = 1,
            BackgroundColor3 = Color3.new(0.011764705882352941, 0.011764705882352941, 0.011764705882352941),
            BorderSizePixel = 1,
            Visible = v14.ImageVisible,
            Image = "rbxasset://textures/ui/Shell/ScreenAdjustment/Background.png"
        });
        Title = v2.createElement("TextLabel", {
            Position = UDim2.new(0, 230, 0, 205),
            BackgroundTransparency = 1,
            Font = v8.LightFont,
            FontSize = v8.HeaderSize,
            TextColor3 = v8.WhiteTextColor,
            TextXAlignment = Enum.TextXAlignment.Left,
            Text = v9:LocalizedString("ScreenSizeWord")
        }),
        Prompt = v2.createElement("TextLabel", {
            Position = UDim2.new(0, 230, 0, 243),
            BackgroundTransparency = 1,
            Font = v8.RegularFont,
            FontSize = v8.ButtonSize,
            TextColor3 = v8.WhiteTextColor,
            TextXAlignment = Enum.TextXAlignment.Left,
            Text = v9:LocalizedString("ResizeScreenPrompt")
        }),
        Controller = v2.createElement(v12),
        Actions = v2.createElement("Frame", {
            Size = UDim2.fromScale(0.4, 0),
            AnchorPoint = Vector2.new(0.5, 1),
            Position = UDim2.new(0.5, 0, 1, -201)
        }, {
            v2.createElement(l_ButtonStack_0, {
                buttonHeight = v18.buttonHeight,
                marginBetween = v18.marginBetween,
                forcedFillDirection = Enum.FillDirection.Horizontal,
                buttons = {
                    {
                        buttonType = l_ButtonType_0.Secondary,
                        props = {
                            text = v16.cancel,
                            fontStyle = v19.Font.Header1,
                            onActivated = v15
                        }
                    },
                    {
                        buttonType = l_ButtonType_0.PrimarySystem,
                        props = {
                            text = v16.accept,
                            fontStyle = v19.Font.Header1,
                            onActivated = function()
                                if v20.current then
                                    v20.current.onAccept();
                                end;
                            end
                        }
                    }
                }
            })
        }),
        EdgeSelector = v2.createElement(v13, {
            onSetEdges = v15,
            ref = v20
        })
    });
end;


local l_RunService_0 = game:GetService("RunService");
local v1 = require(game:GetService("CoreGui").RobloxGui.Modules.Common.Roact).Component:extend("RenderStep");
v1.render = function(_)
    return nil;
end;
v1.didMount = function(v3)
    l_RunService_0:BindToRenderStep(v3.props.name, v3.props.priority, v3.props.callback);
end;
v1.didUpdate = function(v4, v5)
    if not (v4.props.callback == v5.callback) or v4.props.name ~= v5.name then
        l_RunService_0:UnbindFromRenderStep(v5.name);
        l_RunService_0:BindToRenderStep(v4.props.name, v4.props.priority, v4.props.callback);
    end;
end;
v1.willUnmount = function(v6)
    l_RunService_0:UnbindFromRenderStep(v6.props.name);
end;
return v1;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(l_Modules_0.Common.Roact);
local v2 = require(l_Modules_0.Shell.ScreenManager);
local v3 = require(l_Modules_0.Shell.AppState);
local v4 = require(l_Modules_0.Common.RoactRodux);
local l_Analytics_0 = require(l_Modules_0:FindFirstChild("Shell"):FindFirstChild("Analytics"));
local v6 = {};
v6.__index = v6;
v6.new = function(v7, v8, v9, v10)
    local v11 = {};
    v9 = v9 or {};
    v9.onUnmount = function()
        if v11 == v2:GetTopScreen() then
            v2:CloseCurrent();
            if v10 then
                v10();
            end;
        end;
    end;
    local v12 = v1.createElement(v4.StoreProvider, {
        store = v3.store
    }, {
        v1.createElement(v7, v9)
    });
    v11._instance = nil;
    v11.Show = function(v13)
        v13._instance = v1.mount(v12, v8, (tostring(v7)));
    end;
    v11.Hide = function(v14)
        v14:Destruct();
    end;
    v11.Focus = function(_)
    end;
    v11.RemoveFocus = function(_)
    end;
    v11.GetAnalyticsInfo = function(_)
        return {
            [l_Analytics_0.WidgetNames("WidgetId")] = tostring(v7)
        };
    end;
    setmetatable(v11, v6);
    return v11;
end;
v6.Destruct = function(v18)
    v1.unmount(v18._instance);
end;
return v6;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(l_Modules_0.Common.Roact);
local v2 = require(l_Modules_0.Common.memoize);
local v3 = require(l_Modules_0.Common.RoactRodux);
local v4 = require(l_Modules_0.Shell.Components.Common.CategoryMenuView);
local v5 = require(l_Modules_0.Shell.Components.Common.SplitViewLR);
local v6 = require(l_Modules_0.Shell.Utility);
local v7 = require(l_Modules_0.Shell.SoundManager);
local v8 = require(l_Modules_0.Shell.LocalizedStrings);
local v9 = require(l_Modules_0.Shell.Components.Social.FriendsScrollingView);
local v10 = require(l_Modules_0.Shell.Components.Social.NoFriendsView);
local v11 = require(l_Modules_0.Shell.PageKeys);
local v12 = v1.PureComponent:extend("FriendsView");
local l_Key_0 = v11.FriendCategories.Key;
local v14 = {
    OnlineFriends = v11.FriendCategories.OnlineFriends.Key,
    AllFriends = v11.FriendCategories.AllFriends.Key
};
local v15 = {
    [v14.OnlineFriends] = {
        Order = 1,
        StringKey = "OnlineWord"
    },
    [v14.AllFriends] = {
        Order = 2,
        StringKey = "AllWord"
    }
};
local function _(v16, v17)
    if v16.state.currentPage ~= v17 then
        v16:setState({
            currentPage = v17,
            selectedPage = l_Key_0
        });
    end;
end;
v12.init = function(v19)
    v19.selectedPage = l_Key_0;
    v19.onSelectionGained = function(v20)
        local l_v19_0 = v19;
        if l_v19_0.state.currentPage ~= v20 then
            l_v19_0:setState({
                currentPage = v20,
                selectedPage = l_Key_0
            });
        end;
    end;
    v19.state = {
        currentPage = v14.OnlineFriends,
        selectedPage = l_Key_0
    };
    v19.enterSection = function()
        v7:Play("OverlayOpen");
        v6.SetSelectedCoreObject(nil);
        v19:setState({
            selectedPage = v19.state.currentPage
        });
    end;
    v19.exitSection = function()
        v7:Play("PopUp");
        v19:setState({
            selectedPage = l_Key_0
        });
    end;
end;
v12.render = function(v22)
    local v23 = v22.props.actionPriority or 0;
    local l_currentPage_0 = v22.state.currentPage;
    local l_inFocus_0 = v22.props.inFocus;
    local l_hide_0 = v22.props.hide;
    local v27 = false;
    local v28 = false;
    if not (l_hide_0 or not l_inFocus_0) then
        if v22.state.selectedPage == l_Key_0 then
            v27 = true;
        end;
        if v22.state.selectedPage ~= l_Key_0 then
            v28 = true;
        end;
    end;
    local l_enterSection_0 = v22.enterSection;
    if l_currentPage_0 == v11.FriendCategories.OnlineFriends.Key and #v22.props.onlineFriendsData == 0 then
        l_enterSection_0 = nil;
    elseif l_currentPage_0 == v11.FriendCategories.AllFriends.Key and #v22.props.allFriendsData == 0 then
        l_enterSection_0 = nil;
    end;
    return v1.createElement("Frame", {
        Size = UDim2.new(1, -58, 1, 0),
        Position = UDim2.new(0, 58, 0, 0),
        BackgroundTransparency = 1
    }, {
        Mainview = v1.createElement(v5, {
            Bias = 0.265,
            LeftView = v1.createElement(v4, {
                StringKey = l_Key_0,
                Categories = v15,
                InFocus = v27,
                DefaultCategoryFocus = v14.OnlineFriends,
                OnSelectSection = v22.onSelectionGained,
                EnterSection = l_enterSection_0,
                RedirectUp = v22.props.redirectUp,
                ActionPriority = v23
            }),
            RightView = v1.createElement("Frame", {
                Size = UDim2.new(1, 0, 1, 0),
                BackgroundTransparency = 1
            }, {
                OnlineFriendsView = v1.createElement(v9, {
                    friendsData = v22.props.onlineFriendsData,
                    initialized = v22.props.initialized,
                    hide = l_currentPage_0 ~= v11.FriendCategories.OnlineFriends.Key,
                    inFocus = v28,
                    redirectLeft = v22.exitSection,
                    redirectBack = v22.exitSection,
                    redirectUp = v22.props.redirectUp,
                    redirectRight = v22.props.redirectRight,
                    size = UDim2.new(0, 440, 0, 770),
                    noFriendsView = v1.createElement(v10, {
                        text = v8:LocalizedString("NoFriendsOnlinePhrase")
                    }),
                    actionPriority = v23 + 1
                }),
                AllFriendsView = v1.createElement(v9, {
                    friendsData = v22.props.allFriendsData,
                    initialized = v22.props.initialized,
                    hide = l_currentPage_0 ~= v11.FriendCategories.AllFriends.Key,
                    inFocus = v28,
                    redirectLeft = v22.exitSection,
                    redirectBack = v22.exitSection,
                    redirectUp = v22.props.redirectUp,
                    redirectRight = v22.props.redirectRight,
                    size = UDim2.new(0, 440, 0, 770),
                    noFriendsView = v1.createElement(v10, {
                        text = v8:LocalizedString("PlayAndMakeFriendsPhrase")
                    }),
                    actionPriority = v23 + 1
                })
            })
        })
    });
end;
local v34 = v2(function(v30)
    local v31 = {};
    for _, v33 in ipairs(v30) do
        if not (v33.robloxStatus == "Offline") or v33.xboxStatus == "Online" then
            table.insert(v31, v33);
        end;
    end;
    return v31;
end);
return v3.connect(function(v35, _)
    local l_data_0 = v35.RenderedFriends.data;
    return {
        allFriendsData = l_data_0,
        onlineFriendsData = v34(l_data_0),
        initialized = v35.RenderedFriends.initialized
    };
end)(v12);


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(l_Modules_0.Common.Roact);
local v2 = require(l_Modules_0.Shell.GlobalSettings);
return function(v3)
    return v1.createElement("Frame", {
        Size = UDim2.new(1, 0, 1, 0),
        BackgroundTransparency = 1
    }, {
        NoFriendsIcon = v1.createElement("ImageLabel", {
            Size = UDim2.new(0, 296, 0, 259),
            Position = UDim2.new(0.5, -148, 0, 100),
            BackgroundTransparency = 1,
            Image = "rbxasset://textures/ui/Shell/Icons/FriendsIcon@1080.png"
        }),
        NoFriendsText = v1.createElement("TextLabel", {
            Size = UDim2.new(0, 440, 0, 72),
            Position = UDim2.new(0.5, -220, 0, 392),
            BackgroundTransparency = 1,
            Font = v2.RegularFont,
            FontSize = v2.ButtonSize,
            TextColor3 = v2.WhiteTextColor,
            Text = v3.text,
            TextYAlignment = Enum.TextYAlignment.Top,
            TextWrapped = true
        })
    });
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(l_Modules_0.Common.Roact);
local v2 = require(l_Modules_0.Shell.GlobalSettings);
local v3 = require(l_Modules_0.Shell.Components.Common.UserThumbnailLoader);
local v4 = require(l_Modules_0.Shell.LocalizedStrings);
local v5 = require(l_Modules_0.Shell.Utility);
local v6 = require(l_Modules_0.Shell.Components.Common.SoundComponent);
local v7 = v1.PureComponent:extend("PresenceCard");
v7.init = function(v8)
    v8.selectionImageObject = v5.Create("ImageLabel")({
        Name = "SelectorImage",
        Image = v2.Images.ButtonSelector,
        Position = UDim2.new(0, -7, 0, -7),
        Size = UDim2.new(1, 14, 1, 14),
        BackgroundTransparency = 1,
        ScaleType = Enum.ScaleType.Slice,
        SliceCenter = Rect.new(31, 31, 63, 63)
    });
    v8.onCreate = function(v9)
        v8.ref = v9;
    end;
    v8.defaultProps = {
        buttonColor3 = v2.Colors.WhiteButton,
        buttonTransparency = 0.8,
        textColor3 = v2.Colors.WhiteText,
        iconColor3 = v2.Colors.WhiteText
    };
    v8.focusedProps = {
        buttonColor3 = v2.Colors.BlueButton,
        buttonTransparency = 0,
        textColor3 = v2.Colors.BlackText,
        iconColor3 = v2.Colors.BlackText
    };
    v8.buttonImage = v2.Images.ButtonDefault;
end;
v7.render = function(v10)
    local l_props_0 = v10.props;
    local v12 = not not v10.props.focused and v10.focusedProps or v10.defaultProps;
    local v13 = l_props_0.gamertag or "";
    local v14 = l_props_0.robloxName or "";
    local v15 = v13 ~= "";
    local v16 = v14 ~= "";
    local v17 = "";
    local l_GreySelectedButton_0 = v2.Colors.GreySelectedButton;
    local function _(v19, v20)
        l_GreySelectedButton_0 = v20;
        if v19 and v19 ~= "" then
            v17 = v19;
        end;
    end;
    if l_props_0.robloxStatus == "InGame" then
        local l_lastLocation_0 = l_props_0.lastLocation;
        l_GreySelectedButton_0 = v2.Colors.GreenText;
        if l_lastLocation_0 and l_lastLocation_0 ~= "" then
            v17 = l_lastLocation_0;
        end;
    elseif l_props_0.robloxStatus == "InStudio" then
        local l_lastLocation_1 = l_props_0.lastLocation;
        l_GreySelectedButton_0 = v2.Colors.OrangeText;
        if l_lastLocation_1 and l_lastLocation_1 ~= "" then
            v17 = l_lastLocation_1;
        end;
    elseif l_props_0.robloxStatus == "Online" then
        l_GreySelectedButton_0 = v2.Colors.BlueText;
        v17 = "Roblox";
    elseif l_props_0.xboxStatus and l_props_0.xboxStatus == "Online" then
        local v24 = v4:LocalizedString("OnlineWord");
        l_GreySelectedButton_0 = v2.Colors.BlueText;
        if v24 and v24 ~= "" then
            v17 = v24;
        end;
    else
        local v25 = v4:LocalizedString("OfflineWord");
        l_GreySelectedButton_0 = v2.Colors.GreyText;
        if v25 and v25 ~= "" then
            v17 = v25;
        end;
    end;
    return v1.createElement("ImageButton", {
        Image = v10.buttonImage,
        Position = UDim2.new(0.5, 0, 0.5, 0),
        AnchorPoint = Vector2.new(0.5, 0.5),
        LayoutOrder = l_props_0.layoutOrder,
        Size = l_props_0.size or UDim2.new(0, 440, 0, 120),
        ImageColor3 = v12.buttonColor3,
        ImageTransparency = v12.buttonTransparency,
        ScaleType = Enum.ScaleType.Slice,
        SliceCenter = Rect.new(8, 8, 9, 9),
        SelectionImageObject = v10.selectionImageObject,
        BackgroundTransparency = 1,
        [v1.Event.SelectionGained] = l_props_0.onSelectionGained,
        [v1.Event.SelectionLost] = l_props_0.onSelectionLost,
        [v1.Event.Activated] = l_props_0.onActivated,
        [v1.Ref] = v10.onCreate
    }, {
        MoveSelection = v1.createElement(v6, {
            SoundName = "MoveSelection"
        }),
        AvatarImage = v1.createElement(v3, {
            rbxuid = l_props_0.robloxuid,
            thumbnailType = Enum.ThumbnailType.HeadShot,
            thumbnailSize = Enum.ThumbnailSize.Size100x100,
            position = UDim2.new(0, 10, 0, 10),
            size = UDim2.new(0, 100, 0, 100)
        }),
        ContentContainer = v1.createElement("Frame", {
            Size = UDim2.new(1, -140, 1, 0),
            Position = UDim2.new(0, 126, 0, 0),
            BackgroundTransparency = 1,
            ClipsDescendants = true
        }, {
            UIPadding = v1.createElement("UIPadding", {
                PaddingTop = UDim.new(0, 10),
                PaddingBottom = UDim.new(0, 10)
            }),
            UIListLayout = v1.createElement("UIListLayout", {
                Padding = UDim.new(0, 7),
                SortOrder = Enum.SortOrder.LayoutOrder,
                HorizontalAlignment = Enum.HorizontalAlignment.Left,
                VerticalAlignment = Enum.VerticalAlignment.Center
            }),
            GamertagContainer = v15 and v1.createElement("Frame", {
                Size = UDim2.new(1, 0, 0, 30),
                LayoutOrder = 1,
                BackgroundTransparency = 1
            }, {
                GamertagLabel = v1.createElement("TextLabel", {
                    Text = v13,
                    Size = UDim2.new(1, 0, 1, 0),
                    Position = UDim2.new(0, 0, 0, 0),
                    TextXAlignment = Enum.TextXAlignment.Left,
                    TextColor3 = v12.textColor3,
                    Font = v2.Fonts.Regular,
                    TextSize = 30,
                    TextScaled = true,
                    BackgroundTransparency = 1
                })
            }),
            RobloxNameContainer = v16 and v1.createElement("Frame", {
                Size = UDim2.new(1, 0, 0, 30),
                LayoutOrder = 2,
                BackgroundTransparency = 1
            }, {
                RobloxIcon = v1.createElement("ImageLabel", {
                    BackgroundTransparency = 1,
                    Image = v2.Images.RobloxIcon,
                    ImageColor3 = v12.iconColor3,
                    Position = UDim2.new(0, 0, 0, 1),
                    Size = UDim2.new(0, 28, 0, 28)
                }),
                RobloxNameLabel = v1.createElement("TextLabel", {
                    Text = v14,
                    Size = UDim2.new(1, -38, 1, 0),
                    Position = UDim2.new(0, 38, 0, 0),
                    TextXAlignment = Enum.TextXAlignment.Left,
                    TextColor3 = v12.textColor3,
                    Font = v2.Fonts.Regular,
                    TextSize = 30,
                    TextScaled = true,
                    BackgroundTransparency = 1
                })
            }),
            StatusContainer = v1.createElement("Frame", {
                Size = UDim2.new(1, 0, 0, 26),
                LayoutOrder = 3,
                BackgroundTransparency = 1
            }, {
                PresenceStatusImage = v1.createElement("ImageLabel", {
                    BackgroundTransparency = 1,
                    Image = v2.Images.OnlineStatusIcon,
                    Size = UDim2.new(0, 18, 0, 18),
                    Position = UDim2.new(0, 5, 0, 4),
                    ImageColor3 = l_GreySelectedButton_0
                }),
                PresenceLabel = v1.createElement("TextLabel", {
                    Text = v17,
                    Size = UDim2.new(1, -38, 1, 0),
                    Position = UDim2.new(0, 33, 0, 0),
                    TextXAlignment = Enum.TextXAlignment.Left,
                    TextColor3 = v12.textColor3,
                    Font = v2.Fonts.Regular,
                    TextSize = 26,
                    BackgroundTransparency = 1
                })
            })
        })
    });
end;
v7.didMount = function(v26)
    delay(0, function()
        if v26.props.selected then
            v5.SetSelectedCoreObject(v26.ref);
        end;
    end);
end;
v7.didUpdate = function(v27, v28, _)
    if not (v28.selected or not v27.props.selected) then
        v5.SetSelectedCoreObject(v27.ref);
    end;
end;
return v7;


local l_GuiService_0 = game:GetService("GuiService");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_Shell_0 = l_Modules_0:FindFirstChild("Shell");
local v3 = require(l_Modules_0.Common.Roact);
local v4 = require(l_Modules_0.Common.RoactRodux);
local l_LocalizedStrings_0 = require(l_Shell_0:FindFirstChild("LocalizedStrings"));
local v6 = require(l_Shell_0.ScreenManager);
local v7 = require(l_Shell_0.AppState);
local l_Analytics_0 = require(l_Shell_0:FindFirstChild("Analytics"));
local l_Utility_0 = require(l_Shell_0:FindFirstChild("Utility"));
local v10 = require(l_Shell_0.Components.Social.FriendsView);
local v11 = require(l_Shell_0.FriendsData);
local v12 = require(l_Shell_0.Flags.GetFIntXboxPrimaryNavABLogging);
local v13 = require(l_Shell_0.Flags.GetFFlagXboxFixPrimaryNavABEvents);
return function(v14)
    local v15 = {};
    local v16 = false;
    local l_TabContainer_0 = v14.Parent:FindFirstChild("TabContainer");
    local v18 = l_Utility_0.Create("Frame")({
        Name = "SocialPane",
        Size = UDim2.new(1, 0, 1, 0),
        BackgroundTransparency = 1,
        Visible = false,
        SelectionImageObject = l_Utility_0.Create("ImageLabel")({
            BackgroundTransparency = 1
        }),
        Parent = v14
    });
    local v19 = l_Utility_0.Create("Frame")({
        Name = "FriendsContainer",
        Size = UDim2.new(1, 0, 1, 0),
        Position = UDim2.new(0, 0, 0, 23),
        BackgroundTransparency = 1,
        Parent = v18
    });
    local v20 = nil;
    local function v21()
        if v20 then
            v20 = v3.update(v20, (v3.createElement(v4.StoreProvider, {
                store = v7.store
            }, {
                FriendsView = v3.createElement(v10, {
                    inFocus = v16,
                    hide = not v18.Visible,
                    redirectUp = function()
                        l_Utility_0.SetSelectedCoreObject(l_TabContainer_0);
                    end
                })
            })));
            return ;
        else
            return ;
        end;
    end;
    v15.GetName = function(_)
        return l_LocalizedStrings_0:LocalizedString("FriendsWord");
    end;
    v15.GetId = function(_)
        return l_Analytics_0.TabNames("FriendsId");
    end;
    v15.IsFocused = function(_)
        return v16;
    end;
    v15.GetAnalyticsInfo = function(_)
        return {
            [l_Analytics_0.WidgetNames("WidgetId")] = l_Analytics_0.WidgetNames("SocialPaneId")
        };
    end;
    v15.Show = function(_, v27)
        v18.Visible = true;
        v11:SuspendUpdate();
        if not v27 then
            v21();
        else
            if v20 then
                v3.unmount(v20);
            end;
            v20 = v3.mount(v3.createElement(v4.StoreProvider, {
                store = v7.store
            }, {
                FriendsView = v3.createElement(v10, {
                    hide = not v18.Visible,
                    inFocus = v16,
                    redirectUp = function()
                        l_Utility_0.SetSelectedCoreObject(l_TabContainer_0);
                    end
                })
            }), v19, "FriendsViewContainer");
        end;
        v6:PlayDefaultOpenSound();
        if v12() > 0 then
            if not v13() then
                l_Analytics_0.reportNavigationLoaded(v15:GetName());
            else
                l_Analytics_0.reportNavigationLoaded(l_Analytics_0.TabNames("FriendsId"));
                return ;
            end;
        end;
    end;
    v15.Hide = function(_, v29)
        v18.Visible = false;
        if not v29 then
            v21();
            return ;
        else
            if v20 then
                v3.unmount(v20);
            end;
            v20 = nil;
            v11:ResumeUpdate();
            return ;
        end;
    end;
    v15.Focus = function(_)
        v16 = true;
        v21();
    end;
    v15.RemoveFocus = function(_)
        v16 = false;
        v21();
        local l_SelectedCoreObject_0 = l_GuiService_0.SelectedCoreObject;
        if not (not l_SelectedCoreObject_0 or not l_SelectedCoreObject_0:IsDescendantOf(v18)) then
            l_Utility_0.SetSelectedCoreObject(nil);
        end;
    end;
    v15.SetPosition = function(_, v34)
        v18.Position = v34;
    end;
    v15.SetParent = function(_, v36)
        v18.Parent = v36;
    end;
    v15.IsAncestorOf = function(_, v38)
        return v18 and v18:IsAncestorOf(v38);
    end;
    return v15;
end;


local l_Shell_0 = game:GetService("CoreGui"):FindFirstChild("RobloxGui"):FindFirstChild("Modules"):FindFirstChild("Shell");
local l_ContextActionService_0 = game:GetService("ContextActionService");
local l_GuiService_0 = game:GetService("GuiService");
local l_UserData_0 = require(l_Shell_0:FindFirstChild("UserData"));
local l_AssetManager_0 = require(l_Shell_0:FindFirstChild("AssetManager"));
local l_GlobalSettings_0 = require(l_Shell_0:FindFirstChild("GlobalSettings"));
local l_Utility_0 = require(l_Shell_0:FindFirstChild("Utility"));
local l_LocalizedStrings_0 = require(l_Shell_0:FindFirstChild("LocalizedStrings"));
local l_ScreenManager_0 = require(l_Shell_0:FindFirstChild("ScreenManager"));
local l_SoundManager_0 = require(l_Shell_0:FindFirstChild("SoundManager"));
local l_CurrencyWidget_0 = require(l_Shell_0:FindFirstChild("CurrencyWidget"));
local l_Analytics_0 = require(l_Shell_0:FindFirstChild("Analytics"));
local v12 = Vector2.new(0, 225);
local v13 = Vector2.new(0, -50);
local v14 = Vector2.new(0, -100);
local v15 = Vector2.new(0, -10);
return function(v16, v17)
    local v18 = {};
    v17 = v17 or {};
    local v19 = nil;
    local v20 = false;
    local v21 = nil;
    local v22 = l_Utility_0.Signal();
    local v23 = {};
    local l_ProductName_0 = v16.ProductName;
    local v25 = l_Utility_0.Create("Frame")({
        Name = "ConfirmPrompt",
        Size = UDim2.new(1, 0, 1, 0),
        BackgroundTransparency = 1,
        BackgroundColor3 = l_GlobalSettings_0.ModalBackgroundColor,
        BorderSizePixel = 0
    });
    local v26 = l_Utility_0.Create("Frame")({
        Name = "ContentContainer",
        Size = UDim2.new(1, 0, 0.6388888888888888, 0),
        Position = UDim2.new(v12.x / 1920, 0, v12.y / 1080, 0),
        BackgroundTransparency = 0,
        BackgroundColor3 = l_GlobalSettings_0.OverlayColor,
        BorderSizePixel = 0,
        Parent = v25
    });
    local v27 = l_Utility_0.Create("Frame")({
        Name = "PackageBackgroundContainer",
        Size = UDim2.new(0.7435897435897436, 0, 0.927536231884058, 0),
        AnchorPoint = Vector2.new(0.5, 0.5),
        Position = UDim2.new(0.5, 0, 0.5, 0),
        BackgroundTransparency = 1,
        Parent = l_Utility_0.Create("Frame")({
            Name = "PackageContainer",
            Size = UDim2.new(0.40625, 0, 1, 0),
            Position = UDim2.new(0, 0, 0, 0),
            BackgroundTransparency = 1,
            BorderSizePixel = 0,
            Parent = v26
        });
        l_AssetManager_0.CreateShadow(1)
    });
    local v28 = l_Utility_0.Create("Frame")({
        Name = "PackageBackground",
        Size = UDim2.new(1, 0, 1, 0),
        BackgroundTransparency = 0,
        BackgroundColor3 = l_GlobalSettings_0.ForegroundGreyColor,
        BorderSizePixel = 0,
        ZIndex = 2,
        Parent = v27
    });
    local v29 = l_Utility_0.Create("ImageLabel")({
        Name = "PackageImage",
        Size = UDim2.new(1, 0, 1, 0),
        Image = "",
        BackgroundTransparency = 1,
        ZIndex = v28.ZIndex,
        Parent = v28
    });
    if not v16 or not v16.ProductImage then
        v27.Visible = false;
    else
        v29.Image = v16.ProductImage;
    end;
    local v30 = l_Utility_0.Create("Frame")({
        Name = "DetailsContainer",
        Size = UDim2.new(0.59375, 0, 1, 0),
        Position = UDim2.new(0.40625, 0, 0, 0),
        BackgroundTransparency = 1,
        BorderSizePixel = 0,
        Parent = v26
    });
    local _ = l_Utility_0.Create("TextLabel")({
        Name = "ConfirmTitle",
        Text = l_LocalizedStrings_0:LocalizedString("ConfirmPurchaseTitle"),
        Position = UDim2.new(0, 0, 0, 66),
        Size = UDim2.new(1, 0, 0, 25),
        TextXAlignment = "Left",
        TextColor3 = l_GlobalSettings_0.WhiteTextColor,
        Font = l_GlobalSettings_0.HeadingFont,
        FontSize = l_GlobalSettings_0.HeaderSize,
        BackgroundTransparency = 1,
        Parent = v30
    });
    local v32 = "";
    if v16.Cost then
        v32 = if type(v16.Cost) == "string" then v16.Cost else (v16.CurrencySymbol or "") .. l_Utility_0.FormatNumberString(v16.Cost);
    end;
    local v33 = v16.Currency == "Robux";
    local v34 = l_Utility_0.Create("ImageLabel")({
        Name = "RobuxIcon",
        Position = UDim2.new(0, 0, 0, 125),
        Size = UDim2.new(0, v17.ShowRobuxIcon == true and 50 or 0, 0, 50),
        BackgroundTransparency = 1,
        Parent = v30
    });
    if v33 then
        v34.Image = "rbxasset://textures/ui/common/robux_small@3x.png";
        v34.Size = UDim2.new(0, 48, 0, 48);
    end;
    local v35 = l_Utility_0.Create("TextLabel")({
        Name = "PackageCost",
        Text = v32,
        Size = UDim2.new(0, 0, 1, 0),
        Position = not not v33 and UDim2.new(0, 56, 0, -2) or UDim2.new(1.3, 0, 0, 0),
        TextXAlignment = "Left",
        TextColor3 = l_GlobalSettings_0.WhiteTextColor,
        Font = l_GlobalSettings_0.RegularFont,
        FontSize = l_GlobalSettings_0.HeaderSize,
        BackgroundTransparency = 1,
        Parent = v34
    });
    if not (not v16 or not v16.Cost) and v16.Cost == 0 then
        v35.Text = l_LocalizedStrings_0:LocalizedString("FreeWord");
    end;
    local _ = nil;
    local _ = l_Utility_0.Create("TextLabel")({
        Name = "ConfirmItemDetail",
        Text = if not not v16.Cost and v16.Cost == 0 then string.format(l_LocalizedStrings_0:LocalizedString("AreYouSureTakePhrase"), (tostring(l_ProductName_0))) else if v17.ConfirmWithPrice then string.format(l_LocalizedStrings_0:LocalizedString("AreYouSureWithPricePhrase"), tostring(l_ProductName_0), (tostring(v32))) else string.format(l_LocalizedStrings_0:LocalizedString("AreYouSurePhrase"), (tostring(l_ProductName_0))),
        Position = UDim2.new(0, 0, 0, 205),
        Size = UDim2.new(1, 0, 0, 25),
        TextXAlignment = "Left",
        TextColor3 = l_GlobalSettings_0.WhiteTextColor,
        Font = l_GlobalSettings_0.LightFont,
        FontSize = l_GlobalSettings_0.TitleSize,
        BackgroundTransparency = 1,
        Parent = v30
    });
    local v38 = l_Utility_0.Create("TextLabel")({
        Name = "RemaningBalance",
        Text = "",
        Position = UDim2.new(0, 0, 0, 285),
        Size = UDim2.new(1, 0, 0, 25),
        TextXAlignment = "Left",
        TextColor3 = l_GlobalSettings_0.WhiteTextColor,
        Font = l_GlobalSettings_0.LightFont,
        FontSize = l_GlobalSettings_0.TitleSize,
        BackgroundTransparency = 1,
        Visible = v17.ShowRemainingBalance == true,
        Parent = v30
    });
    local l_v13_0 = v13;
    if v33 == false then
        l_v13_0 = v14;
        local _ = l_Utility_0.Create("TextLabel")({
            Name = "LegalText",
            Text = l_LocalizedStrings_0:LocalizedString("LegalText"),
            Size = UDim2.new(0.9, 0, 0, 80),
            TextColor3 = l_GlobalSettings_0.WhiteTextColor,
            Font = l_GlobalSettings_0.RegularFont,
            FontSize = Enum.FontSize.Size18,
            BackgroundTransparency = 1,
            Parent = v30,
            AnchorPoint = Vector2.new(0, 1),
            Position = UDim2.new(0, 0, 1 + v15.Y / 690, 0),
            TextWrapped = true,
            TextXAlignment = Enum.TextXAlignment.Left
        });
    end;
    local v41 = l_Utility_0.Create("ImageButton")({
        Name = "ConfirmButton",
        Size = UDim2.new(0, 320, 0, 64),
        BorderSizePixel = 0,
        BackgroundColor3 = l_GlobalSettings_0.BlueButtonColor,
        BackgroundTransparency = 0,
        Parent = v30,
        AnchorPoint = Vector2.new(0, 1),
        Position = UDim2.new(0, 0, 1 + l_v13_0.Y / 690, 0)
    });
    l_Utility_0.ResizeButtonWithText(v41, l_Utility_0.Create("TextLabel")({
        Name = "ConfirmText",
        Text = l_LocalizedStrings_0:LocalizedString("ConfirmWord"),
        Size = UDim2.new(1, 0, 1, 0),
        TextColor3 = l_GlobalSettings_0.TextSelectedColor,
        Font = l_GlobalSettings_0.HeadingFont,
        FontSize = l_GlobalSettings_0.ButtonSize,
        BackgroundTransparency = 1,
        Parent = v41
    }), l_GlobalSettings_0.TextHorizontalPadding);
    local function v43(v42)
        v21 = v42;
        while #v23 > 0 do
            table.remove(v23, #v23)(v21);
        end;
    end;
    local function _()
        if v18 == l_ScreenManager_0:GetTopScreen() then
            v43(false);
            l_ScreenManager_0:CloseCurrent();
        end;
    end;
    local function _()
        if v18 == l_ScreenManager_0:GetTopScreen() then
            v43(true);
            l_ScreenManager_0:CloseCurrent();
        end;
    end;
    v18.ResultAsync = function(_)
        if not v21 then
            v22:wait();
            return v21;
        else
            return v21;
        end;
    end;
    v18.AddResultCallback = function(_, v48)
        if v21 ~= nil then
            v48(v21);
            return ;
        else
            table.insert(v23, v48);
            return ;
        end;
    end;
    v18.FadeInBackground = function(_)
        l_Utility_0.PropertyTweener(v25, "BackgroundTransparency", 1, l_GlobalSettings_0.ModalBackgroundTransparency, 0.25, l_Utility_0.EaseInOutQuad, true);
    end;
    v18.GetDefaultSelectableObject = function(_)
        return v41;
    end;
    v18.GetPriority = function(_)
        return l_GlobalSettings_0.OverlayPriority;
    end;
    local v52 = nil;
    local v53 = nil;
    v18.Show = function(v54)
        v25.Visible = true;
        v25.Parent = l_ScreenManager_0:GetScreenGuiByPriority(v54:GetPriority());
        if v54.BackgroundTween then
            v54.BackgroundTween:Cancel();
        end;
        v54.BackgroundTween = l_Utility_0.PropertyTweener(v25, "BackgroundTransparency", 1, l_GlobalSettings_0.ModalBackgroundTransparency, 0, l_Utility_0.EaseInOutQuad, nil);
        l_SoundManager_0:Play("OverlayOpen");
        local function v56()
            local v55 = Vector2.new(420, 420);
            if v16.ProductImageSize then
                v55 = v16.ProductImageSize;
            end;
            v29.Size = l_Utility_0.CalculateFill(v28, v55);
            v29.AnchorPoint = Vector2.new(0.5, 0.5);
            v29.Position = UDim2.new(0.5, 0, 0.5, 0);
        end;
        v54.PackageBackgroundChangedConn = l_Utility_0.DisconnectEvent(v54.PackageBackgroundChangedConn);
        v54.PackageBackgroundChangedConn = v28:GetPropertyChangedSignal("AbsoluteSize"):connect(function()
            v56();
        end);
        v56();
        local function v58(v57)
            if not (((not v17.ShowRemainingBalance or not v57) or not v16) or not v16.Cost) then
                if v16.Cost and v16.Cost > 0 then
                    v38.Text = string.format(l_LocalizedStrings_0:LocalizedString("RemainingBalancePhrase"), l_Utility_0.FormatNumberString((tostring((v57 and v16.Cost) and v57 - v16.Cost))));
                    return ;
                else
                    v38.Text = "";
                end;
            end;
        end;
        if not v16.Balance then
            spawn(function()
                v58((l_UserData_0.GetTotalUserBalanceAsync()));
            end);
        else
            v58(v16.Balance);
        end;
        if not v52 then
            v52 = l_CurrencyWidget_0({
                Parent = v25,
                Position = UDim2.new(0.052, 0, 0.88, 0)
            });
        end;
        l_Utility_0.DisconnectEvent(v53);
        v53 = v52.RobuxChanged:connect(v58);
    end;
    v18.Hide = function(v59)
        v25.Visible = false;
        v25.Parent = nil;
        if v59.BackgroundTween then
            v59.BackgroundTween:Cancel();
        end;
        v59.BackgroundTween = nil;
        v59.PackageBackgroundChangedConn = l_Utility_0.DisconnectEvent(v59.PackageBackgroundChangedConn);
        v53 = l_Utility_0.DisconnectEvent(v53);
    end;
    v18.ScreenRemoved = function(_)
        if v52 then
            v52:Destroy();
            v52 = nil;
        end;
        if v21 == nil then
            v43(false);
        end;
        v22:fire(v21);
    end;
    v18.GetAnalyticsInfo = function(_)
        return {
            [l_Analytics_0.WidgetNames("WidgetId")] = l_Analytics_0.WidgetNames("ConfirmPromptId"),
            ProductName = v16.ProductName,
            ProductId = v16.ProductId
        };
    end;
    v18.Focus = function(v62)
        v20 = true;
        l_ContextActionService_0:BindCoreAction("ReturnFromCurrentConfirmScreen", function(_, v64, _)
            if v64 == Enum.UserInputState.End and v18 == l_ScreenManager_0:GetTopScreen() then
                v43(false);
                l_ScreenManager_0:CloseCurrent();
            end;
        end, false, Enum.KeyCode.ButtonB);
        local v66 = false;
        v62.ConfirmButtonConn = l_Utility_0.DisconnectEvent(v62.ConfirmButtonConn);
        v62.ConfirmButtonConn = v41.MouseButton1Click:connect(function()
            if not v66 then
                v66 = true;
                l_SoundManager_0:Play("ButtonPress");
                if v18 == l_ScreenManager_0:GetTopScreen() then
                    v43(true);
                    l_ScreenManager_0:CloseCurrent();
                end;
                v66 = false;
                return ;
            else
                return ;
            end;
        end);
        l_GuiService_0:AddSelectionParent("ConfirmOptionsSelectionGroup", v26);
        if v20 and l_GuiService_0.SelectedCoreObject == nil then
            l_Utility_0.SetSelectedCoreObject(v62:GetDefaultSelectableObject());
        end;
    end;
    v18.RemoveFocus = function(v67)
        l_ContextActionService_0:UnbindCoreAction("ReturnFromCurrentConfirmScreen");
        l_GuiService_0:RemoveSelectionGroup("ConfirmOptionsSelectionGroup");
        v67.ConfirmButtonConn = l_Utility_0.DisconnectEvent(v67.ConfirmButtonConn);
        l_Utility_0.SetSelectedCoreObject(nil);
        v20 = false;
    end;
    v18.SetParent = function(_, v69)
        v19 = v69;
        v25.Parent = v19;
    end;
    return v18;
end;


local l_Shell_0 = game:GetService("CoreGui"):FindFirstChild("RobloxGui"):FindFirstChild("Modules"):FindFirstChild("Shell");
local v1 = require(l_Shell_0.Http);
local v2 = require(l_Shell_0.Utility);
game:DefineFastInt("XboxCrossDeviceLoginPollDelay", 6);
return function()
    local v3 = {};
    local l_game_FastInt_0 = game:GetFastInt("XboxCrossDeviceLoginPollDelay");
    v3.CrossDeviceLoginStatus = {
        Created = "Created",
        UserLinked = "UserLinked",
        Validated = "Validated",
        Expired = "Expired",
        Cancelled = "Cancelled"
    };
    local v5 = "";
    local v6 = "";
    local v7 = nil;
    local l_Cancelled_0 = v3.CrossDeviceLoginStatus.Cancelled;
    local v9 = "";
    v3.CrossDeviceLoginStatusChanged = v2.Signal();
    local function _()
        return v7.UnixTimestamp < DateTime.now().UnixTimestamp;
    end;
    local function _()
        spawn(function()
            while true do
                if not (v7.UnixTimestamp < DateTime.now().UnixTimestamp) then
                    if l_Cancelled_0 == v3.CrossDeviceLoginStatus.Cancelled then
                        v3.CrossDeviceLoginStatusChanged:fire(l_Cancelled_0);
                        return ;
                    else
                        local v11 = v1.CheckCrossDeviceLoginStatus(v5, v6);
                        l_Cancelled_0 = v3.CrossDeviceLoginStatus[v11.status];
                        v9 = v11.accountName;
                        v3.CrossDeviceLoginStatusChanged:fire(l_Cancelled_0);
                        if l_Cancelled_0 ~= v3.CrossDeviceLoginStatus.Validated then
                            wait(l_game_FastInt_0);
                        else
                            return ;
                        end;
                    end;
                else
                    l_Cancelled_0 = v3.CrossDeviceLoginStatus.Expired;
                    v3.CrossDeviceLoginStatusChanged:fire(l_Cancelled_0);
                    return ;
                end;
            end;
        end);
    end;
    v3.StartCrossDeviceLogin = function(_)
        local v14 = v1.CreateCrossDeviceLoginCode();
        if v14 then
            v5 = v14.code;
            v6 = v14.privateKey;
            v7 = DateTime.fromIsoDate(v14.expirationTime);
            l_Cancelled_0 = v3.CrossDeviceLoginStatus.Created;
            v3.CrossDeviceLoginStatusChanged:fire(l_Cancelled_0);
            spawn(function()
                while true do
                    if not (v7.UnixTimestamp < DateTime.now().UnixTimestamp) then
                        if l_Cancelled_0 == v3.CrossDeviceLoginStatus.Cancelled then
                            v3.CrossDeviceLoginStatusChanged:fire(l_Cancelled_0);
                            return ;
                        else
                            local v15 = v1.CheckCrossDeviceLoginStatus(v5, v6);
                            l_Cancelled_0 = v3.CrossDeviceLoginStatus[v15.status];
                            v9 = v15.accountName;
                            v3.CrossDeviceLoginStatusChanged:fire(l_Cancelled_0);
                            if l_Cancelled_0 ~= v3.CrossDeviceLoginStatus.Validated then
                                wait(l_game_FastInt_0);
                            else
                                return ;
                            end;
                        end;
                    else
                        l_Cancelled_0 = v3.CrossDeviceLoginStatus.Expired;
                        v3.CrossDeviceLoginStatusChanged:fire(l_Cancelled_0);
                        return ;
                    end;
                end;
            end);
            return ;
        else
            l_Cancelled_0 = v3.CrossDeviceLoginStatus.Cancelled;
            v3.CrossDeviceLoginStatusChanged:fire(l_Cancelled_0);
            return ;
        end;
    end;
    v3.GetCode = function(_)
        return v5;
    end;
    v3.GetPrivateKey = function(_)
        return v6;
    end;
    v3.GetAccountName = function(_)
        return v9;
    end;
    v3.CancelCrossDeviceLogin = function(_)
        l_Cancelled_0 = v3.CrossDeviceLoginStatus.Cancelled;
        spawn(function()
            v1.CancelCrossDeviceLogin(v5);
        end);
    end;
    return v3;
end;