               ....:::::::----:::--:::---=+##%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%#***+++++++++
                 ..:::::::--------------==*#%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%##********+++
                 .....:::::-==-------====+**%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%##**********
::.   .-=.        .......::--==----==+++*+*##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%######****
.-==*#@@@*:===-.  ......:::-===---==+++***##%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%###
   :@@@@@@@@@@@@:  . ...:::--==---==+++**#%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%
   *@%%@@@@@@@@@#:     ..:::---=-===++**##%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%
    . +@@@@@@@@@@@:    ..:::--======++**#%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
      +@@@@@@@@@@*      ..::---=====++**#%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
      :@@@@@@@@@@%=:    ..:::---====++**#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
       %@@@@@@@@@@@@%=  ...:::----==+**#%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
      =@@@@@@@@@@@@@@@#-...:::----==+*##%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    .+@@@@@@@@@@@@@@@@@@@*:.:::---=+**#%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
   =@@@@@@@@@@@@@@@@@@@@@@=.:::---=+*#%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 -%@@@@@@@@@@@@@@@@@@@@@@%.:::::--=+*%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
*@@@@@@@@@@@@@+#@@%@@@@@@#.:::::--=+#%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@%@@# %@#:@@@@@@%::::::--=+#%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@#%-*@@- #@*+@@@@@@@-.::::--=+#%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@*..  @@*  *@@@@@@@@@@*.::---==*#%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@=    -@%  :@@@@@@@@@@@@-:---==+*#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@*-   .=%@+  .@@@@@@@@@@@@#:---=+*#%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
=:    +@@##*  #@@@@@@@@@@@@@=:--=+*#%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
      #@-    *@@@@@@@@@@@@@@%----=*#%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
      ..    +@@@@@@@@@@@@@@@@*:--=+*#%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
           *@@@@@@@@@@@@@@@@@@=:-=+**#%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
         .%@@@@@@@@@@@@@@@@@@@#:-==+**#%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
        .#@@@@@@@@@@@@@@@@@@@@@+-==+++*#%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
       -@@@@@@@@@@@@@@@@@@@@@@@@=-===++*##%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
      =@@@@@@@@@@@@@@@@@@@@@@@@@*:---==+***#%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
     -@@@@@@@@@@@@@@@@@@@@@@@@@@#::::--==+***#%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
     %@@@@@@@@@@@@@@@@@@@@@@@@@@#....:::-=++**#%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
     %#%%#@@@@@@@@@@@@@@@@@@@@@@# ......:--=++*#%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
          :@@%@@@@@@@@@@@@@@@@=:.       ..:-=+*#%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
               #@@@*%@@+..:::.          ..:-=+*#%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
               %@@- =@@:                ..:-=+#%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
              :@@#  =@@:                ...:-+*#%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
