local l_createStyleRule_0 = require(script.Parent.Parent.Parent.Parent.Packages.Framework).Styling.createStyleRule;
return l_createStyleRule_0(".Component-MappingsList", {
    Size = UDim2.new(0.5, 0, 1, 0),
    Position = UDim2.new(0.5, 0, 0, 0)
}, {
    l_createStyleRule_0("::UIListLayout", {
        FillDirection = Enum.FillDirection.Vertical,
        SortOrder = Enum.SortOrder.LayoutOrder,
        Padding = UDim.new(0, 5)
    }),
    l_createStyleRule_0("> TextButton", {
        Position = UDim2.new(0, 0, 0, 0),
        Size = UDim2.new(1, 0, 0, 50),
        TextColor3 = Color3.fromRGB(0, 0, 0),
        BorderSizePixel = 1,
        TextXAlignment = Enum.TextXAlignment.Left
    })
});


local l_script_FirstAncestor_0 = script:FindFirstAncestor("ControlsEmulator");
local v1 = require(l_script_FirstAncestor_0.Packages.React);
local v2 = require(l_script_FirstAncestor_0.Packages.Framework);
local l_DockWidget_0 = v2.UI.DockWidget;
local l_IconButton_0 = v2.UI.IconButton;
local l_ContextServices_0 = v2.ContextServices;
local l_Plugin_0 = l_ContextServices_0.Plugin;
local l_Mouse_0 = l_ContextServices_0.Mouse;
local l_StudioTheme_0 = v2.Style.Themes.StudioTheme;
local l_registerPluginStyles_0 = v2.Styling.registerPluginStyles;
local v10 = v2.Util.LayoutOrderIterator.new();
local l_SourceStrings_0 = l_script_FirstAncestor_0.Src.Resources.Localization.SourceStrings;
local l_LocalizedStrings_0 = l_script_FirstAncestor_0.Src.Resources.Localization.LocalizedStrings;
local v13 = require(l_script_FirstAncestor_0.Src.Components.DeviceBlueprint);
local v14 = require(l_script_FirstAncestor_0.Src.Util.MousePositionContext);
local v15 = require(l_script_FirstAncestor_0.Src.Components.MappingsContextProvider);
local _ = require(l_script_FirstAncestor_0.Src.Components.MappingsList);
local l_StudioDeviceEmulator_0 = require(l_script_FirstAncestor_0.Src.Util.MockableProxyPluginComponents).StudioDeviceEmulator;
local v18 = require(l_script_FirstAncestor_0.Src.Components.MappingsDialog);
local v19 = require(l_script_FirstAncestor_0.Src.Util.Constants);
local v20 = v1.PureComponent:extend("MainPlugin");
v20.init = function(v21, v22)
    v21.state = {
        enabled = false,
        wrapperRef = nil,
        editMappingsVisible = false
    };
    v21.toggleEnabled = function()
        v21:setState(function(v23)
            return {
                enabled = not v23.enabled
            };
        end);
    end;
    v21.onClose = function()
        v21:setState({
            enabled = false
        });
    end;
    v21.onRestore = function(v24)
        v21:setState({
            enabled = v24
        });
    end;
    v21.onWidgetEnabledChanged = function(v25)
        v21:setState({
            enabled = v25.Enabled
        });
    end;
    v21.onDockWidgetCreated = function()
        v21.props.PluginLoaderContext.mainButtonClickedSignal:Connect(v21.toggleEnabled);
    end;
    v21.localization = l_ContextServices_0.Localization.new({
        stringResourceTable = l_SourceStrings_0,
        translationResourceTable = l_LocalizedStrings_0,
        pluginName = "ControlsEmulator"
    });
    v21.analytics = l_ContextServices_0.Analytics.new(function()
        return {};
    end, {});
    v21.DEPRECATED_stylizer = l_StudioTheme_0.new();
    v21.design = l_registerPluginStyles_0(v22.Plugin);
end;
v20.didUpdate = function(v26)
    v26.props.PluginLoaderContext.mainButton:SetActive(v26.state.enabled);
    pcall(function()
        l_StudioDeviceEmulator_0:SetGamepadEmulationEnabled(v26.state.enabled);
    end);
end;
v20.render = function(v27)
    local l_props_0 = v27.props;
    local l_state_0 = v27.state;
    local l_Plugin_1 = l_props_0.Plugin;
    return l_ContextServices_0.provide({
        l_Plugin_0.new(l_Plugin_1),
        l_Mouse_0.new(l_Plugin_1:getMouse()),
        v27.localization,
        v27.analytics
    }, v1.createElement(v15, {}, {
        v1.createElement(v14.Provider, {
            value = if not v27.state.wrapperRef then v19.DEFAULT_MOUSE_POSITION_CONTEXT_STATE else {
                InputChanged = v27.state.wrapperRef.InputChanged,
                InputEnded = v27.state.wrapperRef.InputEnded
            }
        }, {
            MainWidget = v1.createElement(l_DockWidget_0, {
                Id = "ControlsEmulator",
                Enabled = l_state_0.enabled,
                Title = v27.localization:getText("Plugin", "Name"),
                ZIndexBehavior = Enum.ZIndexBehavior.Sibling,
                InitialDockState = Enum.InitialDockState.Bottom,
                Size = Vector2.new(640, 480),
                MinSize = Vector2.new(250, 200),
                OnClose = v27.onClose,
                Widget = l_props_0.PluginLoaderContext.mainDockWidget,
                OnWidgetCreated = v27.onDockWidgetCreated,
                [v1.Change.Enabled] = v27.onWidgetEnabledChanged
            }, {
                Wrapper = v1.createElement("Frame", {
                    [v1.Tag] = "X-Fill X-Column",
                    ref = function(v31)
                        v27:setState({
                            wrapperRef = v31
                        });
                    end
                }, {
                    EditMappingsButton = v1.createElement(l_IconButton_0, {
                        LayoutOrder = v10:getNextOrder(),
                        Text = "Edit Mappings",
                        OnClick = function()
                            v27:setState({
                                editMappingsVisible = not v27.state.editMappingsVisible
                            });
                        end
                    }),
                    DeviceBlueprint = v1.createElement(v13, {
                        LayoutOrder = v10:getNextOrder()
                    })
                }),
                StyleLink = v1.createElement("StyleLink", {
                    StyleSheet = v27.design
                })
            }),
            MappingsDialog = v1.createElement(l_DockWidget_0, {
                Id = "ControlsEmulatorMappings",
                Enabled = v27.state.editMappingsVisible,
                Title = "Edit Mappings",
                ZIndexBehavior = Enum.ZIndexBehavior.Sibling,
                InitialDockState = Enum.InitialDockState.Float,
                Size = Vector2.new(640, 480),
                MinSize = Vector2.new(250, 200),
                OnClose = function()
                    v27:setState({
                        editMappingsVisible = false
                    });
                end
            }, {
                v1.createElement(v18, {});
                StyleLink = v1.createElement("StyleLink", {
                    StyleSheet = v27.design
                })
            })
        })
    }));
end;
return v20;


return {
    FAKE_CONNECTED_GAMEPAD_ID = 101,
    NO_CONNECTED_GAMEPAD_ID = 0,
    THUMBSTICK_SIZE = 36,
    THUMBSTICK_SOCKET_SIZE = 72,
    AVAILABLE_MAPPINGS = {
        Enum.KeyCode.Thumbstick1,
        Enum.KeyCode.Thumbstick2,
        Enum.KeyCode.DPadUp,
        Enum.KeyCode.DPadLeft,
        Enum.KeyCode.DPadRight,
        Enum.KeyCode.DPadDown,
        Enum.KeyCode.ButtonX,
        Enum.KeyCode.ButtonY,
        Enum.KeyCode.ButtonB,
        Enum.KeyCode.ButtonA,
        Enum.KeyCode.ButtonL1,
        Enum.KeyCode.ButtonR1,
        Enum.KeyCode.ButtonL2,
        Enum.KeyCode.ButtonR2,
        Enum.KeyCode.ButtonL3,
        Enum.KeyCode.ButtonR3,
        Enum.KeyCode.ButtonStart,
        Enum.KeyCode.ButtonSelect
    },
    VECTOR_PRESSED = Vector3.new(0, 0, 1),
    VECTOR_RELEASED = Vector3.zero,
    DEFAULT_MOUSE_POSITION_CONTEXT_STATE = {
        InputChanged = nil,
        InputEnded = nil
    }
};


return (require(script:FindFirstAncestor("ControlsEmulator").Packages.React).createContext({
    CurrentSelection = nil,
    Mappings = {},
    gamepadId = 0
}));


local v0 = {};
v0.__index = v0;
v0.new = function(_)
    local v11 = {
        callCallbacksWith = function(v2, v3)
            for _, v5 in v2.callbacks, nil, nil do
                v5(v3);
            end;
        end,
        callbacks = {},
        Connect = function(v6, v7)
            local l_callbacks_0 = v6.callbacks;
            table.insert(l_callbacks_0, v7);
            return {
                Disconnect = function()
                    for v9, v10 in l_callbacks_0, nil, nil do
                        if v10 == v7 then
                            table.remove(l_callbacks_0, v9);
                        end;
                    end;
                end
            };
        end
    };
    setmetatable(v11, {
        __index = v0
    });
    return v11;
end;
return v0;


local v0 = {};
v0.__index = v0;
v0.new = function(_)
    local v14 = {
        SendGamepadEvent = function(_, _, _, _, _)
        end,
        GetKeyboardShortcut = function(_, _, _, _)
        end,
        ConnectGamepad = function(_, _, _)
        end
    };
    setmetatable(v14, {
        __index = v0
    });
    return v14;
end;
return v0;


local v0 = {};
setmetatable(v0, {
    __index = function(_, v2)
        return script:FindFirstAncestorWhichIsA("Plugin"):GetPluginComponent(v2);
    end
});
return v0;


local v1 = {
    game = game,
    waitProxy = function(v0)
        wait(v0);
    end,
    settingsProxy = function()
        return settings();
    end
};
setmetatable(v1, {
    __index = function(_, v3)
        return game:GetService(v3);
    end
});
return v1;


local l_splitOn_0 = require(script:FindFirstAncestor("ControlsEmulator").Packages.Dash).splitOn;
return function(v1)
    if v1 then
        local v2 = "";
        for _, v4 in v1, nil, nil do
            local v5, _ = l_splitOn_0(tostring(v4), "%.");
            v2 = v2 .. "+" .. v5[#v5];
        end;
        return v2;
    else
        return "N/A";
    end;
end;


local v0 = require(script:FindFirstAncestor("ControlsEmulator").Packages.Framework);
local l_TestHelpers_0 = v0.TestHelpers;
local l_ContextServices_0 = v0.ContextServices;
local v3 = {
    l_ContextServices_0.Analytics.mock(),
    l_ContextServices_0.Localization.mock()
};
return function(v4)
    assert(type(v4) == "table", "Expected children to be a table");
    return l_TestHelpers_0.provideMockContext(v3, v4);
end;


local l_Parent_0 = script.Parent.Parent;
if not require(l_Parent_0.Src.Util.DebugFlags).RunningUnderCLI() then
    local l_MultipleDocumentInterfaceInstance_0 = plugin.MultipleDocumentInterfaceInstance;
    local v2 = require(script.Parent.Parent.Common.commonInit);
    local l_status_0, l_result_0 = pcall(function()
        return game:GetService("StudioService"):HasInternalPermission();
    end);
    if not l_status_0 then
        l_result_0 = false;
    end;
    local v5 = nil;
    local function _()
        if plugin.HostDataModelTypeIsCurrent then
            if l_result_0 then
                v5 = require(l_Parent_0.Packages.Framework).DeveloperTools.forPlugin(l_Parent_0.Name, plugin);
                v5:addPluginRouter(plugin);
            end;
            return ;
        else
            return ;
        end;
    end;
    (function()
        v2();
        local l_FocusedDataModelSession_0 = l_MultipleDocumentInterfaceInstance_0.FocusedDataModelSession;
        l_FocusedDataModelSession_0.CurrentDataModelTypeAboutToChange:Connect(function()
            if v5 then
                v5:destroy();
                v5 = nil;
            end;
        end);
        l_FocusedDataModelSession_0.CurrentDataModelTypeChanged:Connect(function()
            if plugin.HostDataModelTypeIsCurrent then
                if l_result_0 then
                    v5 = require(l_Parent_0.Packages.Framework).DeveloperTools.forPlugin(l_Parent_0.Name, plugin);
                    v5:addPluginRouter(plugin);
                end;
                return ;
            else
                return ;
            end;
        end);
        if plugin.HostDataModelTypeIsCurrent then
            if l_result_0 then
                v5 = require(l_Parent_0.Packages.Framework).DeveloperTools.forPlugin(l_Parent_0.Name, plugin);
                v5:addPluginRouter(plugin);
            end;
            return ;
        else
            return ;
        end;
    end)();
    return ;
else
    return ;
end;


local l_Parent_0 = script.Parent.Parent;
local v1 = require(l_Parent_0.Src.Util.DebugFlags);
local v2 = nil;
require(script.Parent.defineLuaFlags);
if not (not v1.RunningUnderCLI() and not v1.RunTests()) then
    require(script.Parent.commonInit)();
    v2 = require(l_Parent_0.Packages.Framework);
    local v3 = require(l_Parent_0.Packages.Dev.TestEZ);
    local l_TestBootstrap_0 = v3.TestBootstrap;
    local v5 = not not _G.TEAMCITY and v3.Reporters.TeamCityReporter or v3.Reporters.TextReporter;
    local l_Src_0 = l_Parent_0.Src;
    print("----- All " .. l_Parent_0.Name .. " Tests ------");
    require(script.Parent.defineLuaFlags);
    l_TestBootstrap_0:run({
        l_Src_0
    }, v5);
    print("----------------------------------");
    if v1.RunDeveloperFrameworkTests() then
        print("");
        print("----- All DeveloperFramework Tests ------");
        v2.TestHelpers.runFrameworkTests(v3, v5);
        print("----------------------------------");
    end;
end;
if v1.RunningUnderCLI() then
    pcall(function()
        game:GetService("ProcessService"):ExitAsync(0);
    end);
end;


local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local l_Action_0 = require(l_Parent_0.Packages.Framework).Util.Action;
local _ = require(l_Parent_0.Src.Models.MetaBreakpoint);
return l_Action_0(script.Name, function(v3, v4)
    return {
        debuggerConnectionId = v3,
        metaBreakpoint = v4
    };
end);


return require(script.Parent.Parent.Parent.Parent.Packages.Framework).Util.Action(script.Name, function(v0)
    return {
        listOfEnabledColumns = v0
    };
end);


return require(script.Parent.Parent.Parent.Parent.Packages.Framework).Util.Action(script.Name, function(v0)
    return {
        metaBreakpointId = v0
    };
end);


local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local l_Action_0 = require(l_Parent_0.Packages.Framework).Util.Action;
local _ = require(l_Parent_0.Src.Models.MetaBreakpoint);
return l_Action_0(script.Name, function(v3)
    return {
        metaBreakpoint = v3
    };
end);


return require(script.Parent.Parent.Parent.Parent.Packages.Framework).Util.Action(script.Name, function(v0, v1)
    return {
        sortDirection = v0,
        columnIndex = v1
    };
end);


local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local l_Action_0 = require(l_Parent_0.Packages.Framework).Util.Action;
local _ = require(l_Parent_0.Src.Models.Callstack.CallstackRow);
local _ = require(l_Parent_0.Src.Models.DebuggerStateToken);
local _ = require(l_Parent_0.Src.Types);
return l_Action_0(script.Name, function(v5, v6, v7)
    return {
        threadId = v5,
        frameList = v6,
        debuggerStateToken = v7
    };
end);


local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local l_Action_0 = require(l_Parent_0.Packages.Framework).Util.Action;
local _ = require(l_Parent_0.Src.Models.DebuggerStateToken);
return l_Action_0(script.Name, function(v3, v4, v5)
    return {
        threadId = v3,
        displayString = v4,
        debuggerStateToken = v5
    };
end);


return require(script.Parent.Parent.Parent.Parent.Packages.Framework).Util.Action(script.Name, function(v0, v1)
    return {
        currentFrame = v1,
        threadId = v0
    };
end);


return require(script.Parent.Parent.Parent.Parent.Packages.Framework).Util.Action(script.Name, function(v0)
    return {
        currentThreadId = v0
    };
end);


local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local l_Action_0 = require(l_Parent_0.Packages.Framework).Util.Action;
local _ = require(l_Parent_0.Src.Models.DebuggerStateToken);
return l_Action_0(script.Name, function(v3)
    return {
        debuggerStateToken = v3
    };
end);


local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local l_Action_0 = require(l_Parent_0.Packages.Framework).Util.Action;
local _ = require(l_Parent_0.Src.Models.DebuggerStateToken);
return l_Action_0(script.Name, function(v3, v4)
    return {
        debuggerStateToken = v3,
        threadId = v4
    };
end);


return require(script.Parent.Parent.Parent.Parent.Packages.Framework).Util.Action(script.Name, function(v0)
    return {
        breakpointId = v0
    };
end);


return require(script.Parent.Parent.Parent.Parent.Packages.Framework).Util.Action(script.Name, function(v0, v1)
    return {
        scriptRefGuid = v0,
        fileName = v1
    };
end);


return require(script.Parent.Parent.Parent.Parent.Packages.Framework).Util.Action(script.Name, function(v0)
    return {
        debuggerConnectionId = v0
    };
end);


return require(script.Parent.Parent.Parent.Parent.Packages.Framework).Util.Action(script.Name, function(v0)
    return {
        pause = v0
    };
end);


return require(script.Parent.Parent.Parent.Parent.Packages.Framework).Util.Action(script.Name, function(v0, v1, v2)
    return {
        scriptRefGuid = v0,
        lineNumber = v1,
        source = v2
    };
end);


local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local l_Action_0 = require(l_Parent_0.Packages.Framework).Util.Action;
local _ = require(l_Parent_0.Src.Models.DebuggerStateToken);
return l_Action_0(script.Name, function(v3, v4, v5)
    return {
        debuggerStateToken = v3,
        threadId = v4,
        hitException = v5
    };
end);


local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local l_Action_0 = require(l_Parent_0.Packages.Framework).Util.Action;
local _ = require(l_Parent_0.Src.Models.Watch.VariableRow);
local _ = require(l_Parent_0.Src.Models.StepStateBundle);
return l_Action_0(script.Name, function(v4, v5, v6)
    local v7 = {};
    local v8 = {};
    for _, v10 in ipairs(v6) do
        table.insert(v7, v10.pathColumn);
        v8[v10.pathColumn] = v10;
    end;
    return {
        stepStateBundle = v4,
        parentPath = v5,
        childKeys = v7,
        newVarsMapping = v8
    };
end);


return require(script.Parent.Parent.Parent.Parent.Packages.Framework).Util.Action(script.Name, function(v0)
    return {
        expression = v0
    };
end);


local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local l_Action_0 = require(l_Parent_0.Packages.Framework).Util.Action;
local _ = require(l_Parent_0.Src.Models.Watch.VariableRow);
local _ = require(l_Parent_0.Src.Models.StepStateBundle);
return l_Action_0(script.Name, function(v4, v5)
    local v6 = {};
    local v7 = {};
    for _, v9 in ipairs(v5) do
        table.insert(v6, v9.pathColumn);
        v7[v9.pathColumn] = v9;
    end;
    return {
        stepStateBundle = v4,
        tokenizedList = v6,
        newVarsMapping = v7
    };
end);


return require(script.Parent.Parent.Parent.Parent.Packages.Framework).Util.Action(script.Name, function(v0, v1)
    return {
        oldExpression = v0,
        newExpression = v1
    };
end);


local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local l_Action_0 = require(l_Parent_0.Packages.Framework).Util.Action;
local _ = require(l_Parent_0.Src.Models.Watch.WatchRow);
local _ = require(l_Parent_0.Src.Models.StepStateBundle);
return l_Action_0(script.Name, function(v4, v5)
    return {
        stepStateBundle = v4,
        watchRow = v5
    };
end);


local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local l_Action_0 = require(l_Parent_0.Packages.Framework).Util.Action;
local _ = require(l_Parent_0.Src.Models.Watch.WatchRow);
local _ = require(l_Parent_0.Src.Models.StepStateBundle);
return l_Action_0(script.Name, function(v4, v5)
    return {
        stepStateBundle = v4,
        watchRows = v5
    };
end);


return require(script.Parent.Parent.Parent.Parent.Packages.Framework).Util.Action(script.Name, function(v0)
    return {
        filterText = v0
    };
end);


return require(script.Parent.Parent.Parent.Parent.Packages.Framework).Util.Action(script.Name, function(v0)
    return {
        listOfMyWatchesColumns = v0
    };
end);


local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local l_Action_0 = require(l_Parent_0.Packages.Framework).Util.Action;
local _ = require(l_Parent_0.Src.Models.StepStateBundle);
return l_Action_0(script.Name, function(v3, v4, v5)
    return {
        stepStateBundle = v3,
        parentPath = v4,
        isVariablesTab = v5
    };
end);


return require(script.Parent.Parent.Parent.Parent.Packages.Framework).Util.Action(script.Name, function(v0)
    return {
        listOfEnabledScopes = v0
    };
end);


return require(script.Parent.Parent.Parent.Parent.Packages.Framework).Util.Action(script.Name, function(v0, v1)
    return {
        isVariablesTab = v0,
        expansionMapping = v1
    };
end);


return require(script.Parent.Parent.Parent.Parent.Packages.Framework).Util.Action(script.Name, function(v0, v1)
    return {
        path = v0,
        expanded = v1
    };
end);


local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Packages.Framework);
local l_Action_0 = v1.Util.Action;
local v3 = require(l_Parent_0.Src.Models.Watch.TableTab);
local l_includes_0 = v1.Dash.includes;
return l_Action_0(script.Name, function(v5)
    assert(l_includes_0(v3, v5));
    return {
        currentTab = v5
    };
end);


local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local l_Action_0 = require(l_Parent_0.Packages.Framework).Util.Action;
local _ = require(l_Parent_0.Src.Models.StepStateBundle);
return l_Action_0(script.Name, function(v3, v4)
    return {
        stepStateBundle = v3,
        textFilterMap = v4
    };
end);


local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local l_Action_0 = require(l_Parent_0.Packages.Framework).Util.Action;
local _ = require(l_Parent_0.Src.Models.StepStateBundle);
return l_Action_0(script.Name, function(v3, v4, v5)
    return {
        stepStateBundle = v3,
        textFilterMap = v4,
        isVariablesTab = v5
    };
end);


return require(script.Parent.Parent.Parent.Parent.Packages.Framework).Util.Action(script.Name, function(v0)
    return {
        listOfVariablesColumns = v0
    };
end);


local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Packages.Roact);
local v2 = require(l_Parent_0.Packages.Framework);
local l_ContextServices_0 = v2.ContextServices;
local l_Analytics_0 = l_ContextServices_0.Analytics;
local v5 = require(l_Parent_0.Src.Resources.AnalyticsEventNames);
local l_UI_0 = v2.UI;
local l_Pane_0 = l_UI_0.Pane;
local l_Checkbox_0 = l_UI_0.Checkbox;
local v9 = v1.PureComponent:extend("BreakpointsContinueExecutionCell");
v9.init = function(v10)
    v10.onCheckboxClicked = function()
        local l_Row_0 = v10.props.Row;
        game:GetService("MetaBreakpointManager"):GetBreakpointById(l_Row_0.item.id):SetContinueExecution(not l_Row_0.item.continueExecution);
        v10.props.Analytics:report(v5.MetaBreakpointContinueExecutionChanged, "LuaBreakpointsTable");
    end;
end;
v9.render = function(v12)
    local l_props_0 = v12.props;
    return v1.createElement(l_Pane_0, {
        Style = "Box",
        BackgroundColor3 = l_props_0.BackgroundColor,
        BorderSizePixel = 1,
        BorderColor3 = l_props_0.Style.Border,
        Size = UDim2.new(l_props_0.Width.Scale, l_props_0.Width.Offset, 1, 0),
        ClipsDescendants = true
    }, {
        EnabledCheckbox = l_props_0.HasChildren and v1.createElement(l_Checkbox_0, {
            Checked = l_props_0.Value,
            OnClick = v12.onCheckboxClicked
        })
    });
end;
return (l_ContextServices_0.withContext({
    Analytics = l_Analytics_0
})(v9));


local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Packages.Roact);
local v2 = require(l_Parent_0.Packages.RoactRodux);
local v3 = require(l_Parent_0.Packages.Framework);
local l_ContextServices_0 = v3.ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local l_Localization_0 = l_ContextServices_0.Localization;
local l_Analytics_0 = l_ContextServices_0.Analytics;
local v8 = require(l_Parent_0.Src.Resources.AnalyticsEventNames);
local l_Stylizer_0 = v3.Style.Stylizer;
local v10 = require(l_Parent_0.Src.Components.Common.DropdownField);
local v11 = require(l_Parent_0.Src.Actions.BreakpointsWindow.BreakpointColumnFilter);
local v12 = require(l_Parent_0.Src.Models.BreakpointTableColumnEnum);
local v13 = require(l_Parent_0.Src.Util.flatListToString);
local v14 = v1.PureComponent:extend("BreakpointsDropdownField");
local _ = function(v15, v16)
    for _, v18 in pairs(v15) do
        if v18 == v16 then
            return true;
        end;
    end;
    return false;
end;
v14.init = function(v20)
    v20.keyColumns = {
        [1] = "AllColumns",
        [2] = v12.SourceLine,
        [3] = v12.Condition,
        [4] = v12.LogMessage,
        [5] = v12.ContinueExecution,
        [6] = v12.RemoveOnHit
    };
    v20.clickCallback = function(v21)
        v20.props.onColumnFilterChange(v21);
        v20.props.Analytics:report(v8.BreakpointsColumnsEdited, v13(v21));
    end;
end;
v14.render = function(v22)
    local l_props_0 = v22.props;
    return v1.createElement(v10, {
        KeyTexts = v22.keyColumns,
        ClickCallback = v22.clickCallback,
        KeyStates = l_props_0.ColumnStates,
        Localization = l_props_0.Localization,
        Style = l_props_0.Stylizer,
        Widget = "BreakpointsWindow",
        DropdownWidth = 200,
        HamburgerMenu = true,
        ShouldShowDropdownIcon = false
    });
end;
return (v2.connect(function(v24, _)
    local l_listOfEnabledColumns_0 = v24.Breakpoint.listOfEnabledColumns;
    local v27 = {};
    local l_SourceLine_0 = v12.SourceLine;
    local v29;
    for _, v31 in pairs(l_listOfEnabledColumns_0) do
        if v31 == l_SourceLine_0 then
            v29 = true;
            goto label0 --[[  true, false  ]];
        end;
    end;
    v29 = false;
    ::label0::;
    v27[2] = v29;
    l_SourceLine_0 = v12.Condition;
    for _, v33 in pairs(l_listOfEnabledColumns_0) do
        if v33 == l_SourceLine_0 then
            v29 = true;
            goto label1 --[[  true, false  ]];
        end;
    end;
    v29 = false;
    ::label1::;
    v27[3] = v29;
    l_SourceLine_0 = v12.LogMessage;
    for _, v35 in pairs(l_listOfEnabledColumns_0) do
        if v35 == l_SourceLine_0 then
            v29 = true;
            goto label2 --[[  true, false  ]];
        end;
    end;
    v29 = false;
    ::label2::;
    v27[4] = v29;
    l_SourceLine_0 = v12.ContinueExecution;
    for _, v37 in pairs(l_listOfEnabledColumns_0) do
        if v37 == l_SourceLine_0 then
            v29 = true;
            goto label3 --[[  true, false  ]];
        end;
    end;
    v29 = false;
    ::label3::;
    v27[5] = v29;
    l_SourceLine_0 = v12.RemoveOnHit;
    for _, v39 in pairs(l_listOfEnabledColumns_0) do
        if v39 == l_SourceLine_0 then
            v29 = true;
            goto label4 --[[  true, false  ]];
        end;
    end;
    v29 = false;
    ::label4::;
    v27[6] = v29;
    return {
        ColumnStates = v27
    };
end, function(v40)
    return {
        onColumnFilterChange = function(v41)
            return v40(v11(v41));
        end
    };
end)((l_withContext_0({
    Analytics = l_Analytics_0,
    Localization = l_Localization_0,
    Stylizer = l_Stylizer_0
})(v14))));


local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Packages.Roact);
local v2 = require(l_Parent_0.Packages.RoactRodux);
local v3 = require(l_Parent_0.Packages.Framework);
local v4 = require(l_Parent_0.Src.Util.Constants);
local v5 = require(l_Parent_0.Src.Util.BreakpointHelperFunctions);
local l_ContextServices_0 = v3.ContextServices;
local l_Analytics_0 = l_ContextServices_0.Analytics;
local l_UI_0 = v3.UI;
local l_Pane_0 = l_UI_0.Pane;
local l_Image_0 = l_UI_0.Image;
local l_TextLabel_0 = l_UI_0.TextLabel;
local v12 = v1.PureComponent:extend("BreakpointsEnabledCell");
v12.init = function(v13)
    v13.onToggle = function()
        v13.props.CellProps.OnToggle(v13.props.Row);
    end;
    v13.onBreakpointIconClicked = function()
        local l_Row_0 = v13.props.Row;
        v5.setBreakpointRowEnabled(game:GetService("MetaBreakpointManager"):GetBreakpointById(l_Row_0.item.id), l_Row_0, v13.props.Analytics, "LuaBreakpointsTable.BreakpointIconClicked", v13.props.CurrentConnectionId);
    end;
end;
local function v16(v15)
    if v15.item.isValid then
        if v15.item.debugpointType == "Breakpoint" then
            if not v15.item.condition or v15.item.condition == "" then
                return not not v15.item.isEnabled and v4.DebugpointIconTable.breakpointEnabled or v4.DebugpointIconTable.breakpointDisabled;
            else
                return not not v15.item.isEnabled and v4.DebugpointIconTable.conditionalEnabled or v4.DebugpointIconTable.conditionalDisabled;
            end;
        else
            return not not v15.item.isEnabled and v4.DebugpointIconTable.logpointEnabled or v4.DebugpointIconTable.logpointDisabled;
        end;
    else
        return v4.DebugpointIconTable.invalidBreakpoint;
    end;
end;
v12.render = function(v17)
    local l_props_0 = v17.props;
    local l_Row_1 = l_props_0.Row;
    local l_Style_0 = l_props_0.Style;
    local l_HasChildren_0 = l_props_0.HasChildren;
    local v22 = l_props_0.ColumnIndex == 1;
    local v23 = l_Row_1.depth * l_Style_0.Indent;
    local v24 = l_Style_0.CellPadding.Left + v23;
    if not l_HasChildren_0 then
        v24 = v24 + v23 * 2;
    end;
    local l_Size_0 = l_Style_0.Arrow.Size;
    return v1.createElement(l_Pane_0, {
        Style = "Box",
        BackgroundColor3 = l_props_0.BackgroundColor,
        BorderSizePixel = 1,
        BorderColor3 = l_Style_0.Border,
        Size = UDim2.new(l_props_0.Width.Scale, l_props_0.Width.Offset, 1, 0),
        ClipsDescendants = true
    }, {
        Left = v1.createElement(l_Pane_0, {
            Layout = Enum.FillDirection.Horizontal,
            LayoutOrder = 0,
            Padding = not not v22 and {
                Top = l_Style_0.CellPadding.Top,
                Left = v24,
                Right = l_Style_0.CellPadding.Right,
                Bottom = l_Style_0.CellPadding.Bottom
            } or l_Style_0.CellPadding,
            Spacing = l_Style_0.CellSpacing,
            HorizontalAlignment = Enum.HorizontalAlignment.Left,
            AutomaticSize = Enum.AutomaticSize.XY
        }, {
            Toggle = not not l_HasChildren_0 and v1.createElement("ImageButton", {
                LayoutOrder = 0,
                Size = UDim2.new(0, l_Size_0, 0, l_Size_0),
                BackgroundTransparency = 1,
                Image = l_Style_0.Arrow.Image,
                ImageColor3 = l_Style_0.Arrow.Color,
                ImageRectSize = Vector2.new(l_Size_0, l_Size_0),
                ImageRectOffset = not not l_props_0.CellProps.Expansion[l_Row_1.item] and l_Style_0.Arrow.ExpandedOffset or l_Style_0.Arrow.CollapsedOffset,
                [v1.Event.Activated] = v17.onToggle
            }) or nil,
            ChildCountIndicator = l_HasChildren_0 and v1.createElement(l_TextLabel_0, {
                Text = "(x" .. #l_Row_1.item.children .. ")",
                BackgroundTransparency = 1,
                LayoutOrder = 1,
                Size = UDim2.new(0, v4.ICON_SIZE, 0, v4.ICON_SIZE)
            }),
            BreakpointIconPane = v1.createElement(l_Pane_0, {
                LayoutOrder = 2,
                OnPress = v17.onBreakpointIconClicked,
                AutomaticSize = Enum.AutomaticSize.XY
            }, {
                BreakpointIcon = v1.createElement(l_Image_0, {
                    Size = UDim2.new(0, v4.ICON_SIZE, 0, v4.ICON_SIZE),
                    Image = v16(l_Row_1)
                })
            })
        })
    });
end;
return (v2.connect(function(v26, _)
    return {
        CurrentConnectionId = v26.Common.currentDebuggerConnectionId
    };
end)((l_ContextServices_0.withContext({
    Analytics = l_Analytics_0
})(v12))));


local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Packages.Roact);
local v2 = require(l_Parent_0.Packages.Framework);
local l_ContextServices_0 = v2.ContextServices;
local l_Analytics_0 = l_ContextServices_0.Analytics;
local v5 = require(l_Parent_0.Src.Resources.AnalyticsEventNames);
local l_UI_0 = v2.UI;
local l_Pane_0 = l_UI_0.Pane;
local l_Checkbox_0 = l_UI_0.Checkbox;
local v9 = v1.PureComponent:extend("BreakpointsRemoveOnHitCell");
v9.init = function(v10)
    v10.onCheckboxClicked = function()
        local l_Row_0 = v10.props.Row;
        game:GetService("MetaBreakpointManager"):GetBreakpointById(l_Row_0.item.id):SetRemoveOnHit(not l_Row_0.item.removeOnHit);
        v10.props.Analytics:report(v5.MetaBreakpointRemoveOnHitChanged, "LuaBreakpointsTable");
    end;
end;
v9.render = function(v12)
    local l_props_0 = v12.props;
    return v1.createElement(l_Pane_0, {
        Style = "Box",
        BackgroundColor3 = l_props_0.BackgroundColor,
        BorderSizePixel = 1,
        BorderColor3 = l_props_0.Style.Border,
        Size = UDim2.new(l_props_0.Width.Scale, l_props_0.Width.Offset, 1, 0),
        ClipsDescendants = true
    }, {
        EnabledCheckbox = l_props_0.HasChildren and v1.createElement(l_Checkbox_0, {
            Checked = l_props_0.Value,
            OnClick = v12.onCheckboxClicked
        })
    });
end;
return (l_ContextServices_0.withContext({
    Analytics = l_Analytics_0
})(v9));


local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Packages.Roact);
local v2 = require(l_Parent_0.Packages.RoactRodux);
local v3 = require(l_Parent_0.Packages.Framework);
local v4 = require(l_Parent_0.Packages.Cryo);
local l_ContextServices_0 = v3.ContextServices;
local l_Analytics_0 = l_ContextServices_0.Analytics;
local l_Plugin_0 = l_ContextServices_0.Plugin;
local l_Localization_0 = l_ContextServices_0.Localization;
local l_Stylizer_0 = v3.Style.Stylizer;
local l_Dash_0 = v3.Dash;
local l_map_0 = l_Dash_0.map;
local l_join_0 = l_Dash_0.join;
local l_deepCopy_0 = v3.Util.deepCopy;
local l_UI_0 = v3.UI;
local l_IconButton_0 = l_UI_0.IconButton;
local l_Pane_0 = l_UI_0.Pane;
local l_TreeTable_0 = l_UI_0.TreeTable;
local l_showContextMenu_0 = l_UI_0.showContextMenu;
local v19 = require(l_Parent_0.Src.Models.BreakpointRow);
local v20 = require(l_Parent_0.Src.Util.Constants);
local v21 = require(l_Parent_0.Src.Components.Breakpoints.BreakpointsTreeTableCell);
local v22 = v1.PureComponent:extend("BreakpointsTable");
local l_Util_0 = l_Parent_0.Src.Util;
local v24 = require(l_Util_0.BreakpointHelperFunctions);
local v25 = require(l_Util_0.WatchHelperFunctions);
local v26 = require(l_Util_0.ColumnResizeHelperFunctions);
local v27 = require(l_Parent_0.Src.Resources.AnalyticsEventNames);
local v28 = require(l_Parent_0.Src.Thunks.Breakpoints.ToggleAllBreakpoints);
local l_Actions_0 = l_Parent_0.Src.Actions;
local v30 = require(l_Actions_0.BreakpointsWindow.SetBreakpointSortState);
local v31 = require(l_Actions_0.BreakpointsWindow.BreakpointColumnFilter);
local v32 = require(script.Parent.BreakpointsDropdownField);
local v33 = require(script.Parent.DeleteAllBreakpointsDialog);
local v34 = require(l_Util_0.MakePluginActions);
local v35 = {
    [1] = "isEnabled",
    [2] = "scriptName",
    [3] = "lineNumber"
};
local v36 = {
    SourceLineColumn = "scriptLine",
    ConditionColumn = "condition",
    LogMessageColumn = "logMessage",
    ContinueExecutionColumn = "continueExecution",
    RemoveOnHitColumn = "removeOnHit"
};
local function _(v37)
    if v37 == v20.GameStateTypes.Client then
        return v20.DebugpointIconTable.client;
    elseif v37 == v20.GameStateTypes.Server then
        return v20.DebugpointIconTable.server;
    else
        return nil;
    end;
end;
v22.init = function(v39)
    local v40 = {};
    local v41 = #v35 + #v39.props.ColumnFilter;
    for v42 = 1, v41 do
        if v42 == 2 then
            table.insert(v40, UDim.new(2 / (v41 + 0.5), 0));
        elseif v42 == 3 then
            table.insert(v40, UDim.new(0.5 / (v41 + 0.5), 0));
        else
            table.insert(v40, UDim.new(1 / (v41 + 0.5), 0));
        end;
    end;
    v39.state = {
        selectedBreakpoints = {},
        breakpointIdToExpansionState = {},
        sizes = v40,
        deleteAllPopup = false
    };
    v39.OnDoubleClick = function(_)
        v39.goToScript();
    end;
    v39.OnColumnSizesChange = function(v44)
        v39:setState(function(_)
            return {
                sizes = v44
            };
        end);
    end;
    v39.onSelectionChange = function(v46)
        local v47 = {};
        for v48 in pairs(v46) do
            table.insert(v47, v48);
        end;
        v39:setState(function(_)
            return {
                selectedBreakpoints = v47
            };
        end);
    end;
    v39.onMenuActionSelected = function(v50)
        local l_Id_0 = v50.Id;
        local l_Data_0 = v50.Data;
        if not (l_Id_0 ~= v20.BreakpointActions.DeleteBreakpoint) or l_Id_0 == v20.LogpointActions.DeleteLogpoint then
            game:GetService("MetaBreakpointManager"):RemoveBreakpointById(l_Data_0.item.id);
            v39.props.Analytics:report(v27.RemoveMetaBreakpoint, "LuaBreakpointsTable.ContextMenu");
            return ;
        elseif not (l_Id_0 ~= v20.BreakpointActions.EditBreakpoint) or l_Id_0 == v20.LogpointActions.EditLogpoint then
            game:GetService("DebuggerUIService"):EditBreakpoint(l_Data_0.item.id);
            return ;
        elseif not ((l_Id_0 ~= v20.BreakpointActions.EnableBreakpoint and l_Id_0 ~= v20.LogpointActions.EnableLogpoint) and l_Id_0 ~= v20.BreakpointActions.DisableBreakpoint) or l_Id_0 == v20.LogpointActions.DisableLogpoint then
            v24.setBreakpointRowEnabled(game:GetService("MetaBreakpointManager"):GetBreakpointById(l_Data_0.item.id), l_Data_0, v39.props.Analytics, "LuaBreakpointsTable.ContextMenu", v39.props.CurrentDebuggerConnectionId);
            return ;
        else
            if l_Id_0 == v20.CommonActions.GoToScript then
                v39.goToScript();
            end;
            return ;
        end;
    end;
    v39.OnSortChange = function(v53, v54)
        local l_props_0 = v39.props;
        l_props_0.onSetBreakpointSortState(l_props_0.SortIndex == v53 and v54 or (l_props_0.SortOrder or v54), v53);
    end;
    v39.onRightClick = function(v56)
        v39:setState(function(_)
            return {
                selectedBreakpoints = {
                    v56.item
                }
            };
        end);
        local l_props_1 = v39.props;
        local l_Localization_1 = l_props_1.Localization;
        local v60 = l_props_1.Plugin:get();
        local v61 = v56.item.debugpointType == v20.DebugpointType.Logpoint;
        l_showContextMenu_0(v60, v34.getBreakpointActions(l_Localization_1, v56.item.isEnabled, v61, v56, v39.onMenuActionSelected), (v34.getBreakpointActionsOrder(v56.item.isEnabled, v61)));
    end;
    v39.displayDeleteAllBreakpointsPopup = function()
        v39:setState(function(_)
            return {
                deleteAllPopup = true
            };
        end);
    end;
    v39.closeDeleteAllBreakpointsPopup = function()
        v39:setState(function(_)
            return {
                deleteAllPopup = false
            };
        end);
    end;
    v39.deleteAllBreakpoints = function()
        local l_MetaBreakpointManager_0 = game:GetService("MetaBreakpointManager");
        for _, v66 in ipairs(v39.props.Breakpoints) do
            l_MetaBreakpointManager_0:RemoveBreakpointById(v66.id);
        end;
        v39.props.Analytics:report(v27.RemoveAllMetaBreakpoints, "LuaBreakpointsTable");
    end;
    v39.toggleEnabledAll = function()
        local l_MetaBreakpointManager_1 = game:GetService("MetaBreakpointManager");
        local l_hasDisabledBreakpoints_0 = v39.props.hasDisabledBreakpoints;
        v39.props.onToggleEnabledAll(l_MetaBreakpointManager_1, l_hasDisabledBreakpoints_0);
        if not l_hasDisabledBreakpoints_0 then
            v39.props.Analytics:report(v27.DisableAllMetaBreakpoints, "LuaBreakpointsTable");
            return ;
        else
            v39.props.Analytics:report(v27.EnableAllMetaBreakpoints, "LuaBreakpointsTable");
            return ;
        end;
    end;
    v39.goToScript = function()
        if #v39.state.selectedBreakpoints ~= 0 then
            local v69 = v39.state.selectedBreakpoints[1];
            game:GetService("DebuggerUIService"):OpenScriptAtLine(v69.scriptGUID, if not v69.hiddenConnectionId then v39.props.CurrentDebuggerConnectionId else v69.hiddenConnectionId, if not v69.hiddenLineNumber then v69.lineNumber else v69.hiddenLineNumber, true);
        end;
    end;
    v39.onExpansionChange = function(v70)
        v39:setState(function(v71)
            local v72 = {};
            for v73, v74 in pairs(v70) do
                v72[v73.id] = v74;
            end;
            return {
                breakpointIdToExpansionState = v4.Dictionary.join(v71.breakpointIdToExpansionState, v72)
            };
        end);
    end;
    v39.getTreeChildren = function(v75)
        return v75.children or {};
    end;
    v39.OnFocusLost = function(_, v77, v78, v79)
        local l_BreakpointById_0 = game:GetService("MetaBreakpointManager"):GetBreakpointById(v78.item.id);
        if l_BreakpointById_0 then
            if v39.props.CurrentKeys[v79] == "condition" then
                local l_Text_0 = v77.Text;
                if l_Text_0 ~= l_BreakpointById_0.Condition then
                    l_BreakpointById_0.Condition = l_Text_0;
                    v39.props.Analytics:report(v27.MetaBreakpointConditionChanged, "LuaBreakpointsTable");
                    return ;
                end;
            elseif v39.props.CurrentKeys[v79] == "logMessage" then
                local l_Text_1 = v77.Text;
                if l_Text_1 ~= l_BreakpointById_0.LogMessage then
                    l_BreakpointById_0.LogMessage = l_Text_1;
                    v39.props.Analytics:report(v27.MetaBreakpointLogMessageChanged, "LuaBreakpointsTable");
                end;
            end;
            return ;
        else
            return ;
        end;
    end;
end;
v22.didMount = function(v83)
    local l_props_2 = v83.props;
    local l_Setting_0 = l_props_2.Plugin:get():GetSetting("breakpointsWindowConfigs");
    if not ((not l_Setting_0 or not l_Setting_0[v20.ColumnSize]) or not l_Setting_0[v20.ColumnFilter]) then
        l_props_2.onColumnFilterChange(l_Setting_0[v20.ColumnFilter]);
        v83:setState(function(_)
            return {
                sizes = v26.fetchSizesFromColumnScales(l_Setting_0[v20.ColumnSize])
            };
        end);
    end;
    if not (not v83.props.IsPaused or not v83.props.CurrentBreakpoint) then
        v83:setState(function(_)
            return {
                selectedBreakpoints = {
                    v83.props.CurrentBreakpoint
                }
            };
        end);
    end;
end;
v22.willUnmount = function(v88)
    local l_props_3 = v88.props;
    l_props_3.Plugin:get():SetSetting("breakpointsWindowConfigs", {
        [v20.ColumnFilter] = l_props_3.ColumnFilter,
        [v20.ColumnSize] = v26.fetchScaleFromColumnSizes(v88.state.sizes)
    });
end;
v22.didUpdate = function(v90, v91)
    local l_props_4 = v90.props;
    local v93 = #l_props_4.ColumnFilter + #v35;
    if #l_props_4.ColumnFilter ~= #v91.ColumnFilter and #v90.state.sizes ~= v93 then
        local v94 = {};
        local v95 = #v91.ColumnFilter + #v35;
        local v96 = v4.List.toSet(l_props_4.ColumnFilter);
        local v97 = v26.fetchOldColumnSizes(v95, v91.ColumnFilter, v35, v90.state.sizes);
        v94 = if v93 < v95 then v26.updatedSizesAfterRemovingColumns(v93, v26.fetchDeletedColumnsSize(#v35, v95, v91.ColumnFilter, v97, v96), v97, v35, l_props_4.ColumnFilter) else v26.updatedSizesAfterAddingColumns(v93, v95, v97, l_props_4.ColumnFilter, v35);
        do
            local l_v94_0 = v94;
            v90:setState(function(_)
                return {
                    sizes = l_v94_0
                };
            end);
        end;
    end;
    if (not (v90.props.IsPaused ~= v91.IsPaused) or not v90.props.IsPaused) or not v90.props.CurrentBreakpoint then
        if v90.props.Breakpoints ~= v91.Breakpoints and #v90.state.selectedBreakpoints ~= 0 then
            local v100 = {};
            local v101 = {};
            local v102 = {};
            for _, v104 in ipairs(v90.state.selectedBreakpoints) do
                if not v104.context then
                    v101[v104.id] = true;
                else
                    v102[v104.id] = v104.context .. v104.scriptGUID;
                end;
            end;
            for _, v106 in ipairs(v90.props.Breakpoints) do
                if v101[v106.id] then
                    table.insert(v100, v106);
                end;
                if v102[v106.id] then
                    for _, v108 in ipairs(v106.children) do
                        if v102[v106.id] == v108.context .. v108.scriptGUID then
                            table.insert(v100, v108);
                        end;
                    end;
                end;
            end;
            v90:setState(function(_)
                return {
                    selectedBreakpoints = v100
                };
            end);
        end;
        return ;
    else
        v90:setState(function(_)
            return {
                selectedBreakpoints = {
                    v90.props.CurrentBreakpoint
                }
            };
        end);
        return ;
    end;
end;
v22.render = function(v111)
    local l_props_5 = v111.props;
    local l_Localization_2 = l_props_5.Localization;
    local l_Stylizer_1 = l_props_5.Stylizer;
    local v115 = ((l_props_5.IsPaused and l_props_5.CurrentBreakpoint) and v111.state.selectedBreakpoints[1]) and l_props_5.CurrentBreakpoint.id == v111.state.selectedBreakpoints[1].id;
    local v116 = {
        {
            Name = "",
            Key = v35[1]
        },
        {
            Name = l_Localization_2:getText("BreakpointsWindow", "ScriptColumn"),
            Key = v35[2],
            Tooltip = l_Localization_2:getText("BreakpointsWindow", "ScriptColumnTooltip") or nil
        },
        {
            Name = l_Localization_2:getText("BreakpointsWindow", "LineColumn"),
            Key = v35[3],
            Tooltip = l_Localization_2:getText("BreakpointsWindow", "LineColumnTooltip") or nil
        }
    };
    for _, v118 in ipairs(l_props_5.ColumnFilter) do
        table.insert(v116, {
            Name = l_Localization_2:getText("BreakpointsWindow", v118),
            Key = v36[v118],
            Tooltip = l_Localization_2:getText("BreakpointsWindow", v118 .. "Tooltip") or nil
        });
    end;
    local v121 = l_map_0(v116, function(v119, v120)
        return l_join_0(v119, {
            Width = v111.state.sizes[v120]
        });
    end);
    local v122 = {};
    for _, v124 in pairs(l_props_5.Breakpoints) do
        if v111.state.breakpointIdToExpansionState[v124.id] == nil then
            v111.state.breakpointIdToExpansionState[v124.id] = false;
        end;
        v122[v124] = v111.state.breakpointIdToExpansionState[v124.id];
    end;
    local v125 = nil;
    v125 = if not l_props_5.hasDisabledBreakpoints then l_Localization_2:getText("BreakpointsWindow", "DisableAll") else l_Localization_2:getText("BreakpointsWindow", "EnableAll");
    local v126 = v20.HEADER_HEIGHT + v20.BUTTON_PADDING * 2;
    return v1.createElement(l_Pane_0, {
        Size = UDim2.fromScale(1, 1),
        Style = "Box",
        Layout = Enum.FillDirection.Vertical,
        VerticalAlignment = Enum.VerticalAlignment.Top,
        BackgroundColor3 = l_Stylizer_1.MainBackground
    }, {
        HeaderPane = v1.createElement(l_Pane_0, {
            Size = UDim2.new(1, 0, 0, v126),
            Spacing = v20.BUTTON_PADDING,
            Padding = v20.BUTTON_PADDING,
            Style = "Box",
            Layout = Enum.FillDirection.Horizontal,
            LayoutOrder = 1,
            VerticalAlignment = Enum.VerticalAlignment.Center,
            HorizontalAlignment = Enum.HorizontalAlignment.Left
        }, {
            ButtonsContainer = v1.createElement(l_Pane_0, {
                Size = UDim2.new(0.5, 0, 0, v20.HEADER_HEIGHT),
                LayoutOrder = 1,
                Style = "Box",
                Layout = Enum.FillDirection.Horizontal,
                VerticalAlignment = Enum.VerticalAlignment.Center,
                HorizontalAlignment = Enum.HorizontalAlignment.Left
            }, {
                DisableAllBreakpointButton = v1.createElement(l_IconButton_0, {
                    Size = UDim2.new(0, v20.BUTTON_SIZE, 0, v20.BUTTON_SIZE),
                    LayoutOrder = 1,
                    LeftIcon = "rbxasset://textures/Debugger/Breakpoints/disable_all@2x.png",
                    TooltipText = v125,
                    OnClick = v111.toggleEnabledAll,
                    Disabled = #l_props_5.Breakpoints == 0
                }),
                DeleteAllBreakpointButton = v1.createElement(l_IconButton_0, {
                    Size = UDim2.new(0, v20.BUTTON_SIZE, 0, v20.BUTTON_SIZE),
                    LayoutOrder = 2,
                    LeftIcon = "rbxasset://textures/Debugger/Breakpoints/delete_all@2x.png",
                    TooltipText = l_Localization_2:getText("BreakpointsWindow", "DeleteAll"),
                    OnClick = v111.displayDeleteAllBreakpointsPopup,
                    Disabled = #l_props_5.Breakpoints == 0
                })
            }),
            DropdownContainer = v1.createElement(l_Pane_0, {
                Size = UDim2.new(0.5, 0, 0, v20.HEADER_HEIGHT),
                LayoutOrder = 2,
                Style = "Box",
                Layout = Enum.FillDirection.Horizontal,
                VerticalAlignment = Enum.VerticalAlignment.Center,
                HorizontalAlignment = Enum.HorizontalAlignment.Right
            }, {
                ColumnDropdown = v1.createElement(v32, {
                    LayoutOrder = 1,
                    AutomaticSize = Enum.AutomaticSize.X
                })
            })
        }),
        TablePane = v1.createElement(l_Pane_0, {
            Size = UDim2.new(1, 0, 1, -v126),
            Style = "Box",
            LayoutOrder = 2
        }, {
            BreakpointsTable = v1.createElement(l_TreeTable_0, {
                Size = UDim2.new(1, 0, 1, 0),
                Columns = v121,
                RootItems = l_props_5.Breakpoints or {},
                OnExpansionChange = v111.onExpansionChange,
                RightClick = v111.onRightClick,
                CellComponent = v21,
                LayoutOrder = 2,
                OnSelectionChange = v111.onSelectionChange,
                HighlightedRows = v111.state.selectedBreakpoints,
                Scroll = true,
                ScrollFocusIndex = v115 and v111.props.CurrentBreakpointIndex,
                Expansion = v122,
                GetChildren = v111.getTreeChildren,
                TextInputCols = l_props_5.TextInputCols,
                OnFocusLost = v111.OnFocusLost,
                OnDoubleClick = v111.OnDoubleClick,
                SortIndex = l_props_5.SortIndex,
                SortOrder = l_props_5.SortOrder,
                OnSortChange = v111.OnSortChange,
                OnColumnSizesChange = v111.OnColumnSizesChange,
                UseDeficit = false,
                UseScale = true,
                ClampSize = true,
                ColumnHeaderHeight = v20.COLUMN_HEADER_HEIGHT,
                RowHeight = v20.ROW_HEIGHT,
                ExpandOnDoubleClick = true
            })
        }),
        DeleteAllDialog = v1.createElement(v33, {
            Enabled = v111.state.deleteAllPopup,
            CloseDialog = v111.closeDeleteAllBreakpointsPopup,
            DeleteAllBreakpoints = v111.deleteAllBreakpoints
        })
    });
end;
return (v2.connect(function(v127, _)
    local v129 = {};
    local v130 = nil;
    local v131 = nil;
    local v132 = false;
    for _, v134 in pairs(v127.Breakpoint.MetaBreakpoints) do
        local v135 = l_deepCopy_0(v134);
        v135.scriptGUID = v134.scriptName;
        v135.scriptName = v127.ScriptInfo.ScriptInfo[v135.scriptName];
        v135.scriptLine = v127.ScriptInfo.ScriptLineContents[v135.scriptGUID] and v127.ScriptInfo.ScriptLineContents[v135.scriptGUID][v135.lineNumber];
        table.insert(v129, v135);
        if v134.isEnabled == false then
            v132 = true;
        end;
    end;
    local v136 = 1;
    for _, v138 in ipairs(v129) do
        if v138.id == v127.Common.currentBreakpointId then
            v130 = v138;
            v131 = v136;
        end;
        v136 = v136 + 1;
        v138.children = {};
        for v139, v140 in pairs(v138.contextBreakpoints) do
            for _, v142 in ipairs(v140.breakpoints) do
                local v143 = v19.extractNonChildData(v138, v139, v142.Script);
                v143.hiddenConnectionId = v140.connectionId;
                v143.hiddenLineNumber = v143.lineNumber;
                v143.lineNumber = "";
                v143.isEnabled = v142.Enabled;
                v143.isValid = v142.Valid;
                v143.scriptName = {
                    Value = v127.ScriptInfo.ScriptInfo[v142.Script],
                    LeftIcon = {
                        Image = if v139 == v20.GameStateTypes.Client then v20.DebugpointIconTable.client else if v139 == v20.GameStateTypes.Server then v20.DebugpointIconTable.server else nil,
                        Size = UDim2.new(0, v20.ICON_SIZE, 0, v20.ICON_SIZE)
                    }
                };
                table.insert(v138.children, v143);
            end;
        end;
    end;
    local v144 = {};
    local v145 = {};
    for _, v147 in ipairs(v35) do
        table.insert(v144, v147);
    end;
    for v148, v149 in ipairs(v127.Breakpoint.listOfEnabledColumns) do
        table.insert(v144, v36[v149]);
        if not (v149 ~= "ConditionColumn") or v149 == "LogMessageColumn" then
            v145[v148 + #v35] = true;
        end;
    end;
    v25.sortTableByColumnAndOrder(v129, v127.Breakpoint.ColumnIndex, v127.Breakpoint.SortDirection, v144, false, {
        "scriptGUID",
        "lineNumber"
    });
    return {
        Breakpoints = v129,
        IsPaused = v127.Common.isPaused,
        CurrentBreakpoint = v130,
        CurrentBreakpointIndex = v131,
        CurrentDebuggerConnectionId = v127.Common.currentDebuggerConnectionId,
        SortIndex = v127.Breakpoint.ColumnIndex,
        SortOrder = v127.Breakpoint.SortDirection,
        hasDisabledBreakpoints = v132,
        ColumnFilter = v127.Breakpoint.listOfEnabledColumns,
        TextInputCols = v145,
        CurrentKeys = v144
    };
end, function(v150)
    return {
        onToggleEnabledAll = function(v151, v152)
            return v150(v28(v151, v152));
        end,
        onSetBreakpointSortState = function(v153, v154)
            return v150(v30(v153, v154));
        end,
        onColumnFilterChange = function(v155)
            return v150(v31(v155));
        end
    };
end)((l_ContextServices_0.withContext({
    Analytics = l_Analytics_0,
    Localization = l_Localization_0,
    Stylizer = l_Stylizer_0,
    Plugin = l_Plugin_0
})(v22))));


local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Packages.Roact);
local v2 = require(l_Parent_0.Packages.Framework);
local l_StyleModifier_0 = v2.Util.StyleModifier;
local l_join_0 = v2.Dash.join;
local l_ContextServices_0 = v2.ContextServices;
local l_Analytics_0 = l_ContextServices_0.Analytics;
local l_TreeTableCell_0 = v2.UI.TreeTableCell;
local v8 = require(l_Parent_0.Src.Components.Breakpoints.BreakpointsEnabledCell);
local v9 = require(l_Parent_0.Src.Components.Breakpoints.BreakpointsContinueExecutionCell);
local v10 = require(l_Parent_0.Src.Components.Breakpoints.BreakpointsRemoveOnHitCell);
local v11 = v1.PureComponent:extend("BreakpointsTreeTableCell");
v11.render = function(v12)
    local l_props_0 = v12.props;
    local l_Key_0 = l_props_0.Columns[l_props_0.ColumnIndex].Key;
    local v15 = l_props_0.Width or UDim.new(1 / #l_props_0.Columns, 0);
    local l_Row_0 = l_props_0.Row;
    local l_CellProps_0 = l_props_0.CellProps;
    local v18 = l_Row_0.item[l_Key_0];
    local v19 = l_Key_0 == "isEnabled";
    local v20 = l_Key_0 == "continueExecution";
    local v21 = l_Key_0 == "removeOnHit";
    local v22 = l_join_0(l_props_0.Style, l_CellProps_0.CellStyle);
    local v23 = l_props_0.RowIndex % 2 == 1 and v22.BackgroundOdd or v22.BackgroundEven;
    if not (not l_props_0.HighlightCell or not v22[l_StyleModifier_0.Hover]) then
        v23 = l_props_0.RowIndex % 2 == 1 and v22[l_StyleModifier_0.Hover].BackgroundOdd or v22[l_StyleModifier_0.Hover].BackgroundEven;
    end;
    local v24 = l_Row_0.item.children and #l_Row_0.item.children > 0;
    if not v19 then
        if not v20 then
            if not v21 then
                return v1.createElement(l_TreeTableCell_0, {
                    CellProps = l_props_0.CellProps,
                    Columns = l_props_0.Columns,
                    ColumnIndex = l_props_0.ColumnIndex,
                    Row = l_props_0.Row,
                    Width = l_props_0.Width,
                    Style = l_props_0.Style,
                    RowIndex = l_props_0.RowIndex,
                    HighlightCell = l_props_0.HighlightCell,
                    OnRightClick = l_props_0.OnRightClick,
                    SetCellContentsWidth = l_props_0.SetCellContentsWidth,
                    Emphasis = l_props_0.Emphasis
                });
            else
                return v1.createElement(v10, {
                    Row = l_Row_0,
                    Style = v22,
                    HasChildren = v24,
                    BackgroundColor = v23,
                    Width = v15,
                    Value = v18
                });
            end;
        else
            return v1.createElement(v9, {
                Row = l_Row_0,
                Style = v22,
                HasChildren = v24,
                BackgroundColor = v23,
                Width = v15,
                Value = v18
            });
        end;
    else
        return v1.createElement(v8, {
            ColumnIndex = l_props_0.ColumnIndex,
            Row = l_Row_0,
            Style = v22,
            HasChildren = v24,
            BackgroundColor = v23,
            Width = v15,
            CellProps = l_CellProps_0
        });
    end;
end;
return (l_ContextServices_0.withContext({
    Analytics = l_Analytics_0
})(v11));


local l_StudioFixPluginWidgetLocalizedIds_0 = game:GetFastFlag("StudioFixPluginWidgetLocalizedIds");
local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local v2 = require(l_Parent_0.Packages.Roact);
local v3 = require(l_Parent_0.Packages.Framework);
local l_DockWidget_0 = v3.UI.DockWidget;
local l_ContextServices_0 = v3.ContextServices;
local l_Localization_0 = l_ContextServices_0.Localization;
local v7 = require(l_Parent_0.Src.Components.Breakpoints.BreakpointsTable);
local v8 = v2.PureComponent:extend("BreakpointWindow");
v8.render = function(v9)
    local l_props_0 = v9.props;
    return v2.createElement(l_DockWidget_0, {
        Id = if not l_StudioFixPluginWidgetLocalizedIds_0 then nil else "Breakpoints",
        Title = l_props_0.Localization:getText("BreakpointsWindow", "WindowName"),
        ZIndexBehavior = Enum.ZIndexBehavior.Sibling,
        InitialDockState = Enum.InitialDockState.Bottom,
        Size = Vector2.new(750, 480),
        MinSize = Vector2.new(250, 200),
        Enabled = l_props_0.Enabled,
        OnClose = l_props_0.OnClose,
        ShouldRestore = true,
        OnWidgetRestored = l_props_0.OnRestore,
        [v2.Change.Enabled] = l_props_0.OnWidgetEnabledChanged
    }, {
        BreakpointsTable = v2.createElement(v7)
    });
end;
return (l_ContextServices_0.withContext({
    Localization = l_Localization_0
})(v8));


local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Packages.Roact);
local v2 = require(l_Parent_0.Packages.Framework);
local l_UI_0 = v2.UI;
local l_TextLabel_0 = l_UI_0.TextLabel;
local l_StyledDialog_0 = l_UI_0.StyledDialog;
local l_ContextServices_0 = v2.ContextServices;
local l_Localization_0 = l_ContextServices_0.Localization;
local v8 = v1.PureComponent:extend("DeleteAllBreakpointsDialog");
v8.render = function(v9)
    local l_props_0 = v9.props;
    local l_Localization_1 = l_props_0.Localization;
    return v1.createElement(l_StyledDialog_0, {
        Style = "AcceptCancel",
        Enabled = l_props_0.Enabled,
        Modal = true,
        Title = l_Localization_1:getText("BreakpointsWindow", "DeleteAll"),
        MinContentSize = Vector2.new(300, 100),
        Buttons = {
            {
                Key = "Yes",
                Text = l_Localization_1:getText("BreakpointsWindow", "DeleteAllPopupYes")
            },
            {
                Key = "No",
                Text = l_Localization_1:getText("BreakpointsWindow", "DeleteAllPopupNo")
            }
        },
        OnButtonPressed = function(v12)
            if v12 == "Yes" then
                l_props_0.DeleteAllBreakpoints();
            end;
            l_props_0.CloseDialog();
        end,
        OnClose = function()
            l_props_0.CloseDialog();
        end
    }, {
        Contents = v1.createElement(l_TextLabel_0, {
            BackgroundTransparency = 1,
            TextSize = 20,
            Text = l_Localization_1:getText("BreakpointsWindow", "DeleteAllPopupText"),
            TextColor3 = Color3.new(1, 1, 1),
            Size = UDim2.fromScale(1, 1),
            Position = UDim2.fromScale(0, 0)
        })
    });
end;
return (l_ContextServices_0.withContext({
    Localization = l_Localization_0
})(v8));


local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Packages.Roact);
local v2 = require(l_Parent_0.Packages.RoactRodux);
local v3 = require(l_Parent_0.Packages.Framework);
local v4 = require(l_Parent_0.Packages.Cryo);
local v5 = require(script.Parent.CallstackDropdownField);
local l_ContextServices_0 = v3.ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local l_Analytics_0 = l_ContextServices_0.Analytics;
local l_Localization_0 = l_ContextServices_0.Localization;
local l_PluginActions_0 = l_ContextServices_0.PluginActions;
local l_Plugin_0 = l_ContextServices_0.Plugin;
local v12 = require(l_Parent_0.Src.Resources.AnalyticsEventNames);
local l_Stylizer_0 = v3.Style.Stylizer;
local l_deepCopy_0 = v3.Util.deepCopy;
local l_Dash_0 = v3.Dash;
local l_map_0 = l_Dash_0.map;
local l_join_0 = l_Dash_0.join;
local l_UI_0 = v3.UI;
local l_Pane_0 = l_UI_0.Pane;
local l_TreeTable_0 = l_UI_0.TreeTable;
local l_IconButton_0 = l_UI_0.IconButton;
local l_showContextMenu_0 = v3.UI.showContextMenu;
local l_Util_0 = l_Parent_0.Src.Util;
local v24 = require(l_Util_0.ColumnResizeHelperFunctions);
local l_Actions_0 = l_Parent_0.Src.Actions;
local v26 = require(l_Actions_0.Callstack.SetCurrentFrameNumber);
local v27 = require(l_Actions_0.Callstack.ColumnFilterChange);
local v28 = require(l_Parent_0.Src.Thunks.Watch.LoadAllVariablesForThreadAndFrame);
local v29 = require(l_Parent_0.Src.Thunks.Callstack.PopulateCallstackThreadThunk);
local v30 = require(l_Util_0.MakePluginActions);
local v31 = require(l_Parent_0.Src.Models.Callstack.CallstackRow);
local v32 = v1.PureComponent:extend("CallstackComponent");
local v33 = require(l_Parent_0.Src.Util.Constants);
local v34 = require(l_Parent_0.Src.Thunks.Callstack.StepHandlers);
local l_StudioService_0 = game:GetService("StudioService");
local v36 = {
    [1] = "arrowColumn"
};
local v37 = {
    FrameColumn = "frameColumn",
    SourceColumn = "sourceColumn",
    FunctionColumn = "functionColumn",
    LineColumn = "lineColumn"
};
local v38 = {
    ArrowColumn = 0.5,
    FrameColumn = 0.5,
    SourceColumn = 1.5,
    FunctionColumn = 1,
    LineColumn = 0.5
};
local function _(v39, v40, v41, v42)
    if v39 == 1 then
        v41[v39].arrowColumn = v31.ICON_FRAME_TOP;
        return ;
    elseif v40.frameColumn == v42 then
        v41[v39].arrowColumn = v31.ICON_CURRENT_FRAME;
        return ;
    else
        v41[v39].arrowColumn = "";
        return ;
    end;
end;
local function _(v44, v45)
    return v45.ScriptInfo[v44];
end;
local _ = function(v47, _, v49, v50)
    v49[v47].scriptGUID = v49[v47].sourceColumn;
    v49[v47].sourceColumn = v50.ScriptInfo[v49[v47].sourceColumn];
end;
local function v64(v52, v53, v54, v55)
    local l_displayString_0 = v52.displayString;
    local l_threadId_0 = v52.threadId;
    local v58 = v54.currentFrameMap[v54.currentDebuggerConnectionId][l_threadId_0];
    local v59 = v53.threadIdToFrameList and v53.threadIdToFrameList[l_threadId_0];
    local v60 = nil;
    v60 = if not v59 then {
        [1] = {
            frameColumn = 1,
            functionColumn = "",
            lineColumn = -1,
            sourceColumn = l_displayString_0
        }
    } else l_deepCopy_0(v59);
    for v61, v62 in ipairs(v60) do
        local l_v60_0 = v60;
        if v61 == 1 then
            l_v60_0[v61].arrowColumn = v31.ICON_FRAME_TOP;
        elseif v62.frameColumn == v58 then
            l_v60_0[v61].arrowColumn = v31.ICON_CURRENT_FRAME;
        else
            l_v60_0[v61].arrowColumn = "";
        end;
        l_v60_0 = v60;
        l_v60_0[v61].scriptGUID = l_v60_0[v61].sourceColumn;
        l_v60_0[v61].sourceColumn = v55.ScriptInfo[l_v60_0[v61].sourceColumn];
    end;
    return {
        arrowColumn = l_displayString_0,
        threadId = l_threadId_0,
        children = v60
    };
end;
v32.addAction = function(v65, v66, v67)
    if v66 then
        v66.Enabled = true;
        table.insert(v65.shortcuts, v66);
        table.insert(v65.connections, v66.Triggered:Connect(v67));
    end;
end;
v32.didMount = function(v68)
    local l_props_0 = v68.props;
    local l_Setting_0 = l_props_0.Plugin:get():GetSetting("callstackWindowConfigs");
    if not ((not l_Setting_0 or not l_Setting_0[v33.ColumnSize]) or not l_Setting_0[v33.ColumnFilter]) then
        l_props_0.onColumnFilterChange(l_Setting_0[v33.ColumnFilter]);
        v68:setState(function(_)
            return {
                sizes = v24.fetchSizesFromColumnScales(l_Setting_0[v33.ColumnSize])
            };
        end);
    end;
    local l_PluginActions_1 = v68.props.PluginActions;
    v68.connections = {};
    v68.shortcuts = {};
    v68:addAction(l_PluginActions_1:get(v33.CallstackActionIds.CopySelected), v68.copySelectedRows);
    v68:addAction(l_PluginActions_1:get(v33.CallstackActionIds.SelectAll), v68.selectAllRows);
end;
v32.willUnmount = function(v73)
    local l_props_1 = v73.props;
    l_props_1.Plugin:get():SetSetting("callstackWindowConfigs", {
        [v33.ColumnFilter] = l_props_1.ColumnFilter,
        [v33.ColumnSize] = v24.fetchScaleFromColumnSizes(v73.state.sizes)
    });
    if v73.connections then
        for _, v76 in ipairs(v73.connections) do
            v76:Disconnect();
        end;
        v73.connections = {};
    end;
    if v73.shortcuts then
        for _, v78 in ipairs(v73.shortcuts) do
            v78.Enabled = false;
        end;
        v73.shortcuts = {};
    end;
end;
v32.init = function(v79)
    local v80 = {};
    local l_ArrowColumn_0 = v38.ArrowColumn;
    for v82 = 1, #v79.props.ColumnFilter do
        l_ArrowColumn_0 = l_ArrowColumn_0 + v38[v79.props.ColumnFilter[v82]];
    end;
    table.insert(v80, UDim.new(v38.ArrowColumn / l_ArrowColumn_0, 0));
    for v83 = 1, #v79.props.ColumnFilter do
        table.insert(v80, UDim.new(v38[v79.props.ColumnFilter[v83]] / l_ArrowColumn_0, 0));
    end;
    v79.state = {
        selectedRows = {},
        selectAll = false,
        sizes = v80
    };
    v79.OnColumnSizesChange = function(v84)
        v79:setState(function(_)
            return {
                sizes = v84
            };
        end);
    end;
    v79.getTreeChildren = function(v86)
        return v86.children or {};
    end;
    v79.onSelectionChange = function(v87)
        local l_props_2 = v79.props;
        for v89 in pairs(v87) do
            if v89.arrowColumn == "" then
                v89.arrowColumn = v31.ICON_CURRENT_FRAME;
            end;
            v79:setState(function(_)
                return {
                    selectedRows = {
                        v89
                    },
                    selectAll = false
                };
            end);
            local l_CurrentThreadId_0 = l_props_2.CurrentThreadId;
            local l_frameColumn_0 = v89.frameColumn;
            l_props_2.setCurrentFrameNumber(l_CurrentThreadId_0, l_frameColumn_0);
            local l_DebuggerUIService_0 = game:GetService("DebuggerUIService");
            v79.props.Analytics:report(v12.CallstackChangeFrame, "CallstackComponent");
            if not (not ((v89.scriptGUID ~= "" and v89.sourceColumn ~= "") and v89.lineColumn ~= "") or not l_frameColumn_0) then
                if l_frameColumn_0 > 1 then
                    l_DebuggerUIService_0:SetScriptLineMarker(v89.scriptGUID, l_props_2.CurrentDebuggerConnectionId, v89.lineColumn, false);
                else
                    l_DebuggerUIService_0:RemoveScriptLineMarkers(l_props_2.CurrentDebuggerConnectionId, false);
                end;
                l_DebuggerUIService_0:OpenScriptAtLine(v89.scriptGUID, l_props_2.CurrentDebuggerConnectionId, v89.lineColumn, false);
                l_props_2.onCurrentFrameChanged(l_props_2.CurrentDebuggerConnectionId, l_CurrentThreadId_0, l_frameColumn_0);
            end;
        end;
    end;
    v79.rowToString = function(v94)
        local v95 = "";
        for _, v97 in pairs(v79.props.ColumnFilter) do
            if typeof(v94[v37[v97]]) == "EnumItem" then
                v95 = v95 .. v94[v37[v97]].Name .. "\t";
            else
                v95 = v95 .. v94[v37[v97]] .. "\t";
            end;
        end;
        return v95;
    end;
    v79.copySelectedRows = function()
        local l_selectedRows_0 = v79.state.selectedRows;
        if #l_selectedRows_0 == 0 then
            return ;
        else
            local v99 = "";
            for _, v101 in ipairs(l_selectedRows_0) do
                if #v79.getTreeChildren(v101) == 0 then
                    v99 = v99 .. v79.rowToString(v101) .. "\n";
                else
                    v99 = v99 .. v101.arrowColumn .. "\n";
                    for _, v103 in ipairs(v101.children) do
                        v99 = v99 .. v79.rowToString(v103) .. "\n";
                    end;
                end;
            end;
            l_StudioService_0:CopyToClipboard(v99);
            return ;
        end;
    end;
    v79.selectAllRows = function()
        local l_props_3 = v79.props;
        local v105 = {};
        if #v79.state.selectedRows == 1 then
            local v106 = v79.state.selectedRows[1];
            if v106.threadId and v106.threadId ~= l_props_3.CurrentThreadId then
                return ;
            end;
        end;
        for _, v108 in ipairs(l_props_3.RootItems) do
            if l_props_3.CurrentThreadId == v108.threadId then
                for _, v110 in ipairs(v79.getTreeChildren(v108)) do
                    table.insert(v105, v110);
                end;
            end;
        end;
        v79:setState(function(_)
            return {
                selectedRows = v105,
                selectAll = true
            };
        end);
    end;
    v79.onMenuActionSelected = function(v112)
        local l_Id_0 = v112.Id;
        if l_Id_0 == v33.CallstackActionIds.CopySelected then
            v79.copySelectedRows();
            return ;
        else
            if l_Id_0 == v33.CallstackActionIds.SelectAll then
                v79.selectAllRows();
            end;
            return ;
        end;
    end;
    v79.onRightClick = function(v114)
        if not v79.state.selectAll or v114.item.threadId and v114.item.threadId ~= v79.props.CurrentThreadId then
            v79:setState(function(_)
                return {
                    selectedRows = {
                        v114.item
                    },
                    selectAll = false
                };
            end);
        end;
        local l_props_4 = v79.props;
        l_showContextMenu_0(l_props_4.Plugin:get(), v30.getCallstackActions(l_props_4.Localization, v79.onMenuActionSelected), v33.CallstackActionsOrder);
    end;
    v79.onExpansionChange = function(v117)
        for v118, _ in pairs(v117) do
            local l_CurrentDebuggerConnectionId_0 = v79.props.CurrentDebuggerConnectionId;
            local l_CurrentDST_0 = v79.props.CurrentDST;
            local l_ConnectionById_0 = game:GetService("DebuggerConnectionManager"):GetConnectionById(l_CurrentDebuggerConnectionId_0);
            local v123 = v118.children[1];
            local v124 = v123.lineColumn ~= -1;
            local l_threadId_1 = v118.threadId;
            if not v124 then
                local l_CrossDMScriptChangeListener_0 = game:GetService("CrossDMScriptChangeListener");
                local l_l_ConnectionById_0_ThreadById_0 = l_ConnectionById_0:GetThreadById(l_threadId_1);
                v79.props.onPopulateCallstackThreadThunk(l_l_ConnectionById_0_ThreadById_0, l_ConnectionById_0, l_CurrentDST_0, l_CrossDMScriptChangeListener_0, function()
                    if l_CurrentDST_0 == v79.props.CurrentDST then
                        v79.loadThreadData(l_l_ConnectionById_0_ThreadById_0, l_CurrentDebuggerConnectionId_0, v79);
                    end;
                end);
            else
                local l_DebuggerUIService_1 = game:GetService("DebuggerUIService");
                l_DebuggerUIService_1:OpenScriptAtLine(v123.scriptGUID, l_CurrentDebuggerConnectionId_0, v123.lineColumn, false);
                l_DebuggerUIService_1:SetScriptLineMarker(v123.scriptGUID, l_CurrentDebuggerConnectionId_0, v123.lineColumn, true);
                v79.props.onLoadAllVariablesForThreadAndFrame(l_threadId_1, l_ConnectionById_0, 0, l_DebuggerUIService_1);
            end;
        end;
    end;
    v79.getTreeChildren = function(v129)
        return v129.children or {};
    end;
    v79.loadThreadData = function(v130, v131)
        local l_DebuggerUIService_2 = game:GetService("DebuggerUIService");
        v79.props.setCurrentFrameNumber(v130.ThreadId, 1);
        v79.props.onCurrentFrameChanged(v131, v130.ThreadId, 1);
        local l_v130_Frame_0 = v130:GetFrame(0);
        l_DebuggerUIService_2:SetScriptLineMarker(l_v130_Frame_0.Script, v131, l_v130_Frame_0.Line, true);
        l_DebuggerUIService_2:OpenScriptAtLine(l_v130_Frame_0.Script, v131, l_v130_Frame_0.Line, false);
    end;
    v79.onStepOver = function()
        v79.props.onStepAction(v33.StepActionIds.stepOverActionV2, v79.props.CurrentDebuggerConnectionId, v79.props.CurrentThreadId);
    end;
    v79.onStepInto = function()
        v79.props.onStepAction(v33.StepActionIds.stepIntoActionV2, v79.props.CurrentDebuggerConnectionId, v79.props.CurrentThreadId);
    end;
    v79.onStepOut = function()
        v79.props.onStepAction(v33.StepActionIds.stepOutActionV2, v79.props.CurrentDebuggerConnectionId, v79.props.CurrentThreadId);
    end;
end;
v32.didUpdate = function(v134, v135)
    local l_props_5 = v134.props;
    local v137 = #l_props_5.ColumnFilter + #v36;
    if #l_props_5.ColumnFilter ~= #v135.ColumnFilter and #v134.state.sizes ~= v137 then
        local v138 = {};
        local v139 = #v135.ColumnFilter + #v36;
        local v140 = v4.List.toSet(l_props_5.ColumnFilter);
        local v141 = v24.fetchOldColumnSizes(v139, v135.ColumnFilter, v36, v134.state.sizes);
        v138 = if v137 < v139 then v24.updatedSizesAfterRemovingColumns(v137, v24.fetchDeletedColumnsSize(#v36, v139, v135.ColumnFilter, v141, v140), v141, v36, l_props_5.ColumnFilter) else v24.updatedSizesAfterAddingColumns(v137, v139, v141, l_props_5.ColumnFilter, v36);
        do
            local l_v138_0 = v138;
            v134:setState(function(_)
                return {
                    sizes = l_v138_0
                };
            end);
        end;
    end;
end;
v32.render = function(v144)
    local l_props_6 = v144.props;
    local l_Localization_1 = l_props_6.Localization;
    local l_Stylizer_1 = v144.props.Stylizer;
    local v148 = l_props_6.ColumnFilter or {};
    local v149 = {
        {
            Name = "",
            Key = v36[1]
        }
    };
    for _, v151 in ipairs(v148) do
        table.insert(v149, {
            Name = l_Localization_1:getText("Callstack", v151),
            Key = v37[v151],
            Tooltip = l_Localization_1:getText("Callstack", v151 .. "Tooltip") or nil
        });
    end;
    local l_sizes_0 = v144.state.sizes;
    local v155 = l_map_0(v149, function(v153, v154)
        return l_join_0(v153, {
            Width = l_sizes_0[v154]
        });
    end);
    local v156 = v33.HEADER_HEIGHT + v33.BUTTON_PADDING * 2;
    local l_createElement_0 = v1.createElement;
    local l_l_Pane_0_0 = l_Pane_0;
    local v159 = {
        Size = UDim2.fromScale(1, 1),
        Style = "Box",
        Layout = Enum.FillDirection.Vertical
    };
    local v160 = {};
    local l_createElement_1 = v1.createElement;
    local l_l_Pane_0_1 = l_Pane_0;
    local v163 = {
        Size = UDim2.new(1, 0, 0, v156),
        Spacing = v33.BUTTON_PADDING,
        Padding = v33.BUTTON_PADDING,
        LayoutOrder = 1,
        Style = "Box",
        Layout = Enum.FillDirection.Horizontal,
        VerticalAlignment = Enum.VerticalAlignment.Center,
        HorizontalAlignment = Enum.HorizontalAlignment.Left
    };
    local v164 = {};
    local l_createElement_2 = v1.createElement;
    local l_l_Pane_0_2 = l_Pane_0;
    local v167 = {
        Size = UDim2.new(0.5, 0, 0, v33.HEADER_HEIGHT),
        LayoutOrder = 1,
        Style = "Box",
        Layout = Enum.FillDirection.Horizontal,
        VerticalAlignment = Enum.VerticalAlignment.Center,
        HorizontalAlignment = Enum.HorizontalAlignment.Left
    };
    local v168 = {};
    local l_createElement_3 = v1.createElement;
    local l_l_IconButton_0_0 = l_IconButton_0;
    local v171 = {
        Size = UDim2.new(0, v33.BUTTON_SIZE, 0, v33.BUTTON_SIZE),
        LayoutOrder = 1,
        LeftIcon = "rbxasset://textures/Debugger/Step-In.png",
        TooltipText = l_Localization_1:getText("Common", "stepIntoActionV2"),
        OnClick = v144.onStepInto
    };
    local v172 = true;
    if v144.props.CurrentThreadId ~= nil then
        v172 = v144.props.HitException;
    end;
    v171.Disabled = v172;
    v168.StepIntoButton = l_createElement_3(l_l_IconButton_0_0, v171);
    l_createElement_3 = v1.createElement;
    l_l_IconButton_0_0 = l_IconButton_0;
    v171 = {
        Size = UDim2.new(0, v33.BUTTON_SIZE, 0, v33.BUTTON_SIZE),
        LayoutOrder = 2,
        LeftIcon = "rbxasset://textures/Debugger/Step-Over.png",
        TooltipText = l_Localization_1:getText("Common", "stepOverActionV2"),
        OnClick = v144.onStepOver
    };
    v172 = true;
    if v144.props.CurrentThreadId ~= nil then
        v172 = v144.props.HitException;
    end;
    v171.Disabled = v172;
    v168.StepOverButton = l_createElement_3(l_l_IconButton_0_0, v171);
    l_createElement_3 = v1.createElement;
    l_l_IconButton_0_0 = l_IconButton_0;
    v171 = {
        Size = UDim2.new(0, v33.BUTTON_SIZE, 0, v33.BUTTON_SIZE),
        LayoutOrder = 3,
        LeftIcon = "rbxasset://textures/Debugger/Step-Out.png",
        TooltipText = l_Localization_1:getText("Common", "stepOutActionV2"),
        OnClick = v144.onStepOut
    };
    v172 = true;
    if v144.props.CurrentThreadId ~= nil then
        v172 = v144.props.HitException;
    end;
    v171.Disabled = v172;
    v168.StepOutButton = l_createElement_3(l_l_IconButton_0_0, v171);
    v164.ButtonContainer = l_createElement_2(l_l_Pane_0_2, v167, v168);
    v164.ColContainer = v1.createElement(l_Pane_0, {
        Size = UDim2.new(0.5, 0, 0, v33.HEADER_HEIGHT),
        LayoutOrder = 2,
        Style = "Box",
        Layout = Enum.FillDirection.Horizontal,
        VerticalAlignment = Enum.VerticalAlignment.Center,
        HorizontalAlignment = Enum.HorizontalAlignment.Right
    }, {
        ColumnDropdown = v1.createElement(v5, {
            LayoutOrder = 1,
            AutomaticSize = Enum.AutomaticSize.X
        })
    });
    v160.HeaderView = l_createElement_1(l_l_Pane_0_1, v163, v164);
    v160.BodyView = v1.createElement(l_Pane_0, {
        Size = UDim2.new(1, 0, 1, -v156),
        LayoutOrder = 2,
        Style = "Box"
    }, {
        TableView = v1.createElement(l_TreeTable_0, {
            Scroll = true,
            Size = UDim2.fromScale(1, 1),
            Columns = v155,
            RootItems = l_props_6.RootItems,
            Stylizer = l_Stylizer_1,
            Expansion = l_props_6.ExpansionTable,
            GetChildren = v144.getTreeChildren,
            DisableTooltip = false,
            OnSelectionChange = v144.onSelectionChange,
            RightClick = v144.onRightClick,
            OnExpansionChange = v144.onExpansionChange,
            FullSpan = true,
            HighlightedRows = v144.state.selectedRows,
            OnColumnSizesChange = v144.OnColumnSizesChange,
            UseDeficit = false,
            UseScale = true,
            ClampSize = true,
            Padding = 1,
            ColumnHeaderHeight = v33.COLUMN_HEADER_HEIGHT,
            RowHeight = v33.ROW_HEIGHT,
            ExpandOnDoubleClick = true
        })
    });
    return l_createElement_0(l_l_Pane_0_0, v159, v160);
end;
return (v2.connect(function(v173, _)
    local l_Common_0 = v173.Common;
    local v176 = l_Common_0.debuggerConnectionIdToCurrentThreadId[l_Common_0.currentDebuggerConnectionId];
    local l_Callstack_0 = v173.Callstack;
    if v176 == nil then
        return {
            RootItems = {},
            ExpansionTable = {},
            CurrentThreadId = nil,
            ColumnFilter = l_Callstack_0.listOfEnabledColumns
        };
    else
        local v178 = l_Callstack_0.stateTokenToCallstackVars[l_Common_0.debuggerConnectionIdToDST[l_Common_0.currentDebuggerConnectionId]];
        assert(v178);
        local l_threadList_0 = v178.threadList;
        local v180 = {};
        local v181 = {};
        for _, v183 in ipairs(l_threadList_0) do
            local v184 = v64(v183, v178, l_Common_0, v173.ScriptInfo);
            assert(v184 ~= nil);
            table.insert(v180, v184);
            if v183.threadId == v176 then
                v181[v184] = true;
            end;
        end;
        return {
            RootItems = v180,
            CurrentThreadId = v176,
            ExpansionTable = v181,
            ColumnFilter = l_deepCopy_0(l_Callstack_0.listOfEnabledColumns),
            CurrentDebuggerConnectionId = l_Common_0.currentDebuggerConnectionId,
            CurrentDST = l_Common_0.debuggerConnectionIdToDST[l_Common_0.currentDebuggerConnectionId],
            HitException = not not v176 and l_Common_0.hitException[v176]
        };
    end;
end, function(v185)
    return {
        setCurrentFrameNumber = function(v186, v187)
            return v185(v26(v186, v187));
        end,
        onCurrentFrameChanged = function(v188, v189, v190)
            return v185(v28(v189, game:GetService("DebuggerConnectionManager"):GetConnectionById(v188), v190 - 1, (game:GetService("DebuggerUIService"))));
        end,
        onPopulateCallstackThreadThunk = function(v191, v192, v193, v194, v195)
            return v185(v29(v191, v192, v193, v194, v195));
        end,
        onLoadAllVariablesForThreadAndFrame = function(v196, v197, v198, v199)
            return v185(v28(v196, v197, v198, v199));
        end,
        onColumnFilterChange = function(v200)
            return v185(v27(v200));
        end,
        onStepAction = function(v201, v202, v203)
            return v185(v34(v201, "CallstackComponent", v202, v203));
        end
    };
end)((l_withContext_0({
    Analytics = l_Analytics_0,
    Localization = l_Localization_0,
    Stylizer = l_Stylizer_0,
    PluginActions = l_PluginActions_0,
    Plugin = l_Plugin_0
})(v32))));


local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Packages.Roact);
local v2 = require(l_Parent_0.Packages.RoactRodux);
local v3 = require(l_Parent_0.Packages.Framework);
local l_ContextServices_0 = v3.ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local l_Localization_0 = l_ContextServices_0.Localization;
local l_Analytics_0 = l_ContextServices_0.Analytics;
local v8 = require(l_Parent_0.Src.Resources.AnalyticsEventNames);
local l_Stylizer_0 = v3.Style.Stylizer;
local v10 = require(l_Parent_0.Src.Components.Common.DropdownField);
local v11 = require(l_Parent_0.Src.Actions.Callstack.ColumnFilterChange);
local v12 = require(l_Parent_0.Src.Models.Callstack.ColumnEnum);
local v13 = require(l_Parent_0.Src.Util.flatListToString);
local v14 = v1.PureComponent:extend("CallstackDropdownField");
local _ = function(v15, v16)
    for _, v18 in pairs(v15) do
        if v18 == v16 then
            return true;
        end;
    end;
    return false;
end;
v14.init = function(v20)
    v20.keyColumns = {
        [1] = "AllColumns",
        [2] = v12.Frame,
        [3] = v12.Source,
        [4] = v12.Function,
        [5] = v12.Line
    };
    v20.clickCallback = function(v21)
        v20.props.onColumnFilterChange(v21);
        v20.props.Analytics:report(v8.CallstackColumnsEdited, v13(v21));
    end;
end;
v14.render = function(v22)
    local l_props_0 = v22.props;
    return v1.createElement(v10, {
        KeyTexts = v22.keyColumns,
        ClickCallback = v22.clickCallback,
        KeyStates = l_props_0.ColumnStates,
        Localization = l_props_0.Localization,
        Style = l_props_0.Stylizer,
        Widget = "Callstack",
        DropdownWidth = 200,
        HamburgerMenu = true,
        ShouldShowDropdownIcon = false
    });
end;
return (v2.connect(function(v24, _)
    local l_listOfEnabledColumns_0 = v24.Callstack.listOfEnabledColumns;
    local v27 = {};
    local l_Frame_0 = v12.Frame;
    local v29;
    for _, v31 in pairs(l_listOfEnabledColumns_0) do
        if v31 == l_Frame_0 then
            v29 = true;
            goto label0 --[[  true, false  ]];
        end;
    end;
    v29 = false;
    ::label0::;
    v27[2] = v29;
    l_Frame_0 = v12.Source;
    for _, v33 in pairs(l_listOfEnabledColumns_0) do
        if v33 == l_Frame_0 then
            v29 = true;
            goto label1 --[[  true, false  ]];
        end;
    end;
    v29 = false;
    ::label1::;
    v27[3] = v29;
    l_Frame_0 = v12.Function;
    for _, v35 in pairs(l_listOfEnabledColumns_0) do
        if v35 == l_Frame_0 then
            v29 = true;
            goto label2 --[[  true, false  ]];
        end;
    end;
    v29 = false;
    ::label2::;
    v27[4] = v29;
    l_Frame_0 = v12.Line;
    for _, v37 in pairs(l_listOfEnabledColumns_0) do
        if v37 == l_Frame_0 then
            v29 = true;
            goto label3 --[[  true, false  ]];
        end;
    end;
    v29 = false;
    ::label3::;
    v27[5] = v29;
    return {
        ColumnStates = v27
    };
end, function(v38)
    return {
        onColumnFilterChange = function(v39)
            return v38(v11(v39));
        end
    };
end)((l_withContext_0({
    Analytics = l_Analytics_0,
    Localization = l_Localization_0,
    Stylizer = l_Stylizer_0
})(v14))));


local l_StudioFixPluginWidgetLocalizedIds_0 = game:GetFastFlag("StudioFixPluginWidgetLocalizedIds");
local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local v2 = require(l_Parent_0.Packages.Roact);
local v3 = require(l_Parent_0.Packages.Framework);
local l_DockWidget_0 = v3.UI.DockWidget;
local l_ContextServices_0 = v3.ContextServices;
local l_withContext_0 = l_ContextServices_0.withContext;
local l_Localization_0 = l_ContextServices_0.Localization;
local v8 = require(l_Parent_0.Src.Components.Callstack.CallstackComponent);
local v9 = v2.PureComponent:extend("CallstackWindow");
v9.render = function(v10)
    local l_props_0 = v10.props;
    return v2.createElement(l_DockWidget_0, {
        Id = if not l_StudioFixPluginWidgetLocalizedIds_0 then nil else "Callstack",
        Title = l_props_0.Localization:getText("Callstack", "WindowName"),
        ZIndexBehavior = Enum.ZIndexBehavior.Sibling,
        InitialDockState = Enum.InitialDockState.Bottom,
        Size = Vector2.new(640, 480),
        MinSize = Vector2.new(250, 200),
        Enabled = l_props_0.Enabled,
        OnClose = l_props_0.OnClose,
        ShouldRestore = true,
        OnWidgetRestored = l_props_0.OnRestore,
        [v2.Change.Enabled] = l_props_0.OnWidgetEnabledChanged
    }, {
        Callstack = v2.createElement(v8)
    });
end;
return (l_withContext_0({
    Localization = l_Localization_0
})(v9));


local l_Parent_0 = script.Parent.Parent.Parent.Parent;
local v1 = require(l_Parent_0.Packages.Roact);
local v2 = require(l_Parent_0.Packages.RoactRodux);
local v3 = require(l_Parent_0.Packages.Framework);
local l_ContextServices_0 = v3.ContextServices;
local l_Analytics_0 = l_ContextServices_0.Analytics;
local l_PluginActions_0 = l_ContextServices_0.PluginActions;
local l_UI_0 = v3.UI;
local l_PluginButton_0 = l_UI_0.PluginButton;
local l_PluginToolbar_0 = l_UI_0.PluginToolbar;
local v10 = require(l_Parent_0.Src.Util.Constants);
local v11 = require(l_Parent_0.Src.Thunks.Callstack.StepHandlers);
local v12 = require(l_Parent_0.Src.Actions.Common.SetPausedState);
local v13 = v1.PureComponent:extend("DebuggerToolbarButtons");
v13.init = function(v14, v15)
    v14.onResume = function()
        v15.onSetPausedState(false);
        game:GetService("DebuggerUIService"):Resume();
    end;
    v14.onPause = function()
        game:GetService("DebuggerUIService"):Pause();
    end;
    v14.onStepOver = function()
        v14.props.onStepAction(v10.StepActionIds.stepOverActionV2, "ToolbarButton", v14.props.CurrentDebuggerConnectionId, v14.props.CurrentThreadId);
    end;
    v14.onStepInto = function()
        v14.props.onStepAction(v10.StepActionIds.stepIntoActionV2, "ToolbarButton", v14.props.CurrentDebuggerConnectionId, v14.props.CurrentThreadId);
    end;
    v14.onStepOut = function()
        v14.props.onStepAction(v10.StepActionIds.stepOutActionV2, "ToolbarButton", v14.props.CurrentDebuggerConnectionId, v14.props.CurrentThreadId);
    end;
end;
v13.addAction = function(v16, v17, v18)
    if v17 then
        v17.Enabled = true;
        table.insert(v16.shortcuts, v17);
        table.insert(v16.connections, v17.Triggered:Connect(v18));
    end;
end;
v13.didMount = function(v19)
    local l_PluginActions_1 = v19.props.PluginActions;
    v19.connections = {};
    v19.shortcuts = {};
    v19:addAction(l_PluginActions_1:get(v10.StepActionIds.stepOverActionV2), function()
        v19.props.onStepAction(v10.StepActionIds.stepOverActionV2, "PluginAction", v19.props.CurrentDebuggerConnectionId, v19.props.CurrentThreadId);
    end);
    v19:addAction(l_PluginActions_1:get(v10.StepActionIds.stepIntoActionV2), function()
        v19.props.onStepAction(v10.StepActionIds.stepIntoActionV2, "PluginAction", v19.props.CurrentDebuggerConnectionId, v19.props.CurrentThreadId);
    end);
    v19:addAction(l_PluginActions_1:get(v10.StepActionIds.stepOutActionV2), function()
        v19.props.onStepAction(v10.StepActionIds.stepOutActionV2, "PluginAction", v19.props.CurrentDebuggerConnectionId, v19.props.CurrentThreadId);
    end);
    v19:addAction(l_PluginActions_1:get(v10.StepActionIds.simulationResumeActionV2), function()
        v19.onResume();
    end);
end;
v13.renderButtons = function(v21, v22)
    local l_DebuggerUIService_0 = game:GetService("DebuggerUIService");
    local v24 = false;
    if v21.props.CurrentDebuggerConnectionId ~= v10.kInvalidDebuggerConnectionId then
        v24 = l_DebuggerUIService_0:IsConnectionForPlayDataModel(v21.props.CurrentDebuggerConnectionId);
    end;
    local l_IsPaused_0 = v21.props.IsPaused;
    local l_HitException_0 = v21.props.HitException;
    local v27 = {
        ResumeButton = v1.createElement(l_PluginButton_0, {
            Name = "simulationResumeActionV2",
            Toolbar = v22,
            Active = false,
            Enabled = l_IsPaused_0,
            Title = "Resume",
            Tooltip = "",
            icon = "rbxlocaltheme://Resume",
            OnClick = v21.onResume,
            ClickableWhenViewportHidden = true
        }),
        PauseButton = v1.createElement(l_PluginButton_0, {
            Name = "simulationPauseActionV2",
            Toolbar = v22,
            Active = false,
            Enabled = not l_IsPaused_0 and v24,
            Title = "Pause",
            Tooltip = "",
            icon = "rbxlocaltheme://Pause",
            OnClick = v21.onPause,
            ClickableWhenViewportHidden = true
        })
    };
    local l_createElement_0 = v1.createElement;
    local l_l_PluginButton_0_0 = l_PluginButton_0;
    local v30 = {
        Name = "stepOverActionV2",
        Toolbar = v22,
        Active = false
    };
    local v31 = false;
    if v21.props.CurrentThreadId ~= nil then
        v31 = not l_HitException_0;
    end;
    v30.Enabled = v31;
    v30.Title = "StepOver";
    v30.Tooltip = "";
    v30.icon = "rbxlocaltheme://StepOver";
    v30.OnClick = v21.onStepOver;
    v30.ClickableWhenViewportHidden = true;
    v27.StepOverButton = l_createElement_0(l_l_PluginButton_0_0, v30);
    l_createElement_0 = v1.createElement;
    l_l_PluginButton_0_0 = l_PluginButton_0;
    v30 = {
        Name = "stepIntoActionV2",
        Toolbar = v22,
        Active = false
    };
    v31 = false;
    if v21.props.CurrentThreadId ~= nil then
        v31 = not l_HitException_0;
    end;
    v30.Enabled = v31;
    v30.Title = "StepInto";
    v30.Tooltip = "";
    v30.icon = "rbxlocaltheme://StepInto";
    v30.OnClick = v21.onStepInto;
    v30.ClickableWhenViewportHidden = true;
    v27.StepIntoButton = l_createElement_0(l_l_PluginButton_0_0, v30);
    l_createElement_0 = v1.createElement;
    l_l_PluginButton_0_0 = l_PluginButton_0;
    v30 = {
        Name = "stepOutActionV2",
        Toolbar = v22,
        Active = false
    };
    v31 = false;
    if v21.props.CurrentThreadId ~= nil then
        v31 = not l_HitException_0;
    end;
    v30.Enabled = v31;
    v30.Title = "StepOut";
    v30.Tooltip = "";
    v30.icon = "rbxlocaltheme://StepOut";
    v30.OnClick = v21.onStepOut;
    v30.ClickableWhenViewportHidden = true;
    v27.StepOutButton = l_createElement_0(l_l_PluginButton_0_0, v30);
    return v27;
end;
v13.render = function(v32)
    if v32.shortcuts then
        for _, v34 in pairs(v32.shortcuts) do
            v34.Enabled = v32.props.IsPaused;
        end;
    end;
    return v1.createElement(l_PluginToolbar_0, {
        Title = "Debugger",
        RenderButtons = function(v35)
            return v32:renderButtons(v35);
        end
    });
end;
return (v2.connect(function(v36, _)
    local l_Common_0 = v36.Common;
    local l_isPaused_0 = l_Common_0.isPaused;
    local v40 = l_Common_0.debuggerConnectionIdToCurrentThreadId[l_Common_0.currentDebuggerConnectionId];
    return {
        IsPaused = l_isPaused_0,
        CurrentThreadId = v40,
        CurrentDebuggerConnectionId = l_Common_0.currentDebuggerConnectionId,
        HitException = not not v40 and l_Common_0.hitException[v40]
    };
end, function(v41)
    return {
        onSetPausedState = function(v42)
            return v41(v12(v42));
        end,
        onStepAction = function(v43, v44, v45, v46)
            return v41(v11(v43, v44, v45, v46));
        end
    };
end)((l_ContextServices_0.withContext({
    Analytics = l_Analytics_0,
    PluginActions = l_PluginActions_0
})(v13))));