# /*
#  * <copyright>
#  *
#  * Copyright (c) 2007-2009 Metascape, LLC
#  * Copyright (c) 2006-2007 Argonne National Labs
#  * 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:
#  *   Argonne National Laboratory - Initial development (pre-contribution)
#  *   Metascape - Subsequent development and maintenance
#  *
#  * </copyright>
#  */


# ====================================================================
# To code developer:
#   Do NOT change the properties between this line and the
#   "%%% END OF TRANSLATED PROPERTIES %%%" line.
#   Make a new property name, append to the end of the file and change
#   the code to use the new property.
# ====================================================================

# ====================================================================
# %%% END OF TRANSLATED PROPERTIES %%%
# ====================================================================

pluginName = Acore Edit Support Testing
providerName = Eclipse Agent Modeling Platform

