Click here to Skip to main content
15,895,256 members
Articles / Programming Languages / C#

Fun with Physics: Implementing a Physics based layout manager

Rate me:
Please Sign up or sign in to vote.
4.93/5 (28 votes)
8 Dec 2007CPOL10 min read 83.7K   854   76  
An article on how the use of a simple Physics implementation can liven up a WinForms UI.
<?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="picture.InitialImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        Qk3qlwAAAAAAADYAAAAoAAAAYQAAAIUAAAABABgAAAAAAAAAAADEDgAAxA4AAAAAAAAAAAAA/f39/f39
        /f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39+Pn/s7jlCxJRKCt1HiJzIiSCGyCD
        Gh+GHSaOGSKKGCOLFyWLGSaOGieRHCeWHyaZHiecHCSbGyWbHiieISuhICqgHiieHyihIiukISmkISmk
        ISmkISmkISmlISmlISmlISmkICeiJC2mHiahISylHSihICihLy6sHx99prLO6vj07fLz9ff47e/w8vf2
        7vP08fn47Pf18Pj39fj99/n6+fvv9fzv9fv67vT/RUWRMjKeJCehICijISyeHCqaHyihJCqnKCiqHyOJ
        UVuL6Pb/8vn0///7//3///j///79/v/6/P/7+v/+/Pv//Pz///79///6/v/9//39/f39/f39/f39/f39
        /f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/fj5/77D8A8WVSgrdR4icyIkghsggxofhh4njxki
        ihgjixclixkmjhonkRwnlh8mmR4nnB0lnBslmx0nnSIsoiAqoBokmhsknSEqoyEppCEppCEppCEppCEp
        pSEppSEppSEppCAnoiQtph4moSEspR0ooSAooS8urB8ffaq20ur49Ovw8fX3+O7w8fL39u3y8/L6+e34
        9vD49/X4/ff5+vr88Pb98PT6+ezy/z8/izExnSYpoyAooyArnR0rmyApoiQqpygoqhwghlxmlub0//T7
        9v//+//8///5///+/f7/+vz/+/r//vz7//z8///+/f//+v7//f/9/f39/f39/f39/f39/f39/f39/f39
        /f39/f39/f39/f39/f39/f39/f39/f34+f/O0/8WHVwnKnQdIXIjJYMcIYQZHoUdJo4ZIooYI4sXJYsZ
        Jo4aJ5EcJ5YfJpkeJ5weJp0bJZseKJ4jLaMfKZ8WIJYXIJkgKaIhKaQhKaQhKaQhKaQhKaUhKaUhKaUh
        KaQgJ6IkLaYeJqEhLKUdKKEgKKEvLqwfH32uutbq+PTq7/D19/jw8vPx9vXt8vPy+vnv+vjx+fj1+P33
        +fr7/fH3/vHz+fjp7/85OYUvL5snKqQhKaQhLJ4fLZ0hKqMjKaYmJqgcIIZpc6Po9v/2/fj///v/+v//
        +f///v3+//r8//v6//78+//8/P///v3///r+//3//f39/f39/f39/f39/f39/f39/f39/f39/f39/f39
        /f39/f39/f39/f39/f39+Pn/3eL/HCNiJilzGx9wJCaEHSKFGR6FGySMGSKKGCOLFyWLGSaOGieRHCeW
        HyaZHiecICifGyWbHiieJC6kHiieEx2TFB2WHyihISmkISmkISmkISmkISmlISmlISmlISmkICeiJC2m
        HiahISylHSihICihLy6sHx99sLzY6vj06e7v9vj58PLz8fb17PHy8/v68Pv58vr59vn++Pr7/P7y9/7x
        8ff25uz/MjJ+LCyYKCulIyumIy6gIS+fIiukIiilJCSmHCCGdX+v6/n/+f/7/v/6//n+//r///79/v/6
        /P/7+v/+/Pv//Pz///79///6/v/9//39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39
        /f39/f39/fj6/+ju/yMqYyUpcBoecSImhR0iiBUehRojihcjiBgkiRkkjBslkBwllB4mlx8mmR4omiEp
        oBwmnB8pnyQupB0nnREbkRIckh0nnSEqoyEqoyEqoyEppCEppCEppSEppSEppSAnoiQtph4oniEspR0o
        oiAnoi8vqx8ge7K92+r39eju7fb4+PHz9PH19uzy8fP7+vL9+vP7+vb5/fj6+vr99Pb78u729eTq/ywt
        fikqmigrpSQspyIvoyIwoSMspSEnpCMloR0jhHuItO79//r//P3/+f72/f/6///+/f7/+vz/+vr//fr9
        //z8//7//f7/+v7//f/9/f39/f39/f39/f39/f39/f39/f39/f3+/v7+/v79/f39/f39/f38/Pz8/Pz4
        +v/w9v89RG8fJWgZHXUeJosSHIcVJIgUJIQXJoMYJoYdI4wfI5MeI5YgJJofJ5geKZkdJpseJp0iK6Ad
        JpskLaIYIZYIEYYoMaYiK6AiK6AiKqEiKqMiKaQiKKUiKKUiKKUjKqUbJZsdKJoeK58eJ6YmLKsoKqAf
        IXm9x+nj7vL2/fjx9fDw8vPu8fXt9PHw+vTv+vfv+PX4/v3w8vL6/Pz0+ff0//3M1PEkI38pJ6IkKaQb
        JqAiLaYhLKUfJ6IjK6QkK54XIHeKmr7v///w9/L7+vb/+//98vz//v3///j8//f6//r6/f/6/f/6//38
        //v+//3//f39/f39/f39/f39/f39/f39/f39/f39/v7+/v7+/f39/f39/f39/Pz8/Pz8+Pv/8Pf/SFFz
        HCNiGB92GySMDxyIFCSIEyWCFSeAGiaEHSOMISKUICGZICSaHyiXHimYHSabHiadIiugHSabJC6gGCKU
        CBKEKDKkIiyeIiyeIiqhIiqhIimkIimkIiinIiilJCumHCacHiqaHy2eHSamJSqrKCueHyJ3vsft4+30
        9Pv28fbt8fL27/L27vXy8fz08Pv48Pn2+f787/Tz+vz98/j58//+xM7sJSKFKianIimkGyafHyymHyym
        HiahIyyhJC6aEx5unK7N7///9Pv2/fv6//r///T///79///3/P/3+v/4+f7/+f7/+v/+/P/7/v7+//39
        /f39/f39/f39/f39/f39/f39/f39/f7+/v7+/v39/f39/f39/fz8/Pz8/Pj7/+/3/1pjhBkgXxgfdhki
        ihAdiRMjhxQmgxUngBomhB0jjCEilCAhmSAkmh8olx4pmB0mmx4mnSIroB0mmyQuoBgilAgShCgypCIs
        niIsniIqoSIqoSIppCIppCIopyIopSUspx0nnSAsnB8tnhwlpSQpqicqnSAjeMLL8ePt9PL59PD17PLz
        9/Dz9+/28/P+9vL7+PL7+Pn+/PT29vv9/vP4+fT//7nD4SUihSolqCIppBsmnx8sph8sph4moSIroCcv
        mhAcarjK5/H///n/+//++v/6///5///+/f//9/z/9/r/+Pn+//n+//r//vz/+/7+/v/9/f39/f39/f39
        /f39/f39/f39/f39/f3+/v7+/v79/f39/f39/f38/Pz8/Pz4+//u9/9zfZsYHVoaIXYWH4YSHooTI4cV
        J4QXJ4AaJoQdI4whIpQgIZkgJJofKJceKpYdJpseJp0iK6AdJpskLqAYIpQIEoQoMqQiLJ4iLJ4iKqEi
        KqEiKaQiKaQiKKciKKUlK6geKJ4hLZ0gLp8cJaUjKagoLJ0iJnnH0PXj7fTw+PHw9ez09vfy9fnw9/T0
        /vjy+/j1/Pn3/Pr3+fn6/P3y9/r0//+os9MlI4crJqkiKaQcJ6AfLKYhLKUdJp8hK50nMJgSHGnV5v/q
        +vn7//v///z/9f//+v///v3///j8//f6//r5/v/5/f/8/v78//v+/v7//f39/f39/f39/f39/f39/f39
        /f39/f39/v7+/v7+/f39/f39/f39/Pz8/Pz8+Pv/8vj/k5u4GBtYHyR5Fh2EEx+LEiGHFSeGFyaCGiaE
        HSOMISKUICGZHiWaHSiXHSqWHSabHiadIiugHSabJC6gGCKUCBKEKDKkIiyeIiyeIiqhIiqhIimkIimk
        IiinIiilJSuoHymfIi6eIC6fGySjIymoKS2eJCh7zdf55O/z7vbv7/Tr9ff48vX57/bz9P748/r39v36
        9fr4+fv7+fr+8PX48///lqHBJSOHKSepIyqlHCegISylICukHSedIyucKDCVHCVu6fj/6ff1+//5///8
        /fP///r///3+/v/4+v/3+f/6+f7/+f3//P7+/P/7/v7+//39/f39/f39/f39/f39/f39/f39/f39/f7+
        /v7+/v39/f39/f39/fz8/Pz8/Pr7//f8/7G40xcbViUpfBYbghchjRMhhxcnhxcmghomhh8ijh8jlCAh
        mR4lmh0olx0qlh0nmR4mnSIroB0mmyQuoBgilAgShCgypCIsniIsniIqoSIqoSIppCIppCIopyIopyQq
        px4oniIuniAunxojoiMppisvnygsfdTf/+by9Oz16+/16vb4+fL1+e708/T++PL59vf8+vT39fr8/Pf4
        /O7y9/P//4OQsCQkiCooqiMqpRwnoCEspSIsoh0mmyQrmigukSszeez6/+r49P3/+f//+/30/v/6///9
        /v7/+vr/+Pn/+/n9//r9//z+/vz//f7+/v/9/f39/f39/f39/f39/f39/f39/f39/f3+/v7+/v79/f39
        /f39/f38/Pz8/Pz6/P34/v/Kz+gZG1UoLH0WG4EYIo4SIIYXJ4cXJoMaJoYfIo4fIpUgIZkeJZodKZUd
        KpYdJ5keJp0iK6AdJpskLqAYIpQIEoQoMqQiLJ4iLJ4iKqEiKqEiKaQiKaQiKKciKKciKKUeJ6AiLp4g
        Lp8aJKAjKaYtMp8rMH/a5f/o9PTs9urv9er3+fry9fnt8/Lz/ffw9/T3/Pry9PT6/P3z9vvq8PXx//92
        gqQkI4ooKKoiKqUaKKAhLaMiLKIfJpkmLJcpLYw9Q4bt+//v+/X9//j///v/9v//+v///v78//r6//j5
        //v6/f/6/f/8/v7+//3+/v7//f39/f39/f39/f39/f39/f39/f39/f39/v7+/v7+/f39/f39/f39/Pz8
        /Pz8+vz9+v//1t3xGx1TKy9+FxuBGyOOEiCGFyeHFyaDGiWHHyKPHyKVICGZHiWaHSmVHSqWHSeZHiad
        IiugHSabJC6gGCKUCBKEKDKkIiyeIiyeIiqhIiqhIimkIimkIiinIiinISekHSafIi6eIC6fGiSgIyql
        LjSfLTOA3ur/6vf17Pbp7/bp9/n68vX67PLx9Pv28PXz9vv58PLy+vz98vX66O718f//bHqeIyWLKCes
        IyunGiigIS2jISugHyeYJyuUKi2ISU6N6vf/8f72/P/2///7//j///r///3//P/7+v/6+f/7+v3//Pv/
        /v3//v/9/v7+//7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/vz+/vj9
        /u3z/zQ1aCAicBocgBogixUhhxcniBclhRolhx8ijx8ilSAimB4lmB0qlB0rlR8pmx8nniMsoR8onSUv
        oRkjlQkThSkzpSIsniIsniIqoSIqoSIppCIppCIopyIopx4koR4noCIunhspmSItpyEpoigul0JIk+bz
        /+j28uv25vL57PT29/H0+fD29fP69/f9+PX49vf39/z+//Hz++30/e7+/1ZjiSYpkSQlqx0noxwqoCEu
        ohoklhsikS0xlyYnf2tsqPP8//f/+Pj97v//+P/7///3//79//r/+/n/+vn//fr8//z7//79///+/f//
        ///+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v78/v76//7x9v9AQnIi
        Im4eH4EcIo0WIogaJ4kZJYUcJYcfIo8fIpUgIpgeJZgdKpQdK5UfKZsfJ54jLKEfKJ0lL6EZI5UJE4Up
        M6UiLJ4iLJ4iKqEiKqEiKaQiKaQiKKciKKcfJaIeJ6AhLZ0bKZkhLKYhKaAmLZRKUZrm9P/o9vLr9uby
        +er09vbx9Pnw9vXz+vf2/Pf2+ff39/f8/f/x8vzt8/7t/f9QYIUpLJUkJ60fKaUdK6EgLaEYI5MXHoss
        LpIjInh8fbX0/f/2//P8/+////n/+v//+P/+/f/6//35//v3//36/P/8+//+/f///v3//////v7+/v7+
        /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/f/+9fj/V1eFISJsHyCCICSN
        GSKJGyiKGSWFHCWHHyKPHyKVICKYHiWYHCuSHSyTHymbHyeeIyyhHyidJS+hGSOVCROFKTOlIiyeIiye
        IiqhIiqhIimkIimkIiinIiinICalHyeiIS2dHSubICukIyyhIyuQWWGn5vT/6Pbw6/fl8vnq9Pb28fT5
        8PX28/r3+Pz3+Pn3+vj4/v3/8vP97fP+6Pr/Rld+LTCcJimwICqmHiyiIC6fFB+OFRuGKCuNHhxumZrN
        9v3/8vzs///x///4//b///n//v3/+v/9+f/79//++vv//Pv///3///79//////7+/v7+/v7+/v7+/v7+
        /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7//fz/+/j6/3NyniAfaSEggCAkjRghiBwniRsk
        hRwkiR8hkR8ilR4imR4lmBwrkhsskx8pmx8nniMsoR8onSUvoRkjlQkThSkzpSIsniIsniIqoSIqoSIp
        pCIppCIopyIopyEnph8noiAsnB4snB4poiQtoh8njGx1ueb0/+j37+v35fL56vT29vH0+fD19vP69/f6
        +Pj59/r4+P37//Ly/u70/+P0/TxNdC4xnSUorx0ppR8toyAunxMfixMZgiosihwZaLq56/j+//H56P//
        8f//9/30/v/6//79//r//vn//ff//vr7//z7///9///+/f/////+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
        /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+//38/vj6+/+Oi7geG2MgH38gI4wXHoUaJYcbJIUcJIkfIZEf
        IpUeIpkcJpgcK5IbLJMfKZsfJ54jLKEfKJ0lL6EZI5UJE4UpM6UiLJ4iLJ4iKqEiKqEiKaQiKaQiKKci
        KKciKKcfJ6IgLJwgLp4cKJ4mMKIbJIaBis3m9f/o+O3r9+Py+un09vbx9Pnw9fbz+vf5+vj6+Pf6+Pj9
        +//z8//u9P/f8PkwQmsqMJshJawaJqIfLaMjL58UHooWG4IvMIsiHmrX1P/4///x+ub///H///f99P7/
        +f/8/P/6//75//33///6+//8+////f///v3//////v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
        /v7+/v7+/v7+/v7+/v7+/v/9+/33+/3/qKbQGxhgIR9/ISSNFh2EGSSGGySGHCSJHyGRHyKVHiKZHCaY
        HCuSGyyTHymbHyeeIyyhHyidJS+hGSOVCROFKTOlIiyeIiyeIiqhIiqhIimkIimkIiinIiinIymoHyei
        HyubIjCgGiacKDKkFyCClZ7h5vX/6Pjt6/fj8vrp9Pb28fT58PX28/r3+Pn3+/n4+vj4/Pr/8/P/7fT/
        2uz3JjhhKS+aHyOqGCSgHy2jJDCgFB6JFRqAMTKMLil06eb/+v//9f7p///w///2//f///n//Pz/+f7/
        9//+9///+fv//Pv///3///79//////7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
        /v7+/v7+/v7//f7/9v38/7275RoYXiIggCIljhYdhBolhxskhhwkiR8hkR8ilR4imRwmmBwrkhsskx8p
        mx8nniMsoR8onSUvoRkjlQkThSkzpSIsniIsniIqoSIqoSIppCIppCIopyIopyQpqh8noh8rmyMxoRkl
        mykzpRQdfqSu7ub2/+j47ev34/L66fT29vH0+fD19vP69/f49v35+Pr4+Pz6//L0/+30/9fp9BwvWikw
        nRwiqRcjnyAupCQwoBIchxMYfjExiz02f/Xx//b6+/z/7v//8P/+8//7///4//z8//n+//f//vf+//n7
        //z7///9///+/f/////+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
        //39//f7/v/JyO8bGVskI38mJ48aH4YeJYwbJIYcJIkdI4wfI5MeJJUeJpcdKpQeKpYfKZsfKJ0lLKEf
        KZslL6EZI5UJE4UpM6UiK6AiK6AiKqEiKqMiKaQiKKUiKKUhKKcjKaofJqUdKKEmMKYbI5ouNaIWH3at
        uPHn9v/o9+/r9ejw+O3y9vfx9Pnu9vXz+vf3+Pb7+fj6+Pf7+vzz9f/t9P/V4/oaKF0rMp8fJKkYJZ8g
        L6MkMZ8QG4MRFnwwMYlIQ4D49f/y9/b///T///T+/PL//P//+f/8/f/6/v/5//75/v/6/P/8+////f//
        /v3//////v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/P/9+v/58/z/
        4+f/HR5YKid8JiSIGhyIICOPGyOIGiaGGyeHHSiKHiePICeUIyaZIiacKC2gFh2QJyyfISibJCueHCOW
        CRCFKzKnIiqhIiqjISqjISmkISmkISmlISmlHyinICurIiyvGiGmJCmqKCmjMjSYHSRp1d7/4e355/Ty
        7fX07/X07/P47fT37/nz8fz0+/3+8fHx/f/3+//58PT19Pr/u7/vICRyMTOjHyWiIi6kIzSjIjCaBRB4
        HiSNJCZ6b26V9vX/9/n5///7/v74/fz4//7///7//v3//P7+/P7+/P7+/P7//v3//v7+//7+/v7+//7+
        /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/vz//fj/+e76+uvy/yIlWC0s
        fB8cfyIijh4hjhsiiRomhhkohBsqhiApiyIokyUlmyQlnycqnRshkictniMpmiYtoBMajREYjSkwpSIq
        oyIqoyEppCEppCEppSEppSEppR8ppRwpqR4qrhkeqSYmrisppDY1lSguadrk/+Pt9+fz8+309+3z+O3z
        +u309+368vH89Pf7/O/x8vv/9Pn/9O/08/X4/7Kz7SAheTAxoSInoSIvoyIxnyEwlwUTeR8lkB8ic4CB
        nfr6+vn5+f////39/fz8/P////7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v/+/v7+/v7+/v7+
        /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v78//35//jw+vrz+P83O2wrK3kZF3cnJ5Ec
        H4sbIokaJYcZKIUbKocgKI0iKJMlJZskJZ0kJ5ogJpcnLZ4jKZonLqEID4IeJZomLaIiKqMiKqMhKaQh
        KaQhKaUhKaUhKaUfKaUaJ6ccKKwZHqklJqwrKqI1NZM0O3Te6f/j7vbn8/Pt9Pft8/jt8/rt9Pft+vLx
        /PT1+frx8/P3/fL3/fLu8/L09v+kpOAgIHotLp4kKaMjMKQeLZseLZQLF30jJ5AbHGybnLb9/f37+/v9
        /f3+/v79/f3////8/Pz+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7//v7+/v7+/v7+/v7+/v7+/v7+
        /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/P/99f709f/+8/n/ZGaWIyJsHRx4JyaOHSCMGyKJGiWH
        GSiFGymJHiiNIiiTJSWZJCWdISSXIymaJiydJCqbJCueAQh7KTClJCugIiqjIiqjISmkISmkISmlISml
        ISmlHymlGymnHCmrGyGqJSasLCqhMTKNQ0eB4Ov/4+725/Ty7fT37fP47fP67fT37fry8fz09fn69Pb2
        9/3y9f3y7/X08/f/lJTQIyN9KiudJSqkIzCkGimXHCuRDRl+JSqRGBpoubrU/////f39+vr6/////f39
        /v7++/v7/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+//7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
        /v7+/v7+/v7+/v7+/v7+/v7+/vz//fX98/j///L4/5ueyhcXXScogCEhhSAjjBsiiRokiRknhxsoih4n
        jiIokyUlmSQmnCEklyQqmyYsnSUrnBsilQUMfy41qiMqnyIqoyIqoyEppCEppCEppSEppSEppR8ppR0r
        qR4rrSAjrSUnqywrnywth09Ui+Pt/+Pv9ef18e319e3z+O3z+u309+/68vP79PX5+vr8/Pf98vX98vH2
        9/T4/4OCwCcmgikpnSMqpSMwpBkplBsqjg4aeigtkBwfadTV7/////////f39/////z8/P7+/vv7+/7+
        /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v/+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
        /v7+/v7+/v7+/v78//v4//b4//7v8//Nz/cYF1kvL4McHX8hJIwbIokaI4oZJogbJ4weJ44gJ5QjJ5gk
        J5ohJ5giKJklK5woLp8NFIcTGo0rMqcjKp8iKqMiKqMhKaQhKaQhKaUhKaUhKaUfKaUeLKoeK6shJawn
        JqstLKAqK4NbYpTm8f/j8PLp9PHt9fXt9Pft8/jt9Pfv+vLz+/T1+fr9///2/PH0/PHy9/jz9/9ycrIp
        KYcoKqAhKKMiL6MbK5YaKosMF3MpL44nKXDq6v/8/Pz////29vb////7+/v+/v78/Pz+/v7+/v7+/v7+
        /v7+/v7+/v7+/v7+/v7+/v7//v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
        /v7+/v/7/f/5+v/+9Pf/7e7/JSZiLC19HR99ICSKGyKJGiOKGSWLGyeNHiePICeUIyeYJCiZJSucHiSV
        JCqbKzGiAAd6IyqdJSyhJCugIiqjIiqjISmkISmkISmlISmlISmlHymlHiqmHyqqISWsJiaoLS2fKCl/
        Z26f6vX/5PDw6fXv7fX07/T37/P47/T37/nz8/v08/f4/f//9Prv8vrv7/b58/f/YmSlJymIKSuhHiai
        IS6iHS2XHCqKBxJsLTGKNTZ69vf/+Pj4////9vb2////+fn5/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
        /v7+/v7+/v7+//7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7/+///
        +PT69fj7//T1/zM0bCgpcyIkfB8lhhsiiRojixkkjBsmjh4mkSAnlCMnlyQomSctnhshkiMpmi0zpAAA
        cS82qSAnnCUsoSIqoyIqoyEppCEppCEppSEppSEppR8ppRwopBwopiAlqiYnpzAunykrf3B2pe77/+Tx
        7+v27u/28+/09+/z+O/09/H48/P69fL39v3//vL57PD47u70+fD1/1hbnyUoiiktpBwkoCAtoSAwmh0s
        iAYQZy8yhz8/f/j5//X19f////b29v////j4+P39/f////7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
        /v/9/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/vr///j7//n3+f/0
        9/9XWIomJ2seInUiJoUeI4obI44aJJAbJZEeJZIfJpMiJ5QiJpYiKJkfJZYjKZoeJJUOFYgtNKcXHpMp
        MKUiKqMiKqMhKaQhKaQhKaUhKaUhKaUfKaUhLqgcJaQkKKwfIZ4rK5crL36Kkbzs9//o8/Dq9urt9PHv
        8/Tw8/jx9vny+fby+fTw9fT9//zv+Ov1/vTu9v3v9v8+QIc0NpwpLKYiKagiL6MfLpUZJ4AMF2cwNINX
        V5P49//9/f39/f39/f39/f39/f39/f39/f3+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7//f39/f39
        /f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f76///4+/719/r/9vj/f4CsHyJf
        Ki59HySBHiOKGyKPHCOSGySTHiWUHyaTIieUIieUJCuaJSucISeYDBKDGB+SKjGkJy6jKjGmIiqjIiqj
        ISmkISmkISmlISmlISmlHymlIy6oGiSgJCmqJiaiLy2XJyl3m6HK6/f/6PXt6vfp7vTv7/P08PP48vX6
        8vj38/j28vXz/P/78Pns9f707Pb96/T/Oz6IMjWdJCmkHiemHi2hHy6UFiV7FiBtKCt2cnGp+Pj//f39
        /f39/f39/f39/f39/f39/f39/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+//39/f39/f39/f39/f39
        /f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3++v//9/z98/r7//j5/7O23BUXUTg7hh0gex4j
        ihsikRwikxsilR4klR8mlSAokyAokyEolyowoRwikwMJeigvoiIpnC41qiIpniIqoyIqoyEppCEppCEp
        pSEppSEppR8ppSItpxcinCYpqS0uqDAvlyEkb7S74ur0/uj26+r35+717u/08/Dz+PL1+vP49/P49vT3
        9fr++PH67fT98+32/+Tt/zU6hTA0nSAmoxwlpRsrnB4ukhIgciQtdhweZJqYzPj4//39/f39/f39/f39
        /f39/f39/f39/f7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v/9/f39/f39/f39/f39/f39/f39/f39
        /f39/f39/f39/f39/f39/f39/f39/f3//vr///f8/fP9///1+P/e4P8RFUo6PoUbH3gfIoodIZEcIZQb
        IpceI5YfJpUgKJMgKJMbIpEqMKERF4gSGIkxOKsaIZQkK6AdJJkiKqMiKqMhKaQhKaQhKaUhKaUhKaUh
        KaQhLKUWIZslKKgzMqowL5YoKXPN1fro8/vo9urs+Obu9uzv9PLw8/fy9frz+Pfz+Pb1+Pb4/Pbz/O/x
        /PLt+P/Z4v8vNYIvM5wgJqMeJ6caKpseL5ALGmktOHwTFVbBvu/5+P/9/f39/f39/f39/f39/f39/f39
        /f3+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7//f39/f39/f39/f39/f39/f39/f39/f39/f39/f39
        /f39/f39/f39/f39/f39//76///1///0///+8vT/8fP/JytbMTN5HiJ6HyKKHSGSHCCWGyGYHCOWHSaV
        ICiTICmRHSSTJSucBQt8Jy2eKzKlGiGUHCOYKTClIiqjIiqjISmkISmkISmlISmlISmlISmkHyqjGiOc
        JCilMTCoLS2RPkCH3+j/5fH36vfp7Pjk7vbr8fTy8vP39PT68/j38/j29/r49fnz9f7x8Pvx7/r/z9j+
        Ki9+KzGcISinHyqqGyucHi+QCBVjMTp9FhdU29r/+fj//f39/f39/f39/f39/f39/f39/f39/v7+/v7+
        /v7+/v7+/v7+/v7+/v7+/v7+/v7+//39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39
        /f39/f39/f/++v//9f//9f///PHz/fT4/11ijyAkZSUofR8iih0hkhwglxsgmhwjmB0mlSApkSApkSQr
        mhogkQcNfi81piAnmiEomyAnnDA3rCIqoyIqoyEppCEppCEppSEppSEppSEppB0ooR8ooSImoyoqoCcn
        i2Fjqebv/+Lu8ur35+z45PD26/H08vLz9/T0+vP3+PP49vr7+fL28Pn/8+/68vD6/8TP9SYreiovnCIo
        qSArqxwsnR0vjgcVYS85eSQlYerp//n5//39/f39/f39/f39/f39/f39/f39/f7+/v7+/v7+/v7+/v7+
        /v7+/v7+/v7+/v7+/v/9/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3/
        /vr///T///P///v19//0+P+kqtUTF1gqLYIfIoodIJMcH5kbIJocI5gdJpUgKZEgKZEkK5oLEYIbIZIq
        MKEcI5YoL6IiKZ4TGo8iKqMiKqMhKaQhKaQhKaUhKaUhKaUhKaQbJ50mMKYfJJ8hIZUhIoSFh83n8f/h
        7vDq9+fs+ePw9uvx9PLy8vj09Prz9/jz+Pb7/Prw9O77//Xu+fHx+/+9x+8iJncpLpsfKKgeK60cLJ0c
        Lo0HFWEtNnU6O3Xz8f/5+f/9/f39/f39/f39/f39/f39/f39/f3+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
        /v7+/v7//f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39//76///4///1
        ///8+Pv/9Pr/19//ChNMKzOAHiWGHSGRHCCXGyCaHiKYHyaVIimQIimQHiWUAAV2LzeoIiqbISmaKzOk
        HSWWAABkIiyeIiugIiqhISqjIiqjISmkIimkISqjGiacKjWnICWYHB+IICF3nqLd6fD/4+zv7Pbq7/fm
        8PXs8fTy8vT18vX58vj38vn2+v377/Pu+v/37vnx7/z/ucTqHiN4JyuhHCSnHCmpGy2YHC6JCRVjLTRz
        TE5+9vb/+fr//f39/f39/f39/f39/f39/f39/f39/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+//39
        /f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f/9/P///P///P78+/j9/u74
        /+X1/zlKdRYnZic0igcQdyEpmhgckicrnCQlkyYojiwwlgYPfhYhkRollSMunSQwnCg1nwUSfBgljwwZ
        gx8rlyk0oyItnR8mmyEpoCUroh8nniMtoiEtmSMsjhYcby4zcNLW/9/j9u7x9vHy8PPz7fT07vP08PD2
        8e/58+z88e778/P3+Pf4/PT69e/79eP19rHA4RgefSMmphwlqxAfmipAoA8hdBQbcicobIGEo/b4//z9
        //7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v/9/f39/f39/f39
        /f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3//f3/+Pn//v////70+vnz///s/P+Im7wR
        JloRIW4kMJAmLZojKJsNDoAkJpI9P6UHCnIRGokcJ5kcKJghLpwhLpgmM5sGE3scKpAKF38QHYUdJ5Iq
        M6IvN6gtNKcqMKcnL6YoMqcYJpAJFG4uN4BBSHrt8v/l5fXq6vDz8fH18fD08+/x9fDv9/Dt+/Dr/fDs
        +/P3+v7//f/0+fft+fPo+fajstITGHsoKq4kLLUPHpgpPpkAE2EfI3sbGV+nq8P4/fz8/v7+/v7+/v7+
        /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7//f39/f39/f39/f39/f39/f39
        /f39/f39/f39/f39/f39/f39/f39/f39/f39//39/vf6//7////+8PX09P//5/T/0eH+GypbHipyISqE
        HiKLJyubFxuMMjWiFxuEBAp1HSSXJC2iHymbIi2dHyuXJDGbBxR+IC2VIC2XEyCKFR+LJC2cKTGiHiWY
        FRuSFR2UICyiDRqGCRZyMj6Gb3iq7PT/6+796Ovv8fHx8fLu8vPv7/Xw7ffx6/nz6/zz7Pr2+fr+//7/
        8/fy7Pfv7/38kJy+DxJ0MjK0KS+2EiCYJjuWAA9cMTSJFhVX29/3+v7//P7+/v7+/v7+/v7+/v7+/v7+
        /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+//39/f39/f39/f39/f39/f39/f39/f39/f39
        /f39/f39/f39/f39/f39/f39/f/9/f/8/v/+//////L09Pf//+r0/u35/2FqlRcgYCwyhRUXeyUolC4y
        ohcejQEIdRskkx8onSUtpB8onSMtnyArmiQwnAcTfyMvmyYynhklkRQeihwllCYunykwoywzqC83rg8b
        kQ4bhyw5lR4qcrG97dDY9fH3/+3y8+/z7vHz7fD07+/18O328+349ev69u759/Lz9//+//L17O727/P/
        /3qDqA8QcjU0tCAlqRcjmRwwiAYZZC8zhCAfXfb5//X5+vz+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
        /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v/9/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39
        /f39/f39/f39/f39/f3//P7++/39/f37/vz7///4/v/0+v/Q1PceIVg4OYMkJYAlKJAcIY4AAGwlL6Ec
        JpscJJ0hKaIdJZwkLaIjLZ8kL58GEYEkL54fKpkgK5oaJZQQG4sSHI4cJpghKp8fKJ0IEociLpo4Rp8a
        J2vh7v/J1e3r9fzr9PHt9evv9Ovw9O7v9fDv9vPv9/bu+ffw+Pjy8fX//f70+O3x+e/0//9iaJERDnEq
        J6UdI6IiLZ8KHXQRImsVGmU4OXP2+v/w9PX8/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
        /v7+/v7+/v7+/v7+/v7+/v7//f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39
        /f39/f39//7/+/r8+/v7///+/P37/f7/6en3+Pb/kY+9EA9PNTaHIiaFChB5FB+PHSqeGCOcGiKbHiaf
        GyOcJS2kJC2iIy2fBQ+BJTCgHimZKTSkJjGhFR+RChSGDBaICBGGAAh6FRyPN0CnJjCHSlaW6PX/4O7/
        4Ozu5vHn7fbp7/bp8PXs8fXv8PXz8ff28Pj48/f4+fX6//38+vzw9f3z9v3/UFOAGRN4HReUKSunLDik
        ARJoGShwBgtQbG2g+Pr/+/3+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
        /v7+/v7+/v7+//39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+
        //v9/v///////vj08//+//Dr9P/4//r0/0hCdzk3fSAjeBshhDM/qwUUiBoooB4mnyInoR0inCctpCYs
        oyQroAUOgycxox0nmSMtnycxoycwpSQuoyQuoyMtoiMunicsmTU7mh8mdZmi2+fy/+j0/9/t6er05+33
        5u/35vL26vP27fT18fT29vP3+PX2+v35//v5+Pr/8PX98/P4/0dIey4mixoSjiEjmSIrkwALXR4rbw8X
        U6ms2Pb5//3///7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
        /v/9/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f37/f33+/z2+vv9////
        /v389/b//v7//P/37fr88//r4/81MWwpKnQyOJETH4QlNKIXJpojK6IlK6IeJJsnLaQlK6IjKaAHDoMp
        MqcpMqcfKJ0cJJsiLKEiLKEaJJkcJpsoMaAzNZkqK4EvNHnT2v/i7f/Y5Orp9u7x/u7t+OTv9+by9uvz
        9e/09fP29vb19/j19fv69//z8/P2/e70+/Tv8f9IQ4BAN58hF5MICXsGDnMAAlEbJ2cfJ1zR1Prz9P/+
        /f/+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7//v7+/v7+
        /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/P7++v7/+v7//P7+//79//79//39
        //z+//r/+e///fX/yMXyPT56GyFuFyJ8KzqeFySQIimcJiqgJyuhIyedJCieKC+kAQd+LDKpJS2kJS2k
        JS6nJS+lJS+lIi6kICyiJS+bKCmDNzaAa22n5Or/3uf76PT42uff7frq6/bm7vjo8fnv8/fy8vT08fP0
        9fT49PT6+/v/7vH17vjr+P/+3+H/OTR5PzKeJx6XMDGhHyaHHSp2KjVxTVOA8fP/+/v/9/b4////////
        /////v7+/v7+/f39/f39/f39/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+//////7+/v7+/v7+/v7+/v7+
        /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/vz+/vr//vr//v7+/v/+/v/9/v/8/v/8/v/7//71
        //74/+nn/7m86SEpZTQ+ixklfSYxkyctmB4ikh4ikykvoDA1qCsvpQADeDA2rSMrpCMrpCIrpCArpCAr
        pCAsoiArpCcvmkNGlykoZpebzO/1/9zo+uTz9uj3897v5uTz6+fz7efy8Onw8+nv9O3x9vH0/PT2/+Xo
        9/H4//b/+eXx8c/O+CchcEE0pzowrCwsmCIphio1fxgjXIaOs/b5//v6//////////////////7+/v7+
        /v39/f39/f39/f7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v/////+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
        /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v78/v76//76//7+/v7//f///P///P///P7//P7//f/28fr7+v/k
        5v/N0/8hKWQqNHogKn4dJIUdI4w6QKswNaIJEH8jKZoTGo8fJZwiKqMiKqMgKKMeKaMeKaMdK6MeK6Ul
        MJgmKXRISoDX3f/W4f/U5PXd8Pjn+//k+fvc8PXe8Pfd7fne6/nf7Prk7/3q9v/v+v/u+f/v/P/l+vLv
        //+3uu0wJ4IoHJI8Mq4pKZMoMIktNn8eKV3O1vP4+//69vv//v/////////////+/v7+/v79/f39/f39
        /f3+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7//////v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
        /v7+/v7+/v7+/v7+/v7+/v7+/P/9/P/9/v3///z///v///v///z+//39///8/Pr58fL2+Pv/6Oz/wsjx
        KS9kLDN4O0GaHyWIGSGGJSyTKjCbKzKhAAV4IimeIiqhISqjHimjHSiiHCmjHSqkHiulJjGZMTh9bHSj
        1uL/3O7/5vv/uNDik629i6e4fpmuf5mxgJi0gpi0gZiyhJqzip+0jaK42+v/4vX/4vv36v7/mZvbLyeM
        KB2ZKyCeKSqSMDeOIChuWWKU8fn/+v7/+/b3///+/////////////v7+/v7+/f39/f39/f39/v7+/v7+
        /v7+/v7+/v7+/v7+/v7+/v7+//////7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
        /v7+/v7+/v7//f7/+/7//f/9///8///6///6///8///+/fr38v//+f3/+/P3+Pj7/+ru/9XX+j5CdxYd
        bDpDnScvjRMcfjM6oS42oQAAaTxDuCMroiIrpCArpR8ppR0ppR4qphwrpiQxmRIgYqOz3uP2/77X+XeU
        s2mLqZK11n2jxpi75pm965zA7p7A7p7B6ZzA5J7C4KLB4JSr0bDG4uT//+T7/2xvuR4XhkI2uCYdnCcp
        jy42iRoiaLC45/T7//r8/P///v/7+/////////////7+/v7+/v39/f39/f39/f7+/v7+/v7+/v7+/v7+
        /v7+/v7+/v7+/v/////+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
        //3+//r+//v//P//+///+f//+v///P///v3///f6//D///Xt8+jy9PT7/P/v7v/KyvI1PoIeKH8sNo4x
        OZYYIYMeJ48ME4IxO60jK6IjK6YhK6ciLKgfK6keKqgaKKYfLpUoOnnd9f+Lpc1FZIuGqtKcxvCHs+KV
        wfaMufaPu/qTv/+Uwf6TwfeSwPCPwOiUv+aLqteSrtCkx8vh/P9FSZouJpsrIKYyK6oiJowmL39FTJHs
        8v/w9v/9/vr///z//vv///7////////+/v7+/v79/f39/f39/f3+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
        /v7//////v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v/9///6///7
        //z///r///n//vn//vv//v7++f3y///07fTf///y///49vTz8/D59vb/1Nv/KjWFCBNnQUqkMjucJC2U
        CA98GyWXISmgIiqlIiyoIyyrHyqqGienFySkGCiScInJe5jEhKbRsNf/jLjneKjch7n1c6fqeq76e7D/
        frT/gbb/f7b5f7fygLnsiLnppMf5nr7idZqisM7nLzaNOzOvGhCYMyutJSmPIyx8n6br7PP/7PT7///5
        ///7//78///+/////////v7+/v7+/f39/f39/f39/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+//////7+
        /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7//f//+v//+//9///7//76
        //76//z8//z+/v//+fP46f//8v//9Pr88P//+f/+//Dv/+3y/9nk/255txMcYCUtej9InwYMbykumyIo
        nyIopyMorCMrrh8rqRkoohMkmRAnilJytISs3ZO87Xqn2n6t44i8+IK2+H+1/Hux/nuz/321/321/362
        /X64+YO9+IrA94Wx5qbP/J3I4y9SfiEwjRwcmD45vCIdljEzkSowd+ru//H1//H3/v3/+/n19P/9/v//
        //////////7+/v7+/v39/f39/f39/f7+/v/+/f/+/f/+/f/+/f/+/f/+/f/+/f/////+/v7+/v7+/v7+
        /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+//3+//3+/v7+/f/+/f/+/f/+/f/+
        /v7+//3+//v+//r+//r+//v+//3//v78/P/4+//l6/7z+f+fp8QiKVAtNG0eInEwL5YnI6A5N78cGqkc
        H6kbJ6MfM6AOKIYpTJyAqu98rOx+r+19sO5/s++AtPB/tfKAtvODuPeCuPmDt/qEuPuEuPuGt/uHufuH
        uviFvPWIv/iEt/ZQecgIIownOK0nLqEvMZcREV3Ly//09P/19v/4/f/y+P34/f/y9//7/v/9///////+
        /v7+/v79/f3//fz//fz//v3///v///v///v///r///r///r///v///7//v7+/v7+/v7+/v7+/v7+/v7+
        /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
        /v7+/v7+/v7+/v7+/v7+/v7+/f//+v7/9vv+9v3/5u3/dnuiAAA9LSyIJyCZMCmyHx2sLjG7HSujHzac
        ETKCY43UeKrydavyd67zeLDxfLLxfbXwf7bvgLjvg7vyg7vyhbrzhrr2hrn3iLj4ibn7h7r4iMH4fLbx
        mcv/QGrDASCHIjegGySGMTOHeHOw7ej//fn//Pr///7/8fT49v3/9v3/+/7//////////v7+/v7+/f39
        //38//38///7///7///6///6///6///4///6///6///+//7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
        /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
        /v7+/v7+/v79//Lz9/v+//r//+vx+PT7/+nw/5eZ0y4ugi8smigloxscoi4ztxspnxcvkx4+kY64/3Wq
        83Cr83Ou83Sw8niz8Xm18Hy47n257YK974K974O874S98IS98Ya88Ye99Im+8YK25JvM/oGs61d5xRUu
        hBoogDM4hzQzc+DY///3///1+P//+f//+Pz27////v///////////v///v/+/f/+/f/9/P/9/P/9/P//
        +///+///+///+///+///+v/++///+////v/+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
        /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
        /f/9/f/t7fP7/v/4/v/o8P3x+P/n6/8pK3I5OJoyMqQeIJwdJaAdLp0OJoo+YLSKtv9xqvVsrPNwrvRx
        sfJ1s/N3tfF4uO97ue9+vfCAvPCCve+DvfGEvfGEvPOHvfSLvfGYx/OJtuKky/9hgcMGHWhATZcwNXSe
        m8z/9v//+///9O7///T///L//O////n/+/j///z///7///7//v3//v3//fz//fz//fz///v///v///v/
        //v//v3///v//v3//v3//////v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
        /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v3//fz//fz/
        +fz/+f3/9v3/6fD/2+H/dHawKyx9ODmbLDGeGCOTJDegDCeJb5LoeKb0cKvzaq3ybq/zb7D0c7P0dLT0
        d7byebfzfrr1gLr1grn2g7r3hLn4hrj6ibn7i7r3h7Xlh7Hen8X7ZIbCGjV1HTBtY26g8fX/+/j///f3
        //zw///x///y///y///5/vn2///8///8///8///7///7//76//38//38//79//79//79/v/9//7+/v/9
        //7+/v7+//////7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
        /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v79/+3s9v38//j7/+Hk6PP5
        /vb8//P4/9Ta/ykubSoufzU9mx0skB80lxk1k4yu/3Cf8XCq9Wqs82yv9G+w9HOz9Ha09Hi183u38oC6
        9YK784O684a79Ii69oq59o2694669Y677rHc/4227Za89qHB/DRPgtTm/+34//H2//38+P//9f//9P/5
        7P//9v///v///////v///P///P//+///+//++v/9/P/9/P/+/f7//f7+/v7+/v7+/vz+/v79//7+/v//
        ///+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
        /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/f/9+//6+P/4+P77/v/7///w9vvw9f/q
        8P98grEpMnEvO4knOI8QKII6V7KGqf91o/dwqfhsq/VurvVxr/V1svR5tPJ8tvF/ue2Fve6HveyLvumN
        v+mPwOiRv+iUweeSv+qKue10otyKt/R/q+ap0v9+otKjwOXU6v/s+//2///9//v6/fT4+fX9///6/f/6
        /f////////v///z///v///v//vr//fz//fz+/v7+/v7+/f/8/v/8/v/6/v/8/f/8/v///////v7+/v7+
        /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
        /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v3//fv//fv/7+/1/f//9Pf1+///8vb79Pv/7PP/Pkh4
        Kjl4L0SPCCN0XH3TeJ33fav/car1cKzycq70dK/0erH2fbL1gbL2hrP2i7b5jrX5krX5lLb4mLX6mrX4
        nLb5mbf4m8D+kr75kb73jbvxhK/gmsPqm73a4f3/7P//8///+v/89vz3+///+P7/8Pb/+P3////////8
        ///8///7///7//38//38/f78/v7+/v7+/P7//P7/+v3/+v3/+v3//P7///////7+/v7+/v7+/v7+/v7+
        /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
        /v7+/v7+/v7+/v7+/v7+/v7+/v79//z7//z6//z8//7+/v//+/7/+/z+/vf9/+vy/9fj/x8wYS9GhBg1
        f2yO4XWd9XSj9Xev8Hq373my73Cm5428/3Wd75u9/1953QgciQYSiAMJiAgHjRQMmRsQohsNoRIPjQAR
        XQYpW1N5qV6GsKvT9l2Fnr3e7uT//+7///X/+/v/+/3/+/3//vr///f8//f9//////z6+fr49////v//
        /v////n5+fj4+P79//z+//z+//z+//z+//z+//z+//z+//7+/v/+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
        /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
        /v7+/v7+/v7+/v78/f/8+//8+//+/f///v7///r///r///v6/v/2/P/m8v+brtQiOnAAHF6Ptf98qPx0
        pfV+tPVyq+N6sO15q+2Puv+DqPiTrv8ZL48FE30mLJ0pKKATC4gaDpA2J64oFJ0AAFsWImIkPmK+2vyy
        0OttjqHH5/Lk///t///t/PT2/vP///f///n///v+//32+vv09/v6/P38/Pz8/Pz5+fn09PTz8/P7+/v/
        ///8/v/8/v/8/v/8/v/8/v/8/v7+/f/+/v7+/v7//v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
        /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
        /v7+/P7//Pv//Pv//v3///79///6///4///6/v/9+v3/5e//5vj/dY+9H0F9msT/aJfpd6n7fa/7bqHn
        gbL4gbD0ibT3kLb3k7TzAB1YABVNAAw/AAk3AhA6CBQ4BRAwCBAuDBUwCREoTFhqvs7bs8bOk6qs7P//
        6v308f7w///1///0///y//zv//zx///2///7///++fv8+/7/+/7/+/7/9vn99/n6+fv8+/3+/P7//P7/
        /v7+/v7+/v7+/v/9//7+/v7+/v7+//7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
        /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/vz+//z9
        //z9//79///+/f//+v//+P//+P//+/r7/+32/+j5/9Xv/1F1q424+2WW5Har/HOm9neo9Im4/4Cv84Sw
        74+475zC8j9jiQAYMgknOBIsMgokHgchERIqEhoxFRgrFg8XF1JXYMLN0ZWjotzt6fH/+/H/9vr/+Pj6
        7v/+9P//+P//+f//+f//+//89/b39evw8+70++/1/O/1+vb6//v+//v+//v9/vz+//7+/v7+/v/+/f/+
        /f//+///+//+/f7+/v/+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
        /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v78/v78/v78/v7//v7/
        /v3//vv//vr//vr//vv5+Pr2/P/l+P/D3/9cgbOGsvF/svtwqPdwpvN/tP2Btfx3qOyHtvSKtuyYwu2J
        r9EAHzYAGiMAHRoQLR4aNRsWMQ8ULgYYLA8ZISAKDxjK1NufrrCYravt///v///r+fj4///6/f/49f70
        8fry8fr09/z1/v/0///0/f/0/f/2/f/y+f/y9//2/P/6/v/7/v/8/v/+/v7//v3///v///v///r///r/
        //v//v3//v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
        /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/P7+/P/9/P/7//79//79//39//37
        //37//39//7/7fT96vv/iqfGeJ/Mfa3neK/0bqfydK/3e7b7cqvwcafojL37ibftibPinMPqbY+sI0FU
        ABAXBx8dESkdABQBBRoBJzgqKDM7BBAiZHWCx93odpOa4///4///3PP/zt71yNPuvsPitbvYs7zXucfd
        wdjozOHw1OTx4u768/z/9P3/9P3/7/b/8Pb9+fz//P7///79///7///6///6///4///4///6//79//7+
        /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
        /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/vz//fz/+/z/+v//+//9/f/8/f/8/f/8/f/9/f/+
        /+fs9ez8/3OPrZbA63Ok3Gee4XGt83W19W6v7HCv7Hey8IG39Ia18oSv6JO37aTE9YegzEthhRUnRgYU
        KxIdMRUdLgQPIwAAGwATMwAAGGeKpElyi2GMp2mSs26SunaUw4KazpCk3Zit5Jav4Yqq1XmgxnaauIOY
        rZOgsLG7zNzn9fT9//b9//X7//v+//z+///+/f//+///+v//+P//9///9///+P/+/f/+/v7+/v7+/v7+
        /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7//v3//v3+/v7+/v7+/f/8/v/8/v/8
        /v/8/v/8/v/8/v/8/v/+/v7+/v7+/v7+//38//r8//r///v//v3//f7//P///P///P/u8Prv/P/R6P9d
        gaWFtOdtpOFtq/JxsvxxtPNkpuF6ufWCwPxvqOaAs/GOuvqNtvWTt/Ohv/itx/2qwPCUpNJ0gqxeapJQ
        YotSbp13m8t2ncmGstucyvORwuqVw/KVwfabwv+ZvP6TtvqQs/eOtPSNufSSwvaeyPO20eyhssecq77G
        0+Pw+f/2/f/2+v/2+f3+/v7//v3///v///r///r///j///j///r//v3//f39/f39/f39/f39/f39/f39
        /f39/f39/f39/f39/f39/f39/f39/f39/f39//38///7///7//79/v7+/P3/+f3/+f3/9/3/9/3/+f3/
        +f3/+v3//P7//v7+//79///7/v/7///+///+7Ozs//7/+/7/+P3/6fT/0OL53Pj/k7jkZ5bMebP1YaHv
        YKj8cLf/cq/zeLHvebLwerPxfLT1f7X0grb4hrb2h7b0irbxj7jvk7nvmbzun8Duo8Lvn8L0mMX/iLv5
        h7fxjLvxjr3wjLrqirnsjrv0j778ibn7hrf9g7T6f7D2hbf5i7z6jLjtob7jqsDcqr7XlaS37fj/8fj/
        +v7/9vj5//79///7///7///7//79/v7+/v7+/P7//v7+//39/f39/f39/f39/f39/f39/f39/f39/f39
        /f39/f39/f39/f39/f39/f39/f/9/P//+///+//+/f7+/vr9//n9//f9//f9//f9//f9//n9//r9//7+
        /v/+/f//+///+////OXm5PP19fr//+ry+dnl8ay90GyFn19/omuSv0Rzq1uR0mOg6nK0/2Ss/1me7nOu
        9Hqw73ux8nyy83y09X219oG3+IG3+IS5+Ia594m584u68o+78JK98Ja/8JC+9Ie9/n+2+YO29Iu79Y+9
        84257o2574699YKz8Y3B/4a6/4G1+4/C/4u9/4W08pnB9qXE66G514WZsr/O4ev2//b9/+jr7//////+
        /f//+///+//+/f7+/vr+//r9//r9//z+///9/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39
        /f39/f39/f39/f3//fz///v///v//v3+/v78/v/6/f/6/f/5/f/5/f/6/f/8/v/+/v7//v3///v///v/
        //r///n///v19/fg6O/s+/+Rp8BsiKqRtN+TvvFwoNpjmNdJg8Vemd9cmuGHxP9qpe11r/F4sPF5sPN6
        sfR8s/Z9tPd/tvmBt/iIvfyJvPqJu/eKuvSLuvKMuvCOuu+LuvCFuPaCuPWJufOPvfOSvfCOueyMuO2O
        u/SKufd4quyIvP+Pwf96puWCrOeexPqgwe6gudunu9SVprvj8f/z/P/4/v/h5Oj///7///v///r///v/
        /v3+/v76/v/6/f/6/f/8/v///f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39
        /f39/f39//79///7//79//79/v7+/v7+/P7//P7//P7//P7//v7+//79///7///7///6///6/fry8vHt
        +v//7/z/vtTtbo6ycprKdqffaJzecqvwY57keLP5U43Pdq7vd63sd63sd6/weK/yebDzerH0fLP2fbT3
        f7b5gbf4iL38h7z7h7r4iLr2ibnziLnxirnxiLnxibv1ibv1j73zkb3ykLvujbjrjLjujbn0ibj2lsb/
        hLT0hLHupMv/nL/xjarWqMDkmq3IwM/i3ev96/b/9v3/9fn+9Pb3///+///7///6///7//79/v7++v7/
        +v3/+v3//P7///39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f/+
        /f/+/f/+/f/+/f/+/f/+/f/+/f/+/f/+/f/+/f/+/f//+///+///+///+///+////Pv//97q9Nvw/2CA
        pH+q3W+k42Wg6CpquECC0Wus91eV3IC4+W6i3n+u5H2s5Hmv7nav9Hew9Xix9nyz9n2094G3+IG3+IW6
        +YS5+IO59oW49oS49Ie59Ye59Yq69I288o++8pC98I+67Y657JC674679I689oCx74W29JnG/4+474ep
        17DK8rLH53OCnL3L3d/q+PP8/+30/fr+//Dy8////vv49P//+v//+v//+//+/f7+/vr+//r9//r9//z+
        ///9/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+/v7//v3//v3/
        /v3///v///r///r///r///r///v///v//v3//v3+/v7+/v76/v/2/v/m8//k+//V8/9Ufa55rOpyr/ki
        ZLVbofVxt/9lp/hrqvRooOGNv/l3o9iNu/F5r/B0r/R3sPV4sfZ8s/Z/tfaCt/aCt/aFuPaFuPaEt/WE
        t/WEt/WFuPaGufeJu/eKuO6Nuu2OueyNuOuOuu+Rv/WQvviHuPaPwv99rux9qeSky/+ryfJziKeDkafq
        8v/0/P/2/f/4/v/4/P/6/P36+vr//vr//vn///r///r//v3+/v78/v/6/f/5/f/6/f/8/v///f39/f39
        /f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/v7+/v7+//79///7///6///4
        ///4///4///4///6//79/v7++v3/+f3/9/3/8Pv/3vT/3Pj/qcz0RnGia5/bT4rQOXvKJmzAV571UJjs
        erz/ZaPvb6nreazqhLPrfa3nd67xdK/1d7D1erH0frT1gLX0hLf1hrj0irr0ibnzhrjyhrj0hLf1hLf1
        g7j3h7n1ibftjbnujLjti7fsjrzyjr74grX0c6fpb6TnjsH/oMz/gKXXdI+0tsfh8/v/+P3/+v7/+/7/
        7/L2/f//+Pb1///8//z3///7///6///6//79/v7+/P7/+v3/+f3/+v3//P7///39/f39/f39/f39/f39
        /f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/fz+//z+//7+/v//+///+v//+P//9///9///
        +P//+/z+//n9//P8/+77/+z6/+D4/3KZxj5tpRxOihdNjlyY3mip9ESI2wZMoDqA1C50x2Kk9WKg7DZx
        t12U13it7Huw73Wu83Sv9Xew9Xyy84G08oS28oq58Yu575G98pC88Yy68Iq58Ye38YW384W384W384u6
        8o688oy68Iq58Yy89oe6+HSq616V2leO01iMzkt3slR4qJiy1uf3//b8//Pz+fT29/n5+f///////v36
        9v/89///+//99f//+v//+//+/f7+/vz+//r9//r9//r9//z+///+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
        /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v78/v/8/v/+/v7///v///j///f///f///j///v9/f32/P/s
        9//j9P/j+f/C3f82XIwkX6Urbb4qbL0fYbIydMVbne5oqvtZm+xTluVqrPttr/02dsQWVKBAfsp2s/1w
        rfduqfGAuf55sPN6reuAsOqSvvOSu+yZwfGQt+SWveqawvKYwfKRvO+MuO2Mu/OQv/eUxP6Ds+2EtO6P
        wf14q+mIvfx6sfSOxv+e1v93rO+Vwv+Wu+2NpcmaqL/i5vH9/v////////z///z///v///r//vn//vn/
        /vn//vv///v//v3+/v78/v/6/v/6/f/6/f/8/v///v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
        /v7+/v7+/v7+/v7+/v7+/P7/+v3/+v3//v7+///7///4///3///3///6/Pr59fn+7/z/4/f/3Pj/ep3J
        JU2BQHW4FF+7FmrQGGnMEF29IGzGSpHoZqr9aaz7c7X/ZKTyTpDeK228HV+wRIjbaa//Y6X2dbL8dq3w
        h7z7dqbgn8v/h6/flLfija7VlbXZhqbJeZrBfaDIjrHcmL/slr/wjLjtfa3njb/7irz4h7n1fK/tmM3/
        isD/fbT3XpPWkcP/iLTvkLTktMzwhZOq7fP+/f7////+///8///7///6///6//75//36//76///7///7
        //79/v7+/P7//P7/+v3//P7//v7+//7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
        /v7+/v7+/vz+//n9//n9//z+///+/f//+v//+P//+P//+/v+/+v2/87j/tj3/0lxpSVYlj10vRRbsgpj
        0Qlp3wxo2QVdyQtdwiRxzj+H31CU516h8D1/ziVnuCBktx1ku0WN5WKr/2Kp/2uo8oK4+XSm4pG/9YOr
        25i744yoyqS+3KnA2rzU7Mbe+rXP7ZWx04Ojxo2x15nC74y7843B/Xyu6ou79Yq69Ie38Xyu6n6x75HC
        /5HA/bHa/4ip163D5o2bscvR3v3+/////v///P///P//+///+//++v/9/P/9/P/+/f/+/f/+/v7+/vz+
        //z+//z+//z+//7+/v/+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v78
        /v/5/f/5/f/8/v///v3///r///r///v8/v/0/f/V5/7a9/9MdqsaUZYyc8QrdNAQZc0BYtoAZOMFaOIG
        ZdoFXswHXMIVZMUkb8sja8MbYrkaYbgkbcMYYrpAieRcp/9nrv9qpe2BtvWJuPCCq9yMr9eatti3z+fY
        6fzt/P/v/P/t/P/q+//c8f/D2vSivdiEpsqSwfWNv/l7quKOvPKWwveFsOOKtOmZxfqMuO6AqNyEqNit
        yfK0yOeJl6r2/P/r7vL///////7///7//v3//v39/f39/f39/f3+/v7+/v7+/v7+/v78/v/8/v/8/v/+
        /v7+/v7//v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/P7/+f3/+f3/
        +v3//v7+///7///7//79+f3/7fv/3PX/kbnqDEGEN3rPInDUAEy7BGPbAF7cAF3cAGLgBmvlCGrgA2PV
        CWPSEmrWB1vBG2zPInLRKnfTEl64RI7mXqb+Zqj5cKnulsj/f6vglrvnjqzP0+v/3e398/3/+P7/7/T3
        5Orv8vr/8f3/7fz/0+T3orzae6TVjr3zlsP2kbnpm8Dso8Xwp8rymbzko8XwstL7qMXqvdT0kaC6i5Wm
        9vv//f7//f///////////v7+/v7++/3++/3++/3+/P7//P7//P7//P7//v7+/v7+/v7+/v7+/v7+//7+
        /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/vz+//n9//n9//r9//7+/v/+
        /f/+/fz+//X8/+f5/8rp/xdFf02L2RZixgBQww1y8gBV2ABl4wBf2wBe3ABl4wFo5gBk4gBl4whr5QNi
        1xp04xZt1R5v0AxYslSc8G2v/2el8YK4+Xmo4JvE9XSXv9z2/9Xm+fP+//D19vDx7/n58//++vv8+vD1
        +Ovz+u/5/+b7/4+04H6r3qTN+pzA6Ju53JWx0ImiwnqUsoihwYmgwH2SsXSFn6GvwvT8/+7w+Pr7//3+
        //v///3+//r+//z9//n8//n8//n8//z9//z+//z+//z+//7+/v7//f/+/f/+/f7+/v/+/v7+/v7+/v7+
        /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v78/v/3/f/3/f/6/f/+/v7//v3+/v76/f/y
        +//f9P90l8MzZ6kTWK8TaNYAXdsAYe0Aa/UEaOQFZdsAYdsAYeAAYOQAXuYAXugAY+sAYeQJbekCX9IV
        atALVrJeo/N3tP51rO+BtPJ9q+GBqdmjxOve9f/t/P/x9/zz8u7///j///f//fL6+O729fH19/f3/P/s
        /P/E5f9zm8uixu6ZuNmUrMiZrsSWp7ycrcJ7i6LO3vXh7//t+//y+//v8/79/f/7+v77/v/6///7/v/5
        /v/6/f/4/P/4/P/4/f/6/f/6/f/8/v/8/v/+/v7//v3//v3//v3+/v7//v7+/v7+/v7+/v7+/v7+/v7+
        /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/P7/+v3/+v3//P7//v7+//79/v7++f3/7vv/yub/NmOc
        IWCwF2fMAFnRAGLlAFnjAFvfAGDWBmPWBWbeAGbkAGToAGHrAGLvAGTwAGPrCG/uBWTZInffElu2XJ7t
        c670eq/ugrTuhbLlharWz+v/4vP/8/z/5+js///7//vy//ns/vjt/fvx/fz4+vz88vf65PD83vb/gqHC
        ssrohpqzkJ+y3On58fz/8/z/2uXzoay66vP/7fX/8/j/+/7//fn+/fr8/f7/+/7/+/7/+v3/+v3/+fz/
        +fz/+fz/+v3//P7//P7//v7+/v7+//79//79//79/v7+//7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
        /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v/+/f/+/f7+/v7+/v/+/f7+/vn9/+v6/4ap1SVfpxps0gNj3gBX
        2gFp7ABc1Apl2Atl1All1gZl2gFk3gBk4wBk5wBk6wBl6QBe3w1w6glj0hZozSRsxHi4/2ei6H618ozA
        9Xyq2YCjy+H4/+bx//r7//nz+P/7+/vy7v//+cPDvQUJBPr//+rz9/T9/+bv/PH8/46Zp46VpMTM2fb8
        /+nu9+br9PX6//T2/+/y+qmrs/T3/P38///+///7/P/+//////3///3///z+//z+//v9/vv9/vv9/vz+
        //7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v/+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
        /v7+/v7+/v7+/v7//v3///r///r//v3+/v7//v3+/v75/f/p+v9nj8AdXKwIYdMAXOEAV98AZeYGX9ES
        aNIMZdMJZdYGZdoBZdwAZOIAZOUAZuYAZeYAZuQHZ90YcNwMW7w5gNd3uP9qoumBt/R9suSKt+KKq9LV
        6v/z+f/t6/f//P//9vb/+/f///v5+vbFysj4///k7vXu9//2/P/z9f2vsLT9/f/8/P/7/v/z9vv6/f/5
        /P/29vzr7PC5uLro5+n/////+vv79vX///7////////////+/v7+/v79/f39/f39/f3+/v7+/v7+/v7+
        /v7+/v7+/v7+/v7+/v7+/v7//v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
        /v7+//79///7///7/v7+/P7//v7+/P7/+f3/6fr/TnSkJGOzBF3MAFveAFzkAF/iBmHUD2fTC2XUB2TX
        BWXbAGTeAGTjAGTlAGbmAGblCGzoA2LXIHbgBVKyV53xdbT+cqnuhLj0eKvdos73cZO35Pn/6u//9vL+
        //X7//z6//bv+fPs///3/f/84ebn8vj99Pv/6O32/f3/rq2x/f7/7/D08fL28vP3/f7/7O3xm5yg3t/j
        8O/xzs3P+ff3/Pr6//7///7//////////////v7+/v7+/f39/f39/f39/v7+/v7+/v7+/v7+/v7+/v7+
        /v7+/v7+/v7+//7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v/+/f//
        +//+/fz+//r9//z+//z+//n9/+n6/0RomDNvuwhfzQBd3gBh6ABb3gVi1wpj0gdk1wRk2QFl3ABj3wBk
        4wBk5QBl5gBm5Adr4hBs3RNo0BJfvGuv/26s83qx9IC17oe46pzI8W2NseL2/+vy//z6/+/l6//+/P/+
        9///+Pr48Pb48vL39vr///j7//L1/f39/728wPLz9+zt8fn6/vf4/P3+//j5/SwtMZ6fo/X09r++wP//
        //////////Lw8P////////////7+/v7+/v39/f39/f39/f7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
        /v/+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7//v3///v//v36/f/5
        /f/6/f/6/f/5/f/r+v9GaZU2cLgMYMoAXtwAYegAW94DYNkHYtUEZNkAZNsAY98AY+EAZOMAZeQAZuUC
        ZuIEZNofeOYAUrc0fdhztf9no+mDufp9r+mOwfN9qtWTtNukudjx+f/4+P/+9v3//Pz//vn///j8/Pb9
        //z7//7t8fLo6/D7/v/P0NTg4eXy8/f9/v///v/z8vT39vj//v///v///v/+/f+xsLL//v/s6+38+/3/
        /v/////////////+/v7+/v79/f39/f39/f3+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7//v7+/v7+
        /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v/9//79/v7++f3/9/3/+f3/+f3/
        +f3/7Pr/VXWeL2arD17FAF3XAFzhAF7jAF/aBmTbAmPbAGLeAGPhAGPhAGTjAGXjAGbkBmffBWLVIHbg
        A1KzVJz0crL/Z6Log7j3fK7of7TnfavaoMTsiaLEzdr09vr//fz/+fX69/X19fn08PXz+v//5Ozs+P7/
        9fv/7fD4trm++/7/8PP4/f7/9fb69PP19vX38/L09vX39/b46unrwcDC//7/9fT2//7///7/////////
        /////v7+/v7+/f39/f39/f39/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+//7+/v7+/v7+/v7+/v7+
        /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7//f/+/f7+/vf9//X8//f9//n9//n9/+77/3SR
        titgnxhlxgBg1gBY2wBk6QBd2QRl3QBi3gBi4ABj4gBj4gBk4gBl4wJn4Qho3hBq2Q1hxx5ryGas/3Cu
        +m+o7Xuw736z7Hiu5Yi67o625py645eqy9zn/+ft//L4//b+//T//+35/er4/t3q8vH9/+/4/7rCz+fu
        9/j+//X4//H1+vL1+f3+///+//X09vHx8f///+np6dPT0/j6+/f5+v3///j6+/////////////7+/v7+
        /v39/f39/f39/f7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v/+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
        /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7//v3///v+/v73/f/z/P/1/P/3/f/5/f/w+/+Qq80yYpwlbsoK
        ZdgAV9gBaewAW9kBY98AYuAAYuEAY+IAY+IAZOIBZeEGZ98LaNsbc98ATLE6heFssP9yr/l3sPVzqOeD
        t/OBuvd9s++Jt+2fw/OVrtiVqMvT4f3s+v/q+v/p/P/n/f/j+P/o/P/L3O+erMOEkqXx/P/b5O70/f/x
        +P/v9fzx9Pn7/P/19Pb////39/fAwMDj4+P9///3+fr9///y9PX////////////+/v7+/v79/f39/f39
        /f3+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7//f39/f39/f39/f39/f39/f39/f39/f39/f39/f39
        /f39/f39/f39/f39/f39//38///7/v7+9/3/8/z/8/z/9/3/+v3/8/z/zuT/KVOIJWi/GG/dAGDfAFnc
        AFrYAWXjAGHgAGbnA2rpAGbkAGHdAWXcCmneE27bDWLKInHSXqj/YaP0cK33grv/aJ3cgbf2dLDyeLT2
        hbj2kLv0lrnrlbLekavQi6fGqsfiq8rjpsXemrnSlLHMlK7MkafKjKC/sMHW5/X/6/j/3+r48vv/9Pr/
        9vn++fv8////2dnZxsbG6enp/f///f//9fn6/f///////////////v7+/v7+/f39/f39/f39/v7+/v7+
        /v7+/v7+/v7+/v7+/v7+/v7+/v7+//39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39
        /f39/f39/f/9/P//+v/+/ff9//L8//P8//f9//z+//f9/93v/0FlkyxruwJVvgJh2Qdt7gBh4QBf3wNq
        6QBb2gBa2QNp5w1w6gdn3Atn2Btz3QBCp0CN6lad9H3A/3Wy/G6n7IC293mx8nKw9nSy+H+2+Yi595G5
        85S57Za45pS44ICoy4ev0omz1oy015S535/C6qfE8KnD65ClxLvP6OHz/+z7/+v4/+Dp8/D2/fv+/9vd
        3tzc3Ojo6Pv7+/3///j6+/X5+vv///////////////7+/v7+/v39/f39/f39/f7+/v7+/v7+/v7+/v7+
        /v7+/v7+/v7+/v7+/v/9/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3/
        /fz///j///v5/f/z/P/1+//5/f/+/v76/f/t+v+Ip84tZawYZcYAXNEAYuIAYeEAY+MAXt0AZuUAZOIA
        XtgFZ90YducSa9kBVrwwgeJqtf9Rl+twsv9npO5kn+WKwf9zrPFysvlxs/p5tPmCtviMufaRvPWWwfSX
        w/KNvOiOv+uMv+qKu+mLuemSuu6UuO6VtuimxeyHosSAmriqwNnQ4fTo9f/Y4eu8wsfJzNDp6+v/////
        //75+/v4+vr6/v/7///////////////+/v7+/v79/f39/f39/f3+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
        /v7+/v7//f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39//76///3///6
        +f3/8/z/9fz/+f3////7//799P3/y+T/HE+OM3rVA1zOAFjUAGLiAGDgAFvaBmzqCm7qAGDYAmHWEm7d
        EGbQAE+0SZb2WqP+aK7/cbP/c7H9bajwe7b8cazydLT7dLT7ebT5f7X2h7b0i7nzjbzyjr7yir/xiMDx
        hr/yhr3wh7vwjLvzjrf1kbfxlrrqpMfvpsbqmbXUfpaugpOmfYuXmKGq5+7x+Pz9/f///P37+fv7/f//
        +///+Pr7/////////////v7+/v7+/f39/f39/f39/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+//39
        /f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f/++v//9v//+Pr9//X8//f8
        //r9////+v//+vr+/9zx/0VzrSFkuQ1izwpq5QRo5gBa2gZs6gBc2ABi2RR06RJu3wBZxRNnzT2M7V2o
        /1qi+nO3/12f7lGP2yxps2ah6Xey+nWz+Xi1+X6294S39om49Yq48oq574W57oO874G87oC88IG984W8
        9Yi69o25+ZG6+Iu065a/8JO45KHC6a/L6rvS6J+vv9Le6Pb///r///f5+fj7+fz//f3//v3///r8/P//
        //////////7+/v7+/v39/f39/f39/f7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v/9/f39/f39/f39
        /f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3//vr///b///f8/v/1/f/3/f/8/v////f/
        //f7/f7l9/+z3f8SU6QJXccMa+MBY98AZOICaeQAXdcAYdcQbeANZ9YLYcswgudms/9jrP9XnvU5fdAt
        b74jY7EDQY1urPh1s/p2svR9tvSDufaKvPiQvPePvPWNvPKHvO+MxfiFwfWBv/WBvvaCuvWAs/GCr/KF
        sfGJuPWKuO6KteibwOyKqs2OqcSBlaff7fn0/v/0+fr1+vn9//79//73+vj3+fn9///////////////+
        /v7+/v79/f39/f39/f3+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7//f39/f39/f39/f39/f39/f39
        /f39/f39/f39/f39/f39/f39/f39/f39/f39//76///0///2/P7/9/3/+fz//v7+///2///2/vz77Pv/
        v+f/JmSyClzCAFvSAGDcBGjmAF3ZBmrhC2vgAmDRAlvJF2zUMoPmRJHuH2jDImi8E1eqLG6/KWu6Q4PR
        fr7/ca/2fLT1g7fzibnzjrv0kb3zk73yj77xi77wf7nqebboeLfqf7z0hr75h7r4jLn8kr//kcT/f7Pv
        kb/1msTzdZm/tNDvx9zy7f3/7fb/8fj7+P38/f/+///++vv5+fz6/f/+/////////////v7+/v7+/f39
        /f39/f39/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+//39/f39/f39/f39/f39/f39/f39/f39/f39
        /f39/f39/f39/f39/f39/f39/f/++v//9v//9v/+/fr9//r9//z+///+/fz+//D5/9v0/018uS5xxhJl
        0gBc1ARo5gBa2Ahp4QNj2QJk2ghq4AJk2gBXyQBVwwtfxRxpxiBlvDp8yzl3wxFNmWup92en9Xu4/4K4
        94e68ou68I257pG665K66pG76o276pDC8IW97oK774a/94W7+oC09oKz+Ye4/oW6+XOn45bF/ZK97mOG
        sdz4/+T6/93s/Pb9//v///v8+P779v//+v//+///+/v8+P///v////////7+/v7+/v39/f39/f39/f7+
        /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v/+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
        /v7+/v7+/v7+/v7//v3///n///b//Pf///73+fr3/f/x/P/Z7v/F6P9HeLYpa74IWr8JZtsEaOYAWt0E
        augHZdYIZtcAZeAAZOgAZPAAZfEAaOwKa+MZa9Euc8pBe8YUSI5rn+V1qvNmofF8tv+CuPeGufGLuu6P
        uuuVvOmYvembv+ecwOiVvOiUvu2Qv/OKvPiDt/qBtv+Buf+Hvv+Ux/+Rw/iNvPB3oNHK7//P7P/m+f/v
        +f/z9v769vX///j///X/++z///X///X+//X///z////////+/v7+/v79/f39/f39/f3+/v7+/v7+/v7+
        /v7+/v7+/v7+/v7+/v7+/v7//v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
        /v7+///7+vPq9+7k///4///79ff47/r/1Or/ye3/P3S3C06jGWnOD2nYAmDbAGHfAF7fDG7qCmbXCWfY
        AGXiAGTrAGP1AGP4AGXyAGjpB2DOJnDOJWKyPHO8eaz1e6/7a6P0drD8e7X3f7bzhLnyi7rwkL3wlb/u
        mcDtmcDtmsLzkbrxibbzhLj7hLr/ebX/aKf/W5vvL220M2+xJ2GjDUOES3y6a5TLp8bz1+7/7/r/+P3/
        5OLi///5/vnw///36Onf///5///+/////////v7+/v7+/f39/f39/f39/v7+/v7+/v7+/v7+/v7+/v7+
        /v7+/v7+/v7+//7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v//+v//
        9P//8v716Ozp5fj+/+j6/7DS/TFioDJzxBRhwghfzQlm2wdm3hBx6Qlm3wBVzAdn3ANn3QBl5ABl6QBk
        7QBk8ABl7QBm5xBu5SR55gpVt1qe93Kw/3ey/2+o93Ot+XGw+nKy+Xez+Xq1+n6294C19IG08oCz8oG1
        +Ii+/4fB/3Gt/0qK4iRpxhBXuAhTtQdbuyN52S6C4it72jR/2ylswSNbqDZkpISn2c3n/+j6/+77//L7
        //b///L8/Pn//v3///////////7+/v7+/v39/f39/f39/f7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
        /v/+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7///r///T67d3///f/
        //70/f+4zupFa5s1aq0WW7IYaM0IYdAGY9gAVMsAWtEPat0Nat8EaN8AZ+IAZuQAZuUAZegAZekAZOkA
        ZegAYuIAX9cAS71AkPtOlfZpq/9yrv98uf94vP91vf92v/93vf93vP91t/9ys/9usP9Mj+Qvc8wQVrMG
        ULATXsQmc9ote+YkeuoQcugQePMAYdwAZN4HZ90fd+kicdg9g94lXapdisfQ8//f+P/i9f/e7vrz///t
        9vn7///////////+/v7+/v79/f39/f39/f3+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7//v7+/v7+
        /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+///7//jv///4+vbx/f//2OHuVmuG
        LVB8IVKQKWq7JnLSFGnWDmncDGneAV/WCGXaAWHXAGfiAGbkAGfiAmfhAmfhAGbkAGXmAGTpCnb+AFvi
        AF7iAF3YAE69EVq8EVGpFlesGmfEFGjIFGfKE2bJEWTHDV/ECFrABFfAA1fBFWrXKn/tKX/xF27iCmHV
        CWHXBmbiAGz0AG/+AF3sAG79AGXxBnL5AFvbB2DTLnreHl+wVIfGyvH/1vD/5/n/7Pj++P///f//////
        /////v7+/v7+/f39/f39/f39/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+//7+/v7+/v7+/v7+/v7+
        /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v3///j6+/3//+3w9PL5/+z7/7zV9aHH90+C
        wS1svBBcvABFrxNs3hNw5Q5s4wBf1wNm4AFm4AVn3Qho3gho3gVn4wBm5wBl7QBq+ABY6A17/wBj6A1q
        4yh65y952TN93R1y2hhx3xhy4RZy4xRx5BBv5A5u5Apr4xp69Qlr5wBc2wBf3g5t7Bl49xd38wlu8gBj
        8ABm+gBe9ABu/wBg9ABt/gBq9xR5+iF67CNvzylmsHGg1Nr5/+r9/+fu8f3//v////////////7+/v7+
        /v39/f39/f39/f7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v/+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
        /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v75/f/v/P/m9P/h6vT6/v/9///q7fH0/f/q+//a9//I9P+s5v8m
        b8sUaNIAU8gAWtUEZN8IZdgNZ9YNZ9YKZ9oJaOACaOYAZ+sAZvIAYfIAX/AAbf0AYuwKbe0OauEZbtwX
        bNkTbuEObuQNbuYLbekHbOwFbe4DbPEAbPMAZOwBbfUJc/wIcfgAZ+wAYeUAZeYBa+4AZ/EAZ/QAa/oB
        d/8AZPUAYvMAYOwAZeoAWtIugOZBg9IvXpbL6P/t/P////v//vX///z////////+/v7+/v79/f39/f39
        /f3+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7//v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
        /v7+/v7+/v7+/v7+/v7+9/3/6fr/4/X/8fz/+/7/9vPv///5///89vn96vj/yOb/tuL/GFSgHWfFFGjS
        Em3gEWrcGWfLHWnJF2nPD2jWB2fiAGfoAGfvAGf0AGX1AHH/AFvnAGvzDHT3AGHhDm7pCmvjDm7pC23p
        BmvrAmrtAGjvAGfxAGfzAGj1AG39AGn5AGb0AGfxAGryAWzzBWzxAWvuBHDzAGHlAGLoAGvzAGn1AGz5
        AHD9AG/1A2nnJ4DuJm3ELGKfh6fK6Pb////5//zv///8/////////v7+/v7+/f39/f39/f39/v7+/v7+
        /v7+/v7+/v7+/v7+/v7+/v7+/v7+//7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
        /v7+/v7+/vf9/+z6/+v6//X8//7+/v//9v//8///9P//+PL4/+X3/4Sm0S5dmillsTF40CFtzQNMqF6Y
        5Cljrh1kvBlu1gNl4QBf5gBl8wBl9QBn8wBo8ABq7QNr7ARs7wJr8ABq8gBq8QZs7Qhr6wNo7ABn7ABm
        7wBm8wBm9ABm9gBq/ABi8gBw/gBd5wRw+AFt8Qlx9AZt7AJp5ARo5AVr6QVt7gBt8QBp8QBl8QBm7wNv
        8wNj2SV21zl3vlR5per7//X29P//+P///P////////7+/v7+/v39/f39/f39/f7+/v7+/v7+/v7+/v7+
        /v7+/v7+/v7+/v/////+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v76
        /f/z/P/1/P/8/v////r///T///P///T///j6/v/k9P9ge51ihrRBbqcYS4pDer+46v/I7/9Jcqk3cbwk
        b9EQbeYAZ+4AXuwAZ/UAaO8DaeoJa+cIbOgEbO0Aa/MAaPkAaPkAaO8Ga+wHbPADbPEBa/QAavQAa/cA
        bPgAb/0AY+8CcfsAaPAIc/oAZOcCausJcO8KbOgJbOYIbOgGbewAbPAAa/IAaPUAafgAbfkAZeUadeIv
        d8tCcKbg+P/x9/7///z///7////////+/v7+/v79/f39/f39/f3+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
        /v7//////v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+//79///6///4
        ///2///0///0///3///7+f7/4ez63/H/TmWFVHCTQV6Dqsfs3Pj/1ez/5/j/3/f/HkqHMXLHGW/fBGnq
        AGHpAGXtA2nqCGvlDm3iDm7kBm3sAGr0AGf9AGf9AGjwB2zwCm/zCHDzA2zxAWrvAGvyAm30AGTrAGbt
        BXH1AGnsBm7vAGXmCG/uCG/uBmvrBmvrBGrrAGrtAGnxAGj1AGj6AGj9AGr/AGbzC3LtInXYLmes0fP/
        6vj/+/7//f///////////v7+/v7+/f39/f39/f39/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+//////7+
        /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v//+///9P//8f//8f//8///
        9v//+vr9//P8/+z7/7vP6DFGYo6jvt3u/+/8/+Ps9vj+//P1/+/6/5286Q9Diip11xVv5QRo5gJo6Qhq
        5gxr4w5t4g5u5AZt7ABq9ABo/ABo/ABo8gZt8gpv9Aht8QNo7ABm5wNo6QZr6wBi4g909A1y8gFo5gNq
        6Qdu7A929QBj5ABn7ABp7gJp7gBo7ABn7wBo9QBn+wBk/ABo/wBp+QNu7hxz2y1qtMvv/+r6//r9//3/
        //////////7+/v7+/v39/f39/f39/f7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v/////+/v7+/v7+/v7+
        /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7///v///b///P///P///b///j//v33/f/w
        +//p+v+3zOK8zuXs+//t9v/7/v////v++PH///7p6/Xk+P9ymM4sZbQcZccjeugNa+IMa+MKa+MLbOQI
        bOgEbO0AbPIAafYAaPgAaPUCavMEavIFaO4EZugGZ+YLa+cRcOgScekXdu4DZNwOcesLcu0DaugHcO8A
        Y+YAZO4AavQBbPMAafAAafAAbPUAavkAZPUAZvoAavcCbOkab9NHgsjN7//x+//7/P///v/////////+
        /v7+/v79/f39/f39/f3+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7//////v7+/v7+/v7+/v7+/v7+/v7+
        /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+//79///7///6///4///4///6//79+v3/8/z/6/j/6Pb/
        7/z/7vf/+v7/+vj36+Tb///3///5//3/4Or83ff/XojDMWy7FV+/InfkDWzhBmrmBGvqA2vsAGzvAGzw
        AGvvAGryAGf0AGf0AWbwBGftCmvrEG7pFXHoGHPmEm3gAl3QAEG2E3XrE3jyAF/dAGrqCHT4AGbwAm33
        BW71AWnqAWnqA3DwAG/1AGjwAGnxAG7wC2zeHWrGeavn3fT/+v3///35///+/////////v7+/v7+/f39
        /f39/f39/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+//////7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
        /v7+/v7+/v7+/v7+/v7+/v7+/vr9//X8//P8//n9//7+/v//+///+v//+//+/fv+/+/z+Pj+/+3z+uvv
        9P3//////vn08f///PDr7Pr8/+Hv/8rm/32q5xxbrCd12Q9s4QNq6QBp8ABq8gBr8gJt7QVt6AVs6wBo
        9QBl9gBl8AVq7xBv7hVw6RNs3w9o1xJo2A1m1QBCtRR06gtw6gBf3gJu8Qh1+QBo8QVu9Qls7ABj3QRk
        2g1v5Qpy6wJs5wFu6A5z5xpx0ylqtbbZ//H8////8///7///+f////////7+/v7+/v39/f39/f39/f7+
        /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v/////+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
        /v7+/v7+/v7+/v76/f/y+//w/P/3/P/6/v///v3///r///j///r8+Pf////9/v/7/v/5/P/09vf////7
        +fj/+fn///719Pj2/P/q+f/F4v+Sv/gTTZgocc0abtgSbeAObuQQb+QScOEWcNwVb94Qb+cLa+cNa+IX
        cN8jddsoctAkZ74cW7M8fdlPl/wVaNsad/IAY+QAaesHePcAY+IAae0HbO0NZ94DW80CXMsIadsEb+gA
        a+gJceobdeQpcs01a6ra+f/4/v////D//+7///n////////+/v7+/v79/f39/f39/f3+/v7+/v7+/v7+
        /v7+/v7+/v7+/v7+/v7//////v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
        /v7+/P7/+v3/+f7//P3//P7+//7+//79//79//79//7+/v7+/v3//P7//P7//v7+/v7+//79//79//77
        //79//3/+vz/8vv/6fj/3vb/eZvJTHewKlufKGGsNXHDN3jNNHfOMnfOL3XJM3fKMHXEKmuwK16WRmuX
        hpy/uMnw1Or/pc3/ElPGEmvxAWv4AHD3AGXdAHPnAGfjFXjyHmnXAB+HFGnWDHLpAHH5AGLuAGHpGW3k
        M3PIbJvT2vv/8f//+vHo///1///8/////////v7+/v7+/f39/f39/f39/v7+/v7+/v7+/v7+/v7+/v7+
        /v7+/v7+/v7+//7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
        /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v/+/v/+/f/+/f/+/f/+/f/9
        /v/9//r8//X7/+/6/9vs/7fR9Za35HKZ0E56uT1uskBytEx9tUt7r1qKvoaw3b/c++z6//38//36/+Pr
        /5W19x1dyRVw8wBr+wBv+wBp5gN16hB57g1m1QxRshVauxhv3QBg3waB/wBe7xZ39xxmzDZpr8vu/9jy
        /+r3/////v/99v///v////////7+/v7+/v39/f39/f39/f7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
        /v/+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
        /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/f/+/f///f///f///v7//f/+/f/6
        /P/0+P/v+f/q+v/j+P/d9//U8f/T9P/R9v/U+f/U9//S8//d9//s+P/0+P/08Pbn6fHl+f9pmMsfb8gL
        cucAZfEAZvcAY/INa+0kdeQYYsI4gdUQX7obeu8GbvcAVuwKcvssfd4bVZagw+vo+f/p9P/3+v/9/f3/
        //v///7////////+/v7+/v79/f39/f39/f3+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7//v7+/v7+
        /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
        /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/P7/+v3/+fz/+v3//P3///3///7+//3+//7+//7/9vn+
        7/X/8Pn/6/n/4vH/2u3/2O7/4fX/6Pz/6vn/7/n/9PT/9/P+//7/9v//3P3/QX2rGXXIAm7eAGbuAGj7
        C2j7HWnrMGrKMGm4bbj/EmvGAF/bA2z5E3T/DGLaIWKnbZa37P3/7/L3//r///v/6e7v+v/+/f//////
        /////v7+/v7+/f39/f39/f39/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+//7+/v7+/v7+/v7+/v7+
        /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
        /v7+/v7+/v7+/v7+/v7+/v7+/vz9//f8//X7//f8//r9//79///+/f/++///+v//+//79vz39P/9/f/+
        //v+//v9//r9//f6//n6//r5///5///8/v/9+vz89uP3+MHw/x9rnBJ2zgBv4QZy+RBy/xpp9i5o3zNW
        n7fi/z+K1gBewhJ8/wBi7Rxx7yhoxkt2oer///f16///9P/7+v/3/fb+/+/+//v///////////7+/v7+
        /v39/f39/f39/f7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v/+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
        /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
        /v7+/v7+/v7+/v76/f/1+//z+//1+//5/P/+/f///v3///r///f//vT///b///f///X/+/L/+fL//PX/
        /vv//P//+f//9/j/+fP///T///L9//je+/+Jw+YTZ6kPd9wBbugNc/QRZ+kZWtQ+aseetePR8/8eaLof
        gfEAXuMNbu4jac5DcbHB2PL9//z/+eb//+v//e3/9vLz/f/m9v/6/v/////////+/v7+/v79/f39/f39
        /f3+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7//v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
        /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
        /v7++v3/9fz/8/z/9fz/+f3//v3///79///4///3///1///0///0///0///z///y///1///7//f///r/
        ///4//7r//3d///m9P/52P7/S4rGFGjHEXPvBGnuEWvoFmHNNGy+f6PZ6Pn/zOj/HWLDDWrpCGvrJX3n
        HViWpMPk8/r/6+Pj///x//jc///m///x8/z/6/j/+v3//////////v7+/v7+/f39/f39/f39/v7+/v7+
        /v7+/v7+/v7+/v7+/v7+/v7+/v7+//7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
        /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/vz+//f9
        //f8//n8//r9//79///+/f//+v//9///9///8//+8f//8v//9///9///9//69/zy/v/6////9///6///
        5v//7ub9/7/r/xtdrhVo2xVv9g1m7CBs3DRzxG+cz937/+3//6XB4xdZvxJp6R126RZfs4Gu0Oz+//X1
        ///8///98v//6///3v//7ez0/+/5//r9//////////7+/v7+/v39/f39/f39/f7+/v7+/v7+/v7+/v7+
        /v7+/v7+/v7+/v7+/v/+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
        /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v78/v/6/f/6/f/8/v/8
        /v///v7//v3///v///r///r///r///r///v//v3//v3//v3+/f/7/P/k4uj///f///D//Ofw+vTX9f9x
        oN4YWsEqd/UTZekrd+8oZ79Thbrc/f/o///q//95msE0c9UhbuMQWLZcldLh/v/s9PP8+///+v///f7/
        //T//+n//+/3+//z+f/7/v/////////+/v7+/v79/f39/f39/f3+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
        /v7+/v7//v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
        /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v/9//79//79//79
        /v/9/v/9/v/9/P7+/P7/+v3/+f7/+f3/9/3/9f7/6fX3+P/+///4/Prv///87/z/1PP/MmGyP37sF1zV
        JmzdJGLAZ5bT1vr/6v//1ern5P3/Sm+bM2zBI2TAO3K7z/b/6fj/+/z4/Pz//Pv//Pz//v/9///0///2
        +v3/+fv//f7//////////v7+/v7+/f39/f39/f39/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+//7+
        /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
        /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7//f//+///+v//+///+//+/f7//fz+/vr+//r+
        //n+//X9//P8//L8//L8//D8//D+/+b78vP/9/P78fP19u/y/+Dr/4yp9CNPrChiyUJ/3yxksWyb0dP1
        /+P5/+37+e///8Pe/y9WikJ3sF+VzLzg/+P4//j7///9//r//vf///P9//X8//z7///8//7//fz/+///
        /v////////7+/v7+/v39/f39/f39/f7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v/+/v7+/v7+/v7+
        /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
        /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7//v3///r///j///r///v+//38//36/v/5/v/5/v/1/v/z/P/y
        /P/w/P/w/P/u/P/u///v//jx//Lw+O77/f/q7f/k7/9Sbb1TfdZThNorXqR3oczR8P/t///2///q8vLn
        9v9beKVQd6tumLvY/P/j+f/x+v/p5/r9/P/5//31//vz/v/z+//5+P/8+f////r///f///z////////+
        /v7+/v79/f39/f39/f3+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7//v7+/v7+/v7+/v7+/v7+/v7+
        /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
        /v7+/v7+/v7+/v7+/v7+//79///7///6///7///7/v/9/P/9+v7/+f7/+f7/9/3/9f7/9f3/8/3/8/3/
        8/3/8///9v/4+P/z///5/f3/8PL/zdn/NlGUQGesK1OOjLDY2vD89v/+///5/v/7+P3/4e//LUp9b5C9
        5P7/3O7v+P7/+Pr/+fj/9Pf/+f/9+f/4+f/9+fz/+fj/+vr////6///2///8/////////v7+/v7+/f39
        /f39/f39/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+//7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
        /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
        /v7+/v7+/v7//f//+///+///+/7//fz//fz+/vr//vr+//n+//n+//n+//n+//n+//n+//n+//r//f3/
        /P//+f//+f/7/Ozx/2R0kU5rmGSGtMvr/+b8/+zz7P//8v/76vr07/b7/z1Ob3ORwM/r/+32+f//9/Pw
        6P/+//T7/+71//r+//7/+P//+P/+/fr7//r7//7//f//+v///v////////7+/v7+/v39/f39/f39/f7+
        /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v/+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
        /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
        /v7+//38//38//38/v76//76//78/v78/v78//38//3+//3///v///r///r///j//vv/9f3/8fj/+vT/
        //f2/vSHnJq01uPb/P/f+f/t+Pz///X/9eP///H//vzU2+6ovdzT8f/k+v/48PD///T///Xk5N7v/v/o
        9v/8/P///vv///T///P///j6//3+/f/+/f///v/////////+/v7+/v79/f39/f39/f3+/v7+/v7+/v7+
        /v7+/v7+/v7+/v7+/v7+/v7//v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+
        /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/P/9/P/9
        +v/++v/++v/++v/+/P7+/P/9/v/9/v/7///6///4///4///2///2//76//j///j///jz///y7PPe8f/3
        4f//1/r96Pz//f/+///v//vm//7w//378fr/4fn/3Pr/3O7///78//vt//jo///42u3y7P7//vv///z9
        ///z///v///x+v/3/vz//vv///7//////////v7+/v7+/f39/f39/f39/v7+/v7+/v7+/v7+/v7+/v7+
        /v7+/v7+/v7+/w==
</value>
  </data>
  <metadata name="toolTip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    <value>17, 17</value>
  </metadata>
</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)
Sweden Sweden
Article videos
Oakmead Apps Android Games

21 Feb 2014: Best VB.NET Article of January 2014 - Second Prize
18 Oct 2013: Best VB.NET article of September 2013
23 Jun 2012: Best C++ article of May 2012
20 Apr 2012: Best VB.NET article of March 2012
22 Feb 2010: Best overall article of January 2010
22 Feb 2010: Best C# article of January 2010

Comments and Discussions