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