.:.. ..  SXXSSXS   :                         ....  ..  .
                    8@::::%%::::;:::;%t%XXXt%%88   ...... ...................  .
                  @:::::t%t%::::X88%X;t:::;:;::::XX  .... . .... ........:.... .
                8:::::::::::::;tX8%t%8:::::::t;::::8 ....................:..... 
               8::::::;:::::;;%X88t:;:X:::;;;%%:%:::8 ... ..................... 
              X;::::::X88%t;ttXXX%;:::tX;tt%:;;:%::::@  . ..................... 
            S8::::::%8%ttt88%tXttt%:;:;%X%Xt::::::::::@8;.t%t. .................
       .8;;::::::::tt8%;::;8XXt%;:t8X;%XXtX:;::::::::::::::::::@8t .. .........:
      @88t::::::tt8%%%%:;:;8Xt:::::;X8X;;:%%t:::tt%%::::::::::::::@X    ........
      8:;8%::::::;8t%;;%t;%X%::;;::;X%%:::;:;::t8t8%::::::::::::::::8.. ........
      @;;;;8::::::8;;:;;%88t;::%t:::;;%:::::;tX%%88;:::::::SS::::::::;;.........
      S ::ttt::::t8;;;;8tX%t%;tX8%;X%%X%@8888; .;t8t;::::::::;%;::::;%@.........
      SX.88X%::::;:t: 8SSS%%@@%Xt:@8tS;    .:     :%8:;;;;t%t;;tt;@;tXt8........
      @:t%::::::::;t8         88@S                   S:%XXX::tX8X%;;X8t;  ......
       8;;SX%%t:::t                                   88%Xt;8XXXX;:X@t;%@S.... .
       %;::;888X::tX                                  St%88t;8%t:::8t:;.:8... ..
       ;:;;%;;;%8tX%.                                 S%t;t:t%::::@::.:;.8.... .
         ;tt8:;;;:% X.                                StX8%::%%::@t::::::X  .. .
       %;:;%X8;;;;;;..                                S;t;8;;%X::t88;::::.%@.. .
      8t8;;;:888t:.8.                                 88X8;t88%%8%@X@%.:t8@@....
      %888t:;;;: %                          ::       :Xt%;t88X:%%8%8t;t:.:8 ....
     88t%X8;;;; .;8@8@%:             t88   .:.. @  .:%X.tt;8X%t%%%Xt:;.::t@.....
     %%;X%::;;; 8@ ..: X%         t . @S%.  :@  @@88  ;%%%%;%%:t%8Xt:::;X:....
     %t8t;::;;;..;    .XS %         .;;. .      :8... . ;8::t%%%t;:t;8;.:.88....
     88;;:;t;;;; 8X:   ;X8  :      .tt.     S8888 .::..:8X:::%%X%t:::;t:::8t....
     t;;88;tt;;;;;.@X888X; @8      .:  ;S88X%;X  .::::.;8%;:t%8X%X:::::::: .....
       :8S:;8S;:;;;:;:;: S8;         8 X8:;:;:: XX@8 ..tX8:::t%8t8X;;;;:;8......
      :;t8::SX: S ;  SX:                ;X888.:.%   t .t8%::t;8X%%88;;;;8@..... 
    S  :X8t::8 S.:t                                 % .%tt;;:t%%8Xtt;;;;8X..... 
    %8@ %.%X%8.:                                   ; .:;;:;;;;XX;;:;;;;;8;....  
        :;tt:t:X                                  .8.:;::;;tX::;t:;;;::t@.....  
       @;;;t::% .          ;     :.              .8.:;;;;;;;t8X8::;;:;t8 ..... .
       %.8Xtt%%:X.        S X.;S  8;S:          :8.;;;;;;;::::tt;;;;;;:;88 .... 
         S8;;8:..8        X;;::;;;;..t         .8 :;;;;;;t:;t;%%:;:;;;;::8 .... 
          : t:;:; :       .S@@ @Xt;:.     .   .8 .;;;;;;8tt:%8@@tt;;::;::.......
           :.;;;;.X                       X   % ..:;;;;;8;;tt::;:;;;;;: :.......
            8;t@t:X     .8 .. X .%%: 8t       :@X.::;;;;;tt;t;;;;;;;.8t.........
            t:;;.: :  SS%;;;;SS%8SS;;;t      ;8 .:;;;t%tt;::;;;;: ;...........
             % ::t  S8@;;%X%SSSt;Xt;;@@       %8.:;;;;;%::::;;..............
             S:;;: S   .8;;t8S%t@8t;;:        ;X.:;;;;;;:;;;;::...............
             %.;:;. ;   XX;;t888@t;%:X         ;8 :;;;;;;;;;;;;8 @..............
              ;.;;;: t   .X:t%tt; 8;         t8 .:;;;;;;;;;;;;;t: ..............
                 ;;;S      .:             8 ..:;;;;;;SX;;;;;; ............... 
                : :;:: S     .            ;8.::;;;;;;;8SS88X::.8............... 
                 X.;.::.%   .          t8 .:;;;;;;;;;t%XSXXS@88;............... 
                   : S.;.8;         .S .:;;;;;;;;;;;;8SXXXXX%8   .............  
                      S;;:.        ..:::;;;;;;;;;;::;XXXXXXXXS  ..............  
                       .::;;:::::;:::::::;::::::  ..:SXXXXXXXX;......... ...