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