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