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