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