##################################################
#S   #     #        #     #    #      #         E#
# # ### ### # ###### # ### # ## # #### # ####### ##
# #     #   #      # #   # #  # #    # #       #  #
# ##### # ######## # ### # ## # #### # ####### ## #
#     # #      #   #     #    #      #       #    #
### # # ###### # ########### ########### ### ######
#   # #      # #     #     #         #   #   #    #
# ### ###### # ##### # ### # ####### # ### ### ## #
#                 #           #       #           #
##################################################
