.,,::                                                
                                                                                                ;znxxn*`                                              
                                                                                              `:z+nnWxn,                                              
                                                                                              ;*znMxWnzn.                                             
                                                                                             .;innnxxnznz`                                            
                                                                                            .i.*#zzznnnnz,                                            
                                                                                           `i,.:+**#zzzzn+`                                           
                                                                                           ,;.`:;;;*##++zi:                                           
                                                                                          ::,``.;;,:iii#z*i`                                          
                                                                                          :.` `,i*i:,:i+##,:`                                         
                                                                                        `:`   `,:*i:;::i+x+i.                                         
                                                                                        ,.   ``.,i::;,:;+Mn:,                                         
                                                                                       `.``  ``.,i,::,.;#Mx;.                                         
                                                                                      .;```` ``:;::.::,:zWx+,                                         
                                                                                     `;``.````.,::;:i,.:zWWz,                                         
                                                                                     ....,....`...,;,..;MWWn,                                         
                                                                                    ,,.,,....``,`,,..`.,MWWn,                                         
                                                                                   ::.,,.```.```.......:MWWz,                                         
                                                                                 :;.,,,,,```````..`,,:.*WWW#,                                         
                                                                          :;ii+i,.`.:::,.````` `.....,:zWWW+:                                         
                                                                        ,*i,.``   `,:,..````  ````.`..+WW@M*;                                         
                                                                      .**,`      `.,,``````` ``````.,;nWW@Mi;                                         
                                                                     :i,.`     ``...`   ` ``  ````.,,+MW@Wx*i                                         
                                                                   `i:...   ``i#i.```      `````..,,:zMWW@M#i    ``,..                                
                                                                  `;....,.  `;z#.`` `       ``.`.,,:;nWW@@Mn*   .;#zz+;                               
                                                                `i;.,::,;,`.+zz;` `          ``..,:,*nMW@@nzzz;;*nxnz+*`                              
                                                               i#;.,:::i*:`;zi,```   `        ```,:,*nnxxxnnz#xMMMnzz#:,                              
                                                              iz:`.,;;i**,,+,        ```  `` ``..,:,+nzzznnnnznMWxnz##:,                              
                                                            `;z*`.,,i*++*i,.    `     ``` `````..,,,;i*###znnnnnxnz#++:,                              
                                                            :#*...:;*iii*i:`     `. ````` ` ```..:,.,:;:i+zxWnnnzz+*++:,                              
                                                           `*i,.::ii::i;i;:    `.````` `.` ````...,..:::*#zznxxn#i*#*i,,                              
                                                           .+,.,,ii::,:i:,.````` ` ``````` `````..``.,:i;i++###iii*i;,,,                              
                                                          `;,.,,:;i;i;;::::,.` `    `````   `.``````.,,,,,;i;i:;ii;,.`*:                              
                                                         ,i,`,,:,:;;;;:;;;;:,.```   ``` `   `.``.``.,,,,..,,::,,:,.``:+`                              
                                                        .*,`.,:;;;;;;;;::;:,...````` ``  ` ```.``...,,,,,,..,::..```,+:                               
                                                       ,i,`.,:;i*:;;;:,::,,,.``````````   ````.`.......,,,,...`.```,z#                                
                                                      :*,`.,,:;;*;:::::,:,::,.``  ````  ` `````....``.,,,,,...````:+:.                                
                                                     ,;`.,::;iiiii;:;::.`.,,,`              ```....`.,,;,,...````iz.                                  
                                                   `;;.,::*;:;i;:i;::,.,.,.`,               ````.,`.,,:,,,..````i#`                                   
                                                   ,;;#z#;;iiiii;;;i,:;::;, `              `,.`..,.,,:,,,..````:;.                                    
                                                `.***#nxz+**+i*i;;:::`:;,.`               .,....,;::::,,.`````.;.                                     
                                                :++i*#z#zzznz+*iii;i;:;i:`               `:.,...,::,,,...``` `i`                                      
                                               ,+i*i*###nxxxzz##ii:,:,:,.``              `,,``...:,,,..`.``  ,z`                                      
                                            `ii;.:*iiz+#zxnxz#zz**:,,:,,.`               .,```.,,,.,..`.`````;,                                       
                                         `,;i;.``,;;;++##nzzzzzzi:,,,,,.,.              `.````.`,......```` ;:                                        
                                    `  ,;ii;:,....:;i+++zzz#zzz#*;:.,:,.,:`````          `....,.......``````#i                                        
                                   `,;**i*ii::,..::**i++#####z#+i,:.,;,,..,.```   `      `.``.,.,.,....````+`                                         
                                 `,:**++#+i;:,,,...;*i*++#+##zz+i,,..,,,`.;,,:;`  ```   ``;+#i:......`````*#                                          
                                `+###z#+*i:::;::,.:iiii++#+###nzi,:,``...;;:,,i,   `     `,;:,:...,...`.`,z`                                          
                                ;#zz#++**;;i;;;:,,,:;;:;;ii#zznzi,.``.:.i;,```.,`   `    ..`..,...`.,````i`                                           
                                ;znz##+++*++**i:,:::::;;:i*+zMnn*:,.`.:::.`  ` `     ` ```.,``.`.``.``. .+                                            
                                :znz######z#z##**i;::i+;;;*+*xnz+i:,..:,.` ` ` ``      :*++*++;...`.`. `,+                                            
                                `#zz####znnnnnxn#+iizz*ii*+zz*z##*:,`....   ``` .      `;..,;i:,.`.`,`` ,+                                            
                                 .+z#+##zznnxxxxnz#xxzz#+++*+*i+n*,..```.  ``.` `.`     `::,,,`````,, ` *#                                            
                                  `+nz#+##zzzznnnzzz#+znnzzn+**#n+,.,`  `` ````  .`      `.```   `.,`  `+#                                            
                                    +nzz###########+*i*znz+#z+*zzz:.` `` ` `     ``     `.,,``   `.. `  *#                                            
                                    *n##z#+##++*+**+;:;#nzz+#zzznn*.` `` `             ,,,*+i;,```,` `  :#                                            
                                   .#z*:i+##+****ii*;;;#nnzz#zxx###:..`` `            `..,i,i:,` `.`    :#                                            
                                   ;z+;;;;;+zzzz##z#+++#nxznznnxz+#*,...`             .``,.``,`` ..```  :#                                            
                                 `;#+;::;;+#++znxxMMxnxxMMnz#*+z*+##,....             ```.`  `` ``` `  `;+                                            
                                `.zz*::;;*+#**#++#++znnzz#*i*:i*:++#:.....`            ```   `` .`  `   :#                                            
                               .#nz#i::;;i*+*ii;ii,,,::;*;;:;:i;:*;+i,,...`         ``         `.`  `   ,+                                            
                              `;n#*i;::;;iiii;i:::,.,,,...:,:iii:i:*i;;,.`.  `  ` `  ...```.`   `.` `   :z;                                           
                              zz+i;;;:,::;;i;**::::,,,.,..:`.::;;::iiii;,`.```  ``.` `..;,,,.    `` ``  ,zi                                           
                             *z*;::::;:,,,:;,;i,,::,:,,,.,:.:,,;;;:;:;i**.,```` ``,,`   `,i;:`    ``    ,z*                                           
                           :xz*,,,:,:;:,,;;:,:;:,,:,:,.,,,,.;,,;:i*i,;:i+:i,,,:.`.::,.`   .:,.     ``` `izi                                           
                         `;zn#;,,:,,,:::::;:::,:,;:,,..,.,.,,,;::+#+;,:;ii*i;++i,,....```  `.```    ` `.#z,                                           
                      ` ;nzn+:.,:,,,:;ii;i;i;;::;;:;,.:..,..,:i,:++#+i;i;i*i*#zz#;;:i::,```   .,..`   .;zz.                                           
                   .+z##z##*:.:i;,,,:;;i::;**i;;,:;:,::..,`,.:;:,;i**#+*i#*i*#+#z+**+*;:..`   `..,`   .*n+                                            
                  ;xx#ii++*;,,:;i;,,,:i;:i;i;:;,,:,:,::..,...:;:,:,:,*+*+#**i*;*++;::;;.`````` ```   `:##,                                            
                 .*nz#i:iii;,,,;;:,,:;*i:i**i*;,:,;,.:.,.,,``.,,,,..`,i;*++ii;:;ii,...,,```.`  ```   ,*z+`                                            
                 ;nnz#+i,:;:..,:iii:,:*;i+#ii+;::::`.:.,.,;....`:,`.`.,,;;+ii;ii;i,..`.,.````   ..   ,#n:                                             
               `*znzzz+;:;;,.,,;ii;:i;ii++*:;ii;i:.`,:,..,;.,,.`,,````.`,,;++i*i,:;::``.,.``   ```   ,+#:                                             
          :::.:`#nz##++*;;:::,::::;;:;;*i:i;;,;ii,`.:,,..,,.,:..,,````.`,,:i+++;,.,:i:` `..`````      :#:                                             
       `.*nnnnMzzxz###*iii;::::i;i+ii;;i:::ii:;**.`.;:,....`.:.:.,`.....,,::i;*:,.,,,:,```...`       `;z`                                             
++++++##zzzzznnxMxnnz#+ii**ii*;;*#+**i+i;i*+i:;+i,..:.,.,,,..:.::...,.,,:,;;i:ii,.,,....`  ```      .*z#`                                             
;;;;;:;;;i+##znnnMxnz**++**iii;:i**++*ii*+z*;;**:;..,`..,:;:`,.,:..,;:,::::i;;:i,.``.``.   `        .+z,                                              
.,,,,.`..,,;+##zxxxnnz#++***#+;;##+*++++#zz#*#*i;i,.:`..:,i,`,:,,..,,;,:,:;;:;:*i...`````` ``      `.#z:                                              
...```..,:i;*+#zz###zz#++++i++i*#+;i**#+*+#z++;**;,,i,.,,,i,.,*,,.:,,;:;:;;:,::ii;,..`..`..```     .*z.                                               
````,,::;;;**++####zz#++##+iii*i+i;**+##*+z+**i*;,.:*:.,.,:,.,;::.::,::*i;;i;;ii;;,,.`,.``````     ,##`                                               
```.,;i***;i*i***+#z#+++##**i*****+**z#+i#i+*+*:::.:;;,:,..:..,;:,:::::i+:;;ii*+;:,,.....`  `      `:+`                                               
`,::..,iii;;***+***+*++zzz##+**ii*++*+;i#i+*+++;::,;::,.,..,,..:;::;;i:;+i+i;;i#*::,,...``         `iz.                                               
ii;...;i;;;;**++##++##++#zzz**i*+zz*;;;#z+#++***i::*;:,.:,.,,,.,ii++i+;;+*+*:;iii:::,.`.``       `,;+i                                                
*:,..,;;;;;;;;i++*+#zz##+#zznzz##z+i*##n++##+ii**,,;:,:.,,.,,:,,i*z++*i;+zi;:;;;:::;,.....`      .i#;                                                 
,:iii;i;:;i*ii*+++i+##+#####zzz#*i*##zzz+#z#+:;ii,.,:,:,.,,,;i::i*##*iii+#z+*i;:,::::.....`     `:#n.                                                 
::;*;,:i*+*iii;i;;i+##+zz#zzznz#+i;i#*+i*#z**:;i:.`.,,;,,,,,*+;i++++*+*++*+#**ii;:::,.``..`      ,#;`                                                 
::;:::;+i;*++***ii:i+*+z#+z###zz#++++i:,:;++i:*i,,`..,*;,,,:+#:*###+*#+*++*+*i;;i;i::.`````      `i#:                                                 
:iii**;;i+#z##++**i##+#z+#zn#zxnzz++**,;,;**i:+*.::...ii,..:i+:*++##*#+*++*i*i;i;i:,:,..``        ,+,                                                 
ii++;:,;+znnz+#+#*+zzzzzz##nzzzzzz#n+#i;.ii**;*i.,;.,,;i:..,:i:i++##+##+*#**iii;i*;,,:,.,`        ,+i                                                 
:i*;..,i+i;+++##+**i*+z###zznnzznnz###*i,;*,:*;,,,,.::,:,,.,,,;*+**++###+*+**#+;;;i:;,,,..`       ,#:                                                 
::;:,,,,.,;+++#z+;;i+##+znxnznz#zzz###++ii*,:;:.;,.:,:,:,:,,..:+#**+**+++iiii*+;:*;:,:::,.``      .+`                                                 
:i*:,...,,;i*##z**i**##+#zz#znz##znzz#z#*:;.:;:.,,.:,,,.,;:,,.;*+ii+;;i+ii;;;i+i:;:::;i;,..``    ``,                                                  
+i:,,:;::;i+++#+i;i*++i+##zzz##zznnnzzn#+;:.,;;..,.:.,,`,:;:,.:;**i*;;i**i::::;i;;::::::,.``     `.,                                                  
i:;*:;:;*+++#+##;;***i++#zznzznnnnxxz##zz#i.,:i....,,.,..:i;:::ii;;**;:ii*:,:;:;:;::,.,,,.``     .::                                                  
iii:;;:ii*+z##+*;;*ii*+##zznnz####znzz##z#*:,:;.,,.::.:..:i::;;;;;:i*i;;;;*;:;::,:,,,,,,,.`     `.;i                                                  
***i;::;*i##z#+**+*i#z#zznnnnzznz#zzzz*####;,;:,..,::,::,,i;;:;:;;::;;::;:**i:;:,:,,,,::,.`     `:*i                                                  
##+;;:;+*+####*+*ii+zz##zzzzzznzz####z##z#z#;i:,..,:::;::.i:;,,::,:,:::,::::;::,,,,;:,,.,..`   `,;+*                                                  
n##*ii*#+#nz##+ii;i+##+*#zzzxxnxz##zzz#####z*+*:.,;,::i::.;::,,:,,:,,.,.,:,,,:;,,..,:,,,,.``````,+#.                                                  
Mnzz+z##+zzzz#*::;:i#+i+##znnnnnznzzzz##z+##+##;.,:,::i::.i::..,,,,,,,,,:,...,;i:,,,,,...,.````,i+:`                                                  
Wxnnnnnzzz###+i:;:,;;;+##znznxxnznnnz##*#######+:,:,,,:,:,i::.,,,..,:,,,:::..:::::...,,,..,.```,*;`                                                   
WMWWWWxznz###+*:;:,::*+zzzzzxxxzznzzz###z###zz##i::;,,,,:,i,,.,,....,..,,,ii,,,,:,,.........`.,:+,                                                    
WWWWMWnnnz###++;;;;,:*#nnznznnz#z##zz##z#+##zzz#**;;::,,;,i:,...`.......,.,*::,.,,,,,...`....`,;*.                                                    
MWxMMMnzz#+##*iiii;:;#znzzzzzzznz##z#+##++####zz++*iii;:i;*;,,,.......``.`.:;:,,,,,:,,.```..::;:.                                                     
nxnnxxxnz#+#+ii;:,:;i*#zzzznnzzzz##z##+*++#####z#*+z++i*+**i:,,....,..``.``.:,.,,,,,,,..```.:*+`                                                      
zzznnxnz###++*;::,:i:;+zzzznzzznz##z#+**++#z#####+#z###+###**;:,,.,;..``.`.`.,,....,,,..```.,*i.                                                      
####zxnz#++##*;;,,:::;+*+nnzzzzzz#zzz++++##++++####z######+#++i:,..;.`.`.`..``.....,.....```.*;                                                       
+###znnz#++z#*i:,:,::ii;zMMnznnz#z###++++++++*+###zzz###+#+##+*::,.:.```.`.,.`.....,,.......;+;                                                       
**#zznz#+++#+*i,::,;,i:+nxxnnnzzz###+++*i*****++#+###+#+++#+++*i::,,..`..``..``.,,.,,,.....i+*`                                                       
+*+zzzzz++++**i:i;;,:i*z#znnzznz#zz##+#**ii;i**+*+#*++*+++#+i**i;:,:..```....````,..,,....:*.                                                         
i**+#zz+#+#+**i*i::,;ii*i#zz#zxzzz#+#++*;;;i****ii+*++***ii*;iii;:i,..```..`..```.......`.;i`                                                         
*i*+####+*#***ii;:::::;;i+zznxxzzz#++*+i;i**ii**ii******ii;i;;;i;:i:,,.``.....``.`.......,;i                                                          
**+##++++++i**i;:;;:,:;;i#znxzzzz###+**i;iiii;i*ii**iii*ii*iii;ii;;*,;,`..```..`.,....``.i*:                                                          
*****++#+***+*;;::::,::;i+#nzzz#z##++**ii;::;;;iii;iiii*;i*;;;:i*;;i;:*...``````..,..```,i;`                                                          
**ii**+#***++i;::::::::;:*+zzzzzz#z#+***i:,:ii*;;;;;;iii::i;i;:ii;;:;,i:,..`.`  .....``.i;`                                                           
*i;;i*+**+**i;:;;;::,,:::i#nnzzzzz#+*i**i;:;**;::;;;;i;;:::;i#:;:i;::,:::....`` ``.````:*:                                                            
ii;i*++**iiii;iii;;:,,,,;++#z#zzzz#+***ii;i+*;;,:;;;:i;;;::;;zi;:;:;:,,::,,.`````````.i`                                                              
i*ii****iiii*i**;;;::,,.:*i#++z#z###+*i;;;ii;:;::,;:;;::;i;;:+iii*,:::,,:,,,````````.::`                                                              
iii*ii++i******i::;:,,,.;:*++##zzz##+*;;i;i;;:,:::::::,:;;;;;i;;*;*,;::,,,..` `.```..+;                                                               
i*+i;*+****i**i;;:::,,,,:;*i*#zzn##+#*;iii:;:,,;:::;:,,:;;:;i;::;;*i:;::,,:..` `` `,ii.                                                               
**i;i*;iiii;iii;;;::,:,,,i;ii#z#z#z##**i;;;,,,:i:;;,,::i;:,;;;,:::;*:;;:,.,:.`  ` `;``                                                                
iiiii;i**ii;;ii;::;:,:,,:;;;i*##z###**i;i;:,,:;:,,:,::,i::,;;:,:,,:ii;;:,..;,`  ```i`                                                                 
*;;iiii*;;;;;*i;::;::,,,;;;:i*+#z+##++i;;;::,,,.,,::,:,i;,,:;:,;:,,::;::,..,.`  .,,;                                                                  
i;ii*i;;i;i;**i;i:::,,,:;;::**#+#+##i;ii;::,,,,,,,:,:,,;:,,;:,.;i::,,,:,,.....` `,;`                                                                  
i;;ii;;;ii;;***:;::::::;:,,;i*++++#+*i;;:,,::;:,,::,:,,::.,;,,.:*:;,.,,,..``..``:i.                                                                   
;::i;;:ii;;;ii;;:::::::,,:,:i*i++++++i;;:,:;:,,,,:,,,.,:,.,;.,.:i:::.,...```.`.;,`                                                                    
:::;;;;i;;i;;i;:;:::,:,.,,,i*ii**i+#*i;;,,;i::,,::,,..,i,.,:.,.,:,:;,,,..`````,i`                                                                     
i:;;;;;;;ii:;i;;;::::,,.,,:i*ii*i*+*i;i:::i:::,:;,,,,.::,.::..,.,,,:,.,.`` ``,*`                                                                      
:::i;i::;*;;i*ii;;::,,,,,,:iiii;ii*iii;,,:::;:,;::::,.;:..::..,.,..,,...`````:;                                                                       
;;;ii;:;;;;;ii;;;;::::,:,,;;;i;;ii**;::::;::::::::,;,,;,`.,;..,,:.`.,...`````::                                                                       
i;;i*;;::;;;ii;;;:i;;,:::,;:;:;ii+*;;:;;;;,,,:::::,:,,:,.,,:.`.:..``.`..````.i.                                                                       
;;;ii:::;i;;iii;:i*i;:;::,;:;;;i**i;i;;;;::,,:::::,;,:,..,.,...:,..`````````,+`