..tt;t;t;t;t;t;t;t;t;t;t;;:                          .  .  .  .  .  .                                  
  . . t;SX@X88.. .8                        8t    . .. S S SX@X@@ S88tt;;;;;;;;t;;t;;;. . . . . . . . . .  .  . .  .  .
   . %8 8S;%.    .;tt%%%%%%%%%%%%%%%%%%%%tt: . .      :;:;.tt%tS8 %     .:.::::.:.:.::88@@@@@@@@@@@%SSt   .  .       .  
  ..% 8      .  .                          .          .   .                     8@8@888@ 88@@@@@@ 8   .S8.....  .     
 :88 8     .      . .   .  .  .  .  .  .     .  .  .      . .                                      8.8 88S88888S.   .  .
.8 @          .  .    .            .    . .         .  .     .                                     .:;;8Stt 88S S..     
; S       . .   .   .   .  . . . .   .      . .  .      .  .                                          .    .: :  ..  .  
t :.          .   .      .             .  .        .  .                                                 .  .  ;88S:     
;t: .  .  . .        . .    .  .  . .        .  .        .  .                                        .   .   : S 8:.  . 
;     .        . . .      .      .    . .  .      . .  .      .                                        .    .: S S..    
;       .  . .        .      .      .         .          .  .                                 .    .      .  : 88;.  .  
:     .  . ;88888;888888888888888:     8888888888.  . . 8888888888S%  St888@88888888888t;. ;8888S .  .  .  . .8@8:.     
         :  %:::;8S;;:::;t%%%t%t@tt.;tt8ttt%%tt;. ;t: ;t;;.:;;t;::@S;:@8::.   ::;;: ...@@..S;:::8.    .    .   8%.. .  .
;    .  .: X.:  :   8 @ .  @ :;ttS8;;. .8.   8.::.; X...  .  8 ..:.8 : ;;.. :   :   ..  ;  .:.8.. .    .:X t 8:.      
;        : %.:. ;   8 . @.:. 8 .....;.   :@. . %.::.; S ...S:  t :::.@ ; :X .  X XS  ..8X :  .:.8.   .... 8 8  :  .  .  
;.. . ...: %.:. ;   8 . @ .:.8 ....@X   .:  ...% ::.t.@..   ;..t%..:.8 :.;t:..8@8S.   .S X 8X ;.8...t@88 S88;      .    
;;   .      :;: ;S@@;   88@tt; ...888:.  .Xt8%t .:8 X 8;:. .X:X8...:.8 @88t:..XttS    .  S:tX.;.8         88.   .     . 
@888%88@ % S::. ;%8@....@88:....:: ;.@.....;S..:;: :. ;8...::;@.::.::8 @88:::.X88;.......:::X ;.8.88 @;88XS   .   .  .  
.tSt::. 88%t;:.t:@;t.::;:::8::::::@ ...::. 8....8t .%  ..:::%.:::::t .:   .:S;.;.::::::.:t .:.8;XS.  ;:   .   .       
      :..t %t:  .X  ..... . ......    .....  . ...      ...... ......      ...   .......... :::.8. .      .    .   .  . 
  .   . .: S;:.:.X....... ........  ........ .........:tX88888888@S%tt::............:....: X.:;.8..     .    .          
   .     :  S@XXX%                .      .::;X8@t.:%88@XS   S  S S X @ @SSSXXX@@@8888888XS  SSS@;88XS%;: .      . . .   
     . .  .  .      .  .  .  .  .    :%X8%.8S        .;tt;:;ttt%tt;;::....                 %   8 @SX8888S88.. .       . 
  .        .  . . .     .      .:;X8:t8X         ..;tSX8@%@88S@@SXX%%%t;;.             ;t:   ;SS%SX;;:.  8 %@: .   .    
    .  . . ..........:;t%SS888S t@ 8::;;:..;tt%SSSX8@%X8SXS@SX@88XSXSS8@%XSSt;;:. .S888@@8888@8@88888S8@  S%   .    . 
     ::tSS888S8 8 88888@@88@8X8888888XS8X8SXXX@S%@%8S8SXSXX@@S@8S@8@@88@88888888@8XX8888@S;t;;::.  . 8X@XX888t%ttttt%tXX
.:tS@888 8888X8S88@88@ 8XX8X8X8888X888@888@888X8@8@@8X88888XXXS%@X@@8888888@X@@@@@88888888X8X@t;  @ S t%8888X88888888888
8Xt%S8 8 @88S8X@ 8888 88 SX88@888@%88:88888@X88888X88@888@8XS888X@@8@88@@@X@@888888X8S8S8888XXXXt;888888@8888 88 8888888
XX@8X888888888888@X8 8:88;  @8888%8@888@88SX8X8@88@@88S8S8SS8@SXX@8@8S8888X8XSS8X88@888888888X8@888@8@888888888888888888
88@8888@8888@8X88@888.888 S@888%88t@88@8S8X88888888888.X8X88@8@88X@X88X@88@88@8X8S888@88@X888%@X88S888888@88888888888@8@
8@8@88@.8.888 @888@@.X;88 88888.8;888:888888S88@8@%S@SS8SXS;S8S8X8X8XX88@8888888888888888.@8S8888888888@8888@SXXXXXX%%%S
8@8@S%%S88;8 88X8X% 888:88:888t888@@8S88t888XX8@8S@8SXX8@@@8%XXS@S@S8@888@@8888X@88888888888t@8@888888X8XS8S888@@@@@@88S
@888XS     %X SS 8888.8@X;888X888t@88888X888888@@8%@888X88@S@8X8SX@8SXX@8@88888@888S@XX8S8S8XX888@8X8888X888888X88X@@888
8@88 88@88S88888@S88888   888@S888@888888S@8888@@88@8@888888X8888888X888S8S8888@@888@@X@@88X888X88888X8XS888X@XS8@8@8@8S
8@888@8S888%888888 888S 8;8@ X888888XX888888X8888X8888@8@8S888SS8888888888888S8X888S8X@@@8@888888888@88X8XX@X88888888@88
@S@@8X88@@X 888S888%S8S8888@XS@888..XX@888S8@88X888888S88@888888@8S8888@8@@88XX@@8888888888S888S8S888888@88888S8888@8S88
8@888S8888SS8SS  X.     Xt8888888X888@@@@8X8@88888@88@888888%888XS8888888X8888S8888888888@@88@@888@8@88@@8X8S@@@X88X8888
 :@8@%8 @8S8 88888888t@%8X88X@8@888@8@8@888@8888X8X888@88@X88X88X8X@8888888XS88@XXX88@@888888888X88888888888888@@88@@SXX
 @88@S%XS@X88@8XtXS%888S:X8S88@8888888@8888888@@88888888888X8888@88@888888X%88@8X888@@@@8@88@X888888XS88888@XXS%%t:;tS%t
.  8888@8.8@8XXXttt;;88@S:88S8@88S@@@X@XXXX8X88X8S8@@88St@8S@8@8SX@8@888@SXX888X88@8888888@@@8@X@8@8@8X@X@X@%SX%SttSS%S%
   ;      t8@88S88@888% 8X8@%;:8XXS%:; .t%@888@88S8X@X@@8@@@X@@8@@888@SX8SSX888@S%tStt:;t%@@@SSXSS%SX@@X@@@X@X@XX@XXXXSX
          .:S8S@8888888 88@S88@88;: :tS8 ;tSXX@8X8S8888X888X@888SX88%%@St;;:.  tX88888888@;.:.:.;::;;tStt;;t;ttt%SSS%%S%
  .       :.::XS@@8S8X%t%:   . .  .::;;t;S@888SS@XS;  :8 t: S%.. ;: :::.:tSSSXX S@@888@8@@%@8888@@888@   ...:::ttt%%SSX@
       . .8  8%X8. :   : X88% :%: .XXt:@@@8@8: S8t .8%8t88S88X@8;..8 ;@88t . . X888888@X:88@ ...:.:::tX88@XSt:..:;ttt%%t
  .  . :  t@8;:XX8.X@X@:S@ X88X   ;SSSS%t:S%:;  .%;.X S;@SX8S%8.%SX8.%8;:. .    8@.:8:888888;.  .  .      .      . .  . 
    . . 8X8S:t :.8  X8XX88SS@tX.8@:%S@S%8; :.. @X%%..@%8;:8.@:.. %8:.: .    8t8S888 t8t:.    .   .  .   . .     .   
      .. 8XS :8%X.t8@88@888.@;   888Xt@ SX@;.tt %..8@8  X:88XS 88:. @X.   @S8%X8%X888;.  .                . .    .
 .  .   .  ...         ::          .         .  .. .:   .:     ..:; :.         . ;.t;t . :;. .    . . .  . .  .      .  
      .     .;88.@8  t;@88@S.   S88.:@X   8@   :8@: . tS.  X8; S@@88%%X   :%t:X.... .      ......            .   .  .   
  .  .  ..  88..S8;8S888.. XX..t%..8.%:@ S.8 8 X ;S ;;S;@. ::X%ttt..:8S% 8@88S     t8@88X@ ;;    .  . .  .   .      . 
       ..%@8X %.@S:%XS8%X% ;8X8;8t@%tX:8@S.88@.: .;.8 %88:;8 ;.@. StXt@8S 8888    :  X 8X8@ :@%        .       . .    
  .  ...:88@  8  @ %;%;8 ..8X8:8X :8S@.S;. 8:%: 8%8  :8;;%@..8.8.tt% 8;;t:.:8 @8   .%.  S8 8S 8 %..  .     . .       .  
   .  . ;8X.:;S :@ 8t::@t% XX8XSX;S;;S;:X8S%S%%88t8%t 8 %88:.@.8.X.; .XSS:888X88t. .@.: S  X@8  %      .       .  .    .
      . %t.   S@X: ;X: 8@. .S  :8X@8S.  @@ .:SSX@88t8@;. 88S :X8   tS;%8:t% @88  .8 ;  8  88 8; . .   . .  .   .  .   
 .  .   ..  .. ::  . .  ::  .   .:.. .;   ..   .:.:: ....  ...  ..  ..:. :..  ..    :88@88888888t              .      . 
   .  .   .  .  .    .       .        .              .    .    .    .   ..        . .:..:t;t%tt: .  .  .  . .     .     
          .   .   .  ..   .    .  . .  .   . .  . .    .     .    .  .    .    .   .     .     .              .  .  .  .
 .  .  .   .    .     .     .    .    .       .       .  .     .     . .    .    .    .    . .    .  .  .  .    .    .