Click here to Skip to main content
15,896,453 members
Articles / Multimedia / GDI+

C# Application to Create and Recognize Mouse Gestures (.NET)

Rate me:
Please Sign up or sign in to vote.
4.82/5 (39 votes)
17 Mar 2008CPOL5 min read 222.1K   8.1K   144  
This program can create and recognize mouse gestures.
<?xml version="1.0" encoding="utf-8"?>
<root>
  <!-- 
    Microsoft ResX Schema 
    
    Version 1.3
    
    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">1.3</resheader>
    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
    <data name="Name1">this is my long string</data>
    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
        [base64 mime encoded serialized .NET Framework object]
    </data>
    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
        [base64 mime encoded string representing a byte array form of the .NET Framework object]
    </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 forserialized 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.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:element name="root" msdata:IsDataSet="true">
      <xsd:complexType>
        <xsd:choice maxOccurs="unbounded">
          <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" msdata:Ordinal="1" />
              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
            </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>1.3</value>
  </resheader>
  <resheader name="reader">
    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <resheader name="writer">
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <data name="BaseMenu.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <value>Private</value>
  </data>
  <data name="BaseMenu.Location" type="System.Drawing.Point, System.Drawing, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    <value>17, 17</value>
  </data>
  <data name="BaseMenu.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <value>Private</value>
  </data>
  <data name="FileMenu.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <value>Private</value>
  </data>
  <data name="FileMenu.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <value>Private</value>
  </data>
  <data name="LoadNetMenu.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <value>Private</value>
  </data>
  <data name="LoadNetMenu.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <value>Private</value>
  </data>
  <data name="SaveNetMenu.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <value>Private</value>
  </data>
  <data name="SaveNetMenu.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <value>Private</value>
  </data>
  <data name="ReloadMenu.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <value>Private</value>
  </data>
  <data name="ReloadMenu.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <value>Private</value>
  </data>
  <data name="SeparetorMenu1.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <value>Private</value>
  </data>
  <data name="SeparetorMenu1.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <value>Private</value>
  </data>
  <data name="ExitMenu.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <value>Private</value>
  </data>
  <data name="ExitMenu.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <value>Private</value>
  </data>
  <data name="SettingsMenu.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <value>Private</value>
  </data>
  <data name="SettingsMenu.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <value>Private</value>
  </data>
  <data name="CustomizeMenu.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <value>Private</value>
  </data>
  <data name="CustomizeMenu.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <value>Private</value>
  </data>
  <data name="ManageGesturesMenu.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <value>Private</value>
  </data>
  <data name="ManageGesturesMenu.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <value>Private</value>
  </data>
  <data name="NeuralNetMenu.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <value>Private</value>
  </data>
  <data name="NeuralNetMenu.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <value>Private</value>
  </data>
  <data name="ReTrainAllMenu.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <value>Private</value>
  </data>
  <data name="ReTrainAllMenu.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <value>Private</value>
  </data>
  <data name="VerifyMenu.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <value>Private</value>
  </data>
  <data name="VerifyMenu.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <value>Private</value>
  </data>
  <data name="menuItem1.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <value>Private</value>
  </data>
  <data name="menuItem1.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <value>Private</value>
  </data>
  <data name="AboutSoftwareMenu.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <value>Private</value>
  </data>
  <data name="AboutSoftwareMenu.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <value>Private</value>
  </data>
  <data name="AboutAuthorMenu.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <value>Private</value>
  </data>
  <data name="AboutAuthorMenu.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <value>Private</value>
  </data>
  <data name="SaveFullNet.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <value>Private</value>
  </data>
  <data name="SaveFullNet.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <value>Private</value>
  </data>
  <data name="SaveFullNet.Location" type="System.Drawing.Point, System.Drawing, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    <value>119, 17</value>
  </data>
  <data name="LoadFullNet.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <value>Private</value>
  </data>
  <data name="LoadFullNet.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <value>Private</value>
  </data>
  <data name="LoadFullNet.Location" type="System.Drawing.Point, System.Drawing, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    <value>229, 17</value>
  </data>
  <data name="$this.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <value>False</value>
  </data>
  <data name="$this.Language" type="System.Globalization.CultureInfo, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <value>(Default)</value>
  </data>
  <data name="$this.TrayLargeIcon" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <value>False</value>
  </data>
  <data name="$this.Name">
    <value>MouseGestureMainForm</value>
  </data>
  <data name="$this.Localizable" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <value>False</value>
  </data>
  <data name="$this.GridSize" type="System.Drawing.Size, System.Drawing, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    <value>8, 8</value>
  </data>
  <data name="$this.DrawGrid" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <value>True</value>
  </data>
  <data name="$this.TrayHeight" type="System.Int32, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <value>80</value>
  </data>
  <data name="$this.SnapToGrid" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <value>True</value>
  </data>
  <data name="$this.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <value>Private</value>
  </data>
  <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        AAABAAEAMDAAAAEAIACoJQAAFgAAACgAAAAwAAAAYAAAAAEAIAAAAAAAgCUAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA
        //8AAP//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//wAA//8AAP//AAD//wAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAA//8AAP//AAD//wAA//8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//8AAP//AAD//wAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//wAA//8AAP//AAD//wAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA
        //8AAP//AAD//wAA//8AAP//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//wAA//8AAP//AAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//8AAP//AAD//wAA
        //8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//wAA//8AAP//AAD//wAAAAAAAAAAAAAAAAAA
        AAAAAAAA////AAAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//////AP///wAAAP//AAD//wAA
        //8AAP//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAP//AAD//wAA//8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//AAD//wAA//////8AAAAAAAAA
        AAD///8A////AP///wD///8A////AP///wD///8A////AAAA//8AAP//AAD//wAA//8AAP//AAD//wAA
        //8AAP//AAD//////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAP//AAD//wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//8AAP//AAD/////
        /wD///8AAAAAAP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AAAA
        //8AAP//AAD//wAA//8AAP//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v4A/v7+AAAA
        //8AAP//////AP///wD///8A/v7+AP///wD///8A////AP///wD///8A////AP///wD///8A////AP//
        /wD///8A////AP///wD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v4A/v7+AP7+
        /gD+/v4A/v7+AAAA//8AAP//////AP7+/gD+/v4A/v7+AP///wD///8A////AP///wD///8A////AP//
        /wD///8A////AP///wD///8A////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAD+/v4A/v7+AP7+/gD+/v4A/v7+AAAA//8AAP//////AP7+/gD+/v4A/v7+AP///wD///8A////AP//
        /wD///8A////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB2bWn/V1NO/11b
        U/91dnL/c3Rw/3Fybv9yc2//cHFt/3V2cv9wcW3/bW5q/46Pi/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAD+/v4A/v7+AP7+/gD+/v4A/v7+AAAA//8AAP///v7+AP7+/gD+/v4A/v7+AP//
        /wD///8A////AP///wD///8A////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJB0O/xgV
        Df96d3P/cG9r/29uav9sbWn/Z2hk/2hpZf9qa2f/a2xo/2tsaP9vcGz/cXJu/3Fybv9tbmr/dHVz/wAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//8AAP//AAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVlJH/xsS
        AP8mGAX/JRMC/2NfWv9qa2n/Zmln/2hpZ/9iY1//ZGVh/2FiXv9gYV3/YWJe/2ZnY/9mZ2P/a2xo/2xt
        af90dXH/eHl1/3l3dv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v4A/v7+AP7+/gD+/v4A/v7+AAAA
        //8AAP///v7+AP7+/gD+/v4A/v7+AP///wD///8A////AAAA//8AAP//AAD//wAA//8AAP//AAD//wAA
        //8dEwL/IhcB/yMXAP8iFAH/HxAA/3NwaP9lZmL/YWJe/2JfW/9XWFT/VFVR/1FSTv9RUk7/VFVR/1RV
        Uf9cXVn/ZGVh/2ZqZf9ub2v/dnVx/4F+ev+PjIj/AAAAAAAAAAAAAAAAAAAAAAAAAAD+/v4A/v7+AP7+
        /gD+/v4A/v7+AAAA//8AAP//AAD///7+/gD+/v4AAAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA
        //8AAP//IxcF/yccCP8mGgj/IxgE/yEVA/8hFQP/GQwA/2hnY/9aXVv/VVNS/0xQS/9LTEj/RkdD/0RF
        Qf9CQz//REVB/0dIRP9RUk7/WVpW/2VmYv9wb2v/dnVx/4WCfv+UkY3/AAAAAAAAAAAAAAAAAAAAAAAA
        AAD+/v4A/v7+AP7+/gD+/v4A/v7+AP7+/gAAAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA
        //8AAAAAAAAAAAAAAAAeFAP/IxYA/ysgDP8kGAb/IhcD/x8TAf8eEQH/GAoA/2BfW/9KTUv/SEZF/z9D
        Pv89Pjr/Ozw4/zo7N/84OTX/ODk1/zw9Of9HSET/UFFN/19gXP9tbGj/c3Ju/4WCfv+ZlpL/paWl/wAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//AAD//wAA//8AAP//AAD//wAA
        //8AAAAAAAAAAAAAAAAAAAAAAAAAABsRAP8rIAz/LB8J/yUcCP8kGQX/IRYC/x4SAP8dEAD/GAoA/1tb
        Vf9FSEb/Q0FA/zs/Ov86Ozf/OTo2/zg5Nf81NjL/NTYy/zk6Nv9ERUH/Tk9L/15fW/9tbGj/c3Ju/4aD
        f/+cmZX/n5+f/wAAAAAAAAAAAAAAAAAAAAD+/v4A/v7+AP7+/gD+/v4A/v7+AP7+/gD+/v4AAAD//wAA
        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
        p/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA
        //8AAP//AAD//wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//AAD//wAA
        //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//wAA//8AAP//AAD//wAA
        //8AAP//AAD//wAA//8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAP//AAAAAAAAAAAAAAAAAAD//wAA//8AAP//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////8AAP/////AHwAA/////h+H
        AAD/gD/4/+EAAP8AA/H/8AAA/h+AYf/4AAD8f/AH//kAAPj//g///wAA+f//////AAD5//////8AAPn/
        /+AB/wAA+f//gAB/AAD5//wAAD8AAPn8AAAAHwAA+MAAAAAfAAD8AcAAAA8AAPwPgAAADwAA/h8AAAAP
        AAD//AAAAA8AAP/4AAAADwAA//AAAAAPAAD/4AAAAB8AAP/gAAAAHwAA/8AAAAAfAAD/gAAAAD8AAP+A
        AAAAPwAA/wAAAAA/AAD/AAAAAH8AAP4AAAAAfwAA/gAAAAD/AAD+AAAAAH8AAPwAAAABPwAA/AAAAAM/
        AAD8AAAABj8AAPwAAAAOPwAA+AAAAB5/AAD4AAAAPn8AAPgAAAB+fwAA+AAAAP5/AAD4AAAB/H8AAPwA
        AAf8fwAA/gAAH/j/AAD+AAAD8f8AAD4wB8AD/wAAAH//8A//AABx//////8AAP///////wAA////////
        AAA=
</value>
  </data>
</root>

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Software Developer (Senior) Apex s.r.l.
Italy Italy
I got my Computer Science (Engineering) Master's Degree at the Siena University (Italy), but I'm from Rieti (a small town next to Rome).
My hobbies are RPG, MMORGP, programming and 3D graphics.
At the moment I'm employed at Apex s.r.l. (Modena, Italy) as a senior software developer, working for a WPF/WCF project in Rome.

Comments and Discussions