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