.:*#zxMW@@@@@WMxn#*;.                                                                 
                                                           `;#x@#####################@M#i.                                                            
                                                        ,+M###############################M#:                                                         
                                                     ,#W#####################################@z:                                                      
                                                  `iM###########################################W*`                                                   
                                                .+@###############################################@#.                                                 
                                              .#@####################################################z.                                               
                                            `+@########################################################z`                                             
                                           iW###########################################################@*                                            
                                         .x###############################################################M:                                          
                                        *@################################################@##################`                                        
                                      .n#################################################W###################M,                                       
                                     :W#################################################@x####################@i                                      
                                    *##################################################@nW#######################                                     
                                   z##################################################WznW#######################x`                                   
                                 `n##################################################x#zz@########################M.                                  
                                `M#################################################Mz#z#n@#########################W.                                 
                               `M################################################Mz#+z##n@##########################W,                                
                              `M##############################################@Mz#++z###n############################W.                               
                             `x#############################################Wn#+**+z####x#############################W.                              
                             n###########################################@xz#+***+z#####M##############################M`                             
                            ##########################################@Mn#+*i***+z#####zW###############################x                             
                           *########################################Wx#+i;ii***+z######z@#################################                            
                          :#######################################Wn#*;;;ii***+z#######n@#################################i                           
                         `W#####################################@n#i::;;ii***+z########x##################################@,                          
                         n#####################################Wz*:::;;ii***+z########zW###################################M`                         
                        i#####################################W#*,::;;ii***+z#########z@#####################################                         
                       .@#####################################z+,::;;ii***+z##########x######################################:                        
                       n#####################################M#;::;;ii***+z##########zW######################################M`                       
                      ;######################################x#::;;ii***+z###########n@#######################################+                       
                     `W######################################x#:;;ii***+z###########zM########################################@.                      
                     *#######################################M#;;ii***+z############x@#########################################z                      
                    `@#######################################@z*ii***+z############nW###########################################,                     
                    +#########################################x#i***+z############zM############################################n                     
                   `@#########################################@z***+z############nM##############################################,                    
                   *###########################################M#**zz##########znW###############################################z                    
                   W############################################n+#z##########nM@################################################@`                   
                  ;##############################################nxnnnnzzzznnM@###################################################+                   
                  x#############################################W@@@@@@@@@@@######################################################W                   
                 .############################################Mz@##################################################################:                  
                 *##########################################W+#@###################################################################z                  
                 M########################################W#i#W####################################################################@`                 
                .#######################################@zii#W######################################################################;                 
                *#####################################@nii*#W########################################################################                 
                n####################################x*ii*#W########################################################################W                 
               `@####################################x*i*#M##########################################################################.                
               :#####################################@#+#M###########################################################################i                
               *######################################x#M############################################################################z                
               z######################################@M#############################################################################M                
               M#####################################################################################################################@`               
              `#######################################################################################################################,               
              ,#######################################################################################################################;               
              ;#################################@########@############################################################################+               
              *#################@......######Wi`  *####z. `;W##########,.....*####M...######x;,.,:#@#####,..n###z..:##################z               
              ##################@      *####x`    *###+     .@#########`     ;#####   :######      .W####   i###i  `##################n               
              z#################@   :::####W`  `;;n##M   i`  +#########`  ,::*####;   `######  ,*`  i###@   ,###.  `##################M               
              n#################@  `#######i  .W#####i  *#n  .#########`  @#######. .  W#####  *#n  `###W    @#@    @#################W               
              x#################@  `######@`  n######.  M##`  M########`  @######W  *  n#####  *#@  `###M    x#n    W#################@               
              M#################@  `######x  `@#####W  `@##,  n########`  @######n  n  +#####  *#x  ,###n  ` +#+ `  M#################@               
              M#################@   ```n##z  ,######x  `###;  #########`  ***x###*  @` ;#####  ix,  z###z  : ;#; ,  x##################               
              M#################@      z###  :######x  .###;  #########`     ####: ,#: .#####      +#####  + .#. *  n##################               
              M#################@  `iiiM###  :######x  .###;  #########`  ```####` ;#i  W####      z####+ `n  x `n  z##################               
              M#################@  `######z  .######M  `###:  z########`  W#####M  ,*,  n####  in` `@###* `@  * :x  ##################@               
              x#################@  `######M   W#####@   W##.  M########`  @#####z       +####  *#;  z###i .#, . +M  +#################@               
              n#################@  `#######`  i######,  z#M  `@########`  @#####i  ,:,  ;####  *##  *###; ,#*   xW  *#################W               
              z#################@  `#zzn###+   innM###  .n:  i#########`  @#####,  @#@  .####  *#n  :###: :#z   @W  i#################M               
              ##################@      ,###@,     ###@.     `W#########`  @####@  .###.  @###  *#W  `@##. ;#W  :#@  ;#################n               
              *#################@      ,####W;    *###M.   `x##########`  @####x  ;###;  x###  *##`  x##` ;##. *##` :##################               
              ;##################xxxxxxM######Mz#nW#####nzn@###########Mxx#####@xxW###Wxx@##WxxW##MxxW##MxW##@@###MxM#################*               
              ,#######################################################################################################################;               
               #######################################################################################################################,               
               M#####################################################################################################################@`               
               z#####################################################################################################################M                
               *######################################################################################################################                
               ,#####################################################################################################################i                
                @####################################################################################################################.                
                n###################################################################################################################M                 
                i####################################################################################################################                 
                .###################################################################################################################:                 
                 x#########################################################Mn@#####################################################@                  
                 *########################################################W` i######################################################                  
                 .########################################################x  :#####################################################:                  
                  n########################################################;.n####################################################M                   
                  ;###############################################################################################################*                   
                   M############@#:.`,z###x::n+..i@#####..#*:;##W+:..:n###M::*####+,.:x###W*,..:x###+:::::;##xi,`.iW#############@`                   
                   i############M      ###x  .    *###+    ` .##n      n##x  :###;    `M##z      x##;     `##;     .@#############                    
                   `@############;#ni  .##x   ,:  `##@`  :.  .##@:#z;  :##x  :##z  i#  i##W;#z:  ;##+::,  ,##zizz.  z############.                    
                    *##############@M`  W#x  `@@`  W#z  :#n  .#####@n  `##x  :##: `@#, `#####Wz  .#####:  n#####W*  *###########z                     
                    `W###########M:     W#x  :##.  W#*  ##W  .###n,     ##x  :##  `++,  @##n,    `####z  ;###@+`    i###########.                     
                     *##########x`  .`  W#x  :##.  W#i  n#W  .##z   ,   ##x  :#@        @##   ,  `###@.  M###;  `.  i###########                      
                      M#########:  n#,  W#x  :##.  W#i  z#W  .##. `M#`  ##x  :#@  `iiiii#@` `M@  `###+  *###n  :@n  i#########@`                      
                      :#########` .##,  W#x  :##.  W##  i#M  .#W  :##`  ##x  :##` `@#####M  i#@  `##W` `@###+  z#n  i#########*                       
                       z########`  MM`  W#x  :##.  W#M   +:  .#W  .@n   ##x  :##i  iW@x@#M  .@z  `##i  ;###@+  i#i  i########x                        
                       `@#######;       M#x  :##.  W##;      .##,       @#x  :##M`     z##.      `##       @M       i########,                        
                        ;#######W,  ,i  x#x  :##.  W##@;`.+  ,##M.  :;  @#x  :###x.    ###x`  ;:  @#       @#+   +` ;#######+                         
                         z########xM#@@@###@@@##@@@#######x  :###@xM#@@@##n  :#####Mxx@####@xM#@@@##@@@@@@@###WxW#@@@######x                          
                         `W###########################@###i  *############i  i############################################@.                          
                          ,@##########################+.;,   x##########W,   n############################################;                           
                           i##########################:     +###########@   *############################################+                            
                            +#########################ni;;*M#############;*x############################################n                             
                             z#########################################################################################x`                             
                              x#######################################################################################M`                              
                              `x#####################################################################################W.                               
                               `x###################################################################################W.                                
                                `x#################################################################################M.                                 
                                 `z###############################################################################x`                                  
                                   ##############################################################################z`                                   
                                    i@##########################################################################+                                     
                                     ,W#######################################################################@:                                      
                                      `z#####################################################################x.                                       
                                        i@#################################################################@*                                         
                                         `z###############################################################x.                                          
                                           ;M###########################################################Wi                                            
                                             *W#######################################################@+`                                             
                                              `+@###################################################@#.                                               
                                                `*W###############################################@+`                                                 
                                                   ;n###########################################xi`                                                   
                                                     .*x#####################################M+,                                                      
                                                        .*n@#############################@x*,                                                         
                                                           `,*nM#####################Wn+:`                                                            
                                                                `,;*#zxMMMWWMMxz#*i,`