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