:::...........................:::::::::::::::::::::::::::...:::::::::::::::::::::::....:.........::::::::::........................................
::::..:........................::::::::::::::::::::::::::...::::::::::::::::::::::::...:.........::::::::::........................................
::::..........................:::::::::::::::::::::::::::...:::::::::::::::::....................::::::::::........................................
::::.........................::::::::::::::::::::::::::::...:::::::::::::.................:......::::::::::........................................
::::.........................::::::::::::::::::::::::::::...:::::::::::..............:::::.     .::::::::::........................................
::::.........................::::::::::::::::::::::::::::...:::::::::............::::oo:..         .:::::::........................................
::::..........................:::::::::::::::::::::::::::...::::::::::..:.......:ooo:::..            .:::::........................................
::::..........................:::::::::::::::::::::::::::...::::::::.:...:....:oooo:.::.              .::::........................................
:::::.........................:::::::::::::::::::::::::::...::::::::::....:.:oooo:::....                :::........................................
:::::.........................:::::::::::::::::::::::::::...::::::::::....:oOOoo:o:o::.                  ..........................................
:::::.........................:::::::::::::::::::::::::::...::::::::::::.:OOOoooo:::::.                   .........................................
:::::.........................:::::::::::::::::::::::::::...::::::::::::OOOOoooo:...::..                   ........................................
:::::..........................::::::::::::::::::::::::::...:::::::::::OOOOooo:::..:::.                     .......................................
:::::..............................::::::::::::::::::::::...::::::::::OOOOOo::o:.::.:..   ..                 :.....................................
:::::................................::::::::::::::::::::...:::::::::OOOOoooo:..::::..:   ..                 .:....................................
::::::...............................::::::::::::::::::::...::::::::ooooooooo:..o:o. :   ..                   :....................................
::::::................................:::::::::::::::::::...:::::::ooooooooo::.:.::..: ....                   :::..................................
::::::......................      .....::::::::::::::::::...:::::::Ooooo:::::o:..:... ..                      :::..................................
::::::................... . ..    ........:::::::::::::::...::::::oOOo::::::o:::........                      ::::.................................
::::::................... .        ........::::::::::::::...::::::OOOooooooo:::........                       :::..................................
::::::....................           .......:::::::::::::...:::::.oooOOOOOoo:::.... ..                        ::::.................................
::::::...................            ........::::::::::::...::::  .oOOOOOOOOo::... ..                        .:::..................................
.:::::...................               ......:::::::::::...::::   ::OOOOOOOOo:.  .    ....                  .:....................................
.::::::...................               ......:::::::::::::::::::.:.OOOOOOOOOO:     ....  .:oo:.            ...............:::::::::..............
:::::::...................                 ....:::::::::::::::::::::.oOOOOOOOOOo.   .    ..OooOOo.                                                 
:::::::.............. . ..                 .....:::::::::::::::::::...8OOOOOOOOO:.     ...o:.:oOoo.          ..................                    
:.:::::...OOOOOOO88Ooooooooooooooooo:..     ....:::::::::............ O8OOOOOOOOO:....  .:oo:..:oo:          .     .........................       
..:::::....OOOOOOOO8Ooooooooooooooooo...     ...:::.................. o8OOOOOOOoo:o:.  .:::oo::::oo          ..........                            
..:::::..:::OOOOOO888Ooooooooooooooooo....   ...::..................  .O:o8OOo:oOOooo: .::ooO:.:ooo         ...................................    
:.::::::..:::OOOooOO88ooo:::::oooooooo:..... ..:::..................  ::oo::oooOOOooooo:::oooo.oOoO.         .                       ..............
::::::::....::OOOOOO888oo:::::..ooooooo........:::.................  ..o.:oo:oOOOOOOOoooooo:oo::oOo..       ...........................            
::::::::......:OOOOO8888oo::::::.oooooo:......::::::.............. . ...ooOOooOOOOOOOooooooo:o oo::...........::..:..............   ...............
::::::::.......:OOOOOOOOOooooo::::oooooo.......:::::::::::.......    ...:::OOOOOOOOOOooooooo::.oo::...........        ::::::::::::................ 
::::::::.........OOOOOOO88oooooo..:oooooo.....:...::::..............  . OOoOOOOOOOOOOooooooo::.:::............         ::::::::::::............    
.:::::::..........O8OO88OOOoooooo..oooooo:...::..::.................... 8OOoOOOOOOOOOoooooo::::::.............      .. :::::::::::::.............. 
.:::::::......... :OO8888888:oooo:::oooooo...:::.......::........ ......888OO888OOOOoooooo:::::::::..........     ...   ..:::::::::::::..........  
.::::::::.........:oO8888888oooooooooooooooo......:............    .....O8OOOO8OOOooooo:::o:..::::::::::::::  ........     ....................... 
.::::::::..........:::::::::::::::::oooooooOo:::................         .Ooo8888888OOoooOo:..:::::::::::::............      ..................... 
 ::::::::..........::::::::::::ooo:::::ooooOO:....::::::.........        .Ooo8##88OOoo::oOO:..::::::::::::.............      ...                ...
 ::::::::..........o:oooooooooo::::::::ooooOOo::::::::::::.......        .Oo:8888OOo::..OOo:.::::::::::::...............                         ..
 ::::::::..........ooooooooooooooooooooooooOOOoo:::::::::.......         .ooO8888OOo:  .8Oo.:::ooo::::::................            .             .
 .:::::::..........ooooooooooooooooooooooooOOOOoo::::::.........         .o:O88888OO:..8Oo:.::ooooo:::::..::::..........                          .
 .:::::::..........:ooooooo:.ooo:ooooooooooOOOooo:::::..........         .8o888888OO:O88Oo:.   :OOoo:::::::::::.........                           
 .::::::::.........:ooooooo:.:oo..oooooooooOOOOo:..::............        .8o888888OOOO8Oo:..     OOo:::::::::::........                            
  ::::::::.........:ooooooooooooo:oooooooooOOOO:::...............        .8o##8888OOOOOOo:       .oo::.:..............                             
  ::::::::.........:oooooooooooooooooooooooOooo:................. .     .:8o8#888OOOOOOo:.      ..:::...::.:........                               
  ::::::::..........ooooooo:oooooooooooooooO::::::..........::.....     .:8o8##88OOOOOo:.       .::....::.:........                                
  .:::::::..........oooooooo:::ooooooooooooO:::::::........::::::..:::::.:8o8##88OOOOoo:        ::..:::::.........                                 
  .::::::::.........oooooooo::::oooooooooooO::::::::....:::::::..::ooooo.:O:8##88OOOoo:        ::..::::::........                                  
  .::::::::.........oooooooooooooooooooooooO::::::::..::o:::::.:oooooooo::O:8##88OOo:....:::..:...oo::::........                                   
  .::::::::.........oooooooooooooooooooooooO::::oo::::oo::::.:ooooOOooooooo:8##88Oo:..:.oooooo...oo::::.........                                   
   ::::::::.......::oooooooooooooooOooooooOO::ooo::::.oo:.:oOOOOooOOooooooOO8##88Oo:.:..:.::o:. :o:::::........                                    
   ::::::::...:oOOooooooooooooO8OooOOoooooOOOOo:oO::::o.:OOOOOO:oO:oOOoooOOO8##88Oo:.oooo:ooo. :o:::::.........                                    
   :::::::::oOOOOOOooooooooooO888OoooooooOOoO:::oo::::oOOOOOOOoOOOO:OOOOOOOO8##88Oo:.oo:::::: ::::::::.........                                    
   .:::ooOOOOOOOOOOOOOooOOoO8888O88oooooOOOOo::::o:oO888888OOOOOOOOoOOO888888##88OO:. .    ....oo:::::.........                                    
   :oOOOOOOOOOOOOOOOOOoOOo888#8O8888ooooOOOOo:::ooOo::888Oo:OOOOOO:OO88888888#88OOo:.:o:::::. :o:::::..........                                    
.oOOOOOOOOOOOOOOOOOOoOOoo888#OO#88888oooooOOooo::.   . .  oOooooO:oO8888888888OOOOo:..8Oooo:. :ooo:............                                    
OOOOOOOOOOOOOOO888OOOooO88##O8###88888oo8OOo:..          oo8O::oO88888888888OOOOOoo:..O8888...::::............                                     
OOOOOOOOO8888888OOOOoo888#8O8#####8888O:oO......         .:88#8888888888888ooOOOOO::. .ooOO..:::::::..........                                     
OOOO88888888888OOOooO888#8O8#######8888ooo:......    .....o88#####8888888OoOO88OOoo:..  .:...oo:::::..........                                     
OO888888888888OOOooO88##8O########8#8888o::o...........:o:o888####88##88OO88888OOoo::..:O8.. o:::::...........                                     
88888888888#OOOOoo888###8############8888o:oO:.....:o8O88#8#8###88#OoO8O8888888OOOoo::. OO...::::::::..........                                    
8888888###8OOOOoO#8####8###8##########8888o:o8::o8###Oo88######8888##O8###88888OOoOoo:..:o ::::oo::...........                                     
8888#####8OOOOo8#8##8#######8########8#8888:oo#####8: ########88###8o8#####8888OOOOO:::. . .::::..............                                     
8########OOOOo8#8############O#########8#888:oO#888O..8###########OO#####88888OOO8OO:::..  .::::::............                                     
#########OOOo8#########################8##8ooooOO:oooo:OooOoOOOOOOOOO8###88O888OOO8o::o:.. :o:::::............                                     
##########OOOo8###8###8###################8:oo:ooo..o..: :..:O.oOOOO8####8ooO88O8O8oo:o::..o::::::............                                     
###########OOOO888########################ooo: O::.::.:..o..o..O8888#88#8o:oOO8O8O8Oo:oo:..o::::::...........                                      
#########888OOOo8################8#######oo::.ooo..o..:.::.:OoO8#OO88O88O::O888O8O8Ooo:::.::::::::...........                                      
#######88####OOOo8################8#####O:oo..O:::o.::..o..::8O#8o8#OO88o:888OoOOO8Oooo:..o::::::::..........                                      
#####88#######OOOo8####################8:oo: O.o::o..o:.o:.:.:O8oo8#oO8O:88OOooOO8O8OOOo::oo::::.............                                      
##88###########OOOo8###################ooo:.:oo::o:.o:.::.::.:88o:#8o88ooOoo:..:88OOOOoo:.o:::::..............                                     
88##############OoOo8#################Oo:o..8oo::o::o..O::o..:8o:o88:88o::...:o:8OOOOOOo:::::::::............                                      
#################OoooO###############8ooo:.Ooo..o::o:::o. o..Oo:oO8O:88:...:OO::OOOOOOOo:::::::.............                                       
##################OoooO##############ooo:.:O:o::o..O::o::o:..88OOO8o:8o.:o:88o:oOOO8OOOoooo:::::::.........                                        
###################OoooO############Oooo..8:O::o::o::.O::o..:88OO8OoOO:oOOo8oOO88OO8OOOOoo8o::::::.........                                        
###################8OoooO##########Oooo:.oOo:::O::O::o...o..O8O88888888OO8o888###OOOoOOoo:8Oo::...........                                         
##################8888oooO#########:ooo..8:O::O.:.O::o::o...88O888888888O88######8OOOoOOoo8OOO::..........                                         
################888888OoooO#######oooo:.8OO::oO::O.::O::O..:88888888888888O#######8OOoooo:8O8Oo:::........                                         
###############8888888OOoooo#####Oooo:.oO:o::O:::O::O::.o:oO88888888888888O#######8OOoo:::8O8OOo::::o:...                                          
###############888888OOOOoooo###8oooo:.#o8oooo::o.:.O::O:.:888888888888888O########OOOo:o:OOOOOo:::::o......                                       
##############888888OOOOOOoooo8#oooo:.OOoo::Oo:oO::O::.O::o######888888888O########8OOoo::OOOOoo:.::::.......                                      
############8888888OOOOOOOOooooOoooo.:#o8oooO::oo:.O::oO::o#######88888888O#########8OOo::OOOOo:::.::.:.:..                                        
##########8888888888OOOOOOOOooooooooo#OO:::Oooo8::oo::o:.o8#########888888O##########OOoooOooo:::..::.....