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

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

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