Click here to Skip to main content
15,894,460 members
Articles / Programming Languages / C#

Bezier Curves Made Simple

Rate me:
Please Sign up or sign in to vote.
4.92/5 (43 votes)
14 Apr 2008CPOL4 min read 389K   15.1K   103  
A simple implementation of the famous Bezier curves in C#. Easy to understand.
<?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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <resheader name="writer">
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
  <data name="pictureBox1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        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
        AAAAAAAAAAAAAFhZWiAAAAAAAABvogAAOPUAAAOQWFlaIAAAAAAAAGKZAAC3hQAAGNpYWVogAAAAAAAA
        JKAAAA+EAAC2z2Rlc2MAAAAAAAAAFklFQyBodHRwOi8vd3d3LmllYy5jaAAAAAAAAAAAAAAAFklFQyBo
        dHRwOi8vd3d3LmllYy5jaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AABkZXNjAAAAAAAAAC5JRUMgNjE5NjYtMi4xIERlZmF1bHQgUkdCIGNvbG91ciBzcGFjZSAtIHNSR0IA
        AAAAAAAAAAAAAC5JRUMgNjE5NjYtMi4xIERlZmF1bHQgUkdCIGNvbG91ciBzcGFjZSAtIHNSR0IAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAZGVzYwAAAAAAAAAsUmVmZXJlbmNlIFZpZXdpbmcgQ29uZGl0aW9uIGlu
        IElFQzYxOTY2LTIuMQAAAAAAAAAAAAAALFJlZmVyZW5jZSBWaWV3aW5nIENvbmRpdGlvbiBpbiBJRUM2
        MTk2Ni0yLjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHZpZXcAAAAAABOk/gAUXy4AEM8UAAPtzAAE
        EwsAA1yeAAAAAVhZWiAAAAAAAEwJVgBQAAAAVx/nbWVhcwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAA
        Ao8AAAACc2lnIAAAAABDUlQgY3VydgAAAAAAAAQAAAAABQAKAA8AFAAZAB4AIwAoAC0AMgA3ADsAQABF
        AEoATwBUAFkAXgBjAGgAbQByAHcAfACBAIYAiwCQAJUAmgCfAKQAqQCuALIAtwC8AMEAxgDLANAA1QDb
        AOAA5QDrAPAA9gD7AQEBBwENARMBGQEfASUBKwEyATgBPgFFAUwBUgFZAWABZwFuAXUBfAGDAYsBkgGa
        AaEBqQGxAbkBwQHJAdEB2QHhAekB8gH6AgMCDAIUAh0CJgIvAjgCQQJLAlQCXQJnAnECegKEAo4CmAKi
        AqwCtgLBAssC1QLgAusC9QMAAwsDFgMhAy0DOANDA08DWgNmA3IDfgOKA5YDogOuA7oDxwPTA+AD7AP5
        BAYEEwQgBC0EOwRIBFUEYwRxBH4EjASaBKgEtgTEBNME4QTwBP4FDQUcBSsFOgVJBVgFZwV3BYYFlgWm
        BbUFxQXVBeUF9gYGBhYGJwY3BkgGWQZqBnsGjAadBq8GwAbRBuMG9QcHBxkHKwc9B08HYQd0B4YHmQes
        B78H0gflB/gICwgfCDIIRghaCG4IggiWCKoIvgjSCOcI+wkQCSUJOglPCWQJeQmPCaQJugnPCeUJ+woR
        CicKPQpUCmoKgQqYCq4KxQrcCvMLCwsiCzkLUQtpC4ALmAuwC8gL4Qv5DBIMKgxDDFwMdQyODKcMwAzZ
        DPMNDQ0mDUANWg10DY4NqQ3DDd4N+A4TDi4OSQ5kDn8Omw62DtIO7g8JDyUPQQ9eD3oPlg+zD88P7BAJ
        ECYQQxBhEH4QmxC5ENcQ9RETETERTxFtEYwRqhHJEegSBxImEkUSZBKEEqMSwxLjEwMTIxNDE2MTgxOk
        E8UT5RQGFCcUSRRqFIsUrRTOFPAVEhU0FVYVeBWbFb0V4BYDFiYWSRZsFo8WshbWFvoXHRdBF2UXiReu
        F9IX9xgbGEAYZRiKGK8Y1Rj6GSAZRRlrGZEZtxndGgQaKhpRGncanhrFGuwbFBs7G2MbihuyG9ocAhwq
        HFIcexyjHMwc9R0eHUcdcB2ZHcMd7B4WHkAeah6UHr4e6R8THz4faR+UH78f6iAVIEEgbCCYIMQg8CEc
        IUghdSGhIc4h+yInIlUigiKvIt0jCiM4I2YjlCPCI/AkHyRNJHwkqyTaJQklOCVoJZclxyX3JicmVyaH
        Jrcm6CcYJ0kneierJ9woDSg/KHEooijUKQYpOClrKZ0p0CoCKjUqaCqbKs8rAis2K2krnSvRLAUsOSxu
        LKIs1y0MLUEtdi2rLeEuFi5MLoIuty7uLyQvWi+RL8cv/jA1MGwwpDDbMRIxSjGCMbox8jIqMmMymzLU
        Mw0zRjN/M7gz8TQrNGU0njTYNRM1TTWHNcI1/TY3NnI2rjbpNyQ3YDecN9c4FDhQOIw4yDkFOUI5fzm8
        Ofk6Njp0OrI67zstO2s7qjvoPCc8ZTykPOM9Ij1hPaE94D4gPmA+oD7gPyE/YT+iP+JAI0BkQKZA50Ep
        QWpBrEHuQjBCckK1QvdDOkN9Q8BEA0RHRIpEzkUSRVVFmkXeRiJGZ0arRvBHNUd7R8BIBUhLSJFI10kd
        SWNJqUnwSjdKfUrESwxLU0uaS+JMKkxyTLpNAk1KTZNN3E4lTm5Ot08AT0lPk0/dUCdQcVC7UQZRUFGb
        UeZSMVJ8UsdTE1NfU6pT9lRCVI9U21UoVXVVwlYPVlxWqVb3V0RXklfgWC9YfVjLWRpZaVm4WgdaVlqm
        WvVbRVuVW+VcNVyGXNZdJ114XcleGl5sXr1fD19hX7NgBWBXYKpg/GFPYaJh9WJJYpxi8GNDY5dj62RA
        ZJRk6WU9ZZJl52Y9ZpJm6Gc9Z5Nn6Wg/aJZo7GlDaZpp8WpIap9q92tPa6dr/2xXbK9tCG1gbbluEm5r
        bsRvHm94b9FwK3CGcOBxOnGVcfByS3KmcwFzXXO4dBR0cHTMdSh1hXXhdj52m3b4d1Z3s3gReG54zHkq
        eYl553pGeqV7BHtje8J8IXyBfOF9QX2hfgF+Yn7CfyN/hH/lgEeAqIEKgWuBzYIwgpKC9INXg7qEHYSA
        hOOFR4Wrhg6GcobXhzuHn4gEiGmIzokziZmJ/opkisqLMIuWi/yMY4zKjTGNmI3/jmaOzo82j56QBpBu
        kNaRP5GokhGSepLjk02TtpQglIqU9JVflcmWNJaflwqXdZfgmEyYuJkkmZCZ/JpomtWbQpuvnByciZz3
        nWSd0p5Anq6fHZ+Ln/qgaaDYoUehtqImopajBqN2o+akVqTHpTilqaYapoum/adup+CoUqjEqTepqaoc
        qo+rAqt1q+msXKzQrUStuK4trqGvFq+LsACwdbDqsWCx1rJLssKzOLOutCW0nLUTtYq2AbZ5tvC3aLfg
        uFm40blKucK6O7q1uy67p7whvJu9Fb2Pvgq+hL7/v3q/9cBwwOzBZ8Hjwl/C28NYw9TEUcTOxUvFyMZG
        xsPHQce/yD3IvMk6ybnKOMq3yzbLtsw1zLXNNc21zjbOts83z7jQOdC60TzRvtI/0sHTRNPG1EnUy9VO
        1dHWVdbY11zX4Nhk2OjZbNnx2nba+9uA3AXcit0Q3ZbeHN6i3ynfr+A24L3hROHM4lPi2+Nj4+vkc+T8
        5YTmDeaW5x/nqegy6LzpRunQ6lvq5etw6/vshu0R7ZzuKO6070DvzPBY8OXxcvH/8ozzGfOn9DT0wvVQ
        9d72bfb794r4Gfio+Tj5x/pX+uf7d/wH/Jj9Kf26/kv+3P9t////2wBDAAYEBQYFBAYGBQYHBwYIChAK
        CgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMK
        ChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAAR
        CAHgAWQDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIE
        AwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0
        NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm
        p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEB
        AQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdh
        cRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpj
        ZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK
        0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD2rwB4N8MXHgTw3NP4b0WWaTTb
        Z3d7GJmZjEpJJK8k1vf8IP4T/wChY0L/AMF8X/xNHw5/5J74Y/7Bdr/6KWuhoA57/hB/Cf8A0LGhf+C+
        L/4mj/hB/Cf/AELGhf8Agvi/+JroaKAOe/4Qfwn/ANCxoX/gvi/+Jo/4Qfwn/wBCxoX/AIL4v/ia6Gig
        Dnv+EH8J/wDQsaF/4L4v/iaP+EH8J/8AQsaF/wCC+L/4muhooA57/hB/Cf8A0LGhf+C+L/4mj/hB/Cf/
        AELGhf8Agvi/+JroaKAOe/4Qfwn/ANCxoX/gvi/+Jo/4Qfwn/wBCxoX/AIL4v/ia6GigDnv+EH8J/wDQ
        saF/4L4v/iaP+EH8J/8AQsaF/wCC+L/4muhooA57/hB/Cf8A0LGhf+C+L/4mj/hB/Cf/AELGhf8Agvi/
        +JroaKAOe/4Qfwn/ANCxoX/gvi/+Jo/4Qfwn/wBCxoX/AIL4v/ia6GigDnv+EH8J/wDQsaF/4L4v/iaP
        +EH8J/8AQsaF/wCC+L/4muhooA57/hB/Cf8A0LGhf+C+L/4mj/hB/Cf/AELGhf8Agvi/+JroaKAOe/4Q
        fwn/ANCxoX/gvi/+Jo/4Qfwn/wBCxoX/AIL4v/ia6GigDnv+EH8J/wDQsaF/4L4v/iaP+EH8J/8AQsaF
        /wCC+L/4muhooA57/hB/Cf8A0LGhf+C+L/4mj/hB/Cf/AELGhf8Agvi/+JroaKAOe/4Qfwn/ANCxoX/g
        vi/+Jo/4Qfwn/wBCxoX/AIL4v/ia6GigDnv+EH8J/wDQsaF/4L4v/iaP+EH8J/8AQsaF/wCC+L/4muho
        oA57/hB/Cf8A0LGhf+C+L/4mj/hB/Cf/AELGhf8Agvi/+JroaKAOe/4Qfwn/ANCxoX/gvi/+Jo/4Qfwn
        /wBCxoX/AIL4v/ia6GigDnv+EH8J/wDQsaF/4L4v/iaP+EH8J/8AQsaF/wCC+L/4muhooA57/hB/Cf8A
        0LGhf+C+L/4mj/hB/Cf/AELGhf8Agvi/+JroaKAOe/4Qfwn/ANCxoX/gvi/+Jo/4Qfwn/wBCxoX/AIL4
        v/ia6GigDnv+EH8J/wDQsaF/4L4v/iaP+EH8J/8AQsaF/wCC+L/4muhooA+dfjT4b0Ky8U2sdnoumW8Z
        skYrFaxoCd784A68Citb46/8jdaf9eKf+jJKKAPU/hz/AMk98Mf9gu1/9FLXQ1z3w5/5J74Y/wCwXa/+
        ilroaACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo
        AKKKKACiiigAooooAKKKKACiiigAooooAKKKKAPC/jr/AMjdaf8AXin/AKMkoo+Ov/I3Wn/Xin/oySig
        D1P4c/8AJPfDH/YLtf8A0UtdDXPfDn/knvhj/sF2v/opa6GgAooooAKKKKACiiigAooooAKKKKACiiig
        AJwMmikYZUg9DwahgdkgbzesZIJ9QOh/KgCckAgHqaCcVRtL+G5WSVWB8sfOBztzzj64qPR7sanGbxDm
        EkrHg8HHU/0/ClcDSopGIVST0FZOqa/aabF5twQkAODNIwRM+gJ6n2AobS3Cxr0V4h4j+OEVnqc0GnQQ
        XdvEu7zF38/p09+lXNG+M1rrltFHYW7DUXLAwTt5cYCjJIkxyfbrUKomW4NbnsYIPQg4orxGz+JOoM1y
        12Y4I4hmO5ija6gJz92RgAydRzVvQPjnotzqZ07VlNnMW8tJjnyWfpjccY5Henzomx7HRWHovifTtYMi
        WcySTxgGSJJFcrnoeDyD6itmKVJUDxsGXpkVSaYh9FFFMAooooAKKKKACiiigAooooAKKKKACiiigAoo
        ooAKKKKAPC/jr/yN1p/14p/6Mkoo+Ov/ACN1p/14p/6MkooA9T+HP/JPfDH/AGC7X/0UtdDXPfDn/knv
        hj/sF2v/AKKWuhoAKKKKACiiigAooooAKKKKACiiigAoJxRUNxcw27RLMwXzW2LnufSgCY8iuS8Q64NM
        LtNkxsm5dvUuMgLjry2PyrS0zVI0vb+xuJQGtXLBnOPkOCMn2zXzJ8UviFf3F5KlnciCMSyDgghecDnH
        qM4rOctC4xuzorjxzNZ6Hr0elSvc3YuW8y4Y4jmkLcqQOgxxx6V0+ifFS30vwVZPL9ihu4IAgtGJB3KO
        Q2OhPJB5FfKNndGJyn2qZ0zkxq3yk9zSapdzu5MTtl/4xyR7VmrrYtpbs998XfH3Up4lt7O2gsFkHVW3
        yfTPQflXkviHxrPrM0EN/fXV4kIO4yyZCd/l9Pqa4y/luJiwLCPJzuf+VQLpzJaM/nDzJPmYjoRnpT5b
        6snm7G/dXbXKCRGbKna2wkBh6Ed6DqcttbCIB0Uk4UZIz/ex6+9R2Els0MC/KJBJiTuCpHFZ91M8l5JE
        5KJESI3XqMHrSSuU20jvtC+IGo6RZ6hFaTBhewrFMZcMd2ME+5xxzXJ/2nE4lS8iE0Usn3ZBzgcjaR0H
        assRXO7fcbWXGQY/vFvQVXFi91tdSdgG3BycCqSRDud/4H+IE/hq/sTF5jxwMyqhkCFw3YtjlQcEfQ19
        K6R44t7axi1DU9WUXNyTDIII90XnqewAzgjHNfGMdr9k/ezxZKoUjU89R/k1s2GvXQ+yJLKy28LEiMjK
        gEjPy9CeB19KNtg9T740nxPpOqXRtbS+gkuVQO8W7a6+xU8itmORJM+W6tjg4OcV8h6fr2keINR06wm4
        zM227syY5vmUkgnrtHf2H4V6r8Hvibb6nPLoFymLiwkFsJlHyzJkhXz2zx19apT7k2PaaKAQc+1RyyhG
        jX+J2wB+prQRJRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQB4X8df+RutP+vFP/RklFHx1/wCRutP+
        vFP/AEZJRQB6n8Of+Se+GP8AsF2v/opa6Gue+HP/ACT3wx/2C7X/ANFLXQ0AFFFFABRRRQAUUUUAFFFF
        ABTZG2IzYyAMmnUy4UyQSIjbWZSAfQ4oAIZUmiWSJgyMMgjvXBfGK6sm8KXFus8n9rKDPZR2xzJ5kfzZ
        x/dGOc9qteFruXT9EuLeW7lu7yzMgZJAq5KnO0EeuRj6186+JPF+paf4ovteW7C6rcI0UsLx/IYXHyp1
        IGAAc9+9ZyloUkZ978QbzVtPmnvriWHU5JDNLKr4RgQAoRRxgY/WuAvXaa6YyyPLk5ywz+P41FfXr3eo
        qpRTHswCOFQD0pHkhSQ+WxfH6GskjQry2ruf3JVWz0IwM1BHbXccxjf5XJzgHhR7Vdmvo4gAJvKPUAiq
        8d/IC0sWJRn/AJZnp+FO7CyGmwguJz5zyib3wcfSlECW58sSqUI+Ujjn6VUu9Q89VZZHSVTu+bkfSoJb
        3zEG5U3d/r7U9RaEpZIi2zaCW5H9aa52hiDzIRnnvWeZJQSf4Rg81cx5sYR8gjBotYNzWtLlXaEP8kUQ
        JL9+O9OS/BBEAVI+oRRjj1NYU0srxkbiAV2AeozVVZneR4o35bAJPAo5bhzWOrQhlB3I5J6OQQKfJbRf
        LiRQG6qev4ZrjxMWnZn3be3BPT2q7FdSJIC4bld2GPQf0o5WHMmdALa5tYy0K/IflMm8B8H09Kv+C9Ru
        /DupXD/a32zxlHYAk4zkEn1BANc/Y61DHcgu8qBup3ZH5Gt0eTeeXPZTJIyDJjxgj8PWk7rRjST2PtPw
        P4ztvEFrDPBP5qNtiXd8ruAozIR7tuH4VrabqA1bxVe+Qwaz0+MQhgchpWOWx9AAPzr460PxXqGi3MT2
        LNFLE6+XGx+TIBH/ALMa+pPgcbZPANqYnDTSSM0oL7m3E9/51cZXdmRKNtT0OiiitSAooooAKKKKACii
        igAooooAKKKKACiiigDwv46/8jdaf9eKf+jJKKPjr/yN1p/14p/6MkooA9T+HP8AyT3wx/2C7X/0UtdD
        XPfDn/knvhj/ALBdr/6KWuhoAKKKKACiiigAooooAKKKKACo5CWUhfvrzg96krO1YXJiE1k+HTIZcdf8
        +nekwPDf2hon0aFNVtr2eCHUZkiliUkFXXnII6HAHrXgfiC++2TRt5ZCbVULnj5Rjcfc12nx28bnxFqk
        EEzxi0sN29kOfMfOMheq9Mc814nNq0t5qBZXPltx5ZOBiseXmd0aJpI2JGV2OVbfndsQdfYmq9+twkZY
        xhd44IOMfjVc3B27UJPOK1rTTpbmBA4JHTJpNqO5cYOb0OTaOVlOwlj6A06KKWOMuqnzFx0PFelaV4Nl
        vAu1fLRe+OtdEPBNnFZsGTnHJxUPEI3WFZ41ctJcR7/mO0YKnqKr2sDvMFHKtjk9Aa7+/wDDMgmk2Lzz
        jjqP8arWGhOZwg7jkAVSqroZuhK5gC0aa1QFD5yOV47+x96mTTpROqbcDbk8ds812zeH3ijVo2yWZWyo
        4JFWbrQZJUXcm1mBQkdge31qHVRoqJ57eae6JCNp+c/Lnjr/APWqmNPkiil2p87MFBx09a9O1/QNlvbl
        QxKYAHYDt+NSHQY5Gs/JTAVGJX1xjj3Oc0e1sHsLnkrWksUp81SSCAFx1qxcW77mmuRI2TlgucfnXtmi
        eBFubvzr2MBMZVcfxHuTWpeeAIhFtVAyn+H/AAqXiC1hL9T5/jkhJwltAA3GWbG32qxbvHDOskiwhgeq
        SkH8K7XxL8O7i3jla1hJPUcZrzC4tZ7e7aK4Vg69Q1bQkqnU5qlJ090dbNdIq+cJXbHYN0+vFepfBf4h
        zaNrEdtAYWiu2WHY74C5I+b2rxmy2xgAc7uBkdD2+oqfSPJt7xbnYdvOVzyhz2/Gm49iE+5+jVhqMV6x
        WEhiACccir1eVfAXxS3iHw/MWRmlifbJIcAYCgAAdhXqisGGRWsXdGbVmLRRRVCCiiigAooooAKKKKAC
        iiigAooooA8L+Ov/ACN1p/14p/6Mkoo+Ov8AyN1p/wBeKf8AoySigD1P4c/8k98Mf9gu1/8ARS10Nc98
        Of8Aknvhj/sF2v8A6KWuhoAKKKKACiiigAooooAKKKKACvN/jj4jl8LeELi80+4jj1CceUkTdZB3ZfQr
        1zXpFfOX7UkOq3L2JtrR5IIIZDvQ464yWGcEYx3/AAqJ7DW58ra3cNNdzSSPveZzLI2eSx65rHiDFiqK
        DmtO9RJF3wsrAYUEjG78Kl0W1E02AnzE45NJe6h7s6fwN4ffUHa4lXbGg4UdPpXqWi+G1XEkyjjotTeD
        9KjsdJgjCDcw3uQOtdfbRDaOMV59WfNI9ahT5YlSGyCIAowB6VZNkrJtIHStGKIdwKsxxKQPlz7VhzHT
        Y5SXRUkkLeTkHqB3qrN4XEsoaGLYPQ13qRDPQVPGgXlRT5xOCOGTw3Jt+UHeB1Pf/Gra+HWwqjgdceld
        nsDDHNSbOMUc4ciORPh3zkCyxjrzx1q3YaBFb8NGoAII74rpvLOKY6cZ60c7BQRTFukZyADSSIMDirvl
        4HTrUbpUlWMi4tlcOrLznv8ASvH/AIqeEVlQ6hZoEmTlsdzXtzgbyPUVg67Yrd20kTDAcFauE3FmdSCk
        rHyrZtAoaJmVJD/yzbpnPY9vpVsOI5gzhSGA3gn8zUvjjRG0/UZFK7BuPO3g1kRTswAcFYwoaRnGS/oA
        K9KLuro8aa5XZnvP7Ok15D4nltVu/wDiT3CBpoB1fH3cHrjPpX1xAUMSmIAJjjFfBXw61t9K8Q6bcKxi
        QyKrqpIJUnGODX3ZpEwmsImG8HaMhuoqqb1aJmi5RRRWpAUUUUAFFFFABRRRQAUUUUAFFFFAHhfx1/5G
        60/68U/9GSUUfHX/AJG60/68U/8ARklFAHqfw5/5J74Y/wCwXa/+ilroa574c/8AJPfDH/YLtf8A0Utd
        DQAUUUUAFFFFABRRRQAUUUUAFfNv7V/iFpI7bQIn2rgyyAdT6fh/hX0XfXUNjaS3NzII4Y13Mx7Cvhf4
        w+I313x1qFw6SqoYxosvBRR6j+lZzfQqPc80+yyR5G4yF+cJ90Y7k+tdV4Rsd91ExAYjrkVjRwiUhkGE
        A+Z+gHt/9au58Fwo9zGB9046dfwrOrK0TWhG8j1jTI9kMY74ArZiAzWfbIFiTjAArQgyQDXnSPXgi7GB
        j3q1Eu4gdvWqa47Vft+g/Wsy0yykffFSiPAHaljxjripeCO9Ow7kYVaeBz1xRjAxin5Hc8dMUAGCTgda
        Nv4UKBnPNSAjrigCJoxjk1A55ORVmVxziqbNknigCN4+c1m343YGO9arN8prNnU+b3waQmeOfFzSECmZ
        VyW6mvFdokvTGSSCQPQACvo74oqj6WysPmxxXzrJFtupMY3DJAr0cPLQ8vFRs7nTaO0cm2bBUKQEx/Sv
        uX4X376n4L065mn86QxhWb6cc+9fDGl7Vto9/HU4NfVv7Nd7bzeFZbcSuLiOTlSTgjtitYu0jnlrE9lo
        oorcyCiiigAooooAKKKKACiiigAooooA8L+Ov/I3Wn/Xin/oySij46/8jdaf9eKf+jJKKAPU/hz/AMk9
        8Mf9gu1/9FLXQ1z3w5/5J74Y/wCwXa/+ilroaACiiigAooooAKKKKACiiigDG8WiFdEuLi6BMVspnOD0
        2jOa+BtalF9qtzcuBmd2kP0Jz+dfbPxleU+A9TgiGFlj2O+cDHp718OXrNHI4iUgZIXI6VlL4i1sVlVm
        mYk8lsY7KK7/AMBrGLlX5OOgrzrOZgcEknGc8GvSfh3E006EnKL1rGt8Jvh/iPV7fDINtXITxiqtuMKO
        MYGMVbj+tcDPViWlC4ye1XbduOBziqCNg88Vctjj69qguxdRjjHQ1OCcYBqBM7gc1Y/hGBzQMNzYpFZj
        jin4wM9KTp0oCw8Mc8045C59PSowcdP505H4wf5UDsRu3H1qAnBqxIPQcetV29cVImMkPtVSbj5vwqwW
        yfSoLn7lNEs8++JJX7Hgj5iODXhd1bxmcH5VlOeOxr3P4jI32RTjjn8K8F1WOSOZvL+bDcAfyr0MPseZ
        i3ZmjZzgsYuMIcqc+1fRf7MsyfbL63IPHIGen/1q+XrVgrB1Byx/n6ivfv2cfPXXjLESEklMTK3f5N3B
        rZ6NHMneLPqyikXO0Z60tdBkFFFFABRRRQAUUUUAFFFFABRRRQB4X8df+RutP+vFP/RklFHx1/5G60/6
        8U/9GSUUAep/Dn/knvhj/sF2v/opa6Gue+HP/JPfDH/YLtf/AEUtdDQAUUUUAFFFFABRRRQAUUUUAcv8
        SLB9R8JahEmd3lNgYyCTxyK+GvFlt9i1WezXjy2K/d7iv0KnjEsTIwBB7Gvh/wCOFs1n8RtZSKMczkqv
        oCKymrO5cdrHnLoI2QE54AHsK9g+GdsP7PE2OXPFeRajlI88A45xXtPwrG/wzA55IJrnr/CdWF0lY7gY
        C1LE3pUDHAPPU0j3UdpA0k5AUfrXE1c9JOxpBTgd81YiBypz9a4geJ8u5DAgZ4H9fSopfGsUbhXbaenN
        UoC9oekCZB1OTUiyhhn5TXnln4ytZn2o2B61uW+rpIgYMCPbtUNWNIu51iHeu4Hr3FKSVwDg+9ZNreh1
        4Oe4FTyXR25Xr1pFWNAMFOSevvTjcKB71hT6iUj6jNYeoeIxaoXblV754oQPQ7dplPBP1qLerHAI+ory
        yXx7H5pVXHvjtVq38UmcbopOCO56VpyGLmehSkHkEVUlbIxXL6XrriU/aSTExA3A5FdIrpIN0bBh6jtU
        ONilK6MHxfZC70W4GMlVJFfON3tM+W+b5uBuIyfwr6nvIxLBIh6FSDXy3rsX2XXbiAjIWUoy+nPWurDP
        dHDjFomVliefUcyReT6hRwfevqf9mfR8WN3dyR74vNBjkwcZC4OK+a4opnu44kdiVIKkHp7e9fb/AMI9
        Cbw/4E022lG2aRPOkA7Fua64vmZwyjyo7KiiitjMKKKKACiiigAooooAKKKKACiiigDwv46/8jdaf9eK
        f+jJKKPjr/yN1p/14p/6MkooA9T+HP8AyT3wx/2C7X/0UtdDXPfDn/knvhj/ALBdr/6KWuhoAKKKKACi
        iigAooooAKKKKACvEPjH8Nhql1fa1AHaZoy5A6Bh7e4H54r2+oryPzbWZMA7kI5+lTKN0OLs7n5z6pEU
        UZX0GCPevZfhOn/FLrxwHbp9a4/4o6J/Z+pTNtAV5W2gDA6813fwxtzB4YQd97H864Zy5oI9GnTcarOl
        kIVSWPArjdauJ9QuWijz5A4HPJrrL4boipzz71z19cWulQmV1APYDqa5nKx12bKVh4aaQDe21fbip7zw
        PZywsfOcOepJFc5Dr+t+Ib82ulMLG36Gdhk/hXM+J49Q0q/1CHUpNRv8ptty1y0YUnpJgfe78dK0hCUl
        e9jOdSMXazbOiuPC0trOfLuEcD0wcVp6ZLd2zhHYtzgsTWf4N8Kz6xpOoauu/TEDg26eYxQnHzKNxyR7
        1e08XcjskqHzI+DkcN71nUjKPW5rSmpp6WsdzpFxlVJzjp1rbZmaEnccH1rm/D6lyFBxXYpaMIQxI5rJ
        G5xet3LRBkG4k5xiuOvoLi7jKtL5UK8kscAV2muW8lxO8cS/d5JrC07QG1S+xqp8uzVsLGWxvI9R2FVB
        OTsjObsrnOWNl4cV8ahrkCydMCQDFdXp+meHZo1Sz1SOT0KSgmvNvFOkXOg67cJbabaSFrpZ45pYN4wp
        yqrngqc4Ixziuq8O+BrS48MS3V/bm1vZXMsZQbGGfbsuegrp9kukjl9rK+sDq5NIaFf9Fmyo5GK09Cml
        hJjmG1jx7H3rz/QY9e026EEhdogerZKMP5g16Hpr/aNrMDuHYDNYc3Rm/L1OhWPdGeO1fN/xB0zyvHN0
        APvSbsV9I2+7YN35V478WdLI8T292OPNwv4gVpRlyswrw542Nv4TeFon8UWV1ewK8RVZER+h5wa+sYwA
        gAGABwK8G8HDdHpU9umZY12AfgK90sGLWkRbO7aM56114WTknc5sdBQlFLsT0UUV1nCFFFFABRRRQAUU
        UUAFFFFABRRRQB4X8df+RutP+vFP/RklFHx1/wCRutP+vFP/AEZJRQB6n8Of+Se+GP8AsF2v/opa6Gue
        +HP/ACT3wx/2C7X/ANFLXQ0AFFFFABRRRQAUUUUAFFFFABRRRQB8t/HLTiY7vYvzQzHoOmTUnw/AXw5H
        nvzXffE3TEOs3Ec6ZiulDqcd+9croWnf2ZYC2xwGJA9s8V5clZuJ7Sd4KXexLdweZxjNYN3pCs5eVPM9
        ic11YUZxVqG2jkADKDXO1qaxehxlraWMX3dsLDjrirU1tZSBWuZbWXbwDKgYiumm0e1l4eFCPpVcaBZI
        Qy28efcZpptFW7mJBexR7YrNfOxwqouEWpLyKeVQ0youOeB0rqLbT44h8sYX6CqWtBQuxfxp3G9XYw9G
        Ty5k7ZNd4qqbPPtXGWq4kWuyQ4scHOeOKlIs50Woa7kyMk9Kpanb3cJ3KpZR2xWwB+83elase2SIbgDQ
        iX3RwC3JLATB/wAFBq9HLFMeFuJW7ZUCuqmsLeXBMaE+pFEVlHHwIlz16U+Zha/QwobNpWDvFgeg5x9a
        1La0SMHC7c1qw24HIUDHtTZgqngVLuxbFFxtOPbNcv460mG+gtLh1JlimAUDvng5rq5SDULxrIUDYwOT
        mqWxmnaaZN8PLLytSsomX5Sd2PTivYUVUGFAArhPhzpj+ZNqM3A5jjH867yvSwsOWGp5uOqc9X0Ciiiu
        k4wooooAKKKKACiiigAooooAKKKKAPC/jr/yN1p/14p/6Mkoo+Ov/I3Wn/Xin/oySigD1P4c/wDJPfDH
        /YLtf/RS10Nc98Of+Se+GP8AsF2v/opa6GgAooooAKKKKACiiigAooooAKKKKAOa8daL/aulGSFc3MHz
        p6kdxXlcmQzbuor3hhlSPUV4bqkTQ6hPG42srsCPxrjxMUnzHdhptx5X0KTyYNXLaRg3Y+9Z7cnrVmB8
        NyR6Vx2PRgzagYSuFHK46+9WtiKvqRWdazCNQMdale62/Tuam1jYsyHAzniua1SZTM3OSKt32oCNcbsk
        1z6h7q6yxwmanroGxo2CGSRWBGM11pAaz7k461j2FuMIqge+K6i1SNojHjBI61XLcXNZHLzMI92QcDrU
        trcBhgHK1bv7dRkHr0Nc3cBoLgLATls4FS1YaZ0ivnkHtVuFhwT2rj7fWikohuQY3HTPetu2vt68fpQm
        M3GYFM8DiqNyeh70Jc714PFVp5gwPbHrVPUzZAz/ADNT4WBkUH7pIzVfzA43Ctnwtpp1XUwm7bGmHc+w
        7VUE5OyOepJR1Z6ZplvHa2EEMIwiqMe9WqRQFUKOABgUteulZWPGbu7hRRRTEFFFFABRRRQAUUUUAFFF
        FABRRRQB4X8df+RutP8ArxT/ANGSUUfHX/kbrT/rxT/0ZJRQB6n8Of8Aknvhj/sF2v8A6KWuhrnvhz/y
        T3wx/wBgu1/9FLXQ0AFFFFABRRRQAUUUUAFFFFABRRRQAV558UrJIzbXkaBWfKOR3PavQ65v4g2YuvDc
        7Yy0JEg/rWdaN4M0oy5Zo8bDc+mR0p8cgBxxmoCxyc96jDESGvLPZi9TTScrzuFUtT1IQqCWy3QAHqaq
        3E22PPcVj2/765a6ckhThB29zWbd3ZG/NbVmqGfbulGXbnntVee+OnjzPKkkQnnYMke9Jvd+SPfNNfcw
        IyeR2qlGwnNM39J1yKZA8T/0IrQTXFRyS/v16VwN5aEpmBmjlHQqf51mQWGszyHzJtsXdgOTQ0xKSsd9
        rfi6CLbGm+Wd+kaDcxotJpJGWSRQrkfdPYVlaXpkdrEPLT5z1c9WrXjgIyxzx61XLoJSE1i1jvrcr0mU
        ZRx1BrB0jVpIJ2tbr5JUOD7+/wBK3pO+44A71zfiKyLxfbLYZlh5OO471DjbVFqfQ7O2ut0WF5HrT2kJ
        J7Cuc0CdmgUnkEA1ttJhSen1oTuTPQlB6r0rtvhmmbm8k9EA/WuBjbMme1el/DKHbp11Of45No+gFdOH
        V6iODEv3GdnRRRXpHmBRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAHhfx1/5G60/wCvFP8A0ZJRR8df+Rut
        P+vFP/RklFAHqfw5/wCSe+GP+wXa/wDopa6Gue+HP/JPfDH/AGC7X/0UtdDQAUUUUAFFFFABRRRQAUUU
        UAFFFFABUN9brdWc0D/dkQr+YqaigD541OB7W6mgkGJEYqQfaqCSASYb7p616L8WdIEE0WqQjCynZLgf
        xdjXmLn5sivKqw5JWPWpVOaKkXb6LzISFHO3PFYs8sWn2cZlZR8vU9a2LW4UqMnkdRWVrmlx35Cq2VP5
        VzXszsVpGfY+JtNmOyO6iLn+HvWhHqdq/V889AOtVZ/D1ubVIzEmYxhTgdKrppsUXEsLJ6bWIrValwgm
        bdtfWRf955gA5+4a1V1KxRMq+/8A2QpzWBb6baToNskyOAcMJOpPbmr8OiCNAZLuYg9g44P5VXKbeySL
        Ta3GmXFq2wd2IAqlc+JInU7UJ/2QanbQdPwJHLSv7yE//WpVtTInlwRAKO4FFgdONrmDLrusahK0Wl6e
        iRgczXD7VA+gGav6Y1+WK36xFCp3FCTmui0/TkRfnGR1PuaL+FUw/vjA9KymzF26FaygWztI1GNwHSlk
        mLEKAM96hurgMfTFQpJsXJ5NETGozSjbLBBkn2r2/wAK2P8AZ+hWsLDD7dz/AFNeR+ArEap4it45BmND
        5j++O1e5V6OFhZcx5mKndqIUUUV1nGFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAeF/HX/AJG60/68U/8A
        RklFHx1/5G60/wCvFP8A0ZJRQB6n8Of+Se+GP+wXa/8Aopa6Gue+HP8AyT3wx/2C7X/0UtdDQAUUUUAF
        FFFABRRRQAUUUUAFFFFABRRRQBgePLMXvha9QjJRfMH4V88zExuVPTsa+mtWQSaXdoehiYfpXzXqaBJW
        HcGuLFRu0duFlZMpbjuDKcDPTNatrIpUA9ax0bL/AEq3HLlgq8ehrz+XU9FSNTCsjA1Gjjo6ZAOOaajE
        pjPzULJywfitNi076k+LbBXYv8qcqocDblR3LVVaMMwIPIpVi6hs49KLlqcl1NOFbdV4wc1ZjYc4AArM
        t0CEk5IHrV1ZcqFB/SgTk3uX1b5Paqd9iQYOOB0p4YqDnO0fpVKafCkjGT0z6VLVxN2M+WFSxY9hVck5
        wOtWbmb5Tnbx0FVLc75gfenFdDCcj1L4PWYWS7uCOQoXP1r0+uH+FabdMuT3LD+VdxXq0PgR5Nb42FFF
        FamQUUUUAFFFFABRRRQAUUUUAFFFFABRRRQB4X8df+RutP8ArxT/ANGSUUfHX/kbrT/rxT/0ZJRQB6n8
        Of8Aknvhj/sF2v8A6KWuhrnvhz/yT3wx/wBgu1/9FLXQ0AFFFFABRRRQAUUUUAFFFFABRRRQAUUUEhQS
        SAB1JoAhvubK4z/zzb+VfN+uR/O5XrzXuXinxFaWelyrbzRzzSAooRg2OOScV4pqQ3qTjOa4cVJXSR3Y
        WLs2zlXba/WpoJcEFjyfSob2Mox2g+1U45/mIPBHWuPzOpaaHS2sgyPfvWhsVx83JzXMW9yQQN2D2961
        oLrKglhnvQawmaLqFwQRio0l+frj1FRR3Shssev5UssYch0bPrUvyNk0aVvhshu/araIic/r6VipdmNQ
        M7lHeni/Dfd6ep4qkrkynYvXVzsztHHasm7uQ0hC8Adar3t6rOdp6e9ZM94OxqrIwc22Xp7kbioAx3zV
        rS0LODjjNYttunYE/drqNJi5XvmktCX7zPXPhm2LW6j9Cprtq8v8HaoumXpMufJkXa3t710l18RvCNpd
        PbXev2VvcIcNHKxVh+BFejhppwsefiINTudZRWbo2uaZrcBn0i/tr2FThmhkDbT71pV0HOFFFFABRRRQ
        AUUUUAFFFFABRRRQAUUUUAeF/HX/AJG60/68U/8ARklFHx1/5G60/wCvFP8A0ZJRQB6n8Of+Se+GP+wX
        a/8Aopa6Gue+HP8AyT3wx/2C7X/0UtdDQAUUUUAFFFFABRRRQAUUVx/jj4jeG/BsLHVr5WusfLaw/PIx
        +g6fjQB2FQX95bafaS3V7PHBbxDc8kjYCivlLxj+0P4g1GR4vD8EWl2vQO2JJT+J4H4CvKtY8U6zrKyN
        qmp3l0WOSJZWI/LpSuOx7b8VPjpd3dzPpvg5zBZL8r3oGHk/3fQfrXAeB9N1/wAU3Mt1q+taimjhsGNb
        hg1we468L715s027JZiBXsPwf1yG60iTT9wFxbknB6spPUVhXcoxujpoRi5WZ6EI47e3jgt0SKKMbVRR
        gAVWmG5SCOvFWWO4ConXI9681s9FJI5u/gwSBxzWFf2rAll4YdPeu2miEg5GDWLeWYO7gADr7Ugscol9
        5ZKzgqfWrMephcbG4pb+yViysv0OKwLqymiZtp49Kasw5Tov7VT+NpR6FSMCpoteAHViPU8Vw7SSqcMG
        z7U03Z/jZsUcpSZ3jaymQzSD6VXn1xWAWNsdsnrXENcqTwWNTWwlnb5F2j+8apRsS9TpW1NQDySfaprN
        JLpgzDCnkCqunacqOucs57kV1mm2YUA459xUuVhKI7ToOQBx7V0+mRlcZHOPyFUrCy2tuxhR09637WE5
        GRzSKtYuWy/drG8b+C9J8XWQj1OHbcIP3V1HgSJ7Z7j2NdBDHtYVJezRW1pLNcOscUal3djgADvRFtPQ
        mSTWp83RQ6x8O9antLLUZIpkORLbOY96HoSOmfavTvB3x21qwngg1+OLUbPOGlC7JlHrxw1eT+L9eXW/
        EF3eID5TttjB/ujgVkRzZYbTjHevWhflV9zzpxi3ofcvhnx94a8SKv8AZWqwPKf+WMh2OPwNdRX55byJ
        C0ZKsDkEHFegeB/ix4k8L7YUujeWecmC5JcfgeorS5i4dj7NoryHwj8dNB1bbFrMT6ZMeNxO+M/iORXq
        un39pqVstxYXMVzA3R4mDD9KdyWmizRRRQIKKKKACiiigAooooA8L+Ov/I3Wn/Xin/oySij46/8AI3Wn
        /Xin/oySigD1P4c/8k98Mf8AYLtf/RS10Nc98Of+Se+GP+wXa/8Aopa6GgAoopk00cEZeaRI0HVnYACg
        B9FcTr/xR8KaLuWXU0uJl/5Z2w3nP1HFeUeKfj7fTbo/DtjHap086f52/AdBSuNRbPoqeaK3iMk8iRRr
        1Z2Cgfia4HxP8XfCWgKytqAvZx/yytBv59z0r5W8R+K9a8QSmXVtTubj/YLkKPoBxXOSMD3pXL5O56v4
        7+OniDW0kt9HA0mzbI3RnMrD3bt+FeNXM0lxM8s8jySscs7HJJ+tSymq27J4oHaxA/44qEvhsknBGKnk
        xuNMhgedykYBbaWwTjIAyf5UxWKr8HvirOl6ncaTexXdjKY50OQR/I+oqsTtGD93sTUMi8expBfqj6D8
        E+NbTxFbLE5W31FR88DHr7r6iuzAGwYOeOvrXyTDNJbussTMrqcgqcEH1zXo/hb4r3NjGlvrcJu4l4Ey
        HEgHv2NcdXDdYHZTxOlpntUqAjPpVSSEEknBqnofinSNcQHTryORu8THa4/A1qtx6VyuLjudaknsZF3Y
        pIxJ4+lZVzpQZOcNgdq6Z4iTwaiaBmyCPyqGizgbvSn3HKcdj61mTaTIT/qv0r1FNNDE5XINOGiIxyBS
        vYLHlcGiNnlTu+lb9joxVB8pH1rv49IRR9wVZg00qAu3j6U7tisc1p2l/dYrlsda27ez2cYz/SteOz2A
        YIx6Yp6QlXJxj+tINiG3hPHy1qWkPQ4qKJCCMDrVHxB4p0jwxbeZql0qSYykC/NI/wBF/qapRcnZEykl
        qzdkKRRu7kKqjLEnAA9TXgfxX8frrDtpOkSZ02Nv3koP+vYdh/sj9ax/H/xJ1HxOWtrcGy0ztAjfM/u7
        d/p0rgSxJ65Nd1HD8vvS3OOrW5tIlkS5PXk1KJNo9DVRSFGT1p6nJOcfSuo5rltX96cr4we1VVbsTUgP
        Ax2oA0YJvXrXW+DvGOqeGbsT6XdvCSfmTqjj3Xoa4MP3BOKlWYg980D3PrDwr8cLC7SOPXLVoJDwZYPm
        X8jyK9U0bXNN1qAS6ZeQ3Cnsrcj6jrXwBHeOp4Yg1raZ4kv7CVZLS6lidecoxFFyHBH31RXyj4Y+OfiD
        ThHHfNHfwjqJR82P96vWfDXxu8OaoUjvxLp8p4Jf5kz9RTuS4tHqtFVtO1C01K2W4sLmK4hbo8bAirNM
        kKKKKAPC/jr/AMjdaf8AXin/AKMkoo+Ov/I3Wn/Xin/oySigD1P4c/8AJPfDH/YLtf8A0UtWfEfiXSPD
        lqZ9YvobZcZCs2Xb6L1NeHat8Y4vD/gLw9pPhzZPqSaXbLLOwykJ8pcgDu36V4PrmvX2r3sl3ql1LdXL
        nl5GyaVylHue7+M/j7PIzweFrVYI+n2m4GWP0XoK8d8Q+NNY1uUvqup3Nwf7rP8AKPwHFclNcluM8elQ
        M5J4pFKyNJ9QJBAqB7x2/iJqkOtNyQeODTGi0bg9yaY0pIqDOenegGgB7sc98UZyOO9RsfWkzx2pDFbq
        ai78cfSnOcjOajzhvamSNODULKyj5en92pzx6Zphwe9AyFQsg+XIYdjTHiDHkdO9TsoJBA5HINIC6kdG
        HvwaAIVVlKsjMCOhBwRXSaV408Q6YqpDqErxr0SYCQfrzWCGQ9Ttb0PFSbT060mk9wTa2Z6Vp3xbuFCj
        UtKhlx1aFyhP4HNdRp/xS8PzlftMd5bHvlAwH5GvC+B1Uj6U7A46g+9YvDwl0No4icep9Nab448KXIwN
        Zt4z6TBkP6itpPEfh1/9Xremn/t4UV8k7RgkGkMf0rN4OPc0WKkfXn/CQaAo51nTgPX7Qv8AjTG8U+HF
        GW1zTse04r5F8oAjPTrThHj+LFL6pHuP6zLsfU978QvCVqCTrEUhHaJWc/oK5rU/jDoVupFha3d4/YsB
        Gv65P6V8+eUMZLH86VUUdB+ZqlhYIh4iTPR/EHxZ17UGZbJ49NhIxiAZf/vs/wBMVwNxeTXEzyzSPNK5
        yzMxZifcmoME/SnfKh9T6DrXRGCjokZSm5atgOT81OyFYjqaTk8fdHp3pyrjjAxTJFB5znJp6tz+FMJw
        SDSjnHSmBLninA8f1ph5pwPHIoAfnijd3ph6UZpAO3U5Hx7VH+VBPOKALCSEd6sRTspGGqiDxTlbnNMD
        tPC/jDVvD92s2l3stuw6hT8p+o6GvoP4ffGuz1MxWfiJVtrg4AuE+4x9x2r5MWQg8VctrtkIweaQmk9z
        9C4ZY54klhdZI3GVZTkEU+vlj4Q/FS40CePT9VdptLc4OTkxe49vavqGzuYby1iubWRZYJVDI6nIIppm
        bVjxH46/8jdaf9eKf+jJKKPjr/yN1p/14p/6MkopiPlmC4JsrcE9I1H6CoZJMtyeKqwSf6NCPRB/KmyO
        cE0jQsOeaM8E1CHDIGHcZpzNhQM0AOyQeKG59zUanj2pWxn3FA+gA89sU7OeOaYOemM0jHn3oAeTigHH
        UU3PHtSelABxnmkYZGRnFLnnFBPBA/8A10AM4puP8inrx0/Gmkc9DQAg6UnXilx3pDwOlAxuM9aRVAHy
        5X3Bp3X1pM8c0AC+YDwwOOxFKHcdUDfQ0BqUEHpQIbv55jajzFJ4V/yNKfxpOev60DDzBg5z+RpRIMcK
        35UAcmgdcZwKAF8w9lP48Ubn44VT+dBA9TThx6UABBI+YnHpSqMDgYFHbjrQecA8UABOTxTt2BTO4xTj
        054oAdkZ+YZB709eB71GB0FSDnk0gHg8Uueuc0meKQn86YDx60hOTSDjIOaO/OfwpAOzxSetJ1POMUp7
        0wFGacp9aYPelHWgB2aerkGozwPalU0CL9vOUYc9Pevcvgh8TW0W5TSdXlLaZM2EYnPkse/0rwIMRzVy
        0uWRxzigHqj6b+OLrJ4qsnjYMjWCEMDkEeZJRXgmr+N9TCWEEkokW3txEhbkhd7ED9TRRczaOAj/AOPe
        HH9xf5UpOR9abDzbR4/uD+VHTmgsbatmMj+6xFTyH5ADVW1P7yZSP4ganlIxjPFDBD4ySKc3IpqYwO1O
        PT1oGIp9KGximjv3FDAlfSgBQeKAeKMDFDHGDigBeM8A0AcU1Tk04jj1oAYRzijnPvSnHT1pMZ+lACHp
        zSHnvxTiMDP8qawx14oGIcjg0nX6UdqUcDvQA0dCSOaD707HPcCm49uaAAHFGcUHp0paAEJz34oGCOtL
        il6DnrSuAg56U7r6Unfge9PFPcBOec0qjJ9c0mc048npQAdzTgeOaaARS4I96ADOB7ml6Gk79KFPzdM0
        ASnp1o7kUwGlU8/yoAkH50fU0gPIzS96AAcD+tO/L8qQDNOPAFADT16UA/Me1L070zJzQBK/C/Wo91SH
        mPOarkgHk0CLacqfamo+Gzxmi2bLEe1MHLUAN1N90kR/6Z/1NFQ6lIRLGBjhMfqaKCWVrZiYEJ6gAfpT
        +/sajh+WOE9dyAfjipOo7ccUxor2xK30inoRmp5DzjvVdPl1Mj1Wpm5l6d6TYImTjmpD931qNOvpT26d
        aBjBjPGc0r9frSdzTj1FAC+lHX6UD6fnScZoABxxSk/h7Umc9qa3TrQAtIeM9hRjABI4pcDHtQAnrTSc
        +1O9+1Nb1FAASB+dIc05sY9aPfvQA0Dj0opQcmg5P0oGIfSkFOOGHYUY/A0ADdMYpp/HinE/L+FR5ORk
        0BckHUAfWlHTvSDqOKfgZ7UAIetJ0+lO244zQOBz/KgAGRQM46Gjt6CggnpQAuP/ANVApO/WnD5vp6+t
        AADSjnoBSDrzThxQAoOD3p2eaaPvZp3G3rQA5Txz36049+tNX8KUH25oAcegqNjjjGaf60yTp70AKjfu
        2Htmq7n5vanxth8evFROMEg8kUCLdseeD2pISMbutMtWyw6c0isFQZGQOKAKupEecmCPud/qaKjvxmVC
        2Mlf6mimSwjG61THXaMVNH82Djhh+tRQZ8iLnjaKepKZGO+4GgZWIxqMZ9UNS/8ALUnNNmXF9CwPynPJ
        +lJKcbj68UgRbhPyZ9eaVjz7UgOAARRnPf8AKgYpOaXvSd+aGxn2piFH4UYx05pvA6Ypc+9AxfpSAf8A
        6qM8UGkAY5zQOCeKF4HJo4zjNACH8aQ9PenH60z60AHHrS4ppHfNL9fzoGAxg9KUj86aMEE9KXtQICOc
        DrQc85xR1PNBzjofegAzkAdaaRxj1pT6c5NJnp05oGO6AcUAnvSHgetGfbigRJng0gpg7Y4p4yMd/wAK
        Bi9/5Up46dPrQfccUYxQIb1bOcU9eSOw9aUAHrwKAvf9KBh69KdgEZApMc0KDn2oEhQM0KCOaOc9RSjn
        rQAoPTpT85FMHXApxPtzQA4daQ8jrQeRk0negZXclWHHemz/AHlbsw/UVNKu4e4qCQ/6Pkg/IRQSTWfL
        rx0qMsGcY4A/nS2DYJJ7c1Xt2JOT3OTTEGo581P93+popdQ5lQ/7P9TRQJkVg4aBOe2KlkOzBPQenpWZ
        p0u1ih6da03+ZMjqaBojLAvEf7rEfpUNyf3ka5PLim20habyyACDRcH/AEuAZ/jzQBose1IDkj1pu75j
        ilB5pFD+vSj14pgznkU9aYgpRnHek60YyMZNADlByRx9KXGaYCfelJIHoaQwOOOPzpGx360Hng0g4HA6
        UAIcUdjk4pW69KRRmgYh780Zz1NHTg045xk9KAE56CkA5xxn0pTx603cOwFAhe/9adx24pnUnOKB0xmg
        YrY9MikA4zwDSMTkUhJI5oEPJzn+lIORg00k4x6UA++fagY8c9ulOyO/akBzz/WlHJH86AFIJ75NOB9T
        TASOR+lOz3NAhwpygGmKAcYOKkU/SgAPPPOKAOD1ppc5wOlJkk8kmgBxPNKB0IpoJ5znFLnjtQA8daAe
        RSe5o/QigBxPHrStnpTScHg/nQCCOKAGZAOD+NRuuVdf7ykUTjjI/Wo4JMlQeuaYhbQ4gLeo9ahj4fBP
        ANPhO2JV/wBr+VInVfegW4moECVP9z+poqDUSWuOvRcUUCsUJUMJjkXowH8q0IJD5QYc+oppjE1oq+ij
        +VVLOTypTHJx2oQbEkjp9qjkTIycMKWRs6hF2waiv1KTI4+6aVW3agp9B/SgDQVvm4/Wnq3INQxk5JNS
        xjPWkWyZAQacOppm7FAY4HTFAiTjJ9e1Geg4zTSevNNJz3NADskmk780DBPHPFHb3NABkeuDQAOmaUDH
        oaQcngc0DFbA6U3tStn1pOnTNACN9OaOeDSFhR1PNACk8d/zpOgxR0Gc0Eg9qAGn26Uo7UnPT9aTPegB
        W9KU9MimkkjJND9OG5oACeDtzR1PNGcdKMfSgB/IpST3/CmjOfzpw6dCD60AGQeOelOzyMCkIGSMilPt
        QFx+MY7UoPGDmmhjzS7jigB6kEdORRt9DTAVFKDnofwoAXPODnFBwCNuaNx5pCQR0xTAfk854oJx3pgJ
        IxS8+31oAd3Gf1pOh9jRk7aQnmgVxG5DAVnxPtuQD61fY8jHToax0kH2kc96BNmjF/q2OeQT+pp8eBub
        sB3qrCcwgjgs5b8KnbAVV4OetMSKl0DvUnqVyfzNFLeDMin/AGf6mikDGwSAxp6gAYqC/h6Sx/jSupjS
        ORf7ozU0MiumG6GkPfQqtIJbYhvvLTLVs3AJ9KkvIPL+ZeneobT/AFw+hpk9TThzt+nepS20e9Rodq1C
        8m5sDk+9I0LSMWFSr14qGLISpFHGe1AiTOB1596U4PPFNx06Cn8Y60AIBj6UDjpSEjoDSEqKYC9R1pQA
        SaaWxxwKRSfxpDHMRSHnJOeaQk9qTdxz1oADgHjNKW4zzTSQPag9eB7UAKRkCmgfN39aUudvIpu7B9qA
        F4zg44pv4UEg9OR1oBwePxoADkUAjHPNITnuBTc88GgY4njJoHTtSE9zjHvSZ5yKAJlPHX8qdnjHNQKe
        ccdaeG/woEP55wRTgPpxUasc08dcD9aAHjAODxRySOc03II/GnAc5z070AKFIHFLgg84/GkJ75pOec0A
        KcZOO1L9KaeaXPHWmA4cgUE9s5FNBGM55oJx06etADu3NC88Z69qaCcZpAxDAigQ4nketYKH9+/sSBW9
        Pwc+tYFtk3LHtmmSzSjUKgOOFGKkjPcnmq80uQqKcmpkIA9qARDeZaRTx93+popLtvnUA5wvp7migQ6N
        Q0CZ6FRVIjyJyp+6elWYHzEo7ADNJdx+ZESOq8ikVuSbspyM/hWdEQLk4GBzVq0l3jnqKrToY7nkcHkU
        CfctSS54BpkILHPOKiHJPNWrcDIpFblsZC4zxSgjBwx9KiJz609cYzzxQBJkgjGM/WnA8daiByaecigB
        xOBwOKT6CmcZ9acOO9ADhkDtSBjnimFvypQ3pmmNCnPHr9aaxwfagk45z9Kb1GaQBuOO9O3sMc/hTcnH
        emk4oAcW45FAPem+/WjOBnt0oAM88AUoPHvSE8kUgJ57UADf5zSHGe30pCc9/wAaQnnrzQAvVeo+lApO
        54pvIPpQBIpAPSnqM+nSohg8np7U4Nx17UAPHTginhvT0qMZOM/hS5xjnIxQBKHweTShsDnkVF1ORQW9
        fwoAm3E45yKMnjA4/lUYJ60oJPXkH3oAkBwKOo68U0HHT9KD75zRcLD+3X9KMkd6QEDryaTvxxTEx+eu
        T+NRSEhcjBqTccEGophlTnFAiSWQG3DnqvWsCBiCx7mtKRibGcD0rLixuAOMUyWXrUEnzG69qn3hmwMZ
        HFV/M2JhV5NSQ8Y3H3oGJdYDrj+7RTbojzBj0opCGAGMKw4BAqeGTcuP1FQKwkhC57YqNGMZwaCrhOhg
        mDr91uafdYe3V+4qSQCeEjPzDkVVjf8AdtG/60CYQ/NV6I4ZQPSqEDhA2atWuWJfpxSY0yx346VKDgc1
        ADyM1ICKBj1Pc0obH/66YCMe1KDQA4txRkevWmk5HIPHpTc88CgCToOgpAwzn0pm7/ZGaTd69KAJCeM4
        OKZu/Ck3fiKZnIxwaYDw3H1/Ck3ep49KbkkdBikb0HpQHmOdiAMUcDqcUmeOn0oyAeRn60APyccZP1pp
        6ehpO/XAozk9elAxw6EjnFJ1Jxx6Ud/b1pOh9qQC57kUwjnmnd8Yx+NJ6UAAPbt6U4E+tNHGecEUvbPU
        0wHAngdvelDc8kcVFnBIyPwpScHj1pBcl3YXgUhOPUGowcg0pIznr9aYiVWY9Pzp6n9KiDcdelLkdRz9
        KQ7k+c+lJ360wNxyBSgncDj8KYNkignvkUE5AHQUgOMelLnJGenagQM2MUkmQPYilcApnNNQ74SD1FAm
        U4iNzRno4K1mx8Sc9qvO2y5HbmqOfnY570yGWk+ZiSelTBguPWobeN5ABGhb37VeitkBzO2SP4R0oKRS
        nJLjAPSirV65Mi7VAG3j8zRSFcgFsCiNE3zbQSDUE6uBhgasxuBGnIHA71KJVxglSPegdjNilKmluSrN
        uXqetWpI7d+TgE/3TVSeNUPyPuFAmRLya0oiBb89+KzR1q/uVUVQRwPWkxxJU4NS/TFV42XPLL+dTB0x
        94fnSLHcDtT1OQfTHeoGdc/eX86fvXyxhlyfemIHbGaQNzUW8N/EB+NODKO6/nQA9mz1xSMT2/nTWcH+
        JfzpN685ZfzpgPBx9T2pPfgio/MXJBYUhcZ4YD3oAkViBxQ2MdKjEi9yCKQOufvDH1oC5IvJx6UoOW4F
        RKwH8Q/OnBx3I/OgCVe/r0pM+hpodQc7hx70oZc/fGfrQMcP8ihjkdzn1pokUjlh+dJuXnBX86QhV+Yc
        ijgjpTdy5+8MfWjeoz8wpgOGCDil55I703cmB8y0m4Z+8v50AO4zzj3pV6VHnGcMv508MO7j86AFxkcU
        ZO3I4HemlgepX86aWB5DL+dAiUvx0oBGR2JqMMOzj8aPNXn5hQBOPlHXinBiCPSq4kXGMr+dSBkOBuUD
        60DLL9AR6UmQSOKhkdVwNw4HY0JKpJ+ZfzoEWcAg/wA6ZHw/qDTkkQoRvT/vqoxImfvL+BFAyhqY2yAj
        vS2SQ7QzIXf36UmqFWZCCD16Gi1f92OVH40yOpeMhxtX5R3poPHHWo0255cfnUhkiQfeX8DQMq3TuZBk
        HgUVLcRSSMrKo2lePmHqaKnnj3HyS7H/2Q==
</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
CEO Gravi Information Technologies and Consultancy Ltd
Turkey Turkey
Currently, also an MSc. student in Technical University of Munich, I develop practical application in computer vision for more than 5 years. I design real-time solutions to industrial and practical vision problems, both 3D and 2D. Very interested in developing algorithms in C relating math and vision.

Please visit Gravi's web page (http://www.gravi.com.tr) and my page (http://www.tbirdal.me) to learn more about what we develop.

I admire performance in algorithms.

"Great minds never die, they just tend to infinity..."

Comments and Discussions