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