Index: /branches/1614_GeneralizedQAP/GQAPSolver/GQAPSolver.csproj
===================================================================
--- /branches/1614_GeneralizedQAP/GQAPSolver/GQAPSolver.csproj	(revision 16075)
+++ /branches/1614_GeneralizedQAP/GQAPSolver/GQAPSolver.csproj	(revision 16076)
@@ -35,4 +35,7 @@
       <HintPath>..\packages\CommandLineParser.2.2.1\lib\net45\CommandLine.dll</HintPath>
     </Reference>
+    <Reference Include="HeuristicLab.Algorithms.ALPS-3.3">
+      <HintPath>..\..\..\trunk\bin\HeuristicLab.Algorithms.ALPS-3.3.dll</HintPath>
+    </Reference>
     <Reference Include="HeuristicLab.Collections-3.3">
       <HintPath>..\..\..\trunk\bin\HeuristicLab.Collections-3.3.dll</HintPath>
@@ -44,6 +47,23 @@
       <HintPath>..\..\..\trunk\bin\HeuristicLab.Core-3.3.dll</HintPath>
     </Reference>
+    <Reference Include="HeuristicLab.Cplex-12.7.0">
+      <HintPath>..\..\..\trunk\bin\HeuristicLab.Cplex-12.7.0.dll</HintPath>
+    </Reference>
     <Reference Include="HeuristicLab.Data-3.3">
       <HintPath>..\..\..\trunk\bin\HeuristicLab.Data-3.3.dll</HintPath>
+    </Reference>
+    <Reference Include="HeuristicLab.LocalSolver-7.5">
+      <HintPath>..\..\..\trunk\bin\HeuristicLab.LocalSolver-7.5.dll</HintPath>
+    </Reference>
+    <Reference Include="HeuristicLab.Operators-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\..\..\trunk\bin\HeuristicLab.Operators-3.3.dll</HintPath>
+    </Reference>
+    <Reference Include="HeuristicLab.Operators.Views.GraphVisualization-3.3">
+      <HintPath>..\..\..\trunk\bin\HeuristicLab.Operators.Views.GraphVisualization-3.3.dll</HintPath>
+    </Reference>
+    <Reference Include="HeuristicLab.Persistence-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\..\..\trunk\bin\HeuristicLab.Persistence-3.3.dll</HintPath>
     </Reference>
     <Reference Include="HeuristicLab.Problems.Instances-3.3">
@@ -52,4 +72,19 @@
     <Reference Include="HeuristicLab.Problems.Instances.CordeauGQAP-3.3">
       <HintPath>..\..\..\trunk\bin\HeuristicLab.Problems.Instances.CordeauGQAP-3.3.dll</HintPath>
+    </Reference>
+    <Reference Include="HeuristicLab.Selection-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\..\..\trunk\bin\HeuristicLab.Selection-3.3.dll</HintPath>
+    </Reference>
+    <Reference Include="HeuristicLab.SequentialEngine-3.3">
+      <HintPath>..\..\..\trunk\bin\HeuristicLab.SequentialEngine-3.3.dll</HintPath>
+    </Reference>
+    <Reference Include="localsolvernet, Version=7.5.0.0, Culture=neutral, processorArchitecture=AMD64">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\..\..\trunk\bin\localsolvernet.dll</HintPath>
+    </Reference>
+    <Reference Include="oplall, Version=12.7.0.0, Culture=neutral, PublicKeyToken=7906592bc7cc7340, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\..\..\trunk\bin\oplall.dll</HintPath>
     </Reference>
     <Reference Include="System" />
@@ -65,6 +100,16 @@
     <Compile Include="Program.cs" />
     <Compile Include="Properties\AssemblyInfo.cs" />
+    <Compile Include="Properties\Resources.Designer.cs">
+      <AutoGen>True</AutoGen>
+      <DesignTime>True</DesignTime>
+      <DependentUpon>Resources.resx</DependentUpon>
+    </Compile>
   </ItemGroup>
   <ItemGroup>
+    <None Include="ALPS Instance.hl" />
+    <EmbeddedResource Include="Properties\Resources.resx">
+      <Generator>ResXFileCodeGenerator</Generator>
+      <LastGenOutput>Resources.Designer.cs</LastGenOutput>
+    </EmbeddedResource>
     <None Include="App.config" />
     <None Include="packages.config" />
Index: /branches/1614_GeneralizedQAP/GQAPSolver/Program.cs
===================================================================
--- /branches/1614_GeneralizedQAP/GQAPSolver/Program.cs	(revision 16075)
+++ /branches/1614_GeneralizedQAP/GQAPSolver/Program.cs	(revision 16076)
@@ -1,14 +1,22 @@
 ﻿using System;
+using System.IO;
 using System.Linq;
 using CommandLine;
+using HeuristicLab.Algorithms.ALPS;
 using HeuristicLab.Data;
+using HeuristicLab.Optimization;
+using HeuristicLab.Persistence.Default.Xml;
 using HeuristicLab.Problems.GeneralizedQuadraticAssignment;
+using HeuristicLab.Problems.GeneralizedQuadraticAssignment.Algorithms.CPLEX;
 using HeuristicLab.Problems.GeneralizedQuadraticAssignment.Algorithms.Evolutionary;
 using HeuristicLab.Problems.GeneralizedQuadraticAssignment.Algorithms.GRASP;
+using HeuristicLab.Problems.GeneralizedQuadraticAssignment.Algorithms.LAHC;
 using HeuristicLab.Problems.GeneralizedQuadraticAssignment.Algorithms.LocalSearch;
+using HeuristicLab.Problems.GeneralizedQuadraticAssignment.Algorithms.LocalSolverNet;
 using HeuristicLab.Problems.Instances.CordeauGQAP;
+using HeuristicLab.Selection;
 
 namespace GQAPSolver {
-  public enum AlgorithmType { OSGA = 1, ILS = 2, ES = 3, GRASP = 4 }
+  public enum AlgorithmType { ALPS = 0, OSGA = 1, ES = 2, ILS = 3, MLS = 4, GRASP = 5, PLAHCS = 6, CPLEX_FY = 7, CPLEX_KB = 8, LOSOL_01 = 9, LOSOL_N = 10 }
 
   class CLOptions {
@@ -23,5 +31,5 @@
     public string ProblemInstance { get; set; }
 
-    [Option('a', "alg", Default = AlgorithmType.OSGA, HelpText = "Either: OSGA, ILS, ES, GRASP")]
+    [Option('a', "alg", Required = true, HelpText = "Algorithm: ALPS, OSGA, ES, ILS, MLS, GRASP, PLAHCS, CPLEX_FY, CPLEX_KB, LOSOL_01, LOSOL_N")]
     public AlgorithmType Algorithm { get; set; }
 
@@ -39,11 +47,19 @@
     public int MaxEvaluations { get; set; }
 
-    [Option("popsize", Default = 500, HelpText = "Population size (OSGA)")]
+    [Option("agegap", Default = 20, HelpText = "Age gap (ALPS)")]
+    public int AgeGap { get; set; }
+    [Option("agescheme", Default = AgingScheme.Polynomial, HelpText = "Aging Scheme: Linear, Polynomial, Fibonacci, Exponentional (ALPS)")]
+    public AgingScheme AgingScheme { get; set; }
+    [Option("elites", Default = 1, HelpText = "Elite solutions (ALPS)")]
+    public int Elites { get; set; }
+    [Option("layers", Default = 10, HelpText = "Number of layers (ALPS)")]
+    public int NumberOfLayers { get; set; }
+    [Option("selpress", Default = 4, HelpText = "Selection pressure (ALPS)")]
+    public double SelectionPressure { get; set; }
+
+    [Option("popsize", Default = 500, HelpText = "Population size (OSGA, ALPS)")]
     public int PopulationSize { get; set; }
-    [Option("mutprob", Default = 0.05, HelpText = "Mutation probability (OSGA)")]
+    [Option("mutprob", Default = 0.05, HelpText = "Mutation probability (OSGA, ALPS)")]
     public double MutationProbability { get; set; }
-
-    [Option("pertstr", Default = 0.5, HelpText = "Perturbation strength (ILS)")]
-    public double PerturbationStrength { get; set; }
 
     [Option("mu", Default = 10, HelpText = "Parent population size (ES)")]
@@ -51,8 +67,11 @@
     [Option("lambda", Default = 10, HelpText = "Offspring population size (ES)")]
     public int Lambda { get; set; }
-    [Option("evosel", Default = ESSelection.Plus, HelpText = "Selection strategy + or , (ES)")]
+    [Option("evosel", Default = ESSelection.Plus, HelpText = "Selection strategy + or , (ES, ALPS)")]
     public ESSelection Selection { get; set; }
     [Option("recomb", Default = 0, HelpText = "Use recombination 0 or 1 (ES)")]
     public int Recombination { get; set; }
+
+    [Option("pertstr", Default = 0.5, HelpText = "Perturbation strength (ILS)")]
+    public double PerturbationStrength { get; set; }
 
     [Option("eliteset", Default = 10, HelpText = "Size of the elite set (GRASP)")]
@@ -82,7 +101,51 @@
       var descriptors = provider.GetDataDescriptors().ToList();
       var avgBest = 0.0;
+      var gqapInstance = provider.LoadData(descriptors.Single(x => x.Name == opts.ProblemInstance));
+
       for (var t = 0; t < opts.Tries; t++) {
-        HeuristicLab.Optimization.IAlgorithm alg = null;
+        IAlgorithm alg = null;
         switch (opts.Algorithm) {
+          case AlgorithmType.ALPS:
+            using (var stream = new MemoryStream(Properties.Resources.ALPS)) {
+              var alps = (AlpsGeneticAlgorithm)XmlParser.Deserialize(stream, CompressionType.Zip);
+              alps.Seed.Value = (int)opts.Seed;
+              alps.SetSeedRandomly.Value = true;
+              #region Termination
+              var execTimeTerm = alps.Terminators.Operators.OfType<ExecutionTimeTerminator>().SingleOrDefault();
+              if (execTimeTerm != null) {
+                alps.Terminators.Operators.SetItemCheckedState(execTimeTerm, opts.MaxRuntime > 0);
+                execTimeTerm.Threshold.Value = TimeSpan.FromSeconds(opts.MaxRuntime);
+              }
+              var compTerm = alps.Terminators.Operators.OfType<ComparisonTerminator<IntValue>>().SingleOrDefault(x => x.Name == "Generations");
+              if (compTerm != null) {
+                alps.Terminators.Operators.SetItemCheckedState(compTerm, opts.MaxIterations > 0);
+                compTerm.Threshold.Value = opts.MaxIterations;
+              }
+              compTerm = alps.Terminators.Operators.OfType<ComparisonTerminator<IntValue>>().SingleOrDefault(x => x.Name == "Evaluations");
+              if (compTerm != null) {
+                alps.Terminators.Operators.SetItemCheckedState(compTerm, opts.MaxEvaluations > 0);
+                compTerm.Threshold.Value = opts.MaxEvaluations;
+              }
+              var fitTerm = alps.Terminators.Operators.OfType<SingleObjectiveQualityTerminator>().SingleOrDefault();
+              if (fitTerm != null) {
+                alps.Terminators.Operators.SetItemCheckedState(fitTerm, gqapInstance.BestKnownQuality.HasValue);
+                fitTerm.Threshold.Value = gqapInstance.BestKnownQuality.GetValueOrDefault();
+              }
+              if (alps.Terminators.Operators.CheckedItems.Count() == 0) throw new InvalidOperationException("No termination criteria defined for ALPS");
+              #endregion
+              alps.AgeGap.Value = opts.AgeGap;
+              alps.AgingScheme.Value = opts.AgingScheme;
+              alps.Elites.Value = opts.Elites;
+              alps.NumberOfLayers.Value = opts.NumberOfLayers;
+              if (!(alps.Selector is GeneralizedRankSelector))
+                alps.Selector = alps.SelectorParameter.ValidValues.OfType<GeneralizedRankSelector>().Single();
+              var sel = alps.Selector as GeneralizedRankSelector;
+              sel.PressureParameter.Value.Value = opts.SelectionPressure;
+              alps.PopulationSize.Value = opts.PopulationSize;
+              alps.MutationProbability.Value = opts.MutationProbability;
+              alps.PlusSelection = opts.Selection == ESSelection.Plus;
+              alg = alps;
+            }
+            break;
           case AlgorithmType.OSGA:
             alg = new OSGA() {
@@ -92,15 +155,4 @@
               PopulationSize = opts.PopulationSize,
               MutationProbability = opts.MutationProbability,
-              StopAtBestKnownQuality = true,
-              Seed = (int)opts.Seed,
-              SetSeedRandomly = false
-            };
-            break;
-          case AlgorithmType.ILS:
-            alg = new IteratedLS() {
-              MaximumEvaluations = opts.MaxEvaluations,
-              MaximumIterations = opts.MaxIterations,
-              MaximumRuntime = TimeSpan.FromSeconds(opts.MaxRuntime),
-              PerturbationStrength = opts.PerturbationStrength,
               StopAtBestKnownQuality = true,
               Seed = (int)opts.Seed,
@@ -117,4 +169,25 @@
               Selection = opts.Selection,
               UseRecombination = opts.Recombination > 0,
+              StopAtBestKnownQuality = true,
+              Seed = (int)opts.Seed,
+              SetSeedRandomly = false
+            };
+            break;
+          case AlgorithmType.ILS:
+            alg = new IteratedLS() {
+              MaximumEvaluations = opts.MaxEvaluations,
+              MaximumIterations = opts.MaxIterations,
+              MaximumRuntime = TimeSpan.FromSeconds(opts.MaxRuntime),
+              PerturbationStrength = opts.PerturbationStrength,
+              StopAtBestKnownQuality = true,
+              Seed = (int)opts.Seed,
+              SetSeedRandomly = false
+            };
+            break;
+          case AlgorithmType.MLS:
+            alg = new MultistartLS() {
+              MaximumEvaluations = opts.MaxEvaluations,
+              MaximumIterations = opts.MaxIterations,
+              MaximumRuntime = TimeSpan.FromSeconds(opts.MaxRuntime),
               StopAtBestKnownQuality = true,
               Seed = (int)opts.Seed,
@@ -139,9 +212,52 @@
             };
             break;
+          case AlgorithmType.PLAHCS:
+            alg = new PLAHCS() {
+              MaximumEvaluations = opts.MaxEvaluations,
+              MaximumIterations = opts.MaxIterations,
+              MaximumRuntime = TimeSpan.FromSeconds(opts.MaxRuntime),
+              MaximumExponent = 20,
+              StopAtBestKnownQuality = true,
+              Seed = (int)opts.Seed,
+              SetSeedRandomly = false
+            };
+            break;
+          case AlgorithmType.CPLEX_FY:
+            alg = new GQAP_FY() {
+              MaximumEvaluations = opts.MaxEvaluations,
+              MaximumIterations = opts.MaxIterations,
+              MaximumRuntime = TimeSpan.FromSeconds(opts.MaxRuntime),
+              StopAtBestKnownQuality = true
+            };
+            break;
+          case AlgorithmType.CPLEX_KB:
+            alg = new GQAP_KB() {
+              MaximumEvaluations = opts.MaxEvaluations,
+              MaximumIterations = opts.MaxIterations,
+              MaximumRuntime = TimeSpan.FromSeconds(opts.MaxRuntime),
+              StopAtBestKnownQuality = true
+            };
+            break;
+          case AlgorithmType.LOSOL_01:
+            alg = new GQAPBinarySolver() {
+              MaximumEvaluations = opts.MaxEvaluations,
+              MaximumIterations = opts.MaxIterations,
+              MaximumRuntime = TimeSpan.FromSeconds(opts.MaxRuntime),
+              StopAtBestKnownQuality = true
+            };
+            break;
+          case AlgorithmType.LOSOL_N:
+            alg = new GQAPIntegerSolver() {
+              MaximumEvaluations = opts.MaxEvaluations,
+              MaximumIterations = opts.MaxIterations,
+              MaximumRuntime = TimeSpan.FromSeconds(opts.MaxRuntime),
+              StopAtBestKnownQuality = true
+            };
+            break;
         }
-        if (alg == null) throw new InvalidOperationException("Unknown algorithm.");
+        if (alg == null) throw new InvalidOperationException("Unknown algorithm " + opts.Algorithm + ".");
         var prob = alg.Problem as GQAP;
         if (prob == null) alg.Problem = prob = new GQAP();
-        prob.Load(provider.LoadData(descriptors.Single(x => x.Name == opts.ProblemInstance)));
+        prob.Load(gqapInstance);
         alg.Start();
         avgBest += ((DoubleValue)alg.Results["BestQuality"].Value).Value;
Index: /branches/1614_GeneralizedQAP/GQAPSolver/Properties/Resources.Designer.cs
===================================================================
--- /branches/1614_GeneralizedQAP/GQAPSolver/Properties/Resources.Designer.cs	(revision 16076)
+++ /branches/1614_GeneralizedQAP/GQAPSolver/Properties/Resources.Designer.cs	(revision 16076)
@@ -0,0 +1,73 @@
+﻿//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:4.0.30319.42000
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace GQAPSolver.Properties {
+    using System;
+    
+    
+    /// <summary>
+    ///   A strongly-typed resource class, for looking up localized strings, etc.
+    /// </summary>
+    // This class was auto-generated by the StronglyTypedResourceBuilder
+    // class via a tool like ResGen or Visual Studio.
+    // To add or remove a member, edit your .ResX file then rerun ResGen
+    // with the /str option, or rebuild your VS project.
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")]
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+    internal class Resources {
+        
+        private static global::System.Resources.ResourceManager resourceMan;
+        
+        private static global::System.Globalization.CultureInfo resourceCulture;
+        
+        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+        internal Resources() {
+        }
+        
+        /// <summary>
+        ///   Returns the cached ResourceManager instance used by this class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Resources.ResourceManager ResourceManager {
+            get {
+                if (object.ReferenceEquals(resourceMan, null)) {
+                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("GQAPSolver.Properties.Resources", typeof(Resources).Assembly);
+                    resourceMan = temp;
+                }
+                return resourceMan;
+            }
+        }
+        
+        /// <summary>
+        ///   Overrides the current thread's CurrentUICulture property for all
+        ///   resource lookups using this strongly typed resource class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Globalization.CultureInfo Culture {
+            get {
+                return resourceCulture;
+            }
+            set {
+                resourceCulture = value;
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized resource of type System.Byte[].
+        /// </summary>
+        internal static byte[] ALPS {
+            get {
+                object obj = ResourceManager.GetObject("ALPS", resourceCulture);
+                return ((byte[])(obj));
+            }
+        }
+    }
+}
Index: /branches/1614_GeneralizedQAP/GQAPSolver/Properties/Resources.resx
===================================================================
--- /branches/1614_GeneralizedQAP/GQAPSolver/Properties/Resources.resx	(revision 16076)
+++ /branches/1614_GeneralizedQAP/GQAPSolver/Properties/Resources.resx	(revision 16076)
@@ -0,0 +1,124 @@
+﻿<?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>
+  <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
+  <data name="ALPS" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\ALPS Instance.hl;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+</root>
