8 888888888o      .8.                  8 8888       .8.          
8 8888    `88.   .888.                 8 8888      .888.         
8 8888     `88  :88888.                8 8888     :88888.        
8 8888     ,88 . `88888.               8 8888    . `88888.       
8 8888.   ,88'.8. `88888.              8 8888   .8. `88888.      
8 888888888P'.8`8. `88888.             8 8888  .8`8. `88888.     
8 8888      .8' `8. `88888. 88.        8 8888 .8' `8. `88888.    
8 8888     .8'   `8. `88888.`88.       8 888'.8'   `8. `88888.   
8 8888    .888888888. `88888. `88o.    8 88'.888888888. `88888.  
8 8888   .8'       `8. `88888.  `Y888888 ' .8'       `8. `88888.