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