###                                                                             
                   ######      #####        ###  ############### ###                                           
                  ##########     ###       #####  ############### ################ ####                        
                 ############    ####      ####   ############### ################ ####            ###         
                  ###     ###      ####    ###    ####                ############ ######         #####        
                 ###      ####      ###   ###      ###                   ###        #####         ######       
                  ##       ###      #### #####     ###                   ###        #####          #####       
                           ###       ########      ###                   ####       ######        ######       
                           ###         #####       ####                   ###       #######       ######       
                       ######          #####       ####                   ###       ###  ##       ######       
                       ######          #####        ##############        ###       #### ###     ### ####      
                           ###         ###########################        ###       #### ###     ### ####      
                            ##        #########     #######               ###       ####  ##     ##  ####      
                  ##        ###      #########     ####  #####            ###       ###   ###   ###  ###       
                 ####       ###      ####  ###     ####     ####          ###       ###  ####   ###  ###       
                 ###        ###   #####     ###    ###         ###       ####       ###   ###  ###   ###       
                 ####      ###   #####      ####   ###           ###     ###        ###   ### ####   ###       
                  ############   ###        #####  ###             ###   ###        ###   ### ##     ###       
                   #########   #####         ###  ############       ### ###       ####    #####    ###        
                   #######       #           #### ################     #####       ###    ######    ###        
                                #                               ##      ###        ###    ####      ###        
                               #                                          ###       #      ###     ##          
                              #                                             ###                                
                             ##                                               ###                              
                             #                                                  ###                            
                            #                                                     ###                          
                           #                                                        ###                        
                           #                                                          ####                     
                          #                                                             #####                  
                         #                                                                 ######             #
                         #                                                                    #################