+++                                                                         
                                                   :********         'co$%%%%%i$+                 ********                                            
                                                   *%%%%%%%%        :%%%%%%%%%%%%i               :%%%%%%%%                                            
                                                  c%%%%%%%%%       ;%%%%%%%%%%%%%%%'             %%%%%%%%%                                            
                                                  i%%%%%%%%%      o%%%%%%%%%%%%%%%%$            *%%%%%%%%%                                            
                                                 :%%%%%%%%%%      %%%%%%%%%%%%%%%%%%*          ^%%%%%%%%%%                                            
                                                 %%%%%%%%%%%      %%%%%%%$c*$%%%%%%%i          o%%%%%%%%%%                                            
                                                !%%%%%%%%%%%     +%%%%%%%;   i%%%%%%%         +%%%%%%%%%%%                                            
                                                $%%%%%%%%%%%     c%%%%%%%    ;%%%%%%%^        i%%%%%%%%%%%                                            
                                               ;%%%%%%%%%%%%     i%%%%%%$    +%%%%%%%+       :%%%%%%%%%%%%                                            
                                               $%%%%%%%%%%%%     i%%%%%%$    +%%%%%%%+       o%%%%%%%%%%%%                                            
                                              i%%%%%%%%%%%%%     i%%%%%%$    +%%%%%%%+      *%%%%%%%%%%%%%                                            
                                             !%%%%%%%%%%%%%%     i%%%%%%$    +%%%%%%%+     'o%%%%%!%%%%%%%                                            
                                             i%%%%%i%%%%%%%%     i%%%%%%$    +%%%%%%%+     ;%%%%%%i%%%%%%%                                            
                                            :%%%%%% %%%%%%%%     i%%%%%%$    +%%%%%%%+    ^$%%%%%^i%%%%%%%                                            
                                            *%%%%%c %%%%%%%%     i%%%%%%$    +%%%%%%%+    :%%%%%$+i%%%%%%%                                            
                                           :%%%%%%  %%%%%%%%     i%%%%%%$    +%%%%%%%+    %%%%%%: i%%%%%%%                                            
                                           c%%%%%*  %%%%%%%%     i%%%%%%$    +%%%%%%%+   :%%%%%i' i%%%%%%%                                            
                                          *%%%%%%:  %%%%%%%%     i%%%%%%$    +%%%%%%%+   %%%%%%c  i%%%%%%%                                            
                                          i%%%%%*   %%%%%%%%     i%%%%%%$    +%%%%%%%+  *%%%%%i   i%%%%%%%                                            
                                          %%%%%%:   %%%%%%%%     i%%%%%%$    +%%%%%%%+  %%%%%%*   i%%%%%%%                                            
                                          %%%%%o    %%%%%%%%     i%%%%%%$    +%%%%%%%+  %%%%%i    i%%%%%%%                                            
                                          %%%%%%%%%%%%%%%%%%%%i  i%%%%%%$    +%%%%%%%+  %%%%%%%%%%%%%%%%%%%%%                                         
                                          %%%%%%%%%%%%%%%%%%%%i  i%%%%%%$    +%%%%%%%+  %%%%%%%%%%%%%%%%%%%%%                                         
                                          %%%%%%%%%%%%%%%%%%%%i  i%%%%%%$    +%%%%%%%+  %%%%%%%%%%%%%%%%%%%%%                                         
                                          %%%%%%%%%%%%%%%%%%%%i  i%%%%%%$    +%%%%%%%+  %%%%%%%%%%%%%%%%%%%%%                                         
                                          %%%%%%%%%%%%%%%%%%%%i  o%%%%%%$    +%%%%%%%!  %%%%%%%%%%%%%%%%%%%%%                                         
                                          iiiiiiiiii$%%%%%%%ii*  ;%%%%%%%^   c%%%%%%%   iiiiiiiiiii%%%%%%%iio                                         
                                                    %%%%%%%%     '%%%%%%%;'^;%%%%%%%$             i%%%%%%%                                            
                                                    %%%%%%%%      %%%%%%%%%%%%%%%%%%o             i%%%%%%%                                            
                                                    %%%%%%%%      +%%%%%%%%%%%%%%%%%!             i%%%%%%%                                            
                                                    %%%%%%%%       i%%%%%%%%%%%%%%%:              i%%%%%%%                                            
                                                    %%%%%%%%        o%%%%%%%%%%%%%+               i%%%%%%%                                            
                                                    $$$$$$$$         +$%%%%%%%%%i+                o$$$$$$$                                            
                                                                        !*iio;!                                                                       
                                                                                                                                                      

  .###..   ..o%%%%+.   .-c######c.   ..^^!!--'--.^!..        ..@##!########.   ...!%#####@!.. ..$%%%%i...i%%i%%..o##;......!%%%O$..!###O#####:...     
  .;$##c   ..@####*.   '#####@#$@@    .%#o####@###@-.        ..############.   .-$#######o#$....####@O...%##i@#..+###@.....;####@..!@#@####i##O..     
  .-###o... .O#O##*....#@#####%##$@....############-.        ..###$####@###.   .+######@O##@*...#####O...O#####..;$##!.. . :####@ .^#@####O##@#c.     
  .-###i!.. .O#$##*...o#@########%#;...############-         ..###i########.   .###########O%...%O$o#O...%##@@#..*%###'.. .:#@##@ .'###########o-     
  .######-. .O@ ##*...O#####cc#$#$@@. .$!;*########'.        ..######@#@#@O.   '@#####!$###*%o .#####O.  O##i@#..######i. .:##@#@ .-@###'+######o     
  .######o. .O####*...#####O..$@###-...^'-c#####^'-..         .#####c.         +#####!..@##@c'..#####O. .O##@#@..#######...:####@ .!###@..'@@#%#'...  
  .#%###O#- .OO#@#*... ####i..!##Oi--.....;#####.....        ..#####c.         ;#####...O@#@;'..@###OO. .O###@#..OO###O#;..:##$#@..!###@...###@%!-..  
  .#######$ .O####*...#####c..'####$!.....;#$io+.....        ..#####*.         *#@###...$@####..#####O. .O#O%##..i###### -.:##$#@ .!###%...*####i...  
  .#O####i@..O####*...#####;..-##iOi!.  ..^#####-.           ..#####@@@oo%-.   c####@   o##o@$..######...%#$$##..oO## #%%+.+#O##@..!###-...##i@#O..   
  .########$.###@#*...#####^..-@###+^.  ..+####@..           ..########@##'.   c####O   o###@i..$#####...%#####..@### ##@#.:#@%#@..^%$i....@###O$...  
  .########O.##@$#*...#####:..'##$:;!.  ..'####O..           ..########@##'.   o#####   i#%@$O..O####$...%#@@##..@### O###.;#%i#@..^i@#@...##*#O%...  
  .#####;###.##O@#*...#@$##:..^ ##@#!   ..'#####..           ..###########'.   o##O##   o#####..i#####...###@##..@### ^###!o#@##@..'#$#@...##@##@...  
  .#####.###+####@;...:o###:..-#####!.  ..:#####-.           ..##@@##OOi%O'.   *#O###   i#####..######...###@##..@####'$##@o#@#O@ .!####...#####@..   
  .####O.iiOOO####:...+##O#!...#####:.  ..+####O..           ..#;###+.......   ;@#@##   '#####..######...######. @####'.#O#:#OO#@..!###+...%#####...  
  .####%..####@#$#;...oO#@#...'#####!   . ;####%.            ..#####!.         :#O##@...i#####..@####o...O#####..@####.-%####@$#@..! ##: ..###%#@...  
  .%%$%@..o ##@#%O*...%#c##c..^#####!.   .*####*..           ..#####!.         c@@@##. .$#####..:@O###...######..iOc$#'.-###@###@..!##O*...#####%..   
  .####@..-#### ##;...-:#OO$..!#####'.   .;####c.            ..#####!.         !.@#i#-..@#####..!'##i@...######..@####-..O#%####@..^ #:@..-#####$..   
   ####O   Oo###O#*...$o@###..:$####.   ..!####%..           ..#O###!          ^.####i..$O####..;+$##@$-+c*;@@c..@####'. ^#@##$#@..^##;+..i$ii#@o ..  
   #####   '#%##%@*...O#####%@####@#.   ..+@###+..           ..#O#O#!          .#######@####@+..-oO#########@%'..@####'...@i##o#@..!##@O########'.    
   ####@   .c$####*....#@##########:..   .+###$...           ..@+cO#!          .;#%##########....i@###@######@...@####'....#O#@#@..!###########O...   
  .####@.....:##OO;.   +%##c#####@#...  ..;@#@o+..            .c%i##+.         . %%#$@#####@o.   .@##c######O....@####'.. ..@#oOc..!@#########@..     
  .##@##......@@!%*.   .!#%######@....  ...##+.!..           ..##@##+.         ...cO#######;..   ..o@#######^....@####;.....*@@!@..!O########i...     
  .!i$^o......###O;.   ...^;coco^.....  ...'-.....           ..$$$$$!.         .....:*ioi*....   ....-!;+*!......*o$c;+.....*##%@...;-..:!''.....