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