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