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