FFFFFFFFFFFFFFFFFFFFFF  iiii                                         FFFFFFFFFFFFFFFFFFFFFF                                              tttt          
F::::::::::::::::::::F i::::i                                        F::::::::::::::::::::F                                           ttt:::t          
F::::::::::::::::::::F  iiii                                         F::::::::::::::::::::F                                           t:::::t          
FF::::::FFFFFFFFF::::F                                               FF::::::FFFFFFFFF::::F                                           t:::::t          
  F:::::F       FFFFFFiiiiiiivvvvvvv           vvvvvvv eeeeeeeeeeee    F:::::F       FFFFFF eeeeeeeeeeee        eeeeeeeeeeee    ttttttt:::::ttttttt    
  F:::::F             i:::::i v:::::v         v:::::vee::::::::::::ee  F:::::F            ee::::::::::::ee    ee::::::::::::ee  t:::::::::::::::::t    
  F::::::FFFFFFFFFF    i::::i  v:::::v       v:::::ve::::::eeeee:::::eeF::::::FFFFFFFFFF e::::::eeeee:::::ee e::::::eeeee:::::eet:::::::::::::::::t    
  F:::::::::::::::F    i::::i   v:::::v     v:::::ve::::::e     e:::::eF:::::::::::::::Fe::::::e     e:::::ee::::::e     e:::::etttttt:::::::tttttt    
  F:::::::::::::::F    i::::i    v:::::v   v:::::v e:::::::eeeee::::::eF:::::::::::::::Fe:::::::eeeee::::::ee:::::::eeeee::::::e      t:::::t          
  F::::::FFFFFFFFFF    i::::i     v:::::v v:::::v  e:::::::::::::::::e F::::::FFFFFFFFFFe:::::::::::::::::e e:::::::::::::::::e       t:::::t          
  F:::::F              i::::i      v:::::v:::::v   e::::::eeeeeeeeeee  F:::::F          e::::::eeeeeeeeeee  e::::::eeeeeeeeeee        t:::::t          
  F:::::F              i::::i       v:::::::::v    e:::::::e           F:::::F          e:::::::e           e:::::::e                 t:::::t    tttttt
FF:::::::FF           i::::::i       v:::::::v     e::::::::e        FF:::::::FF        e::::::::e          e::::::::e                t::::::tttt:::::t
F::::::::FF           i::::::i        v:::::v       e::::::::eeeeeeeeF::::::::FF         e::::::::eeeeeeee   e::::::::eeeeeeee        tt::::::::::::::t
F::::::::FF           i::::::i         v:::v         ee:::::::::::::eF::::::::FF          ee:::::::::::::e    ee:::::::::::::e          tt:::::::::::tt
FFFFFFFFFFF           iiiiiiii          vvv            eeeeeeeeeeeeeeFFFFFFFFFFF            eeeeeeeeeeeeee      eeeeeeeeeeeeee            ttttttttttt  
                                                                                                                                                       
                                                                                                                                                       
                                                                                                                                                       
                                                                                                                                                       
                                                                                                                                                       
                                                                                                                                                       
                                                                                                                                                       
                                                                                                                                                       
                                                                      dddddddd                                                                         
LLLLLLLLLLL                                                           d::::::d  iiii                                                                   
L:::::::::L                                                           d::::::d i::::i                                                                  
L:::::::::L                                                           d::::::d  iiii                                                                   
LL:::::::LL                                                           d:::::d                                                                          
  L:::::L                  ooooooooooo     aaaaaaaaaaaaa      ddddddddd:::::d iiiiiiinnnn  nnnnnnnn       ggggggggg   ggggg                            
  L:::::L                oo:::::::::::oo   a::::::::::::a   dd::::::::::::::d i:::::in:::nn::::::::nn    g:::::::::ggg::::g                            
  L:::::L               o:::::::::::::::o  aaaaaaaaa:::::a d::::::::::::::::d  i::::in::::::::::::::nn  g:::::::::::::::::g                            
  L:::::L               o:::::ooooo:::::o           a::::ad:::::::ddddd:::::d  i::::inn:::::::::::::::ng::::::ggggg::::::gg                            
  L:::::L               o::::o     o::::o    aaaaaaa:::::ad::::::d    d:::::d  i::::i  n:::::nnnn:::::ng:::::g     g:::::g                             
  L:::::L               o::::o     o::::o  aa::::::::::::ad:::::d     d:::::d  i::::i  n::::n    n::::ng:::::g     g:::::g                             
  L:::::L               o::::o     o::::o a::::aaaa::::::ad:::::d     d:::::d  i::::i  n::::n    n::::ng:::::g     g:::::g                             
  L:::::L         LLLLLLo::::o     o::::oa::::a    a:::::ad:::::d     d:::::d  i::::i  n::::n    n::::ng::::::g    g:::::g                             
LL:::::::LLLLLLLLL:::::Lo:::::ooooo:::::oa::::a    a:::::ad::::::ddddd::::::ddi::::::i n::::n    n::::ng:::::::ggggg:::::g                             
L::::::::::::::::::::::Lo:::::::::::::::oa:::::aaaa::::::a d:::::::::::::::::di::::::i n::::n    n::::n g::::::::::::::::g  ......  ......  ......     
L::::::::::::::::::::::L oo:::::::::::oo  a::::::::::aa:::a d:::::::::ddd::::di::::::i n::::n    n::::n  gg::::::::::::::g  .::::.  .::::.  .::::.     
LLLLLLLLLLLLLLLLLLLLLLLL   ooooooooooo     aaaaaaaaaa  aaaa  ddddddddd   dddddiiiiiiii nnnnnn    nnnnnn    gggggggg::::::g  ......  ......  ......     
                                                                                                                   g:::::g                             
                                                                                                       gggggg      g:::::g                             
                                                                                                       g:::::gg   gg:::::g                             
                                                                                                        g::::::ggg:::::::g                             
                                                                                                         gg:::::::::::::g                              
                                                                                                           ggg::::::ggg                                
                                                                                                              gggggg