DDDDDDDDDDDDD          iiii                                                                              ffffffffffffffff           tttt
D::::::::::::DDD      i::::i                                                                            f::::::::::::::::f       ttt:::t
D:::::::::::::::DD     iiii                                                                            f::::::::::::::::::f      t:::::t
DDD:::::DDDDD:::::D                                                                                    f::::::fffffff:::::f      t:::::t
  D:::::D    D:::::D iiiiiii     ssssssssss       ccccccccccccccccrrrrr   rrrrrrrrr   aaaaaaaaaaaaa    f:::::f       ffffffttttttt:::::ttttttt
  D:::::D     D:::::Di:::::i   ss::::::::::s    cc:::::::::::::::cr::::rrr:::::::::r  a::::::::::::a   f:::::f             t:::::::::::::::::t
  D:::::D     D:::::D i::::i ss:::::::::::::s  c:::::::::::::::::cr:::::::::::::::::r aaaaaaaaa:::::a f:::::::ffffff       t:::::::::::::::::t
  D:::::D     D:::::D i::::i s::::::ssss:::::sc:::::::cccccc:::::crr::::::rrrrr::::::r         a::::a f::::::::::::f       tttttt:::::::tttttt
  D:::::D     D:::::D i::::i  s:::::s  ssssss c::::::c     ccccccc r:::::r     r:::::r  aaaaaaa:::::a f::::::::::::f             t:::::t
  D:::::D     D:::::D i::::i    s::::::s      c:::::c              r:::::r     rrrrrrraa::::::::::::a f:::::::ffffff             t:::::t
  D:::::D     D:::::D i::::i       s::::::s   c:::::c              r:::::r           a::::aaaa::::::a  f:::::f                   t:::::t
  D:::::D    D:::::D  i::::i ssssss   s:::::s c::::::c     ccccccc r:::::r          a::::a    a:::::a  f:::::f                   t:::::t    tttttt
DDD:::::DDDDD:::::D  i::::::is:::::ssss::::::sc:::::::cccccc:::::c r:::::r          a::::a    a:::::a f:::::::f                  t::::::tttt:::::t
D:::::::::::::::DD   i::::::is::::::::::::::s  c:::::::::::::::::c r:::::r          a:::::aaaa::::::a f:::::::f                  tt::::::::::::::t
D::::::::::::DDD     i::::::i s:::::::::::ss    cc:::::::::::::::c r:::::r           a::::::::::aa:::af:::::::f                    tt:::::::::::tt
DDDDDDDDDDDDD        iiiiiiii  sssssssssss        cccccccccccccccc rrrrrrr            aaaaaaaaaa  aaaafffffffff                      ttttttttttt