oooooooooo.  ooooo              .o.       ooo        ooooo .o. 
`888'   `Y8b `888'             .888.      `88.       .888' 888 
 888     888  888             .8"888.      888b     d'888  888 
 888oooo888'  888            .8' `888.     8 Y88. .P  888  Y8P 
 888    `88b  888           .88ooo8888.    8  `888'   888  `8' 
 888    .88P  888       o  .8'     `888.   8    Y     888  .o. 
o888bood8P'  o888ooooood8 o88o     o8888o o8o        o888o Y8P 
                                                               
                                                               
                                                               
