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