.;i************************************************************************************************i;.                        
                      ;#*:,................................................................................................,:*#;                      
                    `#;                                                                                                        ;#`                    
                   `z.                                                                                                          .z`                   
                   #.                                                                                                            .#                   
                  :i                                                                                                              i:                  
                  #`                                                         ,             `                                      `#                  
                  #                                                         `@            :@.                                      #                  
                 .*                                                         `@            `:                                       *.                 
                 ,; ,.  `:   ,` `;i.  ..`i;    ;i.  ...i. ,i,   `;i.   `;i, `@`;i.   ,i:   :  : :i.   :i,   ,i:  `,.i, ,i,   `;i`  ;,                 
                 :; iz  ;@` `W`.x*;n; inzizz `x+iM, ;x#iM*#*W, .x*ix: `x+iz,`@z*+W` #zin+ `W  W#**W. #zi#: zzix* ,M#iM*#iM; ,x**M` ;:                 
                 :; `W` z#i ;z #*  `M in  `@` `  i# ;n  *n  *# zi  .x ++    `@.  zi `  `W `W  @.  #* W.    `  .M ,M  ;M  ;z  `  z; ;:                 
                 :;  n:`x.n #; MnzzzW`iz   W.  `:+z ;z  iz  iz MzzzzW x:    `@   +*  `,;@ `W  @`  *+ +M*.   `,;W ,x  :x  :n   .:ni ;:                 
                 :;  i#;* x`M` x,```  iz   W.`z#i+z ;z  iz  iz M.```  x:    `@   +* *n*i@ `W  @`  *+  ,+W: +z*iW ,x  :x  :n ,n#ini ;:                 
                 :;  `Mz. ++n  #*     iz   W.*+  ;z ;z  iz  iz zi     #*    `@   +*.M  `W `W  @`  *+    i#,x  .W ,x  :x  :n n:  #i ;:                 
                 :;   nx  .@i  .M*:*# iz   W.in,;zz ;z  iz  iz .M*:++ .Mi:#;`@   +*`W:,#W `W  @`  *+ z:,x:.W::#M :x  :x  :n z+,ixi ;:                 
                 ,i   ,:   i`   `i*;` .:   i` ;+;`: .:  .:  ,:  `i*;   `**:  i   :, ,+i`; `i  i   ,, .*+,  :+i`; .;  .;  .; `**,., i,                 
                 .*                                                                                                                *.                 
                  #                                                                                                                #                  
                  +`                                                                                                              `+                  
                  .+                                                                                                              +.                  
                   *:                                                                                                            :*                   
                    #;                                                                                                          ;#                    
                     *+.                                                                                                      .+*                     
                      .+#+iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii:            :iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii+#+.                      
                         `,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*i          *i,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,`                         
                                                                     ii        *i                                                                     
                                                                      ii      *i                                                                      
                                                                       ii    *i                                                                       
                                                                        ii  *i                                                                        
                                                                         ii*i                                                                         
                                                                          ii                                                                          
                                                                                                                                                      
                                                                                                                                                      
                                                                                                                                                      
                                                                                                                                                      
                                                                                                                                                      
                                                                                                                                                      
                                                                                                                                                      
                                                                                                                                                      
                                                                                                                                                      
                                                                                                                                                      
                                                                                                                                                      
                                                                                                                                                      
                                                                                                                                                      
                                                                                                                                                      
                                                                                                                                                      
                                                             ........```````````````                                                                  
                                                           .:::,,:::;:::::::::,,,:,,,...`                                                             
                                                       ` `:;;:,,::;;;:,,,,,,,,,,,,.......`                                                            
                                                        .iii;:,::;;;;:,,:,,,,,,,,..........`                                                          
                                                       .***i:::::iii;::::::,,,,,........`.,.                                                          
                                                      `;++*;;;;;;iii;;:::::,,,,.....`....`.,`                                                         
                                                     `:ii++iiii;i*ii;;;::::,,,,.......,,.....`                                                        
                                                    `;*i*#+**ii;**iii;;::::,,,........,,,,,,:,.                                                       
                                                   `i#zznz+***i*+**i;;;::::,,,,.......,:::;*+*i,                                                      
                                                   :zxMMWn#+*ii++**i;;::::,,,,,........:::ixMn#;`                                                     
                                                  `*nM@@W#+*;;*++*ii;::::::,,,,,,,.....,::;x@WM#:                                                     
                                                  ,#nW@@xi;;;i*+*i;;::,::::,,,:::,,......,:#W@@ni`                                                    
                                               ` `*nxW@M+i;;i*++*i;::,,,,,,,,:::,,,,.....,,*WWMzi`                                                    
                                                 ,z##zz+ii;;i*++i;::,,,,,,,,,,,,,,,,,,.....,nWx#i.                                                    
                                               `:iii;i*iii;i*++*i;::,,,,,,,,:,,,,,,,,,.....,;+#+i:.`                                                  
                                              `i*i;:;iiii;i++++*i;:::,,,,,,::,,,,,,.,,....`.,:;::::,                                                  
                                              ;+*i;;iiiiii*##++*i;;:::,,,,,::,,,,,,,,,,,.....,,,,,,,.                                                 
                                             `*#**iiiiiii*+##++*;;:::::,,,,::::,,,,,,,,,.......,,,,,,                                                 
                                             .##+*****iii*###+*;;:::::::,::::::::,,,,,,,,...`.......,`                                                
                                             i#++++***i**+##+i;:::::::::::::::::::,,,,,,,...........,`                                                
                                            ,####++*****+++*;;::::;;;::::::;;:::::::,,,.............,,                                                
                                           `+z#+###****+++*i;;;ii;;;;;;;;;;;;;i**ii;:,,,.,,.........,,`                                               
                                           :zz#+##+***++++*iiiiii*iiiii;;;;;i*#zzz#*;::,,,,.........,,.                                               
                                          .#zz#+#z+**+++#++***+#zz+**iiii;;;i+nMxxxn#*;,,.............,`                                              
                                          :zzz####+*++####+++zxMWWMn#+##z#iii#xMMMMMx#i;:,.....`.....,,,                                              
                                          +z#####+**+######znMWWW@WWMxMMMx#*#xMMWWWWMn+i:,,.,.........,,`                                             
                                         ,#z#####+*+######nxM@@@@@WWWWWWWMz#nMWMWWWWMMn#*:,,,,........,,,                                             
                                         iz##zzz#++#z#z###xW@@@@@@@@WWWWWMxnxMMMMMMWMMMxzi,.,,........,.,`                                            
                                        `#zz#zzz######z##zx@@@@@@@@@@WWWWWMMMMMMMMMMMMMMn*:,,,........,,,`                                            
                                        ,nzzzzzz#####zz##zM@@@@@@@@@@WWWWWWWMMMMMMMMMMMMx*:,:,......,,,,,.                                            
                                        innzzzzzzzz##z###nW##@@@@@@@@@WWWW@WWMMMMMMMMMMMx*:::,......,,,,,,.                                           
                                       `+nzzznzzzzz##z##znW@#@@@@@@@@@@@@@@@WWWMMMWWMMMMx*:::,,,,...,,,,,,,`                                          
                                       `#nznnnzzzz######zx@@#@@####@@@@@@@@@@@WWWWWWWWMMn*::::,,,,,,,,,,,,,`                                          
                                       .znnnnnnzzz######zx@##########@@@@@@@@@@@@@@@WWWMn*::::,,,,,,,,,,,,,.                                          
                                       ,nnnnnnnnzz######nM@##################@@@##@@@WWMx+;:::,,,,,,,,,,,,,.                                          
                                       :xnnnnnnzzz#++##znx@@@######################@@@MMx+;:::,,,,,,,,,,,,:.                                          
                                       ,nnnnnnnzzz#++##znxM@@@######################@WWMn*;:::,,,,,,,,,,,,:,                                          
                                       .nnnnnnnzzzz++##zznxW@@@#####################@WWM#i;::::,,,,,,,,,,,:,                                          
                                       .nnnnnnnzzzz#+##zzznM@@@@###########@@#######@@Wz*ii:::::,,,,,,,,,,::                                          
                                       .nnnnnnnzzzz#####zznMWWWW@@@##@@@###@@@@@@@@@@Wx+ii;:::::,,,,,,,,::::                                          
                                       .nznnnnnzzzzz#####znMWWWWW@@@#@@@###@@WWW@WWWMxn+ii;::::::,,,,,,,::::                                          
                                       `znnnzzzzzz#z#####znMWWWWW@@@@@@@####@WWWWMxxxxxz*i;::::::,,,,,,::::,                                          
                                       `znxnzzzzzzz#######zxW@@@W@@@@@@@####@@@@WWMMWMx#*i;::::::,,,,,::::;,                                          
                                       `znnnzzzzznz#######zxMW@@@@@@@@@@@#@@@@@@@WWWWMx#ii;;;::::,,,,,,::::.                                          
                                       `znnnzzzzzznz#######nxW@@@@@@@@@@@@@@@@@@@@WWWMn+ii;;;::::,,,,,,::::.                                          
                                        +nnnzznnzzzzz######zxMW@@@@@@@@@@@@@@@@@@@WWMMz*ii;;;::::,,,,,,::::`                                          
                                        *xnnzznnzzzzzz######nxMWW@@@@@@@@@@@@@@@@@WWMx#*ii;;;;:;::,,,,,::::`                                          
                                        ;xnnzznnnzzzzzz#####znMWWW@@@@@@@@@@@@@@@WWWMn+*ii;;;;:;::::::,::::                                           
                                        ,nnnzznnnnzzz#######znxMWWW@@@@@@@@@@@@@WWWMxz*iiiiii;;;;:::::,:::,                                           
                                        `znnznnzzzzzzz#####zzzzxMWWWW@@@@@@@@@WWWWMMz+*iiiiii;;;;::::::::;.                                           
                                         +nnnnzzzzzzzzzz#####zznMMWWW@@@@@@@@@@WWMMx#***iiiii;;;;:::::::;;`                                           
                                         ;nnnnznzzz#z#####z##znnxxMMMWWWW@@@@#@WWMxn#+*****ii;;;;::::::;;;                                            
                                         .nnnnnnnzzzz####zzzzznnnxxnnxMW@@@@@@@WMxz#+++****iii;;;;::::;;;,                                            
                                          #xnnnnnzznnzzzzzzzznnnxxxxxxxWW@@@@@WMxn##+++****iii;;i;::::;;;,                                            
                                          :nnnnxxnnnnnnzznnnxxMxMMMMWWWWW@W@@WMxnnzz#+++***iiiiii;:::;;;:`                                            
                                          `+nnnxxxnnnxxxxMWWWWMMWMMMMMMMWWWWWWWMMxnnz#++++**iiiii;:;;;;;,                                             
                                           ;nnnnxxxxxxMWW@@@@WWWWWMMMMMxxxxMMMxxMMMMxnz##++***ii;;;;;:::`                                             
                                           .nnnnxMMMxMWWW@@@@WWWWWWWMMWMxnxxMMxnxxMMMMMxnz##+***i;;;;;:.                                              
                                           `nnnnxxMMMMMMWWWW@WWWWWWWWMMMMnnxMMMMMMMMMWWMMxzz##+*i;;;;;:`                                              
                                            #nnnxxMMMMxxMWWWWWWWWWWWWMMMMnzxMMMMMMMMMMMMMxnz#++*i;;;;i,                                               
                                            *nnnnxxxMMxxMMWWWWWWWWWWMMxMxzznxMMMMMMMMMMxxz##+***i;;:;;`                                               
                                            *xnnnnxxxxxxnxxMMWWWWWWMMMxxn##zxMMWWMWMMMMMn#**+iiii;::;:                                                
                                            #nnnnnnnxxxxnnxxxxxMMMMMMxnz#++#znxMWMMMxMMxz****i;;;::;:`                                                
                                            #nnnnnnnxxxxxxnnnnnnnxMMxz#+++++##znxxMMMxxn#***i;;;:::;,                                                 
                                            #nnnnnxnnnxxxxnnnnzzznnnn##+++++++++#nnxMxz#**ii;;::::::.                                                 
                                            #nnnnnxnnnxxxxxxnnnnzzzzz####+++++++*+##z#+***i;;;;:::::.                                                 
                                            #nnnnnnnnxxxMxxxxxnnnnzz#######++++++++++++**ii;;;;:::::`                                                 
                                            #nnnnnnnnnnxxxxnxxnnnnzz#######+++++++++++++**i;;;;:::::`                                                 
                                            #nnnnnnnnnxxxxnnnnnnnnnzz#######++++++********i;;;::::::`                                                 
                                           `znnnnnnnnxxxnnnnnnnnnnnnzzz#zz####++++***ii*ii;;;;::::::.                                                 
                                           `nnnnnnnxxxxxnnnnnnnnnnnnzzz#zzz####++++**iiiii;;;;;:::,:.                                                 
                                           `nnnnnnnxxxxxnnnnznnnnnnzznzzzzzz###++****iiii;;;;;::::,:,                                                 
                                           :xnnnnnnxxxxxnnnnznzznnnzzzzzzzzz###++***i;;ii;;:;::::,,::                                                 
                                           *xnnnnnnxxxxnnnnnnnnzznnnzzzzzznzz##++**ii;iii;;:::::,,,;;                                                 
                                           +xnnnnnxxxxnnnnnnnnnnzzzzzzzzzzzz##++***iiiii;;;::::,,,,;:                                                 
                                          `zxnnnnnxxxxxxxxnnnnxnnzzzzzzz#####++**iii**ii;:::::,,,,,;:                                                 
                                          .nnnnnnnxxxxxxxxnnnxxxnnnzz#####++++**i****i;;::::::,,,,,;:                                                 
                                          ,xnnnnnnxxxxxxxxxnxxxxxnnnz#####+++*iii***ii;:::,,,,,,,,,;:`                                                
                                          :xnnnnnnxxxxxxxxnnnxxnnnnnzzzz##++*ii;;iiii;;:::,,,,,,,,:;:`                                                
                                          *xxnnnnnnnxxxxxxnnnnnnzzzzz##+++*ii;;;;;ii;:::::,,,,,,,,:::`                                                
                                          zxxnnnnnnnxxxxxnnnnnnzz##+++***iii;;;;;;;:::::::,,,,,,,,:::`                                                
                                         `Mxxxnnnnnnnnnnnnnnnnzz#++**iiiiiiii;;:;::::::,::,,,,,,,,:;;`                                                
                                         ,Wxxxnnnnnnnnzzznnnnzz#++**iiiiiiii;;:::::::::::,,,,,,,,,::;`                                                
                                         :@Mxnnnnznnzzz#znnnnzz#+***iiii;ii;;;:::::::::::,,,,,,,,,:::`