888                                               
                                         888                                               
                                         888                                               
.d8888b   8888b.  888  888       .d8888b 88888b.   .d88b.   .d88b.  .d8888b   .d88b.       
88K          "88b 888  888      d88P"    888 "88b d8P  Y8b d8P  Y8b 88K      d8P  Y8b      
"Y8888b. .d888888 888  888      888      888  888 88888888 88888888 "Y8888b. 88888888      
     X88 888  888 Y88b 888      Y88b.    888  888 Y8b.     Y8b.          X88 Y8b.          
 88888P' "Y888888  "Y88888       "Y8888P 888  888  "Y8888   "Y8888   88888P'  "Y8888       
                       888                                                                 
                  Y8b d88P