local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AvatarScreen);
local v2 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AvatarScreenProperties);
local v3 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AvatarRoute);
local v4 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.RouteInfo);
local v5 = require(l_Modules_0.AvatarExperience.Common.Debug.LogTree).logger("ax.rn.route");
local v6 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.NavigationUtils);
local function v8(v7)
    return v4.new(v7.routeName, v7.key, v7.params);
end;
local function v9(v10, v11, v12)
    if v10.routeName == v11 then
        return v10, v12;
    else
        local v13 = v10.routes or {};
        local v14 = v10.index or 0;
        for v15, v16 in v13, nil, nil do
            local v17, v18 = v9(v16, v11, v15 == v14);
            if v17 then
                return v17, v12 and v18;
            end;
        end;
        return nil, false;
    end;
end;
local function v23(v19, v20)
    local v21, v22 = v9(v19.state or {}, v20, true);
    if v21 == nil then
        if not _G.__TESTEZ_RUNNING_TEST__ then
            warn(v20 .. " not found in current navigation state");
        end;
        v21 = {};
    end;
    return v21, v22;
end;
return function(v24, v25)
    local v26 = nil;
    local v27 = nil;
    local v28 = {};
    local v29, v30 = v23(v24, v1.AvatarExperienceMainStackNavigator);
    local l_routes_0 = v29.routes;
    if not (not l_routes_0 or not v29.index) then
        local v32 = v6.getActiveScreenNavigationState(l_routes_0[v29.index]);
        v26 = v4.new(v32.routeName, v32.key, v32.params);
        for v33 = v29.index, 1, -1 do
            local v34 = v6.getActiveScreenNavigationState(l_routes_0[v33]);
            if #v28 < v3.maxPreviousCount and v33 < v29.index then
                table.insert(v28, v8(v34));
            end;
            if not v2[v34.routeName].isTransparent then
                v27 = v4.new(v34.routeName, v34.key, v34.params);
                break;
            end;
        end;
    end;
    local v35 = v3.new({
        isVisible = v25,
        isOverlayVisible = not v30,
        current = v26,
        previousPages = v28,
        opaque = v27
    });
    v5:debug("makeAvatarRoute: {}", v35);
    return v35;
end;


local l_CoreGui_0 = game:GetService("CoreGui");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = l_CoreGui_0.RobloxGui.Modules;
local v3 = require(l_CorePackages_0.Roact);
local v4 = require(l_CorePackages_0.RoactRodux);
local v5 = require(l_CorePackages_0.Cryo);
local v6 = require(l_Modules_0.LuaApp.AppPage);
local v7 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AvatarScreen);
local v8 = require(l_Modules_0.LuaApp.AppPageProperties);
local v9 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.RouteInfo);
local v10 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AvatarRoute);
local v11 = require(l_Modules_0.AvatarExperience.Common.isComponent);
local v12 = require(l_CorePackages_0.Workspace.Packages.ArgCheck);
local v13 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AvatarRouteContext);
local v14 = require(l_Modules_0.AvatarExperience.Common.withContextValue);
local _ = require(l_Modules_0.AvatarExperience.Common.AvatarExperienceState);
local _ = require(l_Modules_0.LuaApp.Reducers.Navigation);
local _ = require(l_Modules_0.AvatarExperience.Common.Types);
local l_SwitchTab_0 = require(l_CorePackages_0.Workspace.Packages.RobloxAppEnums).SwitchTab;
local function _(v19)
    local v20 = true;
    if v19 ~= v7.AvatarExperienceRoot then
        v20 = v19 == l_SwitchTab_0.AvatarExperienceTab;
    end;
    return v20;
end;
return function(v22)
    v12.assert(v11(v22), "withAppRoute must be called with a Roact component");
    local function v27(v23)
        for v24 = #v23, 1, -1 do
            local v25 = v23[v24];
            local v26 = v8[v25.name];
            if not (v26 ~= nil and v26.renderUnderlyingPage) then
                return v25;
            end;
        end;
        return {
            name = v7.None
        };
    end;
    local function _(v28)
        local v29 = true;
        if v28.name ~= v6.AvatarExperienceWrapper then
            v29 = v28.name == v6.AvatarExperienceWrapperTransparent;
        end;
        return v29;
    end;
    local function v36(v31)
        local l_name_0 = v31.name;
        local l_l_name_0_0 = l_name_0;
        if v31.detail then
            l_l_name_0_0 = l_l_name_0_0 .. ":" .. v31.detail;
        end;
        local v34 = v31.extraProps or {};
        local v35 = true;
        if v31.name ~= v6.AvatarExperienceWrapper then
            v35 = v31.name == v6.AvatarExperienceWrapperTransparent;
        end;
        if v35 then
            l_name_0 = v34.routeName;
            v34 = v34.params;
        end;
        return v9.new(l_name_0, l_l_name_0_0, (v5.Dictionary.join(v34, {
            detail = v31.detail
        })));
    end;
    local v37 = v3.PureComponent:extend("AppRouteWrapper");
    v37.getAvatarRoute = function(v38)
        local l_currentNavigationRoute_0 = v38.props.currentNavigationRoute;
        local v40 = l_currentNavigationRoute_0[#l_currentNavigationRoute_0];
        local l_name_1 = v40.name;
        local v42 = true;
        if l_name_1 ~= v7.AvatarExperienceRoot then
            v42 = l_name_1 == l_SwitchTab_0.AvatarExperienceTab;
        end;
        if not v42 then
            v42 = v27(l_currentNavigationRoute_0);
            local l_name_2 = v42.name;
            l_name_1 = true;
            if l_name_2 ~= v7.AvatarExperienceRoot then
                l_name_1 = l_name_2 == l_SwitchTab_0.AvatarExperienceTab;
            end;
            if not l_name_1 then
                l_name_1 = v10.new;
                l_name_2 = {
                    current = v36(v40),
                    opaque = v36(v42)
                };
                local v44 = true;
                if v40.name ~= v6.AvatarExperienceWrapper then
                    v44 = v40.name == v6.AvatarExperienceWrapperTransparent;
                end;
                if not v44 then
                    v44 = true;
                    if v42.name ~= v6.AvatarExperienceWrapper then
                        v44 = v42.name == v6.AvatarExperienceWrapperTransparent;
                    end;
                end;
                l_name_2.isVisible = v44;
                l_name_2.isOverlayVisible = v38.props.centralOverlayShowing;
                return l_name_1(l_name_2);
            else
                return v10.new({
                    current = v36(v40),
                    opaque = v38.props.avatarRoute.opaque,
                    isVisible = true,
                    isOverlayVisible = v38.props.centralOverlayShowing
                });
            end;
        else
            return v38.props.avatarRoute;
        end;
    end;
    v37.render = function(v45)
        return v3.createElement(v22, v5.Dictionary.join(v45.props, {
            avatarRoute = v45:getAvatarRoute(),
            currentNavigationRoute = v5.None,
            centralOverlayShowing = v5.None
        }));
    end;
    return (v14(v4.connect(function(v46, v47)
        local _ = nil;
        local _ = nil;
        return {
            currentNavigationRoute = v46.Navigation.history[#v46.Navigation.history],
            avatarRoute = v47.avatarRoute or v46.AvatarExperience.AvatarScene.AvatarRoute,
            centralOverlayShowing = v46.CentralOverlay.OverlayType ~= nil
        };
    end, nil)(v37), v13.Consumer, "avatarRoute", {
        required = false
    }));
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AvatarRouteContext);
local v2 = require(l_Modules_0.AvatarExperience.Common.withContextValue);
return function(v3, v4)
    return v2(v3, v1.Consumer, "avatarRoute", v4);
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_CorePackages_0.Roact);
local v3 = require(l_CorePackages_0.Cryo);
local v4 = require(l_CorePackages_0.Workspace.Packages.ArgCheck);
local v5 = require(l_Modules_0.AvatarExperience.Common.isComponent);
return function(v6, v7)
    v4.assert(v5(v6), "withMappedNavigationParams must be called with a Roact component (stateful or functional)");
    local v8 = v7 or {};
    if v8.forwardRef == nil then
        v8.forwardRef = true;
    end;
    return function(v9)
        return v2.createElement(v6, v3.Dictionary.join(v9, v9.navigation.state.params or {}, {
            [v2.Ref] = not not v8.forwardRef and v9[v2.Ref] or v3.None
        }));
    end;
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_CorePackages_0.Cryo);
local v3 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.withAvatarRoute);
local v4 = require(l_Modules_0.AvatarExperience.Common.withMappedProps);
local function v6(v5)
    return v2.Dictionary.join(v5, {
        avatarRoute = v2.None,
        opaqueRoute = v5.avatarRoute.opaque
    });
end;
return function(v7)
    return v3(v4(v7, v6));
end;


local l_CoreGui_0 = game:GetService("CoreGui");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = l_CoreGui_0.RobloxGui.Modules;
local l_AppGuiService_0 = require(l_CorePackages_0.Workspace.Packages.RoactServiceTags).AppGuiService;
local v4 = require(l_Modules_0.LuaApp.Enum.NotificationType);
local l_RoactServices_0 = require(l_CorePackages_0.Workspace.Packages.RoactServices).RoactServices;
local v6 = require(l_CorePackages_0.Cryo);
local v7 = require(l_CorePackages_0.Roact);
local v8 = require(l_CorePackages_0.Packages.t);
local l_withNavigation_0 = require(l_CorePackages_0.RoactNavigation).withNavigation;
local v10 = require(l_Modules_0.AvatarExperience.Common.Components.AfterAvatarExperienceLoaded);
local v11 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AvatarRoute);
local v12 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.withAvatarRoute);
local v13 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.Utils.isAvatarRouteVisible);
local v14 = require(l_Modules_0.AvatarExperience.Common.Components.AvatarVRPanelWrapper);
local v15 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AvatarScreenProperties);
local v16 = require(l_Modules_0.AvatarExperience.Common.Debug.LogTree).logger("ax.rn.stackvis");
local l_IsVRAppBuild_0 = require(l_CorePackages_0.Workspace.Packages.AppCommonLib).IsVRAppBuild;
local v18 = require(l_Modules_0.AvatarExperience.Common.Components.with10ftUIPadding);
local l_FocusNavigationEventNameEnum_0 = require(l_CorePackages_0.Workspace.Packages.FocusNavigationUtils).FocusNavigationEventNameEnum;
local l_useEventMap_0 = require(l_CorePackages_0.Workspace.Packages.ReactFocusNavigation).useEventMap;
local l_GetFFlagEnableUseShowTopBar_0 = require(l_CorePackages_0.Workspace.Packages.SharedFlags).GetFFlagEnableUseShowTopBar;
local v22 = v7.PureComponent:extend("StackVisibilityWrapper");
v22.validateProps = v8.strictInterface({
    component = v8.union(v8.callback, v8.table),
    innerProps = v8.optional(v8.table),
    navigation = v8.table,
    designTokens = v8.any,
    eventMapRef = if not l_GetFFlagEnableUseShowTopBar_0() then nil else v8.any,
    guiService = v8.optional(v8.union(v8.Instance, v8.table)),
    avatarRoute = v11.Interface
});
v22.getRouteName = function(v23)
    return v23.props.navigation.state.routeName;
end;
v22.render = function(v24)
    local v25 = v24:getRouteName();
    local l_navigation_0 = v24.props.navigation;
    local l_avatarRoute_0 = v24.props.avatarRoute;
    local l_component_0 = v24.props.component;
    local l_innerProps_0 = v24.props.innerProps;
    local l_designTokens_0 = v24.props.designTokens;
    local l_topPadding_0 = l_designTokens_0.topPadding;
    local l_leftPadding_0 = l_designTokens_0.leftPadding;
    local l_bottomPadding_0 = l_designTokens_0.bottomPadding;
    local l_rightPadding_0 = l_designTokens_0.rightPadding;
    local v35 = if not l_GetFFlagEnableUseShowTopBar_0() then nil else v24.props.eventMapRef;
    local v36 = v13(v24.props);
    l_innerProps_0 = v6.Dictionary.join(l_innerProps_0, {
        navigation = l_navigation_0,
        avatarRoute = l_avatarRoute_0
    });
    v16:trace("[{}]: {}", not v36 and "NOT VISIBLE" or "VISIBLE", v25);
    if not l_IsVRAppBuild_0() then
        return v7.createElement("Frame", {
            Size = UDim2.new(1, l_rightPadding_0, 1, l_bottomPadding_0),
            Position = UDim2.fromOffset(l_leftPadding_0, l_topPadding_0),
            BackgroundTransparency = 1,
            ClipsDescendants = false,
            BorderSizePixel = 0,
            Visible = v36,
            ref = v35
        }, {
            StackScreen = v7.createElement(l_component_0, l_innerProps_0)
        });
    else
        return v7.createElement(v14, {
            visible = v36,
            roundedCornersFrame = v15[v25].VRPanelRoundedCorners,
            panelPlacement = v15[v25].VRPanelPlacement
        }, {
            StackScreen = v7.createElement(l_component_0, l_innerProps_0)
        });
    end;
end;
v22.didMount = function(v37)
    local v38 = v37:getRouteName();
    local l_guiService_0 = v37.props.guiService;
    if not (not l_guiService_0 or not v13(v37.props)) then
        l_guiService_0:BroadcastNotification(v38, v4.APP_READY);
    end;
end;
v22.didUpdate = function(v40, v41, _)
    local l_guiService_1 = v40.props.guiService;
    if not ((not l_guiService_1 or v13(v41)) or not v13(v40.props)) then
        l_guiService_1:BroadcastNotification(v40:getRouteName(), v4.APP_READY);
    end;
end;
v22 = v18((l_withNavigation_0((v12((l_RoactServices_0.connect({
    guiService = l_AppGuiService_0
})(v22)))))));
if l_GetFFlagEnableUseShowTopBar_0() then
    local v44 = {
        [Enum.KeyCode.ButtonB] = l_FocusNavigationEventNameEnum_0.NoOpEvent,
        [Enum.KeyCode.Escape] = l_FocusNavigationEventNameEnum_0.NoOpEvent
    };
    local l_v22_0 = v22;
    v22 = function(v46)
        return v7.createElement(l_v22_0, v6.Dictionary.join(v46, {
            eventMapRef = l_useEventMap_0(v44)
        }));
    end;
end;
return function(v47)
    v47 = v10(v47);
    return function(v48)
        return v7.createElement(v22, {
            component = v47,
            innerProps = v48,
            navigation = v48.navigation
        });
    end;
end;


local l_CoreGui_0 = game:GetService("CoreGui");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_UserInputService_0 = game:GetService("UserInputService");
local l_Modules_0 = l_CoreGui_0.RobloxGui.Modules;
local v4 = require(l_CorePackages_0.Otter);
local v5 = require(l_CorePackages_0.Roact);
local v6 = require(l_CorePackages_0.RoactRodux);
local v7 = require(l_CorePackages_0.Packages.t);
local v8 = require(l_CorePackages_0.UIBlox);
local l_isGamepadInput_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).isGamepadInput;
local v10 = require(l_CorePackages_0.Workspace.Packages.SharedFlags).GetFFlagMigrateRoactUtilsToReactUtils();
local l_Images_0 = v8.App.ImageSet.Images;
local l_withStyle_0 = v8.Style.withStyle;
local l_ImageSetLabel_0 = v8.Core.ImageSet.ImageSetLabel;
local v14 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AvatarScreen);
local v15 = require(l_Modules_0.AvatarExperience.Common.Constants);
local l_ExternalEventConnection_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).ExternalEventConnection;
local l_GamepadUtils_0 = require(l_CorePackages_0.Workspace.Packages.AppCommonLib).Utils.GamepadUtils;
local v18 = require(l_Modules_0.AvatarExperience.Common.Utils);
local v19 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.withAppRoute);
local v20 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AvatarRoute);
local v21 = l_Images_0["icons/actions/zoomIn"];
local v22 = Vector2.new(36, 36);
local v23 = l_Images_0["icons/controls/keys/xboxRS"];
local v24 = Vector2.new(36, 36);
local v25 = l_Images_0["component_assets/circle_49"];
local v26 = Vector2.new(49 + v24.X, (math.max(49, v24.Y)));
local v27 = {
    dampingRatio = 1,
    frequency = 4
};
local function _(v28)
    return l_isGamepadInput_0(v28.UserInputType);
end;
local function _(v30, v31)
    local v32 = v31[v30];
    local v33 = false;
    if typeof(v32) == "table" then
        v33 = v32.tag == v15.SceneGamepad.FullViewIndicatorTag;
    end;
    return v33;
end;
local function _(v35)
    if not v35 then
        return 1;
    else
        return 0;
    end;
end;
local v37 = v5.PureComponent:extend("FullViewIndicator");
v37.validateProps = v7.strictInterface({
    AnchorPoint = v7.Vector2,
    Position = v7.UDim2,
    LayoutOrder = v7.optional(v7.number),
    boundInputs = v7.table,
    isSceneFullView = v7.boolean,
    avatarRoute = v20.Interface
});
v37.getDerivedStateFromProps = function(v38, v39)
    local l_boundInputs_0 = v38.boundInputs;
    local l_lastGamepadKeyCode_0 = v39.lastGamepadKeyCode;
    local v42 = l_boundInputs_0[Enum.KeyCode.Thumbstick2];
    local v43 = false;
    if typeof(v42) == "table" then
        v43 = v42.tag == v15.SceneGamepad.FullViewIndicatorTag;
    end;
    local v44 = not v43;
    local v45 = l_boundInputs_0[Enum.KeyCode.ButtonR3];
    local v46 = false;
    if typeof(v45) == "table" then
        v46 = v45.tag == v15.SceneGamepad.FullViewIndicatorTag;
    end;
    v43 = not v46;
    v46 = nil;
    v46 = if not v38.isSceneFullView then not v44 and l_lastGamepadKeyCode_0 == Enum.KeyCode.Thumbstick2 or not v43 and l_lastGamepadKeyCode_0 == Enum.KeyCode.ButtonR3 else false;
    if v46 ~= v39.isVisible then
        return {
            isVisible = v46
        };
    else
        return nil;
    end;
end;
v37.setStateIfChanged = function(v47, v48)
    local v49 = {};
    for v50, v51 in v48, nil, nil do
        if v47.state[v50] ~= v51 then
            v49[v50] = v51;
        end;
    end;
    if next(v49) then
        v47:setState(v49);
    end;
end;
v37.init = function(v52)
    v52:setState({
        lastGamepadKeyCode = nil
    });
    local v53, v54 = v5.createBinding(not v52.state.isVisible and 1 or 0);
    v52.transparencyBinding = v53;
    v52.updateTransparencyBinding = v54;
    v52.onInputBegan = function(v55)
        if l_isGamepadInput_0(v55.UserInputType) then
            local v56 = false;
            if v55.KeyCode == Enum.KeyCode.ButtonR3 then
                v56 = not v52.props.isSceneFullView and not v52.state.isR3BindingOverridden;
            end;
            if not v56 then
                v52:setStateIfChanged({
                    lastGamepadKeyCode = v55.KeyCode
                });
                return ;
            else
                return ;
            end;
        else
            return ;
        end;
    end;
    v52.onInputChanged = function(v57)
        if l_isGamepadInput_0(v57.UserInputType) then
            local v58 = true;
            if v57.KeyCode ~= Enum.KeyCode.Thumbstick1 then
                v58 = v57.KeyCode == Enum.KeyCode.Thumbstick2;
            end;
            if not v58 or l_GamepadUtils_0.normalizeStickByDeadzone(v57.Position) == Vector2.new(0, 0) then
                return ;
            else
                v52:setStateIfChanged({
                    lastGamepadKeyCode = v57.KeyCode
                });
                return ;
            end;
        else
            return ;
        end;
    end;
end;
v37.didMount = function(v59)
    v59.transparencyMotor = v4.createSingleMotor(not v59.state.isVisible and 1 or 0);
    v59.transparencyMotor:onStep(function(v60)
        v59.updateTransparencyBinding(v60);
    end);
    v59.transparencyMotor:start();
end;
v37.willUpdate = function(v61, _, v63)
    local l_isVisible_0 = v63.isVisible;
    if l_isVisible_0 ~= v61.state.isVisible then
        v61.transparencyMotor:setGoal(v4.spring(not l_isVisible_0 and 1 or 0, v27));
    end;
end;
v37.render = function(v65)
    if not (v65.props.avatarRoute.opaque.name == v14.AvatarExperienceLandingPage) then
        return v5.createFragment({
            InputBeganConnection = v5.createElement(l_ExternalEventConnection_0, {
                event = l_UserInputService_0.InputBegan,
                callback = v65.onInputBegan
            }, {
                InputChangedConnection = if not v10 then v5.createElement(l_ExternalEventConnection_0, {
                    event = l_UserInputService_0.InputChanged,
                    callback = v65.onInputChanged
                }) else nil
            }),
            InputChangedConnection = if not v10 then nil else v5.createElement(l_ExternalEventConnection_0, {
                event = l_UserInputService_0.InputChanged,
                callback = v65.onInputChanged
            }),
            Indicator = l_withStyle_0(function(v66)
                local l_Theme_0 = v66.Theme;
                return v5.createElement("Frame", {
                    AnchorPoint = v65.props.AnchorPoint,
                    Position = v65.props.Position,
                    BackgroundTransparency = 1,
                    Size = UDim2.new(0, v26.X, 0, v26.Y)
                }, {
                    UIListLayout = v5.createElement("UIListLayout", {
                        FillDirection = Enum.FillDirection.Horizontal,
                        VerticalAlignment = Enum.VerticalAlignment.Center,
                        HorizontalAlignment = Enum.HorizontalAlignment.Right,
                        SortOrder = Enum.SortOrder.LayoutOrder,
                        Padding = UDim.new(0, 5)
                    }),
                    ControllerButtonImage = v5.createElement(l_ImageSetLabel_0, {
                        Size = UDim2.new(0, v24.X, 0, v24.Y),
                        BackgroundTransparency = 1,
                        Image = v23,
                        ImageColor3 = l_Theme_0.TextEmphasis.Color,
                        ImageTransparency = v65.transparencyBinding,
                        LayoutOrder = 1
                    }),
                    CircleBackground = v5.createElement(l_ImageSetLabel_0, {
                        Size = UDim2.new(0, 49, 0, 49),
                        BackgroundTransparency = 1,
                        Image = v25,
                        ImageColor3 = l_Theme_0.BackgroundUIDefault.Color,
                        ImageTransparency = v65.transparencyBinding,
                        LayoutOrder = 2
                    }, {
                        IndicatorImage = v5.createElement(l_ImageSetLabel_0, {
                            AnchorPoint = Vector2.new(0.5, 0.5),
                            Position = UDim2.new(0.5, 0, 0.5, 0),
                            Size = UDim2.new(0, v22.X, 0, v22.Y),
                            BackgroundTransparency = 1,
                            Image = v21,
                            ImageColor3 = l_Theme_0.TextEmphasis.Color,
                            ImageTransparency = v65.transparencyBinding
                        })
                    })
                });
            end)
        });
    else
        return nil;
    end;
end;
v37.willUnmount = function(v68)
    v68.transparencyMotor:destroy();
end;
return (v19((v6.connect(function(v69, v70)
    return {
        boundInputs = v69.GamepadBottomBar.boundInputs,
        isSceneFullView = v18.getIsSceneFullViewFromState(v69, v70.avatarRoute)
    };
end)(v37))));


local l_CoreGui_0 = game:GetService("CoreGui");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = l_CoreGui_0.RobloxGui.Modules;
local v3 = require(l_CorePackages_0.Packages.React);
local l_useLocalization_0 = require(l_CorePackages_0.Workspace.Packages.Localization).Hooks.useLocalization;
local v5 = require(l_Modules_0.AvatarExperience.Common.Hooks.useOpenQuickMenuCallback);
local v6 = require(l_CorePackages_0.UIBlox);
local l_Button_0 = v6.App.Button.Button;
local l_ButtonType_0 = v6.App.Button.Enum.ButtonType;
local l_StandardButtonSize_0 = v6.App.Button.Enum.StandardButtonSize;
return (v3.forwardRef(function(v10, v11)
    return v3.createElement(l_Button_0, {
        buttonRef = v11,
        NextSelectionRight = v10.NextSelectionRight,
        text = l_useLocalization_0({
            buttonText = "Feature.Catalog.Heading.QuickMenu"
        }).buttonText,
        onActivated = v5(),
        buttonType = l_ButtonType_0.Secondary,
        standardSize = l_StandardButtonSize_0.Small,
        fitContent = true
    });
end));


local l_CoreGui_0 = game:GetService("CoreGui");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = l_CoreGui_0.RobloxGui.Modules;
local v3 = require(l_CorePackages_0.Cryo);
local v4 = require(l_CorePackages_0.Roact);
local v5 = require(l_CorePackages_0.Packages.RoactGamepad);
local l_Focusable_0 = v5.Focusable;
local v7 = require(l_CorePackages_0.RoactRodux);
local l_GamepadUtils_0 = require(l_CorePackages_0.Workspace.Packages.AppCommonLib).Utils.GamepadUtils;
local l_RoactServices_0 = require(l_CorePackages_0.Workspace.Packages.RoactServices).RoactServices;
local v10 = require(l_CorePackages_0.Packages.t);
local v11 = require(l_CorePackages_0.UIBlox);
local v12 = require(l_Modules_0.AvatarExperience.Common.Services.Analytics);
local v13 = require(l_Modules_0.AvatarExperience.Common.Thunks.SetFullView);
local v14 = require(l_Modules_0.AvatarExperience.Common.Enum.FullView);
local v15 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AvatarScreen);
local v16 = require(l_Modules_0.AvatarExperience.Common.Constants);
local v17 = require(l_Modules_0.AvatarExperience.Common.Utils);
local v18 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.withAppRoute);
local v19 = require(l_Modules_0.AvatarExperience.Common.Context.wrapWithSceneInteractionCallbacks);
local l_CursorKind_0 = v11.App.SelectionImage.CursorKind;
local l_withSelectionCursorProvider_0 = v11.App.SelectionImage.withSelectionCursorProvider;
local v22 = {
    vertical = {
        key = "Feature.Avatar.Action.Zoom"
    },
    horizontal = {
        key = "Feature.Avatar.Action.Rotate"
    }
};
local v23 = v4.PureComponent:extend("SceneGamepadHandler");
v23.validateProps = v10.interface({
    [v4.Children] = v10.optional(v10.table),
    panByDistance = v10.callback,
    rotateByRadians = v10.callback,
    zoomStraight = v10.callback,
    focusController = v10.table,
    defaultChild = v10.optional(v10.table),
    NextSelectionLeft = v10.optional(v10.table),
    NextSelectionRight = v10.optional(v10.table),
    NextSelectionUp = v10.optional(v10.table),
    NextSelectionDown = v10.optional(v10.table),
    isSceneFullView = v10.boolean
});
v23.init = function(v24)
    v24.mainRef = v4.createRef();
    v24.isolateRef = v4.createRef();
    v24.rotateAndZoom = function(v25, v26)
        l_GamepadUtils_0.rotateAndZoom(v25, v26, v24.props.setAngularVelocityByPixels, v24.props.rotateByRadians, v24.props.zoomStraight);
    end;
    v24.pan = function(v27, v28)
        local v29 = l_GamepadUtils_0.normalizeStickByDeadzone(v27.Position);
        if v29 == Vector2.new(0, 0) then
            return ;
        else
            v24.props.panByDistance((v28 * v29) * 5);
            return ;
        end;
    end;
    v24.toggleFullView = function()
        local l_name_0 = v24.props.avatarRoute.opaque.name;
        local v31 = true;
        if l_name_0 ~= v15.AvatarEditor then
            v31 = true;
            if l_name_0 ~= v15.Catalog then
                v31 = true;
                if l_name_0 ~= v15.CatalogSearch then
                    v31 = l_name_0 == v15.ProfilePictureEditorEmotes;
                end;
            end;
        end;
        if v31 then
            if not v24.props.isSceneFullView then
                v24.oldFocus = v24.props.focusController.getCurrentFocus();
                v24.props.focusController.moveFocusTo(v24.isolateRef);
            else
                v24.props.focusController.moveFocusTo(v24.oldFocus);
                v24.oldFocus = nil;
            end;
            local l_setFullView_0 = v24.props.setFullView;
            local l_isSceneFullView_0 = v24.props.isSceneFullView;
            local _ = nil;
            l_setFullView_0(v24.props.analytics, v24.props.avatarRoute.opaque.name, if not l_isSceneFullView_0 then v14.SceneFullView else v14.None);
            return ;
        else
            return ;
        end;
    end;
    v24.renderWithCursorCallback = function(...)
        return v24:renderWithCursor(...);
    end;
end;
v23.renderWithCursor = function(v35, v36)
    local l_isSceneFullView_1 = v35.props.isSceneFullView;
    return v4.createElement(l_Focusable_0.Frame, {
        BackgroundTransparency = 1,
        Size = UDim2.new(1, 0, 1, 0),
        inputBindings = {
            RotateAndZoom = v5.Input.onStep(Enum.KeyCode.Thumbstick2, v35.rotateAndZoom, {
                tag = v16.SceneGamepad.FullViewIndicatorTag,
                axes = not not l_isSceneFullView_1 and v22 or nil
            }),
            Pan = not not l_isSceneFullView_1 and v5.Input.onStep(Enum.KeyCode.Thumbstick1, v35.pan, {
                key = "Feature.Avatar.Action.Pan"
            }) or nil,
            ToggleFullView = v5.Input.onBegin(Enum.KeyCode.ButtonR3, v35.toggleFullView, {
                tag = v16.SceneGamepad.FullViewIndicatorTag,
                key = if not l_isSceneFullView_1 then nil else "Feature.Avatar.Action.DefaultView"
            }),
            ExitFullView = if not l_isSceneFullView_1 then nil else v5.Input.onBegin(Enum.KeyCode.ButtonB, v35.toggleFullView)
        },
        NextSelectionLeft = v35.props.NextSelectionLeft,
        NextSelectionRight = v35.props.NextSelectionRight,
        NextSelectionUp = v35.props.NextSelectionUp,
        NextSelectionDown = v35.props.NextSelectionDown,
        defaultChild = v35.props.defaultChild,
        [v4.Ref] = v35.mainRef
    }, v3.Dictionary.join(v35.props[v4.Children], {
        FocusIsolate = v4.createElement(l_Focusable_0.Frame, {
            BackgroundTransparency = 1,
            SelectionImageObject = v36(l_CursorKind_0.Invisible),
            [v4.Ref] = v35.isolateRef
        })
    }));
end;
v23.render = function(v38)
    return l_withSelectionCursorProvider_0(v38.renderWithCursorCallback);
end;
v23 = l_RoactServices_0.connect({
    analytics = v12
})((v7.connect(function(v39, v40)
    return {
        isSceneFullView = v17.getIsSceneFullViewFromState(v39, v40.avatarRoute)
    };
end, function(v41)
    return {
        setFullView = function(v42, v43, v44)
            v41(v13(v42, v43, v44));
        end
    };
end)(v23)));
return (v18((v19(function(v45)
    return v5.withFocusController(function(v46)
        return v4.createElement(v23, v3.Dictionary.join(v45, {
            focusController = v46
        }));
    end);
end))));


local l_CoreGui_0 = game:GetService("CoreGui");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = l_CoreGui_0.RobloxGui.Modules;
local v3 = require(l_CorePackages_0.Cryo);
local v4 = require(l_CorePackages_0.Roact);
local l_Focusable_0 = require(l_CorePackages_0.Packages.RoactGamepad).Focusable;
local v6 = require(l_Modules_0.AvatarExperience.Common.Components.Scene.FullViewIndicator);
local v7 = require(l_Modules_0.AvatarExperience.Catalog.Components.RobuxBalance);
local _ = require(l_Modules_0.AvatarExperience.Common.AvatarExperienceState);
local v9 = require(l_Modules_0.AvatarExperience.Common.Hooks.useQuickMenuAvailable);
local v10 = require(script.Parent.QuickMenuButton);
local v11 = v4.PureComponent:extend("SceneUIContainer");
v11.defaultProps = {
    isVisible = true
};
v11.init = function(v12)
    v12.robuxBalanceRef = v4.createRef();
    v12.quickMenuRef = v4.createRef();
end;
v11.renderRobloxBalanceContainer = function(v13)
    return v4.createElement("Frame", {
        AutomaticSize = Enum.AutomaticSize.XY,
        AnchorPoint = Vector2.new(1, 0),
        BackgroundTransparency = 1,
        Position = UDim2.new(0, 0, 0, 0),
        LayoutOrder = 2
    }, {
        RobuxBalance = v4.createElement(v7, {
            [v4.Ref] = v13.robuxBalanceRef,
            NextSelectionLeft = v13.quickMenuRef
        })
    });
end;
v11.getRow1Children = function(v14)
    local l_row1ChildrenVisible_0 = v14.props.row1ChildrenVisible;
    return {
        UIListLayout = v4.createElement("UIListLayout", {
            FillDirection = Enum.FillDirection.Horizontal,
            VerticalAlignment = Enum.VerticalAlignment.Center,
            HorizontalAlignment = Enum.HorizontalAlignment.Right,
            SortOrder = Enum.SortOrder.LayoutOrder,
            Padding = UDim.new(0, 5)
        }),
        QuickMenuButton = if not not v14.props.showQuickMenuButton and l_row1ChildrenVisible_0 then v4.createElement(v10, {
            [v4.Ref] = v14.quickMenuRef,
            NextSelectionRight = v14.robuxBalanceRef
        }) else nil,
        RobuxBalanceContainer = l_row1ChildrenVisible_0 and v14:renderRobloxBalanceContainer()
    };
end;
v11.render = function(v16)
    return v4.createElement(l_Focusable_0.Frame, {
        BackgroundTransparency = 1,
        Size = UDim2.new(1, 0, 0, 72),
        Position = UDim2.new(0, -12, 0, 4),
        Visible = v16.props.isVisible,
        [v4.Ref] = v16.props.forwardRef,
        restorePreviousChildFocus = true,
        defaultChild = v16.quickMenuRef
    }, {
        Row1 = v4.createElement("Frame", {
            BackgroundTransparency = 1,
            Size = UDim2.new(1, 0, 0, 36)
        }, v16:getRow1Children()),
        FullViewIndicator = v4.createElement(v6, {
            AnchorPoint = Vector2.new(1, 0),
            Position = UDim2.new(1, 0, 0, 40)
        })
    });
end;
return v4.forwardRef(function(v17, v18)
    return v4.createElement(v11, v3.Dictionary.join(v17, {
        forwardRef = v18,
        showQuickMenuButton = v9()
    }));
end);


local l_CoreGui_0 = game:GetService("CoreGui");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_RunService_0 = game:GetService("RunService");
local l_ContextActionService_0 = game:GetService("ContextActionService");
local l_Modules_0 = l_CoreGui_0.RobloxGui.Modules;
local v5 = require(l_CorePackages_0.Packages.React);
local v6 = require(l_CorePackages_0.Roact);
local l_GamepadUtils_0 = require(l_CorePackages_0.Workspace.Packages.AppCommonLib).Utils.GamepadUtils;
local v8 = require(l_Modules_0.AvatarExperience.Common.Context.wrapWithSceneInteractionCallbacks);
local v9 = game:DefineFastFlag("VRFixScrollingAfterPurchase", false);
return (v8(function(v10)
    local v11 = false;
    local function v16(_, _, v14)
        if not v11 then
            v11 = true;
            l_RunService_0:BindToRenderStep("VRAvatarEditorJoystickRotate", Enum.RenderPriority.Input.Value, function(v15)
                l_GamepadUtils_0.rotateAndZoom(v14, v15, v10.setAngularVelocityByPixels, v10.rotateByRadians);
            end);
        end;
        if not v9 then
            return Enum.ContextActionResult.Sink;
        else
            return Enum.ContextActionResult.Pass;
        end;
    end;
    local function v17()
        l_ContextActionService_0:UnbindCoreAction("RotateAvatarWithGamepadVR_R");
        l_ContextActionService_0:UnbindCoreAction("RotateAvatarWithGamepadVR_L");
        l_RunService_0:UnbindFromRenderStep("VRAvatarEditorJoystickRotate");
        v11 = false;
    end;
    local function v18()
        l_ContextActionService_0:UnbindCoreAction("RotateAvatarWithGamepadVR_R");
        l_ContextActionService_0:UnbindCoreAction("RotateAvatarWithGamepadVR_L");
        l_RunService_0:UnbindFromRenderStep("VRAvatarEditorJoystickRotate");
        v11 = false;
        l_ContextActionService_0:BindCoreAction("RotateAvatarWithGamepadVR_R", v16, false, Enum.KeyCode.Thumbstick2);
        l_ContextActionService_0:BindCoreAction("RotateAvatarWithGamepadVR_L", v16, false, Enum.KeyCode.Thumbstick1);
    end;
    v5.useEffect(function()
        return function()
            l_ContextActionService_0:UnbindCoreAction("RotateAvatarWithGamepadVR_R");
            l_ContextActionService_0:UnbindCoreAction("RotateAvatarWithGamepadVR_L");
            l_RunService_0:UnbindFromRenderStep("VRAvatarEditorJoystickRotate");
            v11 = false;
        end;
    end, {});
    return v6.createElement("Frame", {
        Size = UDim2.new(1, 0, 1, 0),
        BackgroundTransparency = 1,
        [v6.Event.MouseEnter] = v18,
        [v6.Event.MouseLeave] = v17
    });
end));


local l_CoreGui_0 = game:GetService("CoreGui");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = l_CoreGui_0.RobloxGui.Modules;
local v3 = require(l_CorePackages_0.Packages.React);
local l_SpringAnimatedItem_0 = require(l_CorePackages_0.UIBlox).Utility.SpringAnimatedItem;
local l_useSelector_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).Hooks.RoactRodux.useSelector;
local v6 = require(l_Modules_0.LuaApp.Components.TopBar.Utils.selectTopBarHeight);
local l_useProperty_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).Hooks.useProperty;
local v8 = require(l_Modules_0.AvatarExperience.Common.Context.NamedRefsContext);
local l_DeviceOrientationMode_0 = require(l_CorePackages_0.Workspace.Packages.RobloxAppEnums).DeviceOrientationMode;
local v10 = require(l_Modules_0.AvatarExperience.Common.Components.FullViewEntryButton);
local _ = require(l_Modules_0.AvatarExperience.Common.AvatarExperienceState);
local l_useRouteName_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).Hooks.useRouteName;
local v13 = Vector2.new(8, 8);
local v14 = Vector2.new(36, 36);
local v15 = {
    dampingRatio = 0.6,
    frequency = 4.25
};
local v16 = {
    dampingRatio = 1,
    frequency = 3.5
};
local function v18(v17)
    return {
        Size = UDim2.new(1, 0, 0, v17.height)
    };
end;
local function v20(v19)
    return v19.DeviceOrientation;
end;
local function _()
    return v3.useContext(v8)[l_useRouteName_0() .. "TopPanel"];
end;
local function v27(v22, v23)
    local v24 = l_useProperty_0(v3.useContext(v8)[l_useRouteName_0() .. "TopPanel"], "Size") or UDim2.fromScale(0, 0);
    local v25 = l_useSelector_0(v20) == l_DeviceOrientationMode_0.Portrait;
    local l_v23_0 = v23;
    if not (not v22 or not v25) then
        l_v23_0 = l_v23_0 + (((v14.Y + v13.Y) + 14) + v24.Y.Offset);
    end;
    return l_v23_0;
end;
return function(v28)
    local v29 = v28.isUIFullView or false;
    local v30 = v28.sceneHeight or 0;
    local l_isSceneFullView_0 = v28.isSceneFullView;
    local l_changeViewFunction_0 = v28.changeViewFunction;
    local l_ZIndex_0 = v28.ZIndex;
    local v34 = l_useSelector_0(v6);
    local v35 = l_useSelector_0(v20) == l_DeviceOrientationMode_0.Portrait;
    local v36 = v27(v29, v30);
    local v37 = nil;
    local v38 = 0;
    if v29 then
        v37 = v15;
    else
        v37 = v16;
        v38 = 11;
    end;
    local v39 = not not v35 and v34 or 0;
    local l_createElement_0 = v3.createElement;
    local l_AnimatedFrame_0 = l_SpringAnimatedItem_0.AnimatedFrame;
    local v42 = {};
    local v43 = {
        AnchorPoint = Vector2.new(1, 0),
        BackgroundTransparency = 1,
        Position = UDim2.new(1, 0, 0, v39),
        Size = UDim2.new(1, 0, 1, 0),
        ZIndex = l_ZIndex_0
    };
    local v44 = false;
    if l_changeViewFunction_0 ~= nil then
        v44 = v35 or l_isSceneFullView_0;
    end;
    v43.Visible = v44;
    v42.regularProps = v43;
    v42.animatedValues = {
        height = v36
    };
    v42.mapValuesToProps = v18;
    v42.springOptions = v37;
    return l_createElement_0(l_AnimatedFrame_0, v42, {
        Container = v3.createElement("Frame", {
            AnchorPoint = Vector2.new(1, 1),
            Position = UDim2.new(1, 0, 1, 0),
            Size = UDim2.fromScale(1, 1),
            BackgroundTransparency = 1
        }, {
            UIListLayout = v3.createElement("UIListLayout", {
                HorizontalAlignment = Enum.HorizontalAlignment.Right,
                VerticalAlignment = Enum.VerticalAlignment.Bottom,
                SortOrder = Enum.SortOrder.LayoutOrder,
                Padding = UDim.new(0, 14)
            }),
            UIPadding = v3.createElement("UIPadding", {
                PaddingBottom = UDim.new(0, v38),
                PaddingRight = UDim.new(0, v38)
            }),
            FullViewEntryButton = v3.createElement(v10, {
                isUIFullView = v28.isUIFullView,
                isSceneFullView = v28.isSceneFullView,
                changeViewFunction = v28.changeViewFunction,
                LayoutOrder = 2
            })
        })
    });
end;


local l_CoreGui_0 = game:GetService("CoreGui");
local l_CorePackages_0 = game:GetService("CorePackages");
local v2 = require(l_CorePackages_0.Roact);
local v3 = require(l_CorePackages_0.Packages.t);
local l_Modules_0 = l_CoreGui_0.RobloxGui.Modules;
local v5 = require(l_Modules_0.LuaApp.Constants);
local v6 = require(l_Modules_0.AvatarExperience.Common.Components.NavBar.GradientFrame);
local v7 = require(l_Modules_0.AvatarExperience.Common.Components.NavBar.ArrowFrame);
local v8 = require(l_Modules_0.AvatarExperience.Common.Utils);
local v9 = require(l_Modules_0.AvatarExperience.Common.Components.NavBar.IntroScroll);
local v10 = require(l_Modules_0.AvatarExperience.Common.Components.withLastInputGroup);
local v11 = v2.PureComponent:extend("ScrollingListWithArrowsAndGradient");
v11.validateProps = v3.strictInterface({
    getScollingListContent = v3.callback,
    listHeight = v3.number,
    scrollingFrameRef = v3.table,
    buttonRefs = v3.optional(v3.table),
    buttonWidth = v3.optional(v3.number),
    numButtons = v3.optional(v3.number),
    padOutsideEdges = v3.optional(v3.boolean),
    childWidgetIndex = v3.optional(v3.number),
    useIntroScroll = v3.optional(v3.boolean),
    buttonPadding = v3.number,
    canvasWidth = v3.optional(v3.number),
    lastInputGroup = v3.string
});
v11.init = function(v12)
    v12.gradientFrameRef = v2.createRef();
    local v13, v14 = v2.createBinding(false);
    v12.arrowLeftVisible = v13;
    v12.updateArrowLeftVisible = v14;
    v13, v14 = v2.createBinding(false);
    v12.arrowRightVisible = v13;
    v12.updateArrowRightVisible = v14;
    v13, v14 = v2.createBinding(Vector2.new(0, 0));
    v12.canvasPosition = v13;
    v12.updateCanvasPosition = v14;
    v12.onCanvasPositionChange = function(v15)
        v12.checkShowGradient(v15);
        v12.updateCanvasPosition(v15.CanvasPosition);
    end;
    v12.checkShowGradient = function(v16)
        local v17 = v12.gradientFrameRef:getValue();
        if v17 then
            local v18, v19, v20 = v8.shouldShowGradientForScrollingFrame(v16);
            v17.Visible = v18;
            local l_Left_0 = v17:FindFirstChild("Left");
            local l_Right_0 = v17:FindFirstChild("Right");
            if not (not l_Left_0 or not l_Right_0) then
                l_Left_0.Visible = v19;
                l_Right_0.Visible = v20;
            end;
            v12.updateArrowLeftVisible(v19);
            v12.updateArrowRightVisible(v20);
            return ;
        else
            return ;
        end;
    end;
end;
v11.didUpdate = function(v23)
    local v24 = v23.props.scrollingFrameRef:getValue();
    if v24 then
        v23.checkShowGradient(v24);
    end;
end;
v11.render = function(v25)
    return v2.createFragment({
        ScrollingList = v2.createElement("ScrollingFrame", {
            ClipsDescendants = false,
            Size = UDim2.new(1, 0, 1, 0),
            Selectable = false,
            CanvasSize = UDim2.new(0, v25.props.canvasWidth or 0, 1, 0),
            CanvasPosition = v25.canvasPosition,
            ScrollBarThickness = 0,
            BackgroundTransparency = 1,
            ElasticBehavior = Enum.ElasticBehavior.Always,
            ScrollingDirection = Enum.ScrollingDirection.X,
            ZIndex = 2,
            [v2.Change.AbsoluteSize] = v25.checkShowGradient,
            [v2.Change.CanvasSize] = v25.checkShowGradient,
            [v2.Change.CanvasPosition] = v25.onCanvasPositionChange,
            [v2.Ref] = v25.props.scrollingFrameRef
        }, v25.props.getScollingListContent()),
        GradientFrame = v2.createElement(v6, {
            height = v25.props.listHeight,
            frameRef = v25.gradientFrameRef,
            ZIndex = 3
        }),
        ArrowFrame = v25.props.lastInputGroup == v5.InputType.MouseAndKeyboard and v2.createElement(v7, {
            isVisibleLeft = v25.arrowLeftVisible,
            isVisibleRight = v25.arrowRightVisible,
            defaultUseProps = {
                scrollingFrameRef = v25.props.scrollingFrameRef,
                buttonRefs = v25.props.buttonRefs,
                buttonWidth = v25.props.buttonWidth,
                padOutsideEdges = v25.props.padOutsideEdges,
                numButtons = v25.props.numButtons,
                buttonPadding = v25.props.buttonPadding,
                updateCanvasPosition = v25.updateCanvasPosition
            },
            ZIndex = 4
        }),
        IntroScroll = not not v25.props.useIntroScroll and v2.createElement(v9, {
            childWidgetIndex = v25.props.childWidgetIndex,
            scrollingFrameRef = v25.props.scrollingFrameRef,
            updateCanvasPosition = v25.updateCanvasPosition
        }) or nil
    });
end;
return (v10(v11));


local l_CoreGui_0 = game:GetService("CoreGui");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_RunService_0 = game:GetService("RunService");
local l_UserInputService_0 = game:GetService("UserInputService");
local l_Modules_0 = l_CoreGui_0.RobloxGui.Modules;
local v5 = require(l_CorePackages_0.Cryo);
local v6 = require(l_CorePackages_0.Roact);
local v7 = require(l_CorePackages_0.RoactRodux);
local l_RoactServices_0 = require(l_CorePackages_0.Workspace.Packages.RoactServices).RoactServices;
local v9 = require(l_CorePackages_0.Packages.t);
local v10 = require(l_Modules_0.AvatarExperience.Common.Services.Analytics);
local v11 = require(l_Modules_0.AvatarExperience.Common.Thunks.SetFullView);
local v12 = require(l_Modules_0.AvatarExperience.Common.Enum.FullView);
local v13 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AvatarScreenProperties);
local v14 = require(l_Modules_0.AvatarExperience.Common.Selectors.selectIsFullView);
local v15 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AvatarScreen);
local v16 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.withAppRoute);
local v17 = require(l_Modules_0.AvatarExperience.Common.Debug.LogTree).logger("ax.scene");
local v18 = require(l_Modules_0.AvatarExperience.Flags.GetFFlagAccessoryAdjustmentEnabled);
local function _(v19)
    local v20 = v19.UserInputType == Enum.UserInputType.Touch;
    local v21 = v19.UserInputType == Enum.UserInputType.MouseButton1;
    local v22 = v19.UserInputType == Enum.UserInputType.MouseButton2;
    return v20, v21 or v22, v21, v22;
end;
local function _(v24)
    if v18() and v24 == v15.AccessoryAdjustment then
        return true;
    else
        local v25 = true;
        if v24 ~= v15.AvatarEditor then
            v25 = true;
            if v24 ~= v15.Catalog then
                v25 = true;
                if v24 ~= v15.ProfilePictureEditorEmotes then
                    v25 = v24 == v15.CatalogSearch;
                end;
            end;
        end;
        return v25;
    end;
end;
local v27 = v6.PureComponent:extend("SharedInteractionFrame");
v27.validateProps = v9.interface({
    panByPixels = v9.callback,
    rotateByPixels = v9.callback,
    setAngularVelocityByPixels = v9.callback,
    zoomToPoint = v9.callback,
    Size = v9.optional(v9.UDim2),
    Position = v9.optional(v9.UDim2),
    ZIndex = v9.optional(v9.number),
    fullView = v9.optional(v9.userdata),
    setFullView = v9.callback,
    analytics = v9.table
});
v27.disconnectEvents = function(v28)
    v28.inputChangedConnection:Disconnect();
    v28.inputEndedConnection:Disconnect();
    v28.renderSteppedConnection:Disconnect();
    v28.inputChangedConnection = nil;
    v28.inputEndedConnection = nil;
    v28.renderSteppedConnection = nil;
end;
v27.getActiveInput = function(v29, v30)
    local v31 = v30.UserInputType == Enum.UserInputType.Touch;
    local v32 = v30.UserInputType == Enum.UserInputType.MouseButton1 or v30.UserInputType == Enum.UserInputType.MouseButton2;
    local l_v31_0 = v31;
    local v34 = v30.UserInputType == Enum.UserInputType.MouseMovement or v32;
    if v34 or l_v31_0 then
        local v35 = nil;
        if not v34 then
            if l_v31_0 then
                v35 = v29.activeTouchInputs[v30];
            end;
            return v35;
        else
            return v29.activeMouseInput;
        end;
    else
        return ;
    end;
end;
v27.removeActivePointerInput = function(v36, v37, v38)
    if not v38 then
        v36.activeTouchInputs[v37] = nil;
        v36.numActiveTouchInputs = v36.numActiveTouchInputs - 1;
    elseif l_UserInputService_0:IsMouseButtonPressed(Enum.UserInputType.MouseButton1) or l_UserInputService_0:IsMouseButtonPressed(Enum.UserInputType.MouseButton2) then
        return ;
    else
        v36.activeMouseInput = nil;
    end;
    v36.numActiveInputs = v36.numActiveInputs - 1;
    if v36.numActiveInputs == 0 then
        v36:disconnectEvents();
    end;
end;
v27.doubleTapToggleFullView = function(v39)
    local l_name_0 = v39.props.avatarRoute.opaque.name;
    local v41;
    if v18() and l_name_0 == v15.AccessoryAdjustment then
        v41 = true;
    else
        v41 = true;
        if l_name_0 ~= v15.AvatarEditor then
            v41 = true;
            if l_name_0 ~= v15.Catalog then
                v41 = true;
                if l_name_0 ~= v15.ProfilePictureEditorEmotes then
                    v41 = l_name_0 == v15.CatalogSearch;
                end;
            end;
        end;
    end;
    if v41 then
        v39.props.setFullView(v39.props.analytics, l_name_0, v39.props.fullView == v12.None and v12.SceneFullView or v12.None);
        return ;
    else
        return ;
    end;
end;
v27.handleDoubleTap = function(v42, v43, v44)
    if v42.lastPrimaryPointerInputBeganPosition then
        local v45 = v42.lastPrimaryPointerInputBeganPosition - v43.Position;
        local v46 = v44 - v42.lastPrimaryPointerInputBeganTime;
        if v45.Magnitude < 30 and v46 < 0.25 then
            v42:doubleTapToggleFullView();
        end;
    end;
    v42.lastPrimaryPointerInputBeganPosition = v43.Position;
    v42.lastPrimaryPointerInputBeganTime = v44;
end;
v27.addActivePointerInput = function(v47, v48, v49, v50)
    if not v47:getActiveInput(v48) then
        local v51 = {
            lastPosition = v48.Position,
            lastTime = v50
        };
        if not v49 then
            v47.activeTouchInputs[v48] = v5.Dictionary.join(v51, {
                lastDeltaTime = 0,
                lastDeltaPosition = Vector3.new(0, 0, 0)
            });
            v47.numActiveTouchInputs = v47.numActiveTouchInputs + 1;
        else
            v47.activeMouseInput = v51;
        end;
        v47.numActiveInputs = v47.numActiveInputs + 1;
        if v47.numActiveInputs == 1 then
            v47.props.setAngularVelocityByPixels(0);
            v47.inputChangedConnection = l_UserInputService_0.InputChanged:Connect(v47.onInputChanged);
            v47.inputEndedConnection = l_UserInputService_0.InputEnded:Connect(v47.onInputEnded);
            v47.renderSteppedConnection = l_RunService_0.RenderStepped:Connect(v47.setInputNotChanged);
        end;
        return ;
    else
        return ;
    end;
end;
v27.init = function(v52)
    v52.inputChangedConnection = nil;
    v52.inputEndedConnection = nil;
    v52.frameRef = v6.createRef();
    v52.lastPinchDistance = 1;
    v52.lastPanTime = 0;
    v52.lastPrimaryPointerInputBeganTime = 0;
    v52.lastPrimaryPointerInputBeganPosition = nil;
    v52.activeTouchInputs = {};
    v52.numActiveTouchInputs = 0;
    v52.activeMouseInput = nil;
    v52.numActiveInputs = 0;
    v52.handleScroll = function(_, v54)
        if v54.UserInputType == Enum.UserInputType.MouseWheel then
            v52.props.zoomToPoint(-v54.Position.Z, l_UserInputService_0:GetMouseLocation());
        end;
    end;
    v52.setInputNotChanged = function(_)
        for _, v57 in v52.activeTouchInputs, nil, nil do
            v57.changedThisFrame = false;
        end;
    end;
    v52.onInputChanged = function(v58, _)
        local v60 = v58.UserInputType == Enum.UserInputType.MouseMovement;
        local v61 = v58.UserInputType == Enum.UserInputType.Touch;
        if v60 or v61 then
            local v62 = v52:getActiveInput(v58);
            if v62 then
                local v63 = tick();
                local v64 = v63 - v62.lastTime;
                local v65 = v58.Position - v62.lastPosition;
                local v66 = Vector2.new(v65.X, v65.Y) * Vector2.new(-1, 1);
                local v67 = l_UserInputService_0:IsMouseButtonPressed(Enum.UserInputType.MouseButton1);
                local v68 = l_UserInputService_0:IsMouseButtonPressed(Enum.UserInputType.MouseButton2);
                local v69 = v63 - v52.lastPanTime > 0.1;
                if not (not (v60 and v67 or v61 and v52.numActiveTouchInputs == 1) or not v69) then
                    v52.props.rotateByPixels(-v66.X);
                end;
                if v60 and v68 or v61 and v52.numActiveTouchInputs == 2 then
                    v52.props.panByPixels(v66 / v52.numActiveInputs);
                    v52.lastPanTime = v63;
                end;
                v62.lastPosition = v58.Position;
                v62.lastTime = v63;
                if v61 then
                    if not v62.changedThisFrame then
                        v62.lastDeltaPosition = v65;
                        v62.lastDeltaTime = v64;
                        v62.changedThisFrame = true;
                    else
                        v62.lastDeltaPosition = v65 + v62.lastDeltaPosition;
                        v62.lastDeltaTime = v64 + v62.lastDeltaTime;
                        return ;
                    end;
                end;
                return ;
            else
                return ;
            end;
        else
            return ;
        end;
    end;
    v52.onInputEnded = function(v70, _)
        local v72 = v70.UserInputType == Enum.UserInputType.Touch;
        local v73 = v70.UserInputType == Enum.UserInputType.MouseButton1;
        local v74 = v73 or v70.UserInputType == Enum.UserInputType.MouseButton2;
        local l_v72_0 = v72;
        local l_v74_0 = v74;
        local l_v73_0 = v73;
        if l_v72_0 or l_v74_0 then
            v73 = v52:getActiveInput(v70);
            if v73 then
                local v78 = tick();
                v74 = v78 - v52.lastPanTime;
                local v79 = l_v72_0 and v73.changedThisFrame;
                local v80 = false;
                if v52.numActiveInputs == 1 then
                    v80 = v74 > 0.1;
                end;
                if not (not v79 and not l_v73_0 or not v80) then
                    local v81 = nil;
                    local v82 = nil;
                    if not l_v73_0 then
                        v81 = v73.lastDeltaPosition;
                        v82 = v73.lastDeltaTime;
                    else
                        v81 = v70.Position - v73.lastPosition;
                        v82 = v78 - v73.lastTime;
                    end;
                    v52.props.setAngularVelocityByPixels(v81.X / v82);
                end;
                v52:removeActivePointerInput(v70, l_v74_0);
                return ;
            else
                return ;
            end;
        else
            return ;
        end;
    end;
    v52.onInputBegan = function(v83, v84)
        v52.handleScroll(v83, v84);
        local v85 = v84.UserInputType == Enum.UserInputType.Touch;
        local v86 = v84.UserInputType == Enum.UserInputType.MouseButton1;
        local v87 = v86 or v84.UserInputType == Enum.UserInputType.MouseButton2;
        local l_v85_0 = v85;
        local l_v87_0 = v87;
        local l_v86_0 = v86;
        if l_v85_0 or l_v87_0 then
            v86 = l_v85_0 or l_v86_0;
            local v91 = tick();
            if v86 then
                v52:handleDoubleTap(v84, v91);
            end;
            v52:addActivePointerInput(v84, l_v87_0, v91);
            return ;
        else
            return ;
        end;
    end;
    v52.onTouchPinch = function(_, v93, _, _, v96)
        if v93[2] == nil then
            return ;
        elseif v96 == Enum.UserInputState.Begin then
            v52.lastPinchDistance = (v93[1] - v93[2]).Magnitude;
            return ;
        else
            local l_Magnitude_0 = (v93[1] - v93[2]).Magnitude;
            local v98 = l_Magnitude_0 - v52.lastPinchDistance;
            v52.lastPinchDistance = l_Magnitude_0;
            v52.props.zoomToPoint(v98 * -0.05, (v93[1] + v93[2]) / 2);
            return ;
        end;
    end;
end;
v27.willUnmount = function(v99)
    if v99.inputChangedConnection then
        v99:disconnectEvents();
    end;
end;
v27.shouldBeVisible = function(v100)
    local v101 = v13[v100.props.avatarRoute.current.name];
    if (not v101 or not v101.coversSceneWhenExpanded) or not v100.props.itemDetailsExpanded then
        return true;
    else
        return false;
    end;
end;
v27.render = function(v102)
    local v103 = v102:shouldBeVisible();
    v17:trace("SharedInteractionFrame visible: {}", v103);
    return v6.createElement("Frame", {
        BackgroundTransparency = 1,
        Size = v102.props.Size or UDim2.new(1, 0, 1, 0),
        Position = v102.props.Position,
        ZIndex = v102.props.ZIndex,
        Visible = v103,
        Active = true,
        [v6.Event.InputBegan] = v102.onInputBegan,
        [v6.Event.InputChanged] = v102.handleScroll,
        [v6.Event.TouchPinch] = v102.onTouchPinch,
        [v6.Ref] = v102.frameRef
    }, v102.props[v6.Children]);
end;
return (v16((l_RoactServices_0.connect({
    analytics = v10
})((v7.connect(function(v104, v105)
    return {
        fullView = v14(v104, v105.avatarRoute.opaque.name),
        itemDetailsExpanded = v104.AvatarExperience.Common.ItemDetailsExpanded
    };
end, function(v106)
    return {
        setFullView = function(v107, v108, v109)
            v106(v11(v107, v108, v109));
        end
    };
end)(v27))))));


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(l_CorePackages_0.Roact);
local v2 = require(l_CorePackages_0.Packages.RoactGamepad);
local v3 = require(l_CorePackages_0.Packages.t);
local v4 = require(l_CorePackages_0.UIBlox);
local l_Focusable_0 = v2.Focusable;
local l_withStyle_0 = v4.Style.withStyle;
local l_ImageSetLabel_0 = v4.Core.ImageSet.ImageSetLabel;
local l_SystemSlider_0 = v4.App.Slider.SystemSlider;
local v9 = v1.PureComponent:extend("SliderWithLabelAndIcons");
v9.validateProps = v3.strictInterface({
    layoutOrder = v3.number,
    text = v3.string,
    leftIcon = v3.table,
    rightIcon = v3.table,
    value = v3.number,
    onSliderChanged = v3.callback,
    min = v3.number,
    max = v3.number,
    baseRef = v3.table,
    NextSelectionUp = v3.optional(v3.table),
    NextSelectionDown = v3.optional(v3.table)
});
v9.init = function(v10)
    v10.sliderRef = v1.createRef();
end;
v9.render = function(v11)
    return l_withStyle_0(function(v12)
        local l_Font_0 = v12.Font;
        local v14 = l_Font_0.CaptionHeader.RelativeSize * l_Font_0.BaseSize;
        local l_Font_1 = l_Font_0.CaptionHeader.Font;
        local v16 = 50 - v14;
        return v1.createElement(l_Focusable_0.Frame, {
            Size = UDim2.new(0.9, 0, 0, 50),
            BorderSizePixel = 0,
            BackgroundTransparency = 1,
            LayoutOrder = v11.props.layoutOrder,
            defaultChild = v11.sliderRef,
            [v1.Ref] = v11.props.baseRef
        }, {
            TopFrame = v1.createElement("Frame", {
                BorderSizePixel = 0,
                BackgroundTransparency = 1,
                Size = UDim2.new(1, 0, 0, v14)
            }, {
                SliderLabel = v1.createElement("TextLabel", {
                    BorderSizePixel = 0,
                    BackgroundTransparency = 1,
                    Text = v11.props.text,
                    Size = UDim2.new(1, -2 * v16, 1, 0),
                    Position = UDim2.fromOffset(v16, 0),
                    TextColor3 = v12.Theme.TextEmphasis.Color,
                    Font = l_Font_1,
                    TextSize = v14,
                    TextXAlignment = Enum.TextXAlignment.Left
                })
            }),
            BottomFrame = v1.createElement("Frame", {
                BorderSizePixel = 0,
                BackgroundTransparency = 1,
                Size = UDim2.new(1, 0, 0, v16),
                Position = UDim2.fromOffset(0, v14)
            }, {
                LeftIcon = v1.createElement(l_ImageSetLabel_0, {
                    BackgroundTransparency = 1,
                    Image = v11.props.leftIcon,
                    Size = UDim2.fromOffset(v16, v16),
                    Position = UDim2.fromOffset(0, 0),
                    ImageColor3 = v12.Theme.TextEmphasis.Color
                }),
                SliderBar = v1.createElement(l_SystemSlider_0, {
                    min = v11.props.min,
                    max = v11.props.max,
                    stepInterval = 1,
                    value = v11.props.value,
                    onValueChanged = v11.props.onSliderChanged,
                    width = UDim.new(1, -2 * v16),
                    position = UDim2.new(0, v16, 0.5, 0),
                    anchorPoint = Vector2.new(0, 0.5),
                    NextSelectionUp = v11.props.NextSelectionUp,
                    NextSelectionDown = v11.props.NextSelectionDown,
                    [v1.Ref] = v11.sliderRef
                }),
                RightIcon = v1.createElement(l_ImageSetLabel_0, {
                    BackgroundTransparency = 1,
                    Image = v11.props.rightIcon,
                    AnchorPoint = Vector2.new(1, 0),
                    Size = UDim2.fromOffset(v16, v16),
                    Position = UDim2.fromScale(1, 0),
                    ImageColor3 = v12.Theme.TextEmphasis.Color
                })
            })
        });
    end);
end;
return v9;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_CorePackages_0.Cryo);
local v3 = require(l_CorePackages_0.Roact);
local v4 = require(l_CorePackages_0.Packages.t);
local v5 = require(l_CorePackages_0.UIBlox);
local v6 = require(l_CorePackages_0.Packages.RoactGamepad);
local v7 = require(l_Modules_0.AvatarExperience.Common.Utils);
local l_TextButton_0 = v5.App.Button.TextButton;
local l_Focusable_0 = v6.Focusable;
local l_CursorKind_0 = v5.App.SelectionImage.CursorKind;
local l_withSelectionCursorProvider_0 = v5.App.SelectionImage.withSelectionCursorProvider;
local l_withStyle_0 = v5.Style.withStyle;
local l_Images_0 = v5.App.ImageSet.Images;
local l_ControlState_0 = v5.Core.Control.Enum.ControlState;
local l_ImageSetLabel_0 = v5.Core.ImageSet.ImageSetLabel;
local l_Interactable_0 = v5.Core.Control.Interactable;
local v17 = l_Images_0["icons/actions/truncationExpand"];
local v18 = v3.PureComponent:extend("TitleDropDown");
v18.validateProps = v4.strictInterface({
    onActivated = v4.callback,
    Text = v4.string,
    NextSelectionRight = v4.optional(v4.table),
    forwardRef = v4.optional(v4.table),
    inputBindings = v4.optional(v4.table)
});
v18.init = function(v19)
    v19:setState({
        wrappingFrameAbsoluteSizeX = 0
    });
    v19.absoluteSizeChanged = function(v20)
        v19:setState({
            wrappingFrameAbsoluteSizeX = v20.AbsoluteSize.X
        });
    end;
    v19.wrappingFrameRef = v3.createRef();
    local v21, v22 = v3.createBinding(false);
    v19.useBackgroundTransparency = v21;
    v19.updateUseBackgroundTransparency = v22;
    v19.onStateChanged = function(_, v24)
        if not (v24 ~= l_ControlState_0.Pressed) or v24 == l_ControlState_0.Hover then
            v19.updateUseBackgroundTransparency(true);
            return ;
        else
            v19.updateUseBackgroundTransparency(false);
            return ;
        end;
    end;
end;
v18.render = function(v25)
    return l_withStyle_0(function(v26)
        return l_withSelectionCursorProvider_0(function(v27)
            return v25:renderWithProviders(v26, v27);
        end);
    end);
end;
v18.renderLabel = function(v28, _, _)
    return v3.createElement(l_TextButton_0, {
        size = UDim2.fromScale(0, 1),
        layoutOrder = 1,
        onActivated = v28.props.onActivated,
        text = v28.props.Text,
        fontStyle = "Header1"
    });
end;
v18.renderButton = function(v31, v32, v33)
    local l_Text_0 = v31.props.Text;
    local l_TextEmphasis_0 = v32.TextEmphasis;
    local l_Header1_0 = v33.Header1;
    local v37 = 28 * l_Header1_0.RelativeSize;
    local v38 = v33.BaseSize * l_Header1_0.RelativeSize;
    local l_Color_0 = v32.BackgroundOnHover.Color;
    local l_wrappingFrameAbsoluteSizeX_0 = v31.state.wrappingFrameAbsoluteSizeX;
    local v41 = l_wrappingFrameAbsoluteSizeX_0 > 0;
    local v42, v43 = v7.getLargestPossibleOneLineTextSize(l_Text_0, v38, l_Header1_0, (math.max(l_wrappingFrameAbsoluteSizeX_0 - v37, 0)));
    if v42 == nil then
        return nil;
    else
        local v44 = UDim2.fromOffset(v42.X, v42.Y);
        local v45 = {};
        if v41 then
            v45 = {
                {
                    Padding = v3.createElement("UIPadding", {
                        PaddingLeft = UDim.new(0, 8),
                        PaddingRight = UDim.new(0, 8)
                    }),
                    Corner = v3.createElement("UICorner", {
                        CornerRadius = UDim.new(0, 8)
                    }),
                    UIListLayout = v3.createElement("UIListLayout", {
                        FillDirection = Enum.FillDirection.Horizontal,
                        HorizontalAlignment = Enum.HorizontalAlignment.Center,
                        VerticalAlignment = Enum.VerticalAlignment.Center,
                        SortOrder = Enum.SortOrder.LayoutOrder
                    }),
                    TextLabel = v3.createElement("TextLabel", {
                        TextColor3 = l_TextEmphasis_0.Color,
                        TextTransparency = l_TextEmphasis_0.Transparency,
                        Font = l_Header1_0.Font,
                        LayoutOrder = 1,
                        TextWrapped = 1,
                        Text = l_Text_0,
                        TextXAlignment = Enum.TextXAlignment.Center,
                        TextYAlignment = Enum.TextYAlignment.Center,
                        Size = v44,
                        TextSize = v43,
                        BackgroundTransparency = 1
                    }),
                    Icon = v3.createElement(l_ImageSetLabel_0, {
                        AnchorPoint = Vector2.new(0.5, 0.5),
                        BackgroundTransparency = 1,
                        BorderSizePixel = 0,
                        Image = v17,
                        ImageColor3 = l_TextEmphasis_0.Color,
                        LayoutOrder = 2,
                        Position = UDim2.fromScale(0.5, 0.5),
                        Size = UDim2.fromOffset(v37, v37)
                    })
                }
            };
        end;
        return v3.createElement("Frame", {
            BackgroundTransparency = 1,
            Size = UDim2.fromScale(1, 1),
            [v3.Change.AbsoluteSize] = v31.absoluteSizeChanged,
            [v3.Ref] = v31.wrappingFrameRef
        }, {
            Interactable = v3.createElement(l_Interactable_0, {
                onStateChanged = v31.onStateChanged,
                BackgroundTransparency = 1,
                BorderSizePixel = 0,
                Selectable = false,
                [v3.Event.Activated] = v31.props.onActivated,
                Size = UDim2.fromScale(1, 1)
            }, {
                ButtonContentFrame = v3.createElement("Frame", {
                    BackgroundColor3 = l_Color_0,
                    BackgroundTransparency = v31.useBackgroundTransparency:map(function(v46)
                        if not v46 then
                            return 1;
                        else
                            return v32.BackgroundOnHover.Transparency;
                        end;
                    end),
                    AutomaticSize = Enum.AutomaticSize.XY,
                    AnchorPoint = Vector2.new(0.5, 0.5),
                    Position = UDim2.fromScale(0.5, 0.5)
                }, v45)
            })
        });
    end;
end;
v18.didUpdate = function(v47)
    if v47.wrappingFrameRef.current then
        local _ = v47.wrappingFrameRef.current.AbsoluteSize;
    end;
end;
v18.renderWithProviders = function(v49, v50, v51)
    return v3.createElement(l_Focusable_0.Frame, {
        Size = UDim2.fromScale(1, 1),
        BackgroundTransparency = 1,
        SelectionImageObject = v51(l_CursorKind_0.RoundedRectNoInset),
        NextSelectionRight = v49.props.NextSelectionRight,
        [v3.Ref] = v49.props.forwardRef,
        inputBindings = {
            ActivateTitleDropDown = v6.Input.onBegin(Enum.KeyCode.ButtonA, function()
                v49.props.onActivated();
            end)
        }
    }, {
        Padding = v3.createElement("UIPadding", {
            PaddingLeft = UDim.new(0, 2),
            PaddingRight = UDim.new(0, 8)
        }),
        Button = v49:renderButton(v50.Theme, v50.Font)
    });
end;
return v3.forwardRef(function(v52, v53)
    return v3.createElement(v18, v2.Dictionary.join(v52, {
        forwardRef = v53
    }));
end);


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_CorePackages_0 = game:GetService("CorePackages");
local v2 = require(l_CorePackages_0.Packages.Dash);
local v3 = require(l_CorePackages_0.Packages.t);
local v4 = require(l_CorePackages_0.Roact);
local v5 = require(l_CorePackages_0.RoactNavigation);
local v6 = require(l_CorePackages_0.UIBlox);
local l_Images_0 = v6.App.ImageSet.Images;
local l_withStyle_0 = v6.Style.withStyle;
local l_IconButton_0 = v6.App.Button.IconButton;
local l_IconSize_0 = v6.App.ImageSet.Enum.IconSize;
local v11 = require(l_Modules_0.LuaApp.Components.TopBar.TopBar);
local v12 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AvatarScreen);
local v13 = v4.PureComponent:extend("ManageButton");
v13.validateProps = v3.strictInterface({
    formFactor = v3.string,
    isCompactView = v3.boolean,
    isUnderTitleSearchBarEnabled = v3.boolean,
    isSearching = v3.boolean,
    setVisible = v2.isCallable,
    cancelSearch = v2.isCallable,
    activateSearch = v2.isCallable,
    buttonRef = v3.optional(v3.table),
    navigation = v3.table
});
v13.init = function(v14)
    v14.showManageCostumesCallback = function()
        v14.props.navigation.navigate(v12.ManageOutfitPage);
    end;
end;
v13.render = function(v15)
    return l_withStyle_0(function(v16)
        return v4.createElement(l_IconButton_0, {
            size = UDim2.new(0, v11.getIconButtonSize(v15.props.formFactor), 1, 0),
            icon = l_Images_0["icons/common/settings"],
            iconSize = l_IconSize_0.Medium,
            iconColor3 = v16.Theme.SystemPrimaryDefault.Color,
            iconTransparency = v16.Theme.SystemPrimaryDefault.Transparency,
            onActivated = v15.showManageCostumesCallback,
            buttonRef = v15.props.buttonRef
        });
    end);
end;
return (v5.withNavigation(v13));


local l_CoreGui_0 = game:GetService("CoreGui");
local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = l_CoreGui_0.RobloxGui.Modules;
local v3 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AvatarScreen);
local l_DeviceOrientationMode_0 = require(l_CorePackages_0.Workspace.Packages.RobloxAppEnums).DeviceOrientationMode;
local v5 = require(l_Modules_0.LuaApp.Components.TopBar.Buttons.makeBackButton);
local v6 = require(l_CorePackages_0.Packages.React);
local _ = require(l_Modules_0.AvatarExperience.Common.AvatarExperienceState);
local v8 = require(l_Modules_0.LuaApp.Components.TopBar.TopBarConstants);
local l_useInitializedValue_0 = require(l_CorePackages_0.UIBlox).Core.Hooks.useInitializedValue;
local l_useSelector_0 = require(l_CorePackages_0.Workspace.Packages.RoactUtils).Hooks.RoactRodux.useSelector;
local v11 = require(l_Modules_0.AvatarExperience.Common.Hooks.useAvatarRoute);
return function(v12)
    return function(v13)
        local v14 = l_useInitializedValue_0(function()
            return v5(v12);
        end);
        local v16 = l_useSelector_0(function(v15)
            return v15.AvatarExperience.Common.ItemDetailsExpanded;
        end);
        local v18 = l_useSelector_0(function(v17)
            return v17.DeviceOrientation == l_DeviceOrientationMode_0.Portrait;
        end);
        local v19 = v11().current.name == v3.SortAndFilters;
        if not v18 or not v16 and not v19 then
            return v6.createElement(v14, v13);
        else
            return v6.createElement("TextButton", {
                Active = false,
                AutoButtonColor = false,
                AnchorPoint = Vector2.new(0.5, 0.5),
                BackgroundTransparency = 1,
                Position = UDim2.fromScale(0.5, 0.5),
                Size = UDim2.fromOffset(v8.BACK_BUTTON_SIZE, v8.BACK_BUTTON_SIZE),
                Text = ""
            });
        end;
    end;
end;


local l_CorePackages_0 = game:GetService("CorePackages");
local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v2 = require(l_CorePackages_0.Workspace.Packages.ArgCheck);
local v3 = require(l_CorePackages_0.Packages.Dash);
local v4 = require(l_CorePackages_0.Packages.t);
local v5 = require(l_CorePackages_0.Roact);
local v6 = require(l_CorePackages_0.RoactRodux);
local v7 = require(l_CorePackages_0.RoactNavigation);
local l_withLocalization_0 = require(l_CorePackages_0.Workspace.Packages.Localization).withLocalization;
local v9 = require(l_Modules_0.AvatarExperience.Common.Components.TitleDropDown);
local v10 = require(l_Modules_0.AvatarExperience.Common.Components.RoactNavigation.AvatarScreen);
local v11 = require(l_Modules_0.AvatarExperience.Common.Thunks.NavigateWithLock);
local v12 = v4.strictInterface({
    formFactor = v4.string,
    isCompactView = v4.boolean,
    isUnderTitleSearchBarEnabled = v4.boolean,
    isSearching = v4.boolean,
    setVisible = v3.isCallable,
    cancelSearch = v3.isCallable,
    activateSearch = v3.isCallable,
    buttonRef = v4.optional(v4.table),
    navigateWithLock = v4.callback,
    navigation = v4.table
});
return function(v13, v14)
    return (v7.withNavigation((v6.connect(nil, function(v15)
        return {
            navigateWithLock = function(v16)
                v15(v11(v16));
            end
        };
    end)(function(v17)
        v2.assert(v12(v17));
        return l_withLocalization_0({
            title = v13
        })(function(v18)
            return v5.createElement(v9, {
                Text = v18.title or "",
                onActivated = function()
                    v17.navigateWithLock(function()
                        v17.navigation.navigate(v10.AXTransitionContextualMenu, {
                            onOverlayClosed = v14
                        });
                    end);
                end,
                [v5.Ref] = v17.buttonRef
            });
        end);
    end))));
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(game:GetService("CorePackages").Packages.React);
local v2 = require(l_Modules_0.AvatarExperience.Catalog.Components.Search.ResultsHeader);
return function(v3)
    return v1.createElement(v1.Fragment, nil, {
        UIListLayout = v1.createElement("UIListLayout", {
            FillDirection = Enum.FillDirection.Vertical,
            SortOrder = Enum.SortOrder.LayoutOrder,
            HorizontalAlignment = Enum.HorizontalAlignment.Left
        }),
        ResultsHeader = if not v3.hideResultsHeader then v1.createElement(v2, {
            searchUuid = v3.searchUuid
        }) else nil,
        ManualPaddingFrame = v1.createElement("Frame", {
            Size = UDim2.new(1, 0, 0, 11),
            BackgroundTransparency = 1,
            LayoutOrder = 2
        })
    });
end;


local v0 = require(game:GetService("CorePackages").Packages.React);
return function(v1)
    return v0.createElement("Frame", {
        BackgroundTransparency = 1,
        Size = UDim2.new(1, 0, 0, v1.height)
    });
end;


local v0 = require(game:GetService("CorePackages").Packages.React);
return function(v1, v2, v3, v4)
    local v5 = v0.useRef(v1);
    v0.useEffect(function()
        local v6 = v3();
        if v6 then
            assert(v6, "");
            local l_current_0 = v6.current;
            if l_current_0 then
                if v1 ~= v5.current then
                    v5.current = v1;
                    l_current_0.CanvasPosition = Vector2.new(0, 0);
                    return ;
                elseif not v2 or not l_current_0 then
                    if not v2 then
                        l_current_0.CanvasPosition = Vector2.new(0, v4.current or 0);
                    end;
                    return ;
                else
                    l_current_0.CanvasPosition = Vector2.new(0, 0);
                    return ;
                end;
            else
                return ;
            end;
        else
            return ;
        end;
    end, {
        v1,
        v2,
        v3,
        v4
    });
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(l_Modules_0.AvatarExperience.Common.Enum.CatalogCategories);
local v2 = require(l_Modules_0.AvatarExperience.Catalog.GetCatalogCategories);
local v3 = require(l_Modules_0.AvatarExperience.Flags.GetFFlagAXItemCardTallEnabled);
local v4 = require(l_Modules_0.AvatarExperience.Common.Util.IXPUtils);
local v5 = require(l_Modules_0.AvatarExperience.Flags.ItemTileTallIXPTest);
useTallTileIXPEnabled = function(v6)
    local v7 = v4.useTestVariables(v5.IsTallCatalogItemTileForUser);
    if v3() and v7 == true then
        local v8 = v2()[v6];
        local v9 = v8 and v8.NavigationKey;
        local v10 = true;
        if v9 ~= v1.AllAnimations then
            v10 = v9 == v1.Characters;
        end;
        return v10;
    else
        return false;
    end;
end;
return useTallTileIXPEnabled;


local _ = require(game:GetService("CoreGui").RobloxGui.Modules.AvatarExperience.Common.Components.WidgetList.Types);
return function(v1, v2, v3)
    local v4 = {};
    for v5 = 1, v2 do
        v4[v5] = {};
    end;
    for v6, v7 in v1, nil, nil do
        local v8 = v4[math.ceil(v6 / v3)];
        if v8 then
            table.insert(v8, v7);
        end;
    end;
    return v4;
end;


return function(v0, v1)
    return (math.floor(v0 / math.max(1, v1)));
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local v1 = require(l_Modules_0.AvatarExperience.Common.Constants);
local v2 = require(l_Modules_0.AvatarExperience.Common.Utils);
local v3 = require(l_Modules_0.AvatarExperience.Flags.GetFFlagAXItemCardTallEnabled);
local _ = require(l_Modules_0.AvatarExperience.Common.Types);
return function(v5, v6, v7, v8)
    local l_Font_0 = v5.Font;
    return Vector2.new(v7, v2.GridItemHeightGetter(if not v3() then v1.ItemTileType.CatalogItemTile else v8 or v1.ItemTileType.CatalogItemTile, l_Font_0.Header2.RelativeSize * l_Font_0.BaseSize, v6)(v7));
end;


local _ = require(game:GetService("CoreGui").RobloxGui.Modules.AvatarExperience.Common.Components.WidgetList.Types);
return function(v1)
    local v2 = {};
    for _, v4 in v1, nil, nil do
        if not (not v4.id or not v4.type) then
            table.insert(v2, v4.type .. v4.id);
        end;
    end;
    return v2;
end;


local _ = require(game:GetService("CoreGui").RobloxGui.Modules.AvatarExperience.Common.Types);
return function(v1, v2)
    local v3 = {};
    if not (not v1 or not v1.content) then
        for _, v5 in v1.content, nil, nil do
            if v5.id then
                table.insert(v3, v5.id);
            end;
        end;
    end;
    if v2 < #v3 then
        v3 = table.move(v3, 1, v2, 1, {});
    end;
    return v3;
end;


local l_Modules_0 = game:GetService("CoreGui").RobloxGui.Modules;
local l_CorePackages_0 = game:GetService("CorePackages");
local v2 = require(l_CorePackages_0.Packages.React);
local v3 = require(l_CorePackages_0.Packages.RoactGamepad);
local l_FlatList_0 = require(l_CorePackages_0.Packages.VirtualizedList).FlatList;
local l_useScreenSize_0 = require(l_CorePackages_0.Workspace.Packages.RobloxAppHooks).useScreenSize;
local _ = require(l_CorePackages_0.Workspace.Packages.AppCommonLib);
local v7 = require(l_CorePackages_0.UIBlox);
local l_useStyle_0 = v7.Core.Style.useStyle;
local l_GridMetrics_0 = v7.App.Grid.GridMetrics;
local v10 = require(l_Modules_0.LuaApp.Components.EndOfScroll);
local v11 = require(l_Modules_0.LuaApp.Components.LoadingBarWithTheme);
local v12 = require(l_Modules_0.AvatarExperience.Common.Constants);
local v13 = require(l_Modules_0.AvatarExperience.Common.Enum.CatalogCategories);
local v14 = require(l_Modules_0.AvatarExperience.Catalog.GetCatalogCategories);
local _ = require(l_CorePackages_0.Packages.LuauPolyfill);
local _ = require(l_Modules_0.AvatarExperience.Common.Types);
local _ = require(l_Modules_0.AvatarExperience.Common.Components.WidgetList.Types);
local v18 = require(l_Modules_0.AvatarExperience.Common.Components.WidgetList.Utils.getItemCountForRow);
local v19 = require(l_Modules_0.AvatarExperience.Common.Components.WidgetList.Utils.getItemSize);
local v20 = require(l_Modules_0.AvatarExperience.Common.Components.WidgetList.Hooks.useRestoreYPositionOnDefocusEffect);
local v21 = require(l_Modules_0.AvatarExperience.Common.Components.WidgetList.Hooks.useRenderInfo);
local v22 = require(l_Modules_0.AvatarExperience.Common.Components.WidgetList.Hooks.useTallTileIXPEnabled);
local v23 = require(l_Modules_0.AvatarExperience.Common.Util.IXPUtils);
local v24 = require(l_Modules_0.AvatarExperience.Flags.ItemTileSizeIXPTest);
local v25 = require(l_Modules_0.AvatarExperience.Flags.GetFFlagAXItemCardRedesignIXPEnabled);
local v26 = require(l_Modules_0.AvatarExperience.Flags.GetFFlagAXItemCardTallEnabled);
local v27 = require(l_Modules_0.AvatarExperience.Flags.GetFStringAXTallTilesThumbnailSize);
local v28 = require(l_Modules_0.AvatarExperience.Flags.GetFFlagAXSearchResultsCategories);
local v29 = require(l_Modules_0.AvatarExperience.Flags.GetFFlagAXWidgetItemsPerRowLowerBound);
local l_GetFFlagAXFixScrollToTopBug_0 = require(l_CorePackages_0.Workspace.Packages.SharedFlags).GetFFlagAXFixScrollToTopBug;
local v31 = {
    WINDOW_SIZE = game:DefineFastInt("WidgetListWindowSize", 21),
    INITIAL_NUM_TO_RENDER = 8,
    MAX_TO_RENDER_PER_BATCH = 1,
    UPDATE_CELLS_BATCHING_PERIOD = 30,
    SCROLL_EVENT_THROTTLE = 0,
    ON_END_REACHED_THRESHOLD = 4
};
local v32 = {
    BackgroundTransparency = 1,
    BorderSizePixel = 0
};
local v33 = {
    Selectable = false,
    BackgroundTransparency = 1,
    ScrollBarThickness = 0,
    LayoutOrder = 2,
    ElasticBehavior = Enum.ElasticBehavior.Always,
    ClipsDescendants = false
};
local function v35(v34)
    return v34.item.render();
end;
local function v90(v36)
    local v37 = v36.gridRef or v2.useRef(nil);
    local v38 = if not not v28() and v36.enableSearchResultsCategories then v36.flatListRef or v2.useRef(nil) else v2.useRef(nil);
    local v39 = v3.useRefCache();
    local v40, v41 = v2.useState(0);
    local v42 = l_useStyle_0();
    local l_Theme_0 = v42.Theme;
    local v44 = if not v26() then nil else v22(v36.selectedCategoryIndex);
    local v45 = if not v44 then nil else v12.ItemTileTallAspectRatio;
    local v46 = if not v44 then nil else Enum.ScaleType.Crop;
    local v47 = if not v44 then nil else v27();
    local v51 = if not v25() then nil else v2.useMemo(function()
        if not (v36.isSmallCatalogItemTileIXP ~= true) or v36.isLargeCatalogItemTileIXP == true then
            local v48 = nil;
            if v36.selectedCategoryIndex then
                local v49 = v14()[v36.selectedCategoryIndex];
                v48 = v49 and v49.NavigationKey;
            end;
            local v50 = false;
            if v48 ~= v13.AllAnimations then
                v50 = v48 ~= v13.Characters;
            end;
            return v50;
        else
            return false;
        end;
    end, {
        v36.selectedCategoryIndex,
        v36.isSmallCatalogItemTileIXP,
        v36.isLargeCatalogItemTileIXP
    });
    local v52 = if not v25() then nil else l_useScreenSize_0();
    local v65 = if not v25() then nil else v2.useCallback(function(v53, v54)
        local function _(v55, v56)
            local v57 = l_GridMetrics_0.getMediumMetrics(v55, v56).itemsPerRow + 2;
            return {
                itemsPerRow = v57,
                itemWidth = math.floor((v55 - (v57 - 1) * v56) / v57),
                widgetsPerRow = v57
            };
        end;
        local function v63(v59, v60)
            local v61 = l_GridMetrics_0.getMediumMetrics(v59, v60);
            local v62 = v61.itemsPerRow or 0;
            if v52 ~= nil and v52.X <= v12.MobileScreenXBreakpoint then
                v62 = v62 * 2;
            end;
            return {
                itemsPerRow = v61.itemsPerRow,
                itemWidth = v61.itemWidth,
                widgetsPerRow = v62
            };
        end;
        if v51 then
            if v36.isSmallCatalogItemTileIXP == true then
                local v64 = l_GridMetrics_0.getMediumMetrics(v53, v54).itemsPerRow + 2;
                return {
                    itemsPerRow = v64,
                    itemWidth = math.floor((v53 - (v64 - 1) * v54) / v64),
                    widgetsPerRow = v64
                };
            elseif v36.isSmallCatalogItemTileIXP == false then
                return (v63(v53, v54));
            end;
        end;
        return l_GridMetrics_0.getSmallMetrics(v53, v54);
    end, {
        v36.isSmallCatalogItemTileIXP,
        v36.isSmallCatalogItemTileIXP,
        v51,
        v52
    });
    local v66 = if not not v25() and v65 ~= nil then v65(math.max(v40 - 30, 0), 10) else l_GridMetrics_0.getSmallMetrics(math.max(v40 - 30, 0), 10);
    local v67 = v18((v40 - 30) + 10, v66.itemWidth + 10);
    if v29() then
        v67 = math.max(v67, 1);
    end;
    local v68 = if not v44 then v19(v42, v51, v66.itemWidth) else v19(v42, v51, v66.itemWidth, if not v44 then v12.ItemTileType.CatalogItemTile else v12.ItemTileType.TallCatalogItemTile);
    local v69 = if not not v25() and v51 then v66.widgetsPerRow else v67;
    local v70, v71 = v2.useState(false);
    local v72 = v2.useCallback(function()
        if not (v36.focusedWidget or not v36.loadMore) then
            v71(true);
            v36.loadMore():andThen(function()
                v71(false);
            end, function()
                v71(false);
            end);
        end;
    end, {
        v36.loadMore,
        v36.focusedWidget
    });
    local v74 = v2.useCallback(function()
        if v38.current ~= nil then
            local v73 = v38.current:getNativeScrollRef();
            if v73 ~= nil then
                return v73._nativeRef;
            end;
        end;
        return nil;
    end, {});
    local v75 = v2.useCallback(function()
        if v38.current then
            v38.current:scrollToOffset({
                offset = 0,
                animated = true
            });
        end;
    end, {});
    local v76 = v2.useRef(0);
    local v78 = v2.useCallback(function(...)
        local v77 = v74();
        if not (not v77 or not v77.current) then
            v76.current = v77.current.CanvasPosition.Y;
        end;
        if v36.onWidgetFocusAcquired then
            v36.onWidgetFocusAcquired(...);
        end;
    end, {
        v36.onWidgetFocusAcquired,
        v74
    });
    v20(v36.searchUuid, v36.focusedWidget, v74, v76);
    local v79, v80 = v2.useState(false);
    if l_GetFFlagAXFixScrollToTopBug_0() then
        local v81 = v74();
        local l_v81_0 = v81 --[[ copy: 29 -> 33 ]];
        v2.useEffect(function()
            local v83 = nil;
            if not (not l_v81_0 or not l_v81_0.current) then
                v83 = l_v81_0.current:GetPropertyChangedSignal("AbsoluteCanvasSize"):Connect(function()
                    v80(l_v81_0.current.AbsoluteWindowSize.Y < l_v81_0.current.AbsoluteCanvasSize.Y);
                end);
            end;
            return function()
                if v83 then
                    v83:Disconnect();
                end;
            end;
        end, {
            v81
        });
    end;
    local v84 = if not v36.createEndOfScrollElement then if v70 then v2.createElement("Frame", {
        BackgroundTransparency = 1,
        Size = UDim2.new(1, 0, 0, 56)
    }, {
        LoadingBar = v2.createElement(v11)
    }) else nil else if l_GetFFlagAXFixScrollToTopBug_0() and v79 then v2.createElement(v10, {
        backToTopCallback = v75
    }) else nil;
    local v86 = v2.useCallback(function(v85)
        if v36.onScroll then
            v36.onScroll(v85.CanvasPosition.Y);
        end;
    end, {
        v36.onScroll
    });
    local v87 = v21(v68, v67, v69, v36.searchUuid, v36.entries, v36.showingEntries, v36.numItemsExpected, v36.fromSearch, v36.topPanelHeight, v36.bottomBarHeight, v36.focusedWidget, v78, v36.onWidgetFocusReleased, v36.hasMoreRows, v36.itemDetailsPeekViewRefs, v39, v37, v36.onFocusGained, v36.requestImpressionsSignal, v74, v65, v51, v45, v46, v47, v36.enableSearchResultsCategories);
    local v89 = v2.useCallback(function(v88)
        v41(v88.AbsoluteSize.X);
    end, {});
    v2.useEffect(function()
        if v36.onNumItemsPerRowChanged then
            v36.onNumItemsPerRowChanged(v67);
        end;
    end, {
        v36.onNumItemsPerRowChanged,
        v67
    });
    return v2.createElement(v3.Focusable.Frame, {
        BackgroundColor3 = l_Theme_0.BackgroundDefault.Color,
        BackgroundTransparency = l_Theme_0.BackgroundDefault.Transparency,
        BorderSizePixel = 0,
        Size = UDim2.new(1, 0, 1, 0),
        ClipsDescendants = true,
        [v2.Change.AbsoluteSize] = v89,
        ref = v37,
        defaultChild = if not v36.showingEntries then nil else v39[1],
        restorePreviousChildFocus = v36.restorePreviousChildFocus,
        NextSelectionRight = v36.NextSelectionRight,
        NextSelectionUp = v36.NextSelectionUp
    }, {
        UIPadding = v2.createElement("UIPadding", {
            PaddingTop = UDim.new(0, 10),
            PaddingLeft = UDim.new(0, 15),
            PaddingRight = UDim.new(0, 15),
            PaddingBottom = UDim.new(0, 10)
        }),
        WidgetFlatList = v2.createElement(l_FlatList_0, {
            data = v87,
            renderItem = v35,
            windowSize = v31.WINDOW_SIZE,
            initialNumToRender = v31.INITIAL_NUM_TO_RENDER,
            maxToRenderPerBatch = v31.MAX_TO_RENDER_PER_BATCH,
            updateCellsBatchingPeriod = v31.UPDATE_CELLS_BATCHING_PERIOD,
            scrollEventThrottle = v31.SCROLL_EVENT_THROTTLE,
            UNSTABLE_forceSiblingLayoutUpdate = true,
            ref = v38,
            contentContainerStyle = v32,
            style = v33,
            onScroll = v86,
            onEndReachedThreshold = v31.ON_END_REACHED_THRESHOLD,
            onEndReached = v72,
            showDefaultLoadingIndicators = true,
            ListFooterComponent = v84,
            scrollEnabled = v36.scrollingEnabled
        })
    });
end;
if v25() then
    v90 = v23.connectTestVariables({
        isLargeCatalogItemTileIXP = v24.IsLargeCatalogItemTileForUser,
        isSmallCatalogItemTileIXP = v24.IsSmallCatalogItemTileForUser
    })(v90);
end;
return v90;


return {
    WidgetList = require(script.WidgetList),
    WidgetListDeprecated = require(script.WidgetList_DEPRECATED)
};