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