=---::::::::::::::::::---==                                                                                     
                                                          ==-----:::::::::::::::::::::::::::::::::::::----                                                                           
                                                     +==----------------::-------::---:::-::::::::::::::::::---+                                                                     
                                                *+==-------=-----==:+#####*-----+:=####+--:::-*+=-::::::::::::::::-=                                                                 
                                            *++=========---=-----=+-===---------+:--------:::-=+++:+#%#+-:::::::::::::-=                                                             
                                        *+++========--*###*##=---=+=-++***------+:=*=-+#*-::::::----:---::::::::::::::::::--                                                         
                                     *+=-=+====+==+*--++=======--=+=-+++==------+:-+#*---::::::--:--::::::::::-++::::::::::::--                                                      
                                  #*++*#=:-+#*=++++**:-=======----=+-:--=++**---+#+--+#**-:::::-:--::::::::::=*==:-:::::::::-:::-                                                    
                                ***+*++-+*-+*#+==+++**-====---=+=-=*###**++==---===---===-::::-+#+::::::::-------:-::::::---::::::--                                                 
                             ****++++**=-*=--+**=-=++##+++*##*+===++*******************+++++++++==--::-+**++*#*+-:-::::::=+=:=--:::::--                                              
                           **++**++++*##****-=**#--=++***++++**###***########################***++++++==--:::--+-:-::::::-:-**#+-:::-::--                                            
                         #*+++**#*++++**##*##-::-+*+++++*####*###############*********###############******=:::+*=-::::-::+=-:::::::=+::::-                                          
                       ****#******#*+++++*=--==-*++++*#############*****###**************##******#########****+-=-:---::-*-::::::-==-::::::--                                        
                     *************+*#*++*#######+**##########****##**++=----::--=**+====--==++*********#######*##+==*#+---:::=--==-:::::::::::-                                      
                   **************#****#*++++++*#########**##*#****+==--::-=----:::-------=+=-::--+******#**######*##*==*#=::::--:-*=-::::::::::-                                     
                  ****#*****************#*++*########**#*****##+++=---++-:::-::-:::-::---:--=*=-:::-*#*+***#*+*#####*##=-::::::::::-*+-::::::::::=                                   
                #*****#*****************+*#######***#****#**++++==-=+=---:--:---:::--:--:-::---++-:--:-+********+*#######+-:::::::::--==-:::-=+-::--                                 
               #*************+***********#####*************+++++=+++=---:--:----::::-::--:--::---*+-:---=*++********#######+-:::::::::-:::::-:::::::-                                
              ###*************++*******#####***********#*+**++++*++=-=--=--=--=:::::-:::----:::--:=+*-:---+**++**+***+*######+::::--+***-::--------::-                               
            #**************************##*********+*#*++***++**+++===--=+-===-=-:::--::::=--=::::=:-*=+-:=--+*#*=*#+***+######*-:::::---+=----------:::-                             
           ###************************#*********+***+++*******++++=+--=+--+=+-+-:::--::::=:=-=:::--::===-:---==+*#++#+**++######+::---=-:=+--==-------:-=                            
          #*********##*#####********##********+***+++*******++++*=+=-+=*-++=*=*=-:-=-::::=--+=-:::--:-+=-=:=--===+**=+*+**+*#####*---:----=+-----------:-*                           
         ###********************************+***++++**#*****++**+*+=*=**-*+=*=*+=--+=:::-=--*=+--:--:--=--=:+-=====+##=**+**=#####*--++-----+--=++------=:+                          
        ##************************************++++****##****+*****+*+*##=#*=#+*+===*+----+==#*++=--=-:-==----+++=====+#++#+*#+*#####=--------*=+=--------:--                         
       #**#******************************+**++++*****###****#*#******###+#*+****+==*+====+=+##*+*=-=----==-=--+++=====+**=******#####=--------+-----------:-                         
      ##**********************+**++*****+**+++*******###****#*##***###*#+#***#*#*++**++++#==+###=*======*---====+======+*#+**+*+*#####=-------==-------------                        
      ##*****+********#******++*+**+*+++*++++******++##****####*####*+*####+##*#**+**+*+#*+--+###+*=+===#==-==--+========+#=*#+#=*####*--------+------=------=                       
     ##*********************++*++*+++++*+++*******+*###*#*#########*****####*##*#*+#***##*+=++*###**++++#+====+*+--=======+#=+**#+*####+--------+------=------+                      
     #*********************+++++*+++++++++*****+*######*#*###################*####****###############**+#*==+=+*+*+-=======+#=++**+*####--------=+-------=-----                      
    ##*********************++*+*+*++*++++++***+**########*########*+++*#####%###%##*#*#####**+==+*####*##*==+=+###++-=======+#+*+**+*###*--------+=------=-----=                     
    #**********************=+++*++*++++++-+******+++#####*#%%%##*#+==+***####%%%%%%##*####****===+*####%%*+=++==+=+*=====-==+**+***+**###=--------+------==----=                     
   %################***###++++*+*+++++****+++===##++#%###**%#######**##++############***###**#*+*#####*#%*+=++*+=**=--=======+*=*+**+*#######%%%%#********=----=+                    
   #**********************=+++*+=*+++*******##++=##+#%###+*##%*==++==++++#*#####*+=++++****+++===++==###%*+++**=**++-++======+*++*+*=**##*==========*##*=====--=*                    
  ##*#%***+=#%%%#*********-++*+++*+++*******##*++*#*#%###*+%###=-==--===-=#+*##**=:-====**=-+=---==-+###%+++***++#++=**=======+*=+**++*###+========+***#*==+##+=*                    
  ###*#***--*####********+-++*++*+*++*******###**+###%%##+*######**+***++++++***+-:------===+*+++++*+*+*#+++*###**++***=======+*=+***+**##+=========+++*#+==--==+#                   
  ##****************+****+=++#++#=*+*******####**+###%%##*+##*****++========++*++-::::::::------=-=---=*#++**%#*#+++*+*+======+*=+++#=**##+==========++++=======+*                   
  ########***#**#**#+****+=++#++#=*+******####%#***##%####+*****+++========++***=-:::::::::::----::--==*****#####+**##+++++++++*++++#=**##+=====*+==============+*                   
  #######**##*****###****+-++#++#=*+*****#####%###*#######**#*+***+++====++++****=-----------------=-++#+*##*###*#**#*+++++++++*++++*=**#*+====+*+====++========+*                   
  #####*###########*******-++#++#=*+****####%###########%##+*****#***+++++++*####%##*==-==========+=++**+##########**++++++++++*++++*+**#*+====+**====++++********#                  
 #####################****-=+#*+*+*+****####%%##*########%#**##*####****++++*###%###%#=-======+++++++****##########**+++++++++++++++*++***======#*====++========+##                  
 ##########**####+#*##**#*==+#**+**+***#####%%%#**###%%#####**##***##*****++*##%##*------==+++++*++*****#%%##%##*****++++++++++++++*+*+***#####*======++========*#%                  
 %#########*#*########**##+-+***=#+*+**#####%%%###**##%%%%########*####*********+-==-:--==++++***+****###%%%%#***#***++++++++++++++*+*+**+=+==========++========*#                   
 %##############**########*-=*#+*+**+**########+*###**##%###%#############***########*+==+++**********#######***#*++++++++++++++++++*++**=+++++++++===+++++++===##                   
  %%###*#*#**##*##+########=:+**++**#=****############***#####**###############*+++==+####************####****##***=+++++++++++++++**++*+++++++++++++++=======++#*                   
  %%###*#########*+########*--*#+*++#*++*+####%%%%%##%%%%####%#***########*####%#####**+=************%##*%####*****++++++++++++++++*++*+++++++++++++++++++++++*+##                   
  %%###*#########**#########*-=*#+**=#***#####%%%%%%%%%%#%###%%#****##################**************%##**#####*****++++++++++*++++*++**++++++++++++++##++++++*+*#                    
  ##%###*#########**#########*-=*#++#+#**#########%%%%%%#%###%#%%#*++*###########*+++*********+++*#%##****##*#*****+++++++++*+++++*++*+++++++++++*+++++++++++*+##                    
   #%#########**##*+*#########+-=##++**#*+############%%#######%%%%#*=+*#######**+===++*****+=+#%%%###***+*#***+**+++++++++*++*+**++*+++++++++++++++++++++++*+*##                    
   ##%#########+*##*+##########+-=#*=**+##+*#############*######%%%%###*++*######*********++###%%%####**#*+****++++++++++**+**+**++++++++++++++++++++=+++++**+##                     
    #%%%%%#####*+###+*##########+-=##=***+#**#####################%%###%###***##%%####*+*#####*#%####*#**#****++++++++++#*+*++**+++++++++++++++++++++*+*#%##+###                     
    ##%##############*+##########*=-*#*++****#################*###%%#*####################*##**####*#**#****+*+++++++++*+*+++**+++++++++++++++++++++++*******###                     
     #%%######**######+*###########=-+##=*+******####*######**#*#######%#%######%%%######**##*+###**#***##***+++++++++*##++**+++++++++++++++++++***+++****+*###                      
     ##%#*#####+*######+*#######***#*-=*#*=********##*#####***###**#*#####%%%###########***#*++*#+*#*#+*****+++++++++***++#*++++*##*+++++++*+++++++++#**+**####                      
      ##%###%###+#######**#*####*#*##*--=##+=+********#############**#####%%%%%%%#####***+*#**++*######*****++++++++++++**++++**+***+++**=++++++++++#***++####                       
      ##%%#*#####+*########*+##########*--=**********+*############+######%%#%%########*+++*+++=*###******+++++++++++++++++++*++**++++++*++++++*+++**++++####                        
       ##%%#######+*######################=:=+*******+****########**########%###########+++*+#*+-******++++++++=+++++*+==+********+#*++++++++*#*%%*+=++*####                         
        %%#%###############################*=-=+++++********+++*#############%######**#*++**#+=*+=*+--====+======+++===+************+***++++*###%%%%#**#####                         
         %#%%####%#############**#############+--=++=====++++=-*#%##################*##*++***+*++*##*:::::::--======++***************#++***##*****##%%%%###                          
          ##%%#################**=*#############*+--+++++=+##*+#*#################****#*++**==++=+#*#+*#*=:::::-==+*****************++***+**+++****#*#####                           
           ###%%##################*+*##############*=--=+=-===*#*#######%###*#*****+****++*+==++=+###*---::--=+****************************+++++****#####                            
            ##%%%###################*=*################*=---=+*#++*#########+#+******+*+++**+====+=*##+====+********************************#*+++*##%##%                             
             %%%#%%###%%##############*++########**########**+=-==**###**%##+#*#***#%*+=++*=====++=--=+***********+++*********++**********##*****#%%%#                               
              %%##%%####%%###############*=*####*#*#############***=-----=++=**#****#++===-----=+*******#**********+********+***********##*****#%%##%                                
                ####%%###%%########==#######+=*############*+=+****########***+=**+#*+***##*************=****************++***********##*****##%#%%%                                 
                 %##%%%%#############*+###################*######****+*#*******+##*##********##**********+*#************************##*****##%%##%                                   
                   %%%%%%%###################*###########*#############********==++**********+************+************##********##******#%%%####                                    
                     %%%*#%%################*###########*###############***********************************+#************#****###******#%%%%%#%                                      
                      %%%##%%%#########################*+=+***#############*********************************=#************####*******#%#%%%%%                                        
                        %%###%%%%#########*###########*#####*+++++++++*******************************+++++***=#*******************##%%%##%%%                                         
                          ##%%%%%%%######*###########*##############*******#*************+++==++**************+#***************#%%###%##%                                            
                             %%%%###%%%###%#########*########################*********##***********************+#*******######%%%#####%                                              
                               %%####%%%%%####%####*######################################****###########******++#*#######%%%%#######                                                
                                  ######%%%%%%##############################**#########*###**************#***#***######%%%%####%%%                                                   
                                     %#######%%%%%%#######%%%#####**#####**#############**#***************####*######%%######%%                                                      
                                        %##########%%%#####%#######%%%####%#################**************###%%%%#########%%                                                         
                                           %###################%%#########################***#########%%%%%%%##########%                                                             
                                               %################%%%%%%%%%#################%%%%%%%%##%%##############                                                                 
                                                    %########################%%%%%%%%%%#######################%                                                                      
                                                          %#############################################%%                                                                           
                                                                 %#%#########################%%%###