<!--
  Standard template and style definitions for WPF
  Copyright © Northwoods Software Corporation, 1998-2026. All Rights Reserved.
-->
<ResourceDictionary
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:go="clr-namespace:Northwoods.GoXam"
    xmlns:gomodel="clr-namespace:Northwoods.GoXam.Model"
    xmlns:golayout="clr-namespace:Northwoods.GoXam.Layout"
    xmlns:gotool="clr-namespace:Northwoods.GoXam.Tool"
  >
  
  <!-- node styles -->
  <Style x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=DefaultNodeTextStyle}">
    <Style.Triggers>
      <DataTrigger Binding="{Binding Path=Part.IsSelected}" Value="True">
        <Setter Property="TextBlock.Foreground" Value="{x:Static SystemColors.HighlightTextBrush}" />
        <Setter Property="TextBlock.Background" Value="{x:Static SystemColors.HighlightBrush}" />
      </DataTrigger>
    </Style.Triggers>
  </Style>
  
  <Style x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=DefaultGroupBorderStyle}">
    <Setter Property="Border.BorderBrush" Value="{x:Static SystemColors.WindowTextBrush}" />
    <Setter Property="Border.BorderThickness" Value="1" />
    <Style.Triggers>
      <DataTrigger Binding="{Binding Path=Part.IsSelected}" Value="True">
        <Setter Property="Border.BorderBrush" Value="{x:Static SystemColors.HighlightBrush}" />
      </DataTrigger>
    </Style.Triggers>
  </Style>


  <!-- nodes -->
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=DefaultNodeTemplate}">
    <TextBlock Text="{Binding Path=Data}"
               Style="{StaticResource {ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=DefaultNodeTextStyle}}" />
  </DataTemplate>
  
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=DefaultGroupTemplate}">
    <Border go:Node.LocationElementName="GroupPanel"
            Style="{StaticResource {ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=DefaultGroupBorderStyle}}">
      <StackPanel>
        <TextBlock Text="{Binding Path=Data}" HorizontalAlignment="Stretch"
                   Style="{StaticResource {ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=DefaultNodeTextStyle}}" />
        <go:GroupPanel x:Name="GroupPanel" />
      </StackPanel>
    </Border>
  </DataTemplate>
  
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=DefaultLinkLabelTemplate}">
    <Ellipse Fill="{x:Static SystemColors.WindowTextBrush}" Width="2" Height="2"
             go:Node.Selectable="False" go:Node.Avoidable="False" go:Node.LocationSpot="0.5 0.5" />
  </DataTemplate>
  
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=DefaultCommentTemplate}">
    <TextBlock Text="{Binding Path=Data}" Foreground="Brown" />
  </DataTemplate>


  <!-- nodes for tools -->
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=DefaultTemporaryNodeTemplate}">
    <Rectangle Stroke="Magenta" StrokeThickness="2" Width="1" Height="1" go:Node.Selectable="False" go:Node.LayerName="Tool" />
  </DataTemplate>

  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=DefaultDragSelectingBoxTemplate}">
    <Rectangle Stroke="Magenta" StrokeThickness="1" go:Node.Selectable="False" go:Node.LayerName="Tool" />
  </DataTemplate>

  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=DefaultDragZoomingBoxTemplate}">
    <Rectangle Stroke="Magenta" StrokeThickness="1" go:Node.Selectable="False" go:Node.LayerName="Tool" />
  </DataTemplate>


  <!-- link style -->
  <Style x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=DefaultLinkShapeStyle}">
    <Setter Property="Shape.Stroke" Value="{x:Static SystemColors.WindowTextBrush}" />
    <Setter Property="Shape.StrokeThickness" Value="1" />
    <Style.Triggers>
      <DataTrigger Binding="{Binding Path=Part.IsSelected}" Value="True">
        <Setter Property="Shape.Stroke" Value="{x:Static SystemColors.HighlightBrush}" />
        <Setter Property="Shape.StrokeThickness" Value="3" />
      </DataTrigger>
    </Style.Triggers>
  </Style>


  <!-- links -->
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=DefaultLinkTemplate}">
    <go:LinkPanel go:Link.SelectionElementName="Path" >
      <go:LinkShape Style="{StaticResource {ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=DefaultLinkShapeStyle}}" />
      <Polygon Fill="{x:Static SystemColors.WindowTextBrush}" Points="8 4  0 8  2 4  0 0" go:LinkPanel.Alignment="1 0.5" go:LinkPanel.Index="-1" go:LinkPanel.Orientation="Along" />
    </go:LinkPanel>
  </DataTemplate>

  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=DefaultCommentLinkTemplate}">
    <go:LinkShape Stroke="Brown" StrokeThickness="1" />
  </DataTemplate>


  <!-- links for tools -->
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=DefaultTemporaryLinkTemplate}">
    <go:LinkPanel go:Node.Selectable="False" go:Link.LayerName="Tool">
      <go:LinkShape Stroke="Blue" StrokeThickness="1" />
      <Polygon Fill="Blue" Points="8 4  0 8  2 4  0 0" go:LinkPanel.Alignment="1 0.5" go:LinkPanel.Index="-1" go:LinkPanel.Orientation="Along" />
    </go:LinkPanel>
  </DataTemplate>
  

  <!-- diagram -->
  <ControlTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=DefaultDiagramTemplate}" TargetType="go:Diagram">
    <Border x:Name="Border"
            Background="{TemplateBinding Background}"
            BorderBrush="{TemplateBinding BorderBrush}"
            BorderThickness="{TemplateBinding BorderThickness}">
      <ScrollViewer HorizontalScrollBarVisibility="Auto"
                    VerticalScrollBarVisibility="Auto"
                    CanContentScroll="True">
        <go:DiagramPanel x:Name="Panel"
                         Stretch="{TemplateBinding Stretch}"
                         Padding="{TemplateBinding Padding}"
                         HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}"
                         VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}" />
      </ScrollViewer>
    </Border>
  </ControlTemplate>

  <Style TargetType="go:Diagram">
    <Setter Property="Template" Value="{StaticResource {ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=DefaultDiagramTemplate}}" />

    <!-- data templates -->
    <Setter Property="NodeTemplateDictionary">
      <Setter.Value>
        <go:DataTemplateDictionary Default="{StaticResource {ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=DefaultNodeTemplate}}"
                                   Comment="{StaticResource {ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=DefaultCommentTemplate}}"
                                   LinkLabel="{StaticResource {ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=DefaultLinkLabelTemplate}}" />
      </Setter.Value>
    </Setter>
    <Setter Property="GroupTemplateDictionary">
      <Setter.Value>
        <go:DataTemplateDictionary Default="{StaticResource {ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=DefaultGroupTemplate}}" />
      </Setter.Value>
    </Setter>
    <Setter Property="LinkTemplateDictionary">
      <Setter.Value>
        <go:DataTemplateDictionary Default="{StaticResource {ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=DefaultLinkTemplate}}"
                                   Comment="{StaticResource {ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=DefaultCommentLinkTemplate}}" />
      </Setter.Value>
    </Setter>

    <Setter Property="Focusable" Value="True" />
  </Style>

  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=DefaultBackgroundGridTemplate}">
    <go:GridPattern CellSize="10 10" SnapsToDevicePixels="True">
      <Path Stroke="LightGray" StrokeThickness="1" go:GridPattern.Figure="HorizontalLine" />
      <Path Stroke="LightGray" StrokeThickness="1" go:GridPattern.Figure="VerticalLine" />
      <Path Stroke="Gray" StrokeThickness="1" go:GridPattern.Figure="HorizontalLine" go:GridPattern.Interval="5" />
      <Path Stroke="Gray" StrokeThickness="1" go:GridPattern.Figure="VerticalLine" go:GridPattern.Interval="5" />
      <Path Stroke="DarkGray" StrokeThickness="1" go:GridPattern.Figure="HorizontalLine" go:GridPattern.Interval="10" />
      <Path Stroke="DarkGray" StrokeThickness="1" go:GridPattern.Figure="VerticalLine" go:GridPattern.Interval="10" />
      <Path Stroke="Black" StrokeThickness="1" go:GridPattern.Figure="HorizontalLine" go:GridPattern.Interval="50" />
      <Path Stroke="Black" StrokeThickness="1" go:GridPattern.Figure="VerticalLine" go:GridPattern.Interval="50" />
    </go:GridPattern>
  </DataTemplate>


  <!-- PrintManager -->
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=DefaultPrintManagerForegroundTemplate}">
    <go:SpotPanel>
      <Line X1="-10" Y1="0" X2="0" Y2="0" Stroke="Purple" StrokeThickness="1"
              go:SpotPanel.Spot="TopLeft" go:SpotPanel.Alignment="BottomRight" />
      <Line X1="0" Y1="-10" X2="0" Y2="0" Stroke="Purple" StrokeThickness="1"
              go:SpotPanel.Spot="TopLeft" go:SpotPanel.Alignment="BottomRight" />
      <Line X1="10" Y1="0"  X2="0" Y2="0" Stroke="Purple" StrokeThickness="1"
              go:SpotPanel.Spot="TopRight" go:SpotPanel.Alignment="BottomLeft" />
      <Line X1="0" Y1="-10" X2="0" Y2="0" Stroke="Purple" StrokeThickness="1"
              go:SpotPanel.Spot="TopRight" go:SpotPanel.Alignment="BottomLeft" />
      <Line X1="10" Y1="0"  X2="0" Y2="0" Stroke="Purple" StrokeThickness="1"
              go:SpotPanel.Spot="BottomRight" go:SpotPanel.Alignment="TopLeft" />
      <Line X1="0" Y1="10"  X2="0" Y2="0" Stroke="Purple" StrokeThickness="1"
              go:SpotPanel.Spot="BottomRight" go:SpotPanel.Alignment="TopLeft" />
      <Line X1="-10" Y1="0" X2="0" Y2="0" Stroke="Purple" StrokeThickness="1"
              go:SpotPanel.Spot="BottomLeft" go:SpotPanel.Alignment="TopRight" />
      <Line X1="0" Y1="10"  X2="0" Y2="0" Stroke="Purple" StrokeThickness="1"
              go:SpotPanel.Spot="BottomLeft" go:SpotPanel.Alignment="TopRight" />

      <StackPanel Orientation="Horizontal"
                  go:SpotPanel.Spot="MiddleBottom" go:SpotPanel.Alignment="MiddleTop">
        <TextBlock Text="{Binding Column}" />
        <TextBlock Text="," />
        <TextBlock Text="{Binding Row}" />
        <TextBlock Text=" (" />
        <TextBlock Text="{Binding ColumnCount}" />
        <TextBlock Text="x" />
        <TextBlock Text="{Binding RowCount}" />
        <TextBlock Text=")" />
      </StackPanel>
    </go:SpotPanel>
  </DataTemplate>


  <!-- overview -->
  <ControlTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=DefaultOverviewTemplate}" TargetType="go:Overview">
    <Border x:Name="Border"
            Background="{TemplateBinding Background}"
            BorderBrush="{TemplateBinding BorderBrush}"
            BorderThickness="{TemplateBinding BorderThickness}">
      <go:DiagramPanel x:Name="Panel"
                       Stretch="Uniform"
                       Padding="{TemplateBinding Padding}"
                       HorizontalContentAlignment="Center"
                       VerticalContentAlignment="Center" />
    </Border>
  </ControlTemplate>
  
  <Style TargetType="go:Overview">
    <Setter Property="Template" Value="{StaticResource {ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=DefaultOverviewTemplate}}" />
    
    <!-- this gets its data templates from the Observed Diagram -->
    
    <Setter Property="IsReadOnly" Value="True" />
    <Setter Property="AllowSelect" Value="False" />
    <Setter Property="AllowCopy" Value="False" />
    <Setter Property="AllowPrint" Value="False" />
    <Setter Property="Focusable" Value="True" />
  </Style>

  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=DefaultOverviewBoxTemplate}">
    <Rectangle Stroke="Magenta" StrokeThickness="8" Fill="Transparent" go:Node.LayerName="Tool" />
  </DataTemplate>


  <!-- palette -->
  <ControlTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=DefaultPaletteTemplate}" TargetType="go:Palette">
    <Border x:Name="Border"
            Background="{TemplateBinding Background}"
            BorderBrush="{TemplateBinding BorderBrush}"
            BorderThickness="{TemplateBinding BorderThickness}">
      <ScrollViewer HorizontalScrollBarVisibility="Auto"
                    VerticalScrollBarVisibility="Auto"
                    CanContentScroll="True">
        <go:DiagramPanel x:Name="Panel"
                         Stretch="{TemplateBinding Stretch}"
                         Padding="{TemplateBinding Padding}"
                         HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}"
                         VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"
                         AutoScrollRegion="0" />
      </ScrollViewer>
    </Border>
  </ControlTemplate>

  <Style TargetType="go:Palette">
    <Setter Property="Template" Value="{StaticResource {ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=DefaultPaletteTemplate}}" />

    <Setter Property="NodeTemplateDictionary">
      <Setter.Value>
        <go:DataTemplateDictionary Default="{StaticResource {ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=DefaultNodeTemplate}}"
                                   Comment="{StaticResource {ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=DefaultCommentTemplate}}"
                                   LinkLabel="{StaticResource {ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=DefaultLinkLabelTemplate}}" />
      </Setter.Value>
    </Setter>
    <Setter Property="GroupTemplateDictionary">
      <Setter.Value>
        <go:DataTemplateDictionary Default="{StaticResource {ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=DefaultGroupTemplate}}" />
      </Setter.Value>
    </Setter>
    <Setter Property="LinkTemplateDictionary">
      <Setter.Value>
        <go:DataTemplateDictionary Default="{StaticResource {ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=DefaultLinkTemplate}}"
                                   Comment="{StaticResource {ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=DefaultCommentLinkTemplate}}" />
      </Setter.Value>
    </Setter>

    <Setter Property="IsReadOnly" Value="True" />
    <Setter Property="AllowDragOut" Value="True" />
    <Setter Property="Focusable" Value="True" />
    <Setter Property="HorizontalContentAlignment" Value="Left" />
    <Setter Property="VerticalContentAlignment" Value="Top" />
  </Style>


  <!-- node adornments -->
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=DefaultSelectionAdornmentTemplate}">
    <go:SelectionHandle Stroke="{x:Static SystemColors.HighlightBrush}" StrokeThickness="3" go:Part.Selectable="False" SnapsToDevicePixels="True" />
  </DataTemplate>

  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=DefaultResizeAdornmentTemplate}">
    <go:SpotPanel SnapsToDevicePixels="True">
      <go:ToolHandle go:SpotPanel.Spot="0.0 0.0" go:NodePanel.Figure="Rectangle" Width="6" Height="6" Fill="{x:Static SystemColors.HighlightBrush}" Stroke="Black" StrokeThickness="1" />
      <go:ToolHandle go:SpotPanel.Spot="0.5 0.0" go:NodePanel.Figure="Rectangle" Width="6" Height="6" Fill="{x:Static SystemColors.HighlightBrush}" Stroke="Black" StrokeThickness="1" />
      <go:ToolHandle go:SpotPanel.Spot="1.0 0.0" go:NodePanel.Figure="Rectangle" Width="6" Height="6" Fill="{x:Static SystemColors.HighlightBrush}" Stroke="Black" StrokeThickness="1" />

      <go:ToolHandle go:SpotPanel.Spot="0.0 0.5" go:NodePanel.Figure="Rectangle" Width="6" Height="6" Fill="{x:Static SystemColors.HighlightBrush}" Stroke="Black" StrokeThickness="1" />
      <go:ToolHandle go:SpotPanel.Spot="1.0 0.5" go:NodePanel.Figure="Rectangle" Width="6" Height="6" Fill="{x:Static SystemColors.HighlightBrush}" Stroke="Black" StrokeThickness="1" />

      <go:ToolHandle go:SpotPanel.Spot="0.0 1.0" go:NodePanel.Figure="Rectangle" Width="6" Height="6" Fill="{x:Static SystemColors.HighlightBrush}" Stroke="Black" StrokeThickness="1" />
      <go:ToolHandle go:SpotPanel.Spot="0.5 1.0" go:NodePanel.Figure="Rectangle" Width="6" Height="6" Fill="{x:Static SystemColors.HighlightBrush}" Stroke="Black" StrokeThickness="1" />
      <go:ToolHandle go:SpotPanel.Spot="1.0 1.0" go:NodePanel.Figure="Rectangle" Width="6" Height="6" Fill="{x:Static SystemColors.HighlightBrush}" Stroke="Black" StrokeThickness="1" />
    </go:SpotPanel>
  </DataTemplate>

  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=DefaultRotateAdornmentTemplate}">
    <go:ToolHandle go:NodePanel.Figure="Ellipse" Width="6" Height="6" Fill="Yellow" Stroke="Black" StrokeThickness="1" Cursor="Hand" SnapsToDevicePixels="True" />
  </DataTemplate>


  <!-- link adornments -->
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=DefaultLinkReshapeHandleTemplate}">
    <go:ToolHandle go:NodePanel.Figure="Rectangle" Width="6" Height="6" Fill="Yellow" Stroke="Black" StrokeThickness="1" SnapsToDevicePixels="True" />
  </DataTemplate>

  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=DefaultRelinkFromAdornmentTemplate}">
    <go:LinkPanel>
      <go:ToolHandle go:LinkPanel.Index="0" go:NodePanel.Figure="Diamond" Width="8" Height="8" Fill="Cyan" Stroke="Black" StrokeThickness="1" Cursor="Hand" />
    </go:LinkPanel>
  </DataTemplate>

  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=DefaultRelinkToAdornmentTemplate}">
    <go:LinkPanel>
      <go:ToolHandle go:LinkPanel.Index="-1" go:NodePanel.Figure="Diamond" Width="8" Height="8" Fill="Cyan" Stroke="Black" StrokeThickness="1" Cursor="Hand" />
    </go:LinkPanel>
  </DataTemplate>

  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=DefaultTextEditAdornmentTemplate}">
    <TextBox FontFamily="{Binding Path=Node.AdornedElement.FontFamily, Mode=OneTime}"
             FontSize="{Binding Path=Node.AdornedElement.FontSize, Mode=OneTime}"
             FontStretch="{Binding Path=Node.AdornedElement.FontStretch, Mode=OneTime}"
             FontStyle="{Binding Path=Node.AdornedElement.FontStyle, Mode=OneTime}"
             FontWeight="{Binding Path=Node.AdornedElement.FontWeight, Mode=OneTime}"
             TextAlignment="{Binding Path=Node.AdornedElement.TextAlignment, Mode=OneTime}"
             TextDecorations="{Binding Path=Node.AdornedElement.TextDecorations, Mode=OneTime}"
             TextWrapping="{Binding Path=Node.AdornedElement.TextWrapping, Mode=OneTime}"
             Background="White"
             Foreground="Black" />
  </DataTemplate>


  <!-- Arrowheads -->
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=None}"   >
    <Path  Data=""/>
  </DataTemplate>
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=NormalArrow}"   >
    <Path  Data="m 0,2 l 4,0 0,-2 4,4 -4,4 0,-2 -4,0 z"/>
  </DataTemplate>
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=Triangle}"   >
    <Path  Data="F1 m 0,0 l 8,4.62 -8,4.62 z"/>
  </DataTemplate>
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=Block}"   >
    <Path  Data="F1 m 0,0 l 0,8 8,0 0,-8 z"/>
  </DataTemplate>
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=OpenTriangle}"   >
    <Path  Data="F1 m 0,0 l 8,4 -8,4"/>
  </DataTemplate>
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=Circle}"   >
    <Path  Data="F1 m 0,4 a 4,4 0 1 1 8,0 a 4,4 0 1 1 -8,0"/>
  </DataTemplate>
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=TailedNormalArrow}"   >
    <Path  Data="F1 m 0,0 l 2,0 1,2 3,0 0,-2 2,4 -2,4 0,-2 -3,0 -1,2 -2,0 1,-4 -1,-4 z"/>
  </DataTemplate>
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=ConcaveTailArrow}"   >
    <Path  Data="F1 m 0,2 h 4 v -2 l 4,4 -4,4 v -2 h -4 l 2,-2 -2,-2 z"/>
  </DataTemplate>
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=BigEndArrow}"   >
    <Path  Data="F1 m 0,0 l 5,2 0,-2 3,4 -3,4 0,-2 -5,2 0,-8 z"/>
  </DataTemplate>
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=Chevron}"   >
    <Path  Data="F1 m 0,0 l 5,0 3,4 -3,4 -5,0 3,-4 -3,-4 z"/>
  </DataTemplate>
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=Line}"   >
    <Path  Data="m 0,0 l 0,8"/>
  </DataTemplate>
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=DoubleLine}"   >
    <Path  Data="m 0,0 l 0,8 m 2,0 l 0,-8"/>
  </DataTemplate>
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=TripleLine}"   >
    <Path  Data="m 0,0 l 0,8 m 2,0 l 0,-8 m 2,0 l 0,8"/>
  </DataTemplate>
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=SimpleArrow}"   >
    <Path  Data="m 1,4 l -1,-2 2,0 1,2 -1,2 -2,0 1,-2 5,0 0,-2 2,2 -2,2 0,-2 z"/>
  </DataTemplate>
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=X}"   >
    <Path  Data="m 0,0 l 8,8 m 0,-8 l -8,8"/>
  </DataTemplate>
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=Diamond}"   >
    <Path  Data="F1 m 0,4 l 4,-4 4,4 -4,4 -4,-4 z"/>
  </DataTemplate>
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=RoundedTriangle}"   >
    <Path  Data="m 0,1 a 1,1 0 0 1 1,-1 l 7,3 a 0.5,1 0 0 1 0,2 l -7,3 a 1,1 0 0 1 -1,-1 l 0,-6 z"/>
  </DataTemplate>
  <!--Fix This: looks like it's filled but it isn't. Lower StrokeThickness?-->
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=AccelerationArrow}"   >
    <Path  Data="F1 m 0,0 l 0,8 0.2,0 0,-8 -0.2,0 z m 2,0 l 0,8 1,0 0,-8 -1,0 z m 3,0 l 2,0 2,4 -2,4 -2,0 0,-8 z"/>
  </DataTemplate>
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=BackwardOpenTriangle}"   >
    <Path  Data="m 8,0 l -8,4 8,4"/>
  </DataTemplate>
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=Boomerang}"   >
    <Path  Data="F1 m 0,0 l 8,4 -8,4 4,-4 -4,-4 z"/>
  </DataTemplate>
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=BoxArrow}"   >
    <Path  Data="F1 m 0,0 l 4,0 0,2 2,0 0,-2 2,4 -2,4 0,-2 -2,0 0,2 -4,0 0,-8 z"/>
  </DataTemplate>
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=TriangleLine}"   >
    <Path  Data="m 8,4 l -8,-4 0,8 8,-4 z m 0.5,4 l 0,-8"/>
  </DataTemplate>
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=CircleEndedArrow}"   >
    <Path  Data="m 8,4 l -2,-3 0,2 -2,0 0,2 2,0 0,2 2,-3 z m -4,0 a 2,3 0 1 1 -4,0 a 2,3 0 1 1 4,0 z"/>
  </DataTemplate>
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=Standard}"   >
    <Path  Data="F1 m 0,0 l 8,4 -8,4 2,-4 z"/>
  </DataTemplate>
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=DoubleTriangle}"   >
    <Path  Data="m 0,0 l 4,4 -4,4 0,-8 z  m 4,0 l 4,4 -4,4 0,-8 z"/>
  </DataTemplate>
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=DynamicWidthArrow}"   >
    <Path  Data="m 0,3 l 2,0 2,-1 2,-2 2,4 -2,4 -2,-2 -2,-1 -2,0 0,-2 z"/>
  </DataTemplate>
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=EquilibriumArrow}"   >
    <Path  Data="m 0,2 l 8,0 -3,-3 m 3,5 l -8,0 3,3"/>
  </DataTemplate>
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=FastForward}"   >
    <Path  Data="m 0,0 l 3.5,4 0,-4 3.5,4 0,-4 1,0 0,8 -1,0 0,-4 -3.5,4 0,-4 -3.5,4 0,-8 z"/>
  </DataTemplate>
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=HalfArrowBottom}"   >
    <Path  Data="m 0,8 l 4,-4 4,0 -8,4 z"/>
  </DataTemplate>
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=HalfArrowTop}"   >
    <Path  Data="m 0,0 4,4 4,0 -8,-4 z"/>
  </DataTemplate>
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=Kite}"   >
    <Path  Data="m 0,4 l 2,-4 6,4 -6,4 -2,-4 z"/>
  </DataTemplate>
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=OpposingDirectionDoubleArrow}"   >
    <Path  Data="m 0,4 l 2,-4 0,2 4,0 0,-2 2,4 -2,4 0,-2 -4,0 0,2 -2,-4 z"/>
  </DataTemplate>
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=PartialDoubleTriangle}"   >
    <Path  Data="m 0,0 4,3 0,-3 4,4 -4,4 0,-3 -4,3 0,-8 z"/>
  </DataTemplate>
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=BackwardTriangle}"   >
    <Path  Data="m 8,4 l 0,4 -8,-4 8,-4 0,4 z"/>
  </DataTemplate>
  <!--Fix This: Appears filled but is not. Lower StrokeThickness?-->
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=SidewaysV}"   >
    <Path   Data="m 0,0 l 8,4 -8,4 0,-1 6,-3 -6,-3 0,-1 z"/>
  </DataTemplate>
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=StretchedChevron}"   >
    <Path  Data="F1 m 0,0 l 8,0 3,4 -3,4 -8,0 3,-4 -3,-4 z"/>
  </DataTemplate>
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=StretchedDiamond}"    >
    <Path  Data="m 0,3 l 5,-3 5,3 -5,3 -5,-3 z"/>
  </DataTemplate>
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=ForwardSemiCircle}"   >
    <Path   Data="m 0,0 a 4,4 0 1 1 0,8"/>
  </DataTemplate>
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=BackwardSemiCircle}"   >
    <Path   Data="m 4,0 a 4,4 0 1 0 0,8"/>
  </DataTemplate>
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=HalfTriangleTop}"   >
    <Path   Data="m 0,0 l 0,4 8,0 -8,-4 z"/>
  </DataTemplate>
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=HalfTriangleBottom}"   >
    <Path  Data="m 0,4 l 0,4 8,-4 -8,0 z"/>
  </DataTemplate>
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=LineCircle}"   >
    <Path  Data="m 0,0 l 0,8 m 4,-1 a 3,3 0 1 1 0,-6 a 3,3 0 1 1 0,6"/>
  </DataTemplate>
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=DoubleLineCircle}"   >
    <Path  Data="m 0,0 l 0,8 m 2,-8 l 0,8 m 4,-1 a 3,3 0 1 1 0,-6 a 3,3 0 1 1 0,6"/>
  </DataTemplate>
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=TripleLineCircle}"   >
    <Path  Data="m 0,0 l 0,8 m 2,-8 l 0,8 m 2,-8 l 0,8 m 4,-1 a 3,3 0 1 1 0,-6 a 3,3 0 1 1 0,6"/>
  </DataTemplate>
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=Fork}"   >
    <Path  Data="m 0,4 l 8,0 m -6,0 l 6,-4 m -6,4 l 6,4"/>
  </DataTemplate>
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=CircleFork}"   >
    <Path  Data="m 0,3 a 3,3 0 1 1 6,0 a 3,3 0 1 1 -6,0 m 6,0 l 6,0 m -6,0 l 6,-4 m -6,4 l 6,4"/>
  </DataTemplate>
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=LineFork}"   >
    <Path  Data="m 0,0 l 0,8 m 0,-4 l 6,0 m -6,0 l 6,-4 m -6,4 l 6,4"/>
  </DataTemplate>
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=CircleLine}"   >
    <Path  Data="m 0,3 a 3,3 0 1 1 6,0 a 3,3 0 1 1 -6,0 m 6,-4 l 0,8"/>
  </DataTemplate>
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=CircleLineFork}"   >
    <Path  Data="m 0,3 a 3,3 0 1 1 6,0 a 3,3 0 1 1 -6,0 m 6,-4 l 0,8 m 0,-4 l 6,0 m -6,0 l 6,-4 m -6,4 l 6,4"/>
  </DataTemplate>
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=DiamondCircle}"   >
    <Path  Data="m 8,4 l -4,4 -4,-4 4,-4 4,4 a 4,4 0 1 1 8,0 a 4,4 0 1 1 -8,0"/>
  </DataTemplate>
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=PlusCircle}"   >
    <Path  Data="m 8,4 a 4,4 0 1 1 -8,0 a 4,4 0 1 1 8,0 m -4,-4 l 0,8 m -4,-4 l 8,0"/>
  </DataTemplate>
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=OpenTriangleTop}"   >
    <Path  Data="m 0,0 l 8,4 -8,0"/>
  </DataTemplate>
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=OpenTriangleBottom}"   >
    <Path  Data="m 0,8 l 8,-4 -8,0"/>
  </DataTemplate>
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=OpenRightTriangleTop}"   >
    <Path  Data="m 8,0 l 0,4 -8,0"/>
  </DataTemplate>
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=OpenRightTriangleBottom}"   >
    <Path  Data="m 8,8 l 0,-4 -8,0"/>
  </DataTemplate>
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=OpenTriangleLine}"   >
    <Path  Data="m 0,0 8,4 -8,4 m 8.5,0 l 0,-8"/>
  </DataTemplate>
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=PentagonArrow}"   >
    <Path  Data="m 8,4 l -4,-4 -4,0 0,8 4,0 4,-4 z"/>
  </DataTemplate>
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=ForwardSlash}"   >
    <Path  Data="m 0,8 l 5,-8"/>
  </DataTemplate>
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=DoubleForwardSlash}"   >
    <Path  Data="m 0,8 l 4,-8 m -2,8 l 4,-8"/>
  </DataTemplate>
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=TripleForwardSlash}"   >
    <Path  Data="m 0,8 l 4,-8 m -2,8 l 4,-8 m -2,8 l 4,-8"/>
  </DataTemplate>
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=BackSlash}"   >
    <Path  Data="m 0,0 l 5,8"/>
  </DataTemplate>
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=DoubleBackSlash}"   >
    <Path  Data="m 0,0 l 4,8 m -2,-8 l 4,8"/>
  </DataTemplate>
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=TripleBackSlash}"   >
    <Path  Data="m 0,0 l 4,8 m -2,-8 l 4,8 m -2,-8 l 4,8"/>
  </DataTemplate>
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=DoubleFeathers}"   >
    <Path  Data="m 0,0 l 3,4 -3,4 m 3,-8 l 3,4 -3,4"/>
  </DataTemplate>
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=TripleFeathers}"   >
    <Path   Data="m 0,0 l 3,4 -3,4 m 3,-8 l 3,4 -3,4 m 3,-8 l 3,4 -3,4"/>
  </DataTemplate>
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=BackwardCircleFork}"   >
    <Path  Data="m 0,4 l 6,0 m -6,-4 l 6,4 m -6,4 l 6,-4 a 3,3 0 1 1 6,0 a 3,3 0 1 1 -6,0"/>
  </DataTemplate>
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=BackwardCircleLineFork}"   >
    <Path  Data="m 0,4 l 6,0 m -6,-4 l 6,4 m -6,4 l 6,-4 m 0,-4 l 0,8 m 0,-4 a 3,3 0 1 1 6,0 a 3,3 0 1 1 -6,0"/>
  </DataTemplate>
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=BackwardFork}"   >
    <Path  Data="m 8,4 l -8,0 m 8,0 l -8,-4 m 8,4 l -8,4" />
  </DataTemplate>
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=BackwardLineFork}"   >
    <Path  Data="m 8,4 l -8,0 m 8,0 l -8,-4 m 8,4 l -8,4 m 8,-8 l 0,8" />
  </DataTemplate>
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=BackwardCircleLine}"   >
    <Path  Data="F1 m 0,-1.5 l 0,8 m 0,-4 a 3,3 0 1 1 6,0 a 3,3 0 1 1 -6,0" />
  </DataTemplate>
  <DataTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type go:Diagram}, ResourceId=BackwardStandard}"   >
    <Path  Data="F1 m 8,0 l -2,4 2,4 -8,-4 z" />
  </DataTemplate>
</ResourceDictionary>
