########                                                                          #             
########                                            ##                    ###     #             
########                            ##                                  ##XXX##             ##  
   #########                                                         ###dddddXX##               
  ##XXX###    #                                                  ###XXddxxxxxddXX#              
#XXXX########### #                                            #####XdddxxxxxxxddXX#             
#XX########X############             #        #X#           ######XdddxxxxxxxxxxddX#            
##########XX########X####           #         XX######     ###XXXXdddxxrrrrrrrrxxddX#           
##XXX####XXXXX#####XX##X###                  ####XX###   ###XXXXdddxxxrrrrrrrrrrxxdX#           
#XXX##XXXXXXX#  ##XXXX#XXX#X#    ###      d####XxxX###  ###XXdxxxrr+++rrrrrr++rrrxxdX#          
XXXXXXX#XXXX#  ###XXXX#dXXXX##  #####   ##d#X#XrrrdX######XXxxr+++++++++++++++rrrrxdd#          
XXX#XX#####X  ####X##X#XXXXXX####XXd######xXX#Xr++dXXX####Xdxrrr++++++++++++++rrrrxxd#          
#X#XX####### ###X####X####dddXX#dXddXXXXXXdd##XdrrxddxX##XXXdxxrrrr+++++++++++rrrrxxd#          
   ## ##   ###XXXX#######XXXddddrdXdXdddXddd###dxrrdddxdXXXddxxxxrrr++++++++r+rrrrxxd#          
##     # ####XXXXX##########XXdxrxdxxXdddddxXXXdxrrxxxxxrrxxxxxrrr++++++++rrrrrrrxxxX           
#######   ###XXXXXXXXX#######XdxxxrrrXXxxdddddddxxrrr+++---+++++++++++++++rrxxxrrxxd#           
#############XddXddxxxxxdXXXXdrrr+--rdxrrxxddxxxxxrrr++-----+++++++++++++rrxxxdxxxxd            
#############Xxrrr+++++++rxrrr++----+rr+rrrrxrxxxrr+++------++++++rrrrrrrrxxxdXXdxxX            
##############dr++++++++------------+++++++-++rrxxxr++----+++++++rrrrxdxrxxxxxdX#XX             
####X##########Xr++++++-------------++++-------++rr+++----+++++++rrrxxxdxxxxxxxX##              
####XXX#########Xx++++++------------++-----------------+++-++++++rrrxdxdXdxxrrxX##              
####XXXXX######XXXx+++++-------------------------------++--+++++++rrxddxdxrrrrxd#               
#####X##XXXX#####XXx+++---------------------------------+-++++++++rrxxdxxrrrrxX#                
#########XXX######XXr++-----------+---------------------++++++++++rrrxddxxrrrd                  
###################XXr+--------------------------------++++++++++++rrxxdxrrrrd                  
############XX#####XXXr++++++------------------------+++++++++++++rrrxxxxrrrrx#                 
#############X#######XXx+++++++--------------------++++++++++++++rrrrrrrrxxrrx#                 
################X######Xx++++--------------------++++++++++++++rrrxrrrxxrrrxrxX                 
##################X#####Xx+++++++--------------+++++++++++++++rrxxxxrrxddxrrrrX                 
#########XX#######XX#####Xx+++++++++----------+++++++++++++++rrrrxxxxrrrxxr++rX                 
#########XXXX#####XXX#####Xx++++++++++------++++++++++++++++rrrrrrxdXXdxxrrrxd#                 
#########XXXXX######XX####XXr++++++++++-----++++++++++++++rrrrrrxxxX    #####                   
#########XXXXXXX####XXX#####d++++++++++++--+++++++++++++rrrrrxxxddX#                            
XX#########XXXXX######XX####dr++++rr+++++--++++++++++rrrrrxxxdXX##    #XddxxxxdX#               
XXX#X######XXXXXX#####XXX###Xrr++rrrr++++++++++++++rrrrrrxdX##      #XdxxxxxxxrxxXX             
XXXXX#######XXXXXXX####XXX##Xr++r+rrrr++++++++++++rr++rr+d###      #xxxxxdxxxxxxxxxd            
X#XXXX######XXXXXXXX####XXX#Xrrrrrrrrrr++++++++++rr+rrr+rd####    #dxddddxxxrrrxrxxxx#          
#XXXXXXX#####XXXXXXXX####XXXXdxxxrxrrrrr++++++++rrrrrrrrrd####    #xdddddxr++rxxxxxxx#          
XXXXXXXXX#####XXXXXXXX####XXX###Xdxxxxrrr+++++++rrrrxxrrxX####   ##dxxxxxr+rxxxxdxxdX           
#XXXXXXXXX#####XXXXXXXXX###XX##   XXdxxrrrr+++++rxxdddddd#####    #XxxddxxxdxxdxxrxX##X#        
XX#XXXXXXXX#####XXXXXXXXX###XX#    #Xdxxxrrr++++rxd######## #      #Xddxrdxdxxxr++xXXdX         
XXXXXXXXXXXX#####XXXXXXXXX##XX##     #Xddxrrrrrrxx#  ### ##         ##Xxrxdxdxdxddr+d#          
XXXXXXXXXXXXXX######XXXXXXX###X#       #XdxxrrrxxX                     #XXddX## ###drrd#        
##XXXXXXXXXXXX#######XXXXXXX###X#       #XdxxxxdX#                        ##   ###  Xx++d#      
###XXXXXXXXXXXXX#######XXXXXX####        #XXXXX#                               #      Xx++X#    
###XX#XXXXXXXXXXXXX#####XXXXXX####                                                      Xx-rX#  
###XXXXXXXXXXXXXXXXX#####XXXXXX###                                                        XxddX#