/*******************************************************************************
 *  Copyright (c) 2000, 2019 IBM Corporation and others.
 *
 *  This program and the accompanying materials
 *  are made available under the terms of the Eclipse Public License 2.0
 *  which accompanies this distribution, and is available at
 *  https://www.eclipse.org/legal/epl-2.0/
 *
 *  SPDX-License-Identifier: EPL-2.0
 *
 *  Contributors:
 *  IBM - Initial API and implementation
 *******************************************************************************/
package org.eclipse.debug.internal.ui.preferences;

import org.eclipse.osgi.util.NLS;

public class DebugPreferencesMessages extends NLS {
	private static final String BUNDLE_NAME = "org.eclipse.debug.internal.ui.preferences.DebugPreferencesMessages";//$NON-NLS-1$

	public static String ConsolePreferencePage_11;

	public static String ConsolePreferencePage_Console_settings;
	public static String ConsolePreferencePage_Show__Console_View_when_there_is_program_error_3;
	public static String ConsolePreferencePage_Show__Console_View_when_there_is_program_output_3;
	public static String ConsolePreferencePage_Show__Console_View_enable_auto_scroll_lock;
	public static String ConsolePreferencePage_Standard_Error__3;
	public static String ConsolePreferencePage_Standard_In__4;
	public static String ConsolePreferencePage_Standard_Out__2;
	public static String ConsolePreferencePage_Wrap_text_1;
	public static String ConsolePreferencePage_Console_width;
	public static String ConsolePreferencePage_Limit_console_output_1;
	public static String ConsolePreferencePage_Console_buffer_size__characters___2;
	public static String ConsolePreferencePage_The_console_buffer_size_must_be_at_least_1000_characters__1;
	public static String ConsolePreferencePage_console_width;
	public static String ConsolePreferencePage_12;
	public static String ConsolePreferencePage_13;
	public static String ConsolePreferencePage_Interpret_control_characters;
	public static String ConsolePreferencePage_Interpret_cr_as_control_character;

	public static String DebugPreferencePage_1;
	public static String DebugPreferencePage_2;

	public static String DebugPreferencePage_29;
	public static String DebugPreferencePage_3;
	public static String DebugPreferencePage_0;

	public static String DebugPreferencePage_30;
	public static String DebugPreferencePage_31;
	public static String DebugPreferencePage_4;
	public static String DebugPreferencePage_10;
	public static String DebugPreferencePage_11;
	public static String DebugPreferencePage_21;
	public static String DebugPreferencePage_22;
	public static String DebugPreferencePage_23;
	public static String DebugPreferencePage_24;
	public static String DebugPreferencePage_25;
	public static String DebugPreferencePage_26;
	public static String DebugPreferencePage_27;

	public static String DefaultLaunchConfigurationsPropertiesPage_0;

	public static String DefaultLaunchConfigurationsPropertiesPage_1;
	public static String DefaultLaunchConfigurationsPropertiesPage_11;
	public static String DefaultLaunchConfigurationsPropertiesPage_12;
	public static String DefaultLaunchConfigurationsPropertiesPage_2;
	public static String DefaultLaunchConfigurationsPropertiesPage_3;
	public static String DefaultLaunchConfigurationsPropertiesPage_4;
	public static String DefaultLaunchConfigurationsPropertiesPage_5;
	public static String DefaultLaunchConfigurationsPropertiesPage_6;
	public static String DefaultLaunchConfigurationsPropertiesPage_7;
	public static String DefaultLaunchConfigurationsPropertiesPage_8;
	public static String DefaultLaunchConfigurationsPropertiesPage_9;

	public static String LaunchDelegatesPreferencePage_0;

	public static String LaunchDelegatesPreferencePage_1;
	public static String LaunchDelegatesPreferencePage_2;
	public static String LaunchDelegatesPreferencePage_3;

	public static String LaunchDelegatesPreferencePage_4;

	public static String LaunchersPreferencePage_0;

	public static String LaunchingPreferencePage_40;
	public static String LaunchingPreferencePage_1;
	public static String LaunchingPreferencePage_2;
	public static String LaunchingPreferencePage_3;
	public static String LaunchingPreferencePage_37;
	public static String LaunchingPreferencePage_38;
	public static String LaunchingPreferencePage_39;
	public static String LaunchingPreferencePage_4;

	public static String LaunchingPreferencePage_41;
	public static String LaunchingPreferencePage_42;
	public static String LaunchingPreferencePage_5;
	public static String LaunchingPreferencePage_6;
	public static String LaunchingPreferencePage_7;
	public static String LaunchingPreferencePage_8;
	public static String LaunchingPreferencePage_9;
	public static String LaunchingPreferencePage_10;
	public static String LaunchingPreferencePage_11;
	public static String LaunchingPreferencePage_12;
	public static String LaunchingPreferencePage_13;
	public static String LaunchingPreferencePage_14;
	public static String LaunchingPreferencePage_15;
	public static String LaunchingPreferencePage_16;
	public static String LaunchingPreferencePage_17;
	public static String LaunchingPreferencePage_18;
	public static String LaunchingPreferencePage_21;
	public static String LaunchingPreferencePage_22;
	public static String LaunchingPreferencePage_23;
	public static String LaunchingPreferencePage_26;
	public static String LaunchingPreferencePage_27;
	public static String LaunchingPreferencePage_0;
	public static String LaunchingPreferencePage_28;
	public static String LaunchingPreferencePage_29;
	public static String LaunchingPreferencePage_30;
	public static String LaunchingPreferencePage_31;
	public static String LaunchingPreferencePage_32;
	public static String LaunchingPreferencePage_33;
	public static String LaunchingPreferencePage_34;
	public static String LaunchingPreferencePage_35;
	public static String LaunchingPreferencePage_36;

	public static String LaunchingPreferencePage_confirm_0;

	public static String LaunchPerspectivePreferencePage_0;

	public static String LaunchPerspectivePreferencePage_1;

	public static String PerspectivePreferencePage_0;
	public static String PerspectivePreferencePage_1;
	public static String PerspectivePreferencePage_2;
	public static String PerspectivePreferencePage_4;
	public static String PerspectivePreferencePage_5;

	public static String LaunchConfigurationsPreferencePage_1;
	public static String LaunchConfigurationsPreferencePage_0;

	public static String ProcessPropertyPage_Command_Line__1;

	public static String SimpleVariablePreferencePage_3;
	public static String SimpleVariablePreferencePage_4;
	public static String SimpleVariablePreferencePage_5;
	public static String SimpleVariablePreferencePage_6;
	public static String SimpleVariablePreferencePage_7;
	public static String SimpleVariablePreferencePage_8;
	public static String SimpleVariablePreferencePage_9;
	public static String SimpleVariablePreferencePage_10;
	public static String SimpleVariablePreferencePage_11;
	public static String SimpleVariablePreferencePage_12;
	public static String SimpleVariablePreferencePage_13;
	public static String SimpleVariablePreferencePage_14;
	public static String SimpleVariablePreferencePage_15;
	public static String SimpleVariablePreferencePage_16;
	public static String SimpleLaunchVariablePreferencePage_21;
	public static String SimpleLaunchVariablePreferencePage_22;
	public static String SimpleLaunchVariablePreferencePage_23;

	public static String StringVariablePreferencePage_20;
	public static String StringVariablePreferencePage_21;
	public static String StringVariablePreferencePage_22;
	public static String StringVariablePreferencePage_23;
	public static String StringVariablePreferencePage_24;
	public static String StringVariablePreferencePage_25;
	public static String StringVariablePreferencePage_26;
	public static String StringVariablePreferencePage_27;

	public static String ViewManagementPreferencePage_0;
	public static String ViewManagementPreferencePage_1;
	public static String ViewManagementPreferencePage_2;
	public static String ViewManagementPreferencePage_3;
	public static String ViewManagementPreferencePage_4;
	public static String ViewManagementPreferencePage_5;

	static {
		// load message values from bundle file
		NLS.initializeMessages(BUNDLE_NAME, DebugPreferencesMessages.class);
	}

	public static String LaunchConfigurationsPreferencePage_2;

	public static String LaunchConfigurationsPreferencePage_3;

	public static String ProcessPropertyPage_0;

	public static String ProcessPropertyPage_1;

	public static String ProcessPropertyPage_2;

	public static String ProcessPropertyPage_3;

	public static String ProcessPropertyPage_4;

	public static String ProcessPropertyPage_5;

	public static String ProcessPropertyPage_6;

	public static String ProcessPropertyPage_7;

	public static String ProcessPropertyPage_8;

	public static String ProcessPropertyPage_9;

	public static String DebugPreferencePage_28;

	public static String DebugPreferencePage_5;

	public static String RunDebugPropertiesPage_0;

}
