/*******************************************************************************
 *  Copyright (c) 2005, 2009 IBM Corporation and others.
 *  All rights reserved. This program and the accompanying materials
 *  are made available under the terms of the Eclipse Public License v1.0
 *  which accompanies this distribution, and is available at
 *  http://www.eclipse.org/legal/epl-v10.html
 * 
 *  Contributors:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/
package org.eclipse.debug.internal.ui.importexport.breakpoints;

import org.eclipse.osgi.util.NLS;

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

	private ImportExportMessages() {
	}

	static {
		// initialize resource bundle
		NLS.initializeMessages(BUNDLE_NAME, ImportExportMessages.class);
	}

	public static String WizardImportBreakpoints_0;
	public static String WizardExportBreakpoints_0;
	public static String WizardBreakpointsPage_1;
	public static String WizardBreakpointsPage_2;
	public static String WizardBreakpointsPage_4;
	public static String WizardBreakpointsPage_6;
	public static String WizardBreakpointsPage_7;
	public static String WizardBreakpointsPage_8;
	public static String WizardBreakpointsPage_12;
	public static String ImportExportOperations_0;
	public static String ImportOperation_0;
	public static String WizardImportBreakpointsPage_0;
	public static String WizardImportBreakpointsPage_1;
	public static String WizardImportBreakpointsPage_2;
	public static String WizardImportBreakpointsPage_3;
	public static String WizardImportBreakpointsPage_4;
	public static String ExportOperation_0;
	public static String WizardImportBreakpointsPage_5;
	public static String WizardExportBreakpointsPage_0;
	public static String WizardExportBreakpointsPage_1;
	public static String WizardExportBreakpointsPage_2;
	public static String WizardExportBreakpointsPage_3;
	public static String WizardImportBreakpointsPage_6;
}
