local l_CoreGui_0 = game:GetService("CoreGui");
local v1 = require(l_CoreGui_0.RobloxGui.Modules.Stats.StatsUtils);
local _ = require(l_CoreGui_0.RobloxGui.Modules.Stats.StatsAggregator);
local v3 = require(l_CoreGui_0.RobloxGui.Modules.Stats.DecoratedValueLabel);
local l_TextPanelTopMarginPix_0 = v1.TextPanelTopMarginPix;
local v5 = UDim2.new(0, v1.TextPanelLeftMarginPix, 0, l_TextPanelTopMarginPix_0);
l_TextPanelTopMarginPix_0 = l_TextPanelTopMarginPix_0 + v1.TextPanelTitleHeightY;
local v6 = UDim2.new(0, v1.TextPanelLeftMarginPix, 0, l_TextPanelTopMarginPix_0);
l_TextPanelTopMarginPix_0 = l_TextPanelTopMarginPix_0 + v1.TextPanelLegendItemHeightY;
local v7 = UDim2.new(0, v1.TextPanelLeftMarginPix, 0, l_TextPanelTopMarginPix_0);
local v8 = UDim2.new(0, v1.TextPanelLeftMarginPix, 0, l_TextPanelTopMarginPix_0 + v1.TextPanelLegendItemHeightY);
local v9 = UDim2.new(1, -v1.TextPanelLeftMarginPix * 2, 0, v1.TextPanelTitleHeightY);
local v10 = UDim2.new(1, -v1.TextPanelLeftMarginPix * 2, 0, v1.TextPanelLegendItemHeightY);
local v11 = {};
v11.__index = v11;
v11.new = function(v12)
    local v13 = {};
    setmetatable(v13, v11);
    v13._statType = v12;
    v13._frame = Instance.new("Frame");
    v13._frame.BackgroundTransparency = 1;
    v13._frame.ZIndex = v1.TextZIndex;
    v13._titleLabel = Instance.new("TextLabel");
    v1.StyleTextWidget(v13._titleLabel);
    v13._titleLabel.FontSize = v1.PanelTitleFontSize;
    v13._titleLabel.Text = v13:_getTitle();
    v13._titleLabel.Parent = v13._frame;
    v13._titleLabel.Size = v9;
    v13._titleLabel.Position = v5;
    v13._titleLabel.TextXAlignment = Enum.TextXAlignment.Left;
    v13._titleLabel.TextYAlignment = Enum.TextYAlignment.Top;
    v13:_addCurrentValueWidget();
    v13:_addTargetValueWidget();
    v13:_addAverageValueWidget();
    return v13;
end;
v11._getTarget = function(v14)
    if v14._performanceStats == nil then
        return 0;
    else
        local l_FirstChild_0 = v14._performanceStats:FindFirstChild(v14._statMaxName);
        if l_FirstChild_0 == nil then
            return 0;
        else
            return l_FirstChild_0:GetValue();
        end;
    end;
end;
v11._addCurrentValueWidget = function(v16)
    v16._currentValueWidget = v3.new(v16._statType, "Current");
    v16._currentValueWidget:PlaceInParent(v16._frame, v10, v6);
    local l_DecorationFrame_0 = v16._currentValueWidget:GetDecorationFrame();
    local l_ImageLabel_0 = Instance.new("ImageLabel");
    l_ImageLabel_0.Position = UDim2.new(0.5, -v1.OvalKeySize / 2, 0.5, -v1.OvalKeySize / 2);
    l_ImageLabel_0.Size = UDim2.new(0, v1.OvalKeySize, 0, v1.OvalKeySize);
    l_ImageLabel_0.Parent = l_DecorationFrame_0;
    l_ImageLabel_0.BackgroundTransparency = 1;
    l_ImageLabel_0.Image = "rbxasset://textures/ui/PerformanceStats/OvalKey.png";
    l_ImageLabel_0.BorderSizePixel = 0;
    v16._currentValueDecoration = l_ImageLabel_0;
end;
v11._addTargetValueWidget = function(v19)
    v19._targetValueWidget = v3.new(v19._statType, "Target");
    v19._targetValueWidget:PlaceInParent(v19._frame, v10, v7);
    local l_DecorationFrame_1 = v19._targetValueWidget:GetDecorationFrame();
    local l_ImageLabel_1 = Instance.new("ImageLabel");
    l_ImageLabel_1.Position = UDim2.new(0.5, -v1.TargetKeyWidth / 2, 0.5, -v1.TargetKeyHeight / 2);
    l_ImageLabel_1.Size = UDim2.new(0, v1.TargetKeyWidth, 0, v1.TargetKeyHeight);
    l_ImageLabel_1.Parent = l_DecorationFrame_1;
    l_ImageLabel_1.BackgroundTransparency = 1;
    l_ImageLabel_1.Image = "rbxasset://textures/ui/PerformanceStats/TargetKey.png";
end;
v11._addAverageValueWidget = function(v22)
    v22._averageValueWidget = v3.new(v22._statType, "Average");
    v22._averageValueWidget:PlaceInParent(v22._frame, v10, v8);
    local l_DecorationFrame_2 = v22._averageValueWidget:GetDecorationFrame();
    local l_Frame_0 = Instance.new("Frame");
    l_Frame_0.Position = UDim2.new(0, 0, 0.5, -v1.GraphAverageLineTotalThickness / 2);
    l_Frame_0.Size = UDim2.new(1, 0, 0, v1.GraphAverageLineInnerThickness);
    l_Frame_0.Parent = l_DecorationFrame_2;
    v1.StyleAverageLine(l_Frame_0);
end;
v11._getTitle = function(v25)
    return v1.TypeToName[v25._statType];
end;
v11.PlaceInParent = function(v26, v27, v28, v29)
    v26._frame.Position = v29;
    v26._frame.Size = v28;
    v26._frame.Parent = v27;
end;
v11.SetStatsAggregator = function(v30, v31)
    if v30._aggregator then
        v30._aggregator:RemoveListener(v30._listenerId);
        v30._listenerId = nil;
        v30._aggregator = nil;
    end;
    v30._aggregator = v31;
    v30:_refreshVisibility();
end;
v11.SetVisible = function(v32, v33)
    v32._frame.Visible = v33;
    v32:_refreshVisibility();
end;
v11._shouldBeVisible = function(v34)
    if not v1.PerformanceStatsShouldBeVisible() then
        return false;
    else
        return v34._frame.Visible;
    end;
end;
v11._refreshVisibility = function(v35)
    if not v35:_shouldBeVisible() then
        v35:_stopListening();
        return ;
    else
        v35:_startListening();
        v35:_updateFromAggregator();
        return ;
    end;
end;
v11._stopListening = function(v36)
    if v36._aggregator == nil then
        return ;
    elseif v36._listenerId == nil then
        return ;
    else
        v36._aggregator:RemoveListener(v36._listenerId);
        v36._listenerId = nil;
        return ;
    end;
end;
v11._startListening = function(v37)
    if v37._aggregator == nil then
        return ;
    elseif v37._listenerId ~= nil then
        return ;
    else
        v37._listenerId = v37._aggregator:AddListener(function()
            v37:_updateFromAggregator();
        end);
        return ;
    end;
end;
v11._updateFromAggregator = function(v38)
    local v39 = 0;
    local v40 = 0;
    local v41 = 0;
    if v38._aggregator ~= nil then
        v39 = v38._aggregator:GetLatestValue();
        v40 = v38._aggregator:GetAverage();
        v41 = v38._aggregator:GetTarget();
    end;
    v38._currentValueWidget:SetValue(v39);
    v38._targetValueWidget:SetValue(v41);
    v38._averageValueWidget:SetValue(v40);
    v38._currentValueDecoration.ImageColor3 = v1.GetColorForValue(v39, v41);
end;
v11.SetZIndex = function(v42, v43)
    v42._frame.ZIndex = v43;
    v42._titleLabel.ZIndex = v43;
    v42._currentValueWidget:SetZIndex(v43);
    v42._averageValueWidget:SetZIndex(v43);
end;
return v11;


local l_CoreGui_0 = game:GetService("CoreGui");
local l_Players_0 = game:GetService("Players");
local l_GameSettings_0 = UserSettings().GameSettings;
local v3 = require(l_CoreGui_0.RobloxGui.Modules.StyleWidgets);
local v4 = require(l_CoreGui_0.RobloxGui.Modules.RobloxTranslator);
LocalizedGetKey = function(v5)
    local l_v5_0 = v5;
    pcall(function()
        local _ = game:GetService("LocalizationService"):GetCorescriptLocalizations()[1];
        l_v5_0 = v4:FormatByKey(v5);
    end);
    return l_v5_0;
end;
local l_status_0, l_result_0 = pcall(function()
    return settings():GetFFlag("UseNotificationsLocalization");
end);
local _ = l_status_0 and l_result_0;
local v11 = {
    SelectedBackgroundColor = Color3.new(0.4, 0.4, 0.4),
    FontColor = Color3.new(1, 1, 1),
    GraphBarGreenColor = Color3.new(0.49411764705882355, 0.8274509803921568, 0.12941176470588237),
    GraphBarYellowColor = Color3.new(0.8196078431372549, 0.8274509803921568, 0.12941176470588237),
    GraphBarRedColor = Color3.new(0.8274509803921568, 0.34509803921568627, 0.12941176470588237),
    GraphAverageLineColor = Color3.new(0.8156862745098039, 0.00392156862745098, 0.10588235294117647),
    GraphAverageLineBorderColor = Color3.new(1, 1, 1),
    NormalColor = Color3.fromRGB(31, 31, 31),
    Transparency = 0.5,
    MiniPanelTitleFontSize = Enum.FontSize.Size12,
    MiniPanelValueFontSize = Enum.FontSize.Size10,
    PanelTitleFontSize = Enum.FontSize.Size24,
    PanelValueFontSize = Enum.FontSize.Size14,
    PanelGraphFontSize = Enum.FontSize.Size10,
    ButtonHeight = 36 + v3.TabSelectionHeight,
    ViewerTopMargin = 10,
    ViewerHeight = 144,
    ViewerWidth = 306,
    TextZIndex = 5,
    GraphZIndex = 2,
    GraphTargetLineInnerThickness = 2,
    GraphAverageLineInnerThickness = 2,
    GraphAverageLineBorderThickness = 1
};
v11.GraphAverageLineTotalThickness = v11.GraphAverageLineInnerThickness + 2 * v11.GraphAverageLineBorderThickness;
v11.TextPanelTitleHeightY = 52;
v11.TextPanelLegendItemHeightY = 20;
v11.TextPanelLeftMarginPix = 10;
v11.TextPanelTopMarginPix = 10;
v11.DecorationSize = 12;
v11.OvalKeySize = 8;
v11.TargetKeyWidth = 11;
v11.TargetKeyHeight = 2;
v11.DecorationMargin = 6;
v11.StatType_Memory = "st_Memory";
v11.StatType_CPU = "st_CPU";
v11.StatType_GPU = "st_GPU";
v11.StatType_NetworkSent = "st_NetworkSent";
v11.StatType_NetworkReceived = "st_NetworkReceived";
v11.StatType_Ping = "st_Ping";
v11.AllStatTypes = {
    v11.StatType_Memory,
    v11.StatType_CPU,
    v11.StatType_GPU,
    v11.StatType_NetworkSent,
    v11.StatType_NetworkReceived,
    v11.StatType_Ping
};
v11.StatNames = {
    [v11.StatType_Memory] = "Memory",
    [v11.StatType_CPU] = "CPU",
    [v11.StatType_GPU] = "GPU",
    [v11.StatType_NetworkSent] = "NetworkSent",
    [v11.StatType_NetworkReceived] = "NetworkReceived",
    [v11.StatType_Ping] = "Ping"
};
v11.StatMaxNames = {
    [v11.StatType_Memory] = "MaxMemory",
    [v11.StatType_CPU] = "MaxCPU",
    [v11.StatType_GPU] = "MaxGPU",
    [v11.StatType_NetworkSent] = "MaxNetworkSent",
    [v11.StatType_NetworkReceived] = "MaxNetworkReceived",
    [v11.StatType_Ping] = "MaxPing"
};
v11.NumButtonTypes = #v11.AllStatTypes;
v11.TypeToName = {
    [v11.StatType_Memory] = "Memory",
    [v11.StatType_CPU] = "CPU",
    [v11.StatType_GPU] = "GPU",
    [v11.StatType_NetworkSent] = LocalizedGetKey("Sent") .. "\n" .. LocalizedGetKey("Network"),
    [v11.StatType_NetworkReceived] = LocalizedGetKey("Received") .. "\n" .. LocalizedGetKey("Network"),
    [v11.StatType_Ping] = "Ping"
};
v11.TypeToShortName = {
    [v11.StatType_Memory] = "Mem",
    [v11.StatType_CPU] = "CPU",
    [v11.StatType_GPU] = "GPU",
    [v11.StatType_NetworkSent] = "Sent",
    [v11.StatType_NetworkReceived] = "Recv",
    [v11.StatType_Ping] = "Ping"
};
v11.MemoryAnalyzerTypeToName = {
    HumanoidTexture = "Humanoid Textures",
    HumanoidTextureOrphan = "Humanoid Textures (Unused)",
    OtherTexture = "Other Textures",
    OtherTextureOrphan = "Other Textures (Unused)",
    CoreScript = "Core Scripts",
    UserScript = "User Scripts",
    Sounds = "Sounds",
    CSG = "Solid Models",
    Meshes = "Meshes"
};
v11.GetMemoryAnalyzerStatName = function(v12)
    if v11.MemoryAnalyzerTypeToName[v12] == nil then
        return v12;
    else
        return v11.MemoryAnalyzerTypeToName[v12];
    end;
end;
v11.StyleFrame = function(v13)
    v13.BackgroundColor3 = v11.NormalColor;
    v13.BackgroundTransparency = v11.Transparency;
end;
v11.StyleButton = function(v14)
    v14.BackgroundColor3 = v11.NormalColor;
    v14.BackgroundTransparency = v11.Transparency;
end;
v11.StyleTextWidget = function(v15)
    v15.BackgroundTransparency = 1;
    v15.TextColor3 = v11.FontColor;
    v15.Font = Enum.Font.SourceSansBold;
end;
v11.StyleButtonSelected = function(v16, v17)
    v11.StyleButton(v16);
    if v17 then
        v16.BackgroundColor3 = v11.SelectedBackgroundColor;
    end;
end;
local l_status_1, l_result_1 = pcall(function()
    return settings():GetFFlag("UseNotificationsLocalization");
end);
local v20 = l_status_1 and l_result_1;
local function _(v21, v22)
    pcall(function()
        local l_LocalizationService_0 = game:GetService("LocalizationService");
        v22 = l_LocalizationService_0:GetCorescriptLocalizations()[1]:GetString(l_LocalizationService_0.RobloxLocaleId, v21);
    end);
    return v22;
end;
v11.FormatTypedValue = function(v25, v26)
    if v20 then
        if not (v26 ~= v11.StatType_CPU) or v26 == v11.StatType_GPU then
            local l_gsub_0 = string.gsub;
            local v28 = string.format("%.2f MB", v25);
            local l_pcall_0 = pcall;
            local v30 = "StatsUtil.ms";
            local v31;
            do
                local l_v28_0 = v28;
                l_pcall_0(function()
                    local l_LocalizationService_1 = game:GetService("LocalizationService");
                    l_v28_0 = l_LocalizationService_1:GetCorescriptLocalizations()[1]:GetString(l_LocalizationService_1.RobloxLocaleId, v30);
                end);
                v31 = l_v28_0;
            end;
            return l_gsub_0(v31, "{RBX_NUMBER}", string.format("%.2f", v25));
        elseif not (v26 ~= v11.StatType_NetworkSent) or v26 == v11.StatType_NetworkReceived then
            local l_gsub_1 = string.gsub;
            local v35 = string.format("%.2f KB/s", v25);
            local l_pcall_1 = pcall;
            local v37 = "StatsUtil.KBps";
            local v38;
            do
                local l_v35_0 = v35;
                l_pcall_1(function()
                    local l_LocalizationService_2 = game:GetService("LocalizationService");
                    l_v35_0 = l_LocalizationService_2:GetCorescriptLocalizations()[1]:GetString(l_LocalizationService_2.RobloxLocaleId, v37);
                end);
                v38 = l_v35_0;
            end;
            return l_gsub_1(v38, "{RBX_NUMBER}", string.format("%.2f", v25));
        end;
    end;
    if v26 == v11.StatType_Memory then
        return string.format("%.2f MB", v25);
    elseif v26 == v11.StatType_CPU then
        return string.format("%.2f ms", v25);
    elseif v26 == v11.StatType_GPU then
        return string.format("%.2f ms", v25);
    elseif v26 == v11.StatType_NetworkSent then
        return string.format("%.2f KB/s", v25);
    elseif v26 == v11.StatType_NetworkReceived then
        return string.format("%.2f KB/s", v25);
    elseif v26 == v11.StatType_Ping then
        return string.format("%.2f ms", v25);
    else
        return ;
    end;
end;
v11.StyleAverageLine = function(v41)
    v41.BackgroundColor3 = v11.GraphAverageLineColor;
    v41.BorderSizePixel = v11.GraphAverageLineBorderThickness;
    v41.BorderColor3 = v11.GraphAverageLineBorderColor;
end;
v11.GetColorForValue = function(v42, v43)
    if v42 < 0.666 * v43 then
        return v11.GraphBarGreenColor;
    elseif v42 < 1.333 * v43 then
        return v11.GraphBarYellowColor;
    else
        return v11.GraphBarRedColor;
    end;
end;
v11.PerformanceStatsShouldBeVisible = function()
    return l_GameSettings_0.PerformanceStatsVisible and l_Players_0.LocalPlayer ~= nil;
end;
return v11;


local l_CoreGui_0 = game:GetService("CoreGui");
local v1 = require(l_CoreGui_0.RobloxGui.Modules.Stats.StatsUtils);
local v2 = require(l_CoreGui_0.RobloxGui.Modules.Stats.StatsTextPanel);
local v3 = require(l_CoreGui_0.RobloxGui.Modules.Stats.StatsAnnotatedGraph);
local v4 = UDim2.new(0, 0, 0, 0);
local v5 = UDim2.new(0.4, 0, 1, 0);
local v6 = UDim2.new(0.4, 0, 0, 0);
local v7 = UDim2.new(0.6, 0, 1, 0);
local v8 = {};
v8.__index = v8;
v8.new = function()
    local v9 = {};
    setmetatable(v9, v8);
    v9._frameImageLabel = Instance.new("ImageLabel");
    v9._frameImageLabel.Name = "PS_Viewer";
    v9._frameImageLabel.Image = "rbxasset://textures/ui/PerformanceStats/BackgroundRounded.png";
    v9._frameImageLabel.ScaleType = Enum.ScaleType.Slice;
    v9._frameImageLabel.SliceCenter = Rect.new(10, 10, 22, 22);
    v9._frameImageLabel.BackgroundTransparency = 1;
    v9._frameImageLabel.ImageColor3 = v1.NormalColor;
    v9._frameImageLabel.ImageTransparency = v1.Transparency;
    v9._textPanel = nil;
    v9._statType = nil;
    v9._graph = nil;
    return v9;
end;
v8.OnPerformanceStatsShouldBeVisibleChanged = function(v10)
    if v10._graph then
        v10._graph:OnPerformanceStatsShouldBeVisibleChanged();
    end;
    if v10._textPanel then
        v10._textPanel:OnPerformanceStatsShouldBeVisibleChanged();
    end;
    if v10._textPanel then
        v10._textPanel:OnVisibilityChanged();
    end;
end;
v8.GetIsVisible = function(v11)
    return v11._frameImageLabel.Visible;
end;
v8.GetStatType = function(v12)
    return v12._statType;
end;
v8.SetSizeAndPosition = function(v13, v14, v15)
    v13._frameImageLabel.Size = v14;
    v13._frameImageLabel.Position = v15;
end;
v8.SetParent = function(v16, v17)
    v16._frameImageLabel.Parent = v17;
end;
v8.SetVisible = function(v18, v19)
    v18._frameImageLabel.Visible = v19;
    if v18._graph then
        v18._graph:SetVisible(v19);
    end;
    if v18._textPanel then
        v18._textPanel:SetVisible(v19);
    end;
end;
v8.SetStatType = function(v20, v21)
    v20._statType = v21;
    v20._frameImageLabel:ClearAllChildren();
    if v20._textPanel then
        v20._textPanel:SetVisible(false);
        v20._textPanel = nil;
    end;
    v20._textPanel = v2.new(v21);
    v20._textPanel:PlaceInParent(v20._frameImageLabel, v5, v4);
    v20._graph = v3.new(v21, true);
    v20._graph:PlaceInParent(v20._frameImageLabel, v7, v6);
    v20._textPanel:SetZIndex(v1.TextZIndex);
    v20._graph:SetZIndex(v1.GraphZIndex);
    v20._graph:SetVisible(v20._frameImageLabel.Visible);
    v20._textPanel:SetVisible(v20._frameImageLabel.Visible);
    v20:_applyStatsAggregator();
end;
v8._applyStatsAggregator = function(v22)
    if v22._aggregator == nil then
        return ;
    else
        if v22._textPanel then
            v22._textPanel:SetStatsAggregator(v22._aggregator);
        end;
        if v22._graph then
            v22._graph:SetStatsAggregator(v22._aggregator);
        end;
        return ;
    end;
end;
v8.SetStatsAggregator = function(v23, v24)
    v23._aggregator = v24;
    v23:_applyStatsAggregator();
end;
return v8;


local v0 = {};
v0.__index = v0;
v0.new = function(v1, v2)
    local v3 = {};
    setmetatable(v3, v0);
    v3._id = v1;
    v3._parent = v2;
    v3._children = {};
    return v3;
end;
v0.getValue = function(v4)
    return v4._value;
end;
v0.getLabel = function(v5)
    return v5._label;
end;
v0.getChildren = function(v6)
    return v6._children;
end;
v0.getId = function(v7)
    return v7._id;
end;
v0.getStackDepth = function(v8)
    if v8._parent == nil then
        return 0;
    else
        return 1 + v8._parent:getStackDepth();
    end;
end;
v0.setLabelAndValue = function(v9, v10, v11)
    v9._label = v10;
    v9._value = v11;
end;
v0.getOrMakeChildById = function(v12, v13)
    for _, v15 in ipairs(v12._children) do
        if v15:getId() == v13 then
            return v15;
        end;
    end;
    local v16 = v0.new(v13, v12);
    table.insert(v12._children, v16);
    return v16;
end;
v0.removeChildren = function(v17)
    if v17._children then
        for _, v19 in ipairs(v17._children) do
            v19:removeChildren();
            v19 = nil;
        end;
        v17._id = nil;
        v17._parent = nil;
        v17._children = nil;
        return ;
    else
        return ;
    end;
end;
v0.removeChild = function(v20, v21)
    for _, v23 in ipairs(v20._children) do
        if v23:getId() == v21 then
            v23:removeChildren();
            return ;
        end;
    end;
end;
return v0;


local v0 = require(game:GetService("CoreGui"):WaitForChild("RobloxGui").Modules.Settings.Utility);
local v1 = {
    TabSelectionHeight = 6
};
v1.MakeTabSelectionWidget = function(v2)
    return (v0:Create("ImageLabel")({
        Name = "TabSelection",
        Image = "rbxasset://textures/ui/Settings/MenuBarAssets/MenuSelection.png",
        ScaleType = Enum.ScaleType.Slice,
        SliceCenter = Rect.new(3, 1, 4, 5),
        Visible = false,
        BackgroundTransparency = 1,
        Size = UDim2.new(1, 0, 0, v1.TabSelectionHeight),
        Position = UDim2.new(0, 0, 1, -v1.TabSelectionHeight),
        Parent = v2
    }));
end;
return v1;


local v0 = Color3.new(0.10588235294117647, 0.9882352941176471, 0.4196078431372549);
local l_RobloxGui_0 = game:GetService("CoreGui"):WaitForChild("RobloxGui");
local l_UserInputService_0 = game:GetService("UserInputService");
local _ = game:GetService("GuiService");
local l_Players_0 = game:GetService("Players");
local v5 = false;
local l_l_UserInputService_0_Platform_0 = l_UserInputService_0:GetPlatform();
local v7 = true;
if l_l_UserInputService_0_Platform_0 ~= Enum.Platform.XBoxOne then
    v7 = true;
    if l_l_UserInputService_0_Platform_0 ~= Enum.Platform.WiiU then
        v7 = true;
        if l_l_UserInputService_0_Platform_0 ~= Enum.Platform.PS4 then
            v7 = true;
            if l_l_UserInputService_0_Platform_0 ~= Enum.Platform.AndroidTV then
                v7 = true;
                if l_l_UserInputService_0_Platform_0 ~= Enum.Platform.XBox360 then
                    v7 = true;
                    if l_l_UserInputService_0_Platform_0 ~= Enum.Platform.PS3 then
                        v7 = true;
                        if l_l_UserInputService_0_Platform_0 ~= Enum.Platform.Ouya then
                            v7 = l_l_UserInputService_0_Platform_0 == Enum.Platform.SteamOS;
                        end;
                    end;
                end;
            end;
        end;
    end;
end;
v5 = v7;
l_l_UserInputService_0_Platform_0 = {
    Create = function(v8)
        return function(v9)
            local v10 = Instance.new(v8);
            for v11, v12 in pairs(v9) do
                if type(v11) == "number" then
                    v12.Parent = v10;
                else
                    v10[v11] = v12;
                end;
            end;
            return v10;
        end;
    end
};
v7 = function()
    local v13 = {
        Container = nil
    };
    local v14 = {};
    local l_BindableEvent_0 = Instance.new("BindableEvent");
    local l_BindableEvent_1 = Instance.new("BindableEvent");
    local function v17()
        if not v13.Container then
            v13.Container = l_l_UserInputService_0_Platform_0.Create("ImageButton")({
                Name = "TopRightContainer",
                Size = UDim2.new(0, 350, 0, 100),
                Position = UDim2.new(1, -415, 0, 10),
                AutoButtonColor = false,
                Image = "",
                Active = false,
                BackgroundTransparency = 1,
                Parent = l_RobloxGui_0
            });
        end;
    end;
    removeFromDisplayStack = function(v18)
        local v19 = nil;
        for v20 = 1, #v14 do
            if v14[v20] == v18 then
                v19 = v20 + 1;
                break;
            end;
        end;
        local l_v18_0 = v18;
        for v22 = v19, #v14 do
            local v23 = v14[v22];
            v23.Position = UDim2.new(v23.Position.X.Scale, v23.Position.X.Offset, v23.Position.Y.Scale, l_v18_0.AbsolutePosition.Y);
            l_v18_0 = v23;
        end;
        l_BindableEvent_0:Fire();
    end;
    addBackToDisplayStack = function(v24)
        local v25 = 0;
        for v26 = 1, #v14 do
            if v14[v26] == v24 then
                v25 = v26 + 1;
                break;
            end;
        end;
        local l_v24_0 = v24;
        for v28 = v25, #v14 do
            local v29 = v14[v28];
            v29.Position = UDim2.new(v29.Position.X.Scale, v29.Position.X.Offset, v29.Position.Y.Scale, (l_v24_0.AbsolutePosition.Y + l_v24_0.AbsoluteSize.Y) + 4);
            l_v24_0 = v29;
        end;
        l_BindableEvent_0:Fire();
    end;
    addToDisplayStack = function(v30)
        local v31 = nil;
        if #v14 > 0 then
            v31 = v14[#v14];
        end;
        v14[#v14 + 1] = v30;
        local v32 = 0;
        if v31 then
            v32 = (v31.AbsolutePosition.Y + v31.AbsoluteSize.Y) + 4;
        end;
        v30.Position = UDim2.new(v30.Position.X.Scale, v30.Position.X.Offset, v30.Position.Y.Scale, v32);
        v17();
        v30.Parent = v13.Container;
        v30.Changed:connect(function(v33)
            if v33 == "Visible" then
                if v30.Visible then
                    addBackToDisplayStack(v30);
                else
                    removeFromDisplayStack(v30);
                    return ;
                end;
            end;
        end);
        l_BindableEvent_0:Fire();
    end;
    v13.CreateHealthBar = function(_)
        v13.HealthContainer = l_l_UserInputService_0_Platform_0.Create("Frame")({
            Name = "HealthContainer",
            Size = UDim2.new(1, -86, 0, 50),
            Position = UDim2.new(0, 92, 0, 0),
            BorderSizePixel = 0,
            BackgroundColor3 = Color3.new(0, 0, 0),
            BackgroundTransparency = 0.5
        });
        local v35 = l_l_UserInputService_0_Platform_0.Create("Frame")({
            Name = "HealthFill",
            Size = UDim2.new(1, 0, 1, 0),
            Position = UDim2.new(0, 0, 0, 0),
            BorderSizePixel = 0,
            BackgroundTransparency = 0,
            BackgroundColor3 = v0,
            Parent = l_l_UserInputService_0_Platform_0.Create("Frame")({
                Name = "HealthFillHolder",
                Size = UDim2.new(1, -10, 1, -10),
                Position = UDim2.new(0, 5, 0, 5),
                BorderSizePixel = 0,
                BackgroundColor3 = Color3.new(1, 1, 1),
                BackgroundTransparency = 1,
                Parent = v13.HealthContainer
            })
        });
        local _ = l_l_UserInputService_0_Platform_0.Create("TextLabel")({
            Name = "HealthText",
            Size = UDim2.new(0, 98, 0, 50),
            Position = UDim2.new(0, -100, 0, 0),
            BackgroundTransparency = 0.5,
            BackgroundColor3 = Color3.new(0, 0, 0),
            Font = Enum.Font.SourceSans,
            FontSize = Enum.FontSize.Size36,
            Text = "Health",
            TextColor3 = Color3.new(1, 1, 1),
            BorderSizePixel = 0,
            Parent = v13.HealthContainer
        });
        local v37 = l_l_UserInputService_0_Platform_0.Create("TextLabel")({
            Visible = false
        });
        local v38 = l_l_UserInputService_0_Platform_0.Create("TextLabel")({
            Visible = false
        });
        addToDisplayStack(v13.HealthContainer);
        v17();
        v13.HealthContainer.Changed:connect(function()
            l_BindableEvent_1:Fire();
        end);
        return v13.Container, v37, v13.HealthContainer, v35, v38;
    end;
    v13.CreateAccountType = function(_, v40)
        v13.AccountTypeContainer = l_l_UserInputService_0_Platform_0.Create("Frame")({
            Name = "AccountTypeContainer",
            Size = UDim2.new(0, 50, 0, 50),
            Position = UDim2.new(1, -55, 0, 10),
            BorderSizePixel = 0,
            BackgroundColor3 = Color3.new(0, 0, 0),
            BackgroundTransparency = 0.5,
            Parent = l_RobloxGui_0
        });
        local _ = l_l_UserInputService_0_Platform_0.Create("TextLabel")({
            Name = "AccountTypeText",
            Size = UDim2.new(1, 0, 1, 0),
            Position = UDim2.new(0, 0, 0, 0),
            BackgroundTransparency = 1,
            BackgroundColor3 = Color3.new(0, 0, 0),
            Font = Enum.Font.SourceSans,
            FontSize = Enum.FontSize.Size36,
            Text = v40,
            TextColor3 = Color3.new(1, 1, 1),
            BorderSizePixel = 0,
            Parent = v13.AccountTypeContainer,
            TextXAlignment = Enum.TextXAlignment.Center,
            TextYAlignment = Enum.TextYAlignment.Center
        });
    end;
    v13.SetupTopStat = function(_)
        local v43 = true;
        local v44 = nil;
        local v45 = nil;
        local v46 = nil;
        local v47 = nil;
        local v48 = nil;
        local function v50()
            if not v48 then
                v48 = l_l_UserInputService_0_Platform_0.Create("Frame")({
                    Name = "OneStatFrame",
                    Size = UDim2.new(1, 0, 0, 36),
                    Position = UDim2.new(0, 0, 0, 0),
                    BorderSizePixel = 0,
                    BackgroundTransparency = 1
                });
                local v49 = l_l_UserInputService_0_Platform_0.Create("TextLabel")({
                    Name = "StatName",
                    Size = UDim2.new(0.5, 0, 0, 36),
                    BackgroundTransparency = 1,
                    Font = Enum.Font.SourceSans,
                    FontSize = Enum.FontSize.Size36,
                    TextStrokeColor3 = Color3.new(0.40784313725490196, 0.40784313725490196, 0.40784313725490196),
                    TextStrokeTransparency = 0,
                    Text = " StatName:",
                    TextColor3 = Color3.new(1, 1, 1),
                    TextXAlignment = Enum.TextXAlignment.Left,
                    BorderSizePixel = 0,
                    ClipsDescendants = true,
                    Parent = v48
                }):clone();
                v49.Position = UDim2.new(0.5, 0, 0, 0);
                v49.Name = "StatValue";
                v49.Text = "123,643,231";
                v49.TextXAlignment = Enum.TextXAlignment.Right;
                v49.Parent = v48;
                addToDisplayStack(v48);
                return ;
            else
                return ;
            end;
        end;
        local v51 = nil;
        local function v54(v52)
            if v45 then
                v45:disconnect();
                v45 = nil;
            end;
            if v46 then
                v46:disconnect();
                v46 = nil;
            end;
            v44 = v52;
            if v44 then
                v50();
                v51(v44);
                v46 = v44.AncestryChanged:connect(function()
                    v51(v44, "Parent");
                end);
                v45 = v44.Changed:connect(function(v53)
                    v51(v44, v53);
                end);
            end;
        end;
        v51 = function(v55, v56)
            if v56 and v56 == "Parent" then
                v48.StatName.Text = "";
                v48.StatValue.Text = "";
                v54(nil);
                tenFootInterfaceChanged();
                return ;
            elseif not v43 then
                v48.StatName.Text = "";
                v48.StatValue.Text = "";
                return ;
            else
                v48.StatName.Text = " " .. tostring(v55.Name) .. ":";
                v48.StatValue.Text = tostring(v55.Value);
                return ;
            end;
        end;
        local function v58(v57)
            return ((((v57:IsA("StringValue") or v57:IsA("IntValue")) or v57:IsA("BoolValue")) or v57:IsA("NumberValue")) or v57:IsA("DoubleConstrainedValue")) or v57:IsA("IntConstrainedValue");
        end;
        local function _(v59)
            if not (v44 or not v58(v59)) then
                v54(v59);
            end;
        end;
        local l_LocalPlayer_0 = l_Players_0.LocalPlayer;
        while not l_LocalPlayer_0 do
            l_Players_0.PlayerAdded:wait();
            l_LocalPlayer_0 = l_Players_0.LocalPlayer;
        end;
        tenFootInterfaceChanged = function()
            local l_leaderstats_0 = l_LocalPlayer_0:FindFirstChild("leaderstats");
            if l_leaderstats_0 then
                local l_l_leaderstats_0_Children_0 = l_leaderstats_0:GetChildren();
                for v64 = 1, #l_l_leaderstats_0_Children_0 do
                    local v65 = l_l_leaderstats_0_Children_0[v64];
                    if not (v44 or not v58(v65)) then
                        v54(v65);
                    end;
                end;
                if v47 then
                    v47:disconnect();
                end;
                v47 = l_leaderstats_0.ChildAdded:connect(function(v66)
                    if not (v44 or not v58(v66)) then
                        v54(v66);
                    end;
                end);
            end;
        end;
        if not l_LocalPlayer_0:FindFirstChild("leaderstats") then
            l_LocalPlayer_0.ChildAdded:connect(tenFootInterfaceChanged);
        else
            tenFootInterfaceChanged();
        end;
        return {
            SetTopStatEnabled = function(_, v68)
                v43 = v68;
                if v44 then
                    v51(v44, "");
                end;
            end
        };
    end;
    return v13;
end;
local v69 = {};
local v70 = v7();
v69.IsEnabled = function(_)
    return v5;
end;
v69.CreateHealthBar = function(_)
    return v70:CreateHealthBar();
end;
v69.CreateAccountType = function(_, v74)
    return v70:CreateAccountType(v74);
end;
v69.SetupTopStat = function(_)
    return v70:SetupTopStat();
end;
return v69;


local v0 = {};
v0.__index = v0;
v0.new = function(v1)
    local v2 = v1 or {};
    setmetatable(v2, {
        __index = v0
    });
    return v2;
end;
v0.GetItem = function(v3, v4)
    return v3[v4];
end;
v0.SetItem = function(v5, v6, v7)
    v5[v6] = tostring(v7);
end;
v0.flush = function(_)
end;
return v0;


local v0 = {};
v0.__index = v0;
v0.new = function()
    local l_BindableEvent_0 = Instance.new("BindableEvent");
    local v4 = {
        broadcasts = {},
        NativeClose = {
            Connect = function(_, v3)
                return l_BindableEvent_0.Event:Connect(v3);
            end
        },
        MenuIsOpen = false,
        openedMenus = {}
    };
    setmetatable(v4, {
        __index = v0
    });
    return v4;
end;
v0.SetMenuIsOpen = function(v5, v6, v7)
    if not v6 then
        local v8 = table.find(v5.openedMenus, v7);
        if v8 then
            table.remove(v5.openedMenus, v8);
        end;
    else
        table.insert(v5.openedMenus, v7);
    end;
    v5.MenuIsOpen = #v5.openedMenus > 0;
end;
v0.BroadcastNotification = function(v9, v10, v11)
    table.insert(v9.broadcasts, {
        data = v10,
        notification = v11
    });
end;
v0.GetNotificationTypeList = function(_)
    return {
        NATIVE_EXIT = 35,
        RESTART_APP = 41
    };
end;
return v0;


local v0 = {};
v0.__index = v0;
v0.GetPropertyChangedSignal = function(v1, v2)
    if v2 == "VRDeviceAvailable" then
        return v1._vrDeviceAvailableChanged.Event;
    else
        error(("%s is not a valid property name"):format((tostring(v2))));
        return ;
    end;
end;
v0.toggleHeadsetConnectionState = function(v3)
    local v4 = not v3.VRDeviceAvailable;
    v3.VRDeviceAvailable = v4;
    v3._vrDeviceAvailableChanged:Fire(v4);
end;
v0.new = function()
    local v5 = {
        VRDeviceAvailable = true,
        _vrDeviceAvailableChanged = Instance.new("BindableEvent")
    };
    setmetatable(v5, {
        __index = v0
    });
    return v5;
end;
return v0;


return require(game:GetService("CorePackages").Rodux).makeActionCreator(script.Name, function(v0)
    return {
        id = v0
    };
end);


return require(game:GetService("CorePackages").Rodux).makeActionCreator(script.Name, function(v0)
    return {
        open = v0
    };
end);


return require(game:GetService("CorePackages").Rodux).makeActionCreator(script.Name, function(v0)
    return {
        canChat = v0
    };
end);


return require(game:GetService("CorePackages").Rodux).makeActionCreator(script.Name, function(v0)
    return {
        enabled = v0
    };
end);


return require(game:GetService("CorePackages").Rodux).makeActionCreator(script.Name, function(v0)
    return {
        inputType = v0
    };
end);


return require(game:GetService("CorePackages").Rodux).makeActionCreator(script.Name, function(v0)
    return {
        inspectMenuOpen = v0
    };
end);


return require(game:GetService("CorePackages").Rodux).makeActionCreator(script.Name, function(v0)
    return {
        isDead = v0
    };
end);


return require(game:GetService("CorePackages").Rodux).makeActionCreator(script.Name, function(v0, v1, v2)
    return {
        id = v0,
        position = v1,
        size = v2
    };
end);


return require(game:GetService("CorePackages").Rodux).makeActionCreator(script.Name, function(v0)
    return {
        menuOpen = v0
    };
end);


return require(game:GetService("CorePackages").Rodux).makeActionCreator(script.Name, function(v0)
    return {
        isSmallTouchDevice = v0
    };
end);


return require(game:GetService("CorePackages").Rodux).makeActionCreator(script.Name, function(v0)
    return {
        messages = v0
    };
end);


return require(game:GetService("CorePackages").Rodux).makeActionCreator(script.Name, function(v0)
    return {
        visible = v0
    };
end);


return require(game:GetService("CorePackages").Rodux).makeActionCreator(script.Name, function(v0, v1)
    return {
        coreGuiType = v0,
        enabled = v1
    };
end);


return require(game:GetService("CorePackages").Rodux).makeActionCreator(script.Name, function(v0, v1)
    return {
        health = v0,
        maxHealth = v1
    };
end);


local l_RbxAnalyticsService_0 = game:GetService("RbxAnalyticsService");
local l_CorePackages_0 = game:GetService("CorePackages");
local _ = game:GetService("GuiService");
local _ = game:GetService("CoreGui"):WaitForChild("RobloxGui");
local _ = game:GetService("UserInputService");
local _ = game:GetService("Players");
local l_game_EngineFeature_0 = game:GetEngineFeature("RbxAnalyticsServiceExposePlaySessionId");
local v7 = require(l_CorePackages_0.Cryo);
local l_Parent_0 = script.Parent;
local v9 = require(l_Parent_0.Constants);
local _ = require(l_Parent_0.Flags.GetFFlagEnableTopBarAnalytics)();
local v11 = {};
v11.__index = v11;
v11.new = function()
    local v12 = setmetatable({
        _target = "client",
        _context = "topbar",
        _defaultProps = {
            universeid = tostring(game.GameId),
            placeid = tostring(game.PlaceId),
            sessionid = l_RbxAnalyticsService_0:GetSessionId()
        }
    }, v11);
    if l_game_EngineFeature_0 then
        v12._defaultProps.playsessionid = l_RbxAnalyticsService_0:GetPlaySessionId();
    end;
    v12._sendEvent = function(v13, v14)
        l_RbxAnalyticsService_0:SendEventDeferred(v12._target, v12._context, v13, (v7.Dictionary.join(v12._defaultProps, v14 or {})));
        return nil;
    end;
    v12._onButtonActivated = function(v15, v16)
        return v12._sendEvent(v9.Analytics.EventNameTopBarButtonActivated, {
            button = v15,
            status = if not v16 then v9.Analytics.StatusInactive else v9.Analytics.StatusActive
        });
    end;
    return v12;
end;
v11.onChatButtonActivated = function(v17, v18)
    return v17._onButtonActivated(v9.Analytics.ChatButtonName, v18);
end;
v11.onMoreMenuActivated = function(v19)
    return v19._onButtonActivated(v9.Analytics.MoreMenuButtonName, true);
end;
v11.onInventoryActivated = function(v20, v21)
    return v20._onButtonActivated(v9.Analytics.InventoryButtonName, v21);
end;
v11.onLeaderboardActivated = function(v22, v23)
    return v22._onButtonActivated(v9.Analytics.LeaderboardButtonName, v23);
end;
v11.onEmotesActivated = function(v24, v25)
    return v24._onButtonActivated(v9.Analytics.EmotesButtonName, v25);
end;
v11.default = v11.new();
return v11;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_CoreGui_0 = game:GetService("CoreGui");
local v2 = require(l_CorePackages_0.Roact);
local v3 = require(l_CorePackages_0.RoactRodux);
local v4 = require(l_CorePackages_0.Packages.t);
local l_Parent_0 = script.Parent.Parent.Parent;
local v6 = require(l_Parent_0.Actions.UpdateChatVisible);
local v7 = require(l_Parent_0.Actions.UpdateChatMessages);
local v8 = require(l_CoreGui_0:WaitForChild("RobloxGui").Modules.ChatSelector);
local l_GameSettings_0 = UserSettings().GameSettings;
local v10 = v2.PureComponent:extend("ChatConnector");
v10.validateProps = v4.strictInterface({
    isSmallTouchScreen = v4.boolean,
    updateChatVisible = v4.callback,
    updateChatMessages = v4.callback
});
v10.didMount = function(v11)
    local l_ChatVisible_0 = l_GameSettings_0.ChatVisible;
    if v11.props.isSmallTouchScreen then
        l_ChatVisible_0 = false;
    end;
    v8:SetVisible(l_ChatVisible_0);
    v11.props.updateChatMessages(v8:GetMessageCount());
    v11.props.updateChatVisible(v8:GetVisibility());
    v11.chatVisibleConnection = v8.VisibilityStateChanged:connect(function(v13)
        v11.props.updateChatVisible(v13);
    end);
    v11.chatMessagesConnection = v8.MessagesChanged:connect(function(v14)
        v11.props.updateChatMessages(v14);
    end);
end;
v10.render = function(_)
    return nil;
end;
v10.willUnmount = function(v16)
    v16.chatVisibleConnection:disconnect();
    v16.chatMessagesConnection:disconnect();
end;
return v3.UNSTABLE_connect2(function(v17)
    return {
        isSmallTouchScreen = v17.displayOptions.isSmallTouchDevice
    };
end, function(v18)
    return {
        updateChatVisible = function(v19)
            return v18(v6(v19));
        end,
        updateChatMessages = function(v20)
            return v18(v7(v20));
        end
    };
end)(v10);


local l_CorePackages_0 = game:GetService("CorePackages");
local l_StarterGui_0 = game:GetService("StarterGui");
local v2 = require(l_CorePackages_0.Roact);
local v3 = require(l_CorePackages_0.RoactRodux);
local v4 = require(l_CorePackages_0.Packages.t);
local l_Parent_0 = script.Parent.Parent.Parent;
local v6 = require(l_Parent_0.Actions.UpdateCoreGuiEnabled);
local v7 = require(l_Parent_0.Parent.Common.EventConnection);
local v8 = v2.PureComponent:extend("CoreGuiConnector");
v8.validateProps = v4.strictInterface({
    updateCoreGuiEnabled = v4.callback
});
v8.didMount = function(v9)
    for _, v11 in ipairs((Enum.CoreGuiType:GetEnumItems())) do
        if v11 ~= Enum.CoreGuiType.All then
            v9.props.updateCoreGuiEnabled(v11, l_StarterGui_0:GetCoreGuiEnabled(v11));
        end;
    end;
end;
v8.render = function(v12)
    return v2.createFragment({
        CoreGuiChangedConnection = v2.createElement(v7, {
            event = l_StarterGui_0.CoreGuiChangedSignal,
            callback = function(v13, v14)
                v12.props.updateCoreGuiEnabled(v13, v14);
            end
        })
    });
end;
return v3.UNSTABLE_connect2(nil, function(v15)
    return {
        updateCoreGuiEnabled = function(v16, v17)
            return v15(v6(v16, v17));
        end
    };
end)(v8);


local l_CorePackages_0 = game:GetService("CorePackages");
local l_CoreGui_0 = game:GetService("CoreGui");
local v2 = require(l_CorePackages_0.Roact);
local v3 = require(l_CorePackages_0.RoactRodux);
local v4 = require(l_CorePackages_0.Packages.t);
local l_RobloxGui_0 = l_CoreGui_0:WaitForChild("RobloxGui");
local v6 = require(l_RobloxGui_0.Modules.ChatSelector);
local v7 = require(l_RobloxGui_0.Modules.BackpackScript);
local v8 = require(l_RobloxGui_0.Modules.EmotesMenu.EmotesMenuMaster);
local v9 = require(l_RobloxGui_0.Modules.PlayerList.PlayerListManager);
local v10 = v2.PureComponent:extend("CoreGuiCEnabledNotifieronnector");
v10.validateProps = v4.strictInterface({
    topBarEnabled = v4.boolean
});
v10.notifyEnabled = function(v11)
    v9:SetTopBarEnabled(v11.props.topBarEnabled);
    v6:TopbarEnabledChanged(v11.props.topBarEnabled);
    v7:TopbarEnabledChanged(v11.props.topBarEnabled);
    v8:setTopBarEnabled(v11.props.topBarEnabled);
end;
v10.didMount = function(v12)
    v12:notifyEnabled();
end;
v10.render = function(_)
    return nil;
end;
v10.didUpdate = function(v14, v15, _)
    if v14.props.topBarEnabled ~= v15.topBarEnabled then
        v14:notifyEnabled();
    end;
end;
return v3.UNSTABLE_connect2(function(v17)
    return {
        topBarEnabled = v17.displayOptions.topbarEnabled
    };
end, nil)(v10);


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Players_0 = game:GetService("Players");
local v2 = require(l_CorePackages_0.Roact);
local v3 = require(l_CorePackages_0.RoactRodux);
local v4 = require(l_CorePackages_0.Packages.t);
local l_Parent_0 = script.Parent.Parent.Parent;
local v6 = require(l_Parent_0.Actions.SetIsDead);
local v7 = require(l_Parent_0.Actions.UpdateHealth);
local v8 = require(l_Parent_0.Parent.Common.EventConnection);
local l_LocalPlayer_0 = l_Players_0.LocalPlayer;
while not l_LocalPlayer_0 do
    l_Players_0:GetPropertyChangedSignal("LocalPlayer"):Wait();
    l_LocalPlayer_0 = l_Players_0.LocalPlayer;
end;
local v10 = v2.PureComponent:extend("HealthConnector");
v10.validateProps = v4.strictInterface({
    setIsDead = v4.callback,
    updateHealth = v4.callback
});
v10.init = function(v11)
    local l_Character_0 = l_LocalPlayer_0.Character;
    local v13 = nil;
    if l_Character_0 then
        v13 = l_Character_0:FindFirstChildOfClass("Humanoid");
    end;
    v11:setState({
        character = l_Character_0,
        humanoid = v13
    });
end;
v10.didMount = function(v14)
    if v14.state.humanoid then
        v14.props.updateHealth(v14.state.humanoid.Health, v14.state.humanoid.MaxHealth);
    end;
end;
v10.render = function(v15)
    local v16 = {};
    if not v15.state.humanoid then
        if v15.state.character then
            v16.ChildAddedConnection = v2.createElement(v8, {
                event = v15.state.character.ChildAdded,
                callback = function(v17)
                    if v17:IsA("Humanoid") then
                        v15:setState({
                            humanoid = v17
                        });
                    end;
                end
            });
        end;
    else
        v16.HealthChangedConnection = v2.createElement(v8, {
            event = v15.state.humanoid.HealthChanged,
            callback = function(_)
                v15.props.updateHealth(v15.state.humanoid.Health, v15.state.humanoid.MaxHealth);
            end
        });
        v16.HumanoidDiedConnection = v2.createElement(v8, {
            event = v15.state.humanoid.Died,
            callback = function()
                v15.props.setIsDead(true);
            end
        });
    end;
    v16.CharacterAddedConnection = v2.createElement(v8, {
        event = l_LocalPlayer_0.CharacterAdded,
        callback = function(v19)
            v15:setState({
                humanoid = v19:FindFirstChildOfClass("Humanoid") or v2.None,
                character = v19
            });
            v15.props.setIsDead(false);
        end
    });
    v16.CharacterRemovingConnection = v2.createElement(v8, {
        event = l_LocalPlayer_0.CharacterRemoving,
        callback = function()
            v15:setState({
                humanoid = v2.None,
                character = v2.None
            });
        end
    });
    return v2.createFragment(v16);
end;
v10.didUpdate = function(v20, _, v22)
    if v20.state.humanoid == nil then
        v20.props.updateHealth(0, 0);
    elseif v20.state.humanoid ~= v22.humanoid then
        v20.props.setIsDead(false);
        v20.props.updateHealth(v20.state.humanoid.Health, v20.state.humanoid.MaxHealth);
    end;
    if v20.state.character and v20.state.character ~= v22.character then
        local l_Humanoid_0 = v20.state.character:FindFirstChildWhichIsA("Humanoid");
        if l_Humanoid_0 and l_Humanoid_0 ~= v20.state.humanoid then
            v20:setState({
                humanoid = l_Humanoid_0
            });
        end;
    end;
end;
return v3.UNSTABLE_connect2(nil, function(v24)
    return {
        setIsDead = function(v25)
            return v24(v6(v25));
        end,
        updateHealth = function(v26, v27)
            return v24(v7(v26, v27));
        end
    };
end)(v10);


local l_CorePackages_0 = game:GetService("CorePackages");
local l_UserInputService_0 = game:GetService("UserInputService");
local v2 = require(l_CorePackages_0.Roact);
local v3 = require(l_CorePackages_0.RoactRodux);
local l_Parent_0 = script.Parent.Parent.Parent;
local v5 = require(l_Parent_0.Parent.Common.EventConnection);
local v6 = require(l_Parent_0.Actions.SetInputType);
local l_InputType_0 = require(l_Parent_0.Constants).InputType;
local v8 = v2.PureComponent:extend("LastInputTypeConnector");
local v9 = {
    [Enum.UserInputType.MouseButton2] = l_InputType_0.MouseAndKeyBoard,
    [Enum.UserInputType.MouseButton3] = l_InputType_0.MouseAndKeyBoard,
    [Enum.UserInputType.MouseWheel] = l_InputType_0.MouseAndKeyBoard,
    [Enum.UserInputType.MouseMovement] = l_InputType_0.MouseAndKeyBoard,
    [Enum.UserInputType.Keyboard] = l_InputType_0.MouseAndKeyBoard,
    [Enum.UserInputType.Gamepad1] = l_InputType_0.Gamepad,
    [Enum.UserInputType.Gamepad2] = l_InputType_0.Gamepad,
    [Enum.UserInputType.Gamepad3] = l_InputType_0.Gamepad,
    [Enum.UserInputType.Gamepad4] = l_InputType_0.Gamepad,
    [Enum.UserInputType.Gamepad5] = l_InputType_0.Gamepad,
    [Enum.UserInputType.Gamepad6] = l_InputType_0.Gamepad,
    [Enum.UserInputType.Gamepad7] = l_InputType_0.Gamepad,
    [Enum.UserInputType.Gamepad8] = l_InputType_0.Gamepad,
    [Enum.UserInputType.Touch] = l_InputType_0.Touch
};
v8.didMount = function(v10)
    local v11 = v9[l_UserInputService_0:GetLastInputType()];
    if v11 then
        v10.props.setInputType(v11);
    end;
end;
v8.render = function(v12)
    return v2.createElement(v5, {
        event = l_UserInputService_0.LastInputTypeChanged,
        callback = function(v13)
            local v14 = v9[v13];
            if v14 then
                v12.props.setInputType(v14);
            end;
        end
    });
end;
return v3.UNSTABLE_connect2(nil, function(v15)
    return {
        setInputType = function(v16)
            return v15(v6(v16));
        end
    };
end)(v8);


local l_CorePackages_0 = game:GetService("CorePackages");
local l_CoreGui_0 = game:GetService("CoreGui");
local v2 = require(l_CorePackages_0.Roact);
local v3 = require(l_CorePackages_0.RoactRodux);
local v4 = require(l_CorePackages_0.Packages.t);
local l_Parent_0 = script.Parent.Parent.Parent;
local v6 = require(l_Parent_0.Actions.SetBackpackOpen);
local v7 = require(l_Parent_0.Actions.SetEmotesOpen);
local v8 = require(l_Parent_0.Actions.SetLeaderboardOpen);
local v9 = require(l_Parent_0.Actions.SetEmotesEnabled);
local v10 = require(l_Parent_0.Parent.Common.EventConnection);
local l_RobloxGui_0 = l_CoreGui_0:WaitForChild("RobloxGui");
local v12 = require(l_RobloxGui_0.Modules.BackpackScript);
local v13 = require(l_RobloxGui_0.Modules.EmotesMenu.EmotesMenuMaster);
local v14 = require(l_RobloxGui_0.Modules.PlayerList.PlayerListManager);
local v15 = v2.PureComponent:extend("OpenUIConnector");
v15.validateProps = v4.strictInterface({
    setBackpackOpen = v4.callback,
    setEmotesOpen = v4.callback,
    setLeaderboardOpen = v4.callback,
    setEmotesEnabled = v4.callback
});
v15.didMount = function(v16)
    v16.props.setLeaderboardOpen(v14:GetSetVisible());
    v16.props.setBackpackOpen(v12.IsOpen);
    v16.props.setEmotesOpen(v13:isOpen());
    v16.props.setEmotesEnabled(v13.MenuIsVisible);
end;
v15.render = function(v17)
    return v2.createFragment({
        LeaderboardOpenChangedConnection = v2.createElement(v10, {
            event = v14:GetSetVisibleChangedEvent().Event,
            callback = function(v18)
                v17.props.setLeaderboardOpen(v18);
            end
        }),
        BackpackOpenChangedConnection = v2.createElement(v10, {
            event = v12.StateChanged.Event,
            callback = function(v19)
                v17.props.setBackpackOpen(v19);
            end
        }),
        EmotesOpenChangedConnection = v2.createElement(v10, {
            event = v13.EmotesMenuToggled.Event,
            callback = function(v20)
                v17.props.setEmotesOpen(v20);
            end
        }),
        EmotesEnabledChangedConnection = v2.createElement(v10, {
            event = v13.MenuVisibilityChanged.Event,
            callback = function(v21)
                v17.props.setEmotesEnabled(v21);
            end
        })
    });
end;
return v3.UNSTABLE_connect2(nil, function(v22)
    return {
        setBackpackOpen = function(v23)
            return v22(v6(v23));
        end,
        setEmotesOpen = function(v24)
            return v22(v7(v24));
        end,
        setLeaderboardOpen = function(v25)
            return v22(v8(v25));
        end,
        setEmotesEnabled = function(v26)
            return v22(v9(v26));
        end
    };
end)(v15);


local v0 = require(game:GetService("CorePackages").Roact);
local v1 = require(script.CoreGuiConnector);
local v2 = require(script.MenuConnector);
local v3 = require(script.ChatConnector);
local v4 = require(script.HealthConnector);
local v5 = require(script.EnabledNotifier);
local v6 = require(script.OpenUIConnector);
local v7 = require(script.LastInputTypeConnector);
local v8 = v0.PureComponent:extend("Connection");
v8.render = function(_)
    return v0.createFragment({
        CoreGuiConnector = v0.createElement(v1),
        MenuConnector = v0.createElement(v2),
        ChatConnector = v0.createElement(v3),
        HealthConnector = v0.createElement(v4),
        EnabledNotifier = v0.createElement(v5),
        OpenUIConnector = v0.createElement(v6),
        LastInputTypeConnector = v0.createElement(v7)
    });
end;
return v8;


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Packages.React);
local l_AppFonts_0 = require(l_CorePackages_0.Workspace.Packages.Style).AppFonts;
local l_useStyle_0 = require(l_CorePackages_0.UIBlox).Core.Style.useStyle;
return function(v4)
    local v5 = l_useStyle_0();
    return v1.createElement("TextLabel", {
        AnchorPoint = Vector2.new(0, 1),
        Position = v4.position,
        Text = "12+",
        Font = l_AppFonts_0.default:getMedium(),
        TextSize = 9,
        TextColor3 = v5.Theme.TextEmphasis.Color,
        BackgroundColor3 = v5.Theme.BackgroundUIContrast.Color,
        BackgroundTransparency = 0,
        AutomaticSize = Enum.AutomaticSize.XY,
        LineHeight = 1.25,
        ZIndex = 2
    }, {
        Padding = v1.createElement("UIPadding", {
            PaddingLeft = UDim.new(0, 2),
            PaddingRight = UDim.new(0, 2)
        }),
        Shape = v1.createElement("UICorner", {
            CornerRadius = UDim.new(0, 8)
        })
    });
end;


return require(game:GetService("CorePackages").Packages.React).createContext({
    fireEvent = function()
        error("Analytics not implemented");
    end
});


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Packages.React);
local v2 = require(l_CorePackages_0.Workspace.Packages.RoactUtils);
local l_AppFonts_0 = require(l_CorePackages_0.Workspace.Packages.Style).AppFonts;
local l_createElement_0 = v1.createElement;
local v5 = require(l_CorePackages_0.UIBlox);
local l_useStyle_0 = v5.Core.Style.useStyle;
local l_Interactable_0 = v5.Core.Control.Interactable;
local l_ControlState_0 = v5.Core.Control.Enum.ControlState;
local l_useDispatch_0 = v2.Hooks.RoactRodux.useDispatch;
local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local v11 = require(l_Parent_0.Flags.GetFFlagEnableChromeBackwardsSignalAPI)();
local v12 = require(l_Parent_0.Actions.SetKeepOutArea);
local v13 = require(l_Parent_0.Constants);
noop = function()
end;
return function(v14)
    local v15 = l_useStyle_0();
    local v16 = l_useDispatch_0();
    local v17, v18 = v1.useState(false);
    local function v20(v19)
        if not (not v11 or not v19) then
            v16(v12(v13.BadgeOver13KeepOutAreaId, Vector2.new(v19.AbsolutePosition.X - 2, v19.AbsolutePosition.Y - 2), (Vector2.new(v19.AbsoluteSize.X + 4, v19.AbsoluteSize.Y + 4))));
        end;
    end;
    return l_createElement_0(l_Interactable_0, {
        BackgroundTransparency = 1,
        AutomaticSize = Enum.AutomaticSize.XY,
        isDisabled = false,
        LayoutOrder = v14.layoutOrder,
        onStateChanged = v1.useCallback(function(_, v22)
            local l_v18_0 = v18;
            local v24 = true;
            if v22 ~= l_ControlState_0.Hover then
                v24 = v22 == l_ControlState_0.Pressed;
            end;
            l_v18_0(v24);
        end),
        [v1.Event.Activated] = v1.useCallback(function()
            v14.setIsPopupVisible(not v14.isPopupVisible);
        end),
        [v1.Change.AbsoluteSize] = v20,
        [v1.Change.AbsolutePosition] = v20
    }, {
        constraint = l_createElement_0("UISizeConstraint", {
            MinSize = Vector2.new(32, 32)
        }),
        text = l_createElement_0("TextLabel", {
            AnchorPoint = Vector2.new(0.5, 0.5),
            Position = UDim2.fromScale(0.5, 0.5),
            Text = "13+",
            Font = l_AppFonts_0.default:getBold(),
            TextSize = 12,
            BackgroundColor3 = v15.Theme.TextEmphasis.Color,
            BackgroundTransparency = if not v17 then v15.Theme.TextEmphasis.Transparency else 0.25,
            AutomaticSize = Enum.AutomaticSize.XY
        }, {
            padding = l_createElement_0("UIPadding", {
                PaddingTop = UDim.new(0, 3),
                PaddingBottom = UDim.new(0, 3),
                PaddingLeft = UDim.new(0, 6),
                PaddingRight = UDim.new(0, 6)
            }),
            shape = l_createElement_0("UICorner", {
                CornerRadius = UDim.new(0, 4)
            }),
            stroke = l_createElement_0("UIStroke", {
                Thickness = 2,
                Color = v15.Theme.BackgroundMuted.Color,
                ApplyStrokeMode = Enum.ApplyStrokeMode.Border
            })
        })
    });
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Packages.React);
local l_createElement_0 = v1.createElement;
local v3 = require(l_CorePackages_0.UIBlox);
local _ = v3.Core.Style.useStyle;
local _ = v3.App.Button.LinkButton;
local _ = v3.Core.Control.Interactable;
local v7 = require(script.Parent.Badge);
local v8 = require(script.Parent.Popup);
local v9 = require(script.Parent.useAnalytics);
return function(v10)
    local v11, v12 = v1.useState(false);
    local v13 = v9();
    v1.useEffect(function()
        if v10.visible then
            v13.fireEvent("badgeImpression", {
                badgeType = "13Plus"
            });
        end;
    end, {
        v10.visible
    });
    return l_createElement_0("Frame", {
        BackgroundTransparency = 1,
        AutomaticSize = Enum.AutomaticSize.X,
        Size = UDim2.fromOffset(0, 32),
        LayoutOrder = v10.layoutOrder,
        Visible = v10.visible
    }, {
        layout = l_createElement_0("UIListLayout", {
            Padding = UDim.new(0, 14),
            FillDirection = Enum.FillDirection.Horizontal,
            SortOrder = Enum.SortOrder.LayoutOrder
        }),
        badge = l_createElement_0(v7, {
            isPopupVisible = v11,
            setIsPopupVisible = v12,
            layoutOrder = 1
        }),
        popup = l_createElement_0(v8, {
            bodyText = v10.bodyText,
            linkText = v10.linkText,
            openWebview = v10.openWebview,
            visible = v11,
            analyticsCopyType = v10.analyticsCopyType,
            layoutOrder = 2
        })
    });
end;


local l_TextService_0 = game:GetService("TextService");
local l_CorePackages_0 = game:GetService("CorePackages");
local v2 = require(l_CorePackages_0.Packages.React);
local l_createElement_0 = v2.createElement;
local v4 = require(l_CorePackages_0.UIBlox);
local l_useStyle_0 = v4.Core.Style.useStyle;
local l_LinkButton_0 = v4.App.Button.LinkButton;
local _ = v4.Core.Control.Interactable;
local l_ControlState_0 = v4.Core.Control.Enum.ControlState;
local _ = require(l_CorePackages_0.Workspace.Packages.Localization).Hooks.useLocalization;
local l_List_0 = require(l_CorePackages_0.Cryo).List;
local v11 = require(script.Parent.useAnalytics);
local v12 = Vector2.new(8, 8);
local function v15(v13)
    local l_text_0 = v13.text;
    return l_createElement_0("TextLabel", {
        AutomaticSize = Enum.AutomaticSize.X,
        Size = UDim2.fromOffset(0, l_TextService_0:GetTextSize(l_text_0, v13.textSize, v13.font, Vector2.new(300 - v12.X * 2, math.huge)).Y),
        BackgroundTransparency = 1,
        Text = l_text_0,
        TextWrapped = true,
        TextXAlignment = Enum.TextXAlignment.Left,
        TextYAlignment = Enum.TextYAlignment.Top,
        Font = v13.font,
        TextSize = v13.textSize,
        TextColor3 = v13.textColor3,
        TextTransparency = v13.textTransparency,
        LayoutOrder = v13.layoutOrder
    });
end;
return function(v16)
    local v17 = l_useStyle_0();
    local l_Footer_0 = v17.Font.Footer;
    local l_bodyText_0 = v16.bodyText;
    local v20 = v11();
    v2.useEffect(function()
        if v16.visible then
            v20.fireEvent("popupImpression", {
                copyType = v16.analyticsCopyType
            });
        end;
    end, {
        v16.visible
    });
    return l_createElement_0("Frame", {
        Visible = v16.visible,
        LayoutOrder = v16.layoutOrder,
        Size = UDim2.fromOffset(300, 0),
        AutomaticSize = Enum.AutomaticSize.Y,
        BackgroundColor3 = v17.Theme.BackgroundUIContrast.Color,
        BackgroundTransparency = v17.Theme.BackgroundUIContrast.Transparency
    }, {
        layout = l_createElement_0("UIListLayout", {
            FillDirection = Enum.FillDirection.Vertical,
            SortOrder = Enum.SortOrder.LayoutOrder,
            Padding = UDim.new(0, 12)
        }),
        padding = l_createElement_0("UIPadding", {
            PaddingTop = UDim.new(0, v12.Y),
            PaddingBottom = UDim.new(0, v12.Y),
            PaddingLeft = UDim.new(0, v12.X),
            PaddingRight = UDim.new(0, v12.X)
        }),
        shape = l_createElement_0("UICorner", {
            CornerRadius = UDim.new(0, 8)
        }),
        body = l_createElement_0(v2.Fragment, nil, l_List_0.map(l_bodyText_0, function(v21, v22)
            return l_createElement_0(v15, {
                layoutOrder = v22,
                text = v21,
                font = l_Footer_0.Font,
                textSize = v17.Font.BaseSize * l_Footer_0.RelativeSize,
                textColor3 = v17.Theme.TextEmphasis.Color,
                textTransparency = v17.Theme.TextEmphasis.Transparency
            });
        end)),
        link = l_createElement_0(l_LinkButton_0, {
            text = v16.linkText,
            fontStyle = "Footer",
            layoutOrder = 100,
            minPaddingX = 0,
            minPaddingY = 8,
            underlineAlwaysEnabled = true,
            onActivated = v2.useCallback(function()
                v20.fireEvent("formInteraction", {
                    aType = "click",
                    input = "learn_more"
                });
                v16.openWebview();
            end),
            onStateChanged = v2.useCallback(function(_, v24)
                if v24 == l_ControlState_0.Hover then
                    v20.fireEvent("formInteraction", {
                        aType = "hover",
                        input = "learn_more"
                    });
                end;
            end)
        })
    });
end;


game:DefineFastString("TopBarBadgeLearnMoreLink", "https://roblox.com/info/community-guidelines");
local l_GamepadService_0 = game:GetService("GamepadService");
local l_CorePackages_0 = game:GetService("CorePackages");
local v2 = require(l_CorePackages_0.Packages.React);
local l_List_0 = require(l_CorePackages_0.Packages.Cryo).List;
local v4 = require(script.AnalyticsContext);
local l_ExternalEventConnection_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).ExternalEventConnection;
local v6 = require(script.openWebview);
local v7 = require(script.BadgeOver13);
local v8 = require(game:GetService("CoreGui"):WaitForChild("RobloxGui").Modules.RobloxTranslator);
local l_Chrome_0 = script.Parent.Parent.Parent.Parent.Chrome;
local v10 = if not require(l_Chrome_0.Enabled) then nil else require(l_Chrome_0.Service);
local v11 = {
    TextFilter = "InGame.CommonUI.Badge.Popup.TextFilterOnlyInfo",
    Voice = "InGame.CommonUI.Badge.Popup.VoiceInfo"
};
return function(v12)
    local l_player_0 = v12.player;
    local l_VREnabled_0 = v12.VRService.VREnabled;
    local v15, v16 = v2.useState(l_GamepadService_0.GamepadCursorEnabled);
    local v17, v18 = v2.useState(l_player_0.UnfilteredChat);
    local v19, v20 = v2.useState(false);
    v2.useEffect(function()
        v12.voiceChatServiceManager:asyncInit():andThen(function()
            v20(true);
        end):catch(function()
        end);
    end, {});
    local v21 = true;
    if v10 then
        v21 = require(l_Chrome_0.Hooks.useChromeMenuStatus)() == v10.MenuStatus.Closed;
    end;
    local v22;
    if l_VREnabled_0 ~= false then
        v22 = false;
        if not (v15 == true) then
            goto label0;
        end;
    end;
    v22 = true;
    if v17 ~= true then
        v22 = v19 == true;
    end;
    ::label0::;
    v22 = v22 and v21;
    if v12.visibilityChanged then
        v12.visibilityChanged(v22);
    end;
    local v23 = {};
    if v17 then
        table.insert(v23, "TextFilter");
    end;
    if v19 then
        table.insert(v23, "Voice");
    end;
    local v25 = l_List_0.map(v23, function(v24)
        if not v11[v24] then
            return nil;
        else
            return v8:FormatByKey(v11[v24]);
        end;
    end);
    table.insert(v25, v8:FormatByKey("InGame.CommonUI.Badge.Popup.CommunityStandards"));
    return v2.createElement(v4.Provider, {
        value = {
            fireEvent = function(v26, v27)
                v12.analytics.EventStream:setRBXEventStream("TopBarBadge", v26, v27);
            end
        }
    }, {
        app = v2.createElement(v2.Fragment, nil, {
            badge = v2.createElement(v7, {
                layoutOrder = v12.layoutOrder,
                bodyText = v25,
                linkText = v8:FormatByKey("InGame.CommonUI.Badge.Popup.LearnMoreLink"),
                openWebview = v2.useCallback(function()
                    v6((game:GetFastString("TopBarBadgeLearnMoreLink")));
                end),
                visible = v22,
                analyticsCopyType = table.concat(v23, "+")
            }),
            gamepadCursorEnabledListener = l_GamepadService_0 and v2.createElement(l_ExternalEventConnection_0, {
                event = l_GamepadService_0:GetPropertyChangedSignal("GamepadCursorEnabled"),
                callback = function()
                    v16(l_GamepadService_0.GamepadCursorEnabled);
                end
            }),
            unfilteredChatListener = v2.createElement(l_ExternalEventConnection_0, {
                event = l_player_0:GetPropertyChangedSignal("UnfilteredChat"),
                callback = function()
                    v18(l_player_0.UnfilteredChat);
                end
            })
        })
    });
end;


local l_HttpService_0 = game:GetService("HttpService");
local l_GuiService_0 = game:GetService("GuiService");
return function(v2)
    l_GuiService_0:BroadcastNotification(l_HttpService_0:JSONEncode({
        title = if not game:GetEngineFeature("SetWebViewTitle") then nil else "Help Center",
        presentationStyle = ({
            FullScreen = 0,
            FormSheet = 2
        }).FormSheet,
        visible = true,
        url = v2
    }), 20);
end;


local v0 = require(game:GetService("CorePackages").Packages.React);
local v1 = require(script.Parent.AnalyticsContext);
return function()
    return v0.useContext(v1);
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_CoreGui_0 = game:GetService("CoreGui");
local l_VRService_0 = game:GetService("VRService");
local v3 = require(l_CorePackages_0.Roact);
local v4 = require(l_CorePackages_0.RoactRodux);
local v5 = require(l_CorePackages_0.Packages.t);
local v6 = require(l_CorePackages_0.UIBlox);
local l_withStyle_0 = v6.Core.Style.withStyle;
local l_Badge_0 = v6.App.Indicator.Badge;
local l_BadgeStates_0 = v6.App.Indicator.Enum.BadgeStates;
local l_RobloxGui_0 = l_CoreGui_0:WaitForChild("RobloxGui");
local v11 = require(l_RobloxGui_0.Modules.ChatSelector);
local v12 = require(l_RobloxGui_0.Modules.TenFootInterface);
local v13 = require(script.Parent.IconButton);
local l_Parent_0 = script.Parent.Parent.Parent;
local v15 = require(l_Parent_0.Analytics);
local v16 = require(l_Parent_0.Flags.GetFFlagEnableChromeBackwardsSignalAPI)();
local v17 = require(l_Parent_0.Flags.GetFFlagEnableTopBarAnalytics)();
local v18 = require(l_Parent_0.Actions.SetKeepOutArea);
local v19 = require(l_Parent_0.Actions.RemoveKeepOutArea);
local v20 = require(l_Parent_0.Constants);
local l_GameSettings_0 = UserSettings().GameSettings;
local function _()
    return game:GetService("TextChatService").ChatVersion == Enum.ChatVersion.TextChatService;
end;
local v23 = v3.PureComponent:extend("ChatIcon");
v23.validateProps = v5.strictInterface({
    layoutOrder = v5.integer,
    chatVisible = v5.boolean,
    unreadMessages = v5.integer,
    topBarEnabled = v5.boolean,
    chatEnabled = v5.boolean,
    setKeepOutArea = v5.callback,
    removeKeepOutArea = v5.callback
});
v23.init = function(v24)
    v24.buttonRef = v3.createRef();
    v24.chatIconActivated = function()
        v11:ToggleVisibility();
        l_GameSettings_0.ChatVisible = v11:GetVisibility();
        if v17 then
            v15.default:onChatButtonActivated(l_GameSettings_0.ChatVisible);
        end;
    end;
end;
v23.render = function(v25)
    return l_withStyle_0(function(_)
        local v27 = ((v25.props.topBarEnabled and v25.props.chatEnabled) and not v12:IsEnabled()) and not l_VRService_0.VREnabled;
        local v28 = "rbxasset://textures/ui/TopBar/chatOn.png";
        if not v25.props.chatVisible then
            v28 = "rbxasset://textures/ui/TopBar/chatOff.png";
        end;
        local function v30(v29)
            if not v27 or not v29 then
                v25.props.removeKeepOutArea(v20.ChatIconKeepOutAreaId);
                return ;
            else
                v25.props.setKeepOutArea(v20.ChatIconKeepOutAreaId, v29.AbsolutePosition, v29.AbsoluteSize);
                return ;
            end;
        end;
        local function v33(v31)
            if v31 then
                v25.buttonRef.current = v31;
                local l_current_0 = v25.buttonRef.current;
                if not v27 or not l_current_0 then
                    v25.props.removeKeepOutArea(v20.ChatIconKeepOutAreaId);
                else
                    v25.props.setKeepOutArea(v20.ChatIconKeepOutAreaId, l_current_0.AbsolutePosition, l_current_0.AbsoluteSize);
                    return ;
                end;
            end;
        end;
        if not (not v16 or not v25.buttonRef.current) then
            local l_current_1 = v25.buttonRef.current;
            if not v27 or not l_current_1 then
                v25.props.removeKeepOutArea(v20.ChatIconKeepOutAreaId);
            else
                v25.props.setKeepOutArea(v20.ChatIconKeepOutAreaId, l_current_1.AbsolutePosition, l_current_1.AbsoluteSize);
            end;
        end;
        local l_createElement_0 = v3.createElement;
        local v36 = "TextButton";
        local v37 = {
            Text = "",
            Visible = v27,
            BackgroundTransparency = 1,
            Size = UDim2.new(0, 44, 1, 0),
            LayoutOrder = v25.props.layoutOrder,
            Selectable = false
        };
        local v38 = {
            Background = v3.createElement(v13, {
                icon = v28,
                iconSize = 20,
                onActivated = v25.chatIconActivated,
                [v3.Change.AbsoluteSize] = if not v16 then nil else v30,
                [v3.Change.AbsolutePosition] = if not v16 then nil else v30,
                [v3.Ref] = v33
            })
        };
        local l_createElement_1 = v3.createElement;
        local v40 = "Frame";
        local v41 = {
            BackgroundTransparency = 1,
            Size = UDim2.fromScale(1, 1),
            ZIndex = 2
        };
        local v42 = {};
        local v43 = false;
        if v25.props.unreadMessages > 0 then
            v43 = v3.createElement(l_Badge_0, {
                position = UDim2.fromOffset(18, not (game:GetService("TextChatService").ChatVersion == Enum.ChatVersion.TextChatService) and 2 or 6),
                anchorPoint = Vector2.new(0, 0),
                hasShadow = false,
                value = not not (game:GetService("TextChatService").ChatVersion == Enum.ChatVersion.TextChatService) and l_BadgeStates_0.isEmpty or v25.props.unreadMessages
            });
        end;
        v42.Badge = v43;
        v38.BadgeContainer = l_createElement_1(v40, v41, v42);
        return l_createElement_0(v36, v37, v38);
    end);
end;
return v4.UNSTABLE_connect2(function(v44)
    return {
        chatVisible = v44.chat.visible,
        unreadMessages = v44.chat.unreadMessages,
        topBarEnabled = v44.displayOptions.topbarEnabled,
        chatEnabled = v44.coreGuiEnabled[Enum.CoreGuiType.Chat]
    };
end, function(v45)
    return {
        setKeepOutArea = function(v46, v47, v48)
            return v45(v18(v46, v47, v48));
        end,
        removeKeepOutArea = function(v49)
            return v45(v19(v49));
        end
    };
end)(v23);


local l_RunService_0 = game:GetService("RunService");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_CoreGui_0 = game:GetService("CoreGui");
local l_VideoCaptureService_0 = game:GetService("VideoCaptureService");
local l_FaceAnimatorService_0 = game:GetService("FaceAnimatorService");
local v5 = require(l_CorePackages_0.Roact);
local v6 = require(l_CorePackages_0.UIBlox);
local v7 = require(l_CorePackages_0.Packages.t);
local l_ExternalEventConnection_0 = v6.Utility.ExternalEventConnection;
local l_Modules_0 = l_CoreGui_0.RobloxGui.Modules;
local l_default_0 = require(l_Modules_0.VoiceChat.VoiceChatServiceManager).default;
local v11 = require(l_Modules_0.Settings.getCamMicPermissions);
local v12 = require(l_Modules_0.Flags.FFlagAvatarChatCoreScriptSupport);
local v13 = v5.PureComponent:extend("FlashingDot");
local function _(v14, v15, v16)
    return v14 + (v15 - v14) * v16;
end;
v13.validateProps = v7.strictInterface({});
v13.init = function(v18)
    v18:setState({
        Visible = false,
        isUsingMic = false,
        hasMicPermissions = false,
        hasCameraPermissions = false
    });
    v18.prevTime = 1.5707963267948966;
    v18.prevSinTime = 1;
    local v19, v20 = v5.createBinding(0);
    v18.transparencyBinding = v19;
    v18.updateTransparencyBinding = v20;
    v18.checkNewVisibility = function()
        local l_hasMicPermissions_0 = v18.state.hasMicPermissions;
        if l_hasMicPermissions_0 then
            l_hasMicPermissions_0 = false;
            if l_default_0.localMuted ~= nil then
                l_hasMicPermissions_0 = not l_default_0.localMuted;
            end;
        end;
        local v22 = l_hasMicPermissions_0 or (v18.state.hasCameraPermissions and l_FaceAnimatorService_0.VideoAnimationEnabled) and l_VideoCaptureService_0.Active;
        local v23 = v18.state.Visible ~= v22;
        local v24 = v12 and v18.state.isUsingMic ~= l_hasMicPermissions_0;
        if not (not v23 and not v24) then
            v18:setState({
                Visible = v22,
                isUsingMic = l_hasMicPermissions_0
            });
        end;
    end;
    v18.animationConnection = function(v25)
        local v26 = v18.prevTime + v25;
        local v27 = math.sin(v26 * 3);
        v18.updateTransparencyBinding(0.5 + -0.5 * math.abs(v18.prevSinTime));
        v18.prevTime = v26;
        v18.prevSinTime = v27;
    end;
end;
v13.didMount = function(v28)
    v28.isMounted = true;
    v11(function(v29)
        if v28.isMounted then
            v28:setState({
                hasCameraPermissions = v29.hasCameraPermissions,
                hasMicPermissions = v29.hasMicPermissions
            });
            return ;
        else
            return ;
        end;
    end, nil, nil, "FlashingDot.didMount");
    v28.checkNewVisibility();
end;
v13.didUpdate = function(v30, v31, _)
    if not (v30.state.hasMicPermissions == v31.hasMicPermissions) or v30.state.hasCameraPermissions ~= v31.hasCameraPermissions then
        v30.checkNewVisibility();
    end;
end;
v13.render = function(v33)
    local v34 = nil;
    local v35 = UDim2.fromOffset(4, 4);
    if v12 then
        local v36 = (v33.state.hasCameraPermissions and l_FaceAnimatorService_0.VideoAnimationEnabled) and l_VideoCaptureService_0.Active;
        if not v33.state.isUsingMic then
            if v36 then
                v34 = "rbxasset://textures/SelfView/SelfView_icon_indicator_off.png";
                v35 = UDim2.fromOffset(12, 12);
            end;
        else
            v34 = "rbxasset://textures/AnimationEditor/FaceCaptureUI/FlashingDot.png";
        end;
    end;
    return v5.createElement("Frame", {
        AnchorPoint = Vector2.new(1, 0),
        Position = UDim2.new(1, -4, 0, 3),
        Size = UDim2.fromOffset(4, 4),
        ZIndex = 2,
        BorderSizePixel = 0,
        BackgroundTransparency = 1,
        Visible = v33.state.Visible
    }, {
        FlashingDot = v5.createElement("ImageLabel", {
            BackgroundTransparency = 1,
            AnchorPoint = if not v12 then nil else Vector2.new(0.5, 0.5),
            Position = if not v12 then nil else UDim2.fromScale(0.5, 0.5),
            Size = v35,
            Image = not v12 and "rbxasset://textures/AnimationEditor/FaceCaptureUI/FlashingDot.png" or v34,
            ImageTransparency = v33.transparencyBinding,
            LayoutOrder = 2
        }),
        MuteChangedEvent = v5.createElement(l_ExternalEventConnection_0, {
            event = l_default_0.muteChanged.Event,
            callback = v33.checkNewVisibility
        }),
        CameraChangedEvent = v5.createElement(l_ExternalEventConnection_0, {
            event = l_FaceAnimatorService_0:GetPropertyChangedSignal("VideoAnimationEnabled"),
            callback = v33.checkNewVisibility
        }),
        AnimationConnection = if not v33.state.Visible then nil else v5.createElement(l_ExternalEventConnection_0, {
            event = l_RunService_0.RenderStepped,
            callback = v33.animationConnection
        })
    });
end;
v13.willUnmount = function(v37)
    v37.isMounted = false;
end;
return v13;


local l_RunService_0 = game:GetService("RunService");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_CoreGui_0 = game:GetService("CoreGui");
local l_VideoCaptureService_0 = game:GetService("VideoCaptureService");
local l_FaceAnimatorService_0 = game:GetService("FaceAnimatorService");
local v5 = require(l_CorePackages_0.Roact);
local v6 = require(l_CorePackages_0.UIBlox);
local v7 = require(l_CorePackages_0.Packages.t);
local l_ExternalEventConnection_0 = v6.Utility.ExternalEventConnection;
local l_Modules_0 = l_CoreGui_0.RobloxGui.Modules;
local l_default_0 = require(l_Modules_0.VoiceChat.VoiceChatServiceManager).default;
local v11 = require(l_Modules_0.Flags.FFlagAvatarChatCoreScriptSupport);
local v12 = require(l_CoreGui_0.RobloxGui.Modules.Settings.cameraDevicePermissionGrantedSignal);
local v13 = require(l_CoreGui_0.RobloxGui.Modules.Flags.getFFlagDoNotPromptCameraPermissionsOnMount);
local v14 = v5.PureComponent:extend("FlashingDot");
local function _(v15, v16, v17)
    return v15 + (v16 - v15) * v17;
end;
v14.validateProps = v7.strictInterface({});
v14.init = function(v19)
    v19:setState({
        Visible = false,
        isUsingMic = false
    });
    v19.prevTime = 1.5707963267948966;
    v19.prevSinTime = 1;
    local v20, v21 = v5.createBinding(0);
    v19.transparencyBinding = v20;
    v19.updateTransparencyBinding = v21;
    v19.checkNewVisibility = function()
        local v22 = false;
        if l_default_0.localMuted ~= nil then
            v22 = not l_default_0.localMuted;
        end;
        local v23 = l_FaceAnimatorService_0.VideoAnimationEnabled and l_VideoCaptureService_0.Active;
        if v13() then
            v23 = l_FaceAnimatorService_0:IsStarted() and l_FaceAnimatorService_0.VideoAnimationEnabled;
        end;
        local v24 = v22 or v23;
        local v25 = v19.state.Visible ~= v24;
        local v26 = v11 and v19.state.isUsingMic ~= v22;
        if not (not v25 and not v26) then
            v19:setState({
                Visible = v24,
                isUsingMic = v22
            });
        end;
    end;
    v19.animationConnection = function(v27)
        local v28 = v19.prevTime + v27;
        local v29 = math.sin(v28 * 3);
        v19.updateTransparencyBinding(0.5 + -0.5 * math.abs(v19.prevSinTime));
        v19.prevTime = v28;
        v19.prevSinTime = v29;
    end;
    if v13() then
        v19.teardownCameraPermissionGrantedListener = function()
            if v19.cameraPermissionGrantedListener then
                v19.cameraPermissionGrantedListener:disconnect();
                v19.cameraPermissionGrantedListener = nil;
            end;
        end;
        v19.cameraPermissionGrantedListener = v12:connect(function()
            v19.checkNewVisibility();
        end);
    end;
end;
v14.didMount = function(v30)
    v30.checkNewVisibility();
end;
v14.willUnmount = function(v31)
    if v31.teardownCameraPermissionGrantedListener then
        v31.teardownCameraPermissionGrantedListener();
    end;
end;
v14.render = function(v32)
    local v33 = nil;
    local v34 = UDim2.fromOffset(4, 4);
    if v11 then
        local v35 = l_FaceAnimatorService_0.VideoAnimationEnabled and l_VideoCaptureService_0.Active;
        if v13() then
            v35 = l_FaceAnimatorService_0:IsStarted() and l_FaceAnimatorService_0.VideoAnimationEnabled;
        end;
        if not v32.state.isUsingMic then
            if v35 then
                v33 = "rbxasset://textures/SelfView/SelfView_icon_indicator_off.png";
                v34 = UDim2.fromOffset(12, 12);
            end;
        else
            v33 = "rbxasset://textures/AnimationEditor/FaceCaptureUI/FlashingDot.png";
        end;
    end;
    return v5.createElement("Frame", {
        AnchorPoint = Vector2.new(1, 0),
        Position = UDim2.new(1, -4, 0, 3),
        Size = UDim2.fromOffset(4, 4),
        ZIndex = 2,
        BorderSizePixel = 0,
        BackgroundTransparency = 1,
        Visible = v32.state.Visible
    }, {
        FlashingDot = v5.createElement("ImageLabel", {
            BackgroundTransparency = 1,
            AnchorPoint = if not v11 then nil else Vector2.new(0.5, 0.5),
            Position = if not v11 then nil else UDim2.fromScale(0.5, 0.5),
            Size = v34,
            Image = not v11 and "rbxasset://textures/AnimationEditor/FaceCaptureUI/FlashingDot.png" or v33,
            ImageTransparency = v32.transparencyBinding,
            LayoutOrder = 2
        }),
        MuteChangedEvent = v5.createElement(l_ExternalEventConnection_0, {
            event = l_default_0.muteChanged.Event,
            callback = v32.checkNewVisibility
        }),
        CameraChangedEvent = v5.createElement(l_ExternalEventConnection_0, {
            event = l_FaceAnimatorService_0:GetPropertyChangedSignal("VideoAnimationEnabled"),
            callback = v32.checkNewVisibility
        }),
        AnimationConnection = if not v32.state.Visible then nil else v5.createElement(l_ExternalEventConnection_0, {
            event = l_RunService_0.RenderStepped,
            callback = v32.animationConnection
        })
    });
end;
return v14;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_CoreGui_0 = game:GetService("CoreGui");
local l_TextService_0 = game:GetService("TextService");
local v3 = require(l_CorePackages_0.Roact);
local v4 = require(l_CorePackages_0.Packages.t);
local v5 = require(l_CorePackages_0.UIBlox);
local l_withStyle_0 = v5.Core.Style.withStyle;
local l_ImageSetLabel_0 = v5.Core.ImageSet.ImageSetLabel;
local l_validateImage_0 = v5.Core.ImageSet.Validator.validateImage;
local v9 = require(l_CoreGui_0:WaitForChild("RobloxGui").Modules.RobloxTranslator);
local _ = script.Parent.Parent.Parent.Parent.Parent.InGameMenu;
local v11 = v3.PureComponent:extend("ButtonHint");
v11.validateProps = v4.strictInterface({
    layoutOrder = v4.optional(v4.integer),
    localizationKey = v4.string,
    keyImage = l_validateImage_0
});
v11.render = function(v12)
    return l_withStyle_0(function(v13)
        local l_Theme_0 = v13.Theme;
        local l_Font_0 = v13.Font;
        local v16 = v9:FormatByKey(v12.props.localizationKey);
        local v17 = l_Font_0.BaseSize * l_Font_0.Header2.RelativeSize or l_Font_0.BaseSize * l_Font_0.Header1.RelativeSize;
        local l_X_0 = l_TextService_0:GetTextSize(v16, v17, l_Font_0.Header2.Font, Vector2.new(1000, 1000)).X;
        return v3.createElement("Frame", {
            LayoutOrder = v12.props.layoutOrder,
            BackgroundTransparency = 1,
            Size = UDim2.new(0, 44 + l_X_0, 1, 0)
        }, {
            Layout = v3.createElement("UIListLayout", {
                SortOrder = Enum.SortOrder.LayoutOrder,
                FillDirection = Enum.FillDirection.Horizontal,
                HorizontalAlignment = Enum.HorizontalAlignment.Left,
                VerticalAlignment = Enum.VerticalAlignment.Center,
                Padding = UDim.new(0, 8)
            }),
            Icon = v3.createElement(l_ImageSetLabel_0, {
                BackgroundTransparency = 1,
                LayoutOrder = 1,
                Size = UDim2.fromOffset(36, 36),
                Image = v12.props.keyImage,
                ImageTransparency = l_Theme_0.IconEmphasis.Transparency,
                ImageColor3 = l_Theme_0.IconEmphasis.Color
            }),
            Text = v3.createElement("TextLabel", {
                BackgroundTransparency = 1,
                Size = UDim2.new(0, l_X_0, 0, 1),
                LayoutOrder = 2,
                Font = l_Font_0.Header2.Font,
                Text = v16,
                TextSize = v17,
                TextColor3 = l_Theme_0.TextEmphasis.Color,
                TextTransparency = l_Theme_0.TextEmphasis.TextTransparency,
                TextXAlignment = Enum.TextXAlignment.Left,
                TextYAlignment = Enum.TextYAlignment.Center
            })
        });
    end);
end;
return v11;


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Roact);
local v2 = require(l_CorePackages_0.Packages.t);
local v3 = require(l_CorePackages_0.UIBlox);
local v4 = require(l_CorePackages_0.RoactRodux);
local l_withStyle_0 = v3.Core.Style.withStyle;
local l_Images_0 = v3.App.ImageSet.Images;
local l_ImageSetLabel_0 = v3.Core.ImageSet.ImageSetLabel;
local l_Badge_0 = v3.App.Indicator.Badge;
local v9 = l_Images_0["icons/menu/chat_on"];
local v10 = l_Images_0["icons/menu/chat_off"];
local v11 = v1.PureComponent:extend("ChatIcon");
v11.validateProps = v2.strictInterface({
    chatVisible = v2.boolean,
    unreadMessages = v2.integer
});
v11.render = function(v12)
    return l_withStyle_0(function(v13)
        local l_Theme_0 = v13.Theme;
        local l_v9_0 = v9;
        if not v12.props.chatVisible then
            l_v9_0 = v10;
        end;
        local l_createElement_0 = v1.createElement;
        local l_l_ImageSetLabel_0_0 = l_ImageSetLabel_0;
        local v18 = {
            Size = UDim2.fromScale(1, 1),
            BackgroundTransparency = 1,
            Image = l_v9_0,
            ImageColor3 = l_Theme_0.IconEmphasis.Color,
            ImageTransparency = l_Theme_0.IconEmphasis.Transparency,
            ZIndex = 2
        };
        local v19 = {};
        local v20 = false;
        if v12.props.unreadMessages > 0 then
            v20 = v1.createElement(l_Badge_0, {
                position = UDim2.new(0, 24, 0.5, 0),
                anchorPoint = Vector2.new(0, 0.5),
                hasShadow = false,
                value = v12.props.unreadMessages
            });
        end;
        v19.Badge = v20;
        return l_createElement_0(l_l_ImageSetLabel_0_0, v18, v19);
    end);
end;
return v4.UNSTABLE_connect2(function(v21)
    return {
        chatVisible = v21.chat.visible,
        unreadMessages = v21.chat.unreadMessages
    };
end, nil)(v11);


local l_CorePackages_0 = game:GetService("CorePackages");
local l_CoreGui_0 = game:GetService("CoreGui");
local v2 = require(l_CorePackages_0.Roact);
local v3 = require(l_CorePackages_0.Packages.t);
local v4 = require(l_CorePackages_0.UIBlox);
local l_withStyle_0 = v4.Core.Style.withStyle;
local l_ImageSetLabel_0 = v4.Core.ImageSet.ImageSetLabel;
local v7 = require(l_CoreGui_0:WaitForChild("RobloxGui").Modules.RobloxTranslator);
local v8 = v2.PureComponent:extend("MenuCell");
v8.validateProps = v3.strictInterface({
    layoutOrder = v3.integer,
    icon = v3.optional(v3.union(v3.table, v3.string)),
    iconComponent = v3.optional(v3.table),
    localizationKey = v3.string,
    height = v3.numberPositive,
    hasDivider = v3.boolean,
    isSelected = v3.boolean
});
v8.render = function(v9)
    return l_withStyle_0(function(v10)
        local l_Theme_0 = v10.Theme;
        local l_Font_0 = v10.Font;
        local v13 = v7:FormatByKey(v9.props.localizationKey);
        local l_createElement_0 = v2.createElement;
        local v15 = "Frame";
        local v16 = {
            LayoutOrder = v9.props.layoutOrder,
            BackgroundTransparency = 1,
            Size = UDim2.new(1, 0, 0, v9.props.height)
        };
        local v17 = {
            SelectedFrame = v9.props.isSelected and v2.createElement("Frame", {
                BackgroundTransparency = 1,
                Size = UDim2.new(1, 4, 1, 4),
                Position = UDim2.fromScale(0.5, 0.5),
                AnchorPoint = Vector2.new(0.5, 0.5)
            }, {
                TopBorder = v2.createElement("Frame", {
                    BorderSizePixel = 0,
                    Size = UDim2.new(1, 0, 0, 2),
                    BackgroundTransparency = l_Theme_0.SystemPrimaryOnHover.Transparency,
                    BackgroundColor3 = l_Theme_0.SystemPrimaryOnHover.Color
                }),
                LeftBorder = v2.createElement("Frame", {
                    BorderSizePixel = 0,
                    Size = UDim2.new(0, 2, 1, 0),
                    BackgroundTransparency = l_Theme_0.SystemPrimaryOnHover.Transparency,
                    BackgroundColor3 = l_Theme_0.SystemPrimaryOnHover.Color
                }),
                RightBorder = v2.createElement("Frame", {
                    BorderSizePixel = 0,
                    Size = UDim2.new(0, 2, 1, 0),
                    Position = UDim2.fromScale(1, 0),
                    AnchorPoint = Vector2.new(1, 0),
                    BackgroundTransparency = l_Theme_0.SystemPrimaryOnHover.Transparency,
                    BackgroundColor3 = l_Theme_0.SystemPrimaryOnHover.Color
                }),
                BottomBorder = v2.createElement("Frame", {
                    BorderSizePixel = 0,
                    Size = UDim2.new(1, 0, 0, 2),
                    Position = UDim2.fromScale(0, 1),
                    AnchorPoint = Vector2.new(0, 1),
                    BackgroundTransparency = l_Theme_0.SystemPrimaryOnHover.Transparency,
                    BackgroundColor3 = l_Theme_0.SystemPrimaryOnHover.Color
                })
            })
        };
        local l_createElement_1 = v2.createElement;
        local v19 = "Frame";
        local v20 = {
            BackgroundTransparency = 1,
            Size = UDim2.fromScale(1, 1)
        };
        local v21 = {
            Layout = v2.createElement("UIListLayout", {
                SortOrder = Enum.SortOrder.LayoutOrder,
                FillDirection = Enum.FillDirection.Horizontal,
                HorizontalAlignment = Enum.HorizontalAlignment.Left,
                VerticalAlignment = Enum.VerticalAlignment.Center,
                Padding = UDim.new(0, 12)
            }),
            Padding = v2.createElement("UIPadding", {
                PaddingLeft = UDim.new(0, 12),
                PaddingRight = UDim.new(0, 12)
            })
        };
        local l_createElement_2 = v2.createElement;
        local v23 = "Frame";
        local v24 = {
            BackgroundTransparency = 1,
            LayoutOrder = 1,
            Size = UDim2.fromOffset(36, 36)
        };
        local v25 = {};
        local v26 = false;
        if v9.props.icon ~= nil then
            v26 = v2.createElement(l_ImageSetLabel_0, {
                BackgroundTransparency = 1,
                Image = v9.props.icon,
                Size = UDim2.fromScale(1, 1),
                ImageTransparency = l_Theme_0.IconEmphasis.Transparency,
                ImageColor3 = l_Theme_0.IconEmphasis.Color
            });
        end;
        v25.IconLabel = v26;
        v26 = false;
        if v9.props.iconComponent ~= nil then
            v26 = v2.createElement(v9.props.iconComponent);
        end;
        v25.IconComponent = v26;
        v21.IconFrame = l_createElement_2(v23, v24, v25);
        v21.Text = v2.createElement("TextLabel", {
            BackgroundTransparency = 1,
            LayoutOrder = 2,
            Size = UDim2.new(1, -48, 1, 0),
            Text = v13,
            Font = l_Font_0.Header2.Font,
            TextSize = l_Font_0.BaseSize * l_Font_0.Header2.RelativeSize,
            TextColor3 = l_Theme_0.TextEmphasis.Color,
            TextTransparency = l_Theme_0.TextEmphasis.TextTransparency,
            TextXAlignment = Enum.TextXAlignment.Left,
            TextYAlignment = Enum.TextYAlignment.Center,
            TextTruncate = Enum.TextTruncate.AtEnd
        });
        v17.CellContents = l_createElement_1(v19, v20, v21);
        v17.Divider = v9.props.hasDivider and v2.createElement("Frame", {
            BorderSizePixel = 0,
            Size = UDim2.new(1, 0, 0, 1),
            Position = UDim2.fromScale(0, 1),
            AnchorPoint = Vector2.new(0, 1),
            BackgroundTransparency = l_Theme_0.Divider.Transparency,
            BackgroundColor3 = l_Theme_0.Divider.Color
        });
        return l_createElement_0(v15, v16, v17);
    end);
end;
return v8;


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Roact);
local v2 = require(l_CorePackages_0.Packages.t);
local v3 = require(l_CorePackages_0.UIBlox);
local v4 = require(l_CorePackages_0.RoactRodux);
local l_withStyle_0 = v3.Core.Style.withStyle;
local l_Images_0 = v3.App.ImageSet.Images;
local l_ImageSetLabel_0 = v3.Core.ImageSet.ImageSetLabel;
local v8 = l_Images_0["icons/imageUnavailable"];
local v9 = l_Images_0["component_assets/circle_17"];
local v10 = Rect.new(8, 8, 9, 9);
local v11 = v1.PureComponent:extend("MenuHeader");
v11.validateProps = v2.strictInterface({
    gameName = v2.string,
    layoutOrder = v2.integer,
    height = v2.numberPositive
});
v11.render = function(v12)
    return l_withStyle_0(function(v13)
        local l_Theme_0 = v13.Theme;
        local l_Font_0 = v13.Font;
        local _ = nil;
        return v1.createElement("Frame", {
            LayoutOrder = v12.props.layoutOrder,
            BackgroundTransparency = 1,
            Size = UDim2.new(1, 0, 0, v12.props.height)
        }, {
            ContentsFrame = v1.createElement("Frame", {
                BackgroundTransparency = 1,
                Size = UDim2.fromScale(1, 1)
            }, {
                Layout = v1.createElement("UIListLayout", {
                    SortOrder = Enum.SortOrder.LayoutOrder,
                    FillDirection = Enum.FillDirection.Horizontal,
                    HorizontalAlignment = Enum.HorizontalAlignment.Left,
                    VerticalAlignment = Enum.VerticalAlignment.Center,
                    Padding = UDim.new(0, 20)
                }),
                Padding = v1.createElement("UIPadding", {
                    PaddingLeft = UDim.new(0, 20),
                    PaddingRight = UDim.new(0, 20)
                }),
                GameIcon = if game.GameId == 0 then v1.createElement(l_ImageSetLabel_0, {
                    BackgroundTransparency = 1,
                    Image = v9,
                    SliceCenter = v10,
                    ScaleType = Enum.ScaleType.Slice,
                    Size = UDim2.fromOffset(80, 80),
                    ImageColor3 = v13.Theme.PlaceHolder.Color,
                    ImageTransparency = v13.Theme.PlaceHolder.Transparency
                }, {
                    PlaceholderIcon = v1.createElement(l_ImageSetLabel_0, {
                        BackgroundTransparency = 1,
                        Size = UDim2.fromOffset(44, 44),
                        Position = UDim2.fromScale(0.5, 0.5),
                        Image = v8,
                        ImageColor3 = v13.Theme.UIDefault.Color,
                        ImageTransparency = v13.Theme.UIDefault.Transparency,
                        AnchorPoint = Vector2.new(0.5, 0.5)
                    })
                }) else v1.createElement("ImageLabel", {
                    LayoutOrder = 1,
                    BackgroundTransparency = 1,
                    Size = UDim2.fromOffset(80, 80),
                    Image = ("rbxthumb://type=GameIcon&id=%d&w=%d&h=%d"):format(game.GameId, 128, 128)
                }),
                TextFrame = v1.createElement("Frame", {
                    LayoutOrder = 2,
                    BackgroundTransparency = 1,
                    Size = UDim2.new(1, -100, 1, 0)
                }, {
                    TextLabel = v1.createElement("TextLabel", {
                        BackgroundTransparency = 1,
                        Size = UDim2.new(1, 0, 1, -45),
                        Position = UDim2.fromOffset(0, 25),
                        Font = l_Font_0.Header1.Font,
                        Text = v12.props.gameName,
                        TextSize = l_Font_0.BaseSize * l_Font_0.Header1.RelativeSize,
                        TextColor3 = l_Theme_0.TextEmphasis.Color,
                        TextTransparency = l_Theme_0.TextEmphasis.TextTransparency,
                        TextXAlignment = Enum.TextXAlignment.Left,
                        TextYAlignment = Enum.TextYAlignment.Top,
                        TextTruncate = Enum.TextTruncate.AtEnd,
                        TextWrapped = true
                    })
                })
            }),
            Divider = v1.createElement("Frame", {
                BorderSizePixel = 0,
                Size = UDim2.new(1, 0, 0, 1),
                Position = UDim2.fromScale(0, 1),
                AnchorPoint = Vector2.new(0, 1),
                BackgroundTransparency = l_Theme_0.Divider.Transparency,
                BackgroundColor3 = l_Theme_0.Divider.Color
            })
        });
    end);
end;
return v4.UNSTABLE_connect2(function(v17)
    return {
        gameName = v17.gameInfo.name
    };
end, nil)(v11);