/*******************************************************************************
 *  Copyright (c) 2000, 2018 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
 *  Frits Jalvingh - Contribution for Bug 459831 - [launching] Support attaching
 *     	external annotations to a JRE container
 *******************************************************************************/
package org.eclipse.jdt.internal.debug.ui.jres;

import org.eclipse.osgi.util.NLS;

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

	public static String AbstractJavaCommandTab_1;
	public static String AbstractJavaCommandTab_2;
	public static String AbstractJavaCommandTab_3;
	public static String AbstractJavaCommandTab_4;
	public static String AbstractJavaCommandTab_Java_executable_must_be_specified_5;

	public static String AddVMDialog_22;

	public static String AddVMInstallWizard_0;

	public static String BuildJREDescriptor_0;
	public static String BuildJREDescriptor_1;

	public static String InstalledJREsBlock_0;
	public static String InstalledJREsBlock_1;
	public static String InstalledJREsBlock_2;
	public static String InstalledJREsBlock_3;
	public static String InstalledJREsBlock_4;
	public static String InstalledJREsBlock_5;
	public static String InstalledJREsBlock_6;
	public static String InstalledJREsBlock_9;
	public static String InstalledJREsBlock_10;
	public static String InstalledJREsBlock_11;
	public static String InstalledJREsBlock_12;
	public static String InstalledJREsBlock_13;
	public static String InstalledJREsBlock_14;
	public static String InstalledJREsBlock_15;
	public static String InstalledJREsBlock_16;

	public static String JREsComboBlock_1;

	public static String JREsComboBlock_10;

	public static String JREsComboBlock_11;

	public static String JREsComboBlock_12;

	public static String JREsComboBlock_13;

	public static String JREsComboBlock_2;
	public static String JREsComboBlock_3;
	public static String JREsComboBlock_15;
	public static String JREsComboBlock_16;

	public static String JREContainerWizardPage_JRE_System_Library_1;
	public static String JREContainerWizardPage_3;

	public static String JREContainerWizardPage_4;

	public static String JREsPreferencePage_0;

	public static String JREsPreferencePage_1;
	public static String JREsPreferencePage_9;

	public static String JREsPreferencePage_14;
	public static String JREsPreferencePage_2;
	public static String JREsPreferencePage_10;
	public static String JREsPreferencePage_13;

	public static String JREsPreferencePage_3;
	public static String JREsPreferencePage_4;
	public static String JREsPreferencePage_5;
	public static String JREsPreferencePage_6;
	public static String JREsPreferencePage_7;
	public static String JREsPreferencePage_8;

	public static String addVMDialog_duplicateName;
	public static String addVMDialog_enterLocation;
	public static String addVMDialog_enterName;

	public static String EditVMInstallWizard_0;
	public static String addVMDialog_jreHome;
	public static String addVMDialog_jreName;
	public static String addVMDialog_jreType;
	public static String addVMDialog_locationNotExists;
	public static String addVMDialog_pickJRERootDialog_message;
	public static String AddVMDialog_JRE_system_libraries__1;
	public static String AddVMDialog_JRE_name_must_be_a_valid_file_name___0__1;
	public static String AddVMDialog_23;

	public static String MacVMSearch_0;

	public static String VMLibraryBlock_12;

	public static String VMLibraryBlock_13;

	public static String VMLibraryBlock_14;

	public static String VMLibraryBlock_15;

	public static String VMLibraryBlock_16;

	public static String VMLibraryBlock_17;

	public static String VMLibraryBlock_18;

	public static String VMLibraryBlock_19;

	public static String JREsUpdater_0;

	public static String EEVMPage_0;

	public static String EEVMPage_1;

	public static String EEVMPage_2;

	public static String EEVMPage_3;

	public static String EEVMPage_4;

	public static String EEVMPage_5;

	public static String EEVMPage_6;

	public static String EEVMPage_7;

	public static String VMTypePage_0;

	public static String VMTypePage_1;

	public static String VMTypePage_2;

	public static String VMTypePage_3;
	public static String VMLibraryBlock_0;
	public static String VMLibraryBlock_1;

	public static String VMLibraryBlock_2;
	public static String VMLibraryBlock_3;
	public static String VMLibraryBlock_4;
	public static String VMLibraryBlock_5;
	public static String VMLibraryBlock_6;
	public static String VMLibraryBlock_7;
	public static String VMLibraryBlock_9;
	public static String VMLibraryBlock_10;
	public static String VMLibraryBlock_11;
	public static String VMExternalAnnsBlock_1;
	public static String VMExternalAnnsBlock_2;
	public static String VMExternalAnnsBlock_3;
	public static String VMExternalAnnsBlock_4;

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

	public static String JREsComboBlock_0;

	public static String JREsComboBlock_4;

	public static String JREsComboBlock_5;

	public static String StandardVMPage_0;

	public static String StandardVMPage_1;

	public static String StandardVMPage_2;

	public static String StandardVMPage_3;

	public static String JREProfilesPreferencePage_0;

	public static String JREProfilesPreferencePage_1;

	public static String JREProfilesPreferencePage_2;

	public static String JREProfilesPreferencePage_3;

	public static String JREProfilesPreferencePage_4;

	public static String JREsEnvironmentLabelProvider_0;

	public static String JREsEnvironmentLabelProvider_1;

	public static String JREsComboBlock_14;

	public static String JREsComboBlock_6;

	public static String JREsComboBlock_7;

	public static String JREsComboBlock_8;

	public static String JREsComboBlock_9;

	public static String InstalledJREsBlock_19;

	public static String InstalledJREsBlock_7;

	public static String LibraryLabelProvider_0;

	public static String VMDetailsDialog_0;
}
