oooo    oooo                                       .   o8o                                                              
`888   .8P'                                      .o8   `YP                                                              
 888  d8'    ooo. .oo.    .ooooo.  oooo  oooo  .o888oo  '   .oooo.o                                                     
 88888[      `888P"Y88b  d88' `88b `888  `888    888       d88(  "8                                                     
 888`88b.     888   888  888   888  888   888    888       `"Y88b.                                                      
 888  `88b.   888   888  888   888  888   888    888 .     o.  )88b                                                     
o888o  o888o o888o o888o `Y8bod8P'  `V88V"V8P'   "888"     8""888P'                                                     
                                                                                                                        
                                                                                                                        
                                                                                                                        
                    oooooo   oooooo     oooo            .o8                                                         .o. 
                     `888.    `888.     .8'            "888                                                         888 
                      `888.   .8888.   .8'    .ooooo.   888oooo.   .oooo.o oo.ooooo.   .oooo.    .ooooo.   .ooooo.  888 
                       `888  .8'`888. .8'    d88' `88b  d88' `88b d88(  "8  888' `88b `P  )88b  d88' `"Y8 d88' `88b Y8P 
                        `888.8'  `888.8'     888ooo888  888   888 `"Y88b.   888   888  .oP"888  888       888ooo888 `8' 
                         `888'    `888'      888    .o  888   888 o.  )88b  888   888 d8(  888  888   .o8 888    .o .o. 
                          `8'      `8'       `Y8bod8P'  `Y8bod8P' 8""888P'  888bod8P' `Y888""8o `Y8bod8P' `Y8bod8P' Y8P 
                                                                            888                                         
                                                                           o888o