.:::::::::::...
                 .::::::::::::::::::::.
               .::::::::::::::::::::::::.
              ::::::::::::::::::::::::::::.
             :::::::::::::::::::::::::::::::  .,uuu   ...
            :::::::::::::::::::::::::::::::: dHHHHHLdHHHHb
      ....:::::::'`    ::::::::::::::::::' uHHHHHHHHHHHHHF
  .uHHHHHHHHH'         ::::::::::::::`.  uHHHHHHHHHHHHHP"
  HHHHHHHHHHH          `:::::::::::',dHHuHHHHHHHHP".g@@g
 J"HHHHHHHHHP        4H ::::::::'dHHuHHHHHHHP,u$$$.
 ".HHHHHHHHP"     .,uHP :::::' uHHHHHHHHHP"",e$$$$$c
  HHHHHHHF'      dHHHHf `````.HHHHHHHHP",d$$$$$$$P%C
  .dHHHP""       JHHHHbuuuu,JHHHHHHHP",d$$$$$$$$$e=,z$$$$$$$$ee..
  HHHHHHHF'      dHHHHf `````.HHHHHHHHHHP",d$$$$$$$P%Cz$$$$$$$$ee..
.dHHHP""         JHHHHbuuuu,JHHHHHHHHHHP",d$$$$$$$$$e=,z$$$$$$$$ee..
""              .HHHHHHHHHHHHHHHHHP",gdP"  ..3$$$Jd$$$$$$$$$$$$$$e.
                dHHHHHHHHHHHHHHP".edP    " .zd$$$$$$$$$$$"3$$$$$$$$c
                `???""??HHHHP",e$$F" .d$,?$$$$$$$$$$$$$F d$$$$$$$$F"
                      ?be.eze$$$$$".d$$$$ $$$E$$$$P".,ede`?$$$$$$$$
                     4."?$$$$$$$  z$$$$$$ $$$$r.,.e ?$$$$ $$$$$$$$$
                     '$c  "$$$$ .d$$$$$$$ 3$$$.$$$$ 4$$$ d$$$$P"`,,
                      """- "$$".`$$"    " $$f,d$$P".$$P zeee.zd$$$$$.
                    ze.    .C$C"=^"    ..$$$$$$P".$$$'e$$$$$P?$$$$$$
                .e$$$$$$$"="$f",c,3eee$$$$$$$$P $$$P'd$$$$"..::.."?$%
               4d$$$P d$$$dF.d$$$$$$$$$$$$$$$$f $$$ d$$$" :::::::::.
              $$$$$$ d$$$$$ $$$$$$$$$$$$$$$$$$ J$$",$$$'.::::::::::::
             "$$$$$$ ?$$$$ d$$$$$$$$$$$$$$$P".dP'e$$$$':::::::::::::::
             4$$$$$$c $$$$b`$$$$$$$$$$$P"",e$$",$$$$$' ::::::::::::::::
             ' ?"?$$$b."$$$$.?$$$$$$P".e$$$$F,d$$$$$F ::::::::::::::::::
                   "?$$bc."$b.$$$$F z$$P?$$",$$$$$$$ ::::::::::::::::::::
                       `"$$c"?$$$".$$$)e$$F,$$$$$$$' ::::::::::::::::::::
                       ':. "$b...d$$P4$$$",$$$$$$$" :::::::::::::::::::::
                       `"$$c"?$$$".$$$)e$$F,$$$$$$$'::::::::::::::::::::
                       ':. "$b...d$$P4$$$",$$$$$$$" :::::::::::::::::::::
                       ':::: "$$$$$".,"".d$$$$$$$F ::::::::::::::::::::::
                        :::: be."".d$$$4$$$$$$$$F :::::::::::::::::::::::
                         :::: "??$$$$$$$$$$?$P" :::::::::::::::::::::::::
                         :::::: ?$$$$$$$$f d.::::::::::::::::::::::::::::