return require(script.Parent.Parent.Action)(script.Name, function(v0, v1, v2, v3, v4, v5)
    return {
        isClientView = v0,
        usePercentages = v1,
        clientSessionState = v2,
        serverSessionState = v3,
        isExporting = v4,
        isShowingMobileSettings = v5
    };
end);


return require(script.Parent.Parent.Action)("SetTabList", function(v0, v1, v2)
    return {
        tabList = v0,
        initIndex = v1,
        isDeveloperView = v2
    };
end);


return require(script.Parent.Parent.Action)("UpdateAveragePing", function(v0)
    return {
        AveragePing = v0
    };
end);


local v0 = {};
v0.__index = v0;
v0.new = function(v1)
    assert(v1, "Cannot initialize CircularBuffer with nil");
    assert(v1 > 0, "Cannot initialize CircularBuffer to size < 1");
    local v2 = {};
    setmetatable(v2, v0);
    v2._data = {};
    v2._backIndex = 0;
    v2._maxSize = v1;
    return v2;
end;
v0.reset = function(v3)
    v3._data = {};
    v3._backIndex = 0;
end;
v0.getSize = function(v4)
    return #v4._data;
end;
v0.getMaxSize = function(v5)
    return v5._maxSize;
end;
v0.setSize = function(v6, v7)
    assert(v7, "Cannot set CircularBuffer with nil");
    assert(v7 > 0, "Cannot set CircularBuffer to size < 1");
    if v7 == v6._maxSize then
        return ;
    else
        local v8 = v6:iterator();
        local v9 = v8:next();
        local v10 = {};
        local v11 = 0;
        while v9 and v11 < v7 do
            local v12 = v11 + 1;
            v10[v12] = {
                entry = v9
            };
            if v10[v11] then
                v10[v11]._next = v10[v12];
            end;
            v11 = v12;
            v9 = v8:next();
        end;
        v6._data = v10;
        v6._backIndex = v11;
        v6._maxSize = v7;
        return ;
    end;
end;
v0.getFrontIndex = function(v13)
    local v14 = v13._backIndex + 1;
    if v13._data[v14] then
        return v14;
    else
        return 1;
    end;
end;
v0.front = function(v15)
    local v16 = v15:getFrontIndex();
    if not v15._data[v16] then
        return nil;
    else
        return v15._data[v16].entry;
    end;
end;
v0.back = function(v17)
    if not v17._data[v17._backIndex] then
        return nil;
    else
        return v17._data[v17._backIndex].entry;
    end;
end;
v0.iterator = function(v18)
    return {
        data = v18._data[v18:getFrontIndex()],
        next = function(v19)
            local l_data_0 = v19.data;
            if l_data_0 then
                v19.data = v19.data._next;
            end;
            return l_data_0 and l_data_0.entry;
        end
    };
end;
v0.getData = function(v21)
    return v21._data;
end;
v0.at = function(v22, v23)
    assert(v23, "Cannot index CircularBuffer with nil");
    local v24 = ((v22:getFrontIndex() + v23) - 2) % v22._maxSize + 1;
    if not v22._data[v24] then
        return nil;
    else
        return v22._data[v24].entry;
    end;
end;
v0.reverseAt = function(v25, v26)
    local v27 = (v25._backIndex - v26) % v25._maxSize + 1;
    if not v25._data[v27] then
        return nil;
    else
        return v25._data[v27].entry;
    end;
end;
v0.push_back = function(v28, v29)
    local l__backIndex_0 = v28._backIndex;
    local v31 = v28._backIndex + 1;
    if v28._maxSize < v31 then
        v31 = 1;
    end;
    local v32 = v28._data[v31];
    v28._data[v31] = {
        entry = v29
    };
    if l__backIndex_0 > 0 then
        v28._data[l__backIndex_0]._next = v28._data[v31];
        if v32 then
            v32._next = nil;
        end;
    end;
    v28._backIndex = v31;
    return v32 and v32.entry;
end;
return v0;


local v0 = require(game:GetService("CorePackages").Roact);
local l_Components_0 = script.Parent.Parent.Parent.Components;
local v2 = require(l_Components_0.DataConsumer);
local v3 = require(l_Components_0.HeaderButton);
local v4 = require(l_Components_0.CellLabel);
local v5 = require(script.Parent.Parent.Parent.Constants);
local l_GeneralFormatting_0 = v5.GeneralFormatting;
local l_LineWidth_0 = l_GeneralFormatting_0.LineWidth;
local l_LineColor_0 = l_GeneralFormatting_0.LineColor;
local l_ActionBindingsFormatting_0 = v5.ActionBindingsFormatting;
local l_ChartHeaderNames_0 = l_ActionBindingsFormatting_0.ChartHeaderNames;
local l_ChartCellWidths_0 = l_ActionBindingsFormatting_0.ChartCellWidths;
local l_HeaderFrameHeight_0 = l_ActionBindingsFormatting_0.HeaderFrameHeight;
local l_EntryFrameHeight_0 = l_ActionBindingsFormatting_0.EntryFrameHeight;
local l_CellPadding_0 = l_ActionBindingsFormatting_0.CellPadding;
local l_MinFrameWidth_0 = l_ActionBindingsFormatting_0.MinFrameWidth;
local v16 = 0;
for _, v18 in ipairs(l_ChartCellWidths_0) do
    v16 = v16 + v18;
end;
local v19 = -v16;
local v20 = {};
local v21 = {};
local v22 = {};
v19 = v19 / 2;
table.insert(v20, UDim2.new(0, l_CellPadding_0, 0, 0));
table.insert(v21, UDim2.new(0.5, v19 - l_CellPadding_0, 0, l_HeaderFrameHeight_0));
table.insert(v22, UDim2.new(0.5, v19 - l_CellPadding_0, 0, l_EntryFrameHeight_0));
for _, v24 in ipairs(l_ChartCellWidths_0) do
    table.insert(v20, UDim2.new(0.5, v19 + l_CellPadding_0, 0, 0));
    table.insert(v21, UDim2.new(0, v24 - l_CellPadding_0, 0, l_HeaderFrameHeight_0));
    table.insert(v22, UDim2.new(0, v24 - l_CellPadding_0, 0, l_EntryFrameHeight_0));
    v19 = v19 + v24;
end;
table.insert(v20, UDim2.new(0.5, v19 + l_CellPadding_0, 0, 0));
table.insert(v21, UDim2.new(0.5, -v16 / 2 - l_CellPadding_0, 0, l_HeaderFrameHeight_0));
table.insert(v22, UDim2.new(0.5, -v16 / 2 - l_CellPadding_0, 0, l_EntryFrameHeight_0));
local v25 = {};
for v26, v27 in ipairs(v20) do
    v25[v26] = UDim2.new(v27.X.Scale, v27.X.Offset - l_CellPadding_0, v27.Y.Scale, v27.Y.Offset);
end;
local v28 = v0.Component:extend("ActionBindingsChart");
local function v35(v29, v30)
    local v31 = {};
    for v32, v33 in ipairs(l_ChartHeaderNames_0) do
        v31[v33] = v0.createElement(v3, {
            text = v33,
            size = v21[v32],
            pos = v20[v32],
            sortfunction = v29
        });
    end;
    v31.upperHorizontalLine = v0.createElement("Frame", {
        Size = UDim2.new(1, 0, 0, l_LineWidth_0),
        Position = UDim2.new(0, 0, 0, 0),
        BackgroundColor3 = l_LineColor_0,
        BorderSizePixel = 0
    });
    v31.lowerHorizontalLine = v0.createElement("Frame", {
        Size = UDim2.new(1, 0, 0, l_LineWidth_0),
        Position = UDim2.new(0, 0, 1, -l_LineWidth_0),
        BackgroundColor3 = l_LineColor_0,
        BorderSizePixel = 0
    });
    for v34 = 2, #v25 do
        v31[string.format("VerticalLine_%d", v34)] = v0.createElement("Frame", {
            Size = UDim2.new(0, l_LineWidth_0, 1, 0),
            Position = v25[v34],
            BackgroundColor3 = l_LineColor_0,
            BorderSizePixel = 0
        });
    end;
    return v0.createElement("Frame", {
        Size = UDim2.new(0, v30, 0, l_HeaderFrameHeight_0),
        BackgroundTransparency = 1
    }, v31);
end;
local function v45(v36, v37, v38)
    local l_name_0 = v36.name;
    local l_actionInfo_0 = v36.actionInfo;
    local v41 = tostring(l_actionInfo_0.inputTypes[1]);
    local v42 = "Core";
    if l_actionInfo_0.isCore then
        v42 = "Developer";
    end;
    local v43 = {};
    for v44 = 2, #v25 do
        v43[string.format("line_%d", v44)] = v0.createElement("Frame", {
            Size = UDim2.new(0, l_LineWidth_0, 1, 0),
            Position = v25[v44],
            BackgroundColor3 = l_LineColor_0,
            BorderSizePixel = 0
        });
    end;
    v43[l_name_0] = v0.createElement(v4, {
        text = v41,
        size = v22[1],
        pos = v20[1]
    });
    v43.priorityLevel = v0.createElement(v4, {
        text = l_actionInfo_0.priorityLevel,
        size = v22[2],
        pos = v20[2]
    });
    v43.isCore = v0.createElement(v4, {
        text = v42,
        size = v22[3],
        pos = v20[3]
    });
    v43.actionName = v0.createElement(v4, {
        text = l_name_0,
        size = v22[4],
        pos = v20[4]
    });
    v43.inputTypes = v0.createElement(v4, {
        text = v41,
        size = v22[5],
        pos = v20[5]
    });
    v43.lowerHorizontalLine = v0.createElement("Frame", {
        Size = UDim2.new(1, 0, 0, l_LineWidth_0),
        Position = UDim2.new(0, 0, 1, 0),
        BackgroundColor3 = l_LineColor_0,
        BorderSizePixel = 0
    });
    return v0.createElement("Frame", {
        Size = UDim2.new(0, v37, 0, l_EntryFrameHeight_0),
        BackgroundTransparency = 1,
        LayoutOrder = v38
    }, v43);
end;
v28.init = function(v46, v47)
    local v48 = v47.ActionBindingsData:getCurrentData();
    v46.onSortChanged = function(v49)
        if v49 == v47.ActionBindingsData:getSortType() then
            v46:setState({
                reverseSort = not v46.state.reverseSort
            });
            return ;
        else
            v47.ActionBindingsData:setSortType(v49);
            v46:setState({
                reverseSort = false
            });
            return ;
        end;
    end;
    v46.onCanvasPosChanged = function()
        local l_CanvasPosition_0 = v46.scrollingRef.current.CanvasPosition;
        if v46.state.canvasPos ~= l_CanvasPosition_0 then
            v46:setState({
                canvasPos = l_CanvasPosition_0
            });
        end;
    end;
    v46.scrollingRef = v0.createRef();
    v46.state = {
        actionBindingEntries = v48,
        reverseSort = false
    };
end;
v28.willUpdate = function(v51)
    if v51.canvasPosConnector then
        v51.canvasPosConnector:Disconnect();
    end;
end;
v28.didUpdate = function(v52)
    if v52.scrollingRef.current then
        v52.canvasPosConnector = v52.scrollingRef.current:GetPropertyChangedSignal("CanvasPosition"):Connect(v52.onCanvasPosChanged);
        local l_AbsoluteSize_0 = v52.scrollingRef.current.AbsoluteSize;
        local l_absScrollSize_0 = v52.state.absScrollSize;
        if not (l_AbsoluteSize_0.X == l_absScrollSize_0.X) or l_AbsoluteSize_0.Y ~= l_absScrollSize_0.Y then
            v52:setState({
                absScrollSize = l_AbsoluteSize_0
            });
        end;
    end;
end;
v28.didMount = function(v55)
    v55.bindingsUpdated = v55.props.ActionBindingsData:Signal():Connect(function(v56)
        v55:setState({
            actionBindingEntries = v56
        });
    end);
    if v55.scrollingRef.current then
        v55.canvasPosConnector = v55.scrollingRef.current:GetPropertyChangedSignal("CanvasPosition"):Connect(v55.onCanvasPosChanged);
        v55:setState({
            absScrollSize = v55.scrollingRef.current.AbsoluteSize,
            canvasPos = v55.scrollingRef.current.CanvasPosition
        });
    end;
end;
v28.willUnmount = function(v57)
    v57.bindingsUpdated:Disconnect();
    v57.bindingsUpdated = nil;
    v57.canvasPosConnector:Disconnect();
    v57.canvasPosConnector = nil;
end;
v28.render = function(v58)
    local v59 = {};
    local l_searchTerm_0 = v58.props.searchTerm;
    local l_size_0 = v58.props.size;
    local l_layoutOrder_0 = v58.props.layoutOrder;
    local l_actionBindingEntries_0 = v58.state.actionBindingEntries;
    local l_reverseSort_0 = v58.state.reverseSort;
    local l_canvasPos_0 = v58.state.canvasPos;
    local l_absScrollSize_1 = v58.state.absScrollSize;
    local v67 = not not l_absScrollSize_1 and math.max(l_absScrollSize_1.X, l_MinFrameWidth_0) or l_MinFrameWidth_0;
    v59.UIListLayout = v0.createElement("UIListLayout", {
        HorizontalAlignment = Enum.HorizontalAlignment.Left,
        VerticalAlignment = Enum.VerticalAlignment.Top,
        SortOrder = Enum.SortOrder.LayoutOrder
    });
    local v68 = #l_actionBindingEntries_0;
    local v69 = 0;
    if not (not l_absScrollSize_1 or not l_canvasPos_0) then
        local v70 = -1;
        local v71 = 0;
        local v72 = 0;
        for v73, v74 in ipairs(l_actionBindingEntries_0) do
            local v75 = false;
            if l_searchTerm_0 then
                v75 = string.find(tostring(v74.actionInfo.inputTypes[1]):lower(), l_searchTerm_0:lower()) ~= nil or string.find(v74.name:lower(), l_searchTerm_0:lower()) ~= nil;
            end;
            if not (l_searchTerm_0 and not v75) then
                if l_canvasPos_0.Y <= v69 + l_EntryFrameHeight_0 then
                    if v71 < l_absScrollSize_1.Y then
                        v59[v73] = v45(v74, v67, (not not l_reverseSort_0 and v68 - v73 or v73) + 1);
                    end;
                    if v70 < 0 then
                        v70 = v69;
                    else
                        v71 = v71 + l_EntryFrameHeight_0;
                    end;
                    v72 = v72 + 1;
                end;
                v69 = v69 + l_EntryFrameHeight_0;
            end;
        end;
        if v72 == 0 then
            v59.NoneFound = v0.createElement("TextLabel", {
                Size = UDim2.new(1, 0, 1, 0),
                Text = "No ActionBindings Found",
                TextColor3 = l_LineColor_0,
                BackgroundTransparency = 1,
                LayoutOrder = 1
            });
        else
            v59.WindowingPadding = v0.createElement("Frame", {
                Size = UDim2.new(1, 0, 0, v70),
                BackgroundTransparency = 1,
                LayoutOrder = 1
            });
        end;
    end;
    return v0.createElement("Frame", {
        Size = l_size_0,
        BackgroundTransparency = 1,
        ClipsDescendants = true,
        LayoutOrder = l_layoutOrder_0
    }, {
        Header = v35(v58.onSortChanged, v67),
        MainChart = v0.createElement("ScrollingFrame", {
            Position = UDim2.new(0, 0, 0, l_HeaderFrameHeight_0),
            Size = UDim2.new(1, 0, 1, -l_HeaderFrameHeight_0),
            CanvasSize = UDim2.new(0, v67, 0, v69),
            ScrollBarThickness = 6,
            BackgroundColor3 = v5.Color.BaseGray,
            BackgroundTransparency = 1,
            [v0.Ref] = v58.scrollingRef
        }, v59)
    });
end;
return v2(v28, "ActionBindingsData");


local l_ContextActionService_0 = game:GetService("ContextActionService");
local v1 = require(script.Parent.Parent.Parent.Signal);
local l_ChartHeaderNames_0 = require(script.Parent.Parent.Parent.Constants).ActionBindingsFormatting.ChartHeaderNames;
local v13 = {
    [l_ChartHeaderNames_0[1]] = function(v3, v4)
        return v3.counter < v4.counter;
    end,
    [l_ChartHeaderNames_0[2]] = function(v5, v6)
        if v5.actionInfo.priorityLevel == v6.actionInfo.priorityLevel then
            return v5.counter < v6.counter;
        else
            return v5.actionInfo.priorityLevel < v6.actionInfo.priorityLevel;
        end;
    end,
    [l_ChartHeaderNames_0[3]] = function(v7, v8)
        if v7.actionInfo.isCore == v8.actionInfo.isCore then
            return v7.counter < v8.counter;
        else
            return v7.actionInfo.isCore;
        end;
    end,
    [l_ChartHeaderNames_0[4]] = function(v9, v10)
        return v9.name:lower() < v10.name:lower();
    end,
    [l_ChartHeaderNames_0[5]] = function(v11, v12)
        return tostring(v11.actionInfo.inputTypes[1]) < tostring(v12.actionInfo.inputTypes[1]);
    end
};
local v14 = {};
v14.__index = v14;
v14.new = function()
    local v15 = {};
    setmetatable(v15, v14);
    v15._bindingsUpdated = v1.new();
    v15._bindingsData = {};
    v15._bindingCounter = 0;
    v15._sortedBindingData = {};
    v15._sortType = l_ChartHeaderNames_0[1];
    v15._isRunning = false;
    return v15;
end;
v14.setSortType = function(v16, v17)
    if not v13[v17] then
        error(string.format("attempted to pass invalid sortType: %s", (tostring(v17))), 2);
        return ;
    else
        v16._sortType = v17;
        table.sort(v16._sortedBindingData, v13[v16._sortType]);
        v16._bindingsUpdated:Fire(v16._sortedBindingData);
        return ;
    end;
end;
v14.getSortType = function(v18)
    return v18._sortType;
end;
v14.Signal = function(v19)
    return v19._bindingsUpdated;
end;
v14.getCurrentData = function(v20)
    return v20._sortedBindingData;
end;
v14.updateBindingDataEntry = function(v21, v22, v23)
    if v23 == nil then
        v21._bindingsData[v22] = nil;
        for v24, v25 in pairs(v21._sortedBindingData) do
            if v25.name == v22 then
                table.remove(v21._sortedBindingData, v24);
                return ;
            end;
        end;
        return ;
    elseif v21._bindingsData[v22] then
        v21._bindingsData[v22] = v23;
        return ;
    else
        v21._bindingCounter = v21._bindingCounter + 1;
        v21._bindingsData[v22] = v23;
        table.insert(v21._sortedBindingData, {
            name = v22,
            actionInfo = v21._bindingsData[v22],
            counter = v21._bindingCounter
        });
        return ;
    end;
end;
v14.isRunning = function(v26)
    return v26._isRunning;
end;
v14.start = function(v27)
    for v28, v29 in pairs((l_ContextActionService_0:GetAllBoundActionInfo())) do
        v29.isCore = false;
        v27:updateBindingDataEntry(v28, v29);
    end;
    for v30, v31 in pairs((l_ContextActionService_0:GetAllBoundCoreActionInfo())) do
        v31.isCore = true;
        v27:updateBindingDataEntry(v30, v31);
    end;
    if not v27._actionChangedConnection then
        v27._actionChangedConnection = l_ContextActionService_0.BoundActionChanged:connect(function(v32, v33, v34)
            v27:updateBindingDataEntry(v32, nil);
            v27:updateBindingDataEntry(v33, v34);
            v27._bindingsUpdated:Fire(v27._sortedBindingData);
        end);
    end;
    if not v27._actionAddedConnection then
        v27._actionAddedConnection = l_ContextActionService_0.BoundActionAdded:connect(function(v35, _, v37, v38)
            v37.isCore = v38;
            v27:updateBindingDataEntry(v35, v37);
            v27._bindingsUpdated:Fire(v27._sortedBindingData);
        end);
    end;
    if not v27._actionRemovedConnection then
        v27._actionRemovedConnection = l_ContextActionService_0.BoundActionRemoved:connect(function(v39, _, _)
            v27:updateBindingDataEntry(v39, nil);
            v27._bindingsUpdated:Fire(v27._sortedBindingData);
        end);
    end;
    v27._isRunning = true;
end;
v14.stop = function(v42)
    if v42.actionChangedConnector then
        v42.actionChangedConnector:Disconnect();
        v42.actionChangedConnector = nil;
    end;
    if v42.actionAddedConnector then
        v42.actionAddedConnector:Disconnect();
        v42.actionAddedConnector = nil;
    end;
    if v42.actionRemovedConnector then
        v42.actionRemovedConnector:Disconnect();
        v42.actionRemovedConnector = nil;
    end;
    v42._isRunning = false;
end;
return v14;


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Roact);
local v2 = require(l_CorePackages_0.RoactRodux);
local l_Components_0 = script.Parent.Parent.Parent.Components;
local v4 = require(l_Components_0.ActionBindings.ActionBindingsChart);
local v5 = require(l_Components_0.UtilAndTab);
local v6 = require(script.Parent.Parent.Parent.Actions.ActionBindingsUpdateSearchFilter);
local v7 = require(script.Parent.Parent.Parent.Constants);
local l_MainRowPadding_0 = v7.GeneralFormatting.MainRowPadding;
local v9 = v1.Component:extend("MainViewActionBindings");
v9.init = function(v10)
    v10.onUtilTabHeightChanged = function(v11)
        v10:setState({
            utilTabHeight = v11
        });
    end;
    v10.onSearchTermChanged = function(v12)
        v10.props.dispatchActionBindingsUpdateSearchFilter(v12, {});
    end;
    v10.utilRef = v1.createRef();
    v10.state = {
        utilTabHeight = 0
    };
end;
v9.didMount = function(v13)
    v13:setState({
        utilTabHeight = v13.utilRef.current.Size.Y.Offset
    });
end;
v9.didUpdate = function(v14)
    local l_Size_0 = v14.utilRef.current.Size;
    if l_Size_0.Y.Offset ~= v14.state.utilTabHeight then
        v14:setState({
            utilTabHeight = l_Size_0.Y.Offset
        });
    end;
end;
v9.render = function(v16)
    local l_size_0 = v16.props.size;
    local l_formFactor_0 = v16.props.formFactor;
    local l_tabList_0 = v16.props.tabList;
    local l_bindingsSearchTerm_0 = v16.props.bindingsSearchTerm;
    local l_utilTabHeight_0 = v16.state.utilTabHeight;
    local l_createElement_0 = v1.createElement;
    local v23 = "Frame";
    local v24 = {
        Size = l_size_0,
        BackgroundColor3 = v7.Color.BaseGray,
        BackgroundTransparency = 1,
        LayoutOrder = 3
    };
    local v25 = {
        UIListLayout = v1.createElement("UIListLayout", {
            Padding = UDim.new(0, l_MainRowPadding_0),
            SortOrder = Enum.SortOrder.LayoutOrder
        }),
        UtilAndTab = v1.createElement(v5, {
            windowWidth = l_size_0.X.Offset,
            formFactor = l_formFactor_0,
            tabList = l_tabList_0,
            searchTerm = l_bindingsSearchTerm_0,
            layoutOrder = 1,
            refForParent = v16.utilRef,
            onHeightChanged = v16.onUtilTabHeightChanged,
            onSearchTermChanged = v16.onSearchTermChanged
        })
    };
    local v26 = false;
    if l_utilTabHeight_0 > 0 then
        v26 = v1.createElement(v4, {
            size = UDim2.new(1, 0, 1, -l_utilTabHeight_0),
            searchTerm = l_bindingsSearchTerm_0,
            layoutOrder = 2
        });
    end;
    v25.ActionBindings = v26;
    return l_createElement_0(v23, v24, v25);
end;
return v2.UNSTABLE_connect2(function(v27, _)
    return {
        bindingsSearchTerm = v27.ActionBindingsData.bindingsSearchTerm
    };
end, function(v29)
    return {
        dispatchActionBindingsUpdateSearchFilter = function(v30, v31)
            v29(v6(v30, v31));
        end
    };
end)(v9);


local v0 = require(game:GetService("CorePackages").Roact);
local v1 = require(script.Parent.Parent.Immutable);
local v2 = require(script.Parent.Parent.Constants);
local l_LineWidth_0 = v2.GeneralFormatting.LineWidth;
local l_LineColor_0 = v2.GeneralFormatting.LineColor;
local l_ArrowWidth_0 = v2.GeneralFormatting.ArrowWidth;
local l_RightArrow_0 = v2.Image.RightArrow;
local l_DownArrow_0 = v2.Image.DownArrow;
local v8 = v0.Component:extend("BannerButton");
v8.render = function(v9)
    local v10 = v9.props[v0.Children] or {};
    local l_size_0 = v9.props.size;
    local l_pos_0 = v9.props.pos;
    local l_isExpandable_0 = v9.props.isExpandable;
    local l_isExpanded_0 = v9.props.isExpanded;
    local l_layoutOrder_0 = v9.props.layoutOrder;
    local v16 = v9.props.inset or 0;
    local l_onButtonPress_0 = v9.props.onButtonPress;
    return v0.createElement("ImageButton", {
        Size = l_size_0,
        Position = l_pos_0,
        BackgroundTransparency = 1,
        LayoutOrder = l_layoutOrder_0,
        [v0.Event.Activated] = l_onButtonPress_0,
        [v0.Event.MouseEnter] = v9.props.onMouseEnter,
        [v0.Event.MouseLeave] = v9.props.onMouseLeave,
        [v0.Event.MouseMoved] = v9.props.onMouseMove,
        [v0.Event.MouseButton2Click] = v9.props.onMouse2Click
    }, v1.JoinDictionaries({
        BannerButtonArrow = l_onButtonPress_0 and v0.createElement("ImageLabel", {
            Visible = l_isExpandable_0,
            Image = not not l_isExpanded_0 and l_DownArrow_0 or l_RightArrow_0,
            BackgroundTransparency = 1,
            Size = UDim2.new(0, l_ArrowWidth_0, 0, l_ArrowWidth_0),
            Position = UDim2.new(0, v16, 0.5, -l_ArrowWidth_0 / 2)
        }),
        HorizontalLineTop = v0.createElement("Frame", {
            Size = UDim2.new(1, 0, 0, l_LineWidth_0),
            BackgroundColor3 = l_LineColor_0,
            BorderSizePixel = 0
        }),
        HorizontalLineBottom = v0.createElement("Frame", {
            Size = UDim2.new(1, 0, 0, l_LineWidth_0),
            Position = UDim2.new(0, 0, 1, -l_LineWidth_0),
            BackgroundColor3 = l_LineColor_0,
            BorderSizePixel = 0
        })
    }, v10));
end;
return v8;


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Packages.React);
local v2 = require(l_CorePackages_0.Roact);
local v3 = require(script.Parent.Parent.Constants);
local l_MainWindowHeader_0 = v3.Font.MainWindowHeader;
local l_MainWindowHeader_1 = v3.DefaultFontSize.MainWindowHeader;
local l_Text_0 = v3.Color.Text;
local l_UnselectedGray_0 = v3.Color.UnselectedGray;
return function(v8)
    local l_text_0 = v8.text;
    local l_size_0 = v8.size;
    local l_pos_0 = v8.pos;
    local _ = v8.onClicked;
    return v2.createElement("TextButton", {
        Text = l_text_0,
        TextSize = l_MainWindowHeader_1,
        TextColor3 = l_Text_0,
        Font = l_MainWindowHeader_0,
        Size = l_size_0,
        Position = l_pos_0,
        AutoButtonColor = true,
        BackgroundColor3 = l_UnselectedGray_0,
        BackgroundTransparency = 0,
        [v2.Event.Activated] = v1.useCallback(function()
            v8.onClicked(v8.text);
        end, {
            v8.onClicked,
            v8.text
        })
    });
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Packages.React);
local v2 = require(l_CorePackages_0.Roact);
local v3 = require(script.Parent.Parent.Constants);
local _ = v3.DefaultFontSize.MainWindow;
local _ = v3.Color.Text;
local _ = v3.Font.MainWindow;
local _ = v3.Font.MainWindowBold;
local l_CheckBoxHeight_0 = v3.UtilityBarFormatting.CheckBoxHeight;
local _ = v3.UtilityBarFormatting.CheckBoxInnerPadding;
return function(v10)
    local l_isSelected_0 = v10.isSelected;
    local l_size_0 = v10.size;
    local l_pos_0 = v10.pos;
    local l_LayoutOrder_0 = v10.LayoutOrder;
    local l_SelectedBlue_0 = v3.Color.SelectedBlue;
    local l_UnselectedGray_0 = v3.Color.UnselectedGray;
    local v17 = "";
    local v18 = 1;
    local l_l_UnselectedGray_0_0 = l_UnselectedGray_0;
    if l_isSelected_0 then
        v17 = v3.Image.Check;
        v18 = 0;
        l_l_UnselectedGray_0_0 = l_SelectedBlue_0;
    end;
    return v2.createElement("ImageButton", {
        Size = l_size_0,
        Position = l_pos_0,
        BackgroundTransparency = 1,
        LayoutOrder = l_LayoutOrder_0,
        [v2.Event.Activated] = v1.useCallback(function()
            v10.OnCheckBoxClicked(v10.name, not l_isSelected_0);
        end, {
            v10.OnCheckBoxClicked,
            v10.name,
            l_isSelected_0
        })
    }, {
        Icon = v2.createElement("ImageLabel", {
            Image = v17,
            Size = UDim2.new(0, l_CheckBoxHeight_0, 0, l_CheckBoxHeight_0),
            Position = UDim2.new(0, 0, 0.5, -l_CheckBoxHeight_0 / 2),
            BackgroundColor3 = l_l_UnselectedGray_0_0,
            BackgroundTransparency = 0,
            BorderColor3 = v3.Color.Text,
            BorderSizePixel = v18
        })
    });
end;


local v0 = require(game:GetService("CorePackages").Roact);
local v1 = require(script.Parent.Parent.Constants);
local l_MainWindow_0 = v1.DefaultFontSize.MainWindow;
local l_Text_0 = v1.Color.Text;
local l_MainWindow_1 = v1.Font.MainWindow;
local l_MainWindowBold_0 = v1.Font.MainWindowBold;
return function(v6)
    return v0.createElement("TextLabel", {
        Text = v6.text,
        TextSize = l_MainWindow_0,
        TextColor3 = l_Text_0,
        TextXAlignment = Enum.TextXAlignment.Left,
        TextWrapped = true,
        Font = not not v6.bold and l_MainWindowBold_0 or l_MainWindow_1,
        Size = v6.size,
        Position = v6.pos,
        BackgroundTransparency = 1,
        LayoutOrder = v6.layoutOrder,
        RichText = v6.richText
    });
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_TextService_0 = game:GetService("TextService");
local v2 = require(l_CorePackages_0.Roact);
local v3 = require(script.Parent.Parent.Constants);
local l_CheckBoxInnerPadding_0 = v3.UtilityBarFormatting.CheckBoxInnerPadding;
local v5 = v2.Component:extend("CheckBox");
v5.render = function(v6)
    local l_checkBoxHeight_0 = v6.props.checkBoxHeight;
    local l_frameHeight_0 = v6.props.frameHeight;
    local l_layoutOrder_0 = v6.props.layoutOrder;
    local l_name_0 = v6.props.name;
    local l_font_0 = v6.props.font;
    local l_fontSize_0 = v6.props.fontSize;
    local l_isSelected_0 = v6.props.isSelected;
    local l_selectedColor_0 = v6.props.selectedColor;
    local l_unselectedColor_0 = v6.props.unselectedColor;
    local l_onCheckBoxClicked_0 = v6.props.onCheckBoxClicked;
    local v17 = "";
    local v18 = 1;
    local l_l_unselectedColor_0_0 = l_unselectedColor_0;
    if l_isSelected_0 then
        v17 = v3.Image.Check;
        v18 = 0;
        l_l_unselectedColor_0_0 = l_selectedColor_0;
    end;
    return v2.createElement("ImageButton", {
        Size = UDim2.new(0, (l_checkBoxHeight_0 + l_TextService_0:GetTextSize(l_name_0, l_fontSize_0, l_font_0, Vector2.new(0, l_frameHeight_0)).X) + l_CheckBoxInnerPadding_0 * 2, 0, l_frameHeight_0),
        BackgroundTransparency = 1,
        LayoutOrder = l_layoutOrder_0,
        [v2.Event.Activated] = function(_)
            l_onCheckBoxClicked_0(l_name_0, not l_isSelected_0);
        end
    }, {
        Icon = v2.createElement("ImageLabel", {
            Image = v17,
            Size = UDim2.new(0, l_checkBoxHeight_0, 0, l_checkBoxHeight_0),
            Position = UDim2.new(0, 0, 0.5, -l_checkBoxHeight_0 / 2),
            BackgroundColor3 = l_l_unselectedColor_0_0,
            BackgroundTransparency = 0,
            BorderColor3 = v3.Color.Text,
            BorderSizePixel = v18
        }),
        Text = v2.createElement("TextLabel", {
            Text = l_name_0,
            TextColor3 = v3.Color.Text,
            TextXAlignment = Enum.TextXAlignment.Left,
            Font = l_font_0,
            TextSize = l_fontSize_0,
            Size = UDim2.new(1, -l_frameHeight_0, 1, 0),
            Position = UDim2.new(0, l_checkBoxHeight_0 + l_CheckBoxInnerPadding_0, 0, 0),
            BackgroundTransparency = 1
        })
    });
end;
return v5;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_TextService_0 = game:GetService("TextService");
local v2 = require(l_CorePackages_0.Roact);
local l_Components_0 = script.Parent.Parent.Components;
local v4 = require(l_Components_0.CheckBox);
local v5 = require(l_Components_0.CheckBoxDropDown);
local v6 = require(script.Parent.Parent.Constants);
local l_CheckBoxHeight_0 = v6.UtilityBarFormatting.CheckBoxHeight;
local v8 = v6.UtilityBarFormatting.CheckBoxInnerPadding * 2;
local l_FilterUnfilled_0 = v6.Image.FilterUnfilled;
local l_FilterFilled_0 = v6.Image.FilterFilled;
local v11 = v2.PureComponent:extend("CheckBoxContainer");
v11.init = function(v12)
    v12.onCheckBoxClicked = function(v13, v14)
        v12.props.onCheckBoxChanged(v13, v14);
    end;
    v12.onCheckBoxExpanded = function(_, v16)
        if not (v16.UserInputType ~= Enum.UserInputType.MouseButton1) or v16.UserInputType == Enum.UserInputType.Touch and v16.UserInputState == Enum.UserInputState.End then
            v12:setState({
                expanded = true
            });
        end;
    end;
    v12.onCloseCheckBox = function(_, v18)
        if not (v18.UserInputType ~= Enum.UserInputType.MouseButton1) or v18.UserInputType == Enum.UserInputType.Touch and v18.UserInputState == Enum.UserInputState.End then
            v12:setState({
                expanded = false
            });
        end;
    end;
    if not v12.props.orderedCheckBoxState then
        warn("CheckBoxContainer must be passed a list of Box Names or else it only creates an empty frame");
    end;
    local v19 = {};
    local v20 = 0;
    local v21 = 0;
    for v22, v23 in ipairs(v12.props.orderedCheckBoxState) do
        local l_l_TextService_0_TextSize_0 = l_TextService_0:GetTextSize(v23.name, v6.DefaultFontSize.UtilBar, v6.Font.UtilBar, Vector2.new(0, 0));
        v19[v22] = l_l_TextService_0_TextSize_0.X;
        v20 = ((v20 + l_l_TextService_0_TextSize_0.X) + l_CheckBoxHeight_0) + v8;
        v21 = v21 + 1;
    end;
    v12.ref = v2.createRef();
    v12.state = {
        expanded = false,
        textWidths = v19,
        numCheckBoxes = v21,
        minFullLength = v20
    };
end;
v11.render = function(v25)
    local v26 = {};
    local l_frameWidth_0 = v25.props.frameWidth;
    local l_frameHeight_0 = v25.props.frameHeight;
    local l_pos_0 = v25.props.pos;
    local l_layoutOrder_0 = v25.props.layoutOrder;
    local l_orderedCheckBoxState_0 = v25.props.orderedCheckBoxState;
    local l_minFullLength_0 = v25.state.minFullLength;
    local l_expanded_0 = v25.state.expanded;
    local l_numCheckBoxes_0 = v25.state.numCheckBoxes;
    local v35 = false;
    for v36, v37 in ipairs(l_orderedCheckBoxState_0) do
        v26[v37.name] = v2.createElement(v4, {
            name = v37.name,
            font = v6.Font.UtilBar,
            fontSize = v6.DefaultFontSize.UtilBar,
            checkBoxHeight = l_CheckBoxHeight_0,
            frameHeight = l_frameHeight_0,
            layoutOrder = v36,
            isSelected = v37.state,
            selectedColor = v6.Color.SelectedBlue,
            unselectedColor = v6.Color.UnselectedGray,
            onCheckBoxClicked = v25.onCheckBoxClicked
        });
        v35 = v35 or v37.state;
    end;
    if l_frameWidth_0 < l_minFullLength_0 then
        v26.CheckBoxLayout = v2.createElement("UIListLayout", {
            HorizontalAlignment = Enum.HorizontalAlignment.Left,
            SortOrder = Enum.SortOrder.LayoutOrder,
            VerticalAlignment = Enum.VerticalAlignment.Top,
            FillDirection = Enum.FillDirection.Vertical
        });
        local v38 = v25.ref.current and l_expanded_0;
        local v39 = nil;
        if v38 then
            local l_AbsolutePosition_0 = v25.ref.current.AbsolutePosition;
            v39 = UDim2.new(0, l_AbsolutePosition_0.X, 0, (l_AbsolutePosition_0.Y + l_frameHeight_0) + 3);
        end;
        return v2.createElement("ImageButton", {
            Size = UDim2.new(0, l_frameHeight_0, 0, l_frameHeight_0),
            LayoutOrder = l_layoutOrder_0,
            Image = not not v38 and l_FilterFilled_0 or l_FilterUnfilled_0,
            BackgroundTransparency = 1,
            BorderColor3 = v6.Color.Text,
            [v2.Event.InputEnded] = v25.onCheckBoxExpanded,
            [v2.Ref] = v25.ref
        }, {
            DropDown = v38 and v2.createElement(v5, {
                absolutePosition = v39,
                frameWidth = l_frameWidth_0,
                elementHeight = l_frameHeight_0,
                numElements = l_numCheckBoxes_0,
                onCloseCheckBox = v25.onCloseCheckBox
            }, v26)
        });
    else
        v26.CheckBoxLayout = v2.createElement("UIListLayout", {
            HorizontalAlignment = Enum.HorizontalAlignment.Left,
            SortOrder = Enum.SortOrder.LayoutOrder,
            VerticalAlignment = Enum.VerticalAlignment.Top,
            FillDirection = Enum.FillDirection.Horizontal
        });
        return v2.createElement("Frame", {
            Size = UDim2.new(0, l_frameWidth_0, 0, l_frameHeight_0),
            Position = l_pos_0,
            BackgroundTransparency = 1,
            LayoutOrder = l_layoutOrder_0
        }, v26);
    end;
end;
return v11;


local l_CorePackages_0 = game:GetService("CorePackages");
local _ = game:GetService("CoreGui").RobloxGui;
local v2 = require(l_CorePackages_0.Roact);
local v3 = require(script.Parent.Parent.Constants);
local v4 = v2.Component:extend("CheckBoxDropDown");
v4.render = function(v5)
    local v6 = v5.props[v2.Children] or {};
    local l_absolutePosition_0 = v5.props.absolutePosition;
    local l_frameWidth_0 = v5.props.frameWidth;
    local l_elementHeight_0 = v5.props.elementHeight;
    local l_numElements_0 = v5.props.numElements;
    local l_dropdownTargetGui_0 = v5.props.dropdownTargetGui;
    local l_onCloseCheckBox_0 = v5.props.onCloseCheckBox;
    local v13 = l_elementHeight_0 * l_numElements_0;
    return v2.createElement(v2.Portal, {
        target = l_dropdownTargetGui_0 ~= nil and l_dropdownTargetGui_0 or game:GetService("CoreGui").DevConsoleMaster
    }, {
        InputCatcher = v2.createElement("Frame", {
            Size = UDim2.new(1, 0, 1, 0),
            Position = UDim2.new(0, 0, 0, 0),
            BackgroundTransparency = 1,
            [v2.Event.InputEnded] = l_onCloseCheckBox_0
        }, {
            OuterFrame = v2.createElement("ImageButton", {
                Size = UDim2.new(0, l_frameWidth_0, 0, 24 + v13),
                AutoButtonColor = false,
                Position = l_absolutePosition_0,
                BackgroundColor3 = v3.Color.TextBoxGray,
                BackgroundTransparency = 0
            }, {
                innerFrame = v2.createElement("Frame", {
                    Position = UDim2.new(0, 12, 0, 12),
                    Size = UDim2.new(0, l_frameWidth_0, 0, v13),
                    BackgroundTransparency = 1
                }, v6)
            })
        })
    });
end;
return v4;


local v0 = require(game:GetService("CorePackages").Roact);
local v1 = require(script.Parent.Parent.Constants);
local l_FrameHeight_0 = v1.UtilityBarFormatting.FrameHeight;
local l_SmallFrameHeight_0 = v1.UtilityBarFormatting.SmallFrameHeight;
local l_ClientServerButtonWidth_0 = v1.UtilityBarFormatting.ClientServerButtonWidth;
local l_ClientServerDropDownWidth_0 = v1.UtilityBarFormatting.ClientServerDropDownWidth;
local l_UtilBar_0 = v1.Font.UtilBar;
local l_UtilBar_1 = v1.DefaultFontSize.UtilBar;
local l_Text_0 = v1.Color.Text;
local v9 = require(script.Parent.FullScreenDropDownButton);
local v10 = require(script.Parent.DropDown);
local v11 = UDim2.new(0, l_ClientServerButtonWidth_0, 0, l_FrameHeight_0);
local v12 = {
    "Client",
    "Server"
};
local v13 = v0.Component:extend("ClientServerButton");
v13.init = function(v14)
    v14.dropDownCallback = function(v15)
        if v15 == 1 then
            v14.props.onClientButton();
            return ;
        else
            if v15 == 2 then
                v14.props.onServerButton();
            end;
            return ;
        end;
    end;
end;
v13.render = function(v16)
    local l_formFactor_0 = v16.props.formFactor;
    local l_useDropDown_0 = v16.props.useDropDown;
    local l_isClientView_0 = v16.props.isClientView;
    local l_layoutOrder_0 = v16.props.layoutOrder;
    local l_onServerButton_0 = v16.props.onServerButton;
    local l_onClientButton_0 = v16.props.onClientButton;
    local l_SelectedBlue_0 = v1.Color.SelectedBlue;
    local l_UnselectedGray_0 = v1.Color.UnselectedGray;
    if l_isClientView_0 then
        l_UnselectedGray_0 = v1.Color.SelectedBlue;
        l_SelectedBlue_0 = v1.Color.UnselectedGray;
    end;
    if l_formFactor_0 == v1.FormFactor.Small then
        return v0.createElement(v9, {
            buttonSize = UDim2.new(0, l_ClientServerDropDownWidth_0, 0, l_SmallFrameHeight_0),
            dropDownList = v12,
            selectedIndex = not l_isClientView_0 and 2 or 1,
            onSelection = v16.dropDownCallback,
            layoutOrder = l_layoutOrder_0
        });
    elseif not l_useDropDown_0 then
        return v0.createElement("Frame", {
            Size = UDim2.new(0, 2 * l_ClientServerButtonWidth_0, 0, l_FrameHeight_0),
            BackgroundTransparency = 1,
            LayoutOrder = l_layoutOrder_0
        }, {
            ClientButton = v0.createElement("TextButton", {
                Text = v12[1],
                TextSize = l_UtilBar_1,
                TextColor3 = l_Text_0,
                Font = l_UtilBar_0,
                Size = v11,
                AutoButtonColor = false,
                BackgroundColor3 = l_UnselectedGray_0,
                BackgroundTransparency = 0,
                LayoutOrder = 1,
                [v0.Event.Activated] = l_onClientButton_0
            }),
            ServerButton = v0.createElement("TextButton", {
                Text = v12[2],
                TextSize = l_UtilBar_1,
                TextColor3 = l_Text_0,
                Font = l_UtilBar_0,
                Size = v11,
                AutoButtonColor = false,
                Position = UDim2.new(0, l_ClientServerButtonWidth_0, 0, 0),
                BackgroundColor3 = l_SelectedBlue_0,
                BackgroundTransparency = 0,
                LayoutOrder = 2,
                [v0.Event.Activated] = l_onServerButton_0
            })
        });
    else
        return v0.createElement(v10, {
            buttonSize = UDim2.new(0, l_ClientServerDropDownWidth_0, 0, l_SmallFrameHeight_0),
            dropDownList = v12,
            selectedIndex = not l_isClientView_0 and 2 or 1,
            onSelection = v16.dropDownCallback,
            layoutOrder = l_layoutOrder_0
        });
    end;
end;
return v13;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Components_0 = script.Parent.Parent.Components;
local v2 = require(l_CorePackages_0.Roact);
local v3 = require(script.Parent.Parent.Immutable);
local v4 = require(l_Components_0.DataContext);
return function(v5, ...)
    if not v5 then
        error("Expected component to be passed to connection, got nil.");
    end;
    local v6 = {};
    for v7 = 1, select("#", ...) do
        v6[v7] = select(v7, ...);
    end;
    local v8 = v2.Component:extend((string.format("Consumer(%s)_DependsOn_%s", tostring(v5), v6[1])));
    v8.init = function(v9)
        local v10 = {};
        for _, v12 in pairs(v6) do
            local v13 = v9.props.DevConsoleData[v12];
            if v13 then
                v10[v12] = v13;
            else
                error((string.format("%s %s", tostring(v12), "could not be found. Make sure DataProvider is above this consumer")));
                return ;
            end;
        end;
        v9:setState(v10);
    end;
    v8.render = function(v14)
        return v2.createElement(v5, (v3.JoinDictionaries(v14.props.componentProps, v14.state)));
    end;
    return function(v15)
        return v2.createElement(v4.Consumer, {
            render = function(v16)
                return v2.createElement(v8, {
                    componentProps = v15,
                    DevConsoleData = v16
                });
            end
        });
    end;
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Roact);
local v2 = require(l_CorePackages_0.RoactRodux);
local l_Components_0 = script.Parent.Parent.Components;
local v4 = require(l_Components_0.Log.LogData);
local v5 = require(l_Components_0.Memory.ClientMemoryData);
local v6 = require(l_Components_0.Memory.ServerMemoryData);
local v7 = require(l_Components_0.Network.NetworkData);
local v8 = require(l_Components_0.Scripts.ServerScriptsData);
local v9 = require(l_Components_0.DataStores.DataStoresData);
local v10 = require(l_Components_0.ServerStats.ServerStatsData);
local v11 = require(l_Components_0.ActionBindings.ActionBindingsData);
local v12 = require(l_Components_0.ServerJobs.ServerJobsData);
local v13 = require(l_Components_0.DebugVisualizations.DebugVisualizationsData);
local v14 = require(l_Components_0.ScriptProfiler.ServerProfilingData);
local v15 = require(l_Components_0.LuauHeap.LuauHeapData);
local v16 = require(l_Components_0.DataContext);
local v17 = v1.Component:extend("DataProvider");
v17.init = function(v18)
    v18:setState({
        DevConsoleData = {
            ClientLogData = v4.new(true),
            ServerLogData = v4.new(false),
            ClientMemoryData = v5.new(),
            ServerMemoryData = v6.new(),
            ClientNetworkData = v7.new(true),
            ServerNetworkData = v7.new(false),
            ServerScriptsData = v8.new(),
            DataStoresData = v9.new(),
            ServerStatsData = v10.new(),
            ActionBindingsData = v11.new(),
            ServerJobsData = v12.new(),
            DebugVisualizationsData = v13.new(),
            ServerProfilingData = v14.new(),
            LuauHeapData = v15.new()
        }
    });
end;
v17.didMount = function(v19)
    v19.state.DevConsoleData.ClientLogData:start();
    v19.state.DevConsoleData.ClientMemoryData:start();
end;
v17.willUpdate = function(v20, v21, _)
    if not (not v21.isDeveloperView or v20.props.isDeveloperView) then
        for _, v24 in pairs(v20.state.DevConsoleData) do
            if not v24:isRunning() then
                v24:start();
            end;
        end;
    end;
end;
v17.render = function(v25)
    return v1.createElement(v16.Provider, {
        value = v25.state.DevConsoleData
    }, v1.oneChild(v25.props[v1.Children]));
end;
return v2.UNSTABLE_connect2(function(v26, _)
    return {
        isDeveloperView = v26.MainView.isDeveloperView
    };
end, nil)(v17);


local v0 = require(game:GetService("CorePackages").Roact);
local l_Components_0 = script.Parent.Parent.Parent.Components;
local v2 = require(l_Components_0.DataConsumer);
local v3 = require(l_Components_0.CellLabel);
local v4 = require(l_Components_0.BannerButton);
local v5 = require(l_Components_0.LineGraph);
local v6 = require(script.Parent.Parent.Parent.Constants);
local l_LineWidth_0 = v6.GeneralFormatting.LineWidth;
local l_LineColor_0 = v6.GeneralFormatting.LineColor;
local l_ChartHeaderNames_0 = v6.DataStoresFormatting.ChartHeaderNames;
local l_ValueCellWidth_0 = v6.DataStoresFormatting.ValueCellWidth;
local l_CellPadding_0 = v6.DataStoresFormatting.CellPadding;
local l_ExpandArrowPadding_0 = v6.DataStoresFormatting.ExpandArrowPadding;
local l_HeaderFrameHeight_0 = v6.DataStoresFormatting.HeaderFrameHeight;
local l_EntryFrameHeight_0 = v6.DataStoresFormatting.EntryFrameHeight;
local l_LineGraphHeight_0 = v6.GeneralFormatting.LineGraphHeight;
local l_NoResultSearchStr_0 = v6.GeneralFormatting.NoResultSearchStr;
local v17 = require(script.Parent.Parent.Parent.Util.convertTimeStamp);
local v18 = v0.Component:extend("DataStoresChart");
local function v20(v19)
    return v19.time;
end;
local function v22(v21)
    return v21.value;
end;
local function v24(v23)
    return (math.ceil(v23));
end;
v18.init = function(v25, v26)
    local v27, v28 = v26.DataStoresData:getCurrentData();
    v25.getOnButtonPress = function(v29)
        return function(_, _)
            local l_v25_0 = v25;
            local v33 = {};
            local v34 = false;
            if v25.state.expandedEntry ~= v29 then
                v34 = v29;
            end;
            v33.expandedEntry = v34;
            l_v25_0:setState(v33);
        end;
    end;
    v25.state = {
        dataStoresData = v27,
        dataStoresDataCount = v28,
        expandedEntry = nil
    };
end;
v18.didMount = function(v35)
    v35.statsConnector = v35.props.DataStoresData:Signal():Connect(function(v36, v37)
        v35:setState({
            dataStoresData = v36,
            dataStoresDataCount = v37
        });
    end);
end;
v18.willUnmount = function(v38)
    v38.statsConnector:Disconnect();
    v38.statsConnector = nil;
end;
v18.render = function(v39)
    local v40 = {};
    local l_searchTerm_0 = v39.props.searchTerm;
    local l_size_0 = v39.props.size;
    local l_layoutOrder_0 = v39.props.layoutOrder;
    local l_expandedEntry_0 = v39.state.expandedEntry;
    v40.UIListLayout = v0.createElement("UIListLayout", {
        FillDirection = Enum.FillDirection.Vertical,
        HorizontalAlignment = Enum.HorizontalAlignment.Left,
        VerticalAlignment = Enum.VerticalAlignment.Top,
        SortOrder = Enum.SortOrder.LayoutOrder
    });
    local l_l_HeaderFrameHeight_0_0 = l_HeaderFrameHeight_0;
    local l_dataStoresData_0 = v39.state.dataStoresData;
    local v47 = 0;
    local v48 = 1;
    if l_dataStoresData_0 then
        for v49, v50 in pairs(l_dataStoresData_0) do
            v47 = v47 + 1;
            if not l_searchTerm_0 or string.find(v49:lower(), l_searchTerm_0:lower()) ~= nil then
                v48 = v48 + 1;
                local v51 = l_expandedEntry_0 == v49;
                v40[v49] = v0.createElement("Frame", {
                    Size = UDim2.new(1, 0, 0, not not v51 and l_EntryFrameHeight_0 + l_LineGraphHeight_0 or l_EntryFrameHeight_0),
                    BackgroundTransparency = 1,
                    LayoutOrder = v48
                }, {
                    DataButton = v0.createElement(v4, {
                        size = UDim2.new(1, 0, 0, l_EntryFrameHeight_0),
                        pos = UDim2.new(),
                        isExpanded = v51,
                        onButtonPress = v39.getOnButtonPress(v49)
                    }, {
                        [v49] = v0.createElement(v3, {
                            text = v49,
                            size = UDim2.new(1 - l_ValueCellWidth_0, -l_CellPadding_0 - l_ExpandArrowPadding_0, 1, 0),
                            pos = UDim2.new(0, l_CellPadding_0 + l_ExpandArrowPadding_0, 0, 0)
                        }),
                        Data = v0.createElement(v3, {
                            text = v50.dataSet:back().value,
                            size = UDim2.new(l_ValueCellWidth_0, -l_CellPadding_0, 1, 0),
                            pos = UDim2.new(1 - l_ValueCellWidth_0, l_CellPadding_0, 0, 0)
                        }),
                        VerticalLine = v0.createElement("Frame", {
                            Size = UDim2.new(0, l_LineWidth_0, 0, l_EntryFrameHeight_0),
                            Position = UDim2.new(1 - l_ValueCellWidth_0, 0, 0, 0),
                            BackgroundColor3 = l_LineColor_0,
                            BorderSizePixel = 0
                        }),
                        lowerHorizontalLine = v0.createElement("Frame", {
                            Size = UDim2.new(1, 0, 0, l_LineWidth_0),
                            Position = UDim2.new(0, 0, 1, 0),
                            BackgroundColor3 = l_LineColor_0,
                            BorderSizePixel = 0
                        })
                    }),
                    Graph = v51 and v0.createElement(v5, {
                        pos = UDim2.new(0, 0, 0, l_EntryFrameHeight_0),
                        size = UDim2.new(1, 0, 1, -l_EntryFrameHeight_0),
                        graphData = v50.dataSet,
                        maxY = v50.max,
                        minY = v50.min,
                        getX = v20,
                        getY = v22,
                        axisLabelX = "Timestamp",
                        axisLabelY = v49,
                        stringFormatX = v17,
                        stringFormatY = v24
                    })
                });
                l_l_HeaderFrameHeight_0_0 = l_l_HeaderFrameHeight_0_0 + l_EntryFrameHeight_0;
            end;
        end;
    end;
    if v48 == 1 then
        if v47 == 0 then
            return v0.createElement("TextLabel", {
                Size = l_size_0,
                Text = "Initialize DataStoresService to view DataStore Budget.",
                TextColor3 = v6.Color.Text,
                BackgroundTransparency = 1,
                LayoutOrder = l_layoutOrder_0
            });
        else
            v40.emptyResult = v0.createElement("TextLabel", {
                Size = l_size_0,
                Text = string.format(l_NoResultSearchStr_0, l_searchTerm_0),
                TextColor3 = v6.Color.Text,
                BackgroundTransparency = 1
            });
        end;
    end;
    return v0.createElement("Frame", {
        Size = l_size_0,
        BackgroundTransparency = 1,
        LayoutOrder = l_layoutOrder_0
    }, {
        Header = v0.createElement("Frame", {
            Size = UDim2.new(1, 0, 0, l_HeaderFrameHeight_0),
            BackgroundTransparency = 1,
            LayoutOrder = 1
        }, {
            [l_ChartHeaderNames_0[1]] = v0.createElement(v3, {
                text = l_ChartHeaderNames_0[1],
                size = UDim2.new(1 - l_ValueCellWidth_0, -l_CellPadding_0 - l_ExpandArrowPadding_0, 1, 0),
                pos = UDim2.new(0, l_CellPadding_0 + l_ExpandArrowPadding_0, 0, 0)
            }),
            [l_ChartHeaderNames_0[2]] = v0.createElement(v3, {
                text = l_ChartHeaderNames_0[2],
                size = UDim2.new(l_ValueCellWidth_0, -l_CellPadding_0, 1, 0),
                pos = UDim2.new(1 - l_ValueCellWidth_0, l_CellPadding_0, 0, 0)
            }),
            upperHorizontalLine = v0.createElement("Frame", {
                Size = UDim2.new(1, 0, 0, l_LineWidth_0),
                BackgroundColor3 = l_LineColor_0,
                BorderSizePixel = 0
            }),
            vertical = v0.createElement("Frame", {
                Size = UDim2.new(0, l_LineWidth_0, 1, 0),
                Position = UDim2.new(1 - l_ValueCellWidth_0, 0, 0, 0),
                BackgroundColor3 = l_LineColor_0,
                BorderSizePixel = 0
            }),
            lowerHorizontalLine = v0.createElement("Frame", {
                Size = UDim2.new(1, 0, 0, l_LineWidth_0),
                Position = UDim2.new(0, 0, 1, 0),
                BackgroundColor3 = l_LineColor_0,
                BorderSizePixel = 0
            })
        }),
        mainFrame = v0.createElement("ScrollingFrame", {
            Position = UDim2.new(0, 0, 0, l_HeaderFrameHeight_0),
            Size = UDim2.new(1, 0, 1, -l_HeaderFrameHeight_0),
            ScrollBarThickness = 5,
            CanvasSize = UDim2.new(1, 0, 0, l_l_HeaderFrameHeight_0_0),
            BackgroundTransparency = 1
        }, v40)
    });
end;
return v2(v18, "DataStoresData");


local v0 = require(script.Parent.Parent.Parent.CircularBuffer);
local v1 = require(script.Parent.Parent.Parent.Signal);
local v2 = tonumber(settings():GetFVariable("NewDevConsoleMaxGraphCount"));
local v3 = require(script.Parent.Parent.Parent.Util.getClientReplicator);
local v4 = {};
v4.__index = v4;
v4.new = function()
    local v5 = {};
    setmetatable(v5, v4);
    v5._dataStoresUpdated = v1.new();
    v5._dataStoresData = {};
    v5._dataStoresDataCount = 0;
    v5._lastUpdateTime = 0;
    v5._isRunning = false;
    return v5;
end;
v4.Signal = function(v6)
    return v6._dataStoresUpdated;
end;
v4.getCurrentData = function(v7)
    return v7._dataStoresData, v7._dataStoresDataCount;
end;
v4.updateValue = function(v8, v9, v10)
    if v8._dataStoresData[v9] then
        local v11 = v8._dataStoresData[v9];
        local l_max_0 = v11.max;
        local l_min_0 = v11.min;
        local v14 = v8._dataStoresData[v9].dataSet:push_back({
            value = v10,
            time = v8._lastUpdateTime
        });
        if v14 then
            local v15 = v8._dataStoresData[v9].dataSet:iterator();
            local v16 = v15:next();
            if l_max_0 == v14.value then
                l_max_0 = l_min_0;
                while v16 do
                    l_max_0 = v16.value < l_max_0 and l_max_0 or v16.value;
                    v16 = v15:next();
                end;
            end;
            if l_min_0 == v14.value then
                l_min_0 = l_max_0;
                while v16 do
                    l_min_0 = l_min_0 < v16.value and l_min_0 or v16.value;
                    v16 = v15:next();
                end;
            end;
        end;
        v8._dataStoresData[v9].max = l_max_0 < v10 and v10 or l_max_0;
        v8._dataStoresData[v9].min = l_min_0 < v10 and l_min_0 or v10;
        return ;
    else
        local v17 = v0.new(v2);
        v17:push_back({
            value = v10,
            time = v8._lastUpdateTime
        });
        v8._dataStoresData[v9] = {
            max = v10,
            min = v10,
            dataSet = v17
        };
        return ;
    end;
end;
v4.isRunning = function(v18)
    return v18._isRunning;
end;
v4.start = function(v19)
    local v20 = v3();
    if not (not v20 or v19._statsListenerConnection) then
        v19._statsListenerConnection = v20.StatsReceived:connect(function(v21)
            local l_DataStoreBudget_0 = v21.DataStoreBudget;
            v19._lastUpdateTime = os.time();
            if l_DataStoreBudget_0 then
                local v23 = 0;
                for v24, v25 in pairs(l_DataStoreBudget_0) do
                    if type(v25) == "number" then
                        v19:updateValue(v24, v25);
                        v23 = v23 + 1;
                    end;
                end;
                v19._dataStoresDataCount = v23;
                v19._dataStoresUpdated:Fire(v19._dataStoresData, v19._dataStoresDataCount);
            end;
        end);
        v20:RequestServerStats(true);
        v19._isRunning = true;
    end;
end;
v4.stop = function(v26)
    if v26._statsListenerConnection then
        v26._statsListenerConnection:Disconnect();
        v26._statsListenerConnection = nil;
    end;
    v26._isRunning = false;
end;
return v4;


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Roact);
local v2 = require(l_CorePackages_0.RoactRodux);
local l_Components_0 = script.Parent.Parent.Parent.Components;
local v4 = require(l_Components_0.DataStores.DataStoresChart);
local v5 = require(l_Components_0.UtilAndTab);
local v6 = require(script.Parent.Parent.Parent.Actions.DataStoresUpdateSearchFilter);
local v7 = require(script.Parent.Parent.Parent.Constants);
local l_MainRowPadding_0 = v7.GeneralFormatting.MainRowPadding;
local v9 = v1.PureComponent:extend("MainViewDataStores");
v9.init = function(v10)
    v10.onUtilTabHeightChanged = function(v11)
        v10:setState({
            utilTabHeight = v11
        });
    end;
    v10.onSearchTermChanged = function(v12)
        v10.props.dispatchDataStoresUpdateSearchFilter(v12, {});
    end;
    v10.utilRef = v1.createRef();
    v10.state = {
        utilTabHeight = 0
    };
end;
v9.didMount = function(v13)
    v13:setState({
        utilTabHeight = v13.utilRef.current.Size.Y.Offset
    });
end;
v9.didUpdate = function(v14)
    local l_Size_0 = v14.utilRef.current.Size;
    if l_Size_0.Y.Offset ~= v14.state.utilTabHeight then
        v14:setState({
            utilTabHeight = l_Size_0.Y.Offset
        });
    end;
end;
v9.render = function(v16)
    local l_size_0 = v16.props.size;
    local l_formFactor_0 = v16.props.formFactor;
    local l_tabList_0 = v16.props.tabList;
    local l_storesSearchTerm_0 = v16.props.storesSearchTerm;
    local l_utilTabHeight_0 = v16.state.utilTabHeight;
    local l_createElement_0 = v1.createElement;
    local v23 = "Frame";
    local v24 = {
        Size = l_size_0,
        BackgroundColor3 = v7.Color.BaseGray,
        BackgroundTransparency = 1,
        LayoutOrder = 3
    };
    local v25 = {
        UIListLayout = v1.createElement("UIListLayout", {
            Padding = UDim.new(0, l_MainRowPadding_0),
            SortOrder = Enum.SortOrder.LayoutOrder
        }),
        UtilAndTab = v1.createElement(v5, {
            windowWidth = l_size_0.X.Offset,
            formFactor = l_formFactor_0,
            tabList = l_tabList_0,
            searchTerm = l_storesSearchTerm_0,
            layoutOrder = 1,
            refForParent = v16.utilRef,
            onHeightChanged = v16.onUtilTabHeightChanged,
            onSearchTermChanged = v16.onSearchTermChanged
        })
    };
    local v26 = false;
    if l_utilTabHeight_0 > 0 then
        v26 = v1.createElement(v4, {
            size = UDim2.new(1, 0, 1, -l_utilTabHeight_0),
            searchTerm = l_storesSearchTerm_0,
            layoutOrder = 2
        });
    end;
    v25.DataStores = v26;
    return l_createElement_0(v23, v24, v25);
end;
return v2.UNSTABLE_connect2(function(v27, _)
    return {
        storesSearchTerm = v27.DataStoresData.storesSearchTerm
    };
end, function(v29)
    return {
        dispatchDataStoresUpdateSearchFilter = function(v30, v31)
            v29(v6(v30, v31));
        end
    };
end)(v9);


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Roact);
local l_LinkingProtocol_0 = require(l_CorePackages_0.Workspace.Packages.LinkingProtocol).LinkingProtocol;
local l_Components_0 = script.Parent.Parent.Parent.Components;
local v4 = require(l_Components_0.BannerButton);
local v5 = require(l_Components_0.BoxButton);
local v6 = require(l_Components_0.CellCheckbox);
local v7 = require(l_Components_0.CellLabel);
local v8 = require(l_Components_0.DataConsumer);
local v9 = require(l_Components_0.HeaderButton);
local v10 = require(script.Parent.Parent.Parent.Constants);
local l_GeneralFormatting_0 = v10.GeneralFormatting;
local l_LineWidth_0 = l_GeneralFormatting_0.LineWidth;
local l_LineColor_0 = l_GeneralFormatting_0.LineColor;
local l_DebugVisualizationsFormatting_0 = v10.DebugVisualizationsFormatting;
local l_ChartHeaderNames_0 = l_DebugVisualizationsFormatting_0.ChartHeaderNames;
local l_ChartCellWidths_0 = l_DebugVisualizationsFormatting_0.ChartCellWidths;
local l_HeaderFrameHeight_0 = l_DebugVisualizationsFormatting_0.HeaderFrameHeight;
local l_EntryFrameHeight_0 = l_DebugVisualizationsFormatting_0.EntryFrameHeight;
local l_CellPadding_0 = l_DebugVisualizationsFormatting_0.CellPadding;
local l_MinFrameWidth_0 = l_DebugVisualizationsFormatting_0.MinFrameWidth;
local l_LearnMoreWidth_0 = l_DebugVisualizationsFormatting_0.LearnMoreWidth;
local v22 = 0;
for _, v24 in ipairs(l_ChartCellWidths_0) do
    v22 = v22 + v24;
end;
local v25 = -v22;
local v26 = {};
local v27 = {};
local v28 = {};
v25 = v25 / 2;
table.insert(v26, UDim2.fromOffset(l_CellPadding_0, 0));
table.insert(v27, UDim2.new(0.5, v25 - l_CellPadding_0, 0, l_HeaderFrameHeight_0));
table.insert(v28, UDim2.new(0.5, v25 - l_CellPadding_0, 0, l_EntryFrameHeight_0));
for _, v30 in ipairs(l_ChartCellWidths_0) do
    table.insert(v26, UDim2.new(0.5, v25 + l_CellPadding_0, 0, 0));
    table.insert(v27, UDim2.fromOffset(v30 - l_CellPadding_0, l_HeaderFrameHeight_0));
    table.insert(v28, UDim2.fromOffset(v30 - l_CellPadding_0, l_EntryFrameHeight_0));
    v25 = v25 + v30;
end;
table.insert(v26, UDim2.new(0.5, v25 + l_CellPadding_0, 0, 0));
table.insert(v27, UDim2.new(0.5, -v22 / 2 - l_CellPadding_0, 0, l_HeaderFrameHeight_0));
table.insert(v28, UDim2.new(0.5, -v22 / 2 - l_CellPadding_0, 0, l_EntryFrameHeight_0));
assert(#l_ChartCellWidths_0 == 2, "DebugVisualizationsChart expected DebugVisualizationsFormatting CELL_WIDTHS to have a length of 2");
assert(#v26 == 4, "DebugVisualizationsChart expected cellOffset to have length " .. 4);
assert(#v27 == 4, "DebugVisualizationsChart expected headerCellSize to have length " .. 4);
assert(#v28 == 4, "DebugVisualizationsChart expected entryCellSize to have length " .. 4);
local v31 = {};
for v32, v33 in ipairs(v26) do
    v31[v32] = UDim2.new(v33.X.Scale, v33.X.Offset - l_CellPadding_0, v33.Y.Scale, v33.Y.Offset);
end;
local v34 = v1.Component:extend("DebugVisualizationsChart");
local function v41(v35, v36)
    local v37 = {};
    for v38, v39 in ipairs(l_ChartHeaderNames_0) do
        v37[v39] = v1.createElement(v9, {
            text = v39,
            size = v27[v38],
            pos = v26[v38],
            sortfunction = v35
        });
    end;
    v37.upperHorizontalLine = v1.createElement("Frame", {
        Size = UDim2.new(1, 0, 0, l_LineWidth_0),
        Position = UDim2.new(0, 0, 0, 0),
        BackgroundColor3 = l_LineColor_0,
        BorderSizePixel = 0
    });
    v37.lowerHorizontalLine = v1.createElement("Frame", {
        Size = UDim2.new(1, 0, 0, l_LineWidth_0),
        Position = UDim2.new(0, 0, 1, -l_LineWidth_0),
        BackgroundColor3 = l_LineColor_0,
        BorderSizePixel = 0
    });
    for v40 = 2, #v31 do
        v37[string.format("VerticalLine_%d", v40)] = v1.createElement("Frame", {
            Size = UDim2.new(0, l_LineWidth_0, 1, 0),
            Position = v31[v40],
            BackgroundColor3 = l_LineColor_0,
            BorderSizePixel = 0
        });
    end;
    return v1.createElement("Frame", {
        Size = UDim2.new(0, v36, 0, l_HeaderFrameHeight_0),
        BackgroundTransparency = 1
    }, v37);
end;
local function v54(v42, v43, v44, v45, v46, v47, v48)
    local l_name_0 = v42.name;
    local l_settingInfo_0 = v42.settingInfo;
    local v51 = tostring(l_settingInfo_0.Name);
    local v52 = {};
    for v53 = 2, #v31 do
        v52[string.format("line_%d", v53)] = v1.createElement("Frame", {
            Size = UDim2.new(0, l_LineWidth_0, 1, 0),
            Position = v31[v53],
            BackgroundColor3 = l_LineColor_0,
            BorderSizePixel = 0
        });
    end;
    v52[l_name_0] = v1.createElement(v7, {
        text = v51,
        size = v28[1],
        pos = v26[1]
    });
    v52.checkbox = v1.createElement(v6, {
        name = v51,
        isSelected = l_settingInfo_0.Value,
        size = v28[2],
        pos = v26[2],
        OnCheckBoxClicked = v42.valueChangeCallback
    });
    v52.visualType = v1.createElement(v7, {
        text = l_settingInfo_0.Type,
        size = v28[3],
        pos = v26[3]
    });
    v52.tags = v1.createElement(v7, {
        text = tostring(l_settingInfo_0.Tagstring),
        size = v28[4],
        pos = v26[4]
    });
    v52.lowerHorizontalLine = v1.createElement("Frame", {
        Size = UDim2.new(1, 0, 0, l_LineWidth_0),
        Position = UDim2.new(0, 0, 1, 0),
        BackgroundColor3 = l_LineColor_0,
        BorderSizePixel = 0
    });
    return v1.createElement("Frame", {
        Size = UDim2.new(0, v43, 0, v44),
        BackgroundTransparency = 1,
        LayoutOrder = v45
    }, {
        Button = v1.createElement(v4, {
            size = UDim2.new(1, 0, 0, l_EntryFrameHeight_0),
            pos = UDim2.new(),
            isExpanded = v46,
            onButtonPress = v47(l_name_0)
        }, v52),
        DescriptionText = v46 and v1.createElement(v7, {
            pos = UDim2.new(0, l_CellPadding_0, 0, l_EntryFrameHeight_0 + l_CellPadding_0),
            size = UDim2.new(0, (v43 - l_LearnMoreWidth_0) - l_CellPadding_0 * 2, 0, l_EntryFrameHeight_0),
            text = tostring(l_settingInfo_0.Description)
        }),
        LearnMoreButton = v46 and v1.createElement(v5, {
            text = "Learn More",
            size = UDim2.new(0, l_LearnMoreWidth_0, 0, l_EntryFrameHeight_0),
            pos = UDim2.new(0, (v43 - l_LearnMoreWidth_0) - l_CellPadding_0, 0, l_EntryFrameHeight_0 + l_CellPadding_0),
            onClicked = v48(l_name_0)
        })
    });
end;
populateEntries = function(v55, v56, v57, v58, v59, v60, v61, v62, v63, v64)
    local v65 = {
        UIListLayout = v1.createElement("UIListLayout", {
            HorizontalAlignment = Enum.HorizontalAlignment.Left,
            VerticalAlignment = Enum.VerticalAlignment.Top,
            SortOrder = Enum.SortOrder.LayoutOrder
        })
    };
    local v66 = {};
    for v67, v68 in pairs(v56) do
        if v68 then
            table.insert(v66, v67);
        end;
    end;
    local v69 = #v57;
    local v70 = 0;
    if not (not v60 or not v59) then
        local v71 = -1;
        local v72 = 0;
        local v73 = 0;
        for v74, v75 in ipairs(v57) do
            local v76 = false;
            if v55 then
                v76 = string.find(tostring(v75.settingInfo.Name):lower(), v55:lower()) ~= nil or string.find(v75.name:lower(), v55:lower()) ~= nil;
            end;
            if #v66 > 0 then
                local v77 = false;
                for _, v79 in pairs(v66) do
                    if table.find(v75.settingInfo.Tags, v79) ~= nil then
                        v77 = true;
                        break;
                    end;
                end;
                if v55 then
                    v76 = v76 and v77;
                else
                    v55 = true;
                    v76 = v77;
                end;
            end;
            if not (v55 and not v76) then
                local v80 = v62 == v75.name;
                local v81 = not not v80 and l_EntryFrameHeight_0 * 2 + l_CellPadding_0 * 2 or l_EntryFrameHeight_0;
                if v59.Y <= v70 + l_EntryFrameHeight_0 then
                    if v72 < v60.Y then
                        v65[v74] = v54(v75, v61, v81, (not not v58 and v69 - v74 or v74) + 1, v80, v63, v64);
                    end;
                    if v71 < 0 then
                        v71 = v70;
                    else
                        v72 = v72 + l_EntryFrameHeight_0;
                    end;
                    v73 = v73 + 1;
                end;
                v70 = v70 + v81;
            end;
        end;
        if v73 == 0 then
            v65.NoneFound = v1.createElement("TextLabel", {
                Size = UDim2.fromScale(1, 1),
                Text = "No DebugVisualizations Found",
                TextColor3 = l_LineColor_0,
                BackgroundTransparency = 1,
                LayoutOrder = 1
            });
        else
            v65.WindowingPadding = v1.createElement("Frame", {
                Size = UDim2.new(1, 0, 0, v71),
                BackgroundTransparency = 1,
                LayoutOrder = 1
            });
        end;
    end;
    return v65, v70;
end;
v34.init = function(v82, v83)
    local v84 = v83.DebugVisualizationsData:getCurrentData();
    v82.getOnButtonPress = function(v85)
        return function(_, _)
            local l_v82_0 = v82;
            local v89 = {};
            local v90 = false;
            if v82.state.expandedEntry ~= v85 then
                v90 = v85;
            end;
            v89.expandedEntry = v90;
            l_v82_0:setState(v89);
        end;
    end;
    v82.getLearnMorePress = function(v91)
        return function(_, _)
            l_LinkingProtocol_0.default:openURL("https://create.roblox.com/docs/reference/engine/classes/PhysicsSettings#" .. v91);
        end;
    end;
    v82.onSortChanged = function(v94)
        if v94 == v83.DebugVisualizationsData:getSortType() then
            v82:setState(function(v95)
                return {
                    reverseSort = not v95.reverseSort
                };
            end);
            return ;
        else
            v83.DebugVisualizationsData:setSortType(v94);
            v82:setState({
                reverseSort = false
            });
            return ;
        end;
    end;
    v82.onCanvasPosChanged = function()
        v82:setState({
            canvasPos = v82.scrollingRef.current.CanvasPosition
        });
    end;
    v82.scrollingRef = v1.createRef();
    v82.state = {
        visualizationEntries = v84,
        reverseSort = false,
        expandedEntry = nil
    };
end;
v34.didUpdate = function(v96)
    if v96.scrollingRef.current then
        local l_AbsoluteSize_0 = v96.scrollingRef.current.AbsoluteSize;
        if l_AbsoluteSize_0 ~= v96.state.absScrollSize then
            v96:setState({
                absScrollSize = l_AbsoluteSize_0
            });
        end;
    end;
end;
v34.didMount = function(v98)
    v98.visualizationsUpdated = v98.props.DebugVisualizationsData:Signal():Connect(function(v99)
        v98:setState({
            visualizationEntries = v99
        });
    end);
    if v98.scrollingRef.current then
        v98.canvasPosConnector = v98.scrollingRef.current:GetPropertyChangedSignal("CanvasPosition"):Connect(v98.onCanvasPosChanged);
        v98:setState({
            absScrollSize = v98.scrollingRef.current.AbsoluteSize,
            canvasPos = v98.scrollingRef.current.CanvasPosition
        });
    end;
end;
v34.willUnmount = function(v100)
    v100.visualizationsUpdated:Disconnect();
    v100.visualizationsUpdated = nil;
    v100.canvasPosConnector:Disconnect();
    v100.canvasPosConnector = nil;
end;
v34.render = function(v101)
    local l_absScrollSize_0 = v101.state.absScrollSize;
    local v103 = not not l_absScrollSize_0 and math.max(l_absScrollSize_0.X, l_MinFrameWidth_0) or l_MinFrameWidth_0;
    local v104, v105 = populateEntries(v101.props.searchTerm, v101.props.typeFilters, v101.state.visualizationEntries, v101.state.reverseSort, v101.state.canvasPos, l_absScrollSize_0, v103, v101.state.expandedEntry, v101.getOnButtonPress, v101.getLearnMorePress);
    return v1.createElement("Frame", {
        Size = v101.props.size,
        BackgroundTransparency = 1,
        ClipsDescendants = true,
        LayoutOrder = v101.props.layoutOrder
    }, {
        Header = v41(v101.onSortChanged, v103),
        MainChart = v1.createElement("ScrollingFrame", {
            Position = UDim2.fromOffset(0, l_HeaderFrameHeight_0),
            Size = UDim2.new(1, 0, 1, -l_HeaderFrameHeight_0),
            CanvasSize = UDim2.fromOffset(v103, v105),
            ScrollBarThickness = 6,
            BackgroundColor3 = v10.Color.BaseGray,
            BackgroundTransparency = 1,
            [v1.Ref] = v101.scrollingRef
        }, v104)
    });
end;
return v8(v34, "DebugVisualizationsData");


local v0 = require(script.Parent.Parent.Parent.Signal);
local l_ChartHeaderNames_0 = require(script.Parent.Parent.Parent.Constants).DebugVisualizationsFormatting.ChartHeaderNames;
local v2 = require(script.Parent.DebugVisualizationsStaticContent);
local v11 = {
    [l_ChartHeaderNames_0[1]] = function(v3, v4)
        return v3.name < v4.name;
    end,
    [l_ChartHeaderNames_0[2]] = function(v5, v6)
        if v5.settingInfo.Value ~= v6.settingInfo.Value then
            return v5.settingInfo.Value;
        else
            return v5.name < v6.name;
        end;
    end,
    [l_ChartHeaderNames_0[3]] = function(v7, v8)
        if v7.settingInfo.Type ~= v8.settingInfo.Type then
            return v7.settingInfo.Type < v8.settingInfo.Type;
        else
            return v7.name < v8.name;
        end;
    end,
    [l_ChartHeaderNames_0[4]] = function(v9, v10)
        return v9.name < v10.name;
    end
};
local v12 = {};
v12.__index = v12;
v12.new = function()
    local v13 = {};
    setmetatable(v13, v12);
    v13._visualizationsUpdated = v0.new();
    v13._visualizationsData = {};
    v13._visualizationCounter = 0;
    v13._sortedVisualizationData = {};
    v13._sortType = l_ChartHeaderNames_0[3];
    v13._isRunning = false;
    return v13;
end;
v12.setSortType = function(v14, v15)
    if not v11[v15] then
        error(string.format("attempted to pass invalid sortType: %s", (tostring(v15))), 2);
        return ;
    else
        v14._sortType = v15;
        table.sort(v14._sortedVisualizationData, v11[v14._sortType]);
        v14._visualizationsUpdated:Fire(v14._sortedVisualizationData);
        return ;
    end;
end;
v12.getSortType = function(v16)
    return v16._sortType;
end;
v12.Signal = function(v17)
    return v17._visualizationsUpdated;
end;
v12.getCurrentData = function(v18)
    return v18._sortedVisualizationData;
end;
v12.updateDebugVisualizationDataEntry = function(v19, v20, v21)
    if v21 == nil then
        v19._visualizationsData[v20] = nil;
        for v22, v23 in pairs(v19._sortedVisualizationData) do
            if v23.name == v20 then
                table.remove(v19._sortedVisualizationData, v22);
                return ;
            end;
        end;
        return ;
    elseif v19._visualizationsData[v20] then
        v19._visualizationsData[v20] = v21;
        return ;
    else
        v19._visualizationCounter = v19._visualizationCounter + 1;
        v19._visualizationsData[v20] = v21;
        table.insert(v19._sortedVisualizationData, {
            name = v20,
            settingInfo = v19._visualizationsData[v20],
            valueChangeCallback = function(v24, v25)
                v19:_toggleValue(v24, v25);
            end,
            counter = v19._visualizationCounter
        });
        return ;
    end;
end;
v12.isRunning = function(v26)
    return v26._isRunning;
end;
v12._toggleValue = function(v27, v28, v29)
    local l_Physics_0 = settings().Physics;
    if l_Physics_0[v28] ~= nil then
        if v29 and v27._visualizationsData[v28].Type == "Box" then
            for _, v32 in pairs(v27._visualizationsData) do
                if v32.Type == "Box" and l_Physics_0[v32.Name] ~= nil then
                    l_Physics_0[v32.Name] = false;
                    v27._visualizationsData[v32.Name].Value = false;
                end;
            end;
        end;
        l_Physics_0[v28] = v29;
        v27._visualizationsData[v28].Value = v29;
        table.sort(v27._sortedVisualizationData, v11[v27._sortType]);
        v27._visualizationsUpdated:Fire(v27._sortedVisualizationData);
    end;
end;
_constructInfo = function(v33, v34)
    local l_Physics_1 = settings().Physics;
    local v36 = false;
    if l_Physics_1[v33] ~= nil then
        v36 = l_Physics_1[v33];
    end;
    local v37 = "";
    for v38, v39 in ipairs(v34.tags) do
        v37 = v37 .. v39 .. (v38 ~= #v34.tags and ", " or "");
    end;
    return {
        Name = v34.name,
        Value = v36,
        Type = v34.type,
        Tags = v34.tags,
        Tagstring = v37,
        Description = v34.description
    };
end;
v12.start = function(v40)
    for v41, v42 in pairs(v2) do
        v40:updateDebugVisualizationDataEntry(v41, _constructInfo(v41, v42));
    end;
    table.sort(v40._sortedVisualizationData, v11[v40._sortType]);
    v40._isRunning = true;
end;
v12.stop = function(v43)
    v43._isRunning = false;
end;
return v12;


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Roact);
local v2 = require(l_CorePackages_0.RoactRodux);
local l_Components_0 = script.Parent.Parent.Parent.Components;
local v4 = require(l_Components_0.DebugVisualizations.DebugVisualizationsChart);
local v5 = require(l_Components_0.UtilAndTab);
local v6 = require(script.Parent.Parent.Parent.Actions.DebugVisualizationsUpdateSearchFilter);
local v7 = require(script.Parent.Parent.Parent.Constants);
local l_MainRowPadding_0 = v7.GeneralFormatting.MainRowPadding;
local v9 = {
    "Performance",
    "Behavior",
    "Constraints",
    "Forces",
    "Networking",
    "Collision"
};
local v10 = v1.Component:extend("MainViewDebugVisualizations");
v10.init = function(v11)
    v11.onUtilTabHeightChanged = function(v12)
        v11:setState({
            utilTabHeight = v12
        });
    end;
    v11.onCheckBoxChanged = function(v13, v14)
        v11.props.dispatchDebugVisualizationsUpdateSearchFilter(nil, {
            [v13] = v14
        });
    end;
    v11.onSearchTermChanged = function(v15)
        v11.props.dispatchDebugVisualizationsUpdateSearchFilter(v15, {});
    end;
    v11.utilRef = v1.createRef();
    v11.state = {
        utilTabHeight = 0
    };
end;
v10.didMount = function(v16)
    v16:setState({
        utilTabHeight = v16.utilRef.current.Size.Y.Offset
    });
end;
v10.didUpdate = function(v17)
    local l_Size_0 = v17.utilRef.current.Size;
    if l_Size_0.Y.Offset ~= v17.state.utilTabHeight then
        v17:setState({
            utilTabHeight = l_Size_0.Y.Offset
        });
    end;
end;
v10.render = function(v19)
    local l_size_0 = v19.props.size;
    local l_formFactor_0 = v19.props.formFactor;
    local l_tabList_0 = v19.props.tabList;
    local l_debugVisualizationsSearchTerm_0 = v19.props.debugVisualizationsSearchTerm;
    local l_debugVisualizationsTypeFilters_0 = v19.props.debugVisualizationsTypeFilters;
    local l_utilTabHeight_0 = v19.state.utilTabHeight;
    local v26 = {};
    for v27, v28 in ipairs(v9) do
        local v29 = l_debugVisualizationsTypeFilters_0[v28];
        if v29 == nil then
            v29 = false;
        end;
        v26[v27] = {
            name = v28,
            state = v29
        };
    end;
    local l_createElement_0 = v1.createElement;
    local v31 = "Frame";
    local v32 = {
        Size = l_size_0,
        BackgroundColor3 = v7.Color.BaseGray,
        BackgroundTransparency = 1,
        LayoutOrder = 3
    };
    local v33 = {
        UIListLayout = v1.createElement("UIListLayout", {
            Padding = UDim.new(0, l_MainRowPadding_0),
            SortOrder = Enum.SortOrder.LayoutOrder
        }),
        UtilAndTab = v1.createElement(v5, {
            windowWidth = l_size_0.X.Offset,
            formFactor = l_formFactor_0,
            tabList = l_tabList_0,
            orderedCheckBoxState = v26,
            searchTerm = l_debugVisualizationsSearchTerm_0,
            layoutOrder = 1,
            refForParent = v19.utilRef,
            onHeightChanged = v19.onUtilTabHeightChanged,
            onCheckBoxChanged = v19.onCheckBoxChanged,
            onSearchTermChanged = v19.onSearchTermChanged
        })
    };
    local v34 = false;
    if l_utilTabHeight_0 > 0 then
        v34 = v1.createElement(v4, {
            size = UDim2.new(1, 0, 1, -l_utilTabHeight_0),
            searchTerm = l_debugVisualizationsSearchTerm_0,
            typeFilters = l_debugVisualizationsTypeFilters_0,
            layoutOrder = 2
        });
    end;
    v33.DebugVisualizations = v34;
    return l_createElement_0(v31, v32, v33);
end;
return v2.UNSTABLE_connect2(function(v35, _)
    return {
        debugVisualizationsSearchTerm = v35.DebugVisualizationsData.debugVisualizationsSearchTerm,
        debugVisualizationsTypeFilters = v35.DebugVisualizationsData.debugVisualizationsTypeFilters
    };
end, function(v37)
    return {
        dispatchDebugVisualizationsUpdateSearchFilter = function(v38, v39)
            v37(v6(v38, v39));
        end
    };
end)(v10);


local l_CorePackages_0 = game:GetService("CorePackages");
local l_RobloxGui_0 = game:GetService("CoreGui").RobloxGui;
local l_TextService_0 = game:GetService("TextService");
local v3 = require(l_CorePackages_0.Roact);
local v4 = require(l_CorePackages_0.RoactRodux);
local v5 = require(script.Parent.Parent.Constants);
local l_FrameHeight_0 = v5.TopBarFormatting.FrameHeight;
local v7 = 0.5 * l_FrameHeight_0;
local v8 = (l_FrameHeight_0 - v7) / 2;
local l_UserInputService_0 = game:GetService("UserInputService");
local l_l_TextService_0_TextSize_0 = l_TextService_0:GetTextSize("Developer Console", v5.DefaultFontSize.TopBar, v5.Font.TopBar, Vector2.new(0, 0));
local v11 = require(script.Parent.Parent.Components.LiveUpdateElement);
local v12 = require(script.Parent.Parent.Actions.SetDevConsolePosition);
local v13 = require(l_RobloxGui_0.Modules.Common.Flags.GetFFlagDevConsoleCloseButtonOverlapFix);
local v14 = v3.Component:extend("DevConsoleTopBar");
v14.init = function(v15)
    v15.inputChangedConnection = nil;
    v15.inputBegan = function(_, v17)
        if not v15.props.isMinimized then
            if v17.UserInputType == Enum.UserInputType.MouseButton1 then
                local l_AbsolutePosition_0 = v15.ref.current.AbsolutePosition;
                local v19 = Vector3.new(l_AbsolutePosition_0.X, l_AbsolutePosition_0.Y, 0);
                if v15.inputChangedConnection then
                    v15.inputChangedConnection:Disconnect();
                    v15.inputChangedConnection = nil;
                end;
                v15.inputChangedConnection = l_UserInputService_0.InputChanged:Connect(function(v20)
                    v15.inputChanged(nil, v20);
                end);
                v15:setState({
                    startPos = v19,
                    startOffset = v17.Position,
                    moving = true
                });
            end;
            return ;
        else
            return ;
        end;
    end;
    v15.inputChanged = function(_, v22)
        if not v15.state.moving then
            if v15.inputChangedConnection then
                v15.inputChangedConnection:Disconnect();
                v15.inputChangedConnection = nil;
            end;
        elseif v22.UserInputType == Enum.UserInputType.MouseMovement then
            local v23 = (v15.state.startPos - v15.state.startOffset) + v22.Position;
            v15.props.dispatchSetDevConsolePosition((UDim2.new(0, v23.X, 0, v23.Y)));
            return ;
        end;
    end;
    v15.inputEnded = function(_, v25)
        if v25.UserInputType == Enum.UserInputType.MouseButton1 and v25.UserInputState == Enum.UserInputState.End then
            if v15.inputChangedConnection then
                v15.inputChangedConnection:Disconnect();
                v15.inputChangedConnection = nil;
            end;
            v15:setState({
                moving = false
            });
        end;
    end;
    v15.ref = v3.createRef();
end;
v14.render = function(v26)
    local l_isMinimized_0 = v26.props.isMinimized;
    local l_formFactor_0 = v26.props.formFactor;
    local l_onMinimizeClicked_0 = v26.props.onMinimizeClicked;
    local l_onMaximizeClicked_0 = v26.props.onMaximizeClicked;
    local l_onCloseClicked_0 = v26.props.onCloseClicked;
    local _ = v26.state.moving;
    local v33 = {
        WindowTitle = v3.createElement("TextLabel", {
            Text = "Developer Console",
            TextSize = v5.DefaultFontSize.TopBar,
            TextColor3 = Color3.new(1, 1, 1),
            Font = v5.Font.TopBar,
            Size = UDim2.new(0, l_l_TextService_0_TextSize_0.X, 0, l_FrameHeight_0),
            Position = UDim2.new(0, 4, 0, 0),
            BackgroundColor3 = v5.Color.BaseGray,
            BackgroundTransparency = 1,
            TextXAlignment = Enum.TextXAlignment.Left
        })
    };
    local v34 = l_l_TextService_0_TextSize_0.X + 8;
    local v35 = UDim2.new(0, v34, 0, 0);
    local v36 = UDim2.new(1, -2 * v34, 0, l_FrameHeight_0);
    if not l_isMinimized_0 then
        if v26.ref.current then
            v36 = UDim2.new(0, v26.ref.current.AbsoluteSize.X - 2 * l_l_TextService_0_TextSize_0.X, 0, l_FrameHeight_0);
        end;
    else
        v35 = UDim2.new(0, 0, 1, 0);
        v36 = UDim2.new(1, 0, 1, 0);
    end;
    v33.LiveStatsModule = v3.createElement(v11, {
        topBarLiveUpdate = v26.props.topBarLiveUpdate,
        size = v36,
        position = v35
    });
    if l_formFactor_0 == v5.FormFactor.Large then
        if l_isMinimized_0 then
            v33.MaxButton = v3.createElement("ImageButton", {
                Size = UDim2.new(0, v7, 0, v7),
                Position = UDim2.new(1, -2 * l_FrameHeight_0 + v8, 0, v8),
                BorderColor3 = Color3.new(0, 0, 1),
                BackgroundColor3 = v5.Color.BaseGray,
                BackgroundTransparency = 1,
                Image = v5.Image.Maximize,
                [v3.Event.Activated] = l_onMaximizeClicked_0
            });
        else
            v33.MinButton = v3.createElement("ImageButton", {
                Size = UDim2.new(0, v7, 0, v7),
                Position = UDim2.new(1, -2 * l_FrameHeight_0 + v8, 0, v8),
                BorderColor3 = Color3.new(1, 0, 0),
                BackgroundColor3 = v5.Color.BaseGray,
                BackgroundTransparency = 1,
                Image = v5.Image.Minimize,
                [v3.Event.Activated] = l_onMinimizeClicked_0
            });
        end;
    end;
    if not v13() then
        v33.CloseButton = v3.createElement("ImageButton", {
            Size = UDim2.new(0, v7, 0, v7),
            Position = UDim2.new(1, -l_FrameHeight_0 + v8, 0, v8),
            BorderColor3 = Color3.new(0, 1, 0),
            BackgroundColor3 = v5.Color.BaseGray,
            BackgroundTransparency = 1,
            Image = v5.Image.Close,
            [v3.Event.Activated] = l_onCloseClicked_0
        });
    else
        v33.CloseButton = v3.createElement("ImageButton", {
            Size = UDim2.new(0, v7, 0, v7),
            Position = UDim2.new(1, -l_FrameHeight_0 + v8, 0, v8),
            BorderColor3 = Color3.new(0, 1, 0),
            BackgroundColor3 = v5.Color.BaseGray,
            BackgroundTransparency = 1,
            ZIndex = 2,
            Image = v5.Image.Close,
            [v3.Event.Activated] = l_onCloseClicked_0
        });
    end;
    return v3.createElement("ImageButton", {
        Size = UDim2.new(1, 0, 0, l_FrameHeight_0),
        BackgroundColor3 = v5.Color.Black,
        BackgroundTransparency = 0.5,
        AutoButtonColor = false,
        LayoutOrder = 1,
        [v3.Ref] = v26.ref,
        [v3.Event.InputBegan] = v26.inputBegan,
        [v3.Event.InputEnded] = v26.inputEnded
    }, v33);
end;
return v4.UNSTABLE_connect2(nil, function(v37)
    return {
        dispatchSetDevConsolePosition = function(v38)
            v37(v12(v38));
        end
    };
end)(v14);


local l_CorePackages_0 = game:GetService("CorePackages");
local l_RobloxGui_0 = game:GetService("CoreGui").RobloxGui;
local l_GuiService_0 = game:GetService("GuiService");
local l_UserInputService_0 = game:GetService("UserInputService");
local v4 = require(script.Parent.Parent.Util.setMouseVisibility);
local v5 = require(l_CorePackages_0.Roact);
local v6 = require(l_CorePackages_0.RoactRodux);
local l_Parent_0 = script.Parent.Parent;
local v8 = require(l_Parent_0.Constants);
local l_FrameHeight_0 = v8.TopBarFormatting.FrameHeight;
local l_WindowPadding_0 = v8.Padding.WindowPadding;
local l_MinSize_0 = v8.MainWindowInit.MinSize;
local v12 = require(l_Parent_0.Components.DevConsoleTopBar);
local l_Actions_0 = script.Parent.Parent.Actions;
local v14 = require(l_Actions_0.ChangeDevConsoleSize);
local v15 = require(l_Actions_0.SetDevConsoleVisibility);
local v16 = require(l_Actions_0.SetDevConsoleMinimized);
local v17 = require(l_RobloxGui_0.Modules.Flags.GetFFlagRequestServerStatsFix);
local v18 = v5.PureComponent:extend("DevConsoleWindow");
v18.onMinimizeClicked = function(v19)
    v19.props.dispatchSetDevConsoleMinimized(true);
end;
v18.onMaximizeClicked = function(v20)
    v20.props.dispatchSetDevConsoleMinimized(false);
end;
v18.onCloseClicked = function(v21)
    if v17() then
        v21.props.onCloseCallback(false);
    end;
    v21.props.dispatchSetDevConsolVisibility(false);
end;
v18.init = function(v22)
    v22.setDevConsoleSize = function(v23, v24, v25)
        local v26 = v25.X - v24.X;
        local v27 = v25.Y - v24.Y;
        v23.props.dispatchChangeDevConsoleSize(UDim2.new(0, v26 < l_MinSize_0.X and l_MinSize_0.X or v26, 0, v27 < l_MinSize_0.Y and l_MinSize_0.Y or v27));
    end;
    v22.resizeInputBegan = function(_, v29)
        if v29.UserInputType == Enum.UserInputType.MouseButton1 then
            local v30 = nil;
            local v31 = nil;
            local function v33(v32)
                v22:setDevConsoleSize(v22.ref.current.AbsolutePosition, v32.Position);
            end;
            do
                local l_v30_0, l_v31_0 = v30, v31;
                local function v37(v36)
                    if v36.UserInputType == Enum.UserInputType.MouseButton1 then
                        l_v30_0:Disconnect();
                        l_v31_0:Disconnect();
                    end;
                end;
                l_v30_0 = l_UserInputService_0.InputChanged:Connect(v33);
                l_v31_0 = l_UserInputService_0.InputEnded:Connect(v37);
            end;
        end;
    end;
    v22.doGamepadMenuButton = function(v38)
        if v22.props.isVisible then
            local v39 = true;
            if v38.KeyCode ~= Enum.KeyCode.ButtonStart then
                v39 = v38.KeyCode == Enum.KeyCode.Escape;
            end;
            if v39 then
                v22.props.dispatchSetDevConsolVisibility(false);
            end;
        end;
    end;
    v22.ref = v5.createRef();
    v22.state = {
        resizing = false
    };
end;
v18.didMount = function(v40)
    delay(0, function()
        if v40.ref.current then
            v40:setDevConsoleSize(v40.ref.current.AbsolutePosition, v40.ref.current.ResizeButton.AbsolutePosition);
        end;
    end);
    v4(v40.props.isVisible);
    v40.gamepadMenuListener = l_UserInputService_0.InputBegan:Connect(v40.doGamepadMenuButton);
end;
v18.willUnmount = function(v41)
    if l_GuiService_0.SelectedCoreObject == v41.ref.current then
        l_GuiService_0.SelectedCoreObject = nil;
    end;
    v41.gamepadMenuListener:Disconnect();
end;
v18.didUpdate = function(v42, v43, _)
    v4(v42.props.isVisible);
    if v42.props.isMinimized and l_GuiService_0.SelectedCoreObject == v42.ref.current then
        l_GuiService_0.SelectedCoreObject = nil;
        return ;
    else
        if not (v42.props.isVisible == v43.isVisible) or v42.props.currTabIndex ~= v43.currTabIndex then
            if not (Enum.UserInputType.Gamepad1 == l_UserInputService_0:GetLastInputType()) or not v42.props.isVisible then
                l_GuiService_0.SelectedCoreObject = nil;
            else
                l_GuiService_0.SelectedCoreObject = v42.ref.current;
                return ;
            end;
        end;
        return ;
    end;
end;
v18.render = function(v45)
    local l_isVisible_0 = v45.props.isVisible;
    local l_formFactor_0 = v45.props.formFactor;
    local l_isDeveloperView_0 = v45.props.isDeveloperView;
    local l_currTabIndex_0 = v45.props.currTabIndex;
    local l_tabList_0 = v45.props.tabList;
    local l_isMinimized_0 = v45.props.isMinimized;
    local l_position_0 = v45.props.position;
    local l_size_0 = v45.props.size;
    local _ = v45.state.resizing;
    local l_l_size_0_0 = l_size_0;
    local v56 = UDim2.new();
    local v57 = {};
    local v58 = 16;
    if l_formFactor_0 ~= v8.FormFactor.Large then
        local l_AbsoluteSize_0 = l_RobloxGui_0.AbsoluteSize;
        l_size_0 = UDim2.new(0, l_AbsoluteSize_0.X, 0, l_AbsoluteSize_0.Y);
        l_position_0 = UDim2.new(0, 0, 0, 0);
        v56 = UDim2.new(0, 16, 0, 0);
        l_l_size_0_0 = l_size_0 + UDim2.new(0, -32, 0, 0);
        v58 = 0;
    end;
    v57.UIListLayout = v5.createElement("UIListLayout", {
        SortOrder = Enum.SortOrder.LayoutOrder,
        HorizontalAlignment = Enum.HorizontalAlignment.Left,
        VerticalAlignment = Enum.VerticalAlignment.Top,
        Padding = UDim.new(0, l_WindowPadding_0)
    });
    if not l_isMinimized_0 then
        v57.TopBar = v5.createElement(v12, {
            LayoutOrder = 1,
            formFactor = l_formFactor_0,
            isMinimized = false,
            onMinimizeClicked = function()
                v45:onMinimizeClicked();
            end,
            onMaximizeClicked = function()
                v45:onMaximizeClicked();
            end,
            onCloseClicked = function()
                v45:onCloseClicked();
            end
        });
        local v60 = l_l_size_0_0 - UDim2.new(0, 0, 0, l_FrameHeight_0 + 2 * l_WindowPadding_0);
        if not ((not v45.ref.current or not l_isVisible_0) or not l_tabList_0) then
            local v61 = l_tabList_0[l_currTabIndex_0];
            if v61 then
                v57.MainView = v5.createElement(v61.tab, {
                    size = v60,
                    formFactor = l_formFactor_0,
                    isDeveloperView = l_isDeveloperView_0,
                    tabList = l_tabList_0
                });
            end;
        end;
        return v5.createElement("Frame", {
            Position = l_position_0,
            Size = l_size_0,
            Visible = l_isVisible_0,
            BackgroundColor3 = Color3.new(0, 0, 0),
            Transparency = v8.MainWindowInit.Transparency,
            BorderColor3 = v8.Color.BaseGray,
            BorderSizePixel = v58,
            Active = true,
            AutoLocalize = false,
            Selectable = false,
            [v5.Ref] = v45.ref
        }, {
            DevConsoleUI = v5.createElement("Frame", {
                Size = l_l_size_0_0,
                Position = v56,
                BackgroundTransparency = 1
            }, v57),
            ResizeButton = v5.createElement("ImageButton", {
                Position = UDim2.new(1, 0, 1, 0),
                Size = UDim2.new(0, v58, 0, v58),
                BackgroundColor3 = Color3.new(0, 0, 0),
                Modal = true,
                [v5.Event.InputBegan] = v45.resizeInputBegan
            })
        });
    else
        v57.TopBar = v5.createElement(v12, {
            LayoutOrder = 1,
            formFactor = l_formFactor_0,
            isMinimized = true,
            onMinimizeClicked = function()
                v45:onMinimizeClicked();
            end,
            onMaximizeClicked = function()
                v45:onMaximizeClicked();
            end,
            onCloseClicked = function()
                v45:onCloseClicked();
            end
        });
        return v5.createElement("Frame", {
            Position = UDim2.new(1, -500, 1, -2 * l_FrameHeight_0),
            Size = UDim2.new(0, 500, 0, 2 * l_FrameHeight_0),
            BackgroundColor3 = Color3.new(0, 0, 0),
            Transparency = v8.MainWindowInit.Transparency,
            Active = true,
            AutoLocalize = false,
            Visible = l_isVisible_0,
            Selectable = true,
            BorderColor3 = v8.Color.BaseGray,
            [v5.Ref] = v45.ref
        }, v57);
    end;
end;
return v6.UNSTABLE_connect2(function(v62, _)
    return {
        isVisible = v62.DisplayOptions.isVisible,
        isMinimized = v62.DisplayOptions.isMinimized,
        position = v62.DisplayOptions.position,
        size = v62.DisplayOptions.size,
        isDeveloperView = v62.MainView.isDeveloperView,
        currTabIndex = v62.MainView.currTabIndex,
        tabList = v62.MainView.tabList
    };
end, function(v64)
    return {
        dispatchChangeDevConsoleSize = function(v65)
            v64(v14(v65));
        end,
        dispatchSetDevConsolVisibility = function(v66)
            v64(v15(v66));
        end,
        dispatchSetDevConsoleMinimized = function(v67)
            v64(v16(v67));
        end
    };
end)(v18);