ffffffffffffffff                                      iiii                              lllllll   iiii
   f::::::::::::::::f                                    i::::i                             l:::::l  i::::i
  f::::::::::::::::::f                                    iiii                              l:::::l   iiii
  f::::::fffffff:::::f                                                                      l:::::l
  f:::::f       ffffffeeeeeeeeeeee    nnnn  nnnnnnnn    iiiiiii xxxxxxx      xxxxxxx         l::::l iiiiiii
  f:::::f           ee::::::::::::ee  n:::nn::::::::nn  i:::::i  x:::::x    x:::::x          l::::l i:::::i
 f:::::::ffffff    e::::::eeeee:::::een::::::::::::::nn  i::::i   x:::::x  x:::::x           l::::l  i::::i
 f::::::::::::f   e::::::e     e:::::enn:::::::::::::::n i::::i    x:::::xx:::::x            l::::l  i::::i
 f::::::::::::f   e:::::::eeeee::::::e  n:::::nnnn:::::n i::::i     x::::::::::x             l::::l  i::::i
 f:::::::ffffff   e:::::::::::::::::e   n::::n    n::::n i::::i      x::::::::x              l::::l  i::::i
  f:::::f         e::::::eeeeeeeeeee    n::::n    n::::n i::::i      x::::::::x              l::::l  i::::i
  f:::::f         e:::::::e             n::::n    n::::n i::::i     x::::::::::x             l::::l  i::::i
 f:::::::f        e::::::::e            n::::n    n::::ni::::::i   x:::::xx:::::x           l::::::li::::::i
 f:::::::f         e::::::::eeeeeeee    n::::n    n::::ni::::::i  x:::::x  x:::::x   ...... l::::::li::::::i
 f:::::::f          ee:::::::::::::e    n::::n    n::::ni::::::i x:::::x    x:::::x  .::::. l::::::li::::::i
 fffffffff            eeeeeeeeeeeeee    nnnnnn    nnnnnniiiiiiiixxxxxxx      xxxxxxx ...... lllllllliiiiiiii