Index: branches/HeuristicLab.VariableInteractionNetworks/HeuristicLab.VariableInteractionNetworks.Views/3.3/DirectedGraphChart.Designer.cs
===================================================================
--- branches/HeuristicLab.VariableInteractionNetworks/HeuristicLab.VariableInteractionNetworks.Views/3.3/DirectedGraphChart.Designer.cs	(revision 13874)
+++ branches/HeuristicLab.VariableInteractionNetworks/HeuristicLab.VariableInteractionNetworks.Views/3.3/DirectedGraphChart.Designer.cs	(revision 13893)
@@ -30,8 +30,4 @@
       this.SuspendLayout();
       // 
-      // pictureBox
-      // 
-      this.pictureBox.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox.Image")));
-      // 
       // toolTip
       // 
Index: branches/HeuristicLab.VariableInteractionNetworks/HeuristicLab.VariableInteractionNetworks.Views/3.3/DirectedGraphChart.cs
===================================================================
--- branches/HeuristicLab.VariableInteractionNetworks/HeuristicLab.VariableInteractionNetworks.Views/3.3/DirectedGraphChart.cs	(revision 13874)
+++ branches/HeuristicLab.VariableInteractionNetworks/HeuristicLab.VariableInteractionNetworks.Views/3.3/DirectedGraphChart.cs	(revision 13893)
@@ -159,8 +159,12 @@
         Pen pen;
         var penWidth = weight / max * 3;
-        //var penColor = colors[(int)Math.Min(255, weight / max * 255)];
-        var penColor = Color.Black;
+        var colorIndex = (int)Math.Min(255, weight / max * 255);
+        if (colorIndex < 0) colorIndex = 0;
+        if (colorIndex > 255) colorIndex = 255;
+        var penColor = colors[colorIndex];
         if (len == 2) {
-          if (double.IsInfinity(penWidth) || double.IsNaN(penWidth)) penWidth = 1;
+          if (double.IsInfinity(penWidth) || double.IsNaN(penWidth))
+            penWidth = 1;
+
           pen = new Pen(penColor, (float)penWidth) { CustomEndCap = new AdjustableArrowCap(5, 3) };
           var start = points[0];
@@ -169,4 +173,6 @@
           var rect = target.Primitive as Rectangle;
           var ell = target.Primitive as Ellipse;
+
+          // calculate intersection point
           PointD intersectionPoint;
           if (rect != null)
@@ -176,6 +182,8 @@
           else
             throw new InvalidOperationException("Unknown vertex shape.");
+
           if (intersectionPoint == default(PointD))
             intersectionPoint = end;
+
           line = new Line(Chart, new PointD(start.X, start.Y), intersectionPoint, pen) { ToolTipText = arc.Label };
           Chart.Group.Add(line);
@@ -184,5 +192,4 @@
         } else {
           for (int i = 0; i < points.Length - 1; ++i) {
-            Line line;
             var start = points[i];
             var end = points[i + 1];
@@ -208,5 +215,6 @@
               pen = new Pen(penColor, (float)penWidth);
             }
-            line = new Line(Chart, new PointD(start.X, start.Y), endPoint, pen) { ToolTipText = arc.Label };
+            var startPoint = new PointD(start.X, start.Y);
+            var line = new Line(Chart, startPoint, endPoint, pen) { ToolTipText = arc.Label };
             Chart.Group.Add(line);
             if (intersectionPoints.Any()) {
@@ -248,12 +256,13 @@
       var rectangle = p as Rectangle;
       var ellipse = p as Ellipse;
-      var brush = (SolidBrush)shape.Brush;
+      var pen = new Pen(shape.Pen.Color);
+      var brush = new SolidBrush(((SolidBrush)shape.Brush).Color);
 
       if (rectangle != null) {
-        var r = new Rectangle(this.Chart, shape.LowerLeft, shape.UpperRight, new Pen(shape.Pen.Color), new SolidBrush(brush.Color));
+        var r = new Rectangle(this.Chart, shape.LowerLeft, shape.UpperRight, pen, brush);
         return new LabeledPrimitive(r, v.Label, shape.Font);
       }
       if (ellipse != null) {
-        var e = new Ellipse(this.Chart, shape.LowerLeft, shape.UpperRight, new Pen(shape.Pen.Color), new SolidBrush(brush.Color));
+        var e = new Ellipse(this.Chart, shape.LowerLeft, shape.UpperRight, pen, brush);
         return new LabeledPrimitive(e, v.Label, shape.Font);
       }
Index: branches/HeuristicLab.VariableInteractionNetworks/HeuristicLab.VariableInteractionNetworks.Views/3.3/HeuristicLab.VariableInteractionNetworks.Views-3.3.csproj
===================================================================
--- branches/HeuristicLab.VariableInteractionNetworks/HeuristicLab.VariableInteractionNetworks.Views/3.3/HeuristicLab.VariableInteractionNetworks.Views-3.3.csproj	(revision 13874)
+++ branches/HeuristicLab.VariableInteractionNetworks/HeuristicLab.VariableInteractionNetworks.Views/3.3/HeuristicLab.VariableInteractionNetworks.Views-3.3.csproj	(revision 13893)
@@ -171,4 +171,9 @@
     <None Include="Plugin.cs.frame" />
   </ItemGroup>
+  <ItemGroup>
+    <EmbeddedResource Include="RunCollectionVariableInteractionNetworkView.resx">
+      <DependentUpon>RunCollectionVariableInteractionNetworkView.cs</DependentUpon>
+    </EmbeddedResource>
+  </ItemGroup>
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
   <PropertyGroup>
Index: branches/HeuristicLab.VariableInteractionNetworks/HeuristicLab.VariableInteractionNetworks.Views/3.3/Layout/ConstrainedForceDirectedLayout.cs
===================================================================
--- branches/HeuristicLab.VariableInteractionNetworks/HeuristicLab.VariableInteractionNetworks.Views/3.3/Layout/ConstrainedForceDirectedLayout.cs	(revision 13874)
+++ branches/HeuristicLab.VariableInteractionNetworks/HeuristicLab.VariableInteractionNetworks.Views/3.3/Layout/ConstrainedForceDirectedLayout.cs	(revision 13893)
@@ -25,5 +25,4 @@
 using System.Linq;
 using Cola;
-using HeuristicLab.Common;
 using HeuristicLab.Core;
 using HeuristicLab.Random;
@@ -180,5 +179,6 @@
 
     private static IEnumerable<Cluster> IdentifyClusters(RectanglePtrs rectangles, ColaEdges edges) {
-      var vertices = rectangles.Select(x => new Vertex()).ToList();
+      // build a graph using the rectangles and the edges
+      var vertices = new List<IVertex>(rectangles.Select(x => new Vertex()));
       foreach (var e in edges) {
         var i = (int)e.first;
@@ -188,19 +188,19 @@
         vertices[j].AddArc(arc);
       }
-      while (vertices.Min(x => x.Weight).IsAlmost(0)) {
-        foreach (var v in vertices) {
-          if (v.Weight > 0) continue;
-          v.Weight = vertices.Max(x => x.Weight) + 1;
+      // group vertices into clusters
+      var clusters = new List<RectangularCluster>();
+      for (int i = 0; i < vertices.Count; ++i) {
+        var v = vertices[i];
+        if (v.Weight > 0) {
+          clusters[(int)Math.Round(v.Weight) - 1].addChildNode((uint)i);
+        } else {
+          var cluster = new RectangularCluster();
+          cluster.addChildNode((uint)i);
+          clusters.Add(cluster);
+          v.Weight = clusters.Count;
           ColourNeighbours(v);
         }
       }
-      var colors = vertices.Select(x => (int)Math.Round(x.Weight)).ToList();
-      foreach (var i in colors.Distinct()) {
-        var cluster = new RectangularCluster();
-        for (int j = 0; j < colors.Count; ++j) {
-          if (colors[j] == i) cluster.addChildNode((uint)j);
-        }
-        yield return cluster;
-      }
+      return clusters;
     }
 
Index: branches/HeuristicLab.VariableInteractionNetworks/HeuristicLab.VariableInteractionNetworks.Views/3.3/RunCollectionVariableInteractionNetworkView.Designer.cs
===================================================================
--- branches/HeuristicLab.VariableInteractionNetworks/HeuristicLab.VariableInteractionNetworks.Views/3.3/RunCollectionVariableInteractionNetworkView.Designer.cs	(revision 13874)
+++ branches/HeuristicLab.VariableInteractionNetworks/HeuristicLab.VariableInteractionNetworks.Views/3.3/RunCollectionVariableInteractionNetworkView.Designer.cs	(revision 13893)
@@ -26,9 +26,10 @@
       this.components = new System.ComponentModel.Container();
       this.settingsGroupBox = new System.Windows.Forms.GroupBox();
+      this.impactThresholdTrackBar = new System.Windows.Forms.TrackBar();
+      this.exportImpactsMatrixButton = new System.Windows.Forms.Button();
       this.onlineImpactCalculationButton = new System.Windows.Forms.Button();
       this.maximizationCheckBox = new System.Windows.Forms.CheckBox();
       this.qualityResultNameComboBox = new System.Windows.Forms.ComboBox();
       this.qualityResultNameLabel = new System.Windows.Forms.Label();
-      this.impactThresholdTextBox = new System.Windows.Forms.TextBox();
       this.impactAggregationComboBox = new System.Windows.Forms.ComboBox();
       this.impactResultNameComboBox = new System.Windows.Forms.ComboBox();
@@ -42,6 +43,9 @@
       this.label3 = new System.Windows.Forms.Label();
       this.errorProvider = new System.Windows.Forms.ErrorProvider(this.components);
+      this.impactThresholdLabel = new System.Windows.Forms.Label();
+      this.relayoutGraphButton = new System.Windows.Forms.Button();
       this.graphChart = new HeuristicLab.VariableInteractionNetworks.Views.DirectedGraphChart();
       this.settingsGroupBox.SuspendLayout();
+      ((System.ComponentModel.ISupportInitialize)(this.impactThresholdTrackBar)).BeginInit();
       this.layoutOptionsGroupBox.SuspendLayout();
       ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit();
@@ -52,9 +56,11 @@
       this.settingsGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
             | System.Windows.Forms.AnchorStyles.Left)));
+      this.settingsGroupBox.Controls.Add(this.impactThresholdLabel);
+      this.settingsGroupBox.Controls.Add(this.impactThresholdTrackBar);
+      this.settingsGroupBox.Controls.Add(this.exportImpactsMatrixButton);
       this.settingsGroupBox.Controls.Add(this.onlineImpactCalculationButton);
       this.settingsGroupBox.Controls.Add(this.maximizationCheckBox);
       this.settingsGroupBox.Controls.Add(this.qualityResultNameComboBox);
       this.settingsGroupBox.Controls.Add(this.qualityResultNameLabel);
-      this.settingsGroupBox.Controls.Add(this.impactThresholdTextBox);
       this.settingsGroupBox.Controls.Add(this.impactAggregationComboBox);
       this.settingsGroupBox.Controls.Add(this.impactResultNameComboBox);
@@ -64,12 +70,33 @@
       this.settingsGroupBox.Location = new System.Drawing.Point(4, 4);
       this.settingsGroupBox.Name = "settingsGroupBox";
-      this.settingsGroupBox.Size = new System.Drawing.Size(331, 230);
+      this.settingsGroupBox.Size = new System.Drawing.Size(331, 235);
       this.settingsGroupBox.TabIndex = 1;
       this.settingsGroupBox.TabStop = false;
       this.settingsGroupBox.Text = "Network Configuration";
       // 
+      // impactThresholdTrackBar
+      // 
+      this.impactThresholdTrackBar.AutoSize = false;
+      this.impactThresholdTrackBar.LargeChange = 1;
+      this.impactThresholdTrackBar.Location = new System.Drawing.Point(10, 118);
+      this.impactThresholdTrackBar.Maximum = 1000;
+      this.impactThresholdTrackBar.Name = "impactThresholdTrackBar";
+      this.impactThresholdTrackBar.Size = new System.Drawing.Size(312, 23);
+      this.impactThresholdTrackBar.TabIndex = 7;
+      this.impactThresholdTrackBar.ValueChanged += new System.EventHandler(this.impactThresholdTrackBar_ValueChanged);
+      // 
+      // exportImpactsMatrixButton
+      // 
+      this.exportImpactsMatrixButton.Location = new System.Drawing.Point(10, 203);
+      this.exportImpactsMatrixButton.Name = "exportImpactsMatrixButton";
+      this.exportImpactsMatrixButton.Size = new System.Drawing.Size(149, 23);
+      this.exportImpactsMatrixButton.TabIndex = 6;
+      this.exportImpactsMatrixButton.Text = "Export Impacts Matrix";
+      this.exportImpactsMatrixButton.UseVisualStyleBackColor = true;
+      this.exportImpactsMatrixButton.Click += new System.EventHandler(this.exportImpactsMatrixButton_Click);
+      // 
       // onlineImpactCalculationButton
       // 
-      this.onlineImpactCalculationButton.Location = new System.Drawing.Point(10, 201);
+      this.onlineImpactCalculationButton.Location = new System.Drawing.Point(10, 174);
       this.onlineImpactCalculationButton.Name = "onlineImpactCalculationButton";
       this.onlineImpactCalculationButton.Size = new System.Drawing.Size(149, 23);
@@ -108,14 +135,4 @@
       this.qualityResultNameLabel.Text = "Quality result name";
       // 
-      // impactThresholdTextBox
-      // 
-      this.impactThresholdTextBox.Location = new System.Drawing.Point(121, 94);
-      this.impactThresholdTextBox.Name = "impactThresholdTextBox";
-      this.impactThresholdTextBox.Size = new System.Drawing.Size(201, 20);
-      this.impactThresholdTextBox.TabIndex = 2;
-      this.impactThresholdTextBox.Text = "0.2";
-      this.impactThresholdTextBox.Validating += new System.ComponentModel.CancelEventHandler(this.TextBoxValidating);
-      this.impactThresholdTextBox.Validated += new System.EventHandler(this.ImpactThresholdTextBoxValidated);
-      // 
       // impactAggregationComboBox
       // 
@@ -124,5 +141,5 @@
             "Best run",
             "Runs average"});
-      this.impactAggregationComboBox.Location = new System.Drawing.Point(121, 120);
+      this.impactAggregationComboBox.Location = new System.Drawing.Point(121, 147);
       this.impactAggregationComboBox.Name = "impactAggregationComboBox";
       this.impactAggregationComboBox.Size = new System.Drawing.Size(201, 21);
@@ -143,5 +160,5 @@
       // 
       this.weightAggregationLabel.AutoSize = true;
-      this.weightAggregationLabel.Location = new System.Drawing.Point(7, 123);
+      this.weightAggregationLabel.Location = new System.Drawing.Point(7, 150);
       this.weightAggregationLabel.Name = "weightAggregationLabel";
       this.weightAggregationLabel.Size = new System.Drawing.Size(98, 13);
@@ -171,11 +188,12 @@
       this.layoutOptionsGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
             | System.Windows.Forms.AnchorStyles.Left)));
+      this.layoutOptionsGroupBox.Controls.Add(this.relayoutGraphButton);
       this.layoutOptionsGroupBox.Controls.Add(this.idealEdgeLengthTextBox);
       this.layoutOptionsGroupBox.Controls.Add(this.edgeRoutingComboBox);
       this.layoutOptionsGroupBox.Controls.Add(this.label4);
       this.layoutOptionsGroupBox.Controls.Add(this.label3);
-      this.layoutOptionsGroupBox.Location = new System.Drawing.Point(4, 240);
+      this.layoutOptionsGroupBox.Location = new System.Drawing.Point(4, 245);
       this.layoutOptionsGroupBox.Name = "layoutOptionsGroupBox";
-      this.layoutOptionsGroupBox.Size = new System.Drawing.Size(331, 222);
+      this.layoutOptionsGroupBox.Size = new System.Drawing.Size(331, 217);
       this.layoutOptionsGroupBox.TabIndex = 2;
       this.layoutOptionsGroupBox.TabStop = false;
@@ -227,4 +245,23 @@
       // 
       this.errorProvider.ContainerControl = this;
+      // 
+      // impactThresholdLabel
+      // 
+      this.impactThresholdLabel.Location = new System.Drawing.Point(118, 92);
+      this.impactThresholdLabel.Name = "impactThresholdLabel";
+      this.impactThresholdLabel.Size = new System.Drawing.Size(204, 23);
+      this.impactThresholdLabel.TabIndex = 8;
+      this.impactThresholdLabel.Text = "0";
+      this.impactThresholdLabel.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
+      // 
+      // relayoutGraphButton
+      // 
+      this.relayoutGraphButton.Location = new System.Drawing.Point(10, 69);
+      this.relayoutGraphButton.Name = "relayoutGraphButton";
+      this.relayoutGraphButton.Size = new System.Drawing.Size(149, 23);
+      this.relayoutGraphButton.TabIndex = 4;
+      this.relayoutGraphButton.Text = "Recalculate Layout";
+      this.relayoutGraphButton.UseVisualStyleBackColor = true;
+      this.relayoutGraphButton.Click += new System.EventHandler(this.relayoutGraphButton_Click);
       // 
       // graphChart
@@ -256,4 +293,5 @@
       this.settingsGroupBox.ResumeLayout(false);
       this.settingsGroupBox.PerformLayout();
+      ((System.ComponentModel.ISupportInitialize)(this.impactThresholdTrackBar)).EndInit();
       this.layoutOptionsGroupBox.ResumeLayout(false);
       this.layoutOptionsGroupBox.PerformLayout();
@@ -270,5 +308,4 @@
     private System.Windows.Forms.Label label2;
     private System.Windows.Forms.ComboBox impactResultNameComboBox;
-    private System.Windows.Forms.TextBox impactThresholdTextBox;
     private System.Windows.Forms.GroupBox layoutOptionsGroupBox;
     private System.Windows.Forms.Label label3;
@@ -283,4 +320,8 @@
     private System.Windows.Forms.CheckBox maximizationCheckBox;
     private System.Windows.Forms.Button onlineImpactCalculationButton;
+    private System.Windows.Forms.Button exportImpactsMatrixButton;
+    private System.Windows.Forms.TrackBar impactThresholdTrackBar;
+    private System.Windows.Forms.Label impactThresholdLabel;
+    private System.Windows.Forms.Button relayoutGraphButton;
   }
 }
Index: branches/HeuristicLab.VariableInteractionNetworks/HeuristicLab.VariableInteractionNetworks.Views/3.3/RunCollectionVariableInteractionNetworkView.cs
===================================================================
--- branches/HeuristicLab.VariableInteractionNetworks/HeuristicLab.VariableInteractionNetworks.Views/3.3/RunCollectionVariableInteractionNetworkView.cs	(revision 13874)
+++ branches/HeuristicLab.VariableInteractionNetworks/HeuristicLab.VariableInteractionNetworks.Views/3.3/RunCollectionVariableInteractionNetworkView.cs	(revision 13893)
@@ -322,5 +322,4 @@
       foreach (var run in runs) {
         var impactsMatrix = (DoubleMatrix)run.Results[resultName];
-
         int i = 0;
         foreach (var v in impactsMatrix.RowNames) {
@@ -412,5 +411,5 @@
     private void NetworkConfigurationChanged(object sender, EventArgs e) {
       var useBest = impactAggregationComboBox.SelectedIndex <= 0;
-      var threshold = double.Parse(impactThresholdTextBox.Text);
+      var threshold = impactThresholdTrackBar.Value / 100.0;
       var qualityResultName = qualityResultNameComboBox.Text;
       var impactsResultName = impactResultNameComboBox.Text;
@@ -451,8 +450,9 @@
         = impactResultNameComboBox.Enabled
         = impactAggregationComboBox.Enabled
-        = impactThresholdTextBox.Enabled
+        = impactThresholdTrackBar.Enabled
         = onlineImpactCalculationButton.Enabled
         = edgeRoutingComboBox.Enabled
-        = idealEdgeLengthTextBox.Enabled = enabled;
+        = idealEdgeLengthTextBox.Enabled
+        = maximizationCheckBox.Enabled = enabled;
     }
 
@@ -463,5 +463,5 @@
         var impacts = CalculateVariableImpactsOnline(Content, false);
         variableInteractionNetwork = CreateNetwork(impacts);
-        var threshold = double.Parse(impactThresholdTextBox.Text);
+        var threshold = impactThresholdTrackBar.Minimum + (double)impactThresholdTrackBar.Value / impactThresholdTrackBar.Maximum;
         graphChart.Graph = ApplyThreshold(variableInteractionNetwork, threshold);
       };
@@ -469,5 +469,38 @@
       worker.RunWorkerAsync();
     }
+
+    private void relayoutGraphButton_Click(object sender, EventArgs e) {
+      graphChart.Draw();
+    }
     #endregion
+
+    private void exportImpactsMatrixButton_Click(object sender, EventArgs e) {
+      var graph = graphChart.Graph;
+      var labels = graph.Vertices.OfType<VariableNetworkNode>().Select(x => x.Label).ToList();
+      labels.Sort(); // sort variables alphabetically
+      var matrix = new DoubleMatrix(labels.Count, labels.Count) { RowNames = labels, ColumnNames = labels };
+      var indexes = labels.Select((x, i) => new { Label = x, Index = i }).ToDictionary(x => x.Label, x => x.Index);
+      var junctions = graph.Vertices.OfType<JunctionNetworkNode>().ToList();
+      foreach (var jn in junctions) {
+        var target = jn.OutArcs.First().Target.Label;
+        var targetIndex = indexes[target];
+        foreach (var input in jn.InArcs) {
+          var inputIndex = indexes[input.Source.Label];
+          var inputImpact = input.Weight;
+          matrix[targetIndex, inputIndex] = inputImpact;
+        }
+      }
+      for (int i = 0; i < labels.Count; ++i) matrix[i, i] = 1;
+      MainFormManager.MainForm.ShowContent(matrix);
+    }
+
+    private void impactThresholdTrackBar_ValueChanged(object sender, EventArgs e) {
+      var impact = impactThresholdTrackBar.Minimum + (double)impactThresholdTrackBar.Value / impactThresholdTrackBar.Maximum;
+      impactThresholdLabel.Text = impact.ToString("N3", CultureInfo.CurrentCulture);
+      var network = ApplyThreshold(variableInteractionNetwork, impact);
+      graphChart.Graph = network;
+    }
+
+
   }
 }
Index: branches/HeuristicLab.VariableInteractionNetworks/HeuristicLab.VariableInteractionNetworks.Views/3.3/RunCollectionVariableInteractionNetworkView.resx
===================================================================
--- branches/HeuristicLab.VariableInteractionNetworks/HeuristicLab.VariableInteractionNetworks.Views/3.3/RunCollectionVariableInteractionNetworkView.resx	(revision 13893)
+++ branches/HeuristicLab.VariableInteractionNetworks/HeuristicLab.VariableInteractionNetworks.Views/3.3/RunCollectionVariableInteractionNetworkView.resx	(revision 13893)
@@ -0,0 +1,123 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <metadata name="errorProvider.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>17, 17</value>
+  </metadata>
+</root>
