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