local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Packages.Roact);
local l_ContextServices_0 = require(l_Parent_0.Packages.Framework).ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local v4 = require(l_Parent_0.Src.Components.AutoThumbnails.AutoThumbnail);
local v5 = v1.Component:extend(script.Name);
v5.getThumbnail = function(v6, v7, v8)
    local l_Stylizer_0 = v6.props.Stylizer;
    if v8 == Enum.AssetFetchStatus.Success then
        return v7;
    elseif v8 == Enum.AssetFetchStatus.Failure then
        return l_Stylizer_0.badgeIconThumbnail.loadFailureImage;
    else
        return l_Stylizer_0.badgeIconThumbnail.loadingImage;
    end;
end;
v5.render = function(v10)
    local l_props_0 = v10.props;
    local l_Id_0 = l_props_0.Id;
    assert(type(l_Id_0) == "number");
    return v1.createElement("Frame", {
        BackgroundTransparency = 1,
        Size = not not l_props_0.Size and l_props_0.Size or UDim2.fromScale(1, 1),
        Position = l_props_0.Position,
        AnchorPoint = l_props_0.AnchorPoint,
        LayoutOrder = l_props_0.LayoutOrder,
        ZIndex = l_props_0.ZIndex
    }, {
        AutoThumbnail = v1.createElement(v4, {
            Id = l_Id_0,
            ThumbnailType = "BadgeIcon",
            UseAssetThumbnailUrl = true,
            RenderContents = function(v13, v14)
                return v1.createElement("ImageLabel", {
                    Size = UDim2.fromScale(1, 1),
                    BackgroundTransparency = 1,
                    Image = v10:getThumbnail(v13, v14)
                });
            end
        })
    });
end;
return (l_withContext_0({
    Stylizer = l_ContextServices_0.Stylizer
})(v5));


local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Packages.Roact);
local l_ContextServices_0 = require(l_Parent_0.Packages.Framework).ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local v4 = require(l_Parent_0.Src.Components.AutoThumbnails.AutoThumbnail);
local v5 = v1.Component:extend(script.Name);
v5.getThumbnail = function(v6, v7, v8)
    local l_Stylizer_0 = v6.props.Stylizer;
    if v8 == Enum.AssetFetchStatus.Success then
        return v7;
    elseif v8 == Enum.AssetFetchStatus.Failure then
        return l_Stylizer_0.groupThumbnail.loadFailureImage;
    else
        return l_Stylizer_0.groupThumbnail.loadingImage;
    end;
end;
v5.render = function(v10)
    local l_props_0 = v10.props;
    return v1.createElement("Frame", {
        BackgroundTransparency = 1,
        Size = l_props_0.Size,
        Position = l_props_0.Position,
        AnchorPoint = l_props_0.AnchorPoint,
        LayoutOrder = l_props_0.LayoutOrder,
        ZIndex = l_props_0.ZIndex
    }, {
        AutoThumbnail = v1.createElement(v4, {
            Id = l_props_0.Id,
            ThumbnailType = "GroupIcon",
            RenderContents = function(v12, v13)
                return v1.createElement("ImageLabel", {
                    Size = UDim2.fromScale(1, 1),
                    BackgroundTransparency = 1,
                    Image = v10:getThumbnail(v12, v13)
                });
            end
        })
    });
end;
return (l_withContext_0({
    Stylizer = l_ContextServices_0.Stylizer
})(v5));


local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Packages.Roact);
local l_ContextServices_0 = require(l_Parent_0.Packages.Framework).ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local v4 = require(l_Parent_0.Src.Components.AutoThumbnails.AutoThumbnail);
local v5 = v1.Component:extend(script.Name);
v5.getThumbnail = function(v6, v7, v8)
    local l_Stylizer_0 = v6.props.Stylizer;
    if v8 == Enum.AssetFetchStatus.Success then
        return v7;
    elseif v8 == Enum.AssetFetchStatus.Failure then
        return l_Stylizer_0.subjectThumbnail.loadFailureImage;
    else
        return l_Stylizer_0.subjectThumbnail.loadingImage;
    end;
end;
v5.init = function(v10)
    v10.maskRef = v1.createRef();
    v10.maskBackgroundParent = nil;
    v10.parentChanged = nil;
    v10.colorChanged = nil;
    v10.getBackgroundParent = function(v11)
        local l_Parent_1 = v11.Parent;
        if l_Parent_1 ~= nil and l_Parent_1:IsA("GuiObject") then
            if l_Parent_1.BackgroundTransparency ~= 1 then
                return l_Parent_1;
            else
                return v10.getBackgroundParent(l_Parent_1);
            end;
        else
            return nil;
        end;
    end;
end;
v5.didMount = function(v13)
    local function v15()
        local v14 = v13.maskRef:getValue();
        if v14 then
            v14.ImageColor3 = v13.maskBackgroundParent.BackgroundColor3;
            return ;
        else
            return ;
        end;
    end;
    local function v18()
        local v16 = v13.maskRef:getValue();
        if v16 then
            v13.maskBackgroundParent = v13.getBackgroundParent(v16.Parent);
            if v13.colorChanged then
                v13.colorChanged:Disconnect();
            end;
            if v13.maskBackgroundParent then
                v13.colorChanged = v13.maskBackgroundParent:GetPropertyChangedSignal("BackgroundColor3"):Connect(v15);
                local v17 = v13.maskRef:getValue();
                if v17 then
                    v17.ImageColor3 = v13.maskBackgroundParent.BackgroundColor3;
                else
                    return ;
                end;
            end;
            return ;
        else
            return ;
        end;
    end;
    v13.parentChanged = v13.maskRef:getValue().AncestryChanged:Connect(v18);
    v18();
end;
v5.willUnmount = function(v19)
    v19.parentChanged:Disconnect();
    if v19.colorChanged then
        v19.colorChanged:Disconnect();
    end;
end;
v5.render = function(v20)
    local l_props_0 = v20.props;
    return v1.createElement("Frame", {
        BackgroundTransparency = 1,
        Size = l_props_0.Size,
        Position = l_props_0.Position,
        AnchorPoint = l_props_0.AnchorPoint,
        LayoutOrder = l_props_0.LayoutOrder,
        ZIndex = l_props_0.ZIndex
    }, {
        AutoThumbnail = v1.createElement(v4, {
            Id = l_props_0.Id,
            ThumbnailType = "AvatarHeadShot",
            RenderContents = function(v22, v23)
                local v24 = v20:getThumbnail(v22, v23);
                local l_Stylizer_1 = l_props_0.Stylizer;
                return v1.createElement("ImageLabel", {
                    Size = UDim2.fromScale(1, 1),
                    BackgroundColor3 = l_Stylizer_1.subjectThumbnail.background,
                    BackgroundTransparency = 0,
                    BorderSizePixel = 0,
                    Image = v24
                }, {
                    Mask = v1.createElement("ImageLabel", {
                        [v1.Ref] = v20.maskRef,
                        Size = UDim2.fromScale(1, 1),
                        BackgroundTransparency = 1,
                        Image = l_Stylizer_1.subjectThumbnail.maskImage
                    })
                });
            end
        })
    });
end;
return (l_withContext_0({
    Stylizer = l_ContextServices_0.Stylizer
})(v5));


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Packages.Roact);
local l_UI_0 = require(l_Parent_0.Packages.Framework).UI;
local l_Pane_0 = l_UI_0.Pane;
local l_Separator_0 = l_UI_0.Separator;
return function(v5)
    return v1.createElement(l_Pane_0, {
        AutomaticSize = Enum.AutomaticSize.Y,
        HorizontalAlignment = Enum.HorizontalAlignment.Left,
        LayoutOrder = v5.LayoutOrder,
        Layout = Enum.FillDirection.Vertical,
        Spacing = UDim.new(0, 8)
    }, {
        Padding = v1.createElement("UIPadding", {
            PaddingTop = UDim.new(0, 4)
        }),
        BackButton = v1.createElement("ImageButton", {
            BackgroundTransparency = 1,
            Image = "rbxasset://textures/GameSettings/ArrowLeft.png",
            Size = UDim2.new(0, 24, 0, 24),
            Rotation = 90,
            LayoutOrder = 1,
            [v1.Event.Activated] = v5.OnActivated
        }),
        Separator = v1.createElement(l_Separator_0, {
            LayoutOrder = 2
        })
    });
end;


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Packages.Roact);
local v2 = require(l_Parent_0.Packages.Framework);
local l_StyleModifier_0 = v2.Util.StyleModifier;
local l_Button_0 = v2.UI.Button;
local l_ContextServices_0 = v2.ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local v7 = require(l_Parent_0.Src.Util.DEPRECATED_Constants);
local v8 = v1.PureComponent:extend("ButtonBar");
v8.render = function(v9)
    local l_props_0 = v9.props;
    local l_HorizontalAlignment_0 = l_props_0.HorizontalAlignment;
    local l_Buttons_0 = l_props_0.Buttons;
    local v13 = {
        Layout = v1.createElement("UIListLayout", {
            Padding = UDim.new(0, 25),
            HorizontalAlignment = l_HorizontalAlignment_0,
            SortOrder = Enum.SortOrder.LayoutOrder,
            FillDirection = Enum.FillDirection.Horizontal
        }, l_props_0[v1.Children])
    };
    if l_HorizontalAlignment_0 ~= Enum.HorizontalAlignment.Center then
        table.insert(v13, v1.createElement("UIPadding", {
            PaddingRight = UDim.new(0, 35)
        }));
    end;
    for v14, v15 in ipairs(l_Buttons_0) do
        table.insert(v13, v1.createElement(l_Button_0, {
            LayoutOrder = v14,
            Style = not v15.Default and "GameSettingsButton" or "GameSettingsPrimaryButton",
            Size = UDim2.new(0, v7.BUTTON_WIDTH, 1, 0),
            StyleModifier = if not v15.Active then l_StyleModifier_0.Disabled else nil,
            Text = v15.Name,
            OnClick = function()
                if v15.Active then
                    l_props_0.ButtonClicked(v15.Value);
                end;
            end
        }));
    end;
    return v1.createElement("Frame", {
        LayoutOrder = l_props_0.LayoutOrder or 1,
        Size = UDim2.new(1, 0, 0, v7.BUTTON_HEIGHT),
        AnchorPoint = l_props_0.AnchorPoint or Vector2.new(0, 0.5),
        Position = l_props_0.Position or UDim2.new(0, 0, 0.5, 0),
        BackgroundTransparency = 1
    }, v13);
end;
return (l_withContext_0({
    Stylizer = l_ContextServices_0.Stylizer
})(v8));


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Packages.Roact);
local v2 = require(l_Parent_0.Packages.Framework);
local v3 = require(l_Parent_0.Packages.Cryo);
local l_ContextServices_0 = v2.ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local v6 = require(l_Parent_0.Src.Util.DEPRECATED_Constants);
local l_UI_0 = v2.UI;
local l_Checkbox_0 = l_UI_0.Checkbox;
local l_TitledFrame_0 = l_UI_0.TitledFrame;
local v10 = v1.PureComponent:extend("CheckBoxSet");
v10.render = function(v11)
    local l_props_0 = v11.props;
    local l_Stylizer_0 = l_props_0.Stylizer;
    local l_Boxes_0 = l_props_0.Boxes;
    local v15 = #l_Boxes_0;
    local v16 = l_props_0.ErrorMessage ~= nil;
    local v17 = {
        Layout = v1.createElement("UIListLayout", {
            Padding = UDim.new(0, v6.CHECKBOX_PADDING),
            SortOrder = Enum.SortOrder.LayoutOrder
        })
    };
    for v18, v19 in ipairs(l_Boxes_0) do
        local l_v17_0 = v17;
        local l_createElement_0 = v1.createElement;
        local l_l_Checkbox_0_0 = l_Checkbox_0;
        local v23 = {};
        local v24 = false;
        if v19.Selected ~= nil then
            v24 = v19.Selected;
        end;
        v23.Checked = v24;
        v23.Disabled = not l_props_0.Enabled;
        v23.Key = v19.Id;
        v23.LayoutOrder = v18;
        v23.OnClick = function()
            l_props_0.EntryClicked(v19);
        end;
        v23.Text = v19.Title;
        table.insert(l_v17_0, l_createElement_0(l_l_Checkbox_0_0, v23, {
            Link = v19.LinkTextFrame
        }));
    end;
    if v16 then
        v17.Error = v1.createElement("TextLabel", v3.Dictionary.join(l_Stylizer_0.fontStyle.SmallError, {
            LayoutOrder = v15 + 1,
            Size = UDim2.new(1, 0, 0, v6.CHECKBOX_SIZE),
            BackgroundTransparency = 1,
            Text = l_props_0.ErrorMessage,
            TextXAlignment = Enum.TextXAlignment.Left,
            TextYAlignment = Enum.TextYAlignment.Center
        }));
    end;
    local v25 = v15 * v6.CHECKBOX_SIZE + v15 * v6.CHECKBOX_PADDING;
    if l_props_0.ShowWarning then
        v25 = v25 * 3;
    end;
    return v1.createElement(l_TitledFrame_0, {
        LayoutOrder = l_props_0.LayoutOrder or 1,
        Title = l_props_0.Title
    }, v17);
end;
return (l_withContext_0({
    Stylizer = l_ContextServices_0.Stylizer
})(v10));


local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Packages.Roact);
local v2 = require(l_Parent_0.Packages.Framework);
local v3 = require(l_Parent_0.Packages.Cryo);
local l_Pane_0 = v2.UI.Pane;
local l_ContextServices_0 = v2.ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local v7 = require(l_Parent_0.Src.Components.ButtonBar);
local v8 = v1.PureComponent:extend("BaseDialog");
local function v10(v9)
    if not v9[2] then
        return {
            {
                Name = v9[1],
                Default = true,
                Active = true,
                Value = true
            }
        };
    else
        return {
            {
                Name = v9[1],
                Active = true,
                Value = false
            },
            {
                Name = v9[2],
                Default = true,
                Active = true,
                Value = true
            }
        };
    end;
end;
v8.render = function(v11)
    local l_props_0 = v11.props;
    local l_Stylizer_0 = l_props_0.Stylizer;
    return v1.createElement(l_Pane_0, {
        Size = UDim2.new(1, 0, 1, 0),
        Layout = Enum.FillDirection.Vertical,
        AutomaticSize = Enum.AutomaticSize.Y,
        BackgroundColor3 = l_Stylizer_0.dialog.background,
        Spacing = l_Stylizer_0.dialog.spacing
    }, v3.Dictionary.join(l_props_0[v1.Children], {
        Buttons = v1.createElement(v7, {
            Position = UDim2.new(0, 0, 1, l_Stylizer_0.buttonBar.offset),
            AnchorPoint = Vector2.new(0, 1),
            Buttons = v10(l_props_0.Buttons),
            LayoutOrder = 100,
            HorizontalAlignment = Enum.HorizontalAlignment.Center,
            ButtonClicked = l_props_0.OnResult
        })
    }));
end;
return (l_withContext_0({
    Stylizer = l_ContextServices_0.Stylizer
})(v8));


local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Packages.Roact);
local v2 = require(l_Parent_0.Packages.Framework);
local v3 = require(l_Parent_0.Packages.Cryo);
local l_BulletList_0 = v2.UI.BulletList;
local l_ContextServices_0 = v2.ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local v7 = require(l_Parent_0.Src.Components.Dialog.BaseDialog);
local v8 = v1.PureComponent:extend("ListDialog");
v8.render = function(v9)
    local l_props_0 = v9.props;
    return v1.createElement(v7, {
        Buttons = l_props_0.Buttons,
        OnResult = l_props_0.OnResult
    }, {
        Header = v1.createElement("TextLabel", v3.Dictionary.join(l_props_0.Stylizer.fontStyle.SemiBold, {
            AutomaticSize = Enum.AutomaticSize.Y,
            Size = UDim2.new(1, -60, 0, 0),
            BackgroundTransparency = 1,
            Text = l_props_0.Header,
            TextXAlignment = Enum.TextXAlignment.Left,
            TextWrapped = true
        })),
        List = v1.createElement(l_BulletList_0, {
            TextTruncate = Enum.TextTruncate.AtEnd,
            Items = l_props_0.Entries,
            Size = UDim2.new(1, -60, 0, 0)
        })
    });
end;
return (l_withContext_0({
    Stylizer = l_ContextServices_0.Stylizer
})(v8));


local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Packages.Roact);
local v2 = require(l_Parent_0.Packages.Framework);
local v3 = require(l_Parent_0.Packages.Cryo);
local l_ContextServices_0 = v2.ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local v6 = require(l_Parent_0.Src.Components.Dialog.BaseDialog);
local v7 = v1.PureComponent:extend("SimpleDialog");
v7.render = function(v8)
    local l_props_0 = v8.props;
    return v1.createElement(v6, {
        Buttons = l_props_0.Buttons,
        OnResult = l_props_0.OnResult
    }, {
        Header = v1.createElement("TextLabel", v3.Dictionary.join(l_props_0.Stylizer.fontStyle.Title, {
            AutomaticSize = Enum.AutomaticSize.Y,
            Size = UDim2.new(1, 0, 0, 0),
            BackgroundTransparency = 1,
            Text = l_props_0.Header,
            TextWrapped = true
        })),
        Body = l_props_0.Body
    });
end;
return (l_withContext_0({
    Stylizer = l_ContextServices_0.Stylizer
})(v7));


local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Packages.Roact);
local v2 = require(l_Parent_0.Packages.Cryo);
local v3 = require(l_Parent_0.Packages.Framework);
local l_LayoutOrderIterator_0 = v3.Util.LayoutOrderIterator;
local l_ContextServices_0 = v3.ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local v7 = require(l_Parent_0.Src.Util.DEPRECATED_Constants);
local v8 = require(l_Parent_0.Src.Components.Dialog.BaseDialog);
local v9 = v1.PureComponent:extend("WarningDialog");
v9.render = function(v10)
    local l_props_0 = v10.props;
    local l_Stylizer_0 = l_props_0.Stylizer;
    local l_Buttons_0 = l_props_0.Buttons;
    local l_Header_0 = l_props_0.Header;
    local l_Description_0 = l_props_0.Description;
    local v16 = l_LayoutOrderIterator_0.new(-2);
    return v1.createElement(v8, {
        Buttons = l_Buttons_0,
        OnResult = l_props_0.OnResult
    }, {
        Header = v1.createElement("TextLabel", v2.Dictionary.join(l_Stylizer_0.fontStyle.Title, {
            AutomaticSize = Enum.AutomaticSize.Y,
            Size = UDim2.new(1, l_Stylizer_0.warningDialog.headerOffset, 0, 0),
            AnchorPoint = Vector2.new(0.5, 0),
            LayoutOrder = v16:getNextOrder(),
            BackgroundTransparency = 1,
            Text = l_Header_0,
            TextXAlignment = Enum.TextXAlignment.Left
        })),
        WarningDescription = v1.createElement("Frame", {
            AutomaticSize = Enum.AutomaticSize.XY,
            BackgroundTransparency = 1,
            BorderSizePixel = 0,
            LayoutOrder = v16:getNextOrder()
        }, {
            UILayout = v1.createElement("UIListLayout", {
                FillDirection = Enum.FillDirection.Horizontal,
                Padding = UDim.new(0, l_Stylizer_0.dialog.spacing),
                SortOrder = Enum.SortOrder.LayoutOrder,
                VerticalAlignment = Enum.VerticalAlignment.Center
            }),
            Warning = v1.createElement("ImageLabel", {
                Image = v7.WARNING_IMAGE,
                LayoutOrder = v16:getNextOrder(),
                BackgroundTransparency = 1,
                Size = UDim2.new(0, l_Stylizer_0.warningDialog.icon.size, 0, l_Stylizer_0.warningDialog.icon.size)
            }),
            Description = v1.createElement("TextLabel", v2.Dictionary.join(l_Stylizer_0.fontStyle.Warning, {
                AutomaticSize = Enum.AutomaticSize.Y,
                LayoutOrder = v16:getNextOrder(),
                Size = UDim2.new(0, l_Stylizer_0.warningDialog.description.length, 0, 0),
                BackgroundTransparency = 1,
                Text = l_Description_0,
                TextXAlignment = Enum.TextXAlignment.Left,
                TextWrapped = true
            }))
        })
    });
end;
return (l_withContext_0({
    Stylizer = l_ContextServices_0.Stylizer
})(v9));


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Packages.Roact);
local l_ContextServices_0 = require(l_Parent_0.Packages.Framework).ContextServices;
local v3 = require(l_Parent_0.Src.ContextServices.Dialog);
local v4 = v1.PureComponent:extend("ServiceWrapper");
v4.init = function(v5)
    assert(v5.props[v1.Children] ~= nil, "Expected child elements to wrap");
    assert(v5.props.localization ~= nil, "Expected a Localization object");
    assert(v5.props.mouse ~= nil, "Expected a mouse object");
    assert(v5.props.plugin ~= nil, "Expected a plugin object");
    assert(v5.props.pluginGui ~= nil, "Expected a pluginGui object");
    assert(v5.props.theme ~= nil, "Expected a PluginTheme object");
end;
v4.render = function(v6)
    local v7 = v6.props[v1.Children];
    local l_localization_0 = v6.props.localization;
    local l_mouse_0 = v6.props.mouse;
    local l_plugin_0 = v6.props.plugin;
    local l_pluginGui_0 = v6.props.pluginGui;
    local l_showDialog_0 = v6.props.showDialog;
    local l_store_0 = v6.props.store;
    local l_theme_0 = v6.props.theme;
    local l_worldRootPhysics_0 = v6.props.worldRootPhysics;
    local v16 = {
        l_ContextServices_0.Focus.new(l_pluginGui_0),
        l_ContextServices_0.Plugin.new(l_plugin_0),
        l_localization_0,
        l_theme_0
    };
    if l_showDialog_0 then
        table.insert(v16, v3.new(l_showDialog_0));
    end;
    if l_store_0 then
        table.insert(v16, l_ContextServices_0.Store.new(l_store_0));
    end;
    table.insert(v16, l_ContextServices_0.API.new());
    table.insert(v16, l_ContextServices_0.Mouse.new(l_mouse_0));
    if l_worldRootPhysics_0 then
        table.insert(v16, l_worldRootPhysics_0);
    end;
    return l_ContextServices_0.provide(v16, v7);
end;
return v4;


local l_game_FastInt_0 = game:GetFastInt("LuobuDevPublishAnalyticsHundredthsPercentage");
local l_Parent_0 = script.Parent.Parent.Parent;
local v2 = require(l_Parent_0.Packages.Roact);
local v3 = require(l_Parent_0.Packages.RoactRodux);
local v4 = require(l_Parent_0.Packages.Framework);
local l_Promise_0 = v4.Util.Promise;
local l_ContextServices_0 = v4.ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local v8 = require(l_Parent_0.Src.ContextServices.Dialog);
local v9 = require(l_Parent_0.Src.Util.DEPRECATED_Constants);
local v10 = require(l_Parent_0.Src.Util.isEmpty);
local v11 = require(l_Parent_0.Src.Components.ButtonBar);
local v12 = require(l_Parent_0.Src.Thunks.ConfirmAndSaveChanges);
local v13 = require(l_Parent_0.Src.Thunks.PostContactEmail);
local v14 = require(l_Parent_0.Src.Util.CurrentStatus);
local l_TextInputDialog_0 = v4.UI.TextInputDialog;
local l_shouldShowDevPublishLocations_0 = require(l_Parent_0.Src.Util.GameSettingsUtilities).shouldShowDevPublishLocations;
local l_sendAnalyticsToKibana_0 = require(l_Parent_0.Src.Util.GameSettingsUtilities).sendAnalyticsToKibana;
local v18 = require(l_Parent_0.Src.Util.KeyProvider);
local v19 = v18.getOptInLocationsKeyName();
local v20 = v18.getChinaKeyName();
local v21 = v18.getSelectedKeyName();
local v22 = v18.getFooterKeyName();
local v23 = v18.getLuobuStudioDevPublishKeyName();
local v24 = v2.PureComponent:extend("Footer");
v24.saveAllSettings = function(v25, v26)
    local l_props_0 = v25.props;
    v25.props.SaveAllSettings(v26, l_props_0.Localization, l_props_0.Dialog):andThen(function()
        v25.props.OnClose(v26);
    end);
end;
v24.init = function(v28)
    v28.shouldShowEmailDialog = function()
        local l_props_1 = v28.props;
        local l_CurrentOptInLocations_0 = l_props_1.CurrentOptInLocations;
        local l_ChangedOptInLocations_0 = l_props_1.ChangedOptInLocations;
        if l_CurrentOptInLocations_0 then
            if l_CurrentOptInLocations_0[v20][v21] or not l_ChangedOptInLocations_0 then
                return false;
            else
                assert(l_ChangedOptInLocations_0[v20][v21], "China should be selected in Changed");
                return true;
            end;
        else
            assert(not l_ChangedOptInLocations_0);
            return false;
        end;
    end;
    v28.state = {
        showEmailDialog = false,
        userPressedSave = false,
        bottomText = ""
    };
end;
v24.render = function(v32)
    local l_props_2 = v32.props;
    local l_Stylizer_0 = l_props_2.Stylizer;
    local l_Localization_0 = l_props_2.Localization;
    local l_SaveActive_0 = l_props_2.SaveActive;
    local l_CancelActive_0 = l_props_2.CancelActive;
    local l_PostContactEmail_0 = l_props_2.PostContactEmail;
    return v2.createElement("Frame", {
        BackgroundColor3 = l_Stylizer_0.backgroundColor,
        BorderSizePixel = 0,
        Size = UDim2.fromScale(1, 1),
        ZIndex = 2
    }, {
        Gradient = v2.createElement("ImageLabel", {
            Size = UDim2.new(1, 0, 0, 3),
            AnchorPoint = Vector2.new(0, 1),
            Image = v9.GRADIENT_IMAGE,
            ImageRectSize = v9.GRADIENT_RECT_SIZE,
            BorderSizePixel = 0,
            BackgroundTransparency = 1,
            ImageColor3 = l_Stylizer_0.footer.gradient,
            ImageTransparency = 0.9,
            ZIndex = 1
        }),
        SaveSettings = v2.createElement(v11, {
            ZIndex = 2,
            Buttons = {
                {
                    Name = l_Localization_0:getText("General", "ButtonCancel"),
                    Active = l_CancelActive_0,
                    Value = false
                },
                {
                    Name = l_Localization_0:getText("General", "ButtonSave"),
                    Default = true,
                    Active = l_SaveActive_0,
                    Value = true
                }
            },
            HorizontalAlignment = Enum.HorizontalAlignment.Right,
            ButtonClicked = function(v39)
                if (not v39 or not l_shouldShowDevPublishLocations_0()) or not v32.shouldShowEmailDialog() then
                    if not (((not v39 or not l_shouldShowDevPublishLocations_0()) or not v32.props.CurrentOptInLocations) or not v32.props.CurrentOptInLocations[v20][v21]) then
                        local v40 = {
                            [v19] = v20
                        };
                        if v32.props.ChangedOptInLocations then
                            assert(not v32.props.ChangedOptInLocations[v20][v21]);
                            v40.selected = false;
                        else
                            v40.selected = true;
                        end;
                        l_sendAnalyticsToKibana_0(v23, l_game_FastInt_0, v22, v40);
                    end;
                    v32:saveAllSettings(v39);
                    return ;
                else
                    v32:setState({
                        showEmailDialog = true,
                        userPressedSave = v39
                    });
                    return ;
                end;
            end
        }, {
            EmailDialog = v2.createElement(l_TextInputDialog_0, {
                Enabled = v32.state.showEmailDialog,
                Size = Vector2.new(l_Stylizer_0.emailDialog.Size.X, l_Stylizer_0.emailDialog.Size.Y),
                Title = l_Localization_0:getText(v19, "EmailDialogHeader"),
                Header = l_Localization_0:getText(v19, "EmailDialogHeader"),
                Buttons = {
                    {
                        Key = "Submit",
                        Text = l_Localization_0:getText("General", "ButtonSubmit")
                    },
                    {
                        Key = "Cancel",
                        Text = l_Localization_0:getText("General", "ButtonCancel")
                    }
                },
                Body = l_Localization_0:getText(v19, "EmailDialogBody"),
                Description = l_Localization_0:getText(v19, "EmailDialogDescription"),
                TextInput = {
                    {
                        PlaceholderText = l_Localization_0:getText(v19, "EmailAddress")
                    },
                    {
                        PlaceholderText = l_Localization_0:getText(v19, "ConfirmEmailAddress"),
                        BottomText = v32.state.bottomText
                    }
                },
                OnClose = function()
                    v32:setState({
                        showEmailDialog = false,
                        userPressedSave = false,
                        bottomText = ""
                    });
                end,
                OnButtonPressed = function(v41, v42, v43)
                    if not (v41 == "Submit") then
                        v32:setState({
                            showEmailDialog = false,
                            userPressedSave = false,
                            bottomText = ""
                        });
                        return ;
                    elseif v42 == v43 then
                        l_sendAnalyticsToKibana_0(v23, l_game_FastInt_0, v22, {
                            [v19] = v20,
                            [v21] = true
                        });
                        local v44 = l_PostContactEmail_0(v42);
                        if v44 then
                            warn(l_Localization_0:getText(v19, "EmailSubmitFailure") .. v44);
                            return ;
                        else
                            v32:saveAllSettings(v32.state.userPressedSave);
                            v32:setState({
                                showEmailDialog = false,
                                userPressedSave = false,
                                bottomText = ""
                            });
                            return ;
                        end;
                    else
                        v32:setState({
                            bottomText = l_Localization_0:getText(v19, "ErrorEmailNotEqual")
                        });
                        return ;
                    end;
                end
            })
        })
    });
end;
return (v3.connect(function(v45, _)
    if v45 then
        local v47 = {};
        local v48 = not v10(v45.Settings.Changed);
        if v48 then
            v48 = false;
            if v45.Status == v14.Open then
                v48 = v10(v45.Settings.Errors);
            end;
        end;
        v47.SaveActive = v48;
        v47.CancelActive = v45.Status == v14.Open;
        v47.CurrentOptInLocations = v45.Settings.Current[v19];
        v47.ChangedOptInLocations = v45.Settings.Changed[v19];
        return v47;
    else
        return ;
    end;
end, function(v49)
    return {
        SaveAllSettings = function(v50, ...)
            if not v50 then
                return l_Promise_0.resolve();
            else
                return v49(v12(...));
            end;
        end,
        PostContactEmail = function(v51)
            return v49(v13(v51));
        end
    };
end)((l_withContext_0({
    Stylizer = l_ContextServices_0.Stylizer,
    Localization = l_ContextServices_0.Localization,
    Dialog = v8
})(v24))));


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Packages.Roact);
local v2 = require(l_Parent_0.Packages.Framework);
local v3 = require(l_Parent_0.Packages.Cryo);
local l_ContextServices_0 = v2.ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local l_GetTextSize_0 = v2.Util.GetTextSize;
local v7 = v1.PureComponent:extend("Header");
v7.render = function(v8)
    local l_props_0 = v8.props;
    local l_Stylizer_0 = l_props_0.Stylizer;
    local _ = nil;
    local v12 = l_GetTextSize_0(l_props_0.Title, l_Stylizer_0.fontStyle.Header.TextSize, l_Stylizer_0.fontStyle.Header.Font);
    return v1.createElement("TextLabel", v3.Dictionary.join(l_Stylizer_0.fontStyle.Header, {
        Size = UDim2.new(0, v12.X, 0, v12.Y),
        Text = l_props_0.Title,
        BackgroundTransparency = 1,
        BorderSizePixel = 0,
        TextXAlignment = Enum.TextXAlignment.Left,
        TextYAlignment = Enum.TextYAlignment.Bottom,
        LayoutOrder = l_props_0.LayoutOrder or 1
    }));
end;
return (l_withContext_0({
    Stylizer = l_ContextServices_0.Stylizer
})(v7));


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Src.Flags.getFFlagGameSettingsFixMoreLayoutIssues)();
local v2 = require(l_Parent_0.Packages.Roact);
local v3 = require(l_Parent_0.Packages.RoactRodux);
local v4 = require(l_Parent_0.Packages.Cryo);
local v5 = require(l_Parent_0.Src.Util.DEPRECATED_Constants);
local v6 = require(l_Parent_0.Packages.Framework);
local l_ContextServices_0 = v6.ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local l_UI_0 = v6.UI;
local l_Util_0 = v6.Util;
local l_Button_0 = l_UI_0.Button;
local l_Container_0 = l_UI_0.Container;
local l_HoverArea_0 = l_UI_0.HoverArea;
local l_FitTextLabel_0 = l_Util_0.FitFrame.FitTextLabel;
local v15 = require(l_Parent_0.Src.Components.MenuBar);
local v16 = require(l_Parent_0.Src.Components.Separator);
local v17 = require(l_Parent_0.Src.Components.Footer);
local v18 = require(l_Parent_0.Pages.PageManifest);
local v19 = require(l_Parent_0.Src.Util.Analytics);
local l_TextService_0 = game:GetService("TextService");
local v21 = v2.PureComponent:extend("MainView");
local l_StudioPublishService_0 = game:GetService("StudioPublishService");
v21.init = function(v23)
    local v24 = nil;
    local l_FirstSelectedId_0 = v23.props.FirstSelectedId;
    if l_FirstSelectedId_0 and l_FirstSelectedId_0 ~= "" then
        for v26, v27 in ipairs(v18) do
            if v27 and v27.LocalizationId == l_FirstSelectedId_0 then
                v24 = v26;
                break;
            end;
        end;
        assert(v24, "There are no pages in PageManifest with LocalizationId \"" .. l_FirstSelectedId_0 .. "\"");
    else
        local v28 = nil;
        for v29, v30 in ipairs(v18) do
            if v30 then
                v28 = v29;
                break;
            end;
        end;
        assert(v28, "There are no valid pages in PageManifest");
        v24 = v28;
    end;
    v23.state = {
        Selected = v24,
        PageContentOffset = 0
    };
end;
v21.pageSelected = function(v31, v32)
    v19.onTabChangeEvent(v18[v31.state.Selected].LocalizationId, v18[v32].LocalizationId);
    v31:setState({
        Selected = v32
    });
end;
v21.render = function(v33)
    local l_props_0 = v33.props;
    local l_Selected_0 = v33.state.Selected;
    local l_Stylizer_0 = l_props_0.Stylizer;
    local l_Localization_0 = l_props_0.Localization;
    local v38 = l_props_0.GameId ~= 0;
    local l_PageLoadStates_0 = l_props_0.PageLoadStates;
    local v40 = {};
    local v41 = {};
    if v38 then
        for v42, v43 in ipairs(v18) do
            if v43 then
                local v44 = l_PageLoadStates_0[v43.LocalizationId];
                v41[v42] = v43.LocalizationId;
                local v45 = tostring(v43);
                local v46;
                if v42 ~= l_Selected_0 then
                    v46 = false;
                    if not (v44 ~= nil) then
                        goto label0;
                    end;
                end;
                v46 = v2.createElement("Frame", {
                    BackgroundTransparency = 1,
                    Size = UDim2.fromScale(1, 1),
                    Visible = v42 == l_Selected_0
                }, {
                    PageContents = v2.createElement(v43)
                });
                ::label0::;
                v40[v45] = v46;
            end;
        end;
    end;
    local v47 = l_Localization_0:getText("General", "PublishText");
    local v48 = l_Localization_0:getText("General", "ButtonPublish");
    v47 = l_Localization_0:getText("General", "SaveText");
    v48 = l_Localization_0:getText("General", "ButtonSaveToRoblox");
    local l_l_TextService_0_TextSize_0 = l_TextService_0:GetTextSize(v48, l_Stylizer_0.fontStyle.Normal.TextSize, l_Stylizer_0.fontStyle.Normal.Font, Vector2.new(math.huge, math.huge));
    return v2.createElement("Frame", {
        Size = UDim2.new(1, 0, 1, 0),
        BackgroundColor3 = l_Stylizer_0.backgroundColor
    }, not v38 and {
        UseText = v2.createElement(l_FitTextLabel_0, v4.Dictionary.join(l_Stylizer_0.fontStyle.Normal, {
            Position = UDim2.new(0.5, 0, 0, l_Stylizer_0.mainView.publishText.offset),
            AnchorPoint = Vector2.new(0.5, 0.5),
            Text = v47,
            BackgroundTransparency = 1,
            width = l_Stylizer_0.mainView.publishText.width
        })),
        PublishButton = v2.createElement(l_Button_0, {
            Style = "GameSettingsPrimaryButton",
            Text = v48,
            Size = UDim2.new(0, l_l_TextService_0_TextSize_0.X + l_Stylizer_0.mainView.publishButton.paddingX, 0, l_l_TextService_0_TextSize_0.Y + l_Stylizer_0.mainView.publishButton.paddingY),
            Position = UDim2.new(0.5, 0, 0, l_Stylizer_0.mainView.publishButton.offset),
            AnchorPoint = Vector2.new(0.5, 0.5),
            OnClick = function()
                l_StudioPublishService_0:ShowSaveOrPublishPlaceToRoblox(false, false, Enum.StudioCloseMode.None);
                v33.props.OnClose(false);
            end
        }, {
            v2.createElement(l_HoverArea_0, {
                Cursor = "PointingHand"
            })
        })
    } or {
        Padding = if not v1 then v2.createElement("UIPadding", {
            PaddingTop = UDim.new(0, 5)
        }) else nil,
        Layout = v2.createElement("UIListLayout", {
            FillDirection = Enum.FillDirection.Vertical,
            SortOrder = Enum.SortOrder.LayoutOrder
        }),
        CenterContent = v2.createElement(l_Container_0, {
            LayoutOrder = 1,
            Size = UDim2.new(1, 0, 1, -l_Stylizer_0.footer.height)
        }, {
            Layout = v2.createElement("UIListLayout", {
                FillDirection = Enum.FillDirection.Horizontal,
                SortOrder = Enum.SortOrder.LayoutOrder
            }),
            MenuBar = v2.createElement(v15, {
                LayoutOrder = 1,
                Entries = v41,
                Selected = l_Selected_0,
                SelectionChanged = function(v50)
                    v33:pageSelected(v50);
                end
            }),
            Separator = v2.createElement(v16, {
                LayoutOrder = 2,
                Size = UDim2.new(0, 3, 1, 0),
                Position = UDim2.new(0, v5.MENU_BAR_WIDTH, 0, 0)
            }),
            PageContent = v2.createElement("Frame", {
                LayoutOrder = 3,
                Size = UDim2.new(1, -v33.state.PageContentOffset, 1, 0),
                BackgroundTransparency = 1,
                [v2.Change.AbsolutePosition] = function(v51)
                    local l_Parent_1 = v51.Parent;
                    if l_Parent_1 then
                        v33:setState({
                            PageContentOffset = (v51.AbsolutePosition - l_Parent_1.AbsolutePosition).X
                        });
                        return ;
                    else
                        return ;
                    end;
                end
            }, v40)
        }),
        FooterContent = v2.createElement(l_Container_0, {
            Size = UDim2.new(1, 0, 0, l_Stylizer_0.footer.height),
            LayoutOrder = 2
        }, {
            Footer = v2.createElement(v17, {
                OnClose = function(v53, v54)
                    v33.props.OnClose(v53, v54);
                end
            })
        })
    });
end;
return (v3.connect(function(v55, _)
    return {
        GameId = v55.Metadata.gameId,
        PageLoadStates = v55.PageLoadState
    };
end)((l_withContext_0({
    Localization = l_ContextServices_0.Localization,
    Stylizer = l_ContextServices_0.Stylizer
})(v21))));


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Packages.Roact);
local v2 = require(l_Parent_0.Packages.Framework);
local v3 = require(l_Parent_0.Packages.RoactRodux);
local l_ContextServices_0 = v2.ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local v6 = require(l_Parent_0.Src.Util.DEPRECATED_Constants);
local v7 = require(l_Parent_0.Src.Components.MenuEntry);
local v8 = v1.PureComponent:extend("MenuBar");
local v9 = {
    BasicInfo = {
        name = true,
        description = true,
        playableDevices = true
    },
    Avatar = {
        universeAvatarAssetOverrides = true
    }
};
local v10 = {
    Permissions = {
        isActive = true
    },
    Avatar = {
        universeAvatarType = true
    }
};
v9.BasicInfo.thumbnails = true;
v9.BasicInfo.gameIcon = true;
if settings():GetFFlag("DeveloperSubscriptionsEnabled") then
    v9.Monetization = {
        DeveloperSubscriptions = true
    };
end;
v8.render = function(v11)
    local l_props_0 = v11.props;
    local l_Stylizer_0 = l_props_0.Stylizer;
    local l_Localization_0 = l_props_0.Localization;
    local v15 = {
        Layout = v1.createElement("UIListLayout", {
            Padding = UDim.new(0, 1)
        })
    };
    for v16, v17 in ipairs(l_props_0.Entries) do
        local v18 = false;
        if v9[v17] then
            for v19 in pairs(l_props_0.Errors) do
                if v9[v17][v19] then
                    v18 = true;
                    break;
                end;
            end;
        end;
        local v20 = false;
        if v10[v17] then
            for _, v22 in ipairs(l_props_0.Warnings) do
                if v10[v17][v22] then
                    v20 = true;
                    break;
                end;
            end;
        end;
        table.insert(v15, v1.createElement(v7, {
            Title = l_Localization_0:getText("General", "Category" .. v17),
            Selected = l_props_0.Selected == v16,
            Index = v16,
            Error = v18,
            Warning = v20,
            OnClicked = function()
                l_props_0.SelectionChanged(v16);
            end
        }));
    end;
    return v1.createElement("Frame", {
        Size = UDim2.new(0, v6.MENU_BAR_WIDTH, 1, 0),
        BackgroundColor3 = l_Stylizer_0.menuBar.backgroundColor,
        BorderSizePixel = 0
    }, v15);
end;
return v3.connect(function(v23, _)
    if v23 then
        return {
            Errors = v23.Settings.Errors,
            Warnings = v23.Settings.Warnings
        };
    else
        return ;
    end;
end)((l_withContext_0({
    Stylizer = l_ContextServices_0.Stylizer,
    Localization = l_ContextServices_0.Localization
})(v8)));


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Src.Flags.getFFlagGameSettingsFixMoreLayoutIssues)();
local v2 = require(l_Parent_0.Packages.Roact);
local v3 = require(l_Parent_0.Packages.Framework);
local v4 = require(l_Parent_0.Packages.Cryo);
local l_ContextServices_0 = v3.ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local v7 = require(l_Parent_0.Src.Util.DEPRECATED_Constants);
local v8 = v2.PureComponent:extend("MenuEntry");
v8.mouseHoverChanged = function(v9, v10)
    local l_props_0 = v9.props;
    if not v10 then
        l_props_0.Mouse:__resetCursor();
    else
        l_props_0.Mouse:__pushCursor("PointingHand");
    end;
    v9:setState({
        Hovering = v10
    });
end;
v8.render = function(v12)
    local l_Stylizer_0 = v12.props.Stylizer;
    local l_Hovering_0 = v12.state.Hovering;
    local l_Selected_0 = v12.props.Selected;
    return v2.createElement("Frame", {
        Size = UDim2.new(1, 0, 0, v7.MENU_ENTRY_HEIGHT),
        BackgroundColor3 = not not (l_Hovering_0 or l_Selected_0) and l_Stylizer_0.menuEntry.hover or l_Stylizer_0.menuBar.backgroundColor,
        BorderSizePixel = 0,
        [v2.Event.MouseEnter] = function()
            v12:mouseHoverChanged(true);
        end,
        [v2.Event.MouseLeave] = function()
            v12:mouseHoverChanged(false);
        end
    }, {
        Highlight = v2.createElement("Frame", {
            ZIndex = 1,
            Size = UDim2.new(1, 0, 1, 0),
            BorderSizePixel = 0,
            BackgroundColor3 = l_Stylizer_0.menuEntry.highlight,
            BackgroundTransparency = not l_Selected_0 and 1 or 0
        }),
        Title = v2.createElement("TextButton", v4.Dictionary.join(l_Stylizer_0.fontStyle.Title, {
            ZIndex = 2,
            Size = UDim2.new(1, -15, 1, 0),
            Position = UDim2.new(0, 15, 0, 0),
            BackgroundTransparency = 1,
            BorderSizePixel = 0,
            TextXAlignment = Enum.TextXAlignment.Left,
            TextYAlignment = Enum.TextYAlignment.Center,
            TextColor3 = if not not v1 and l_Selected_0 then l_Stylizer_0.menuEntry.text else nil,
            Text = v12.props.Title,
            Font = not not l_Selected_0 and Enum.Font.SourceSansSemibold or Enum.Font.SourceSans,
            [v2.Event.Activated] = function()
                v12.props.OnClicked(v12.props.Index);
            end
        })),
        Error = v2.createElement("ImageLabel", {
            ZIndex = 3,
            Visible = (v12.props.Error or v12.props.Warning) or false,
            Size = UDim2.new(0, 18, 0, 18),
            Position = UDim2.new(1, -12, 0.5, 0),
            AnchorPoint = Vector2.new(1, 0.5),
            BackgroundTransparency = 1,
            Image = not not v12.props.Error and v7.ERROR_IMAGE or v7.WARNING_IMAGE
        })
    });
end;
return (l_withContext_0({
    Stylizer = l_ContextServices_0.Stylizer,
    Mouse = l_ContextServices_0.Mouse
})(v8));


local l_TextService_0 = game:GetService("TextService");
local l_Parent_0 = script.Parent.Parent.Parent;
local v2 = require(l_Parent_0.Src.Flags.getFFlagGameSettingsFixMoreLayoutIssues)();
local v3 = require(l_Parent_0.Packages.Roact);
local v4 = require(l_Parent_0.Packages.Cryo);
local v5 = require(l_Parent_0.Packages.Framework);
local v6 = if not v2 then v5.Util.FitFrame.FitFrameOnAxis else nil;
local l_ContextServices_0 = v5.ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local l_Pane_0 = v5.UI.Pane;
local v10 = v3.PureComponent:extend("RadioButton");
v10.init = function(v11, _)
    v11.mouseEnter = function()
        if v11.props.Enabled then
            v11:mouseHoverChanged(true);
        end;
    end;
    v11.mouseLeave = function()
        if v11.props.Enabled then
            v11:mouseHoverChanged(false);
        end;
    end;
end;
v10.mouseHoverChanged = function(v13, v14)
    local l_props_0 = v13.props;
    if not v14 then
        l_props_0.Mouse:__resetCursor();
        return ;
    else
        l_props_0.Mouse:__pushCursor("PointingHand");
        return ;
    end;
end;
v10.render = function(v16)
    local l_props_1 = v16.props;
    local l_Stylizer_0 = l_props_1.Stylizer;
    local l_Title_0 = v16.props.Title;
    local v20 = not not l_props_1.Description and l_props_1.Description or nil;
    local l_l_TextService_0_TextSize_0 = l_TextService_0:GetTextSize(l_Title_0, l_Stylizer_0.fontStyle.Subtext.TextSize, l_Stylizer_0.fontStyle.Subtext.Font, Vector2.new());
    local v22 = l_props_1.Description and l_TextService_0:GetTextSize(v20, l_Stylizer_0.fontStyle.Subtext.TextSize, l_Stylizer_0.fontStyle.Subtext.Font, Vector2.new(l_Stylizer_0.radioButton.descriptionWidth, math.huge));
    local v23 = not not l_props_1.Children and l_props_1.Children or {};
    local v24 = math.max(l_l_TextService_0_TextSize_0.X, not not v22 and v22.X or 0);
    return v3.createElement(if not v2 then v6 else l_Pane_0, if not v2 then {
        axis = v6.Axis.Vertical,
        minimumSize = UDim2.new(0, v24 + l_Stylizer_0.radioButton.size, 0, 0),
        BackgroundTransparency = 1,
        FillDirection = Enum.FillDirection.Horizontal,
        LayoutOrder = l_props_1.LayoutOrder or 1
    } else {
        AutomaticSize = Enum.AutomaticSize.XY,
        Layout = Enum.FillDirection.Horizontal,
        LayoutOrder = l_props_1.LayoutOrder or 1,
        Spacing = l_Stylizer_0.radioButton.spacing,
        VerticalAlignment = Enum.VerticalAlignment.Top
    }, {
        Button = v3.createElement("ImageButton", {
            Size = UDim2.new(0, l_Stylizer_0.radioButton.size, 0, l_Stylizer_0.radioButton.size),
            BackgroundTransparency = 1,
            ImageTransparency = not v16.props.Enabled and 0.4 or 0,
            Image = l_Stylizer_0.radioButton.image.background,
            ImageColor3 = l_Stylizer_0.radioButton.background,
            LayoutOrder = 1,
            [v3.Event.MouseEnter] = v16.mouseEnter,
            [v3.Event.MouseLeave] = v16.mouseLeave,
            [v3.Event.Activated] = function()
                if v16.props.Enabled then
                    v16.props.OnClicked();
                end;
            end
        }, {
            Highlight = v3.createElement("ImageLabel", {
                BackgroundTransparency = 1,
                Size = not not l_Stylizer_0.isDarkerTheme and UDim2.new(0.4, 0, 0.4, 0) or UDim2.new(0.5, 0, 0.5, 0),
                Position = UDim2.new(0.5, 0, 0.5, 0),
                AnchorPoint = Vector2.new(0.5, 0.5),
                Visible = v16.props.Selected,
                Image = not not v16.props.Enabled and l_Stylizer_0.radioButton.image.selected or l_Stylizer_0.radioButton.image.selectedDisabled
            })
        }),
        ContentAndChildren = v3.createElement(if not v2 then v6 else l_Pane_0, if not v2 then {
            axis = v6.Axis.Vertical,
            minimumSize = UDim2.new(0, v24, 0, 0),
            contentPadding = UDim.new(0, l_Stylizer_0.radioButton.padding),
            BackgroundTransparency = 1,
            FillDirection = Enum.FillDirection.Vertical,
            LayoutOrder = 2
        } else {
            AutomaticSize = Enum.AutomaticSize.XY,
            HorizontalAlignment = Enum.HorizontalAlignment.Left,
            Layout = Enum.FillDirection.Vertical,
            LayoutOrder = 2,
            Spacing = l_Stylizer_0.radioButton.spacing
        }, v4.Dictionary.join({
            TitleLabel = v3.createElement("TextButton", v4.Dictionary.join(l_Stylizer_0.fontStyle.Normal, {
                BackgroundTransparency = 1,
                BorderSizePixel = 0,
                Size = UDim2.new(0, l_l_TextService_0_TextSize_0.X, 0, l_l_TextService_0_TextSize_0.Y),
                TextXAlignment = Enum.TextXAlignment.Left,
                TextYAlignment = Enum.TextYAlignment.Center,
                TextTransparency = not v16.props.Enabled and 0.5 or 0,
                Text = l_Title_0,
                [v3.Event.MouseEnter] = v16.mouseEnter,
                [v3.Event.MouseLeave] = v16.mouseLeave,
                [v3.Event.Activated] = function()
                    if v16.props.Enabled then
                        v16.props.OnClicked();
                    end;
                end,
                LayoutOrder = -2
            })),
            DescriptionLabel = l_props_1.Description and v3.createElement("TextButton", v4.Dictionary.join(l_Stylizer_0.fontStyle.Subtext, {
                BackgroundTransparency = 1,
                BorderSizePixel = 0,
                Size = UDim2.new(0, v22.X, 0, v22.Y),
                TextXAlignment = Enum.TextXAlignment.Left,
                TextYAlignment = Enum.TextYAlignment.Top,
                Text = v20,
                TextWrapped = true,
                [v3.Event.MouseEnter] = v16.mouseEnter,
                [v3.Event.MouseLeave] = v16.mouseLeave,
                [v3.Event.Activated] = function()
                    if v16.props.Enabled then
                        v16.props.OnClicked();
                    end;
                end,
                LayoutOrder = -1
            }))
        }, v23))
    });
end;
return (l_withContext_0({
    Stylizer = l_ContextServices_0.Stylizer,
    Mouse = l_ContextServices_0.Mouse
})(v10));


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Packages.Roact);
local v2 = require(l_Parent_0.Packages.Cryo);
local v3 = require(l_Parent_0.Src.Flags.getFFlagGameSettingsFixMoreLayoutIssues)();
local v4 = require(l_Parent_0.Packages.Framework);
local l_Util_0 = v4.Util;
local l_ContextServices_0 = v4.ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local l_TitledFrame_0 = v4.UI.TitledFrame;
local l_LayoutOrderIterator_0 = l_Util_0.LayoutOrderIterator;
local v10 = require(l_Parent_0.Src.Components.RadioButton);
local v11 = v1.PureComponent:extend("RadioButtonSet");
v11.init = function(v12)
    v12.state = {
        maxHeight = 0
    };
    v12.layoutRef = v1.createRef();
    v12.onResize = function()
        local l_current_0 = v12.layoutRef.current;
        if l_current_0 then
            v12:setState({
                maxHeight = l_current_0.AbsoluteContentSize.Y
            });
            return ;
        else
            return ;
        end;
    end;
end;
v11.render = function(v14)
    local l_props_0 = v14.props;
    local l_Stylizer_0 = l_props_0.Stylizer;
    local l_radioButton_0 = l_Stylizer_0.radioButton;
    local l_radioButtonSet_0 = l_Stylizer_0.radioButtonSet;
    local v19 = l_LayoutOrderIterator_0.new();
    local v20 = nil;
    v20 = if l_props_0.Selected ~= nil then l_props_0.Selected else 1;
    local l_Buttons_0 = l_props_0.Buttons;
    local v22 = {
        Layout = v1.createElement("UIListLayout", {
            Padding = UDim.new(0, l_radioButton_0.padding),
            SortOrder = Enum.SortOrder.LayoutOrder,
            [v1.Change.AbsoluteContentSize] = v14.onResize,
            [v1.Ref] = v14.layoutRef
        })
    };
    if l_props_0.Description then
        table.insert(v22, v1.createElement("TextLabel", v2.Dictionary.join(l_Stylizer_0.fontStyle.Normal, {
            BackgroundTransparency = 1,
            BorderSizePixel = 0,
            Size = UDim2.new(1, 0, 0, l_radioButtonSet_0.description.height),
            TextTransparency = not l_props_0.Enabled and 0.5 or 0,
            TextXAlignment = Enum.TextXAlignment.Left,
            TextYAlignment = Enum.TextYAlignment.Top,
            Text = l_props_0.Description
        })));
    end;
    for v23, v24 in ipairs(l_Buttons_0) do
        if not l_props_0.RenderItem then
            local l_v22_0 = v22;
            local l_createElement_0 = v1.createElement;
            local l_v10_0 = v10;
            local v28 = {
                Title = v24.Title,
                Id = v24.Id,
                Description = v24.Description
            };
            local v29 = true;
            if v24.Id ~= v20 then
                v29 = v23 == v20;
            end;
            v28.Selected = v29;
            v28.Index = v23;
            v28.Enabled = l_props_0.Enabled;
            v28.LayoutOrder = v19:getNextOrder();
            v28.OnClicked = function()
                l_props_0.SelectionChanged(v24);
            end;
            v28.Children = v24.Children;
            table.insert(l_v22_0, l_createElement_0(l_v10_0, v28));
        else
            table.insert(v22, l_props_0.RenderItem(v23, v24));
        end;
    end;
    local v30 = UDim2.fromScale(1, 0);
    local v31 = l_LayoutOrderIterator_0.new();
    return v1.createElement("Frame", {
        AutomaticSize = Enum.AutomaticSize.Y,
        BackgroundTransparency = 1,
        BorderSizePixel = 0,
        LayoutOrder = l_props_0.LayoutOrder or 1,
        Size = v30
    }, {
        ListLayout = v1.createElement("UIListLayout", {
            Padding = UDim.new(0, l_radioButtonSet_0.padding),
            SortOrder = Enum.SortOrder.LayoutOrder
        }),
        ButtonSet = v1.createElement(l_TitledFrame_0, {
            FillDirection = if not v3 then nil else l_props_0.FillDirection,
            Title = l_props_0.Title,
            Style = "Subtitle",
            LayoutOrder = v31:getNextOrder()
        }, v22),
        Warning = l_props_0.Warning and v1.createElement("TextLabel", v2.Dictionary.join(l_Stylizer_0.fontStyle.Subtitle, {
            Text = l_props_0.Warning,
            BackgroundTransparency = 1,
            TextXAlignment = Enum.TextXAlignment.Left,
            TextColor3 = l_radioButtonSet_0.warningLabel.color,
            Size = UDim2.new(1, 0, 0, l_radioButtonSet_0.warningLabel.height),
            LayoutOrder = v31:getNextOrder()
        }))
    });
end;
return (l_withContext_0({
    Stylizer = l_ContextServices_0.Stylizer
})(v11));


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Packages.Roact);
local l_ContextServices_0 = require(l_Parent_0.Packages.Framework).ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local v4 = v1.PureComponent:extend("Separator");
v4.render = function(v5)
    local l_props_0 = v5.props;
    return v1.createElement("Frame", {
        Size = l_props_0.Size or UDim2.new(1, 0, 0, 2),
        Position = l_props_0.Position,
        BackgroundColor3 = l_props_0.Stylizer.separator,
        BorderSizePixel = 0,
        LayoutOrder = l_props_0.LayoutOrder or 1
    });
end;
return (l_withContext_0({
    Stylizer = l_ContextServices_0.Stylizer
})(v4));


local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Packages.Roact);
local v2 = require(l_Parent_0.Packages.Cryo);
local v3 = require(l_Parent_0.Packages.Framework);
local l_ContextServices_0 = v3.ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local l_Container_0 = v3.UI.Container;
local v7 = v1.Component:extend(script.Name);
v7.render = function(v8)
    local l_props_0 = v8.props;
    local l_Stylizer_0 = l_props_0.Stylizer;
    return v1.createElement(l_Container_0, {}, {
        Label = v1.createElement("TextLabel", v2.Dictionary.join(l_Stylizer_0.fontStyle.Normal, {
            LayoutOrder = 1,
            Text = l_props_0.Localization:getText("General", "SettingsInsufficientPermission"),
            Size = UDim2.fromScale(1, 1),
            BackgroundTransparency = 1
        }), {
            Padding = v1.createElement("UIPadding", {
                PaddingLeft = UDim.new(0, l_Stylizer_0.settingsPage.failLabelPaddingX / 2),
                PaddingRight = UDim.new(0, l_Stylizer_0.settingsPage.failLabelPaddingX / 2)
            })
        })
    });
end;
return (l_withContext_0({
    Stylizer = l_ContextServices_0.Stylizer,
    Localization = l_ContextServices_0.Localization
})(v7));


local l_TextService_0 = game:GetService("TextService");
local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local v2 = require(l_Parent_0.Packages.Roact);
local v3 = require(l_Parent_0.Packages.Cryo);
local v4 = require(l_Parent_0.Packages.Framework);
local l_ContextServices_0 = v4.ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local l_UI_0 = v4.UI;
local l_Button_0 = l_UI_0.Button;
local l_Container_0 = l_UI_0.Container;
local l_HoverArea_0 = l_UI_0.HoverArea;
local v11 = v2.Component:extend(script.Name);
v11.init = function(v12)
    v12.failurePageRef = v2.createRef();
end;
v11.render = function(v13)
    local l_props_0 = v13.props;
    local l_Stylizer_0 = l_props_0.Stylizer;
    local l_Localization_0 = l_props_0.Localization;
    local l_OnRetry_0 = l_props_0.OnRetry;
    local v18 = l_Localization_0:getText("General", "SettingsFailedToLoad");
    local v19 = l_Localization_0:getText("General", "ButtonRetry");
    local l_l_TextService_0_TextSize_0 = l_TextService_0:GetTextSize(v18, l_Stylizer_0.fontStyle.Normal.TextSize, l_Stylizer_0.fontStyle.Normal.Font, Vector2.new(not not v13.failurePageRef:getValue() and v13.failurePageRef:getValue().AbsoluteSize.X - l_Stylizer_0.settingsPage.failLabelPaddingX or math.huge, math.huge));
    local l_l_TextService_0_TextSize_1 = l_TextService_0:GetTextSize(v19, l_Stylizer_0.fontStyle.Normal.TextSize, l_Stylizer_0.fontStyle.Normal.Font, Vector2.new(math.huge, math.huge));
    return v2.createElement(l_Container_0, {
        [v2.Ref] = v13.failurePageRef
    }, {
        Layout = v2.createElement("UIListLayout", {
            SortOrder = Enum.SortOrder.LayoutOrder,
            HorizontalAlignment = Enum.HorizontalAlignment.Center,
            VerticalAlignment = Enum.VerticalAlignment.Center,
            FillDirection = Enum.FillDirection.Vertical,
            Padding = UDim.new(0, l_Stylizer_0.settingsPage.failPageListPaddingY)
        }),
        Label = v2.createElement("TextLabel", v3.Dictionary.join(l_Stylizer_0.fontStyle.Normal, {
            LayoutOrder = 1,
            Text = v18,
            Size = UDim2.fromOffset(l_l_TextService_0_TextSize_0.X, l_l_TextService_0_TextSize_0.Y),
            BackgroundTransparency = 1
        }), {
            Padding = v2.createElement("UIPadding", {
                PaddingLeft = UDim.new(0, l_Stylizer_0.settingsPage.failLabelPaddingX / 2),
                PaddingRight = UDim.new(0, l_Stylizer_0.settingsPage.failLabelPaddingX / 2)
            })
        }),
        PublishButton = v2.createElement(l_Button_0, {
            LayoutOrder = 2,
            Style = "GameSettingsPrimaryButton",
            Text = v19,
            Size = UDim2.new(0, l_l_TextService_0_TextSize_1.X + l_Stylizer_0.settingsPage.reloadButton.paddingX, 0, l_l_TextService_0_TextSize_1.Y + l_Stylizer_0.settingsPage.reloadButton.paddingY),
            OnClick = function()
                l_OnRetry_0();
            end
        }, {
            v2.createElement(l_HoverArea_0, {
                Cursor = "PointingHand"
            })
        })
    });
end;
return (l_withContext_0({
    Stylizer = l_ContextServices_0.Stylizer,
    Localization = l_ContextServices_0.Localization
})(v11));


local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Src.Flags.getFFlagGameSettingsFixMoreLayoutIssues)();
local v2 = require(l_Parent_0.Packages.Roact);
local v3 = require(l_Parent_0.Packages.RoactRodux);
local v4 = require(l_Parent_0.Packages.Framework);
local l_ContextServices_0 = v4.ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local l_Util_0 = v4.Util;
local l_UI_0 = v4.UI;
local v9 = if not v1 then l_UI_0.Container else nil;
local l_Pane_0 = l_UI_0.Pane;
local l_LoadingIndicator_0 = l_UI_0.LoadingIndicator;
local l_ScrollingFrame_0 = l_UI_0.ScrollingFrame;
local l_TextLabel_0 = l_UI_0.TextLabel;
local v14 = if not v1 then l_Util_0.FitFrame.FitFrameOnAxis else nil;
local v15 = require(l_Parent_0.Src.Components.Header);
local v16 = require(l_Parent_0.Src.Components.SettingsPages.LoadFailedPage);
local v17 = require(l_Parent_0.Src.Thunks.LoadPageSettings);
local v18 = require(l_Parent_0.Src.Thunks.SavePageSettings);
local v19 = require(l_Parent_0.Src.Actions.SetPageSaveState);
local v20 = require(l_Parent_0.Src.Util.LoadState);
local v21 = require(l_Parent_0.Src.Util.SaveState);
local v22 = v2.Component:extend(script.Name);
v22.init = function(v23)
    v23.scrollingFrameRef = v2.createRef();
    v23.contentHeightChanged = function(v24)
        local l_current_0 = v23.scrollingFrameRef.current;
        if l_current_0 then
            l_current_0.CanvasSize = UDim2.new(1, 0, 0, v24.AbsoluteContentSize.Y + v23.props.Stylizer.settingsPage.settingPadding);
        end;
    end;
end;
v22.didMount = function(v26)
    local l_props_0 = v26.props;
    local l_LoadState_0 = l_props_0.LoadState;
    local l_SaveState_0 = l_props_0.SaveState;
    local l_SettingsLoadJobs_0 = l_props_0.SettingsLoadJobs;
    local l_PageId_0 = l_props_0.PageId;
    if l_LoadState_0 == v20.Unloaded then
        l_props_0.LoadPageSettings(l_PageId_0, l_SettingsLoadJobs_0);
    end;
    if l_SaveState_0 == nil then
        l_props_0.SetPageSaveState(l_PageId_0, v21.Unsaved);
    end;
end;
v22.didUpdate = function(v32, v33, _)
    local l_props_1 = v32.props;
    local l_PageId_1 = l_props_1.PageId;
    local l_SettingsSaveJobs_0 = l_props_1.SettingsSaveJobs;
    local l_SaveState_1 = l_props_1.SaveState;
    local l_SaveState_2 = v33.SaveState;
    if l_SaveState_1 == v21.Pending and l_SaveState_1 ~= l_SaveState_2 then
        l_props_1.SavePageSettings(l_PageId_1, l_SettingsSaveJobs_0);
    end;
end;
v22.render = function(v40)
    local l_props_2 = v40.props;
    local l_Stylizer_0 = l_props_2.Stylizer;
    local l_Title_0 = l_props_2.Title;
    local l_LoadState_1 = l_props_2.LoadState;
    local l_SettingsLoadJobs_1 = l_props_2.SettingsLoadJobs;
    local l_PageId_2 = l_props_2.PageId;
    local v47 = true;
    if l_props_2.ShowHeader ~= nil then
        v47 = l_props_2.ShowHeader;
    end;
    if l_LoadState_1 <= v20.Loading then
        return v2.createElement(if not v1 then v9 else l_Pane_0, {}, {
            Loading = v2.createElement(l_LoadingIndicator_0, {
                AnchorPoint = Vector2.new(0.5, 0.5),
                Position = UDim2.fromScale(0.5, 0.5)
            })
        });
    elseif l_LoadState_1 == v20.LoadFailed then
        return v2.createElement(v16, {
            OnRetry = function()
                l_props_2.LoadPageSettings(l_PageId_2, l_SettingsLoadJobs_1);
            end
        });
    elseif l_LoadState_1 == v20.Loaded then
        return v2.createElement(l_ScrollingFrame_0, {
            AutomaticCanvasSize = Enum.AutomaticSize.Y,
            Layout = if not v1 then nil else Enum.FillDirection.Vertical,
            Padding = if not v1 then nil else {
                Top = l_Stylizer_0.settingsPage.marginY,
                Bottom = l_Stylizer_0.settingsPage.marginY,
                Left = l_Stylizer_0.settingsPage.marginX,
                Right = l_Stylizer_0.settingsPage.marginX
            },
            Spacing = if not v1 then nil else UDim.new(0, l_Stylizer_0.settingsPage.settingPadding),
            [v2.Ref] = v40.scrollingFrameRef
        }, {
            Layout = if not v1 then v2.createElement("UIListLayout", {
                [v2.Change.AbsoluteContentSize] = v40.contentHeightChanged,
                SortOrder = Enum.SortOrder.LayoutOrder,
                FillDirection = Enum.FillDirection.Vertical,
                Padding = UDim.new(0, l_Stylizer_0.settingsPage.settingPadding)
            }) else nil,
            Padding = if not v1 then v2.createElement("UIPadding", {
                PaddingLeft = UDim.new(0, l_Stylizer_0.settingsPage.marginX),
                PaddingRight = UDim.new(0, l_Stylizer_0.settingsPage.marginX)
            }) else nil,
            Header = v47 and if v1 then v2.createElement(l_TextLabel_0, {
                AutomaticSize = Enum.AutomaticSize.XY,
                LayoutOrder = 1,
                Style = "Title",
                Text = l_Title_0,
                TextSize = 30
            }) else v2.createElement(v15, {
                LayoutOrder = 1,
                Title = l_Title_0
            }),
            Content = v2.createElement(if not v1 then v14 else l_Pane_0, if not v1 then {
                LayoutOrder = 2,
                BackgroundTransparency = 1,
                axis = v14.Axis.Vertical,
                minimumSize = UDim2.new(1, 0, 0, 0),
                contentPadding = UDim.new(0, l_Stylizer_0.settingsPage.settingPadding)
            } else {
                AutomaticSize = Enum.AutomaticSize.XY,
                Layout = Enum.FillDirection.Vertical,
                LayoutOrder = 2,
                Spacing = l_Stylizer_0.settingsPage.settingPadding
            }, v40.props.CreateChildren())
        });
    else
        return nil;
    end;
end;
return (v3.connect(function(v48, v49)
    local l_PageId_3 = v49.PageId;
    return {
        LoadState = v48.PageLoadState[l_PageId_3] or v20.Unloaded,
        SaveState = v48.PageSaveState[l_PageId_3]
    };
end, function(v51)
    return {
        LoadPageSettings = function(v52, v53)
            v51(v17(v52, v53));
        end,
        SavePageSettings = function(v54, v55)
            v51(v18(v54, v55));
        end,
        SetPageSaveState = function(v56, v57)
            v51(v19(v56, v57));
        end
    };
end)((l_withContext_0({
    Stylizer = l_ContextServices_0.Stylizer
})(v22))));


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Packages.Roact);
local v2 = require(l_Parent_0.Packages.Cryo);
local v3 = require(l_Parent_0.Packages.Framework);
local l_ScrollingFrame_0 = v3.UI.ScrollingFrame;
local l_ContextServices_0 = v3.ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local v7 = require(l_Parent_0.Src.Components.TableWithMenuItem);
local v8 = v1.PureComponent:extend("TableWithMenu");
v8.createHeaderLabels = function(_, v10, v11, v12)
    local v13 = {
        HeaderLayout = v1.createElement("UIListLayout", {
            FillDirection = Enum.FillDirection.Horizontal,
            HorizontalAlignment = Enum.HorizontalAlignment.Left,
            VerticalAlignment = Enum.VerticalAlignment.Center,
            SortOrder = Enum.SortOrder.LayoutOrder
        }),
        Padding = v1.createElement("UIPadding", {
            PaddingLeft = UDim.new(0, v10.table.textPadding),
            PaddingRight = UDim.new(0, v10.table.textPadding)
        })
    };
    local v14 = #v11;
    for v15 = 1, #v11 do
        v13[v15] = v1.createElement("TextLabel", v2.Dictionary.join(v10.fontStyle.Normal, {
            Size = UDim2.new(1 / v14, 0, 1, 0),
            LayoutOrder = v15,
            Text = v11[v15],
            BackgroundTransparency = 1,
            BorderSizePixel = 0,
            TextXAlignment = Enum.TextXAlignment.Left,
            TextTruncate = Enum.TextTruncate.AtEnd
        }));
    end;
    if v12 then
        v13[#v11 + 1] = v1.createElement("Frame", {
            BackgroundTransparency = 1,
            LayoutOrder = #v11 + 1,
            Size = UDim2.new(0, 0, 1, 0)
        }, {
            v12
        });
    end;
    return v13;
end;
v8.createDataLabels = function(v16, v17, v18, v19, v20)
    local v21 = {
        ListLayout = v1.createElement("UIListLayout", {
            FillDirection = Enum.FillDirection.Vertical,
            HorizontalAlignment = Enum.HorizontalAlignment.Left,
            VerticalAlignment = Enum.VerticalAlignment.Top,
            SortOrder = Enum.SortOrder.LayoutOrder,
            [v1.Ref] = v16.layoutRef
        })
    };
    local v22 = 0;
    for v23, v24 in pairs(v17) do
        local v25 = nil;
        if not v20 then
            v25 = v18;
        else
            v25 = {
                unpack(v18)
            };
            v20(v24, v25);
        end;
        v21[v23] = v1.createElement(v7, {
            RowData = v24.row,
            MenuItems = v25,
            OnItemClicked = function(v26)
                v19(v26, v23);
            end,
            LayoutOrder = v24.index,
            Icon = v24.icon or nil
        });
        v22 = v22 + 1;
    end;
    return v21, v22;
end;
v8.init = function(v27)
    v27.layoutRef = v1.createRef();
end;
v8.render = function(v28)
    local l_props_0 = v28.props;
    local l_Stylizer_0 = l_props_0.Stylizer;
    local l_Headers_0 = l_props_0.Headers;
    local l_Data_0 = l_props_0.Data;
    local l_MenuItems_0 = l_props_0.MenuItems;
    local l_OnItemClicked_0 = l_props_0.OnItemClicked;
    local l_LayoutOrder_0 = l_props_0.LayoutOrder;
    local v36 = l_props_0.NextPageFunc or function()
    end;
    local l_MenuItemsFilterFunc_0 = l_props_0.MenuItemsFilterFunc;
    local l_ScrollingFrameNextPageRequestDistance_0 = l_props_0.ScrollingFrameNextPageRequestDistance;
    local l_HeaderButton_0 = l_props_0.HeaderButton;
    local v40 = l_props_0.TableHeight or l_Stylizer_0.table.height;
    local l_ShowTableBackground_0 = l_props_0.ShowTableBackground;
    local v42 = v28:createHeaderLabels(l_Stylizer_0, l_Headers_0, l_HeaderButton_0);
    local v43, v44 = v28:createDataLabels(l_Data_0, l_MenuItems_0, l_OnItemClicked_0, l_MenuItemsFilterFunc_0);
    local v45 = v44 == 0 and l_props_0.EmptyText or nil;
    local v46 = not not l_ShowTableBackground_0 and l_Stylizer_0.table.item.background or nil;
    local v47 = UDim2.new(1, 0, 1, -l_Stylizer_0.table.header.height);
    return v1.createElement("Frame", {
        Size = UDim2.new(1, 0, 0, v40),
        BackgroundTransparency = 1,
        LayoutOrder = l_LayoutOrder_0
    }, {
        ListLayout = v1.createElement("UIListLayout", {
            SortOrder = Enum.SortOrder.LayoutOrder,
            VerticalAlignment = Enum.VerticalAlignment.Top,
            FillDirection = Enum.FillDirection.Vertical,
            HorizontalAlignment = Enum.HorizontalAlignment.Left
        }),
        HeaderFrame = v1.createElement("Frame", {
            Size = UDim2.new(1, 0, 0, l_Stylizer_0.table.header.height),
            BackgroundTransparency = 1,
            LayoutOrder = 1
        }, v42),
        ScrollingContainer = not v45 and v1.createElement(l_ScrollingFrame_0, {
            AutomaticCanvasSize = Enum.AutomaticSize.Y,
            Size = v47,
            NextPageFunc = v36,
            NextPageRequestDistance = l_ScrollingFrameNextPageRequestDistance_0,
            LayoutOrder = 2
        }, v43),
        EmptyTextBox = v45 and v1.createElement("TextLabel", v2.Dictionary.join(l_Stylizer_0.fontStyle.Smaller, {
            Size = v47,
            LayoutOrder = 2,
            Text = v45,
            BackgroundTransparency = not l_ShowTableBackground_0 and 1 or 0,
            BackgroundColor3 = v46,
            BorderColor3 = v46,
            TextXAlignment = Enum.TextXAlignment.Center,
            TextTruncate = Enum.TextTruncate.AtEnd
        }), {})
    });
end;
return (l_withContext_0({
    Stylizer = l_ContextServices_0.Stylizer
})(v8));


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Packages.Roact);
local v2 = require(l_Parent_0.Packages.Cryo);
local v3 = require(l_Parent_0.Packages.Framework);
local l_ContextServices_0 = v3.ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local l_UI_0 = v3.UI;
local l_HoverArea_0 = l_UI_0.HoverArea;
local l_DropdownMenu_0 = l_UI_0.DropdownMenu;
local l_FitTextLabel_0 = v3.Util.FitFrame.FitTextLabel;
local l_Tooltip_0 = l_UI_0.Tooltip;
local l_TextService_0 = game:GetService("TextService");
local v12 = v1.PureComponent:extend("TableWithMenuItem");
local function v21(v13, v14, v15)
    local v16 = {};
    local v17 = 1 / (#v14 + 1);
    for v18 = 0, #v14 do
        local v19 = v14[v18];
        local _ = nil;
        v16[v18] = if v18 == 0 then v1.createElement("Frame", {
            LayoutOrder = v18,
            Size = UDim2.new(v17, 0, 0, v13.table.icon.height),
            BackgroundTransparency = 1
        }, {
            Icon = v1.createElement("Frame", {
                Size = UDim2.new(0, v13.table.icon.height, 0, v13.table.icon.height),
                BackgroundTransparency = 1
            }, {
                Icon = v15
            })
        }) else if v18 ~= #v14 then v1.createElement("TextLabel", v2.Dictionary.join(v13.fontStyle.Smaller, {
            Size = UDim2.new(v17, 0, 0, v13.table.item.height),
            LayoutOrder = v18,
            Text = v19,
            BackgroundTransparency = 1,
            TextXAlignment = Enum.TextXAlignment.Left,
            TextTruncate = Enum.TextTruncate.AtEnd
        }), {
            Tooltip = v1.createElement(l_Tooltip_0, {
                Text = v19,
                Enabled = true
            })
        }) else v1.createElement("TextLabel", v2.Dictionary.join(v13.fontStyle.Smaller, {
            Size = UDim2.new(v17, -v13.table.menu.buttonSize, 0, v13.table.item.height),
            LayoutOrder = v18,
            Text = v19,
            BackgroundTransparency = 1,
            TextXAlignment = Enum.TextXAlignment.Left,
            TextTruncate = Enum.TextTruncate.AtEnd
        }), {
            Tooltip = v1.createElement(l_Tooltip_0, {
                Text = v19,
                Enabled = true
            })
        });
    end;
    return v16;
end;
local function v28(v22, v23)
    local v24 = {};
    for v25 = 1, #v23 do
        local v26 = v23[v25];
        local _ = nil;
        v24[v25] = if v25 ~= #v23 then v1.createElement("TextLabel", v2.Dictionary.join(v22.fontStyle.Smaller, {
            Size = UDim2.new(1 / #v23, 0, 0, v22.table.item.height),
            LayoutOrder = v25,
            Text = v26,
            BackgroundTransparency = 1,
            TextXAlignment = Enum.TextXAlignment.Left,
            TextTruncate = Enum.TextTruncate.AtEnd
        }), {
            Tooltip = v1.createElement(l_Tooltip_0, {
                Text = v26,
                Enabled = true
            })
        }) else v1.createElement("TextLabel", v2.Dictionary.join(v22.fontStyle.Smaller, {
            Size = UDim2.new(1 / #v23, -v22.table.menu.buttonSize, 0, v22.table.item.height),
            LayoutOrder = v25,
            Text = v26,
            BackgroundTransparency = 1,
            TextXAlignment = Enum.TextXAlignment.Left,
            TextTruncate = Enum.TextTruncate.AtEnd
        }), {
            Tooltip = v1.createElement(l_Tooltip_0, {
                Text = v26,
                Enabled = true
            })
        });
    end;
    return v24;
end;
v12.init = function(v29)
    v29.state = {
        showMenu = false,
        isButtonHovered = false,
        menuItem = nil
    };
    v29.buttonRef = v1.createRef();
    v29.onItemClicked = function(v30)
        v29.props.OnItemClicked(v30.Key);
        v29.hideMenu();
    end;
    v29.showMenu = function()
        v29:setState({
            showMenu = true
        });
    end;
    v29.hideMenu = function()
        v29:setState({
            showMenu = false,
            menuItem = v1.None
        });
    end;
    v29.onMenuItemEnter = function(v31)
        v29:setState({
            menuItem = v31
        });
    end;
    v29.onMenuItemLeave = function(v32)
        if v29.state.menuItem == v32 then
            v29:setState({
                menuItem = v1.None
            });
        end;
    end;
end;
v12.renderMenuItem = function(v33, v34, v35, v36, v37, v38)
    local l_Key_0 = v34.Key;
    local l_Text_0 = v34.Text;
    local v41 = v33.state.menuItem == l_Key_0;
    local l_l_TextService_0_TextSize_0 = l_TextService_0:GetTextSize(l_Text_0, v37.fontStyle.Normal.TextSize, v37.fontStyle.Normal.Font, Vector2.new(v38, math.huge));
    local l_background_0 = v37.dropDownEntry.background;
    if v41 then
        l_background_0 = v37.dropDownEntry.hovered;
    end;
    return v1.createElement("ImageButton", {
        Size = UDim2.new(0, v38, 0, l_l_TextService_0_TextSize_0.Y + v37.table.menu.buttonPaddingY),
        BackgroundColor3 = l_background_0,
        BorderSizePixel = 0,
        LayoutOrder = v35,
        AutoButtonColor = false,
        [v1.Event.Activated] = v36,
        [v1.Event.MouseEnter] = function()
            v33.onMenuItemEnter(l_Key_0);
        end,
        [v1.Event.MouseLeave] = function()
            v33.onMenuItemLeave(l_Key_0);
        end
    }, {
        v1.createElement(l_HoverArea_0, {
            Cursor = "PointingHand"
        });
        Label = v1.createElement("TextLabel", v2.Dictionary.join(v37.fontStyle.Smaller, {
            Size = UDim2.new(1, 0, 0, l_l_TextService_0_TextSize_0.Y),
            Position = UDim2.new(0, v37.table.textPadding, 0.5, 0),
            AnchorPoint = Vector2.new(0, 0.5),
            Text = l_Text_0,
            TextXAlignment = Enum.TextXAlignment.Left,
            BackgroundTransparency = 1
        }))
    });
end;
v12.render = function(v44)
    local l_props_0 = v44.props;
    local l_state_0 = v44.state;
    local l_Stylizer_0 = l_props_0.Stylizer;
    local l_RowData_0 = l_props_0.RowData;
    local l_LayoutOrder_0 = l_props_0.LayoutOrder;
    local l_Icon_0 = l_props_0.Icon;
    local v51 = not not l_Icon_0 and v21(l_Stylizer_0, l_RowData_0, l_Icon_0) or v28(l_Stylizer_0, l_RowData_0);
    local l_showMenu_0 = l_state_0.showMenu;
    local l_MenuItems_0 = l_props_0.MenuItems;
    local v54 = 0;
    for _, v56 in ipairs(l_MenuItems_0) do
        v54 = math.max(v54, l_TextService_0:GetTextSize(v56.Text, l_Stylizer_0.fontStyle.Normal.TextSize, l_Stylizer_0.fontStyle.Normal.Font, Vector2.new(math.huge, math.huge)).X + l_Stylizer_0.table.menu.itemPadding);
    end;
    v51[#l_RowData_0 + 1] = v1.createElement("ImageButton", {
        Size = UDim2.new(0, l_Stylizer_0.table.menu.buttonSize, 0, l_Stylizer_0.table.menu.buttonSize),
        LayoutOrder = #l_RowData_0 + 1,
        BackgroundTransparency = 1,
        [v1.Ref] = v44.buttonRef,
        [v1.Event.Activated] = v44.showMenu
    }, {
        Padding = v1.createElement("UIPadding", {
            PaddingBottom = UDim.new(0, l_Stylizer_0.table.item.padding)
        }),
        Dots = v1.createElement(l_FitTextLabel_0, v2.Dictionary.join(l_Stylizer_0.fontStyle.Normal, {
            Position = UDim2.new(0.5, 0, 0.5, 0),
            AnchorPoint = Vector2.new(0.5, 0.5),
            Text = "...",
            Font = Enum.Font.SourceSansBold,
            BackgroundTransparency = 1,
            width = l_Stylizer_0.table.menu.buttonSize
        })),
        Menu = v1.createElement(l_DropdownMenu_0, {
            Hide = not l_showMenu_0,
            Items = l_MenuItems_0,
            OnFocusLost = v44.hideMenu,
            OnItemActivated = v44.onItemClicked,
            OnRenderItem = function(v57, v58, v59)
                return v44:renderMenuItem(v57, v58, v59, l_Stylizer_0, v54);
            end,
            Width = v54
        });
        v1.createElement(l_HoverArea_0, {
            Cursor = "PointingHand"
        })
    });
    return v1.createElement("Frame", {
        Size = UDim2.new(1, 0, 0, not not l_Icon_0 and l_Stylizer_0.table.icon.height + 10 or l_Stylizer_0.table.item.height),
        BackgroundColor3 = l_Stylizer_0.table.item.background,
        BorderSizePixel = 0,
        LayoutOrder = l_LayoutOrder_0
    }, v2.Dictionary.join({
        RowLayout = v1.createElement("UIListLayout", {
            FillDirection = Enum.FillDirection.Horizontal,
            HorizontalAlignment = Enum.HorizontalAlignment.Left,
            VerticalAlignment = Enum.VerticalAlignment.Center,
            SortOrder = Enum.SortOrder.LayoutOrder
        }),
        Padding = v1.createElement("UIPadding", {
            PaddingLeft = UDim.new(0, l_Stylizer_0.table.textPadding),
            PaddingRight = UDim.new(0, l_Stylizer_0.table.textPadding)
        })
    }, v51));
end;
return (l_withContext_0({
    Stylizer = l_ContextServices_0.Stylizer,
    Mouse = l_ContextServices_0.Mouse
})(v12));


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Packages.Roact);
local v2 = require(l_Parent_0.Packages.Cryo);
local v3 = require(l_Parent_0.Packages.Framework);
local l_ContextServices_0 = v3.ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local l_Util_0 = v3.Util;
local l_UI_0 = v3.UI;
local l_TitledFrame_0 = l_UI_0.TitledFrame;
local l_ToggleButton_0 = l_UI_0.ToggleButton;
local l_TextWithInlineLink_0 = l_UI_0.TextWithInlineLink;
local l_TextLabel_0 = l_UI_0.TextLabel;
local l_LayoutOrderIterator_0 = l_Util_0.LayoutOrderIterator;
local v13 = v1.PureComponent:extend("ToggleButtonWithTitle");
v13.init = function(v14)
    v14.state = {
        descriptionWidth = 0
    };
    v14.descriptionRef = v1.createRef();
    v14.onResize = function()
        local l_current_0 = v14.descriptionRef.current;
        if l_current_0 then
            v14:setState({
                descriptionWidth = l_current_0.AbsoluteSize.X
            });
            return ;
        else
            return ;
        end;
    end;
end;
v13.render = function(v16)
    local l_props_0 = v16.props;
    local l_Stylizer_0 = l_props_0.Stylizer;
    local l_descriptionWidth_0 = v16.state.descriptionWidth;
    local l_Description_0 = l_props_0.Description;
    local l_Disabled_0 = l_props_0.Disabled;
    local l_LayoutOrder_0 = l_props_0.LayoutOrder;
    local l_Selected_0 = l_props_0.Selected;
    local l_Title_0 = l_props_0.Title;
    local l_OnClick_0 = l_props_0.OnClick;
    local l_ShowWarning_0 = l_props_0.ShowWarning;
    local l_LinkProps_0 = l_props_0.LinkProps;
    local v28 = l_LayoutOrderIterator_0.new();
    return v1.createElement(l_TitledFrame_0, {
        Title = l_Title_0,
        TitleWidth = l_Stylizer_0.settingsPage.toggleButtonTitleWidth,
        LayoutOrder = l_LayoutOrder_0
    }, {
        ToggleButton = v1.createElement(l_ToggleButton_0, {
            Disabled = l_Disabled_0,
            Selected = l_Selected_0,
            LayoutOrder = v28:getNextOrder(),
            OnClick = l_OnClick_0,
            Size = l_Stylizer_0.settingsPage.toggleButtonSize
        }),
        Description = l_props_0.Description and v1.createElement(l_TextLabel_0, v2.Dictionary.join(not not l_ShowWarning_0 and l_Stylizer_0.fontStyle.SmallError or l_Stylizer_0.fontStyle.Subtext, {
            AutomaticSize = Enum.AutomaticSize.XY,
            BackgroundTransparency = 1,
            LayoutOrder = v28:getNextOrder(),
            TextTransparency = not l_props_0.Disabled and 0 or 0.5,
            TextXAlignment = Enum.TextXAlignment.Left,
            TextYAlignment = Enum.TextYAlignment.Top,
            Text = l_Description_0,
            TextWrapped = true,
            width = UDim.new(0, l_descriptionWidth_0)
        })),
        LinkText = l_props_0.LinkProps and v1.createElement(l_TextWithInlineLink_0, v2.Dictionary.join(l_LinkProps_0, {
            LinkPlaceholder = "[link]",
            MaxWidth = l_descriptionWidth_0,
            LayoutOrder = v28:getNextOrder(),
            TextProps = v2.Dictionary.join(l_Stylizer_0.fontStyle.Subtext, {
                BackgroundTransparency = 1,
                TextXAlignment = Enum.TextXAlignment.Left
            }),
            HorizontalAlignment = Enum.HorizontalAlignment.Left
        })),
        DescriptionWidth = v1.createElement("Frame", {
            BackgroundTransparency = 1,
            LayoutOrder = v28:getNextOrder(),
            Size = UDim2.new(1, 0, 0, 0),
            [v1.Ref] = v16.descriptionRef,
            [v1.Change.AbsoluteSize] = v16.onResize
        })
    });
end;
return (l_withContext_0({
    Stylizer = l_ContextServices_0.Stylizer
})(v13));


local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Packages.Roact);
local l_ContextServices_0 = require(l_Parent_0.Packages.Framework).ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local v4 = v1.PureComponent:extend("NewUploadableIcon");
v4.init = function(v5)
    v5.mouseEnter = function()
        v5:mouseHoverChanged(true);
    end;
    v5.mouseLeave = function()
        v5:mouseHoverChanged(false);
    end;
end;
v4.mouseHoverChanged = function(v6, v7)
    local l_props_0 = v6.props;
    if not v7 then
        l_props_0.Mouse:__resetCursor();
        return ;
    else
        l_props_0.Mouse:__pushCursor("PointingHand");
        return ;
    end;
end;
v4.render = function(v9)
    local l_props_1 = v9.props;
    local l_Visible_0 = l_props_1.Visible;
    local l_Stylizer_0 = l_props_1.Stylizer;
    return v1.createElement("ImageButton", {
        Visible = l_Visible_0,
        BorderSizePixel = 0,
        BackgroundColor3 = l_Stylizer_0.newThumbnail.background,
        ImageColor3 = l_Stylizer_0.newThumbnail.border,
        Image = l_Stylizer_0.dottedBorder.square.image,
        ResampleMode = Enum.ResamplerMode.Pixelated,
        ScaleType = Enum.ScaleType.Slice,
        SliceCenter = l_Stylizer_0.dottedBorder.sliceCenter,
        Size = UDim2.new(0, 150, 0, 150),
        [v1.Event.MouseEnter] = v9.mouseEnter,
        [v1.Event.MouseLeave] = v9.mouseLeave,
        [v1.Event.Activated] = v9.props.OnClick
    }, {
        Plus = v1.createElement("ImageLabel", {
            BackgroundTransparency = 1,
            Image = l_Stylizer_0.plus.image,
            ImageColor3 = l_Stylizer_0.newThumbnail.plus,
            ImageTransparency = 0.4,
            ImageRectSize = l_Stylizer_0.plus.rectSize,
            ImageRectOffset = l_Stylizer_0.plus.rectOffset,
            Size = UDim2.new(0, 24, 0, 24),
            Position = UDim2.new(0.5, 0, 0.5, 0),
            AnchorPoint = Vector2.new(0.5, 0.5),
            ZIndex = 2
        })
    });
end;
return (l_withContext_0({
    Stylizer = l_ContextServices_0.Stylizer,
    Mouse = l_ContextServices_0.Mouse
})(v4));


local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Packages.Roact);
local v2 = require(l_Parent_0.Packages.Framework);
local v3 = require(l_Parent_0.Packages.Cryo);
local l_ContextServices_0 = v2.ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local v6 = require(l_Parent_0.Src.Util.DEPRECATED_Constants);
local v7 = v1.PureComponent:extend("UploadableIcon");
v7.init = function(v8)
    v8.state = {
        Hovering = false
    };
end;
v7.mouseHoverChanged = function(v9, v10)
    local l_props_0 = v9.props;
    if not v10 then
        l_props_0.Mouse:__resetCursor();
    else
        l_props_0.Mouse:__pushCursor("PointingHand");
    end;
    v9:setState({
        Hovering = v10
    });
end;
v7.render = function(v12)
    local l_Image_0 = v12.props.Image;
    local v14 = v12.props.Review or false;
    local v15 = v12.props.Preview or false;
    local l_Hovering_0 = v12.state.Hovering;
    local l_Stylizer_0 = v12.props.Stylizer;
    local l_Localization_0 = v12.props.Localization;
    return v1.createElement("ImageLabel", {
        Visible = v12.props.Visible,
        Size = UDim2.new(0, 150, 0, 150),
        BackgroundTransparency = 1,
        ClipsDescendants = true,
        Image = "rbxasset://textures/GameSettings/ModeratedAsset.jpg",
        [v1.Ref] = v12.buttonRef,
        [v1.Event.MouseEnter] = function()
            v12:mouseHoverChanged(true);
        end,
        [v1.Event.MouseLeave] = function()
            v12:mouseHoverChanged(false);
        end
    }, {
        Icon = v1.createElement("ImageLabel", {
            Visible = v12.props.Visible,
            BackgroundTransparency = 1,
            Image = l_Image_0,
            ScaleType = Enum.ScaleType.Crop,
            Size = UDim2.new(1, 0, 1, 0)
        }),
        InfoText = v1.createElement("TextLabel", v3.Dictionary.join(l_Stylizer_0.fontStyle.Normal, {
            Visible = v14 or v15,
            BackgroundTransparency = 0.3,
            BorderSizePixel = 0,
            BackgroundColor3 = v6.BLACK,
            TextColor3 = v6.WHITE,
            Size = UDim2.new(1, 0, 0, 30),
            Position = UDim2.new(0, 0, 1, 0),
            AnchorPoint = Vector2.new(0, 1),
            ZIndex = 3,
            Text = not not v15 and l_Localization_0:getText("General", "ImagePreview") or l_Localization_0:getText("General", "ImageReview")
        })),
        Change = v1.createElement("ImageButton", {
            Visible = l_Hovering_0 and not v14,
            BackgroundTransparency = 1,
            Size = UDim2.new(1, 0, 1.5, 0),
            AnchorPoint = Vector2.new(0, 1),
            Position = UDim2.new(0, 0, 1, 0),
            Image = v6.GRADIENT_IMAGE,
            ImageRectSize = v6.GRADIENT_RECT_SIZE,
            ImageColor3 = v6.BLACK,
            ZIndex = 4,
            [v1.Event.Activated] = v12.props.OnClick
        }, {
            Text = v1.createElement("TextLabel", v3.Dictionary.join(l_Stylizer_0.fontStyle.Normal, {
                BackgroundTransparency = 1,
                Size = UDim2.new(1, 0, 0, 30),
                Position = UDim2.new(0, 0, 1, -15),
                AnchorPoint = Vector2.new(0, 1),
                Text = l_Localization_0:getText("General", "GameIconChange"),
                ZIndex = 5
            }))
        })
    });
end;
return (l_withContext_0({
    Stylizer = l_ContextServices_0.Stylizer,
    Localization = l_ContextServices_0.Localization,
    Mouse = l_ContextServices_0.Mouse
})(v7));


local l_GuiService_0 = game:GetService("GuiService");
local l_HttpRbxApiService_0 = game:GetService("HttpRbxApiService");
local v2 = UDim2.new(0, 180, 0, 0);
local v3 = UDim2.new(1, -180, 0, 100);
local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local v5 = require(l_Parent_0.Packages.Roact);
local v6 = require(l_Parent_0.Packages.Framework);
local v7 = require(l_Parent_0.Packages.Cryo);
local l_UI_0 = v6.UI;
local l_BulletList_0 = l_UI_0.BulletList;
local l_TitledFrame_0 = l_UI_0.TitledFrame;
local v11 = require(l_Parent_0.Src.Util.DEPRECATED_Constants);
local l_ContextServices_0 = v6.ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local l_l_HttpRbxApiService_0_DocumentationUrl_0 = l_HttpRbxApiService_0:GetDocumentationUrl("articles/Game-Icons-Tips");
local v15 = require(l_Parent_0.Src.Components.UploadableIcon.UploadableIcon);
local v16 = require(l_Parent_0.Src.Components.UploadableIcon.NewUploadableIcon);
local v17 = v5.PureComponent:extend("UploadableIconWidget");
v17.init = function(v18)
    v18.mouseEnter = function()
        if v18.props.Enabled then
            v18:mouseHoverChanged(true);
        end;
    end;
    v18.mouseLeave = function()
        if v18.props.Enabled then
            v18:mouseHoverChanged(false);
        end;
    end;
end;
v17.mouseHoverChanged = function(v19, v20)
    local l_props_0 = v19.props;
    if not v20 then
        l_props_0.Mouse:__resetCursor();
        return ;
    else
        l_props_0.Mouse:__pushCursor("PointingHand");
        return ;
    end;
end;
v17.render = function(v22)
    local l_Enabled_0 = v22.props.Enabled;
    local l_Icon_0 = v22.props.Icon;
    local l_ErrorMessage_0 = v22.props.ErrorMessage;
    local l_Title_0 = v22.props.Title;
    local l_TutorialEnabled_0 = v22.props.TutorialEnabled;
    local l_Stylizer_0 = v22.props.Stylizer;
    local l_Localization_0 = v22.props.Localization;
    local v30 = nil;
    if not (typeof(l_Icon_0) == "Instance") or not l_Icon_0:IsA("File") then
        v30 = false;
    else
        l_Icon_0 = l_Icon_0:GetTemporaryId();
        v30 = true;
    end;
    local v31 = v5.createElement(l_BulletList_0, {
        Items = {
            l_Localization_0:getText("General", "GameIconHint", {
                fileTypes = table.concat(v11.IMAGE_TYPES, ", "),
                newline = "\n"
            }),
            l_Localization_0:getText("General", "GameIconModeration")
        },
        Position = v2,
        Size = v3,
        TextWrapped = true
    });
    local l_createElement_0 = v5.createElement;
    local l_l_TitledFrame_0_0 = l_TitledFrame_0;
    local v34 = {
        LayoutOrder = v22.props.LayoutOrder or 1,
        Title = l_Title_0
    };
    local v35 = {};
    local l_createElement_1 = v5.createElement;
    local l_v15_0 = v15;
    local v38 = {};
    local v39;
    if l_Enabled_0 then
        v39 = true;
        if not (l_Icon_0 == "None") then
            goto label0;
        end;
    end;
    v39 = v30;
    ::label0::;
    v38.Visible = v39;
    v38.Preview = v30;
    v38.Image = l_Icon_0;
    v38.OnClick = v22.props.AddIcon;
    v35.Icon = l_createElement_1(l_v15_0, v38);
    l_createElement_1 = v5.createElement;
    l_v15_0 = v16;
    v38 = {};
    v39 = l_Enabled_0;
    if v39 then
        v39 = false;
        if l_Icon_0 == "None" then
            v39 = not v30;
        end;
    end;
    v38.Visible = v39;
    v38.OnClick = v22.props.AddIcon;
    v35.NewIcon = l_createElement_1(l_v15_0, v38);
    v35.Notes = v31;
    v35.NewNote = l_TutorialEnabled_0 and v5.createElement("TextButton", v7.Dictionary.join(l_Stylizer_0.fontStyle.Smaller, {
        BackgroundTransparency = 1,
        Text = l_Localization_0:getText("General", "GameIconTutorial"),
        TextColor3 = l_Stylizer_0.hyperlink,
        Size = UDim2.new(1, 0, 0, 18),
        Position = UDim2.new(0, 180, 0, 92),
        TextXAlignment = Enum.TextXAlignment.Left,
        [v5.Event.MouseEnter] = v22.mouseEnter,
        [v5.Event.MouseLeave] = v22.mouseLeave,
        [v5.Event.Activated] = function()
            l_GuiService_0:OpenBrowserWindow(l_l_HttpRbxApiService_0_DocumentationUrl_0);
        end
    }));
    v35.ErrorMessage = l_ErrorMessage_0 and v5.createElement("TextLabel", v7.Dictionary.join(l_Stylizer_0.fontStyle.Error, {
        Size = UDim2.new(1, -180, 0, 40),
        Position = UDim2.new(0, 180, 0, 122),
        BackgroundTransparency = 1,
        Text = l_ErrorMessage_0,
        TextWrapped = true,
        TextXAlignment = Enum.TextXAlignment.Left,
        TextYAlignment = Enum.TextYAlignment.Center
    }));
    return l_createElement_0(l_l_TitledFrame_0_0, v34, v35);
end;
return (l_withContext_0({
    Stylizer = l_ContextServices_0.Stylizer,
    Localization = l_ContextServices_0.Localization,
    Mouse = l_ContextServices_0.Mouse
})(v17));


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Packages.Rodux);
local v2 = require(l_Parent_0.Src.ContextServices.Dialog);
local v3 = require(l_Parent_0.Src.Reducers.MainReducer);
local l_provideMockContext_0 = require(l_Parent_0.Packages.Framework).TestHelpers.provideMockContext;
local v5 = require(l_Parent_0.Src.Util.MakeTheme);
local v6 = {
    v1.thunkMiddleware
};
return function(v7, v8)
    if not v7 then
        v7 = {};
    end;
    local v9 = {};
    if not v7.ShowDialog then
        table.insert(v9, v2.new(function()
        end));
    end;
    local l_Store_0 = v7.Store;
    if l_Store_0 then
        table.insert(v9, l_Store_0);
    else
        l_Store_0 = v1.Store.new(v3, nil, v6);
    end;
    if not v7.Theme then
        table.insert(v9, (v5(true)));
    end;
    return l_provideMockContext_0(v9, v8);
end;


local v0 = require(script.Parent.Parent.Parent.Packages.Framework).ContextServices.ContextItem:extend("DialogProvider");
v0.new = function(v1)
    assert(typeof(v1) == "function", "No showDialog function was provided.");
    local v2 = {
        showDialog = v1
    };
    setmetatable(v2, v0);
    return v2;
end;
return v0;


local l_Parent_0 = script.Parent.Parent.Parent;
local l_ContextItem_0 = require(l_Parent_0.Packages.Framework).ContextServices.ContextItem;
local v2 = require(l_Parent_0.Src.ContextServices.NetworkingImpl);
local v3 = l_ContextItem_0:extend(script.Name);
v3.new = function(...)
    return (setmetatable({
        impl = v2.new(...)
    }, v3));
end;
v3.get = function(v4)
    return v4.impl;
end;
return v3;