                   .!@################@@@&@@@@@@@@@@@@@@&&@@@@@#@@####@@@@@@@&$!::'........    .
                   `|@###############@#@@@&&@@@@@##@@@@@@@@@@########@@@@@@###@&$%!:`......    .
                   .`|#################@@&&&&@@@@@@@@@@@@@@@#@@@####@@@@##@@@@@@@@&&@%:::`.    `
                   .'|&#################@@@&&&@@@@@@##@@@@@@@@@#@@###@@@@@@@@@@##&$%!:'....   .'
                  .;$@################@@@@@@@@@@@@#######@@&&@@@@@###@@##@@##@&&@@@&|:''``....:;
                 :&&&@#################@@@@&&&@@@@@@@@@@@@@@@@@@@@@#######@@####@@@%!|$$|:``:|;`
               :%&$!%&##############@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@####################@&&&&&$!'`
              :|$%|$@#############@@@@@@@@@@@@@@#@@@@@@@@@@@@@@@@##################@@$||!!:`.  .
             .!|%&$@################@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&@@@@@&&@######@@$:`......  .
            .`|@$%$@#################@#@@@@@@@@@@@@#@@@@&&%%||%$&@@@@@@@@###########&|:...     .
           ..'%&%$#####################@####@@@@@@@@@@@$%!;::::!$&&@@@##@@@@########@%'...     .
           ..';!$@####################@###@###@@@@@@#@@@@%;:'''':|%$@@@@@@@@@@@@@##&&%;'.      .
           .`'|&@@####################@@@@@@@#@@@@@@#@&&@@@&$|;;!%$$&@@@@@@@@@###@@@@%:..      .
         .```:!$########################@@@@@@@@@@@@@##@@@@@@@@@@&%%&@@@@########@@@$;'.       .
           :%|%@#########################@@@@@@@@@@@@@@##@@@@#@@@@&&$$&@@####@@@##@#@$;`.      .
          .`:$#####################@@@@@@@@@@@@@@@@@@@@@@@@@@@&&&$$$$$$$&@######@@###$:..      .
           `!$@######################@@@&@@@@@@@@&$%%%%$&@@@@@@&$$$$%|!;;%@@#@@#@@#@@$:..      .
           .;$@#######################@@&&@@@@@@&|;::;;!$@@@@@@@$%$@&$%!;|@#########@$;''..    .
            `!$&##################@@@@@&&&@@@@@@%;:'''':;|$$$$$%|!!;:::::!$@#########&|!|%!`.  .
           .;$@##############@@@@@@&&&$$$$&@@@@@$!:'`'''':;!||!!;:::'''`':%@@#############&:.  .
            .';%@###########@@&&&$$$$%%%$&@@@@@@&|:''''''``'':''''``````''|&@##@@@######@!`    .
            .'|@############@@&$$%%%%%%$&@@@@@@@$!::'''''`````''''``````':%@@@@@##@@##%:`.     .
            `!&###@@#######@@@@&$%%%%$$$&@@@@@@&%;:'''''''`````````````''!$@@@@&@@@#&!'!!`.    .
             '!$@%|$%%@###@@@@@@&$$$$$$&@@@@@@@@$|;:'''''''````````.```':%@@@@@####@@@@&&;.    .
              .!%;;$@@@###@@@@@@@&&&&&&@@@@@@@@@@&$%!|%|:::'``....`````';$&&@&$$$&@@##@|`      .
                `':%@@&&##@@&@@@@@@@@@@@@@@@@@@@@@&%!|$$|:'''``..````'':!%$%!!!|&###@%'.       .
                .'!$$&&%&##@@&@##@@@@@@@@@@@@@@@$||!'''''``````..````'':!!:'``;%@@#@|`         .
                  `:|@###@##@@@@##@@@@@@@@@@@@@$;:!|:''''''`````````''':'''``;&@@@&;...        .
                  :$$%&@#@&&%%&@@@#@@@@@@@@&&&$|:';!;'''''''''``````'';%$!;;|$&&&|`.''         .
                    .`'';||%$$&@@@@@@@@@@@@&&&&&$|!!|!;''::::::'```'''!&@%!!!!;!%|'            .
                      .!;`;$@@&&@@@@@@@@@@@@@@@@@@@@@@&&$|!!!!:'''''':%@@$;'`';!:.''           .
                       ;&@####@&&&@@@@@@@@@@@@&&&&&$$$$%||||%$|:'''':!$@@@$$&&&&!::.           .
                       .!&@@@@@&&@&@@@@@@@@@@&$%%||||!;;!;:'':;::''':|&@@@@@@@&!`.             .
                          .:$&$&&@@@@@@@@@@@@@@&&$$$$$%|!;::::::::'';%@@&%%&&$:.               .
                          .``:%&&&@@@@@@@@@@@@@@&@@&&$%!;:::::::::::;|$@@&$&|`.                .
                           `%@@@@@&@@@@@@@@@&$$%|!;;;;;::'':::::::::::';|!'...                  
                           .:$&&@@@@@@@@@@@&$%|!;:::''''''''::::;:'';!;`..                      
                          ....`!@@@@@@@@@@@@&$%|!!!!;:::':::;;!!:''':'..                       .
                          ....`!@@@@@@@@@@@@@&&$%%$$%|!;;;!!|%!:'''''`..                       .
                         ...'|&@###@@@@@@@@@@@@&&&&&&$$$$$$|;:''```''!%:....                    
                       .!&@####@@@@##@@@@@@@@@@@@@@@@&$|;::::''`````'!$&%;....                  
                       `%@#####@@@@@@@@@@@@@@@@@@@@@$!;::::'''``````';$&&$$;`.                  
                        :&########@@@@@@@@@@@@@@@@@@&%!::'''''``````':%@&&$$$!`                 
                        `%############@@@@@@@@@&&&&$%|;::'''`````````'|&@&$$$%:.                
                        .|@#######@@@@@@@@@@@@@&$%%||!;:'''``````````';$@&&$$!`..               
                        .!@@@@#####@@@@@@@@@@@@&$%!;;:''''```````````';$@@&$&@@@$!'..           
                        .:$@@@@#@@@@@@@@@@@@@@@@&$|!;:''''````````````;$@@@&@@@@@@@@##@@$|;:`  .
                      .'|&@@@@##@@@@@@@@@&&@@@&&&&$%|;:'''````````````;$@@&@@@@@@@@@@##########@
                  `;$@@###@&&@@#@@@@@@@@&&&&&&&&$$%|!;::''''''```````'!&@&&&@@@@@@@@@@@########@
             `;$@#########@&&&@#@@@@@@@@&&&&&&&&$$%|!;:::''''''''`'':!&@@@&&@@@@@@#############@
       .'|&@###############@$&@@@@@@@@@@@&$%%$$&$$%%|!;:::''''``'':!$@@@@&@@@@@@@###@##########@
  .:%@#####################@&$$&@&&&&&@@@@$%|||%%%||!!;:::'''```';|$$&&&&@@#@@@@@@@@@@@#@@@@###@
@##########################@$%$&&$$$$$$&@@&%!;;;;;;;;;::::''``';%&&&&&&@&&@@@@@@@@@@@@@@@@@@@@@@
###########################@&%%&@@&&&&&&$&&$|;:''::::::::::':!$&&&$$$&@$&@###@&@@@@@@@@@@&&&&&@&
############################@@&$$$%$&&&&&$$%|;:'``''':::;;!|$&$%%$$&@@$&@@@##@@&&@@@@@@@@&@@&@@&
#################################@@&&&&&&&$$$$%;```''':;!|$@&%%%%$&@@$&@@@@@#@@@&&&@@@@@@@@@@@@&
##################################@@@@@@@@@@@@@@&!''':;!%&@&$$%%$&@&&$@@@####@@@&&&&&&@@@@@@@@@&
##################################@#@@@@@@@@@@@@@@@|::;%&@&$%%$&@&$$$&@#@@@##@@@&&$$$&&&&&&&&&&&
###########################@@@@@@@@@@@@@@@@@@@@@@@@@&||&@&$%%$&@&$%$&@@@@@@@@#@@&&&&&&&&&&&&@@@$
##########################@@@@@@@@@&&&&@@@&&&&@@@@@@@@&@&$%%$&&&$%%&@@@@@@@@@#@@&&&&&&&&&&@@@@&$
###########################@@@@@@@##@&&&&&@&$$$&&@@@@@@&$%%$&&$$$$&@@@@@@&&&@#@@&&&$$$&&&&@@@@&$
##########################@@@@@@@@@@@@@&$$$&$$$$$$&&@@&$%%$&$$%$$&@@@@@@&&&&@##@&&$$&&$&$&&&@@@$
##########################@&&@@@@@&&&@@@@@&$$$$$$$$&@@$%%$$$%%%$&@@@@@@&&&&&@@#@@&$$$$$$%$&&&@@&
