CCCCCCCCCCCCC lllllll    iiii                                                    tttt           
     CCC::::::::::::C l:::::l   i::::i                                                ttt:::t           
   CC:::::::::::::::C l:::::l    iiii                                                 t:::::t           
  C:::::CCCCCCCC::::C l:::::l                                                         t:::::t           
 C:::::C       CCCCCC  l::::l  iiiiiii      eeeeeeeeeeee     nnnn  nnnnnnnn     ttttttt:::::ttttttt     
C:::::C                l::::l  i:::::i    ee::::::::::::ee   n:::nn::::::::nn   t:::::::::::::::::t     
C:::::C                l::::l   i::::i   e::::::eeeee:::::ee n::::::::::::::nn  t:::::::::::::::::t     
C:::::C                l::::l   i::::i  e::::::e     e:::::e nn:::::::::::::::n tttttt:::::::tttttt     
C:::::C                l::::l   i::::i  e:::::::eeeee::::::e   n:::::nnnn:::::n       t:::::t           
C:::::C                l::::l   i::::i  e:::::::::::::::::e    n::::n    n::::n       t:::::t           
C:::::C                l::::l   i::::i  e::::::eeeeeeeeeee     n::::n    n::::n       t:::::t           
 C:::::C       CCCCCC  l::::l   i::::i  e:::::::e              n::::n    n::::n       t:::::t    tttttt 
  C:::::CCCCCCCC::::C l::::::l i::::::i e::::::::e             n::::n    n::::n       t::::::tttt:::::t 
   CC:::::::::::::::C l::::::l i::::::i  e::::::::eeeeeeee     n::::n    n::::n       tt::::::::::::::t 
     CCC::::::::::::C l::::::l i::::::i   ee:::::::::::::e     n::::n    n::::n         tt:::::::::::tt 
        CCCCCCCCCCCCC llllllll iiiiiiii     eeeeeeeeeeeeee     nnnnnn    nnnnnn           ttttttttttt   
                                                                                                        
                                                                                                        
EEEEEEEEEEEEEEEEEEEEEE                                                                                  
E::::::::::::::::::::E                                                                                  
E::::::::::::::::::::E                                                                                  
EE::::::EEEEEEEEE::::E                                                                                  
  E:::::E       EEEEEE rrrrr   rrrrrrrrr    rrrrr   rrrrrrrrr       ooooooooooo    rrrrr   rrrrrrrrr    
  E:::::E              r::::rrr:::::::::r   r::::rrr:::::::::r    oo:::::::::::oo  r::::rrr:::::::::r   
  E::::::EEEEEEEEEE    r:::::::::::::::::r  r:::::::::::::::::r  o:::::::::::::::o r:::::::::::::::::r  
  E:::::::::::::::E    rr::::::rrrrr::::::r rr::::::rrrrr::::::r o:::::ooooo:::::o rr::::::rrrrr::::::r 
  E:::::::::::::::E     r:::::r     r:::::r  r:::::r     r:::::r o::::o     o::::o  r:::::r     r:::::r 
  E::::::EEEEEEEEEE     r:::::r     rrrrrrr  r:::::r     rrrrrrr o::::o     o::::o  r:::::r     rrrrrrr 
  E:::::E               r:::::r              r:::::r             o::::o     o::::o  r:::::r             
  E:::::E       EEEEEE  r:::::r              r:::::r             o::::o     o::::o  r:::::r             
EE::::::EEEEEEEE:::::E  r:::::r              r:::::r             o:::::ooooo:::::o  r:::::r             
E::::::::::::::::::::E  r:::::r              r:::::r             o:::::::::::::::o  r:::::r             
E::::::::::::::::::::E  r:::::r              r:::::r              oo:::::::::::oo   r:::::r             
EEEEEEEEEEEEEEEEEEEEEE  rrrrrrr              rrrrrrr                ooooooooooo     rrrrrrr