<?xml version="1.0" encoding="UTF-8"?>
<gmfgen:GenEditorGenerator xmi:version="2.0"
    xmlns:xmi="http://www.omg.org/XMI"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:gmfgen="http://www.eclipse.org/gmf/2009/GenModel"
    xmlns:u2tgen="http://www.eclipse.org/modeling/mdt/uml2tools/gmf/GenModel" packageNamePrefix="org.eclipse.uml2.diagram.deploy"
    modelID="UMLDeployment"
    diagramFileExtension="umldepl,umldeployment_diagram"
    dynamicTemplates="true"
    templateDirectory="/org.eclipse.uml2.diagram.def/dynamic-templates/codegen">
  <diagram
      visualID="1000"
      editPartClassName="PackageEditPart"
      itemSemanticEditPolicyClassName="PackageItemSemanticEditPolicy"
      canonicalEditPolicyClassName="PackageCanonicalEditPolicy"
      iconProviderPriority="Low"
      creationWizardCategoryID="org.eclipse.uml2.diagram.New"
      validationProviderPriority="Low">
    <diagramRunTimeClass
        href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Diagram"/>
    <elementType
        xsi:type="gmfgen:MetamodelType"
        editHelperClassName="PackageEditHelper"/>
    <viewmap
        xsi:type="gmfgen:FigureViewmap"
        figureQualifiedClassName="org.eclipse.draw2d.FreeformLayer">
      <attributes
          xsi:type="u2tgen:LinkToolStackInfoAttribute"
          toolgroupTitle="Dependency"
          elementUniqueIdentifier="Dependency_4005"/>
    </viewmap>
    <containsShortcutsTo>uml</containsShortcutsTo>
    <shortcutsProvidedFor>uml</shortcutsProvidedFor>
    <domainDiagramElement
        href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Package"/>
    <childNodes
        xsi:type="gmfgen:GenChildLabelNode"
        visualID="3001"
        editPartClassName="ElementImportEditPart"
        itemSemanticEditPolicyClassName="ElementImportItemSemanticEditPolicy"
        notationViewFactoryClassName="ElementImportViewFactory"
        canonicalEditPolicyClassName="ElementImportCanonicalEditPolicy"
        graphicalNodeEditPolicyClassName="ElementImportGraphicalNodeEditPolicy"
        createCommandClassName="ElementImportCreateCommand"
        containers="//@diagram/@compartments.0">
      <diagramRunTimeClass
          href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
      <elementType
          xsi:type="gmfgen:MetamodelType"
          editHelperClassName="ElementImportEditHelper"/>
      <viewmap
          xsi:type="gmfgen:FigureViewmap"
          figureQualifiedClassName="org.eclipse.draw2d.Label"/>
      <modelFacet>
        <metaClass
            href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/ElementImport"/>
        <containmentMetaFeature
            href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Namespace/elementImport"/>
        <childMetaFeature
            href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Namespace/elementImport"/>
      </modelFacet>
      <labelModelFacet
          xsi:type="gmfgen:FeatureLabelModelFacet"
          parser="//@labelParsers/@implementations.0">
        <metaFeatures
            href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/ElementImport/alias"/>
      </labelModelFacet>
    </childNodes>
    <childNodes
        visualID="3004"
        editPartClassName="Device2EditPart"
        itemSemanticEditPolicyClassName="Device2ItemSemanticEditPolicy"
        notationViewFactoryClassName="Device2ViewFactory"
        canonicalEditPolicyClassName="Device2CanonicalEditPolicy"
        compartments="//@diagram/@compartments.2"
        graphicalNodeEditPolicyClassName="Device2GraphicalNodeEditPolicy"
        createCommandClassName="Device2CreateCommand"
        containers="//@diagram/@compartments.2 //@diagram/@compartments.1">
      <diagramRunTimeClass
          href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
      <elementType
          xsi:type="gmfgen:SpecializationType"
          metamodelType="//@diagram/@topLevelNodes.1/@elementType"/>
      <viewmap
          xsi:type="gmfgen:InnerClassViewmap"
          className="DeviceFigure"
          classBody="&#xA;/**&#xA; * @generated&#xA; */&#xA;public class DeviceFigure extends org.eclipse.uml2.diagram.common.draw2d.Cube3DFigure {&#xA;&#xA;&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public DeviceFigure() {&#xA;&#x9;&#x9;&#x9;&#x9;&#xA;&#xA;&#xA;&#xA;this.setTypeLabelVisible(&#xA;true);&#xA;&#xA;&#xA;&#x9;}&#xA;&#xA;&#xA;&#xA;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public org.eclipse.draw2d.Label getNameLabel() {&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;return super.getNameLabel();&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;}&#xD;&#xA;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public org.eclipse.draw2d.RectangleFigure getContentPane() {&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;return super.getContentPane();&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;}&#xD;&#xA;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public org.eclipse.uml2.diagram.common.draw2d.StereotypeLabel getDeviceTypeLabel() {&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;return getTypeLabel();&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;}&#xD;&#xA;&#xA;&#xA;}&#xA;&#xA;">
        <attributes
            xsi:type="gmfgen:DefaultSizeAttributes"
            width="100"
            height="60"/>
      </viewmap>
      <modelFacet>
        <metaClass
            href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Device"/>
        <containmentMetaFeature
            href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Node/nestedNode"/>
        <childMetaFeature
            href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Node/nestedNode"/>
        <modelElementInitializer
            xsi:type="gmfgen:GenFeatureSeqInitializer">
          <initializers
              xsi:type="gmfgen:GenFeatureValueSpec"
              value="//@expressionProviders/@providers.0/@expressions.0">
            <feature
                href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/NamedElement/name"/>
          </initializers>
        </modelElementInitializer>
      </modelFacet>
      <labels
          visualID="5010"
          editPartClassName="DeviceName2EditPart"
          itemSemanticEditPolicyClassName="DeviceName2ItemSemanticEditPolicy"
          notationViewFactoryClassName="DeviceName2ViewFactory"
          elementIcon="true">
        <diagramRunTimeClass
            href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
        <viewmap
            xsi:type="gmfgen:ParentAssignedViewmap"
            getterName="getNameLabel"
            figureQualifiedClassName="org.eclipse.draw2d.Label"/>
        <modelFacet
            xsi:type="gmfgen:FeatureLabelModelFacet"
            parser="//@labelParsers/@implementations.0">
          <metaFeatures
              href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/NamedElement/name"/>
        </modelFacet>
      </labels>
      <labels
          visualID="5018"
          editPartClassName="DeviceStereo2EditPart"
          itemSemanticEditPolicyClassName="DeviceStereo2ItemSemanticEditPolicy"
          notationViewFactoryClassName="DeviceStereo2ViewFactory">
        <diagramRunTimeClass
            href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
        <viewmap
            xsi:type="gmfgen:ParentAssignedViewmap"
            getterName="getDeviceTypeLabel"
            figureQualifiedClassName="org.eclipse.uml2.diagram.common.draw2d.StereotypeLabel"/>
        <behaviour
            xsi:type="gmfgen:CustomBehaviour"
            key="org.eclipse.gef.EditPolicy.DIRECT_EDIT_ROLE"
            editPolicyQualifiedClassName="org.eclipse.uml2.diagram.parser.SemanticLabelDirectEditPolicy"/>
        <modelFacet
            xsi:type="gmfgen:FeatureLabelModelFacet"
            parser="//@labelParsers/@implementations.1">
          <metaFeatures
              href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/NamedElement/qualifiedName"/>
        </modelFacet>
      </labels>
    </childNodes>
    <childNodes
        visualID="3002"
        editPartClassName="ArtifactEditPart"
        itemSemanticEditPolicyClassName="ArtifactItemSemanticEditPolicy"
        notationViewFactoryClassName="ArtifactViewFactory"
        canonicalEditPolicyClassName="ArtifactCanonicalEditPolicy"
        compartments="//@diagram/@compartments.3"
        graphicalNodeEditPolicyClassName="ArtifactGraphicalNodeEditPolicy"
        createCommandClassName="ArtifactCreateCommand"
        containers="//@diagram/@compartments.2 //@diagram/@compartments.1">
      <diagramRunTimeClass
          href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
      <elementType
          xsi:type="gmfgen:MetamodelType"
          editHelperClassName="ArtifactEditHelper"/>
      <viewmap
          xsi:type="gmfgen:InnerClassViewmap"
          className="ArtifactFigure"
          classBody="&#xA;/**&#xA; * @generated&#xA; */&#xA;public class ArtifactFigure extends org.eclipse.draw2d.RectangleFigure {&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private org.eclipse.draw2d.RectangleFigure fFigureArtifactFigure_body; &#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private org.eclipse.uml2.diagram.common.draw2d.NameAndStereotypeBlock fNameAndStereotypeBlock; &#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public ArtifactFigure() {&#xA;&#x9;&#x9;&#xA;&#x9;org.eclipse.draw2d.BorderLayout layoutThis = new org.eclipse.draw2d.BorderLayout();&#xA;&#x9;this.setLayoutManager(layoutThis);&#xA;&#xA;&#x9;&#x9;this.setLineWidth(1);&#xA;&#xA;this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(1)&#xA;, getMapMode().DPtoLP(1)&#xA;, getMapMode().DPtoLP(1)&#xA;, getMapMode().DPtoLP(1)&#xA;));&#xA;&#x9;&#x9;createContents();&#xA;&#x9;}&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private void createContents(){&#xA;&#xA;&#xA;fNameAndStereotypeBlock = new org.eclipse.uml2.diagram.common.draw2d.NameAndStereotypeBlock();&#xA;&#xA;&#xA;&#xA;fNameAndStereotypeBlock.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(8)&#xA;, getMapMode().DPtoLP(5)&#xA;, getMapMode().DPtoLP(6)&#xA;, getMapMode().DPtoLP(5)&#xA;));&#xA;&#xA;this.add(fNameAndStereotypeBlock, org.eclipse.draw2d.BorderLayout.TOP);&#xA;&#xA;&#xA;&#xA;fFigureArtifactFigure_body = new org.eclipse.draw2d.RectangleFigure();&#xA;fFigureArtifactFigure_body.setOutline(false);&#xA;fFigureArtifactFigure_body.setLineWidth(1);&#xA;fFigureArtifactFigure_body.setMinimumSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(0)&#xA;, getMapMode().DPtoLP(55)&#xA;));&#xA;fFigureArtifactFigure_body.setBorder(createBorder0());&#xA;&#xA;this.add(fFigureArtifactFigure_body, org.eclipse.draw2d.BorderLayout.CENTER);&#xA;&#xA;&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private org.eclipse.draw2d.Border createBorder0() {&#xA;&#x9;&#x9;org.eclipse.gmf.runtime.draw2d.ui.figures.OneLineBorder result = new org.eclipse.gmf.runtime.draw2d.ui.figures.OneLineBorder();&#xA;&#x9;&#x9;&#xA;&#xA;&#xA;&#x9;&#x9;return result;&#xA;&#x9;}&#xA;&#xA;&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public org.eclipse.draw2d.RectangleFigure getFigureArtifactFigure_body() {&#xA;&#x9;&#x9;return fFigureArtifactFigure_body;&#xA;&#x9;}&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public org.eclipse.uml2.diagram.common.draw2d.NameAndStereotypeBlock getNameAndStereotypeBlock() {&#xA;&#x9;&#x9;return fNameAndStereotypeBlock;&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureArtifactFigure_name() {&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;return getNameAndStereotypeBlock().getNameLabel();&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;}&#xD;&#xA;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public org.eclipse.uml2.diagram.common.draw2d.StereotypeLabel2 getFigureArtifactFigure_stereo() {&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;return getNameAndStereotypeBlock().getStereotypeLabel();&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;}&#xD;&#xA;&#xA;&#xA;}&#xA;&#xA;">
        <attributes
            xsi:type="gmfgen:DefaultSizeAttributes"
            width="80"
            height="60"/>
      </viewmap>
      <modelFacet
          modelElementSelector="//@expressionProviders/@providers.0/@expressions.1">
        <metaClass
            href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Artifact"/>
        <containmentMetaFeature
            href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Class/nestedClassifier"/>
        <childMetaFeature
            href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Class/nestedClassifier"/>
        <modelElementInitializer
            xsi:type="gmfgen:GenFeatureSeqInitializer">
          <initializers
              xsi:type="gmfgen:GenFeatureValueSpec"
              value="//@expressionProviders/@providers.0/@expressions.2">
            <feature
                href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Artifact/fileName"/>
          </initializers>
        </modelElementInitializer>
      </modelFacet>
      <labels
          visualID="5007"
          editPartClassName="ArtifactFileName2EditPart"
          itemSemanticEditPolicyClassName="ArtifactFileName2ItemSemanticEditPolicy"
          notationViewFactoryClassName="ArtifactFileName2ViewFactory"
          elementIcon="true">
        <diagramRunTimeClass
            href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
        <viewmap
            xsi:type="gmfgen:ParentAssignedViewmap"
            getterName="getFigureArtifactFigure_name"
            figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel">
          <attributes
              xsi:type="gmfgen:StyleAttributes"
              fixedFont="true"/>
        </viewmap>
        <modelFacet
            xsi:type="gmfgen:FeatureLabelModelFacet"
            parser="//@labelParsers/@implementations.0">
          <metaFeatures
              href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Artifact/fileName"/>
        </modelFacet>
      </labels>
      <labels
          visualID="5015"
          editPartClassName="ArtifactStereo2EditPart"
          itemSemanticEditPolicyClassName="ArtifactStereo2ItemSemanticEditPolicy"
          notationViewFactoryClassName="ArtifactStereo2ViewFactory">
        <diagramRunTimeClass
            href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
        <viewmap
            xsi:type="gmfgen:ParentAssignedViewmap"
            getterName="getFigureArtifactFigure_stereo"
            figureQualifiedClassName="org.eclipse.uml2.diagram.common.draw2d.StereotypeLabel2">
          <attributes
              xsi:type="gmfgen:StyleAttributes"
              fixedFont="true"/>
        </viewmap>
        <behaviour
            xsi:type="gmfgen:CustomBehaviour"
            key="org.eclipse.gef.EditPolicy.DIRECT_EDIT_ROLE"
            editPolicyQualifiedClassName="org.eclipse.uml2.diagram.parser.SemanticLabelDirectEditPolicy"/>
        <modelFacet
            xsi:type="gmfgen:FeatureLabelModelFacet"
            parser="//@labelParsers/@implementations.1">
          <metaFeatures
              href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/NamedElement/qualifiedName"/>
        </modelFacet>
      </labels>
    </childNodes>
    <childNodes
        visualID="3008"
        editPartClassName="Artifact4EditPart"
        itemSemanticEditPolicyClassName="Artifact4ItemSemanticEditPolicy"
        notationViewFactoryClassName="Artifact4ViewFactory"
        canonicalEditPolicyClassName="Artifact4CanonicalEditPolicy"
        compartments="//@diagram/@compartments.4"
        graphicalNodeEditPolicyClassName="Artifact4GraphicalNodeEditPolicy"
        createCommandClassName="Artifact4CreateCommand"
        containers="//@diagram/@compartments.4 //@diagram/@compartments.3 //@diagram/@compartments.8">
      <diagramRunTimeClass
          href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
      <elementType
          xsi:type="gmfgen:SpecializationType"
          metamodelType="//@diagram/@childNodes.2/@elementType"/>
      <viewmap
          xsi:type="gmfgen:InnerClassViewmap"
          className="ArtifactFigure"
          classBody="&#xA;/**&#xA; * @generated&#xA; */&#xA;public class ArtifactFigure extends org.eclipse.draw2d.RectangleFigure {&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private org.eclipse.draw2d.RectangleFigure fFigureArtifactFigure_body; &#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private org.eclipse.uml2.diagram.common.draw2d.NameAndStereotypeBlock fNameAndStereotypeBlock; &#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public ArtifactFigure() {&#xA;&#x9;&#x9;&#xA;&#x9;org.eclipse.draw2d.BorderLayout layoutThis = new org.eclipse.draw2d.BorderLayout();&#xA;&#x9;this.setLayoutManager(layoutThis);&#xA;&#xA;&#x9;&#x9;this.setLineWidth(1);&#xA;&#xA;this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(1)&#xA;, getMapMode().DPtoLP(1)&#xA;, getMapMode().DPtoLP(1)&#xA;, getMapMode().DPtoLP(1)&#xA;));&#xA;&#x9;&#x9;createContents();&#xA;&#x9;}&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private void createContents(){&#xA;&#xA;&#xA;fNameAndStereotypeBlock = new org.eclipse.uml2.diagram.common.draw2d.NameAndStereotypeBlock();&#xA;&#xA;&#xA;&#xA;fNameAndStereotypeBlock.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(8)&#xA;, getMapMode().DPtoLP(5)&#xA;, getMapMode().DPtoLP(6)&#xA;, getMapMode().DPtoLP(5)&#xA;));&#xA;&#xA;this.add(fNameAndStereotypeBlock, org.eclipse.draw2d.BorderLayout.TOP);&#xA;&#xA;&#xA;&#xA;fFigureArtifactFigure_body = new org.eclipse.draw2d.RectangleFigure();&#xA;fFigureArtifactFigure_body.setOutline(false);&#xA;fFigureArtifactFigure_body.setLineWidth(1);&#xA;fFigureArtifactFigure_body.setMinimumSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(0)&#xA;, getMapMode().DPtoLP(55)&#xA;));&#xA;fFigureArtifactFigure_body.setBorder(createBorder0());&#xA;&#xA;this.add(fFigureArtifactFigure_body, org.eclipse.draw2d.BorderLayout.CENTER);&#xA;&#xA;&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private org.eclipse.draw2d.Border createBorder0() {&#xA;&#x9;&#x9;org.eclipse.gmf.runtime.draw2d.ui.figures.OneLineBorder result = new org.eclipse.gmf.runtime.draw2d.ui.figures.OneLineBorder();&#xA;&#x9;&#x9;&#xA;&#xA;&#xA;&#x9;&#x9;return result;&#xA;&#x9;}&#xA;&#xA;&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public org.eclipse.draw2d.RectangleFigure getFigureArtifactFigure_body() {&#xA;&#x9;&#x9;return fFigureArtifactFigure_body;&#xA;&#x9;}&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public org.eclipse.uml2.diagram.common.draw2d.NameAndStereotypeBlock getNameAndStereotypeBlock() {&#xA;&#x9;&#x9;return fNameAndStereotypeBlock;&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureArtifactFigure_name() {&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;return getNameAndStereotypeBlock().getNameLabel();&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;}&#xD;&#xA;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public org.eclipse.uml2.diagram.common.draw2d.StereotypeLabel2 getFigureArtifactFigure_stereo() {&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;return getNameAndStereotypeBlock().getStereotypeLabel();&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;}&#xD;&#xA;&#xA;&#xA;}&#xA;&#xA;">
        <attributes
            xsi:type="gmfgen:DefaultSizeAttributes"
            width="80"
            height="60"/>
      </viewmap>
      <modelFacet
          modelElementSelector="//@expressionProviders/@providers.0/@expressions.1">
        <metaClass
            href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Artifact"/>
        <containmentMetaFeature
            href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Artifact/nestedArtifact"/>
        <childMetaFeature
            href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Artifact/nestedArtifact"/>
        <modelElementInitializer
            xsi:type="gmfgen:GenFeatureSeqInitializer">
          <initializers
              xsi:type="gmfgen:GenFeatureValueSpec"
              value="//@expressionProviders/@providers.0/@expressions.2">
            <feature
                href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Artifact/fileName"/>
          </initializers>
        </modelElementInitializer>
      </modelFacet>
      <labels
          visualID="5011"
          editPartClassName="ArtifactFileName3EditPart"
          itemSemanticEditPolicyClassName="ArtifactFileName3ItemSemanticEditPolicy"
          notationViewFactoryClassName="ArtifactFileName3ViewFactory"
          elementIcon="true">
        <diagramRunTimeClass
            href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
        <viewmap
            xsi:type="gmfgen:ParentAssignedViewmap"
            getterName="getFigureArtifactFigure_name"
            figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel">
          <attributes
              xsi:type="gmfgen:StyleAttributes"
              fixedFont="true"/>
        </viewmap>
        <modelFacet
            xsi:type="gmfgen:FeatureLabelModelFacet"
            parser="//@labelParsers/@implementations.0">
          <metaFeatures
              href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Artifact/fileName"/>
        </modelFacet>
      </labels>
      <labels
          visualID="5014"
          editPartClassName="ArtifactStereo3EditPart"
          itemSemanticEditPolicyClassName="ArtifactStereo3ItemSemanticEditPolicy"
          notationViewFactoryClassName="ArtifactStereo3ViewFactory">
        <diagramRunTimeClass
            href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
        <viewmap
            xsi:type="gmfgen:ParentAssignedViewmap"
            getterName="getFigureArtifactFigure_stereo"
            figureQualifiedClassName="org.eclipse.uml2.diagram.common.draw2d.StereotypeLabel2">
          <attributes
              xsi:type="gmfgen:StyleAttributes"
              fixedFont="true"/>
        </viewmap>
        <behaviour
            xsi:type="gmfgen:CustomBehaviour"
            key="org.eclipse.gef.EditPolicy.DIRECT_EDIT_ROLE"
            editPolicyQualifiedClassName="org.eclipse.uml2.diagram.parser.SemanticLabelDirectEditPolicy"/>
        <modelFacet
            xsi:type="gmfgen:FeatureLabelModelFacet"
            parser="//@labelParsers/@implementations.1">
          <metaFeatures
              href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/NamedElement/qualifiedName"/>
        </modelFacet>
      </labels>
    </childNodes>
    <childNodes
        visualID="3009"
        editPartClassName="DeploymentSpecification2EditPart"
        itemSemanticEditPolicyClassName="DeploymentSpecification2ItemSemanticEditPolicy"
        notationViewFactoryClassName="DeploymentSpecification2ViewFactory"
        canonicalEditPolicyClassName="DeploymentSpecification2CanonicalEditPolicy"
        compartments="//@diagram/@compartments.5"
        graphicalNodeEditPolicyClassName="DeploymentSpecification2GraphicalNodeEditPolicy"
        createCommandClassName="DeploymentSpecification2CreateCommand"
        containers="//@diagram/@compartments.4 //@diagram/@compartments.3 //@diagram/@compartments.8">
      <diagramRunTimeClass
          href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
      <elementType
          xsi:type="gmfgen:MetamodelType"
          editHelperClassName="DeploymentSpecificationEditHelper"/>
      <viewmap
          xsi:type="gmfgen:InnerClassViewmap"
          layoutType="TOOLBAR_LAYOUT"
          className="DeploymentSpecificationFigure"
          classBody="&#xA;/**&#xA; * @generated&#xA; */&#xA;public class DeploymentSpecificationFigure extends org.eclipse.draw2d.RectangleFigure {&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private org.eclipse.uml2.diagram.common.draw2d.StereotypeLabel fFigureDeploymentSpecificationFigure_stereo; &#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private org.eclipse.draw2d.Label fFigureDeploymentSpecificationFigure_name; &#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private org.eclipse.draw2d.RectangleFigure fFigureDeploymentSpecificationFigure_PropertiesCompartment; &#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public DeploymentSpecificationFigure() {&#xA;&#x9;&#x9;&#xA;&#x9;org.eclipse.draw2d.ToolbarLayout layoutThis = new org.eclipse.draw2d.ToolbarLayout();&#xA;&#x9;layoutThis.setStretchMinorAxis(true);&#xA;&#x9;layoutThis.setMinorAlignment(org.eclipse.draw2d.ToolbarLayout.ALIGN_CENTER&#xA;);&#xA;&#xA;&#x9;layoutThis.setSpacing(0);&#xA;&#x9;layoutThis.setVertical(true);&#xA;&#xA;&#x9;this.setLayoutManager(layoutThis);&#xA;&#xA;&#x9;&#x9;this.setLineWidth(1);&#xA;&#xA;this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(1)&#xA;, getMapMode().DPtoLP(1)&#xA;, getMapMode().DPtoLP(10)&#xA;, getMapMode().DPtoLP(1)&#xA;));&#xA;&#x9;&#x9;createContents();&#xA;&#x9;}&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private void createContents(){&#xA;&#xA;&#xA;org.eclipse.draw2d.RectangleFigure deploymentSpecificationFigure_Header0 = new org.eclipse.draw2d.RectangleFigure();&#xA;deploymentSpecificationFigure_Header0.setOutline(false);&#xA;deploymentSpecificationFigure_Header0.setLineWidth(1);&#xA;&#xA;this.add(deploymentSpecificationFigure_Header0);&#xA;&#xA;&#x9;org.eclipse.draw2d.ToolbarLayout layoutDeploymentSpecificationFigure_Header0 = new org.eclipse.draw2d.ToolbarLayout();&#xA;&#x9;layoutDeploymentSpecificationFigure_Header0.setStretchMinorAxis(true);&#xA;&#x9;layoutDeploymentSpecificationFigure_Header0.setMinorAlignment(org.eclipse.draw2d.ToolbarLayout.ALIGN_TOPLEFT&#xA;);&#xA;&#xA;&#x9;layoutDeploymentSpecificationFigure_Header0.setSpacing(0);&#xA;&#x9;layoutDeploymentSpecificationFigure_Header0.setVertical(true);&#xA;&#xA;&#x9;deploymentSpecificationFigure_Header0.setLayoutManager(layoutDeploymentSpecificationFigure_Header0);&#xA;&#xA;&#xA;&#xA;org.eclipse.draw2d.RectangleFigure deploymentSpecificationFigure_StereoContainer1 = new org.eclipse.draw2d.RectangleFigure();&#xA;deploymentSpecificationFigure_StereoContainer1.setOutline(false);&#xA;deploymentSpecificationFigure_StereoContainer1.setLineWidth(1);&#xA;&#xA;deploymentSpecificationFigure_Header0.add(deploymentSpecificationFigure_StereoContainer1);&#xA;&#xA;&#x9;org.eclipse.uml2.diagram.common.draw2d.CenterLayout layoutDeploymentSpecificationFigure_StereoContainer1 = new org.eclipse.uml2.diagram.common.draw2d.CenterLayout();&#xA;&#xA;&#xA;&#x9;deploymentSpecificationFigure_StereoContainer1.setLayoutManager(layoutDeploymentSpecificationFigure_StereoContainer1);&#xA;&#xA;&#xA;&#xA;fFigureDeploymentSpecificationFigure_stereo = new org.eclipse.uml2.diagram.common.draw2d.StereotypeLabel();&#xA;&#xA;&#xA;&#xA;fFigureDeploymentSpecificationFigure_stereo.setFont(FFIGUREDEPLOYMENTSPECIFICATIONFIGURE_STEREO_FONT);&#xA;&#xA;&#xA;&#xA;fFigureDeploymentSpecificationFigure_stereo.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)&#xA;, getMapMode().DPtoLP(5)&#xA;, getMapMode().DPtoLP(0)&#xA;, getMapMode().DPtoLP(5)&#xA;));&#xA;&#xA;deploymentSpecificationFigure_StereoContainer1.add(fFigureDeploymentSpecificationFigure_stereo);&#xA;&#xA;&#xA;&#xA;&#xA;org.eclipse.draw2d.RectangleFigure deploymentSpecificationFigure_NameContainer1 = new org.eclipse.draw2d.RectangleFigure();&#xA;deploymentSpecificationFigure_NameContainer1.setOutline(false);&#xA;deploymentSpecificationFigure_NameContainer1.setLineWidth(1);&#xA;&#xA;deploymentSpecificationFigure_Header0.add(deploymentSpecificationFigure_NameContainer1);&#xA;&#xA;&#x9;org.eclipse.uml2.diagram.common.draw2d.CenterLayout layoutDeploymentSpecificationFigure_NameContainer1 = new org.eclipse.uml2.diagram.common.draw2d.CenterLayout();&#xA;&#xA;&#xA;&#x9;deploymentSpecificationFigure_NameContainer1.setLayoutManager(layoutDeploymentSpecificationFigure_NameContainer1);&#xA;&#xA;&#xA;&#xA;fFigureDeploymentSpecificationFigure_name = new org.eclipse.draw2d.Label();&#xA;fFigureDeploymentSpecificationFigure_name.setText(&quot;&quot;);&#xA;&#xA;fFigureDeploymentSpecificationFigure_name.setFont(FFIGUREDEPLOYMENTSPECIFICATIONFIGURE_NAME_FONT);&#xA;&#xA;&#xA;&#xA;fFigureDeploymentSpecificationFigure_name.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(0)&#xA;, getMapMode().DPtoLP(5)&#xA;, getMapMode().DPtoLP(5)&#xA;, getMapMode().DPtoLP(5)&#xA;));&#xA;&#xA;deploymentSpecificationFigure_NameContainer1.add(fFigureDeploymentSpecificationFigure_name);&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;fFigureDeploymentSpecificationFigure_PropertiesCompartment = new org.eclipse.draw2d.RectangleFigure();&#xA;fFigureDeploymentSpecificationFigure_PropertiesCompartment.setOutline(false);&#xA;fFigureDeploymentSpecificationFigure_PropertiesCompartment.setLineWidth(1);&#xA;&#xA;this.add(fFigureDeploymentSpecificationFigure_PropertiesCompartment);&#xA;fFigureDeploymentSpecificationFigure_PropertiesCompartment.setLayoutManager(new org.eclipse.draw2d.StackLayout());&#xA;&#xA;&#xA;&#x9;}&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public org.eclipse.uml2.diagram.common.draw2d.StereotypeLabel getFigureDeploymentSpecificationFigure_stereo() {&#xA;&#x9;&#x9;return fFigureDeploymentSpecificationFigure_stereo;&#xA;&#x9;}&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public org.eclipse.draw2d.Label getFigureDeploymentSpecificationFigure_name() {&#xA;&#x9;&#x9;return fFigureDeploymentSpecificationFigure_name;&#xA;&#x9;}&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public org.eclipse.draw2d.RectangleFigure getFigureDeploymentSpecificationFigure_PropertiesCompartment() {&#xA;&#x9;&#x9;return fFigureDeploymentSpecificationFigure_PropertiesCompartment;&#xA;&#x9;}&#xA;&#xA;&#xA;}&#xA;&#xA;/**&#xA; * @generated&#xA; */&#xA;static final org.eclipse.swt.graphics.Font FFIGUREDEPLOYMENTSPECIFICATIONFIGURE_STEREO_FONT = new org.eclipse.swt.graphics.Font(org.eclipse.swt.widgets.Display.getCurrent(), org.eclipse.swt.widgets.Display.getDefault().getSystemFont().getFontData()[0].getName(), 9, org.eclipse.swt.SWT.NORMAL);&#xA;&#xA;/**&#xA; * @generated&#xA; */&#xA;static final org.eclipse.swt.graphics.Font FFIGUREDEPLOYMENTSPECIFICATIONFIGURE_NAME_FONT = new org.eclipse.swt.graphics.Font(org.eclipse.swt.widgets.Display.getCurrent(), org.eclipse.swt.widgets.Display.getDefault().getSystemFont().getFontData()[0].getName(), 9, org.eclipse.swt.SWT.NORMAL);&#xA;&#xA;">
        <attributes
            xsi:type="gmfgen:DefaultSizeAttributes"
            width="160"
            height="100"/>
      </viewmap>
      <modelFacet>
        <metaClass
            href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/DeploymentSpecification"/>
        <containmentMetaFeature
            href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Artifact/nestedArtifact"/>
        <childMetaFeature
            href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Artifact/nestedArtifact"/>
        <modelElementInitializer
            xsi:type="gmfgen:GenFeatureSeqInitializer">
          <initializers
              xsi:type="gmfgen:GenFeatureValueSpec"
              value="//@expressionProviders/@providers.0/@expressions.3">
            <feature
                href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/NamedElement/name"/>
          </initializers>
        </modelElementInitializer>
      </modelFacet>
      <labels
          visualID="5012"
          editPartClassName="DeploymentSpecificationName2EditPart"
          itemSemanticEditPolicyClassName="DeploymentSpecificationName2ItemSemanticEditPolicy"
          notationViewFactoryClassName="DeploymentSpecificationName2ViewFactory"
          elementIcon="true">
        <diagramRunTimeClass
            href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
        <viewmap
            xsi:type="gmfgen:ParentAssignedViewmap"
            getterName="getFigureDeploymentSpecificationFigure_name"
            figureQualifiedClassName="org.eclipse.draw2d.Label">
          <attributes
              xsi:type="gmfgen:StyleAttributes"
              fixedFont="true"/>
        </viewmap>
        <modelFacet
            xsi:type="gmfgen:FeatureLabelModelFacet"
            parser="//@labelParsers/@implementations.0">
          <metaFeatures
              href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/NamedElement/name"/>
        </modelFacet>
      </labels>
      <labels
          visualID="5013"
          editPartClassName="DeploymentSpecificationStereo4EditPart"
          itemSemanticEditPolicyClassName="DeploymentSpecificationStereo4ItemSemanticEditPolicy"
          notationViewFactoryClassName="DeploymentSpecificationStereo4ViewFactory">
        <diagramRunTimeClass
            href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
        <viewmap
            xsi:type="gmfgen:ParentAssignedViewmap"
            getterName="getFigureDeploymentSpecificationFigure_stereo"
            figureQualifiedClassName="org.eclipse.uml2.diagram.common.draw2d.StereotypeLabel">
          <attributes
              xsi:type="gmfgen:StyleAttributes"
              fixedFont="true"/>
        </viewmap>
        <behaviour
            xsi:type="gmfgen:CustomBehaviour"
            key="org.eclipse.gef.EditPolicy.DIRECT_EDIT_ROLE"
            editPolicyQualifiedClassName="org.eclipse.uml2.diagram.parser.SemanticLabelDirectEditPolicy"/>
        <modelFacet
            xsi:type="gmfgen:FeatureLabelModelFacet"
            parser="//@labelParsers/@implementations.1">
          <metaFeatures
              href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/NamedElement/qualifiedName"/>
        </modelFacet>
      </labels>
    </childNodes>
    <childNodes
        xsi:type="gmfgen:GenChildLabelNode"
        visualID="3003"
        editPartClassName="PropertyEditPart"
        itemSemanticEditPolicyClassName="PropertyItemSemanticEditPolicy"
        notationViewFactoryClassName="PropertyViewFactory"
        canonicalEditPolicyClassName="PropertyCanonicalEditPolicy"
        graphicalNodeEditPolicyClassName="PropertyGraphicalNodeEditPolicy"
        createCommandClassName="PropertyCreateCommand"
        containers="//@diagram/@compartments.5 //@diagram/@compartments.9">
      <diagramRunTimeClass
          href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
      <elementType
          xsi:type="gmfgen:MetamodelType"
          editHelperClassName="PropertyEditHelper"/>
      <viewmap
          xsi:type="gmfgen:FigureViewmap"
          figureQualifiedClassName="org.eclipse.draw2d.Label"/>
      <modelFacet>
        <metaClass
            href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Property"/>
        <containmentMetaFeature
            href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Artifact/ownedAttribute"/>
        <childMetaFeature
            href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Artifact/ownedAttribute"/>
        <modelElementInitializer
            xsi:type="gmfgen:GenFeatureSeqInitializer">
          <initializers
              xsi:type="gmfgen:GenFeatureValueSpec"
              value="//@expressionProviders/@providers.0/@expressions.4">
            <feature
                href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/NamedElement/name"/>
          </initializers>
        </modelElementInitializer>
      </modelFacet>
      <labelModelFacet
          xsi:type="gmfgen:FeatureLabelModelFacet"
          parser="//@labelParsers/@implementations.0">
        <metaFeatures
            href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/NamedElement/name"/>
      </labelModelFacet>
    </childNodes>
    <childNodes
        visualID="3005"
        editPartClassName="ExecutionEnvironment2EditPart"
        itemSemanticEditPolicyClassName="ExecutionEnvironment2ItemSemanticEditPolicy"
        notationViewFactoryClassName="ExecutionEnvironment2ViewFactory"
        canonicalEditPolicyClassName="ExecutionEnvironment2CanonicalEditPolicy"
        compartments="//@diagram/@compartments.6"
        graphicalNodeEditPolicyClassName="ExecutionEnvironment2GraphicalNodeEditPolicy"
        createCommandClassName="ExecutionEnvironment2CreateCommand"
        containers="//@diagram/@compartments.2 //@diagram/@compartments.1">
      <diagramRunTimeClass
          href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
      <elementType
          xsi:type="gmfgen:MetamodelType"
          editHelperClassName="ExecutionEnvironmentEditHelper"/>
      <viewmap
          xsi:type="gmfgen:InnerClassViewmap"
          className="EnvironmentFigure"
          classBody="&#xA;/**&#xA; * @generated&#xA; */&#xA;public class EnvironmentFigure extends org.eclipse.uml2.diagram.common.draw2d.Cube3DFigure {&#xA;&#xA;&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public EnvironmentFigure() {&#xA;&#x9;&#x9;&#x9;&#x9;&#xA;&#xA;&#xA;&#xA;this.setTypeLabelVisible(&#xA;true);&#xA;&#xA;&#xA;&#x9;}&#xA;&#xA;&#xA;&#xA;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public org.eclipse.uml2.diagram.common.draw2d.StereotypeLabel getEnvironmentTypeLabel() {&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;return getTypeLabel();&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;}&#xD;&#xA;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public org.eclipse.draw2d.Label getNameLabel() {&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;return super.getNameLabel();&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;}&#xD;&#xA;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public org.eclipse.draw2d.RectangleFigure getContentPane() {&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;return super.getContentPane();&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;}&#xD;&#xA;&#xA;&#xA;}&#xA;&#xA;">
        <attributes
            xsi:type="gmfgen:DefaultSizeAttributes"
            width="100"
            height="100"/>
      </viewmap>
      <modelFacet>
        <metaClass
            href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/ExecutionEnvironment"/>
        <containmentMetaFeature
            href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Node/nestedNode"/>
        <childMetaFeature
            href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Node/nestedNode"/>
        <modelElementInitializer
            xsi:type="gmfgen:GenFeatureSeqInitializer">
          <initializers
              xsi:type="gmfgen:GenFeatureValueSpec"
              value="//@expressionProviders/@providers.0/@expressions.5">
            <feature
                href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/NamedElement/name"/>
          </initializers>
        </modelElementInitializer>
      </modelFacet>
      <labels
          visualID="5008"
          editPartClassName="ExecutionEnvironmentName2EditPart"
          itemSemanticEditPolicyClassName="ExecutionEnvironmentName2ItemSemanticEditPolicy"
          notationViewFactoryClassName="ExecutionEnvironmentName2ViewFactory"
          elementIcon="true">
        <diagramRunTimeClass
            href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
        <viewmap
            xsi:type="gmfgen:ParentAssignedViewmap"
            getterName="getNameLabel"
            figureQualifiedClassName="org.eclipse.draw2d.Label"/>
        <modelFacet
            xsi:type="gmfgen:FeatureLabelModelFacet"
            parser="//@labelParsers/@implementations.0">
          <metaFeatures
              href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/NamedElement/name"/>
        </modelFacet>
      </labels>
      <labels
          visualID="5016"
          editPartClassName="ExecutionEnvironmentStereo2EditPart"
          itemSemanticEditPolicyClassName="ExecutionEnvironmentStereo2ItemSemanticEditPolicy"
          notationViewFactoryClassName="ExecutionEnvironmentStereo2ViewFactory">
        <diagramRunTimeClass
            href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
        <viewmap
            xsi:type="gmfgen:ParentAssignedViewmap"
            getterName="getEnvironmentTypeLabel"
            figureQualifiedClassName="org.eclipse.uml2.diagram.common.draw2d.StereotypeLabel"/>
        <behaviour
            xsi:type="gmfgen:CustomBehaviour"
            key="org.eclipse.gef.EditPolicy.DIRECT_EDIT_ROLE"
            editPolicyQualifiedClassName="org.eclipse.uml2.diagram.parser.SemanticLabelDirectEditPolicy"/>
        <modelFacet
            xsi:type="gmfgen:FeatureLabelModelFacet"
            parser="//@labelParsers/@implementations.1">
          <metaFeatures
              href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/NamedElement/qualifiedName"/>
        </modelFacet>
      </labels>
    </childNodes>
    <childNodes
        xsi:type="gmfgen:GenChildLabelNode"
        visualID="3006"
        editPartClassName="Artifact3EditPart"
        itemSemanticEditPolicyClassName="Artifact3ItemSemanticEditPolicy"
        notationViewFactoryClassName="Artifact3ViewFactory"
        canonicalEditPolicyClassName="Artifact3CanonicalEditPolicy"
        graphicalNodeEditPolicyClassName="Artifact3GraphicalNodeEditPolicy"
        createCommandClassName="Artifact3CreateCommand"
        containers="//@diagram/@compartments.6 //@diagram/@compartments.7">
      <diagramRunTimeClass
          href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
      <elementType
          xsi:type="gmfgen:SpecializationType"
          metamodelType="//@diagram/@childNodes.2/@elementType"/>
      <viewmap
          xsi:type="gmfgen:FigureViewmap"
          figureQualifiedClassName="org.eclipse.draw2d.Label"/>
      <modelFacet>
        <metaClass
            href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Artifact"/>
        <containmentMetaFeature
            href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Class/nestedClassifier"/>
        <childMetaFeature
            href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Class/nestedClassifier"/>
        <modelElementInitializer
            xsi:type="gmfgen:GenFeatureSeqInitializer">
          <initializers
              xsi:type="gmfgen:GenFeatureValueSpec"
              value="//@expressionProviders/@providers.0/@expressions.6">
            <feature
                href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Artifact/fileName"/>
          </initializers>
        </modelElementInitializer>
      </modelFacet>
      <labelModelFacet
          xsi:type="gmfgen:FeatureLabelModelFacet"
          parser="//@labelParsers/@implementations.0">
        <metaFeatures
            href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Artifact/fileName"/>
      </labelModelFacet>
    </childNodes>
    <childNodes
        visualID="3007"
        editPartClassName="Node2EditPart"
        itemSemanticEditPolicyClassName="Node2ItemSemanticEditPolicy"
        notationViewFactoryClassName="Node2ViewFactory"
        canonicalEditPolicyClassName="Node2CanonicalEditPolicy"
        graphicalNodeEditPolicyClassName="Node2GraphicalNodeEditPolicy"
        createCommandClassName="Node2CreateCommand"
        containers="//@diagram/@compartments.2 //@diagram/@compartments.1">
      <diagramRunTimeClass
          href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
      <elementType
          xsi:type="gmfgen:MetamodelType"
          editHelperClassName="NodeEditHelper"/>
      <viewmap
          xsi:type="gmfgen:InnerClassViewmap"
          className="NodeFigure"
          classBody="&#xA;/**&#xA; * @generated&#xA; */&#xA;public class NodeFigure extends org.eclipse.uml2.diagram.common.draw2d.Cube3DFigure {&#xA;&#xA;&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public NodeFigure() {&#xA;&#x9;&#x9;&#x9;&#x9;&#xA;&#xA;&#xA;&#xA;this.setTypeLabelVisible(&#xA;true);&#xA;&#xA;&#xA;&#x9;}&#xA;&#xA;&#xA;&#xA;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public org.eclipse.draw2d.Label getNameLabel() {&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;return super.getNameLabel();&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;}&#xD;&#xA;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public org.eclipse.uml2.diagram.common.draw2d.StereotypeLabel getNodeTypeLabel() {&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;return getTypeLabel();&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;}&#xD;&#xA;&#xA;&#xA;}&#xA;&#xA;">
        <attributes
            xsi:type="gmfgen:DefaultSizeAttributes"
            width="100"
            height="60"/>
      </viewmap>
      <modelFacet
          modelElementSelector="//@expressionProviders/@providers.0/@expressions.7">
        <metaClass
            href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Node"/>
        <containmentMetaFeature
            href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Node/nestedNode"/>
        <childMetaFeature
            href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Node/nestedNode"/>
        <modelElementInitializer
            xsi:type="gmfgen:GenFeatureSeqInitializer">
          <initializers
              xsi:type="gmfgen:GenFeatureValueSpec"
              value="//@expressionProviders/@providers.0/@expressions.8">
            <feature
                href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/NamedElement/name"/>
          </initializers>
        </modelElementInitializer>
      </modelFacet>
      <labels
          visualID="5009"
          editPartClassName="NodeName2EditPart"
          itemSemanticEditPolicyClassName="NodeName2ItemSemanticEditPolicy"
          notationViewFactoryClassName="NodeName2ViewFactory"
          elementIcon="true">
        <diagramRunTimeClass
            href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
        <viewmap
            xsi:type="gmfgen:ParentAssignedViewmap"
            getterName="getNameLabel"
            figureQualifiedClassName="org.eclipse.draw2d.Label"/>
        <modelFacet
            xsi:type="gmfgen:FeatureLabelModelFacet"
            parser="//@labelParsers/@implementations.3">
          <metaFeatures
              href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/NamedElement/name"/>
        </modelFacet>
      </labels>
      <labels
          visualID="5017"
          editPartClassName="NodeStereo2EditPart"
          itemSemanticEditPolicyClassName="NodeStereo2ItemSemanticEditPolicy"
          notationViewFactoryClassName="NodeStereo2ViewFactory">
        <diagramRunTimeClass
            href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
        <viewmap
            xsi:type="gmfgen:ParentAssignedViewmap"
            getterName="getNodeTypeLabel"
            figureQualifiedClassName="org.eclipse.uml2.diagram.common.draw2d.StereotypeLabel"/>
        <behaviour
            xsi:type="gmfgen:CustomBehaviour"
            key="org.eclipse.gef.EditPolicy.DIRECT_EDIT_ROLE"
            editPolicyQualifiedClassName="org.eclipse.uml2.diagram.parser.SemanticLabelDirectEditPolicy"/>
        <modelFacet
            xsi:type="gmfgen:FeatureLabelModelFacet"
            parser="//@labelParsers/@implementations.1">
          <metaFeatures
              href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/NamedElement/qualifiedName"/>
        </modelFacet>
      </labels>
    </childNodes>
    <topLevelNodes
        visualID="2001"
        editPartClassName="Package2EditPart"
        itemSemanticEditPolicyClassName="Package2ItemSemanticEditPolicy"
        notationViewFactoryClassName="Package2ViewFactory"
        canonicalEditPolicyClassName="Package2CanonicalEditPolicy"
        compartments="//@diagram/@compartments.0"
        primaryDragEditPolicyQualifiedClassName="org.eclipse.uml2.diagram.common.editpolicies.UnmovableUnselectableShapeEditPolicy"
        graphicalNodeEditPolicyClassName="PackageGraphicalNodeEditPolicy"
        createCommandClassName="PackageCreateCommand">
      <diagramRunTimeClass
          href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
      <elementType
          xsi:type="gmfgen:SpecializationType"
          metamodelType="//@diagram/@elementType"/>
      <viewmap
          xsi:type="gmfgen:InnerClassViewmap"
          layoutType="TOOLBAR_LAYOUT"
          className="SecondaryPackageFigure"
          classBody="&#xA;/**&#xA; * @generated&#xA; */&#xA;public class SecondaryPackageFigure extends org.eclipse.draw2d.ScalablePolygonShape {&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private org.eclipse.draw2d.Label fFigureSecondaryPackage_PackageLabel; &#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private org.eclipse.draw2d.Label fFigureSecondaryPackage_NameLabel; &#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private org.eclipse.draw2d.RectangleFigure fFigureSecondaryPackage_Imports; &#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public SecondaryPackageFigure() {&#xA;&#x9;&#x9;&#xA;&#x9;org.eclipse.draw2d.ToolbarLayout layoutThis = new org.eclipse.draw2d.ToolbarLayout();&#xA;&#x9;layoutThis.setStretchMinorAxis(true);&#xA;&#x9;layoutThis.setMinorAlignment(org.eclipse.draw2d.ToolbarLayout.ALIGN_CENTER&#xA;);&#xA;&#xA;&#x9;layoutThis.setSpacing(0);&#xA;&#x9;layoutThis.setVertical(true);&#xA;&#xA;&#x9;this.setLayoutManager(layoutThis);&#xA;&#xA;&#x9;&#x9;this.addPoint(new org.eclipse.draw2d.geometry.Point(getMapMode().DPtoLP(0)&#xA;, getMapMode().DPtoLP(0)&#xA;));&#xA;this.addPoint(new org.eclipse.draw2d.geometry.Point(getMapMode().DPtoLP(0)&#xA;, getMapMode().DPtoLP(40)&#xA;));&#xA;this.addPoint(new org.eclipse.draw2d.geometry.Point(getMapMode().DPtoLP(35)&#xA;, getMapMode().DPtoLP(40)&#xA;));&#xA;this.addPoint(new org.eclipse.draw2d.geometry.Point(getMapMode().DPtoLP(40)&#xA;, getMapMode().DPtoLP(35)&#xA;));&#xA;this.addPoint(new org.eclipse.draw2d.geometry.Point(getMapMode().DPtoLP(40)&#xA;, getMapMode().DPtoLP(0)&#xA;));&#xA;this.setFill(true);&#xA;this.setLineWidth(1);&#xA;&#xA;this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)&#xA;, getMapMode().DPtoLP(5)&#xA;, getMapMode().DPtoLP(13)&#xA;, getMapMode().DPtoLP(10)&#xA;));&#xA;&#x9;&#x9;createContents();&#xA;&#x9;}&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private void createContents(){&#xA;&#xA;&#xA;fFigureSecondaryPackage_PackageLabel = new org.eclipse.draw2d.Label();&#xA;fFigureSecondaryPackage_PackageLabel.setText(&quot;&quot;);&#xA;&#xA;this.add(fFigureSecondaryPackage_PackageLabel);&#xA;&#xA;&#xA;&#xA;fFigureSecondaryPackage_NameLabel = new org.eclipse.draw2d.Label();&#xA;fFigureSecondaryPackage_NameLabel.setText(&quot;&quot;);&#xA;&#xA;this.add(fFigureSecondaryPackage_NameLabel);&#xA;&#xA;&#xA;&#xA;fFigureSecondaryPackage_Imports = new org.eclipse.draw2d.RectangleFigure();&#xA;fFigureSecondaryPackage_Imports.setOutline(false);&#xA;fFigureSecondaryPackage_Imports.setLineWidth(1);&#xA;&#xA;this.add(fFigureSecondaryPackage_Imports);&#xA;&#xA;&#xA;&#x9;}&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public org.eclipse.draw2d.Label getFigureSecondaryPackage_PackageLabel() {&#xA;&#x9;&#x9;return fFigureSecondaryPackage_PackageLabel;&#xA;&#x9;}&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public org.eclipse.draw2d.Label getFigureSecondaryPackage_NameLabel() {&#xA;&#x9;&#x9;return fFigureSecondaryPackage_NameLabel;&#xA;&#x9;}&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public org.eclipse.draw2d.RectangleFigure getFigureSecondaryPackage_Imports() {&#xA;&#x9;&#x9;return fFigureSecondaryPackage_Imports;&#xA;&#x9;}&#xA;&#xA;&#xA;}&#xA;&#xA;">
        <attributes
            xsi:type="gmfgen:DefaultSizeAttributes"
            width="100"
            height="60"/>
        <attributes
            xsi:type="u2tgen:AuxSecondaryDiagramNodeAttribute"
            substituteWithCanvasElement="true"/>
        <attributes
            xsi:type="u2tgen:StereotypeSupportAttribute"/>
      </viewmap>
      <behaviour
          xsi:type="gmfgen:CustomBehaviour"
          key="&quot;ConnectionHandlesPolicy&quot;"
          editPolicyQualifiedClassName="org.eclipse.uml2.diagram.common.editpolicies.DoNothingEditPolicy"/>
      <modelFacet>
        <metaClass
            href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Package"/>
        <containmentMetaFeature
            href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Package/packagedElement"/>
        <childMetaFeature
            href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Package/packagedElement"/>
      </modelFacet>
      <labels
          visualID="5001"
          editPartClassName="PackageNameEditPart"
          itemSemanticEditPolicyClassName="PackageNameItemSemanticEditPolicy"
          notationViewFactoryClassName="PackageNameViewFactory">
        <diagramRunTimeClass
            href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
        <viewmap
            xsi:type="gmfgen:ParentAssignedViewmap"
            getterName="getFigureSecondaryPackage_NameLabel"
            figureQualifiedClassName="org.eclipse.draw2d.Label">
          <attributes
              xsi:type="u2tgen:StereotypeSupportAttribute"
              role="NAME_LABEL"/>
        </viewmap>
        <modelFacet
            xsi:type="gmfgen:FeatureLabelModelFacet"
            parser="//@labelParsers/@implementations.0">
          <metaFeatures
              href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/NamedElement/name"/>
        </modelFacet>
      </labels>
      <labels
          visualID="5025"
          editPartClassName="PackageStereo2EditPart"
          itemSemanticEditPolicyClassName="PackageStereo2ItemSemanticEditPolicy"
          notationViewFactoryClassName="PackageStereo2ViewFactory"
          elementIcon="true">
        <diagramRunTimeClass
            href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
        <viewmap
            xsi:type="gmfgen:ParentAssignedViewmap"
            getterName="getFigureSecondaryPackage_PackageLabel"
            figureQualifiedClassName="org.eclipse.draw2d.Label">
          <attributes
              xsi:type="u2tgen:StereotypeSupportAttribute"
              role="DIAGRAM_LABEL"/>
        </viewmap>
        <behaviour
            xsi:type="gmfgen:CustomBehaviour"
            key="org.eclipse.gef.EditPolicy.DIRECT_EDIT_ROLE"
            editPolicyQualifiedClassName="org.eclipse.uml2.diagram.parser.SemanticLabelDirectEditPolicy"/>
        <modelFacet
            xsi:type="gmfgen:FeatureLabelModelFacet"
            parser="//@labelParsers/@implementations.2">
          <metaFeatures
              href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/NamedElement/qualifiedName"/>
        </modelFacet>
      </labels>
    </topLevelNodes>
    <topLevelNodes
        visualID="2003"
        editPartClassName="DeviceEditPart"
        itemSemanticEditPolicyClassName="DeviceItemSemanticEditPolicy"
        notationViewFactoryClassName="DeviceViewFactory"
        canonicalEditPolicyClassName="DeviceCanonicalEditPolicy"
        compartments="//@diagram/@compartments.1"
        graphicalNodeEditPolicyClassName="DeviceGraphicalNodeEditPolicy"
        createCommandClassName="DeviceCreateCommand">
      <diagramRunTimeClass
          href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
      <elementType
          xsi:type="gmfgen:MetamodelType"
          editHelperClassName="DeviceEditHelper"/>
      <viewmap
          xsi:type="gmfgen:InnerClassViewmap"
          className="DeviceFigure"
          classBody="&#xA;/**&#xA; * @generated&#xA; */&#xA;public class DeviceFigure extends org.eclipse.uml2.diagram.common.draw2d.Cube3DFigure {&#xA;&#xA;&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public DeviceFigure() {&#xA;&#x9;&#x9;&#x9;&#x9;&#xA;&#xA;&#xA;&#xA;this.setTypeLabelVisible(&#xA;true);&#xA;&#xA;&#xA;&#x9;}&#xA;&#xA;&#xA;&#xA;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public org.eclipse.draw2d.Label getNameLabel() {&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;return super.getNameLabel();&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;}&#xD;&#xA;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public org.eclipse.draw2d.RectangleFigure getContentPane() {&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;return super.getContentPane();&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;}&#xD;&#xA;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public org.eclipse.uml2.diagram.common.draw2d.StereotypeLabel getDeviceTypeLabel() {&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;return getTypeLabel();&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;}&#xD;&#xA;&#xA;&#xA;}&#xA;&#xA;">
        <attributes
            xsi:type="gmfgen:DefaultSizeAttributes"
            width="100"
            height="60"/>
      </viewmap>
      <modelFacet>
        <metaClass
            href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Device"/>
        <containmentMetaFeature
            href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Package/packagedElement"/>
        <childMetaFeature
            href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Package/ownedType"/>
        <modelElementInitializer
            xsi:type="gmfgen:GenFeatureSeqInitializer">
          <initializers
              xsi:type="gmfgen:GenFeatureValueSpec"
              value="//@expressionProviders/@providers.0/@expressions.0">
            <feature
                href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/NamedElement/name"/>
          </initializers>
        </modelElementInitializer>
      </modelFacet>
      <labels
          visualID="5002"
          editPartClassName="DeviceNameEditPart"
          itemSemanticEditPolicyClassName="DeviceNameItemSemanticEditPolicy"
          notationViewFactoryClassName="DeviceNameViewFactory"
          elementIcon="true">
        <diagramRunTimeClass
            href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
        <viewmap
            xsi:type="gmfgen:ParentAssignedViewmap"
            getterName="getNameLabel"
            figureQualifiedClassName="org.eclipse.draw2d.Label"/>
        <modelFacet
            xsi:type="gmfgen:FeatureLabelModelFacet"
            parser="//@labelParsers/@implementations.0">
          <metaFeatures
              href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/NamedElement/name"/>
        </modelFacet>
      </labels>
      <labels
          visualID="5019"
          editPartClassName="DeviceStereoEditPart"
          itemSemanticEditPolicyClassName="DeviceStereoItemSemanticEditPolicy"
          notationViewFactoryClassName="DeviceStereoViewFactory">
        <diagramRunTimeClass
            href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
        <viewmap
            xsi:type="gmfgen:ParentAssignedViewmap"
            getterName="getDeviceTypeLabel"
            figureQualifiedClassName="org.eclipse.uml2.diagram.common.draw2d.StereotypeLabel"/>
        <behaviour
            xsi:type="gmfgen:CustomBehaviour"
            key="org.eclipse.gef.EditPolicy.DIRECT_EDIT_ROLE"
            editPolicyQualifiedClassName="org.eclipse.uml2.diagram.parser.SemanticLabelDirectEditPolicy"/>
        <modelFacet
            xsi:type="gmfgen:FeatureLabelModelFacet"
            parser="//@labelParsers/@implementations.1">
          <metaFeatures
              href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/NamedElement/qualifiedName"/>
        </modelFacet>
      </labels>
    </topLevelNodes>
    <topLevelNodes
        visualID="2004"
        editPartClassName="NodeEditPart"
        itemSemanticEditPolicyClassName="NodeItemSemanticEditPolicy"
        notationViewFactoryClassName="NodeViewFactory"
        canonicalEditPolicyClassName="NodeCanonicalEditPolicy"
        graphicalNodeEditPolicyClassName="NodeGraphicalNodeEditPolicy"
        createCommandClassName="NodeCreateCommand">
      <diagramRunTimeClass
          href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
      <elementType
          xsi:type="gmfgen:SpecializationType"
          metamodelType="//@diagram/@childNodes.8/@elementType"/>
      <viewmap
          xsi:type="gmfgen:InnerClassViewmap"
          className="NodeFigure"
          classBody="&#xA;/**&#xA; * @generated&#xA; */&#xA;public class NodeFigure extends org.eclipse.uml2.diagram.common.draw2d.Cube3DFigure {&#xA;&#xA;&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public NodeFigure() {&#xA;&#x9;&#x9;&#x9;&#x9;&#xA;&#xA;&#xA;&#xA;this.setTypeLabelVisible(&#xA;true);&#xA;&#xA;&#xA;&#x9;}&#xA;&#xA;&#xA;&#xA;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public org.eclipse.draw2d.Label getNameLabel() {&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;return super.getNameLabel();&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;}&#xD;&#xA;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public org.eclipse.uml2.diagram.common.draw2d.StereotypeLabel getNodeTypeLabel() {&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;return getTypeLabel();&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;}&#xD;&#xA;&#xA;&#xA;}&#xA;&#xA;">
        <attributes
            xsi:type="gmfgen:DefaultSizeAttributes"
            width="100"
            height="60"/>
      </viewmap>
      <modelFacet
          modelElementSelector="//@expressionProviders/@providers.0/@expressions.7">
        <metaClass
            href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Node"/>
        <containmentMetaFeature
            href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Package/packagedElement"/>
        <childMetaFeature
            href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Package/ownedType"/>
        <modelElementInitializer
            xsi:type="gmfgen:GenFeatureSeqInitializer">
          <initializers
              xsi:type="gmfgen:GenFeatureValueSpec"
              value="//@expressionProviders/@providers.0/@expressions.8">
            <feature
                href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/NamedElement/name"/>
          </initializers>
        </modelElementInitializer>
      </modelFacet>
      <labels
          visualID="5003"
          editPartClassName="NodeNameEditPart"
          itemSemanticEditPolicyClassName="NodeNameItemSemanticEditPolicy"
          notationViewFactoryClassName="NodeNameViewFactory"
          elementIcon="true">
        <diagramRunTimeClass
            href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
        <viewmap
            xsi:type="gmfgen:ParentAssignedViewmap"
            getterName="getNameLabel"
            figureQualifiedClassName="org.eclipse.draw2d.Label"/>
        <modelFacet
            xsi:type="gmfgen:FeatureLabelModelFacet"
            parser="//@labelParsers/@implementations.0">
          <metaFeatures
              href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/NamedElement/name"/>
        </modelFacet>
      </labels>
      <labels
          visualID="5020"
          editPartClassName="NodeStereoEditPart"
          itemSemanticEditPolicyClassName="NodeStereoItemSemanticEditPolicy"
          notationViewFactoryClassName="NodeStereoViewFactory">
        <diagramRunTimeClass
            href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
        <viewmap
            xsi:type="gmfgen:ParentAssignedViewmap"
            getterName="getNodeTypeLabel"
            figureQualifiedClassName="org.eclipse.uml2.diagram.common.draw2d.StereotypeLabel"/>
        <behaviour
            xsi:type="gmfgen:CustomBehaviour"
            key="org.eclipse.gef.EditPolicy.DIRECT_EDIT_ROLE"
            editPolicyQualifiedClassName="org.eclipse.uml2.diagram.parser.SemanticLabelDirectEditPolicy"/>
        <modelFacet
            xsi:type="gmfgen:FeatureLabelModelFacet"
            parser="//@labelParsers/@implementations.1">
          <metaFeatures
              href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/NamedElement/qualifiedName"/>
        </modelFacet>
      </labels>
    </topLevelNodes>
    <topLevelNodes
        visualID="2005"
        editPartClassName="ExecutionEnvironmentEditPart"
        itemSemanticEditPolicyClassName="ExecutionEnvironmentItemSemanticEditPolicy"
        notationViewFactoryClassName="ExecutionEnvironmentViewFactory"
        canonicalEditPolicyClassName="ExecutionEnvironmentCanonicalEditPolicy"
        compartments="//@diagram/@compartments.7"
        graphicalNodeEditPolicyClassName="ExecutionEnvironmentGraphicalNodeEditPolicy"
        createCommandClassName="ExecutionEnvironmentCreateCommand">
      <diagramRunTimeClass
          href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
      <elementType
          xsi:type="gmfgen:SpecializationType"
          metamodelType="//@diagram/@childNodes.6/@elementType"/>
      <viewmap
          xsi:type="gmfgen:InnerClassViewmap"
          className="EnvironmentFigure"
          classBody="&#xA;/**&#xA; * @generated&#xA; */&#xA;public class EnvironmentFigure extends org.eclipse.uml2.diagram.common.draw2d.Cube3DFigure {&#xA;&#xA;&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public EnvironmentFigure() {&#xA;&#x9;&#x9;&#x9;&#x9;&#xA;&#xA;&#xA;&#xA;this.setTypeLabelVisible(&#xA;true);&#xA;&#xA;&#xA;&#x9;}&#xA;&#xA;&#xA;&#xA;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public org.eclipse.uml2.diagram.common.draw2d.StereotypeLabel getEnvironmentTypeLabel() {&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;return getTypeLabel();&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;}&#xD;&#xA;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public org.eclipse.draw2d.Label getNameLabel() {&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;return super.getNameLabel();&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;}&#xD;&#xA;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public org.eclipse.draw2d.RectangleFigure getContentPane() {&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;return super.getContentPane();&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;}&#xD;&#xA;&#xA;&#xA;}&#xA;&#xA;">
        <attributes
            xsi:type="gmfgen:DefaultSizeAttributes"
            width="100"
            height="100"/>
      </viewmap>
      <modelFacet>
        <metaClass
            href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/ExecutionEnvironment"/>
        <containmentMetaFeature
            href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Package/packagedElement"/>
        <childMetaFeature
            href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Package/ownedType"/>
        <modelElementInitializer
            xsi:type="gmfgen:GenFeatureSeqInitializer">
          <initializers
              xsi:type="gmfgen:GenFeatureValueSpec"
              value="//@expressionProviders/@providers.0/@expressions.5">
            <feature
                href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/NamedElement/name"/>
          </initializers>
        </modelElementInitializer>
      </modelFacet>
      <labels
          visualID="5004"
          editPartClassName="ExecutionEnvironmentNameEditPart"
          itemSemanticEditPolicyClassName="ExecutionEnvironmentNameItemSemanticEditPolicy"
          notationViewFactoryClassName="ExecutionEnvironmentNameViewFactory"
          elementIcon="true">
        <diagramRunTimeClass
            href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
        <viewmap
            xsi:type="gmfgen:ParentAssignedViewmap"
            getterName="getNameLabel"
            figureQualifiedClassName="org.eclipse.draw2d.Label"/>
        <modelFacet
            xsi:type="gmfgen:FeatureLabelModelFacet"
            parser="//@labelParsers/@implementations.0">
          <metaFeatures
              href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/NamedElement/name"/>
        </modelFacet>
      </labels>
      <labels
          visualID="5021"
          editPartClassName="ExecutionEnvironmentStereoEditPart"
          itemSemanticEditPolicyClassName="ExecutionEnvironmentStereoItemSemanticEditPolicy"
          notationViewFactoryClassName="ExecutionEnvironmentStereoViewFactory">
        <diagramRunTimeClass
            href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
        <viewmap
            xsi:type="gmfgen:ParentAssignedViewmap"
            getterName="getEnvironmentTypeLabel"
            figureQualifiedClassName="org.eclipse.uml2.diagram.common.draw2d.StereotypeLabel"/>
        <behaviour
            xsi:type="gmfgen:CustomBehaviour"
            key="org.eclipse.gef.EditPolicy.DIRECT_EDIT_ROLE"
            editPolicyQualifiedClassName="org.eclipse.uml2.diagram.parser.SemanticLabelDirectEditPolicy"/>
        <modelFacet
            xsi:type="gmfgen:FeatureLabelModelFacet"
            parser="//@labelParsers/@implementations.1">
          <metaFeatures
              href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/NamedElement/qualifiedName"/>
        </modelFacet>
      </labels>
    </topLevelNodes>
    <topLevelNodes
        visualID="2006"
        editPartClassName="Artifact2EditPart"
        itemSemanticEditPolicyClassName="Artifact2ItemSemanticEditPolicy"
        notationViewFactoryClassName="Artifact2ViewFactory"
        canonicalEditPolicyClassName="Artifact2CanonicalEditPolicy"
        compartments="//@diagram/@compartments.8"
        graphicalNodeEditPolicyClassName="Artifact2GraphicalNodeEditPolicy"
        createCommandClassName="Artifact2CreateCommand">
      <diagramRunTimeClass
          href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
      <elementType
          xsi:type="gmfgen:SpecializationType"
          metamodelType="//@diagram/@childNodes.2/@elementType"/>
      <viewmap
          xsi:type="gmfgen:InnerClassViewmap"
          className="ArtifactFigure"
          classBody="&#xA;/**&#xA; * @generated&#xA; */&#xA;public class ArtifactFigure extends org.eclipse.draw2d.RectangleFigure {&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private org.eclipse.draw2d.RectangleFigure fFigureArtifactFigure_body; &#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private org.eclipse.uml2.diagram.common.draw2d.NameAndStereotypeBlock fNameAndStereotypeBlock; &#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public ArtifactFigure() {&#xA;&#x9;&#x9;&#xA;&#x9;org.eclipse.draw2d.BorderLayout layoutThis = new org.eclipse.draw2d.BorderLayout();&#xA;&#x9;this.setLayoutManager(layoutThis);&#xA;&#xA;&#x9;&#x9;this.setLineWidth(1);&#xA;&#xA;this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(1)&#xA;, getMapMode().DPtoLP(1)&#xA;, getMapMode().DPtoLP(1)&#xA;, getMapMode().DPtoLP(1)&#xA;));&#xA;&#x9;&#x9;createContents();&#xA;&#x9;}&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private void createContents(){&#xA;&#xA;&#xA;fNameAndStereotypeBlock = new org.eclipse.uml2.diagram.common.draw2d.NameAndStereotypeBlock();&#xA;&#xA;&#xA;&#xA;fNameAndStereotypeBlock.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(8)&#xA;, getMapMode().DPtoLP(5)&#xA;, getMapMode().DPtoLP(6)&#xA;, getMapMode().DPtoLP(5)&#xA;));&#xA;&#xA;this.add(fNameAndStereotypeBlock, org.eclipse.draw2d.BorderLayout.TOP);&#xA;&#xA;&#xA;&#xA;fFigureArtifactFigure_body = new org.eclipse.draw2d.RectangleFigure();&#xA;fFigureArtifactFigure_body.setOutline(false);&#xA;fFigureArtifactFigure_body.setLineWidth(1);&#xA;fFigureArtifactFigure_body.setMinimumSize(new org.eclipse.draw2d.geometry.Dimension(getMapMode().DPtoLP(0)&#xA;, getMapMode().DPtoLP(55)&#xA;));&#xA;fFigureArtifactFigure_body.setBorder(createBorder0());&#xA;&#xA;this.add(fFigureArtifactFigure_body, org.eclipse.draw2d.BorderLayout.CENTER);&#xA;&#xA;&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private org.eclipse.draw2d.Border createBorder0() {&#xA;&#x9;&#x9;org.eclipse.gmf.runtime.draw2d.ui.figures.OneLineBorder result = new org.eclipse.gmf.runtime.draw2d.ui.figures.OneLineBorder();&#xA;&#x9;&#x9;&#xA;&#xA;&#xA;&#x9;&#x9;return result;&#xA;&#x9;}&#xA;&#xA;&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public org.eclipse.draw2d.RectangleFigure getFigureArtifactFigure_body() {&#xA;&#x9;&#x9;return fFigureArtifactFigure_body;&#xA;&#x9;}&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public org.eclipse.uml2.diagram.common.draw2d.NameAndStereotypeBlock getNameAndStereotypeBlock() {&#xA;&#x9;&#x9;return fNameAndStereotypeBlock;&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getFigureArtifactFigure_name() {&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;return getNameAndStereotypeBlock().getNameLabel();&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;}&#xD;&#xA;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public org.eclipse.uml2.diagram.common.draw2d.StereotypeLabel2 getFigureArtifactFigure_stereo() {&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;return getNameAndStereotypeBlock().getStereotypeLabel();&#x9;&#x9;&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;}&#xD;&#xA;&#xA;&#xA;}&#xA;&#xA;">
        <attributes
            xsi:type="gmfgen:DefaultSizeAttributes"
            width="80"
            height="60"/>
      </viewmap>
      <modelFacet
          modelElementSelector="//@expressionProviders/@providers.0/@expressions.1">
        <metaClass
            href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Artifact"/>
        <containmentMetaFeature
            href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Package/packagedElement"/>
        <childMetaFeature
            href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Package/ownedType"/>
        <modelElementInitializer
            xsi:type="gmfgen:GenFeatureSeqInitializer">
          <initializers
              xsi:type="gmfgen:GenFeatureValueSpec"
              value="//@expressionProviders/@providers.0/@expressions.2">
            <feature
                href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Artifact/fileName"/>
          </initializers>
        </modelElementInitializer>
      </modelFacet>
      <labels
          visualID="5005"
          editPartClassName="ArtifactFileNameEditPart"
          itemSemanticEditPolicyClassName="ArtifactFileNameItemSemanticEditPolicy"
          notationViewFactoryClassName="ArtifactFileNameViewFactory"
          elementIcon="true">
        <diagramRunTimeClass
            href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
        <viewmap
            xsi:type="gmfgen:ParentAssignedViewmap"
            getterName="getFigureArtifactFigure_name"
            figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel">
          <attributes
              xsi:type="gmfgen:StyleAttributes"
              fixedFont="true"/>
        </viewmap>
        <modelFacet
            xsi:type="gmfgen:FeatureLabelModelFacet"
            parser="//@labelParsers/@implementations.0">
          <metaFeatures
              href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Artifact/fileName"/>
        </modelFacet>
      </labels>
      <labels
          visualID="5022"
          editPartClassName="ArtifactStereoEditPart"
          itemSemanticEditPolicyClassName="ArtifactStereoItemSemanticEditPolicy"
          notationViewFactoryClassName="ArtifactStereoViewFactory">
        <diagramRunTimeClass
            href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
        <viewmap
            xsi:type="gmfgen:ParentAssignedViewmap"
            getterName="getFigureArtifactFigure_stereo"
            figureQualifiedClassName="org.eclipse.uml2.diagram.common.draw2d.StereotypeLabel2">
          <attributes
              xsi:type="gmfgen:StyleAttributes"
              fixedFont="true"/>
        </viewmap>
        <behaviour
            xsi:type="gmfgen:CustomBehaviour"
            key="org.eclipse.gef.EditPolicy.DIRECT_EDIT_ROLE"
            editPolicyQualifiedClassName="org.eclipse.uml2.diagram.parser.SemanticLabelDirectEditPolicy"/>
        <modelFacet
            xsi:type="gmfgen:FeatureLabelModelFacet"
            parser="//@labelParsers/@implementations.1">
          <metaFeatures
              href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/NamedElement/qualifiedName"/>
        </modelFacet>
      </labels>
    </topLevelNodes>
    <topLevelNodes
        visualID="2007"
        editPartClassName="DeploymentSpecificationEditPart"
        itemSemanticEditPolicyClassName="DeploymentSpecificationItemSemanticEditPolicy"
        notationViewFactoryClassName="DeploymentSpecificationViewFactory"
        canonicalEditPolicyClassName="DeploymentSpecificationCanonicalEditPolicy"
        compartments="//@diagram/@compartments.9"
        graphicalNodeEditPolicyClassName="DeploymentSpecificationGraphicalNodeEditPolicy"
        createCommandClassName="DeploymentSpecificationCreateCommand">
      <diagramRunTimeClass
          href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
      <elementType
          xsi:type="gmfgen:SpecializationType"
          metamodelType="//@diagram/@childNodes.4/@elementType"/>
      <viewmap
          xsi:type="gmfgen:InnerClassViewmap"
          layoutType="TOOLBAR_LAYOUT"
          className="DeploymentSpecificationFigure"
          classBody="&#xA;/**&#xA; * @generated&#xA; */&#xA;public class DeploymentSpecificationFigure extends org.eclipse.draw2d.RectangleFigure {&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private org.eclipse.uml2.diagram.common.draw2d.StereotypeLabel fFigureDeploymentSpecificationFigure_stereo; &#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private org.eclipse.draw2d.Label fFigureDeploymentSpecificationFigure_name; &#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private org.eclipse.draw2d.RectangleFigure fFigureDeploymentSpecificationFigure_PropertiesCompartment; &#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public DeploymentSpecificationFigure() {&#xA;&#x9;&#x9;&#xA;&#x9;org.eclipse.draw2d.ToolbarLayout layoutThis = new org.eclipse.draw2d.ToolbarLayout();&#xA;&#x9;layoutThis.setStretchMinorAxis(true);&#xA;&#x9;layoutThis.setMinorAlignment(org.eclipse.draw2d.ToolbarLayout.ALIGN_CENTER&#xA;);&#xA;&#xA;&#x9;layoutThis.setSpacing(0);&#xA;&#x9;layoutThis.setVertical(true);&#xA;&#xA;&#x9;this.setLayoutManager(layoutThis);&#xA;&#xA;&#x9;&#x9;this.setLineWidth(1);&#xA;&#xA;this.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(1)&#xA;, getMapMode().DPtoLP(1)&#xA;, getMapMode().DPtoLP(10)&#xA;, getMapMode().DPtoLP(1)&#xA;));&#xA;&#x9;&#x9;createContents();&#xA;&#x9;}&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private void createContents(){&#xA;&#xA;&#xA;org.eclipse.draw2d.RectangleFigure deploymentSpecificationFigure_Header0 = new org.eclipse.draw2d.RectangleFigure();&#xA;deploymentSpecificationFigure_Header0.setOutline(false);&#xA;deploymentSpecificationFigure_Header0.setLineWidth(1);&#xA;&#xA;this.add(deploymentSpecificationFigure_Header0);&#xA;&#xA;&#x9;org.eclipse.draw2d.ToolbarLayout layoutDeploymentSpecificationFigure_Header0 = new org.eclipse.draw2d.ToolbarLayout();&#xA;&#x9;layoutDeploymentSpecificationFigure_Header0.setStretchMinorAxis(true);&#xA;&#x9;layoutDeploymentSpecificationFigure_Header0.setMinorAlignment(org.eclipse.draw2d.ToolbarLayout.ALIGN_TOPLEFT&#xA;);&#xA;&#xA;&#x9;layoutDeploymentSpecificationFigure_Header0.setSpacing(0);&#xA;&#x9;layoutDeploymentSpecificationFigure_Header0.setVertical(true);&#xA;&#xA;&#x9;deploymentSpecificationFigure_Header0.setLayoutManager(layoutDeploymentSpecificationFigure_Header0);&#xA;&#xA;&#xA;&#xA;org.eclipse.draw2d.RectangleFigure deploymentSpecificationFigure_StereoContainer1 = new org.eclipse.draw2d.RectangleFigure();&#xA;deploymentSpecificationFigure_StereoContainer1.setOutline(false);&#xA;deploymentSpecificationFigure_StereoContainer1.setLineWidth(1);&#xA;&#xA;deploymentSpecificationFigure_Header0.add(deploymentSpecificationFigure_StereoContainer1);&#xA;&#xA;&#x9;org.eclipse.uml2.diagram.common.draw2d.CenterLayout layoutDeploymentSpecificationFigure_StereoContainer1 = new org.eclipse.uml2.diagram.common.draw2d.CenterLayout();&#xA;&#xA;&#xA;&#x9;deploymentSpecificationFigure_StereoContainer1.setLayoutManager(layoutDeploymentSpecificationFigure_StereoContainer1);&#xA;&#xA;&#xA;&#xA;fFigureDeploymentSpecificationFigure_stereo = new org.eclipse.uml2.diagram.common.draw2d.StereotypeLabel();&#xA;&#xA;&#xA;&#xA;fFigureDeploymentSpecificationFigure_stereo.setFont(FFIGUREDEPLOYMENTSPECIFICATIONFIGURE_STEREO_FONT);&#xA;&#xA;&#xA;&#xA;fFigureDeploymentSpecificationFigure_stereo.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(5)&#xA;, getMapMode().DPtoLP(5)&#xA;, getMapMode().DPtoLP(0)&#xA;, getMapMode().DPtoLP(5)&#xA;));&#xA;&#xA;deploymentSpecificationFigure_StereoContainer1.add(fFigureDeploymentSpecificationFigure_stereo);&#xA;&#xA;&#xA;&#xA;&#xA;org.eclipse.draw2d.RectangleFigure deploymentSpecificationFigure_NameContainer1 = new org.eclipse.draw2d.RectangleFigure();&#xA;deploymentSpecificationFigure_NameContainer1.setOutline(false);&#xA;deploymentSpecificationFigure_NameContainer1.setLineWidth(1);&#xA;&#xA;deploymentSpecificationFigure_Header0.add(deploymentSpecificationFigure_NameContainer1);&#xA;&#xA;&#x9;org.eclipse.uml2.diagram.common.draw2d.CenterLayout layoutDeploymentSpecificationFigure_NameContainer1 = new org.eclipse.uml2.diagram.common.draw2d.CenterLayout();&#xA;&#xA;&#xA;&#x9;deploymentSpecificationFigure_NameContainer1.setLayoutManager(layoutDeploymentSpecificationFigure_NameContainer1);&#xA;&#xA;&#xA;&#xA;fFigureDeploymentSpecificationFigure_name = new org.eclipse.draw2d.Label();&#xA;fFigureDeploymentSpecificationFigure_name.setText(&quot;&quot;);&#xA;&#xA;fFigureDeploymentSpecificationFigure_name.setFont(FFIGUREDEPLOYMENTSPECIFICATIONFIGURE_NAME_FONT);&#xA;&#xA;&#xA;&#xA;fFigureDeploymentSpecificationFigure_name.setBorder(new org.eclipse.draw2d.MarginBorder(getMapMode().DPtoLP(0)&#xA;, getMapMode().DPtoLP(5)&#xA;, getMapMode().DPtoLP(5)&#xA;, getMapMode().DPtoLP(5)&#xA;));&#xA;&#xA;deploymentSpecificationFigure_NameContainer1.add(fFigureDeploymentSpecificationFigure_name);&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;fFigureDeploymentSpecificationFigure_PropertiesCompartment = new org.eclipse.draw2d.RectangleFigure();&#xA;fFigureDeploymentSpecificationFigure_PropertiesCompartment.setOutline(false);&#xA;fFigureDeploymentSpecificationFigure_PropertiesCompartment.setLineWidth(1);&#xA;&#xA;this.add(fFigureDeploymentSpecificationFigure_PropertiesCompartment);&#xA;fFigureDeploymentSpecificationFigure_PropertiesCompartment.setLayoutManager(new org.eclipse.draw2d.StackLayout());&#xA;&#xA;&#xA;&#x9;}&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public org.eclipse.uml2.diagram.common.draw2d.StereotypeLabel getFigureDeploymentSpecificationFigure_stereo() {&#xA;&#x9;&#x9;return fFigureDeploymentSpecificationFigure_stereo;&#xA;&#x9;}&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public org.eclipse.draw2d.Label getFigureDeploymentSpecificationFigure_name() {&#xA;&#x9;&#x9;return fFigureDeploymentSpecificationFigure_name;&#xA;&#x9;}&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public org.eclipse.draw2d.RectangleFigure getFigureDeploymentSpecificationFigure_PropertiesCompartment() {&#xA;&#x9;&#x9;return fFigureDeploymentSpecificationFigure_PropertiesCompartment;&#xA;&#x9;}&#xA;&#xA;&#xA;}&#xA;&#xA;/**&#xA; * @generated&#xA; */&#xA;static final org.eclipse.swt.graphics.Font FFIGUREDEPLOYMENTSPECIFICATIONFIGURE_STEREO_FONT = new org.eclipse.swt.graphics.Font(org.eclipse.swt.widgets.Display.getCurrent(), org.eclipse.swt.widgets.Display.getDefault().getSystemFont().getFontData()[0].getName(), 9, org.eclipse.swt.SWT.NORMAL);&#xA;&#xA;/**&#xA; * @generated&#xA; */&#xA;static final org.eclipse.swt.graphics.Font FFIGUREDEPLOYMENTSPECIFICATIONFIGURE_NAME_FONT = new org.eclipse.swt.graphics.Font(org.eclipse.swt.widgets.Display.getCurrent(), org.eclipse.swt.widgets.Display.getDefault().getSystemFont().getFontData()[0].getName(), 9, org.eclipse.swt.SWT.NORMAL);&#xA;&#xA;">
        <attributes
            xsi:type="gmfgen:DefaultSizeAttributes"
            width="160"
            height="100"/>
        <attributes
            xsi:type="gmfgen:StyleAttributes"
            fixedBackground="true"/>
      </viewmap>
      <modelFacet>
        <metaClass
            href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/DeploymentSpecification"/>
        <containmentMetaFeature
            href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Package/packagedElement"/>
        <childMetaFeature
            href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Package/ownedType"/>
        <modelElementInitializer
            xsi:type="gmfgen:GenFeatureSeqInitializer">
          <initializers
              xsi:type="gmfgen:GenFeatureValueSpec"
              value="//@expressionProviders/@providers.0/@expressions.3">
            <feature
                href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/NamedElement/name"/>
          </initializers>
        </modelElementInitializer>
      </modelFacet>
      <labels
          visualID="5006"
          editPartClassName="DeploymentSpecificationNameEditPart"
          itemSemanticEditPolicyClassName="DeploymentSpecificationNameItemSemanticEditPolicy"
          notationViewFactoryClassName="DeploymentSpecificationNameViewFactory"
          elementIcon="true">
        <diagramRunTimeClass
            href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
        <viewmap
            xsi:type="gmfgen:ParentAssignedViewmap"
            getterName="getFigureDeploymentSpecificationFigure_name"
            figureQualifiedClassName="org.eclipse.draw2d.Label">
          <attributes
              xsi:type="gmfgen:StyleAttributes"
              fixedFont="true"/>
        </viewmap>
        <modelFacet
            xsi:type="gmfgen:FeatureLabelModelFacet"
            parser="//@labelParsers/@implementations.0">
          <metaFeatures
              href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/NamedElement/name"/>
        </modelFacet>
      </labels>
      <labels
          visualID="5023"
          editPartClassName="DeploymentSpecificationStereo3EditPart"
          itemSemanticEditPolicyClassName="DeploymentSpecificationStereo3ItemSemanticEditPolicy"
          notationViewFactoryClassName="DeploymentSpecificationStereo3ViewFactory">
        <diagramRunTimeClass
            href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
        <viewmap
            xsi:type="gmfgen:ParentAssignedViewmap"
            getterName="getFigureDeploymentSpecificationFigure_stereo"
            figureQualifiedClassName="org.eclipse.uml2.diagram.common.draw2d.StereotypeLabel">
          <attributes
              xsi:type="gmfgen:StyleAttributes"
              fixedFont="true"/>
        </viewmap>
        <behaviour
            xsi:type="gmfgen:CustomBehaviour"
            key="org.eclipse.gef.EditPolicy.DIRECT_EDIT_ROLE"
            editPolicyQualifiedClassName="org.eclipse.uml2.diagram.parser.SemanticLabelDirectEditPolicy"/>
        <modelFacet
            xsi:type="gmfgen:FeatureLabelModelFacet"
            parser="//@labelParsers/@implementations.1">
          <metaFeatures
              href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/NamedElement/qualifiedName"/>
        </modelFacet>
      </labels>
    </topLevelNodes>
    <topLevelNodes
        visualID="2008"
        editPartClassName="CommentEditPart"
        itemSemanticEditPolicyClassName="CommentItemSemanticEditPolicy"
        notationViewFactoryClassName="CommentViewFactory"
        canonicalEditPolicyClassName="CommentCanonicalEditPolicy"
        graphicalNodeEditPolicyClassName="CommentGraphicalNodeEditPolicy"
        createCommandClassName="CommentCreateCommand">
      <diagramRunTimeClass
          href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
      <elementType
          xsi:type="gmfgen:MetamodelType"
          editHelperClassName="CommentEditHelper"/>
      <viewmap
          xsi:type="gmfgen:InnerClassViewmap"
          className="CommentFigure"
          classBody="&#xA;/**&#xA; * @generated&#xA; */&#xA;public class CommentFigure extends org.eclipse.uml2.diagram.common.draw2d.CommentFigureBase {&#xA;&#xA;&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public CommentFigure() {&#xA;&#x9;&#x9;&#x9;&#x9;&#xA;&#xA;&#xA;&#xA;this.setTextLabelWrap(&#xA;true);&#xA;&#xA;&#xA;&#x9;}&#xA;&#xA;&#xA;&#xA;&#xA;&#x9;/**&#xD;&#xA;&#x9; * @generated&#xD;&#xA;&#x9; */&#xD;&#xA;&#x9;public org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel getBodyLabel() {&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;return super.getBodyLabel();&#xD;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;}&#xD;&#xA;&#xA;&#xA;}&#xA;&#xA;"/>
      <modelFacet>
        <metaClass
            href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Comment"/>
        <containmentMetaFeature
            href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Element/ownedComment"/>
        <childMetaFeature
            href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Element/ownedComment"/>
      </modelFacet>
      <labels
          visualID="5024"
          editPartClassName="CommentBodyEditPart"
          itemSemanticEditPolicyClassName="CommentBodyItemSemanticEditPolicy"
          notationViewFactoryClassName="CommentBodyViewFactory"
          elementIcon="true">
        <diagramRunTimeClass
            href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
        <viewmap
            xsi:type="gmfgen:ParentAssignedViewmap"
            getterName="getBodyLabel"
            figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"/>
        <modelFacet
            xsi:type="gmfgen:FeatureLabelModelFacet"
            parser="//@labelParsers/@implementations.0">
          <metaFeatures
              href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Comment/body"/>
        </modelFacet>
      </labels>
    </topLevelNodes>
    <links
        visualID="4001"
        editPartClassName="DeploymentEditPart"
        itemSemanticEditPolicyClassName="DeploymentItemSemanticEditPolicy"
        notationViewFactoryClassName="DeploymentViewFactory"
        incomingCreationAllowed="true"
        createCommandClassName="DeploymentCreateCommand"
        reorientCommandClassName="DeploymentReorientCommand">
      <diagramRunTimeClass
          href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Edge"/>
      <elementType
          xsi:type="gmfgen:MetamodelType"
          editHelperClassName="DeploymentEditHelper"/>
      <viewmap
          xsi:type="gmfgen:InnerClassViewmap"
          className="ReversedDeploymentPolyline"
          classBody="&#xA;/**&#xA; * @generated&#xA; */&#xA;public class ReversedDeploymentPolyline extends org.eclipse.gmf.runtime.draw2d.ui.figures.PolylineConnectionEx {&#xA;&#xA;&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public ReversedDeploymentPolyline() {&#xA;&#x9;&#x9;this.setLineWidth(1);&#xA;this.setLineStyle(org.eclipse.draw2d.Graphics.LINE_DASH);&#xA;&#x9;this.setForegroundColor(org.eclipse.draw2d.ColorConstants.black);&#xA;&#xA;&#x9;&#x9;setSourceDecoration(createSourceDecoration());&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private org.eclipse.draw2d.RotatableDecoration createSourceDecoration() {&#xA;&#x9;&#x9;org.eclipse.draw2d.PolylineDecoration df = new org.eclipse.draw2d.PolylineDecoration();&#xA;df.setLineWidth(1);&#xA;org.eclipse.draw2d.geometry.PointList pl = new org.eclipse.draw2d.geometry.PointList();&#xA;pl.addPoint(getMapMode().DPtoLP(-1)&#xA;, getMapMode().DPtoLP(1)&#xA;);&#xA;pl.addPoint(getMapMode().DPtoLP(0)&#xA;, getMapMode().DPtoLP(0)&#xA;);&#xA;pl.addPoint(getMapMode().DPtoLP(-1)&#xA;, getMapMode().DPtoLP(-1)&#xA;);&#xA;df.setTemplate(pl);&#xA;df.setScale(getMapMode().DPtoLP(7)&#xA;, getMapMode().DPtoLP(3)&#xA;);&#xA;&#x9;&#x9;return df;&#xA;&#x9;}&#xA;&#xA;&#xA;&#xA;&#xA;}&#xA;&#xA;">
        <attributes
            xsi:type="gmfgen:StyleAttributes"
            fixedForeground="true"/>
      </viewmap>
      <modelFacet
          xsi:type="gmfgen:TypeLinkModelFacet">
        <metaClass
            href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Deployment"/>
        <containmentMetaFeature
            href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/DeploymentTarget/deployment"/>
        <childMetaFeature
            href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/DeploymentTarget/deployment"/>
        <sourceMetaFeature
            href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Deployment/location"/>
        <targetMetaFeature
            href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Deployment/deployedArtifact"/>
      </modelFacet>
      <labels
          visualID="6001"
          editPartClassName="DeploymentNameEditPart"
          itemSemanticEditPolicyClassName="DeploymentNameItemSemanticEditPolicy"
          notationViewFactoryClassName="DeploymentNameViewFactory"
          readOnly="true">
        <diagramRunTimeClass
            href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
        <viewmap
            xsi:type="gmfgen:FigureViewmap"
            figureQualifiedClassName="org.eclipse.draw2d.Label">
          <attributes
              xsi:type="gmfgen:LabelOffsetAttributes"
              y="20"/>
        </viewmap>
        <modelFacet
            xsi:type="gmfgen:FeatureLabelModelFacet"
            parser="//@labelParsers/@implementations.0"
            viewPattern="\u00ABdeploy\u00BB">
          <metaFeatures
              href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/NamedElement/name"/>
        </modelFacet>
      </labels>
    </links>
    <links
        visualID="4002"
        editPartClassName="ManifestationEditPart"
        itemSemanticEditPolicyClassName="ManifestationItemSemanticEditPolicy"
        notationViewFactoryClassName="ManifestationViewFactory"
        createCommandClassName="ManifestationCreateCommand"
        reorientCommandClassName="ManifestationReorientCommand">
      <diagramRunTimeClass
          href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Edge"/>
      <elementType
          xsi:type="gmfgen:MetamodelType"
          editHelperClassName="ManifestationEditHelper"/>
      <viewmap
          xsi:type="gmfgen:InnerClassViewmap"
          className="Manifestation_Polyline"
          classBody="&#xA;/**&#xA; * @generated&#xA; */&#xA;public class Manifestation_Polyline extends org.eclipse.gmf.runtime.draw2d.ui.figures.PolylineConnectionEx {&#xA;&#xA;&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public Manifestation_Polyline() {&#xA;&#x9;&#x9;this.setLineWidth(1);&#xA;this.setLineStyle(org.eclipse.draw2d.Graphics.LINE_DASH);&#xA;&#x9;this.setForegroundColor(org.eclipse.draw2d.ColorConstants.gray);&#xA;&#xA;&#x9;&#x9;setTargetDecoration(createTargetDecoration());&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private org.eclipse.draw2d.RotatableDecoration createTargetDecoration() {&#xA;&#x9;&#x9;org.eclipse.draw2d.PolylineDecoration df = new org.eclipse.draw2d.PolylineDecoration();&#xA;df.setLineWidth(1);&#xA;org.eclipse.draw2d.geometry.PointList pl = new org.eclipse.draw2d.geometry.PointList();&#xA;pl.addPoint(getMapMode().DPtoLP(-1)&#xA;, getMapMode().DPtoLP(1)&#xA;);&#xA;pl.addPoint(getMapMode().DPtoLP(0)&#xA;, getMapMode().DPtoLP(0)&#xA;);&#xA;pl.addPoint(getMapMode().DPtoLP(-1)&#xA;, getMapMode().DPtoLP(-1)&#xA;);&#xA;df.setTemplate(pl);&#xA;df.setScale(getMapMode().DPtoLP(7)&#xA;, getMapMode().DPtoLP(3)&#xA;);&#xA;&#x9;&#x9;return df;&#xA;&#x9;}&#xA;&#xA;&#xA;&#xA;&#xA;}&#xA;&#xA;">
        <attributes
            xsi:type="gmfgen:StyleAttributes"
            fixedForeground="true"/>
      </viewmap>
      <modelFacet
          xsi:type="gmfgen:TypeLinkModelFacet">
        <metaClass
            href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Manifestation"/>
        <containmentMetaFeature
            href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Artifact/manifestation"/>
        <childMetaFeature
            href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Artifact/manifestation"/>
        <targetMetaFeature
            href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Manifestation/utilizedElement"/>
      </modelFacet>
      <labels
          visualID="6002"
          editPartClassName="ManifestationNameEditPart"
          itemSemanticEditPolicyClassName="ManifestationNameItemSemanticEditPolicy"
          notationViewFactoryClassName="ManifestationNameViewFactory"
          readOnly="true">
        <diagramRunTimeClass
            href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
        <viewmap
            xsi:type="gmfgen:FigureViewmap"
            figureQualifiedClassName="org.eclipse.draw2d.Label">
          <attributes
              xsi:type="gmfgen:LabelOffsetAttributes"
              y="20"/>
        </viewmap>
        <modelFacet
            xsi:type="gmfgen:FeatureLabelModelFacet"
            parser="//@labelParsers/@implementations.0"
            viewPattern="\u00ABmanifest\u00BB">
          <metaFeatures
              href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/NamedElement/name"/>
        </modelFacet>
      </labels>
    </links>
    <links
        visualID="4003"
        editPartClassName="DeploymentConfigurationEditPart"
        itemSemanticEditPolicyClassName="DeploymentConfigurationItemSemanticEditPolicy"
        notationViewFactoryClassName="DeploymentConfigurationViewFactory"
        incomingCreationAllowed="true"
        createCommandClassName="DeploymentConfigurationCreateCommand"
        reorientCommandClassName="DeploymentConfigurationReorientCommand">
      <diagramRunTimeClass
          href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Edge"/>
      <elementType
          xsi:type="gmfgen:SpecializationType"/>
      <viewmap
          xsi:type="gmfgen:InnerClassViewmap"
          className="SpecificationPolyline"
          classBody="&#xA;/**&#xA; * @generated&#xA; */&#xA;public class SpecificationPolyline extends org.eclipse.gmf.runtime.draw2d.ui.figures.PolylineConnectionEx {&#xA;&#xA;&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public SpecificationPolyline() {&#xA;&#x9;&#x9;this.setLineWidth(1);&#xA;this.setLineStyle(org.eclipse.draw2d.Graphics.LINE_DASH);&#xA;&#x9;this.setForegroundColor(org.eclipse.draw2d.ColorConstants.black);&#xA;&#xA;&#x9;}&#xA;&#xA;&#xA;&#xA;&#xA;}&#xA;&#xA;">
        <attributes
            xsi:type="gmfgen:StyleAttributes"
            fixedForeground="true"/>
      </viewmap>
      <modelFacet
          xsi:type="gmfgen:FeatureLinkModelFacet">
        <metaFeature
            href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Deployment/configuration"/>
      </modelFacet>
    </links>
    <links
        visualID="4004"
        editPartClassName="CommunicationPathEditPart"
        itemSemanticEditPolicyClassName="CommunicationPathItemSemanticEditPolicy"
        notationViewFactoryClassName="CommunicationPathViewFactory"
        createCommandClassName="CommunicationPathCreateCommand"
        reorientCommandClassName="CommunicationPathReorientCommand">
      <diagramRunTimeClass
          href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Edge"/>
      <elementType
          xsi:type="gmfgen:MetamodelType"
          editHelperClassName="CommunicationPathEditHelper"/>
      <viewmap
          xsi:type="gmfgen:InnerClassViewmap"
          className="CommunicationPathPolyline"
          classBody="&#xA;/**&#xA; * @generated&#xA; */&#xA;public class CommunicationPathPolyline extends org.eclipse.gmf.runtime.draw2d.ui.figures.PolylineConnectionEx {&#xA;&#xA;&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public CommunicationPathPolyline() {&#xA;&#x9;&#x9;this.setLineWidth(1);&#xA;&#x9;this.setForegroundColor(org.eclipse.draw2d.ColorConstants.blue);&#xA;&#xA;&#x9;}&#xA;&#xA;&#xA;&#xA;&#xA;}&#xA;&#xA;">
        <attributes
            xsi:type="gmfgen:StyleAttributes"
            fixedForeground="true"/>
      </viewmap>
      <modelFacet
          xsi:type="gmfgen:TypeLinkModelFacet">
        <metaClass
            href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/CommunicationPath"/>
        <containmentMetaFeature
            href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Package/packagedElement"/>
        <childMetaFeature
            href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Package/packagedElement"/>
        <sourceMetaFeature
            href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/TypedElement/type"/>
        <targetMetaFeature
            href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/TypedElement/type"/>
      </modelFacet>
      <labels
          visualID="6003"
          editPartClassName="CommunicationPathNameEditPart"
          itemSemanticEditPolicyClassName="CommunicationPathNameItemSemanticEditPolicy"
          notationViewFactoryClassName="CommunicationPathNameViewFactory"
          elementIcon="true">
        <diagramRunTimeClass
            href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
        <viewmap
            xsi:type="gmfgen:FigureViewmap"
            figureQualifiedClassName="org.eclipse.draw2d.Label">
          <attributes
              xsi:type="gmfgen:LabelOffsetAttributes"
              y="20"/>
        </viewmap>
        <modelFacet
            xsi:type="gmfgen:FeatureLabelModelFacet"
            parser="//@labelParsers/@implementations.0">
          <metaFeatures
              href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/NamedElement/name"/>
        </modelFacet>
      </labels>
      <creationConstraints
          sourceEnd="//@expressionProviders/@providers.0/@expressions.9"
          targetEnd="//@expressionProviders/@providers.0/@expressions.10"/>
    </links>
    <links
        visualID="4005"
        editPartClassName="DependencyEditPart"
        itemSemanticEditPolicyClassName="DependencyItemSemanticEditPolicy"
        notationViewFactoryClassName="DependencyViewFactory"
        createCommandClassName="DependencyCreateCommand"
        reorientCommandClassName="DependencyReorientCommand">
      <diagramRunTimeClass
          href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Edge"/>
      <elementType
          xsi:type="gmfgen:MetamodelType"
          editHelperClassName="DependencyEditHelper"/>
      <viewmap
          xsi:type="gmfgen:InnerClassViewmap"
          className="Dependency_WithArrow_Polyline"
          classBody="&#xA;/**&#xA; * @generated&#xA; */&#xA;public class Dependency_WithArrow_Polyline extends org.eclipse.gmf.runtime.draw2d.ui.figures.PolylineConnectionEx {&#xA;&#xA;&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public Dependency_WithArrow_Polyline() {&#xA;&#x9;&#x9;this.setLineWidth(1);&#xA;this.setLineStyle(org.eclipse.draw2d.Graphics.LINE_DASH);&#xA;&#x9;this.setForegroundColor(org.eclipse.draw2d.ColorConstants.lightGray);&#xA;&#xA;&#x9;&#x9;setTargetDecoration(createTargetDecoration());&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private org.eclipse.draw2d.RotatableDecoration createTargetDecoration() {&#xA;&#x9;&#x9;org.eclipse.draw2d.PolylineDecoration df = new org.eclipse.draw2d.PolylineDecoration();&#xA;df.setLineWidth(1);&#xA;org.eclipse.draw2d.geometry.PointList pl = new org.eclipse.draw2d.geometry.PointList();&#xA;pl.addPoint(getMapMode().DPtoLP(-1)&#xA;, getMapMode().DPtoLP(1)&#xA;);&#xA;pl.addPoint(getMapMode().DPtoLP(0)&#xA;, getMapMode().DPtoLP(0)&#xA;);&#xA;pl.addPoint(getMapMode().DPtoLP(-1)&#xA;, getMapMode().DPtoLP(-1)&#xA;);&#xA;df.setTemplate(pl);&#xA;df.setScale(getMapMode().DPtoLP(7)&#xA;, getMapMode().DPtoLP(3)&#xA;);&#xA;&#x9;&#x9;return df;&#xA;&#x9;}&#xA;&#xA;&#xA;&#xA;&#xA;}&#xA;&#xA;">
        <attributes
            xsi:type="gmfgen:StyleAttributes"
            fixedForeground="true"/>
        <attributes
            xsi:type="u2tgen:GeneralizedLinkConstraintAttribute"
            linkConstraint="if (linkClass != null) {    if (UMLPackage.eINSTANCE.getUsage().isSuperTypeOf(linkClass)) {     if ((source instanceof Classifier || source instanceof org.eclipse.uml2.uml.Port) &amp;&amp; target instanceof Interface) {      return false;     }    }    }    return true;"/>
        <attributes
            xsi:type="u2tgen:LinkToolStackSupportAttribute"
            toolClassProviderName="CreateDependencyLinkTool"
            baseSemanticClassName="Dependency"/>
      </viewmap>
      <modelFacet
          xsi:type="gmfgen:TypeLinkModelFacet"
          modelElementSelector="//@expressionProviders/@providers.0/@expressions.11">
        <metaClass
            href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Dependency"/>
        <containmentMetaFeature
            href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Package/packagedElement"/>
        <childMetaFeature
            href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Package/packagedElement"/>
        <sourceMetaFeature
            href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Dependency/client"/>
        <targetMetaFeature
            href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Dependency/supplier"/>
      </modelFacet>
      <labels
          visualID="6004"
          editPartClassName="DependencyNameEditPart"
          itemSemanticEditPolicyClassName="DependencyNameItemSemanticEditPolicy"
          notationViewFactoryClassName="DependencyNameViewFactory"
          elementIcon="true">
        <diagramRunTimeClass
            href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
        <viewmap
            xsi:type="gmfgen:FigureViewmap"
            figureQualifiedClassName="org.eclipse.draw2d.Label">
          <attributes
              xsi:type="gmfgen:LabelOffsetAttributes"
              y="40"/>
        </viewmap>
        <modelFacet
            xsi:type="gmfgen:FeatureLabelModelFacet"
            parser="//@labelParsers/@implementations.0">
          <metaFeatures
              href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/NamedElement/name"/>
        </modelFacet>
      </labels>
      <labels
          visualID="6005"
          editPartClassName="DependencyName2EditPart"
          itemSemanticEditPolicyClassName="DependencyName2ItemSemanticEditPolicy"
          notationViewFactoryClassName="DependencyNameViewFactory">
        <diagramRunTimeClass
            href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
        <viewmap
            xsi:type="gmfgen:FigureViewmap"
            figureQualifiedClassName="org.eclipse.draw2d.Label">
          <attributes
              xsi:type="gmfgen:LabelOffsetAttributes"
              y="20"/>
        </viewmap>
        <modelFacet
            xsi:type="gmfgen:FeatureLabelModelFacet"
            parser="//@labelParsers/@implementations.3">
          <metaFeatures
              href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/NamedElement/name"/>
        </modelFacet>
      </labels>
    </links>
    <links
        visualID="4006"
        editPartClassName="CommentAnnotatedElementEditPart"
        itemSemanticEditPolicyClassName="CommentAnnotatedElementItemSemanticEditPolicy"
        notationViewFactoryClassName="CommentAnnotatedElementViewFactory"
        createCommandClassName="CommentAnnotatedElementCreateCommand"
        reorientCommandClassName="CommentAnnotatedElementReorientCommand">
      <diagramRunTimeClass
          href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Edge"/>
      <elementType
          xsi:type="gmfgen:SpecializationType"/>
      <viewmap
          xsi:type="gmfgen:InnerClassViewmap"
          className="AnnotatedElementLinkFigure"
          classBody="&#xA;/**&#xA; * @generated&#xA; */&#xA;public class AnnotatedElementLinkFigure extends org.eclipse.gmf.runtime.draw2d.ui.figures.PolylineConnectionEx {&#xA;&#xA;&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public AnnotatedElementLinkFigure() {&#xA;&#x9;&#x9;this.setLineWidth(1);&#xA;this.setLineStyle(org.eclipse.draw2d.Graphics.LINE_DOT);&#xA;&#xA;&#x9;}&#xA;&#xA;&#xA;&#xA;&#xA;}&#xA;&#xA;"/>
      <modelFacet
          xsi:type="gmfgen:FeatureLinkModelFacet">
        <metaFeature
            href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Comment/annotatedElement"/>
      </modelFacet>
    </links>
    <compartments
        visualID="7001"
        editPartClassName="PackageImportsEditPart"
        itemSemanticEditPolicyClassName="PackageImportsItemSemanticEditPolicy"
        notationViewFactoryClassName="PackageImportsViewFactory"
        canonicalEditPolicyClassName="PackageImportsCanonicalEditPolicy"
        childNodes="//@diagram/@childNodes.0"
        title="imports"
        needsTitle="false"
        node="//@diagram/@topLevelNodes.0">
      <diagramRunTimeClass
          href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
      <viewmap
          xsi:type="gmfgen:ParentAssignedViewmap"
          getterName="getFigureSecondaryPackage_Imports"
          figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
    </compartments>
    <compartments
        visualID="7004"
        editPartClassName="DeviceDevicecontentsEditPart"
        itemSemanticEditPolicyClassName="DeviceDevicecontentsItemSemanticEditPolicy"
        notationViewFactoryClassName="DeviceDevicecontentsViewFactory"
        canonicalEditPolicyClassName="DeviceDevicecontentsCanonicalEditPolicy"
        childNodes="//@diagram/@childNodes.1 //@diagram/@childNodes.2 //@diagram/@childNodes.6 //@diagram/@childNodes.8"
        title="device contents"
        canCollapse="false"
        needsTitle="false"
        node="//@diagram/@topLevelNodes.1"
        listLayout="false">
      <diagramRunTimeClass
          href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
      <viewmap
          xsi:type="gmfgen:ParentAssignedViewmap"
          getterName="getContentPane"
          figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
    </compartments>
    <compartments
        visualID="7005"
        editPartClassName="DeviceDevicecontents2EditPart"
        itemSemanticEditPolicyClassName="DeviceDevicecontents2ItemSemanticEditPolicy"
        notationViewFactoryClassName="DeviceDevicecontents2ViewFactory"
        canonicalEditPolicyClassName="DeviceDevicecontents2CanonicalEditPolicy"
        childNodes="//@diagram/@childNodes.1 //@diagram/@childNodes.2 //@diagram/@childNodes.6 //@diagram/@childNodes.8"
        title="device contents"
        canCollapse="false"
        needsTitle="false"
        node="//@diagram/@childNodes.1"
        listLayout="false">
      <diagramRunTimeClass
          href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
      <viewmap
          xsi:type="gmfgen:ParentAssignedViewmap"
          getterName="getContentPane"
          figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
    </compartments>
    <compartments
        visualID="7007"
        editPartClassName="ArtifactArtifactFigure_contentsEditPart"
        itemSemanticEditPolicyClassName="ArtifactArtifactFigure_contentsItemSemanticEditPolicy"
        notationViewFactoryClassName="ArtifactArtifactFigure_contentsViewFactory"
        canonicalEditPolicyClassName="ArtifactArtifactFigure_contentsCanonicalEditPolicy"
        childNodes="//@diagram/@childNodes.3 //@diagram/@childNodes.4"
        title="ArtifactFigure_contents"
        needsTitle="false"
        node="//@diagram/@childNodes.2"
        listLayout="false">
      <diagramRunTimeClass
          href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
      <viewmap
          xsi:type="gmfgen:ParentAssignedViewmap"
          getterName="getFigureArtifactFigure_body"
          figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
    </compartments>
    <compartments
        visualID="7008"
        editPartClassName="ArtifactArtifactFigure_contents2EditPart"
        itemSemanticEditPolicyClassName="ArtifactArtifactFigure_contents2ItemSemanticEditPolicy"
        notationViewFactoryClassName="ArtifactArtifactFigure_contents2ViewFactory"
        canonicalEditPolicyClassName="ArtifactArtifactFigure_contents2CanonicalEditPolicy"
        childNodes="//@diagram/@childNodes.3 //@diagram/@childNodes.4"
        title="ArtifactFigure_contents"
        needsTitle="false"
        node="//@diagram/@childNodes.3"
        listLayout="false">
      <diagramRunTimeClass
          href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
      <viewmap
          xsi:type="gmfgen:ParentAssignedViewmap"
          getterName="getFigureArtifactFigure_body"
          figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
    </compartments>
    <compartments
        visualID="7010"
        editPartClassName="DeploymentSpecificationProperties2EditPart"
        itemSemanticEditPolicyClassName="DeploymentSpecificationProperties2ItemSemanticEditPolicy"
        notationViewFactoryClassName="DeploymentSpecificationProperties2ViewFactory"
        canonicalEditPolicyClassName="DeploymentSpecificationProperties2CanonicalEditPolicy"
        childNodes="//@diagram/@childNodes.5"
        title="properties"
        canCollapse="false"
        needsTitle="false"
        node="//@diagram/@childNodes.4">
      <diagramRunTimeClass
          href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
      <viewmap
          xsi:type="gmfgen:ParentAssignedViewmap"
          getterName="getFigureDeploymentSpecificationFigure_PropertiesCompartment"
          figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
    </compartments>
    <compartments
        visualID="7006"
        editPartClassName="ExecutionEnvironmentArtifacts2EditPart"
        itemSemanticEditPolicyClassName="ExecutionEnvironmentArtifacts2ItemSemanticEditPolicy"
        notationViewFactoryClassName="ExecutionEnvironmentArtifacts2ViewFactory"
        canonicalEditPolicyClassName="ExecutionEnvironmentArtifacts2CanonicalEditPolicy"
        childNodes="//@diagram/@childNodes.7"
        title="artifacts"
        node="//@diagram/@childNodes.6">
      <diagramRunTimeClass
          href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
      <viewmap
          xsi:type="gmfgen:ParentAssignedViewmap"
          getterName="getContentPane"
          figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
    </compartments>
    <compartments
        visualID="7002"
        editPartClassName="ExecutionEnvironmentArtifactsEditPart"
        itemSemanticEditPolicyClassName="ExecutionEnvironmentArtifactsItemSemanticEditPolicy"
        notationViewFactoryClassName="ExecutionEnvironmentArtifactsViewFactory"
        canonicalEditPolicyClassName="ExecutionEnvironmentArtifactsCanonicalEditPolicy"
        childNodes="//@diagram/@childNodes.7"
        title="artifacts"
        node="//@diagram/@topLevelNodes.3">
      <diagramRunTimeClass
          href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
      <viewmap
          xsi:type="gmfgen:ParentAssignedViewmap"
          getterName="getContentPane"
          figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
    </compartments>
    <compartments
        visualID="7009"
        editPartClassName="ArtifactArtifactFigure_contents3EditPart"
        itemSemanticEditPolicyClassName="ArtifactArtifactFigure_contents3ItemSemanticEditPolicy"
        notationViewFactoryClassName="ArtifactArtifactFigure_contents3ViewFactory"
        canonicalEditPolicyClassName="ArtifactArtifactFigure_contents3CanonicalEditPolicy"
        childNodes="//@diagram/@childNodes.3 //@diagram/@childNodes.4"
        title="ArtifactFigure_contents"
        needsTitle="false"
        node="//@diagram/@topLevelNodes.4"
        listLayout="false">
      <diagramRunTimeClass
          href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
      <viewmap
          xsi:type="gmfgen:ParentAssignedViewmap"
          getterName="getFigureArtifactFigure_body"
          figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
    </compartments>
    <compartments
        visualID="7003"
        editPartClassName="DeploymentSpecificationPropertiesEditPart"
        itemSemanticEditPolicyClassName="DeploymentSpecificationPropertiesItemSemanticEditPolicy"
        notationViewFactoryClassName="DeploymentSpecificationPropertiesViewFactory"
        canonicalEditPolicyClassName="DeploymentSpecificationPropertiesCanonicalEditPolicy"
        childNodes="//@diagram/@childNodes.5"
        title="properties"
        node="//@diagram/@topLevelNodes.5">
      <diagramRunTimeClass
          href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
      <viewmap
          xsi:type="gmfgen:ParentAssignedViewmap"
          getterName="getFigureDeploymentSpecificationFigure_PropertiesCompartment"
          figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
    </compartments>
    <palette>
      <groups
          title="Nodes"
          description="Diagram Nodes">
        <entries
            xsi:type="gmfgen:ToolEntry"
            title="Artifact"
            description="Create Artifact"
            genNodes="//@diagram/@childNodes.2 //@diagram/@childNodes.3 //@diagram/@childNodes.7 //@diagram/@topLevelNodes.4"/>
        <entries
            xsi:type="gmfgen:ToolEntry"
            title="Device"
            description="Create Device"
            genNodes="//@diagram/@topLevelNodes.1 //@diagram/@childNodes.1"/>
        <entries
            xsi:type="gmfgen:ToolEntry"
            title="Node"
            description="Create Node"
            genNodes="//@diagram/@childNodes.8 //@diagram/@topLevelNodes.2"/>
        <entries
            xsi:type="gmfgen:ToolEntry"
            title="Environment"
            description="Create Execution Environment"
            genNodes="//@diagram/@childNodes.6 //@diagram/@topLevelNodes.3"/>
        <entries
            xsi:type="gmfgen:ToolEntry"
            title="Specification"
            description="Create Deployment Specification"
            genNodes="//@diagram/@childNodes.4 //@diagram/@topLevelNodes.5"/>
        <entries
            xsi:type="gmfgen:ToolEntry"
            title="Comment"
            description="Create Comment"
            genNodes="//@diagram/@topLevelNodes.6"/>
      </groups>
      <groups
          title="Links"
          description="Diagram Links">
        <entries
            xsi:type="gmfgen:ToolEntry"
            title="Manifestation"
            description="Create Manifestation Link"
            genLinks="//@diagram/@links.1"/>
        <entries
            xsi:type="gmfgen:ToolEntry"
            title="Deployment"
            description="Create Deployment"
            genLinks="//@diagram/@links.0"/>
        <entries
            xsi:type="gmfgen:ToolEntry"
            title="Specification Link"
            description="Link Deployment Specification"
            genLinks="//@diagram/@links.2"/>
        <entries
            xsi:type="gmfgen:ToolEntry"
            title="Communication Path"
            description="Create Communication Path"
            genLinks="//@diagram/@links.3"/>
        <entries
            xsi:type="gmfgen:ToolGroup"
            title="Dependency"
            description="Create Dependency link"
            stack="true">
          <entries
              xsi:type="gmfgen:ToolEntry"
              title="Dependency"
              description="Create Dependency link"
              qualifiedToolName="org.eclipse.uml2.diagram.deploy.part.CreateDependencyLinkTool.DEPENDENCY"
              genLinks="//@diagram/@links.4"/>
          <entries
              xsi:type="gmfgen:ToolEntry"
              title="Usage"
              description="Create Usage link"
              qualifiedToolName="org.eclipse.uml2.diagram.deploy.part.CreateDependencyLinkTool.USAGE"/>
          <entries
              xsi:type="gmfgen:ToolEntry"
              title="Substitution"
              description="Create Substitution link"
              qualifiedToolName="org.eclipse.uml2.diagram.deploy.part.CreateDependencyLinkTool.SUBSTITUTION"/>
        </entries>
        <entries
            xsi:type="gmfgen:ToolEntry"
            title="Annotated Element"
            description="Create Annotated Element"
            genLinks="//@diagram/@links.5"/>
      </groups>
      <groups
          title="Children"
          description="Child Elements of the Diagram Nodes">
        <entries
            xsi:type="gmfgen:ToolEntry"
            title="Element Import"
            description="Create Element Import"
            genNodes="//@diagram/@childNodes.0"/>
        <entries
            xsi:type="gmfgen:ToolEntry"
            title="Property"
            description="Created Deployment Specification Property"
            genNodes="//@diagram/@childNodes.5"/>
      </groups>
    </palette>
    <preferencePages
        xsi:type="gmfgen:GenStandardPreferencePage"
        iD="org.eclipse.uml2.uml.diagram.deploy.general"
        name="UML Diagram">
      <children
          xsi:type="gmfgen:GenStandardPreferencePage"
          iD="org.eclipse.uml2.uml.diagram.deploy.appearance"
          name="Appearance"
          kind="Appearance"/>
      <children
          xsi:type="gmfgen:GenStandardPreferencePage"
          iD="org.eclipse.uml2.uml.diagram.deploy.connections"
          name="Connections"
          kind="Connections"/>
      <children
          xsi:type="gmfgen:GenStandardPreferencePage"
          iD="org.eclipse.uml2.uml.diagram.deploy.printing"
          name="Printing"
          kind="Printing"/>
      <children
          xsi:type="gmfgen:GenStandardPreferencePage"
          iD="org.eclipse.uml2.uml.diagram.deploy.rulersAndGrid"
          name="Rulers And Grid"
          kind="RulersAndGrid"/>
    </preferencePages>
  </diagram>
  <plugin
      iD="org.eclipse.uml2.diagram.deploy"
      name="UML2 Deployment Diagram Plugin (Incubation)"
      provider="Eclipse Modeling Project"
      version="0.10.0.qualifier"
      printingEnabled="true">
    <requiredPlugins>org.eclipse.draw2d</requiredPlugins>
    <requiredPlugins>org.eclipse.uml2.diagram.common</requiredPlugins>
    <requiredPlugins>org.eclipse.gmf.runtime.draw2d.ui</requiredPlugins>
  </plugin>
  <editor/>
  <navigator
      generateDomainModelNavigator="false">
    <childReferences
        child="//@diagram"/>
    <childReferences
        parent="//@diagram/@topLevelNodes.0"
        child="//@diagram/@childNodes.0"/>
    <childReferences
        parent="//@diagram"
        child="//@diagram/@topLevelNodes.0"/>
    <childReferences
        parent="//@diagram/@childNodes.1"
        child="//@diagram/@childNodes.1"/>
    <childReferences
        parent="//@diagram/@childNodes.3"
        child="//@diagram/@childNodes.3"/>
    <childReferences
        parent="//@diagram/@childNodes.4"
        child="//@diagram/@childNodes.5"/>
    <childReferences
        parent="//@diagram/@childNodes.3"
        child="//@diagram/@childNodes.4"/>
    <childReferences
        parent="//@diagram/@childNodes.2"
        child="//@diagram/@childNodes.3"/>
    <childReferences
        parent="//@diagram/@childNodes.2"
        child="//@diagram/@childNodes.4"/>
    <childReferences
        parent="//@diagram/@childNodes.1"
        child="//@diagram/@childNodes.2"/>
    <childReferences
        parent="//@diagram/@childNodes.6"
        child="//@diagram/@childNodes.7"/>
    <childReferences
        parent="//@diagram/@childNodes.1"
        child="//@diagram/@childNodes.6"/>
    <childReferences
        parent="//@diagram/@childNodes.1"
        child="//@diagram/@childNodes.8"/>
    <childReferences
        parent="//@diagram/@topLevelNodes.1"
        child="//@diagram/@childNodes.1"/>
    <childReferences
        parent="//@diagram/@topLevelNodes.1"
        child="//@diagram/@childNodes.2"/>
    <childReferences
        parent="//@diagram/@topLevelNodes.1"
        child="//@diagram/@childNodes.6"/>
    <childReferences
        parent="//@diagram/@topLevelNodes.1"
        child="//@diagram/@childNodes.8"/>
    <childReferences
        parent="//@diagram"
        child="//@diagram/@topLevelNodes.1"/>
    <childReferences
        parent="//@diagram"
        child="//@diagram/@topLevelNodes.2"/>
    <childReferences
        parent="//@diagram/@topLevelNodes.3"
        child="//@diagram/@childNodes.7"/>
    <childReferences
        parent="//@diagram"
        child="//@diagram/@topLevelNodes.3"/>
    <childReferences
        parent="//@diagram/@topLevelNodes.4"
        child="//@diagram/@childNodes.3"/>
    <childReferences
        parent="//@diagram/@topLevelNodes.4"
        child="//@diagram/@childNodes.4"/>
    <childReferences
        parent="//@diagram"
        child="//@diagram/@topLevelNodes.4"/>
    <childReferences
        parent="//@diagram/@topLevelNodes.5"
        child="//@diagram/@childNodes.5"/>
    <childReferences
        parent="//@diagram"
        child="//@diagram/@topLevelNodes.5"/>
    <childReferences
        parent="//@diagram"
        child="//@diagram/@topLevelNodes.6"/>
    <childReferences
        parent="//@diagram"
        child="//@diagram/@links.0"
        groupName="links"
        groupIcon="icons/linksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.0"
        child="//@diagram/@topLevelNodes.4"
        referenceType="out_target"
        groupName="target"
        groupIcon="icons/linkTargetNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@topLevelNodes.4"
        child="//@diagram/@links.0"
        referenceType="in_source"
        groupName="incoming links"
        groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.0"
        child="//@diagram/@topLevelNodes.5"
        referenceType="out_target"
        groupName="target"
        groupIcon="icons/linkTargetNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@topLevelNodes.5"
        child="//@diagram/@links.0"
        referenceType="in_source"
        groupName="incoming links"
        groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.0"
        child="//@diagram/@childNodes.2"
        referenceType="out_target"
        groupName="target"
        groupIcon="icons/linkTargetNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@childNodes.2"
        child="//@diagram/@links.0"
        referenceType="in_source"
        groupName="incoming links"
        groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.0"
        child="//@diagram/@childNodes.3"
        referenceType="out_target"
        groupName="target"
        groupIcon="icons/linkTargetNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@childNodes.3"
        child="//@diagram/@links.0"
        referenceType="in_source"
        groupName="incoming links"
        groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.0"
        child="//@diagram/@childNodes.4"
        referenceType="out_target"
        groupName="target"
        groupIcon="icons/linkTargetNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@childNodes.4"
        child="//@diagram/@links.0"
        referenceType="in_source"
        groupName="incoming links"
        groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.0"
        child="//@diagram/@topLevelNodes.1"
        referenceType="in_source"
        groupName="source"
        groupIcon="icons/linkSourceNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@topLevelNodes.1"
        child="//@diagram/@links.0"
        referenceType="out_target"
        groupName="outgoing links"
        groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.0"
        child="//@diagram/@topLevelNodes.2"
        referenceType="in_source"
        groupName="source"
        groupIcon="icons/linkSourceNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@topLevelNodes.2"
        child="//@diagram/@links.0"
        referenceType="out_target"
        groupName="outgoing links"
        groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.0"
        child="//@diagram/@topLevelNodes.3"
        referenceType="in_source"
        groupName="source"
        groupIcon="icons/linkSourceNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@topLevelNodes.3"
        child="//@diagram/@links.0"
        referenceType="out_target"
        groupName="outgoing links"
        groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.0"
        child="//@diagram/@childNodes.1"
        referenceType="in_source"
        groupName="source"
        groupIcon="icons/linkSourceNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@childNodes.1"
        child="//@diagram/@links.0"
        referenceType="out_target"
        groupName="outgoing links"
        groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.0"
        child="//@diagram/@childNodes.6"
        referenceType="in_source"
        groupName="source"
        groupIcon="icons/linkSourceNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@childNodes.6"
        child="//@diagram/@links.0"
        referenceType="out_target"
        groupName="outgoing links"
        groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.0"
        child="//@diagram/@childNodes.8"
        referenceType="in_source"
        groupName="source"
        groupIcon="icons/linkSourceNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@childNodes.8"
        child="//@diagram/@links.0"
        referenceType="out_target"
        groupName="outgoing links"
        groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram"
        child="//@diagram/@links.1"
        groupName="links"
        groupIcon="icons/linksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.1"
        child="//@diagram/@topLevelNodes.0"
        referenceType="out_target"
        groupName="target"
        groupIcon="icons/linkTargetNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@topLevelNodes.0"
        child="//@diagram/@links.1"
        referenceType="in_source"
        groupName="incoming links"
        groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.1"
        child="//@diagram/@topLevelNodes.1"
        referenceType="out_target"
        groupName="target"
        groupIcon="icons/linkTargetNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@topLevelNodes.1"
        child="//@diagram/@links.1"
        referenceType="in_source"
        groupName="incoming links"
        groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.1"
        child="//@diagram/@topLevelNodes.2"
        referenceType="out_target"
        groupName="target"
        groupIcon="icons/linkTargetNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@topLevelNodes.2"
        child="//@diagram/@links.1"
        referenceType="in_source"
        groupName="incoming links"
        groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.1"
        child="//@diagram/@topLevelNodes.3"
        referenceType="out_target"
        groupName="target"
        groupIcon="icons/linkTargetNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@topLevelNodes.3"
        child="//@diagram/@links.1"
        referenceType="in_source"
        groupName="incoming links"
        groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.1"
        child="//@diagram/@topLevelNodes.4"
        referenceType="out_target"
        groupName="target"
        groupIcon="icons/linkTargetNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@topLevelNodes.4"
        child="//@diagram/@links.1"
        referenceType="in_source"
        groupName="incoming links"
        groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.1"
        child="//@diagram/@topLevelNodes.5"
        referenceType="out_target"
        groupName="target"
        groupIcon="icons/linkTargetNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@topLevelNodes.5"
        child="//@diagram/@links.1"
        referenceType="in_source"
        groupName="incoming links"
        groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.1"
        child="//@diagram/@childNodes.1"
        referenceType="out_target"
        groupName="target"
        groupIcon="icons/linkTargetNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@childNodes.1"
        child="//@diagram/@links.1"
        referenceType="in_source"
        groupName="incoming links"
        groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.1"
        child="//@diagram/@childNodes.2"
        referenceType="out_target"
        groupName="target"
        groupIcon="icons/linkTargetNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@childNodes.2"
        child="//@diagram/@links.1"
        referenceType="in_source"
        groupName="incoming links"
        groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.1"
        child="//@diagram/@childNodes.3"
        referenceType="out_target"
        groupName="target"
        groupIcon="icons/linkTargetNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@childNodes.3"
        child="//@diagram/@links.1"
        referenceType="in_source"
        groupName="incoming links"
        groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.1"
        child="//@diagram/@childNodes.4"
        referenceType="out_target"
        groupName="target"
        groupIcon="icons/linkTargetNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@childNodes.4"
        child="//@diagram/@links.1"
        referenceType="in_source"
        groupName="incoming links"
        groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.1"
        child="//@diagram/@childNodes.6"
        referenceType="out_target"
        groupName="target"
        groupIcon="icons/linkTargetNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@childNodes.6"
        child="//@diagram/@links.1"
        referenceType="in_source"
        groupName="incoming links"
        groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.1"
        child="//@diagram/@childNodes.8"
        referenceType="out_target"
        groupName="target"
        groupIcon="icons/linkTargetNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@childNodes.8"
        child="//@diagram/@links.1"
        referenceType="in_source"
        groupName="incoming links"
        groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.1"
        child="//@diagram/@links.0"
        referenceType="out_target"
        groupName="target"
        groupIcon="icons/linkTargetNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.0"
        child="//@diagram/@links.1"
        referenceType="in_source"
        groupName="incoming links"
        groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.1"
        child="//@diagram/@links.1"
        referenceType="out_target"
        groupName="target"
        groupIcon="icons/linkTargetNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.1"
        child="//@diagram/@links.1"
        referenceType="in_source"
        groupName="incoming links"
        groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.1"
        child="//@diagram/@topLevelNodes.4"
        referenceType="in_source"
        groupName="source"
        groupIcon="icons/linkSourceNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@topLevelNodes.4"
        child="//@diagram/@links.1"
        referenceType="out_target"
        groupName="outgoing links"
        groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.1"
        child="//@diagram/@topLevelNodes.5"
        referenceType="in_source"
        groupName="source"
        groupIcon="icons/linkSourceNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@topLevelNodes.5"
        child="//@diagram/@links.1"
        referenceType="out_target"
        groupName="outgoing links"
        groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.1"
        child="//@diagram/@childNodes.2"
        referenceType="in_source"
        groupName="source"
        groupIcon="icons/linkSourceNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@childNodes.2"
        child="//@diagram/@links.1"
        referenceType="out_target"
        groupName="outgoing links"
        groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.1"
        child="//@diagram/@childNodes.3"
        referenceType="in_source"
        groupName="source"
        groupIcon="icons/linkSourceNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@childNodes.3"
        child="//@diagram/@links.1"
        referenceType="out_target"
        groupName="outgoing links"
        groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.1"
        child="//@diagram/@childNodes.4"
        referenceType="in_source"
        groupName="source"
        groupIcon="icons/linkSourceNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@childNodes.4"
        child="//@diagram/@links.1"
        referenceType="out_target"
        groupName="outgoing links"
        groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram"
        child="//@diagram/@links.2"
        groupName="links"
        groupIcon="icons/linksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.2"
        child="//@diagram/@topLevelNodes.5"
        referenceType="out_target"
        groupName="target"
        groupIcon="icons/linkTargetNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@topLevelNodes.5"
        child="//@diagram/@links.2"
        referenceType="in_source"
        groupName="incoming links"
        groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.2"
        child="//@diagram/@childNodes.4"
        referenceType="out_target"
        groupName="target"
        groupIcon="icons/linkTargetNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@childNodes.4"
        child="//@diagram/@links.2"
        referenceType="in_source"
        groupName="incoming links"
        groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.2"
        child="//@diagram/@links.0"
        referenceType="in_source"
        groupName="source"
        groupIcon="icons/linkSourceNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.0"
        child="//@diagram/@links.2"
        referenceType="out_target"
        groupName="outgoing links"
        groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram"
        child="//@diagram/@links.3"
        groupName="links"
        groupIcon="icons/linksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.3"
        child="//@diagram/@topLevelNodes.1"
        referenceType="out_target"
        groupName="target"
        groupIcon="icons/linkTargetNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@topLevelNodes.1"
        child="//@diagram/@links.3"
        referenceType="in_source"
        groupName="incoming links"
        groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.3"
        child="//@diagram/@topLevelNodes.2"
        referenceType="out_target"
        groupName="target"
        groupIcon="icons/linkTargetNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@topLevelNodes.2"
        child="//@diagram/@links.3"
        referenceType="in_source"
        groupName="incoming links"
        groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.3"
        child="//@diagram/@topLevelNodes.3"
        referenceType="out_target"
        groupName="target"
        groupIcon="icons/linkTargetNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@topLevelNodes.3"
        child="//@diagram/@links.3"
        referenceType="in_source"
        groupName="incoming links"
        groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.3"
        child="//@diagram/@topLevelNodes.4"
        referenceType="out_target"
        groupName="target"
        groupIcon="icons/linkTargetNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@topLevelNodes.4"
        child="//@diagram/@links.3"
        referenceType="in_source"
        groupName="incoming links"
        groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.3"
        child="//@diagram/@topLevelNodes.5"
        referenceType="out_target"
        groupName="target"
        groupIcon="icons/linkTargetNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@topLevelNodes.5"
        child="//@diagram/@links.3"
        referenceType="in_source"
        groupName="incoming links"
        groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.3"
        child="//@diagram/@childNodes.1"
        referenceType="out_target"
        groupName="target"
        groupIcon="icons/linkTargetNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@childNodes.1"
        child="//@diagram/@links.3"
        referenceType="in_source"
        groupName="incoming links"
        groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.3"
        child="//@diagram/@childNodes.2"
        referenceType="out_target"
        groupName="target"
        groupIcon="icons/linkTargetNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@childNodes.2"
        child="//@diagram/@links.3"
        referenceType="in_source"
        groupName="incoming links"
        groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.3"
        child="//@diagram/@childNodes.3"
        referenceType="out_target"
        groupName="target"
        groupIcon="icons/linkTargetNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@childNodes.3"
        child="//@diagram/@links.3"
        referenceType="in_source"
        groupName="incoming links"
        groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.3"
        child="//@diagram/@childNodes.4"
        referenceType="out_target"
        groupName="target"
        groupIcon="icons/linkTargetNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@childNodes.4"
        child="//@diagram/@links.3"
        referenceType="in_source"
        groupName="incoming links"
        groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.3"
        child="//@diagram/@childNodes.6"
        referenceType="out_target"
        groupName="target"
        groupIcon="icons/linkTargetNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@childNodes.6"
        child="//@diagram/@links.3"
        referenceType="in_source"
        groupName="incoming links"
        groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.3"
        child="//@diagram/@childNodes.8"
        referenceType="out_target"
        groupName="target"
        groupIcon="icons/linkTargetNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@childNodes.8"
        child="//@diagram/@links.3"
        referenceType="in_source"
        groupName="incoming links"
        groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.3"
        child="//@diagram/@links.3"
        referenceType="out_target"
        groupName="target"
        groupIcon="icons/linkTargetNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.3"
        child="//@diagram/@links.3"
        referenceType="in_source"
        groupName="incoming links"
        groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.3"
        child="//@diagram/@topLevelNodes.1"
        referenceType="in_source"
        groupName="source"
        groupIcon="icons/linkSourceNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@topLevelNodes.1"
        child="//@diagram/@links.3"
        referenceType="out_target"
        groupName="outgoing links"
        groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.3"
        child="//@diagram/@topLevelNodes.2"
        referenceType="in_source"
        groupName="source"
        groupIcon="icons/linkSourceNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@topLevelNodes.2"
        child="//@diagram/@links.3"
        referenceType="out_target"
        groupName="outgoing links"
        groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.3"
        child="//@diagram/@topLevelNodes.3"
        referenceType="in_source"
        groupName="source"
        groupIcon="icons/linkSourceNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@topLevelNodes.3"
        child="//@diagram/@links.3"
        referenceType="out_target"
        groupName="outgoing links"
        groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.3"
        child="//@diagram/@topLevelNodes.4"
        referenceType="in_source"
        groupName="source"
        groupIcon="icons/linkSourceNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@topLevelNodes.4"
        child="//@diagram/@links.3"
        referenceType="out_target"
        groupName="outgoing links"
        groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.3"
        child="//@diagram/@topLevelNodes.5"
        referenceType="in_source"
        groupName="source"
        groupIcon="icons/linkSourceNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@topLevelNodes.5"
        child="//@diagram/@links.3"
        referenceType="out_target"
        groupName="outgoing links"
        groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.3"
        child="//@diagram/@childNodes.1"
        referenceType="in_source"
        groupName="source"
        groupIcon="icons/linkSourceNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@childNodes.1"
        child="//@diagram/@links.3"
        referenceType="out_target"
        groupName="outgoing links"
        groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.3"
        child="//@diagram/@childNodes.2"
        referenceType="in_source"
        groupName="source"
        groupIcon="icons/linkSourceNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@childNodes.2"
        child="//@diagram/@links.3"
        referenceType="out_target"
        groupName="outgoing links"
        groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.3"
        child="//@diagram/@childNodes.3"
        referenceType="in_source"
        groupName="source"
        groupIcon="icons/linkSourceNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@childNodes.3"
        child="//@diagram/@links.3"
        referenceType="out_target"
        groupName="outgoing links"
        groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.3"
        child="//@diagram/@childNodes.4"
        referenceType="in_source"
        groupName="source"
        groupIcon="icons/linkSourceNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@childNodes.4"
        child="//@diagram/@links.3"
        referenceType="out_target"
        groupName="outgoing links"
        groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.3"
        child="//@diagram/@childNodes.6"
        referenceType="in_source"
        groupName="source"
        groupIcon="icons/linkSourceNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@childNodes.6"
        child="//@diagram/@links.3"
        referenceType="out_target"
        groupName="outgoing links"
        groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.3"
        child="//@diagram/@childNodes.8"
        referenceType="in_source"
        groupName="source"
        groupIcon="icons/linkSourceNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@childNodes.8"
        child="//@diagram/@links.3"
        referenceType="out_target"
        groupName="outgoing links"
        groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.3"
        child="//@diagram/@links.3"
        referenceType="in_source"
        groupName="source"
        groupIcon="icons/linkSourceNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.3"
        child="//@diagram/@links.3"
        referenceType="out_target"
        groupName="outgoing links"
        groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram"
        child="//@diagram/@links.4"
        groupName="links"
        groupIcon="icons/linksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.4"
        child="//@diagram/@topLevelNodes.0"
        referenceType="out_target"
        groupName="target"
        groupIcon="icons/linkTargetNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@topLevelNodes.0"
        child="//@diagram/@links.4"
        referenceType="in_source"
        groupName="incoming links"
        groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.4"
        child="//@diagram/@topLevelNodes.1"
        referenceType="out_target"
        groupName="target"
        groupIcon="icons/linkTargetNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@topLevelNodes.1"
        child="//@diagram/@links.4"
        referenceType="in_source"
        groupName="incoming links"
        groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.4"
        child="//@diagram/@topLevelNodes.2"
        referenceType="out_target"
        groupName="target"
        groupIcon="icons/linkTargetNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@topLevelNodes.2"
        child="//@diagram/@links.4"
        referenceType="in_source"
        groupName="incoming links"
        groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.4"
        child="//@diagram/@topLevelNodes.3"
        referenceType="out_target"
        groupName="target"
        groupIcon="icons/linkTargetNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@topLevelNodes.3"
        child="//@diagram/@links.4"
        referenceType="in_source"
        groupName="incoming links"
        groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.4"
        child="//@diagram/@topLevelNodes.4"
        referenceType="out_target"
        groupName="target"
        groupIcon="icons/linkTargetNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@topLevelNodes.4"
        child="//@diagram/@links.4"
        referenceType="in_source"
        groupName="incoming links"
        groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.4"
        child="//@diagram/@topLevelNodes.5"
        referenceType="out_target"
        groupName="target"
        groupIcon="icons/linkTargetNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@topLevelNodes.5"
        child="//@diagram/@links.4"
        referenceType="in_source"
        groupName="incoming links"
        groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.4"
        child="//@diagram/@childNodes.1"
        referenceType="out_target"
        groupName="target"
        groupIcon="icons/linkTargetNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@childNodes.1"
        child="//@diagram/@links.4"
        referenceType="in_source"
        groupName="incoming links"
        groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.4"
        child="//@diagram/@childNodes.2"
        referenceType="out_target"
        groupName="target"
        groupIcon="icons/linkTargetNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@childNodes.2"
        child="//@diagram/@links.4"
        referenceType="in_source"
        groupName="incoming links"
        groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.4"
        child="//@diagram/@childNodes.3"
        referenceType="out_target"
        groupName="target"
        groupIcon="icons/linkTargetNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@childNodes.3"
        child="//@diagram/@links.4"
        referenceType="in_source"
        groupName="incoming links"
        groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.4"
        child="//@diagram/@childNodes.4"
        referenceType="out_target"
        groupName="target"
        groupIcon="icons/linkTargetNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@childNodes.4"
        child="//@diagram/@links.4"
        referenceType="in_source"
        groupName="incoming links"
        groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.4"
        child="//@diagram/@childNodes.6"
        referenceType="out_target"
        groupName="target"
        groupIcon="icons/linkTargetNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@childNodes.6"
        child="//@diagram/@links.4"
        referenceType="in_source"
        groupName="incoming links"
        groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.4"
        child="//@diagram/@childNodes.8"
        referenceType="out_target"
        groupName="target"
        groupIcon="icons/linkTargetNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@childNodes.8"
        child="//@diagram/@links.4"
        referenceType="in_source"
        groupName="incoming links"
        groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.4"
        child="//@diagram/@links.0"
        referenceType="out_target"
        groupName="target"
        groupIcon="icons/linkTargetNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.0"
        child="//@diagram/@links.4"
        referenceType="in_source"
        groupName="incoming links"
        groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.4"
        child="//@diagram/@links.1"
        referenceType="out_target"
        groupName="target"
        groupIcon="icons/linkTargetNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.1"
        child="//@diagram/@links.4"
        referenceType="in_source"
        groupName="incoming links"
        groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.4"
        child="//@diagram/@links.3"
        referenceType="out_target"
        groupName="target"
        groupIcon="icons/linkTargetNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.3"
        child="//@diagram/@links.4"
        referenceType="in_source"
        groupName="incoming links"
        groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.4"
        child="//@diagram/@links.4"
        referenceType="out_target"
        groupName="target"
        groupIcon="icons/linkTargetNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.4"
        child="//@diagram/@links.4"
        referenceType="in_source"
        groupName="incoming links"
        groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.4"
        child="//@diagram/@topLevelNodes.0"
        referenceType="in_source"
        groupName="source"
        groupIcon="icons/linkSourceNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@topLevelNodes.0"
        child="//@diagram/@links.4"
        referenceType="out_target"
        groupName="outgoing links"
        groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.4"
        child="//@diagram/@topLevelNodes.1"
        referenceType="in_source"
        groupName="source"
        groupIcon="icons/linkSourceNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@topLevelNodes.1"
        child="//@diagram/@links.4"
        referenceType="out_target"
        groupName="outgoing links"
        groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.4"
        child="//@diagram/@topLevelNodes.2"
        referenceType="in_source"
        groupName="source"
        groupIcon="icons/linkSourceNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@topLevelNodes.2"
        child="//@diagram/@links.4"
        referenceType="out_target"
        groupName="outgoing links"
        groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.4"
        child="//@diagram/@topLevelNodes.3"
        referenceType="in_source"
        groupName="source"
        groupIcon="icons/linkSourceNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@topLevelNodes.3"
        child="//@diagram/@links.4"
        referenceType="out_target"
        groupName="outgoing links"
        groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.4"
        child="//@diagram/@topLevelNodes.4"
        referenceType="in_source"
        groupName="source"
        groupIcon="icons/linkSourceNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@topLevelNodes.4"
        child="//@diagram/@links.4"
        referenceType="out_target"
        groupName="outgoing links"
        groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.4"
        child="//@diagram/@topLevelNodes.5"
        referenceType="in_source"
        groupName="source"
        groupIcon="icons/linkSourceNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@topLevelNodes.5"
        child="//@diagram/@links.4"
        referenceType="out_target"
        groupName="outgoing links"
        groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.4"
        child="//@diagram/@childNodes.1"
        referenceType="in_source"
        groupName="source"
        groupIcon="icons/linkSourceNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@childNodes.1"
        child="//@diagram/@links.4"
        referenceType="out_target"
        groupName="outgoing links"
        groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.4"
        child="//@diagram/@childNodes.2"
        referenceType="in_source"
        groupName="source"
        groupIcon="icons/linkSourceNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@childNodes.2"
        child="//@diagram/@links.4"
        referenceType="out_target"
        groupName="outgoing links"
        groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.4"
        child="//@diagram/@childNodes.3"
        referenceType="in_source"
        groupName="source"
        groupIcon="icons/linkSourceNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@childNodes.3"
        child="//@diagram/@links.4"
        referenceType="out_target"
        groupName="outgoing links"
        groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.4"
        child="//@diagram/@childNodes.4"
        referenceType="in_source"
        groupName="source"
        groupIcon="icons/linkSourceNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@childNodes.4"
        child="//@diagram/@links.4"
        referenceType="out_target"
        groupName="outgoing links"
        groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.4"
        child="//@diagram/@childNodes.6"
        referenceType="in_source"
        groupName="source"
        groupIcon="icons/linkSourceNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@childNodes.6"
        child="//@diagram/@links.4"
        referenceType="out_target"
        groupName="outgoing links"
        groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.4"
        child="//@diagram/@childNodes.8"
        referenceType="in_source"
        groupName="source"
        groupIcon="icons/linkSourceNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@childNodes.8"
        child="//@diagram/@links.4"
        referenceType="out_target"
        groupName="outgoing links"
        groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.4"
        child="//@diagram/@links.0"
        referenceType="in_source"
        groupName="source"
        groupIcon="icons/linkSourceNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.0"
        child="//@diagram/@links.4"
        referenceType="out_target"
        groupName="outgoing links"
        groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.4"
        child="//@diagram/@links.1"
        referenceType="in_source"
        groupName="source"
        groupIcon="icons/linkSourceNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.1"
        child="//@diagram/@links.4"
        referenceType="out_target"
        groupName="outgoing links"
        groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.4"
        child="//@diagram/@links.3"
        referenceType="in_source"
        groupName="source"
        groupIcon="icons/linkSourceNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.3"
        child="//@diagram/@links.4"
        referenceType="out_target"
        groupName="outgoing links"
        groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.4"
        child="//@diagram/@links.4"
        referenceType="in_source"
        groupName="source"
        groupIcon="icons/linkSourceNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.4"
        child="//@diagram/@links.4"
        referenceType="out_target"
        groupName="outgoing links"
        groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram"
        child="//@diagram/@links.5"
        groupName="links"
        groupIcon="icons/linksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.5"
        child="//@diagram/@topLevelNodes.0"
        referenceType="out_target"
        groupName="target"
        groupIcon="icons/linkTargetNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@topLevelNodes.0"
        child="//@diagram/@links.5"
        referenceType="in_source"
        groupName="incoming links"
        groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.5"
        child="//@diagram/@topLevelNodes.1"
        referenceType="out_target"
        groupName="target"
        groupIcon="icons/linkTargetNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@topLevelNodes.1"
        child="//@diagram/@links.5"
        referenceType="in_source"
        groupName="incoming links"
        groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.5"
        child="//@diagram/@topLevelNodes.2"
        referenceType="out_target"
        groupName="target"
        groupIcon="icons/linkTargetNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@topLevelNodes.2"
        child="//@diagram/@links.5"
        referenceType="in_source"
        groupName="incoming links"
        groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.5"
        child="//@diagram/@topLevelNodes.3"
        referenceType="out_target"
        groupName="target"
        groupIcon="icons/linkTargetNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@topLevelNodes.3"
        child="//@diagram/@links.5"
        referenceType="in_source"
        groupName="incoming links"
        groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.5"
        child="//@diagram/@topLevelNodes.4"
        referenceType="out_target"
        groupName="target"
        groupIcon="icons/linkTargetNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@topLevelNodes.4"
        child="//@diagram/@links.5"
        referenceType="in_source"
        groupName="incoming links"
        groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.5"
        child="//@diagram/@topLevelNodes.5"
        referenceType="out_target"
        groupName="target"
        groupIcon="icons/linkTargetNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@topLevelNodes.5"
        child="//@diagram/@links.5"
        referenceType="in_source"
        groupName="incoming links"
        groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.5"
        child="//@diagram/@topLevelNodes.6"
        referenceType="out_target"
        groupName="target"
        groupIcon="icons/linkTargetNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@topLevelNodes.6"
        child="//@diagram/@links.5"
        referenceType="in_source"
        groupName="incoming links"
        groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.5"
        child="//@diagram/@childNodes.1"
        referenceType="out_target"
        groupName="target"
        groupIcon="icons/linkTargetNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@childNodes.1"
        child="//@diagram/@links.5"
        referenceType="in_source"
        groupName="incoming links"
        groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.5"
        child="//@diagram/@childNodes.2"
        referenceType="out_target"
        groupName="target"
        groupIcon="icons/linkTargetNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@childNodes.2"
        child="//@diagram/@links.5"
        referenceType="in_source"
        groupName="incoming links"
        groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.5"
        child="//@diagram/@childNodes.3"
        referenceType="out_target"
        groupName="target"
        groupIcon="icons/linkTargetNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@childNodes.3"
        child="//@diagram/@links.5"
        referenceType="in_source"
        groupName="incoming links"
        groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.5"
        child="//@diagram/@childNodes.4"
        referenceType="out_target"
        groupName="target"
        groupIcon="icons/linkTargetNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@childNodes.4"
        child="//@diagram/@links.5"
        referenceType="in_source"
        groupName="incoming links"
        groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.5"
        child="//@diagram/@childNodes.6"
        referenceType="out_target"
        groupName="target"
        groupIcon="icons/linkTargetNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@childNodes.6"
        child="//@diagram/@links.5"
        referenceType="in_source"
        groupName="incoming links"
        groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.5"
        child="//@diagram/@childNodes.8"
        referenceType="out_target"
        groupName="target"
        groupIcon="icons/linkTargetNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@childNodes.8"
        child="//@diagram/@links.5"
        referenceType="in_source"
        groupName="incoming links"
        groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.5"
        child="//@diagram/@links.0"
        referenceType="out_target"
        groupName="target"
        groupIcon="icons/linkTargetNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.0"
        child="//@diagram/@links.5"
        referenceType="in_source"
        groupName="incoming links"
        groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.5"
        child="//@diagram/@links.1"
        referenceType="out_target"
        groupName="target"
        groupIcon="icons/linkTargetNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.1"
        child="//@diagram/@links.5"
        referenceType="in_source"
        groupName="incoming links"
        groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.5"
        child="//@diagram/@links.3"
        referenceType="out_target"
        groupName="target"
        groupIcon="icons/linkTargetNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.3"
        child="//@diagram/@links.5"
        referenceType="in_source"
        groupName="incoming links"
        groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.5"
        child="//@diagram/@links.4"
        referenceType="out_target"
        groupName="target"
        groupIcon="icons/linkTargetNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.4"
        child="//@diagram/@links.5"
        referenceType="in_source"
        groupName="incoming links"
        groupIcon="icons/incomingLinksNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@links.5"
        child="//@diagram/@topLevelNodes.6"
        referenceType="in_source"
        groupName="source"
        groupIcon="icons/linkSourceNavigatorGroup.gif"/>
    <childReferences
        parent="//@diagram/@topLevelNodes.6"
        child="//@diagram/@links.5"
        referenceType="out_target"
        groupName="outgoing links"
        groupIcon="icons/outgoingLinksNavigatorGroup.gif"/>
  </navigator>
  <diagramUpdater/>
  <propertySheet>
    <tabs
        xsi:type="gmfgen:GenStandardPropertyTab"
        iD="appearance"/>
    <tabs
        xsi:type="gmfgen:GenStandardPropertyTab"
        iD="diagram"/>
    <tabs
        xsi:type="gmfgen:GenCustomPropertyTab"
        iD="domain"
        label="Core">
      <filter
          xsi:type="gmfgen:TypeTabFilter">
        <types>org.eclipse.gmf.runtime.notation.View</types>
        <types>org.eclipse.gef.EditPart</types>
        <generatedTypes>abstractNavigatorItem</generatedTypes>
      </filter>
    </tabs>
  </propertySheet>
  <domainGenModel
      href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#/"/>
  <expressionProviders>
    <providers
        xsi:type="gmfgen:GenExpressionInterpreter">
      <expressions
          body="let base : String = 'Device' in&#xD;&#xA;let suffixes : Sequence(String) = Sequence {'', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10'} in &#xD;&#xA;let space : Namespace = self.namespace in&#xD;&#xA;let allMissed : Sequence(String) = suffixes->&#xD;&#xA;    select(s : String | not space.member->exists(e : NamedElement | e.name = base.concat(s))&#xD;&#xA;    ) in&#xD;&#xA;let firstMissed : String = allMissed->first() in &#xD;&#xA;let noMisses : Boolean = firstMissed.oclIsUndefined() in&#xD;&#xA;let allNames : Set(String) = &#xD;&#xA;    if noMisses &#xD;&#xA;    then &#xD;&#xA;    space.member->collect(e : NamedElement | &#xD;&#xA;         if e = self or e.name.oclIsUndefined() or e.name.substring(1, e.name.size().min(base.size())) &lt;> base&#xD;&#xA;         then '' &#xD;&#xA;         else e.name &#xD;&#xA;         endif)->asSet()->excluding('') else Set{'not in use'} &#xD;&#xA;    endif in &#xD;&#xA;let longestName : String = &#xD;&#xA;    if noMisses&#xD;&#xA;    then allNames->select(n : String | not allNames->exists(nn : String | nn.size() > n.size()))->asSequence()->first() &#xD;&#xA;    else 'not in use' &#xD;&#xA;    endif in &#xD;&#xA;if noMisses then &#xD;&#xA;    if longestName.oclIsUndefined() &#xD;&#xA;    then base &#xD;&#xA;    else longestName.concat('1') &#xD;&#xA;    endif &#xD;&#xA;else &#xD;&#xA;    base.concat(firstMissed) &#xD;&#xA;endif "/>
      <expressions
          xsi:type="gmfgen:GenConstraint"
          body="not oclIsKindOf(uml::DeploymentSpecification)"/>
      <expressions
          body="'Artifact'"/>
      <expressions
          body="let base : String = 'Specification' in&#xD;&#xA;let suffixes : Sequence(String) = Sequence {'', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10'} in &#xD;&#xA;let space : Namespace = self.namespace in&#xD;&#xA;let allMissed : Sequence(String) = suffixes->&#xD;&#xA;    select(s : String | not space.member->exists(e : NamedElement | e.name = base.concat(s))&#xD;&#xA;    ) in&#xD;&#xA;let firstMissed : String = allMissed->first() in &#xD;&#xA;let noMisses : Boolean = firstMissed.oclIsUndefined() in&#xD;&#xA;let allNames : Set(String) = &#xD;&#xA;    if noMisses &#xD;&#xA;    then &#xD;&#xA;    space.member->collect(e : NamedElement | &#xD;&#xA;         if e = self or e.name.oclIsUndefined() or e.name.substring(1, e.name.size().min(base.size())) &lt;> base&#xD;&#xA;         then '' &#xD;&#xA;         else e.name &#xD;&#xA;         endif)->asSet()->excluding('') else Set{'not in use'} &#xD;&#xA;    endif in &#xD;&#xA;let longestName : String = &#xD;&#xA;    if noMisses&#xD;&#xA;    then allNames->select(n : String | not allNames->exists(nn : String | nn.size() > n.size()))->asSequence()->first() &#xD;&#xA;    else 'not in use' &#xD;&#xA;    endif in &#xD;&#xA;if noMisses then &#xD;&#xA;    if longestName.oclIsUndefined() &#xD;&#xA;    then base &#xD;&#xA;    else longestName.concat('1') &#xD;&#xA;    endif &#xD;&#xA;else &#xD;&#xA;    base.concat(firstMissed) &#xD;&#xA;endif "/>
      <expressions
          body="let base : String = 'property' in&#xD;&#xA;let suffixes : Sequence(String) = Sequence {'', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10'} in &#xD;&#xA;let space : Namespace = self.namespace in&#xD;&#xA;let allMissed : Sequence(String) = suffixes->&#xD;&#xA;    select(s : String | not space.member->exists(e : NamedElement | e.name = base.concat(s))&#xD;&#xA;    ) in&#xD;&#xA;let firstMissed : String = allMissed->first() in &#xD;&#xA;let noMisses : Boolean = firstMissed.oclIsUndefined() in&#xD;&#xA;let allNames : Set(String) = &#xD;&#xA;    if noMisses &#xD;&#xA;    then &#xD;&#xA;    space.member->collect(e : NamedElement | &#xD;&#xA;         if e = self or e.name.oclIsUndefined() or e.name.substring(1, e.name.size().min(base.size())) &lt;> base&#xD;&#xA;         then '' &#xD;&#xA;         else e.name &#xD;&#xA;         endif)->asSet()->excluding('') else Set{'not in use'} &#xD;&#xA;    endif in &#xD;&#xA;let longestName : String = &#xD;&#xA;    if noMisses&#xD;&#xA;    then allNames->select(n : String | not allNames->exists(nn : String | nn.size() > n.size()))->asSequence()->first() &#xD;&#xA;    else 'not in use' &#xD;&#xA;    endif in &#xD;&#xA;if noMisses then &#xD;&#xA;    if longestName.oclIsUndefined() &#xD;&#xA;    then base &#xD;&#xA;    else longestName.concat('1') &#xD;&#xA;    endif &#xD;&#xA;else &#xD;&#xA;    base.concat(firstMissed) &#xD;&#xA;endif "/>
      <expressions
          body="let base : String = 'Environment' in&#xD;&#xA;let suffixes : Sequence(String) = Sequence {'', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10'} in &#xD;&#xA;let space : Namespace = self.namespace in&#xD;&#xA;let allMissed : Sequence(String) = suffixes->&#xD;&#xA;    select(s : String | not space.member->exists(e : NamedElement | e.name = base.concat(s))&#xD;&#xA;    ) in&#xD;&#xA;let firstMissed : String = allMissed->first() in &#xD;&#xA;let noMisses : Boolean = firstMissed.oclIsUndefined() in&#xD;&#xA;let allNames : Set(String) = &#xD;&#xA;    if noMisses &#xD;&#xA;    then &#xD;&#xA;    space.member->collect(e : NamedElement | &#xD;&#xA;         if e = self or e.name.oclIsUndefined() or e.name.substring(1, e.name.size().min(base.size())) &lt;> base&#xD;&#xA;         then '' &#xD;&#xA;         else e.name &#xD;&#xA;         endif)->asSet()->excluding('') else Set{'not in use'} &#xD;&#xA;    endif in &#xD;&#xA;let longestName : String = &#xD;&#xA;    if noMisses&#xD;&#xA;    then allNames->select(n : String | not allNames->exists(nn : String | nn.size() > n.size()))->asSequence()->first() &#xD;&#xA;    else 'not in use' &#xD;&#xA;    endif in &#xD;&#xA;if noMisses then &#xD;&#xA;    if longestName.oclIsUndefined() &#xD;&#xA;    then base &#xD;&#xA;    else longestName.concat('1') &#xD;&#xA;    endif &#xD;&#xA;else &#xD;&#xA;    base.concat(firstMissed) &#xD;&#xA;endif "/>
      <expressions
          body="'Artifact'"/>
      <expressions
          xsi:type="gmfgen:GenConstraint"
          body="not oclIsKindOf(uml::Device) and not oclIsKindOf(uml::ExecutionEnvironment)"/>
      <expressions
          body="let base : String = 'Node' in&#xD;&#xA;let suffixes : Sequence(String) = Sequence {'', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10'} in &#xD;&#xA;let space : Namespace = self.namespace in&#xD;&#xA;let allMissed : Sequence(String) = suffixes->&#xD;&#xA;    select(s : String | not space.member->exists(e : NamedElement | e.name = base.concat(s))&#xD;&#xA;    ) in&#xD;&#xA;let firstMissed : String = allMissed->first() in &#xD;&#xA;let noMisses : Boolean = firstMissed.oclIsUndefined() in&#xD;&#xA;let allNames : Set(String) = &#xD;&#xA;    if noMisses &#xD;&#xA;    then &#xD;&#xA;    space.member->collect(e : NamedElement | &#xD;&#xA;         if e = self or e.name.oclIsUndefined() or e.name.substring(1, e.name.size().min(base.size())) &lt;> base&#xD;&#xA;         then '' &#xD;&#xA;         else e.name &#xD;&#xA;         endif)->asSet()->excluding('') else Set{'not in use'} &#xD;&#xA;    endif in &#xD;&#xA;let longestName : String = &#xD;&#xA;    if noMisses&#xD;&#xA;    then allNames->select(n : String | not allNames->exists(nn : String | nn.size() > n.size()))->asSequence()->first() &#xD;&#xA;    else 'not in use' &#xD;&#xA;    endif in &#xD;&#xA;if noMisses then &#xD;&#xA;    if longestName.oclIsUndefined() &#xD;&#xA;    then base &#xD;&#xA;    else longestName.concat('1') &#xD;&#xA;    endif &#xD;&#xA;else &#xD;&#xA;    base.concat(firstMissed) &#xD;&#xA;endif "/>
      <expressions
          xsi:type="gmfgen:GenConstraint"
          body="self.oclIsKindOf(uml::DeploymentTarget)"/>
      <expressions
          xsi:type="gmfgen:GenConstraint"
          body="self.oclIsKindOf(uml::DeploymentTarget)"/>
      <expressions
          xsi:type="gmfgen:GenConstraint"
          body="(self.oclIsTypeOf(uml::Dependency) or self.oclIsTypeOf(uml::Abstraction) or self.oclIsTypeOf(uml::Substitution) or (self.oclIsTypeOf(uml::Usage) and (self.supplier->forAll(e|not e.oclIsKindOf(uml::Interface)) or (self.client->forAll(e|not (e.oclIsKindOf(uml::Classifier) or  e.oclIsKindOf(uml::Port))))))) and self.supplier->size() = 1 and self.client->size() = 1"/>
    </providers>
  </expressionProviders>
  <labelParsers
      extensibleViaService="true">
    <implementations
        xsi:type="gmfgen:PredefinedParser"
        uses="//@diagram/@childNodes.0/@labelModelFacet //@diagram/@topLevelNodes.0/@labels.0/@modelFacet //@diagram/@childNodes.5/@labelModelFacet //@diagram/@childNodes.4/@labels.0/@modelFacet //@diagram/@childNodes.3/@labels.0/@modelFacet //@diagram/@childNodes.2/@labels.0/@modelFacet //@diagram/@childNodes.7/@labelModelFacet //@diagram/@childNodes.6/@labels.0/@modelFacet //@diagram/@childNodes.1/@labels.0/@modelFacet //@diagram/@topLevelNodes.1/@labels.0/@modelFacet //@diagram/@topLevelNodes.2/@labels.0/@modelFacet //@diagram/@topLevelNodes.3/@labels.0/@modelFacet //@diagram/@topLevelNodes.4/@labels.0/@modelFacet //@diagram/@topLevelNodes.5/@labels.0/@modelFacet //@diagram/@topLevelNodes.6/@labels.0/@modelFacet //@diagram/@links.0/@labels.0/@modelFacet //@diagram/@links.1/@labels.0/@modelFacet //@diagram/@links.3/@labels.0/@modelFacet //@diagram/@links.4/@labels.0/@modelFacet"/>
    <implementations
        xsi:type="gmfgen:CustomParser"
        uses="//@diagram/@childNodes.3/@labels.1/@modelFacet //@diagram/@topLevelNodes.2/@labels.1/@modelFacet //@diagram/@childNodes.4/@labels.1/@modelFacet //@diagram/@childNodes.1/@labels.1/@modelFacet //@diagram/@childNodes.8/@labels.1/@modelFacet //@diagram/@topLevelNodes.3/@labels.1/@modelFacet //@diagram/@topLevelNodes.4/@labels.1/@modelFacet //@diagram/@childNodes.6/@labels.1/@modelFacet //@diagram/@childNodes.2/@labels.1/@modelFacet //@diagram/@topLevelNodes.5/@labels.1/@modelFacet //@diagram/@topLevelNodes.1/@labels.1/@modelFacet"
        qualifiedName="org.eclipse.uml2.diagram.common.parser.stereotype.DeploymentAppliedStereotypeParser"/>
    <implementations
        xsi:type="gmfgen:CustomParser"
        uses="//@diagram/@topLevelNodes.0/@labels.1/@modelFacet"
        qualifiedName="org.eclipse.uml2.diagram.common.parser.stereotype.PackageAppliedStereotypeParser"/>
    <implementations
        xsi:type="gmfgen:CustomParser"
        uses="//@diagram/@childNodes.8/@labels.0/@modelFacet //@diagram/@links.4/@labels.1/@modelFacet"
        qualifiedName="org.eclipse.uml2.diagram.common.parser.stereotype.DependencyAppliedStereotypeParser"/>
  </labelParsers>
  <contextMenus
      iD="org.eclipse.uml2.diagram.deploy.menu"
      context="//@diagram">
    <items
        xsi:type="gmfgen:LoadResourceAction"
        qualifiedClassName="org.eclipse.uml2.diagram.deploy.part.UMLLoadResourceAction"/>
    <items
        xsi:type="gmfgen:CreateShortcutAction"
        qualifiedClassName="org.eclipse.uml2.diagram.deploy.part.UMLCreateShortcutAction"/>
  </contextMenus>
</gmfgen:GenEditorGenerator>
