,::::  . .  ;:;:;::::, .
                     , :::::::;:;::;:;::::::::::::::::::: .
              . :::::;:;:=::==;:;==:::::;:::::::::::::::::::::
           .::::I=C:%I:%X;%I=::::::;:=::::;::::::::::::::::::::::,
           ,:==IX&%====;:;==:::::::;:%::::;::::;:;:::=;:::::::::::::
         .::%IH:;=:::::::::::::::::;=::::=;::::::::::%::;:::::::::::::,
       ::;:IXI=%;:::::::::::::;:;::;:;:::::::::::::::::::::::::::::::::::
    .:::==II=:;:;==::;:;:=::I:I%X::%:=:::::::::::::::::::::::::::::::::::::.
    .::::==I===I;:CXI&I&X@&&###&####&@IIH:=:;::::::::::::::::::::::::::::::.
    ,:::=;I;%=I:I$#########################$0I%&I&I&IIHIH%C==%:=:::::::::::.
    ::::::=II&XI@####################################&&&&$$XXXI%=;:::::::::.
    :::::::%I%I&@######################################&&&&$$HII%==::::::::.
    :::::::;==I&#######################################&@&&$$XXI%===:::::::
    .::::::::=&#######################################0#@#0&&$XXI%==;:::::
     ::::::%%X#########0#$##0#0#######&&&&@#@##@###&&&&#H#H##$#$XI==;::::::
     ::::::C&########@$=::::::;:;X$I&H&$$&@#&&&$$II;==:::::::;:;ICI%=:::::=
      ::::=0########&%=I%$X$HI%:;::;::=%$###@&I;:::;::;:=:%::;:::=XII::::=
  . ;  ;:;=#######@&I&$C$;:%=$;%;::;:%IX######$I:;:;::%#%I;=I=%=:=IXH%;:,
  X#$##@%X###########H:XI0I:X,=:=::%=H&########$:;:=::C:%==::;:;%%XX&&= ,
  #=H$$&$@#############@&0$XH$C%H:=&&##########@%==IX&C$IX%%:I%I=XIXH&C=%IX
  &I#&&#X################@&#@###################$I%IX&0&@X@$$@&$X&&&H&$%=:=
  $X###%%############################@##@########HI%X$@########0&&$$H&$::X
  $$#I:0########################@##$&####&#######0=IIX$######@#&&$XXH&$:=$$
  %&@X%H####################@#$&CII@&&##H#?##$#%XI%%I$$#&&&$&HXCIIXX$%$
   &@##@&#######@#0&&?&&&&XXII&####0,:I:=I=:=;:;:I%=%%%ICXXCXIIIIIIX$&0
    $&##########@&&&&&&&$HXXCI?##$&C$X=XI:::,::::=X$=I%=%%%=%%I%IIII&#&$
   %.&#C&C#@#&###&&&&&&$$HIIX$;%;::;:;:=;:;%;:=;:;:;:::::=;%====%%%%=II$
         ;&&&#####&&&&&$$$XI:::::::::::::=;:::::=;:;:::::::::=%=====%=CX
         ,&&&&&#@&0&&&&&&I%:;::::::::::::::::::::::::::::::::;%===%%:
          $&&&&&&##&#HI%:==:::::;::;:;::%%I=%::=:=:;:::::::::::;==%X
          X&&$$&$&0##&IX=C===:==%%%%%I%%===:;::========:=::::;:::%X
           H&&&$HXH&#@&&XXIICIHX&XX&XHIIC=I=I==%=%%%%%I%=========;
         ;%%&&0&0XXXXH$H$XXX$&@###############&$XHXCIIII%%=%====X=
       ,%;:;%XH&&&&XICIIXIXXC&$&0#########0#$#&H$XXCII%%==;====%
    .  ;::==::;XX&0#&$I%==%%=%=I%XXI$C&&C$%%%II%I==;==::::====%%
  ,%;:==:=======;IC#&&XXII=====:=::;:=::;:;:===;:;:;::::======::%%
 :;=====:=========;:II$&XXIII%%=======::=:===========:=======;:;:=
 ==============:;====;:=&HXIXI%%%%%%%%====================%I=:::::=
 =====%==========:;:====:;IXXII%%%%%%%%%%%%==========%;==I;:::::::::=
 :;=======%=%%=====:::====::;I%III%%%%%%%%%===========II;::::::::::::%=&:
  ;:=%=========%=%====:======:;IC%I%%%%%%%%%=====I=I&%::::::::::::::::;:::=; ;
   :;=%==========%%=%===%========I&XI$=%XIX%$:%X&;::=:::::::::::::::::;=:::::::
   ==:::%===%==%==%%==%%==%%===:=%==:=I#CI=&II:;=:::::::::::::::::::::==:::::;:
 =;=;:==:;===============%==%%%%=II%%%%%:::::%=;::::::::::::::::::::====:::;:::