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