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