8X.                                                                                                 
8X.  .  . .  . .  . .  . .  . .  . .  . .  . .  . .  . .  . .  . .  . .  . .  . .  . .  . .  . .  . 
8XXX.       .         .         .         .     8    S.       .         .         .         .       
8SS88..   .    . .  .    . .  .    . .  .    .  .@888@; .  .     . .  .    . .  .    . .  .    . .  
X@X   8SttSt;@.;%%%;;8%     .SX; t%%S%S%;.@; ;St@8S8XS;tttttt8.%t%tt8:8:;%%t:8;   :@S: t%%%%%t .XX. 
@8X8X:888888S@88888888@Xt  8 8888888X8S8@88StX@@8X88888888888  X888@.X@888888@.%;888888888@888@8.8
X8 . S@8@88@t:;S8X8@88  ;X@8X8;tt%St @8S88 X;888S88888@@@X@8t@8X88888;;@8X88@ %%8@@8S8@::;S8S88X8t
8X@S8.@@888%tS:::t8 8@S88..@t.;:;S%%SX8t88X8%%%t.8888 StttttS% XXS8S8@@;:SS8S88%X888@8S8;:::;XS8S@88
8X;8t;X8X@8:  .  . %@S8@S::t8X88888888888@88SS..:8@88S;  .:::;.@888@tX   .;88X8SS8S88t;.    . 888X8@
8X8 .;%@88S::      t88X8  %88@88@:%SS; :8S88SS .:8S@8X;. 8 ; 8 88@88;t   .      @88XSX%  .    X8888X
@888:. 8888  .. . .%88St   XX88:X;:::;X%SS88@t .;8888@S88@@88@.S88X8;t          8@888@8.S8X8%.:@S888
 SS8t88X8   .    t8888  88@8@8@88@888S88X@tS .XSSX8888X8888X%8888Xtt . .      .;888X8X@8@8X@888S8t
 .X.  %XXSX@   . . 8%ttX :;8.8: . t;8@%@S@X8%t . t;@.88 @t8:.8%%SX ;    .    . :@;@88 8;  8:88%:
  .  .  . . . . .  . .  . .  . .  . .  . .  . .  . .  . .  . .  . .  . .  . .  . .  . .  . .  . .  . 
  .  .  . . . . .  . .  . .  . .  . .  . .  . .  . .  . .  . .  . .  . .  . .  . .  . .  . .  . .  .