**** (C) 2012 - 2019 VERSION V2 ****
                                                                                                                                                                                 
                                                                                                                                                                                 
DDDDDDDDDDDDD                                                                                           tttt                                                 hhhhhhh             
D::::::::::::DDD                                                                                     ttt:::t                                                 h:::::h             
D:::::::::::::::DD                                                                                   t:::::t                                                 h:::::h             
DDD:::::DDDDD:::::D                                                                                  t:::::t                                                 h:::::h             
  D:::::D    D:::::D uuuuuu    uuuuuunnnn  nnnnnnnn      aaaaaaaaaaaaavvvvvvv           vvvvvvvttttttt:::::ttttttt        eeeeeeeeeeee        cccccccccccccccch::::h hhhhh       
  D:::::D     D:::::Du::::u    u::::un:::nn::::::::nn    a::::::::::::av:::::v         v:::::v t:::::::::::::::::t      ee::::::::::::ee    cc:::::::::::::::ch::::hh:::::hhh    
  D:::::D     D:::::Du::::u    u::::un::::::::::::::nn   aaaaaaaaa:::::av:::::v       v:::::v  t:::::::::::::::::t     e::::::eeeee:::::ee c:::::::::::::::::ch::::::::::::::hh  
  D:::::D     D:::::Du::::u    u::::unn:::::::::::::::n           a::::a v:::::v     v:::::v   tttttt:::::::tttttt    e::::::e     e:::::ec:::::::cccccc:::::ch:::::::hhh::::::h 
  D:::::D     D:::::Du::::u    u::::u  n:::::nnnn:::::n    aaaaaaa:::::a  v:::::v   v:::::v          t:::::t          e:::::::eeeee::::::ec::::::c     ccccccch::::::h   h::::::h
  D:::::D     D:::::Du::::u    u::::u  n::::n    n::::n  aa::::::::::::a   v:::::v v:::::v           t:::::t          e:::::::::::::::::e c:::::c             h:::::h     h:::::h
  D:::::D     D:::::Du::::u    u::::u  n::::n    n::::n a::::aaaa::::::a    v:::::v:::::v            t:::::t          e::::::eeeeeeeeeee  c:::::c             h:::::h     h:::::h
  D:::::D    D:::::D u:::::uuuu:::::u  n::::n    n::::na::::a    a:::::a     v:::::::::v             t:::::t    tttttte:::::::e           c::::::c     ccccccch:::::h     h:::::h
DDD:::::DDDDD:::::D  u:::::::::::::::uun::::n    n::::na::::a    a:::::a      v:::::::v              t::::::tttt:::::te::::::::e          c:::::::cccccc:::::ch:::::h     h:::::h
D:::::::::::::::DD    u:::::::::::::::un::::n    n::::na:::::aaaa::::::a       v:::::v               tt::::::::::::::t e::::::::eeeeeeee   c:::::::::::::::::ch:::::h     h:::::h
D::::::::::::DDD       uu::::::::uu:::un::::n    n::::n a::::::::::aa:::a       v:::v                  tt:::::::::::tt  ee:::::::::::::e    cc:::::::::::::::ch:::::h     h:::::h
DDDDDDDDDDDDD            uuuuuuuu  uuuunnnnnn    nnnnnn  aaaaaaaaaa  aaaa        vvv                     ttttttttttt      eeeeeeeeeeeeee      cccccccccccccccchhhhhhh     hhhhhhh