.  @#;                                                                                                                                                                                         
       ,@@. @@@ ;@@                                                                                                                                                                       @@#           
        @@#@@@@@@@@                                                                                                                                                                     #@@:@@;         
    ,#`+@@@@@@@@@@@,#@                                                                                                                                                                '@@:   #@@`       
    ##@@@@@@@@@@@@@@@@#        .  @@,                             `                                                            `                                                    .@@+   `   @@@      
    ##@@@+ `@@'  @@@@@`       @+  @@,                           .@.                                                          .@.                                                   @@@    :@    `@@#    
  : @@@@   `###   +@@@,     @@@+   @` @@@@@@@@@@@@@  @@,       @@@.    @@@@@@@@@@, ;@@@@@@@@@@@    ;@@@@@@@@@@@@  @@,       @@@.    @@@@@@@@:      @@@@@@@@@@,  @@@@@@@@@@@@,    @@@`      ,  `   :@@;  
  #@:@@    `###    '@@@@#   @@@+  ;   @@@@@@@@@@@@   @@@+      @@@.   @@@@@@@@@@:  ;@@@@@@@@@@@#   ;@@@@@@@@@@@`  @@@+      @@@.   @@@@@@@@@@:    @@@@@@@@@@:   @@@@@@@@@@@:     @+   @@  @+#  @#   @@  
 @@@+@,    `;:+     @@@@@   @@@+      @@@@@@@@@@@    @@@@@     @@@.  @@@@@@@@@@;   ;@@@@@@@@@@@@`  ;@@@@@@@@@@`   @@@@@     @@@.  @@@@@@@@@@@@,  @@@@@@@@@@;    @@@@@@@@@@;      @+  #@   ` #   @#  @@  
  +@@@     @@@#`    .@@@+   @@@+      @@@+           @@@@@@    @@@.  @@@           ;@@@      ,@@@  ;@@@           @@@@@@    @@@.  @@@      ;@@@  @@@            @@@              @+ ;@'@ +   @ @ @  @@  
  #@@;    @@@@@@     @@@    @@@+      @@@+           @@@@@@@`  @@@.  @@@           ;@@@      ;@@#  ;@@@           @@@@@@@`  @@@.  @@@      ;@@@  @@@            @@@              @+    ;@    `,     @@  
 #@@@    ,@@@+@@#    @@@#;  @@@+      @@@@@@@@@@@    @@@ @@@@; @@@.  @@@  @@@@@@@  ;@@@@@@@@@@@@   ;@@@@@@@@@@    @@@ @@@@; @@@.  @@@      ;@@@  @@@  @@@@@@@   @@@@@@@@@@       @+     ,@   @@     @@  
 @@@@    :@#   @@    #@@@@  @@@+      @@@@@@@@@@     @@@  @@@@@@@@.  @@@   @@@@@@  ;@@@@@@@@@@@+   ;@@@@@@@@@     @@@  @@@@@@@@.  @@@@@@@@@@@@@  @@@   @@@@@@   @@@@@@@@@`       @+    : `@ @  #    @@  
 @@@@    .@#   @@    @@@@@  @@@+      @@@+           @@@   '@@@@@@.  @@@      @@@  ;@@@@@@@@@@@@+  ;@@@           @@@   '@@@@@@.  @@@@@@@@@@@@@  @@@      @@@   @@@              @+    .   @`       @@  
  ;@@.    @#   @:    @@#    @@@+      @@@+           @@@    .@@@@@.  @@@      @@@  ;@@@       @@@  ;@@@           @@@    .@@@@@.  @@@      ;@@@  @@@      @@@   @@@              @+   '   @`@`  :   @@  
  +@@#    `#   +     @@@    @@@@@@@@@@@@@@@@@@@@@@   @@@      @@@@.  ;@@@@@@@@@@.  ;@@@       @@@  ;@@@@@@@@@@@   @@@      @@@@.  @@@      ;@@@  ;@@@@@@@@@@.   @@@@@@@@@@@.     @+      @`  @.  ,  @@  
 ;@@@@              #@@@@   @@@@@@@@@@@@@@@@@@@@@    @@@       @@@.   '@@@@@@@@,   ;@@@       @@@  ;@@@@@@@@@@    @@@       @@@.  @@@      ;@@@   '@@@@@@@@,    @@@@@@@@@@,      @+     @`    @     @@  
 .#@@@#            `@@@##                                                                     +@@                                           @@@                                  @#       ``.       @@  
  , #@@#          `#@@+;:                                                                       @                                            ,@                                  '@@,             #@@.  
    @@@@#        :@@@@                                                                                                                                                             @@@`  `:;.   :@@;    
   ,#@@@@#@;  `+@@@@@##                                                                                                                                                              @@@      `@@#      
    #@:@@@@@@@@@@@@@@@                                                                                                                                                                .@@+   @@@        
       ;@@@@@@@@@@@                                                                                                                                                                     ;@@#@@`         
       #@@,+@@#:@@@                                                          .                                          .                                                                 #@;           
        `#  #@' `#                                                   ;;     @@ @' ,;;;;;;;;`,;;;;;;;;       ;;;;;;;;   @@   ;;;;;;;;                                                                    
                                                                     @@@    @@ @'  @@@@@@@# ;@@@@@@@        @@@@@@@@'  @@  @@@@@@@@                                                                     
                                                                     @@@@   @@         @@@  ;@#             @@,    @@  @@ #@@                  .,,,,...                                                 
                                                                     @@#@@` @@        +@@   ;@@@@@@#        @@@@@@@@@  @@  @@@@@@@'      `.,:;;''';;;;;;:;:.                                            
                                                                     @@ :@@,@@       ,@@    ;@@@@@@@.       @@@@@@@@@  @@  ;@@@@@@@   `:::''++#+##+###+++';';:`                                         
                                                                     @@  `@@@@       @@           .@@       @@,    @@` @@        ,@@.::;+'################++''':.                                       
                                                                     @@    @@@      @@,      @@@@@@@        @@@@@@@@#  @@  @@@@@@@@::'+#####;`   :+#    ,+####+'';.                                     
                                                                     @@     @@     ;;:      ;;;;;;;,        @@@@@@@@   @@ #@@@@@@@''+###+.       ,''        :###+'':`                                   
                                                                                                                               ,,;####;       `  `,,  ,`      `+##''':                                  
                                                                                                                              .:#+##;       :';    .  ,';       `###';;                                 
                                                                                                                  ,,`    ,,  ,+'##+`        ,;'.  .. .:';         ,###;:,                               
                                                                                                            ;.    .``   ``` ';+##:         `,;'' `:: ,+';`         `+#++,,                              
                                                                                                            ``    .``   .``::###.`  .`     `:;'+;;+''++';`     ,,    ;##''                              
                                                          ,;.   :;                                   .'.    .``   .``   ...+`#:`.`.,`...  .;;++#+#####+++;.`  :,;;`   ,##:'`                            
                                                    .;:   @@:  .@@   `+;                              ..    .``   .`.` ..,:; '.`.`,.``,.:;'++############++'::,;;'.    ,##+,.                           
                                                    '@@  `#@+  ;@@.  '@+                              ...   ...` `.`.`:,,,`.    ```,`.:;+###;;'+##+##+'';'##+'''''      ,#++,`                          
                                               '@.  '@@: .@@@  +@@, `@@'   +#.                  ;.    ....  ........,`.,.``     ``.,`:;##'::;;'+##+##+'';::;#++++:       ;##,;                          
                                               @@#  ;@@# ,@@@,`@@@: ;@@'  :@@       ::.         ...   `...,'....... ......```  ```.,::#';,,:;;'+#;+'++'';::;;'##+:`       '#';,                         
                                           :   +@@; ;@@@:;@@@@@@@@+,@@@' .',#   `, .:+':.        ...  `....,........ ```.,.`   ``.,,:;;'.,,:;;';  ': .'';::;''+##':        ++:'                         
                                         .@@;  '@@@.:@@@@@@@@@@@@@@@@@@'.;:.,  `#@::,::;:        .,...'..,.,,.,:,` `  `....``  `..,:;:;;:';:;;'  .':  ,';;;;'++###+,  `,,  ,+';,                        
                                          #@@: :@@@@@@@@@@@@@@@@@@@@@@@'.``..  #@@`,::::; .;,`  ,,,,,,,,,,,,,'#+`,    ```..`` ``..,:;';';;,:;;, ;,':   ';;;''+##';#'',:';`  ;+,'                        
                                          ;###:.#@###@##@###@@##@#@#@@#'.``...+#@',.,:::'  ,,,..:.:,,,,,,,,,,;+;```    ``.;,` `,:,,;;'':;:;;;;.',,;:   ;;''++##'.:##++'';.  `';;,                       
                                     .+'  .############################'.```..+##,.,,:::'  `,,,:::,;,,,,,,,,,;+#;````   .,:,` `,:'+;;'';::;:;;.,,,;,   ;;'+++#+ .###+'';:    :':;                       
                                     ;+++  +++++++++#++##;,` '#.`.;##++;.````.`,:.;,,,::,.  ,,,:::::,;;:,,` `;,....```  `.,,` `.;'#@;;;;:,,,,;,,,.:,  `''++###,:##+++'':     `':;,                      
                                      +'''.'++++++++#;       ',,`     ;'.````.,...,,,,:::,..,,:::::,::.,:, `''+;....```` `..` `.;+###::::..:;;'.: :, `;'++###;'##++''''`      :;,:                      
                                      :'''''''''+++`        ``,`..        ````.....,,,,::::;'::::,:::;..,:;:;:,,..,,..,.` ```  ,;'+++;,,,....:'+.`:::''++###:.  `''';'::      .:,:`                     
                                  ;,   ';'''''''+`       ```.'````, `,,.  `````....,,,,:::::::,,,,:::`,..,,:;',```...;:,``     `.;;;;;....``.''+##,'#+++###:.     ;;;:::       :,,,                     
                                 ;:::, ,;;;;;;+.     ````````;,````,:`     ````.....,,,,:::::,,,,,',  `...,::`  `````,,,,`     ``,,,,,.``. `;''+##,'#++###,.      `::::,.      ,,.,                     
                                  ':::::;;;;;'      ``````.,,;'``````      `.;#'+...,,,,,,:,,,,,,,:: ,...;,.      ````````       ``````` ``   '++#.'#+###,`        ::::,:''',` .,``                     
                                  .;,:::::;;:     ````.,`    ;#.`````    `',   :'....,,:;++;,,,,....'..;::`'` ``                  `   `   ``,:'++'.;#+##.;.       `:;;:.::;;:  `..`                     
                                   :,,::::;,   ```..,`       ;#:```` ` `;,..`   :`...,,:;+''+:,.....`.:,```.:       `````        ``````  ``  `:++;.,'#+.;#:`      .;'''.,:;''   ..`                     
                              ...`  ,,,,:;,    `..,`         ;+..`````:.`..,.`  ,`....,,+;...,+.......`````.;.,. ````.....``     `.....``.``:'..,. `,'.:##'       :'''',`,'';   `.`                     
                              ;.....,,,,:,   `...,     ``:, ''`..````;    ...,. :``...,,.....',;,...```````'.  ```.`.::;;;,`     `.,::.`..``::` `` `,;'++++:`    :+++++:`';`    ``.                     
                               ;.....,,,:   `..,`     ,,,..`'`....`.';     `,,..:``....,....+:  ,;.`.`````::`,```....;'''';:   .` `.,:....`.`.,`   `.,:++###'::;;######;``       `.`                    
                                ;....,,;   `..,     , ,.``,:.,.....:;: ,`    ,,,:``....,...+'    .;``````,',.,::..,,,,###+;,` `..` `....,,.;'..``   ``.:+##############' `,:,;'+.`..                    
                                 `....;`  `.,:      ;:.````.`.....+;;,,;`    `,`.```...,..:+.   ``:,`` ` :,..,,,.,::::;@#+;,` `,,`` ```.,..,..         `..,,:::;;;''+++; ,;.`.;+.```                    
                            `````.....:  `.,:`   .: ,:.`````````.'''+;;: ,,  ```````...,....`,..,.,'.    `:,,,;;;::';';'#+;,` `.:,.`  ``.`;#+`.``    ``:'##############'```` `:'.``.                    
                           :.```.....;   ,,:.     :::''.````````.+'+';+:::.`    `````....,`.`,::::::;     ,:::::::;;''';:';,` `,:;.`   .```;#.:,.`   `.''+##+`  ;+#####;`,``    ````                    
                            `:````...,  `,:,   `:`.;';''.```````:.'''+':'.`     `````..`.`...;;;;;;:`:    .';;;', ;;'+';:.`.......``` ` `.+'##'':. `` .''++:.  ` `'++++:.,:`    ````                    
                              :.```.:   ,:;     :,::'''';,  ``````.`:';'.``      ```````````..:'''', :`    `..,,,;''';';:..``  `...``` `` ,###.::. `.,.:'';`      .'''',,''':`,````                     
                               `````,  `::,   . `:;:;;;'+,`   ` `````...``       ````````````. `+++,  :  ` ` ```.' :;;:;:,.``  `..,,``   .`##.;;`,.,'#'.:;.`      `;';;..;;;;`:,..`                     
                           ` ``````,`  `;;    ,,,,;;;:'+#,`        `````````      ````````` ` .`:##,`,'  ````````,`';;:,.:.`` ``.,..``.  ` :.;####.;#   `:...,,: ``:;;:,,;;;,.:.,.`                     
                             ``````.  .,;,     ,:::::;++;,           ```````     `` ``````    `.,,,,``  ````````.',..;::,.``   ```.,;````  '+##+##,';`   ;'#####  `:::,,,````,:.,.:`                    
                          `. ``  ``.  ,;'`  `...,;,,:';,`.              ````   '#####.``            `````````.`+#``.:;.,,:`   ```.:.+;.`  `;##++##,'`   ,#;;####``.,,,::..,,,:.,,:;.                    
                             .     `  .';    ...,,,` `.::`   ..               +@@@@@@#`          ` ``````````;#:   ,.:;,':.; ,`,,.':;',`   ,++++#',,`   ,#;,'+.  .,,,,;:,.,,,::::;;                     
                                  `  `,':     `.:.`.```````` ::#;            ;#@@@@@@@#``        `` ```````..+#'`  ,.::;;::; ..:','+;`.`   `;+'' `:``  `,#;,::`......;;,,:,,,::::;.  .`                 
                                  `  .,;.  `````..`.`````````.,:'+'`         ;#@#,:.+@@#.       ``````````...#@#',;:+';::::, ..''''+##:`    ,:;`..,     ,#',,;:...``,''',,::,::;;; `:;;                 
                                  `  .:;`    ..,```.````````.'+:.::;.       `+#+, . :'@@+     `````````.`....+##+#@#'';',,.  `,:+++##+``     ```        .#',.....   .,;.;,::;:';'';;;;.                 
                                  `  `,,      ````,#;```````.'#'..,,:      `,##+,` ```@@+`  ````````.:++:....'#+'#@#++;':.```.`::+##'` `                `:';,.`     `,#:.;::;;';';;;;,                  
                                  `  `..   .  `   ``.++.`.``,+#'``.`: ``   .;##',`  `:##'   `````,+';,;';``...;'+#@@++'''.,,...`,.#;`    `             `````;:.   ```+#```,:;+';':::,  `,`              
                                  `                    ,....,`      :````` `#@#,`  `,+##;      ``:,:;''+;````.,`.;@@#+''+:::...`..`` `````    ,,.:      ````     ```,#'``.::'+'+;::::,::::              
                                  ....`....`.`.`.`.```.,`...,:,, ```:````   ,@@,``` ,+#+:       .,:;''+#;```````,,.##'+;#+,:,.....``````` `` .'` `:   ````````````  ;#; `,:;++'+;::::::::               
                                  `  .,,   ..`.:`````.,,`...,'#:..,.;`      `#@#;`.`.##+.       ,:;'++##:`````````'`,++'+#'::......`:#+.```  :''``;   ```,';````````+#''+::##+';;;,,:,,:                
                                  `  .:;`     ````....:;..```'#+,;::;.      `,#@@+'+@@#;        :;'++##@. ````````' `+'+'+#;,......;'+##.``` ,'+##:   ``::,,:````` .#+'++#+##;'::::,,,,   ``            
                         ```      `   :+.   ``,,,..,..;.,.```,,;''''':       `:@@@@@@@' `      `;'+:;'@#`  ` ````,,  :'';+#',......;'''+:``  `;+#+`   ``'::'#.```  `++'+++##+;:::::,,,,,,,,,            
                                  `  `'@:  `.,.....:,,.,`````,:+++++++         `+@@##.``  `    .,,`  .''    .####'.` `+'';'`..,....:'''',```   ..`    ``'+#++.``    `:+++###:,,,:,:,..,.,.;             
                                   `  +#'     .,,,,,.:```````.;@@#@@';,    ` ```.````.   ```` `.      ;,    :,`  ``.;;'';: `.,,,...,';; .`` `        ```;#+';```      ,+##'.``,:,,,,,...,,              
                                  `.  :'#   `..,,,:..```````` ;@@@@+;;;   `````````       ````,      `#`   `:;'+;.....:;,``.,,,,,....,..``` `        ````,:,```        :.` ` `,',,,,,....               
                             ` ````.  `;@,     `,:;'.``````   .#@#''''; ```````````        ``.. ` `  :;`   `;'++:..,,,,.``.,;;,,,....````` `:'+++++;,  ```````    `.    `   ``.''......``..`.           
                          `  ``````,   '@'    `,:::',```  `   `;'''++;`````````.`````       `.` ``,  '.    ,';++:::,,,,,,,,,';':,,....``.''::'';.:::,++: `````   ,`.#,   `````;#@.....``````:`          
                          `    `````.  ;'@`   :,`,;':#####``   .'+##'`````````..`````       `` ``.` `:```` .,'+###':,,,,,,, `;':,,,..`.+:...:;'.,,`,,#:'+'```   .`'##'```````:#@,.....````:`            
                               `````,  .:@'     ,:;:'''''#;`    :##+.``````.`...``````      ``      ,```````,,+#+,#':,,,,,,  `:;,,,.`':````,:,:`,.`.;#'::.+,    ,###''``````:#@,`````.````              
                              `````...  .#@,   .:,.;+;''''+,    .:+,``````..:....`````      ```    ..````````,,#, :#',,,,,:`   .,,..+##.````  ;..,` ;#;+####'   `#++'.`````,+@:.```````  `              
                            ````.....,  .;##      ,;;;+'+++'.`  `,:```````.: `:+;,...,,      ```  `,..````````,.`  :;,,,,,,,` ,,,.,;++###'` ` ;... `######`,++`  .',..`````;@:`.```````      `          
                           .```.......,  `+#'    .;..;''+'+`.``````````...;    '@+`,#'.;      ``: ,.....```````,    ,:,,,,,,,,,,.,::,;'::###. `,`` `#+++.'###++`   ```````.;@.``  ` ```    `:.          
                           .';.  ,...,:   ;'@;      :;.'+;..`````````....;    ;@+;;##..,,     ```.......##'.``.`   `.,..,,,,,.,..: ` :``.,#:       `.'#` :#'++;'`  ``````..,+#@,      `  `              
                                 .....,,  `:+@;    `'`.':..```````......'    ;@+'###:,,.;`     `````...',.+###:    .......,..,.`'     `,..```` '+. ``` ``+##+:``:.`````.....;@@,  ',  `                 
                                ....,,,,,  `;:#;  `.` ,' `,``````......:`   ;@#+###;,,,..:      ``....;+##',;#`````.,,.,......`'`      ...,:+ `';` `#+```###@#.`#,`````.....:+@,`;@;``.                 
                               .....,,,,:.  .`;@+`.`:   ,,`````.`......,. `+@#':++',,,,,,:.    ```...,,;,....,,...`..:.,:;....,#.  `.  `,.,'+` `` `.#+`` ,+#';;`@;.``..+@@:.,,'```..,`;.`    .          
                             ....:+;,,,,::` ,``+#:``:   ,`.`.'#+:.....,,,:.+';``. ,,,,,.##:    ``.```.`+;...`````````, :;,,..`'@: ..,.`,,,...``,,.`````   ```,#+@#,...+@@@@,..`.`...+'@;`,:.            
                              ;+.   ,,:;:::,,``  ```;. .`;.+#++ .,.,,,,,,,,:,``  ,::,,,,.``    ```````.';..,,`.......` :;....,:#; ,;,,:'#,.`;@@@@@@#,` :@'```+@#@@:,..#@@@@:.......:#@#,``              
                                   .,,::;:,,..`   `.....`::, ;+  `':,,,,,,::::,::,,,,,,`` `    `` ````.,'..,,`.``````:,.;..``;.'+.:;;,,+#,,:..`##++''+ ,@'``'#####',``+####,```````,##+``,#,            
                                  `:::::';:,.;;::.`.,..`:+:` ;# `::,,,,,:::::,,,,.....`````   `.':````..'..:;:.``````.:`.,.``'.,'+++:,,,,,,..`.@#'''#+'` ``.+###+#'.,`,#,..```````.'##;`:++.``          
                                 `::'+;;';;+;;: .``.;;```'@@'@@@@#::,,::::::::,,,,....`````  `'+,::````.;,.'##+;.````````..`,:.:;;';.,...:...`,@+'''+'';``..:#@+'::,:```,.``````,'+#@#''''+,,           
                                 ';++''++'';;':....:. :` `,,.'@+;;,:,::,;:,;::,,,,,...```````:';, .:.`;#':...;+++:``````````;,,:,```,`,.,...``:@;,;',+'',.''..`.#';::``````````'###+''''''   :.         
                                  ;;+'++''':;,.  `,;;  ,``..,@@.``,::::';'@#,::,,,,...``````,:;;':  ;#;,;:,....:+'` ````` `.'.,,:.``.,.`:...``'@':;:::;;:.''.``,@##:'`  ``````,#@:.';';;;; ,;:,         
                                    '''''':..:,``.:;'+  ,..,;'#  .::::;''++++,:,,,,####:``.`,+':;;:  `.,;:.....``,,        .'..,:+'````,...```+#;':::::;:.```.++'@@+'`        :@,..,,';;:::::;          
                                    ;''';:  .:,``.;++##:.;,::'#  `;.:;#+++++',::,,,+++;',..`.';+:::. ,;,,,,......:.        ,'`,,,,:. ` :..````+#;;':::::',   ;,..;@@+.        :@:..,`.':::,,;           
                                   `';;;;.` `,+..''+#++###;;;''+############+,:::,``###'+`.`.+':;`,,`,'':,,.....`,.  :;:   ,'.`.,,,.,: :.```` ....`,,,:'',`,`;:``.'@+.   .`   :@:.,.`..',,,,, `.,       
                                .;::::'::,,``.;..'##++;;+@;::::+#############::::.`  ',:;;.``,';,``;.'++;,.,.....,.`'++';  ,+```.,``,..:````` :....,,,;;,,,...;``:;+'. .;` :  :@...,.``.;,,,....:       
                                .:.,,: `.,:::`.``'#@':::;;:,,,,+@@@@@@@@@@@@;::::.     ``''##+':,:,.`'+:,,,,.....`.,.  ;'. ,'.,`````..`..````` :....,,;;,..,.``,':;;'` +;```,`,',.`,,.`.,,,,...:        
                                  ;..,  `..:;:  `.;;;....```.;@@@@@@@@@@+@@@''###'.      :;++'+:.`.` ....,,,.::``.`,   ;;.`.'.,,...`.```,``` `  ,...,',`.```...:':,,; `#;:``. `,+#,`,:,`.:....:         
                                   : . `` ````    ``````.   `#@@@@@@@@@; '@@'`  +`   ..;:+'+####'+':`.;,,,,;:``.`.``, `;:```;,..;;'+,..`,````````...:```,...:#+;:,``:``''+``.````,'#::,.:`,....```.     
                                   :`. .```.,,`` `,,,`.`.``` :,@@@; #@@'  @@,`  ,`  .;+###':,:+'+###';,,::#,`.`......,`,.```,:..,; .,,,,`;,`;````...,``,,:,,+' .````:``.';;.```````.'#,,  .....```;     
                                 `,,., `.,,;#+;` `.;',,.:';..:#@@@, ;@@:, ,@,.  ,``:+#+.  ,..,''+#+'#+':;',.,......``````````;...+: `,,. `;'`..``..:``.,,..,' . ```.,```````.``````.#',:,  ..`.`.,      
                                 :,,,,` .:''@@+.`:`..,:;##:,,,,+@@. `@@;:` ;,.` ,.;##. ` .....';:+',`:++':,,:........`.`.``..:,..#,````   `,#.`````,`,,,,,,,,:   ``:`.`....``...`..:#;.;:` ````.`       
                                 ;::::,`.;+##@+..':``..```:::;;#@@.` ;@':, `,.``,'#:   ``.....;:;;;,.:''+':,'+''';:...........:..+.``.. `,,`,` ````.,.;;,,::,;;  ``:..........:;'++#@:`,;.  ````    .   
                                    :;;,;:##+',..,,.```. .;;##';@@:..` ::,....`.+#.    ``....`,::;;;'+:.:+':#######'........`.:..+`++';.. ``````.` ``,;,,'';##` `:,,.........+#@@@@@@` `;:   `````` .   
                                    ,:,.`;:++',``.:,``. `;'',.#+;`.... ,,:,,..,'#.     ``..`,`,`:;;''',..:+;,.....:+,....:,```,:,'  ..,.`.```.,  .:,`.;,,':.`` `:`;.........;#+.,`      ::.      `,     
                                   .:,.`` ':':...,,:,;:.;''',  `+:`:...,,,,,..;+,`    `.`.,`...`;:;,':..,::+;..`  .;:..:` `;``,,:;  `.. ````.  ` ...``...+#+  `..:.,:,`,:..,+@:, `:`    ,'.             
                                   :..`  , `,;,`.,,:;;+'++++',, `;:,....,,,,.:+;```   ...,.`   ``:``;..,+#:;+,.`  `,:..,  ``,`.,,:   `` `'++..`  `,`,++;.;:@:  ..:.,,.``;,.:#+`,`     ` .:,             
                                   :.,,` .,.'+,``,..,:;'+'+'':.` `,```...,,,:''.```  ``....`   `````;.:++'`.';.```.;.,.. ` `.`.`,:,   ,++;  .``++' `+:,;+#:;@`` ;,,:``'#':,;@'..`   `.,.``.,``          
                                  `;+. :``.:;     :.,:;;'::+;  , ``````..,::;':.````,``.....:.;``` `:':'+,``:;,`.;.:..`,  ``.````,,;`   ` , ` ;. ,.`',:,:,,.': ;,,,:',:#',,;@`:``  ``,,.``.:':.         
                                  :':  ```.,..,,,,...::;'. ` , `.  ````.,,::;;..```,.......,,.;.```````;'``.';:;........, `, ``` `,`;:     ,,:'   ::':......` ',,,,,'   ,,,:;:` ` `` .:,``,'+++         
                                 .,'`  .`.,..``  ``.,.;:;:`,       ```...,,:::..````.......,,.;` ````.:+;.'++;:,........``  ````  `: ,;`    ,.`  `,,:......``;.,,,,,,:::,,,,,:,`..,```.'..+'##+'        
                                 .',   ..: `.```..``'..,:',,``      ```..,,,,,..``` .`.,.....,.``:++..;++++++::,...........`.``     :``;.    ,   ``,.:,.,. ::..,,,,,,,,,,,,,,,:,`,,,.``;.,+@#+';.       
                                 :;`   ,:   .`,:..``;`.`.;:.:`      ````....,,..````.`.`..``````.+++;..,:+++:,,,..........````  .. ``.; ..    ,  `, :':. .;....,,,,,,,,,,,,,,,,;:..::;````+##::,.       
                                 ,,   `:`  ;.`',.```:```.`,.`.`      ````....,.,:.`` `.,,,``... `++#,````++;,.`::.````.:;,    ..` :````.'.   ` . .  .` :;.``.;.,;:,,,,,:';::,,;## ``,:,  `.::..```      
                                .,.   .,  .::;,,.``.```,:..````` `   `````...'';:.``  `.:.`':.;, .';   .;'+':'`:#',`:+#+#+,   :`   :``````:':.    `,;'.````.:..,::,,,:'+###+;:+#,   ``     `````        
                                `.`   .`  ;:::,..``.```.,:..```````   ````.`       `      ``           ,       ..'#+#++, ++,  ,    ,````````         ``````.:```;;,,,'#@.:#####' ``.,;;.```:',..`       
                                ..    `` `,:,,.....`,.```.:..```.```    ``,..'';:.``   .,`.'+,#:.,', ``,'''';'.,.,+#'#, `.++,.:` ``,```````          ```````:````;,,'#@,.  +@##  .,;;#@+,,``:::,.`  `   
                                ``    `  .`,.....`` .:````.......````   ``...;';:.` ``.,:;`.','..+++,`...';;;;.,,,,''@;,;',':..:``,``````':'.      .;:+``````;``,,,,#@`,. `#@:   ,:'+#@+..;.`.,::,::.   
                                `.+,.,`:::;::,,,.`   .:::,,,......````   ``..:;;:.:,``.,:;..` ``.+'':``,:+:;;:.:;::;;#'`..````  `..`````:`.,;`    `:, .+`````..,...:#####+'@#,    '+##';.,;.``.,        
                                 .'.`. ,,:,,...```   `':::,,,.,,...`````  `,,,:;:..```.,:,`.`. ``;''.`;''';;;:,:;:;,;#+ ``` `   ```````..`,:`,    ,,`, ,.`````.....,+' ;, .@#,    .;++',``,:.`..``      
                                ``    `  `..`````;. ``.;:,,,,,:,,...`..``  .:,,::..```    .,+,#...,,...'';':::::',.';'#.``.....````````.,.:``.    ,.,`,`.`````......;#`;, :@#.     ,,':,..,,,...```.    
                                `.    `` `;,.````., ....,,,,,:::,,...:,.`` `::.,,.```     .;#,#:.,,,..,:;;;;:;;;.,#,;;#:``.....`,+#+,```;,``,      :,` ,````:++'....,+:'. '@+` .` .`,#;.``,:..:`;;;     
                                ..`   .`  .`.`..`` ..........::::,,.:;:,.`` ,',.,.``` .  `.,+,#.....;:,;:::;;'::,,,,::#+`.`````:+##+++;``,:,        ::, `.'+++#+',...'+', +#;, ,, ::#:, `.,,...         
                                `,.   .,  .:....```.........,,,,,,,,+';:,.``.;'` `    ````..`,.``..,+,,,,,,:';,,,..,::+@,``.``:+#, `'++,   `           ``'#+#` :+',.,+#+,.:#;:`,:`:+::`.:,,,....        
                                 ,,   `:.  .`,.````,,;...`...,,,,,,;++';:,.``:+:``    ``.`..`..``..,;,,,,,,'+:.,,..;..'@'.++''+#.   . ,,`   `;+++++,    .#+ ,+``,++'+##,.;,:,,,:',',,,`,:,,,:,...       
                                 ::`   ,'   :,.```.:``,;````.......;'''';:,.``;#.     `,..,..:,.;'':':,,,,;#'...,;  `.:@@,`;++#.     .```   ;######'`   .#:, ,@;`;###++:,:,;,';;':':;;,;,.,:, .';       
                                 .;,   `': `..`,...;``.,````.......:;;::;::,` ,'#`    ````..;.:.;;;;:;.,.,#':``.,    `,##'` `+`     . ``   .+#`` `,',   ,#:`, ,#@+,+:.;'.:,':;;;';;:;:;;,,:,.,          
                                 `:+`   .+;.  ,.`:,.` ````````````.,,,,,,,,,```,'#`   `````.,`,,,,,,,,``.#+,`.``` ` `` ++@,        ..  `   :#:`,@::;:`  ,#;``, .'#@#@:..,;:;;;;;;;;;;;;::;,..'          
                                  ,';    ,+:   `,.:` `    `````````.........``` ,+#.  ````````.........:#+,``.      `. :+#@`     ..`. ``  `+#``'.:;';.  :#';,`, `:;.,;,:,:::::'+++++;:::::,;,,`.        
                                   ;#,    ,''      ';,      ````````````````     ,;#' ``     .````````+#',```.    `;:  `+'@+   `,,``, .:';;#;`:, '` ,:,'+#+'';.,  ..`..:,,,:''''''''''':,:,:...         
                                   `'#`    `;#;    '`  `                          .:+#'`     .` `  `+##:.    .   ;      ,:#@; .;:```,`,++++#.`'`    .++++#+++++':``..,,.,,;;;;;;;;;;;;;;:,,.,:` `       
                                    ,+#`     .;+#';';''`           ````````         ,;'##'. `,``,'##+':      .   ,       .+#@+;;. `,`````.;;``+     '+'`.++++#+++;```....:::::::;';:::::::..,.``.       
                                     ,+#.      `,:;:`      `````````````````          .;;++#####++';,`.` ````.            ,'@@+,  `:``::``:,..:     +:  ;##@####+#,.....,,,,,+@@@@@@@;,,,,,...,.        
                                      :'#:         ````` ` ```````..........``````       .::';';:,.....``````.   ``` .     ''#@:  ,;.`:;`.,:..,.       `#@+.+@@'````.``....:@@@@@@@@@@#,....`,.````     
                                       ,;+#.       ,'';.``````````.,,,,,,,,:.`````        ``,,,,,:,,,:```````.```,;';.     `,+';'`,::.::,.,:..,` .,    :@+,,#@@'#..````...,############+....````..      
                                        .:'##,    `:.   ```........;;;;;;;;;;`..``         `,,:;;;;;;;......,.``,  ` `     ,:;::;@:::,:,,,,,.,,``.,  `  ;:,:@@;`.``.`````.;;;;;;;;;;;;;;:`````..`       
                                          .;'+##',,+,,.````........'''''''''';..``    `    .`.,:;'''';......:`````   ;;+'``,;::::::::,,,,,,,,...... `.. ,,,;@+:.  `` ````.,,,,:,```.,,,,,.````  `  `    
                                            `;:+++##:`......,,,,,,,;++++++++++'.```   ``  ,```.,:;''+,,,,,,,,.......`   .` .::,::::,:,,,,,.........`.. `::::''''; .` ````.....`,;;:``.....```  .``      
                                                ,,:;........:,,,,,,:#########+'+.``    `.:`` ``.,:;';,,,,,,,:.......,  `:;, :::::,,,,;++;;:,........`. ``:;+++,          ```` `,'+:.``````              
                                                    :::,:,..::::::::+########++;:';.`.;;,..`  ``.,:;,.,,:::;,.,:,::;, ``.:::::::,::'++##@@#: `,..`.`````.###++'. ``           `.,.,` `   `      ````    
                                                         ,,,,;;;;;;;;@@@@@@##+';:.`` `.,,,.``  ``.,:...,,::;,,,,     .;``,:::,,;;```,'++##@@@@@@+.``````+#+'+';.. `               `  `                  
                                                       .,:,,,;;;;;;;;'@@@@@##+';:.`` `.,::,.``  ``,`...,,,::,,:,,`  `,:::,:,,:. ,,``..,;'@'+###@@@:````.+. `;;`           ` ` `,++'```` ``       `      
                                                      ,:::::::''''''''+@@@@##+';:.`` `.,:;:,.`` ``.```...,:.,,::::.```,:,:,,:  `.:``...,::,;;;;'''';````` `;;;;;,```    ```````:;;;.`.````     .`.``    
                                                     ,:;'+';:;'++++++++#@@@##+';:.`` `.,:;;:,.`` . ````..,,..,+'::;,:``,,,,:   ``,,`....,'     ```````  ` :;';''.   ` ```.....,`::,`:.....```` `        
                                                      .   .;;;;+++++++++#@@##+';:.`` `.,:;';:,...   ````.,...,   `,::,,,,,:     ``:.`..,,',         :;`   :`  :  `,.`````,:::::;;:;::::::```.`.,.` `    
                                                          ;'''''#+++++++''@##+';:..` `.,:''':::``    ```:```...` ```,,,,,:      ``.,....,,+        .'';      :''',``````.`''+''''''++''',`.`.````       
                                                        `'''''''+#####++'';+#+';:,`` `.,:;+'':````   ``..```....#;.``,,,,.      ```,`....,':      `'''',    ;'''.`.,.`.....#@@@@@@@@@@@;...,`.,..`      
                                                       .'+'++''''#####++';;::++;:,`` `.,:;+;...````   `.```,'....,,,,,,.,````.,.```.,...,,,#`    `:'''''`  `,. ``,.``.`,,,,,+@@@@@@@@@:,,,,.....,``     
                                                        ++`  '++++####++'';::,.,;:.` `,;:..,,...``````,  ``` ';': ,,.,.,:;;::.`.#```....,,,;'   `:'''''';      ,;'`.,:..:,::,:+@@@@@;,:,:,,.,,..        
                                                            :++++++###++'';:,,..```` ```...,,,...````.    ``;:     `...,        ;:```,...,,,#. `:;;'''',:.  ``.,+.`......;::;;;;;:;;;::;;:.,...``       
                                                           .++#++#+++#++'';:,,..```  ```...,:,,,..`,.     ```   ......,`         +.``....,,,;'`:;;;''.:';;   `   .  .,:,,,;''''''''''''',,,,:,` ``      
                                                          `+##' #+++''#+'';:,,..````  ``...,::,,..;``   ,.: `   ,......          ,'```,..,,,,++:;;;.,'';+@   ` `.  `...:::::'+++++++++;::;::...         
                                                           #+  `++++'';++';:,,..```   ``...,:::,:,````   ,+.:,   `,..`.           ':.`...,,,,::::..;''';@:   ``.` `,  ,;,:;:;::'''';:::;::,', .,        
                                                               ;+++''';;:+;:,,..```   ```..,::;;..`````  :         ...`           `#`.`,.,,,:::`.;;;''''#   ```      ..,,',;';;;;;;;;';;;',,..          
                                                              .+++,:'';;::,;;,..``` `````.,,':,,...`..;` `,    `..```.             ;;.`.,.,,,``;;;;;''';@: `````    ., `,,,':'';''';';;',,, ,,          
                                                              +##  :'';;::,,..:;;.``  `,;;,..,,,,...`  ,. :',  .,.```.              #,,';..``::::;;;'''''@ ```````     .: ,:,';;':+:';,:,.,`            
                                                               '   ''';':,,,..```      ```...,,,,':..`  .;``'':   ```.              .','.``:,::::;;;'''+;#;```.,`      :  ,..::;;:':::`:, .`            
                                                                  .+'; ,::,,..````     ```..,,,:,.;:.. `````.`;+;````.            `,'.` ,',,,::::;;;''''+;+````          .: .: ::.:..: .:               
                                                                  ;+'  :::,;,.```       ```.,;;::;';:.``````...``````.,,.`.`..,,:':`` `.;':,,:::'+';''''';'``.```           ,, :, :. ;                  
                                                                   ;   ;:, .,.`::   , ``:;`...:::`:,';`````....,:,.``.:;;;;::,`     ....,`,,,::.'':'''''++,.`.`...                                      
                                                                       ':. .,.` ,`   ,``;;,..  ;:. `+,;````....,,,.```,.`````    `..``.....,:,`,'`::;+''''...,`                                         
                                                                       ',  ...  ,    , ` ;:..   +,    ;```....,,. ` ` ..````   `,.`````...`..`',   :::''':,.`..                                         
                                                                           ,..  ,`   , `  .,.        `:``.....,.`     ..`````.,.  `````....:@;      `;:;:#`......                                       
                                                                             `  .`   `.`   .        `,.`.....,,,,,,`   ..``.:.    `````....`:         :+;....:::,                                       
                                                                                                    `:``......,`,:.    ..,:.`    .::```....:.          ```..,                                           
                                                                                                     ;......;#+:`      `;.``.,::;#:`;``....'.`           ...,,.                                         
                                                                                                    `;.....:@.   `.:.   ..``...'+@; ,,`....';.          ..,,,,,,                                        
                      +@                                      @+                                    `:....,@,      .     .``@:     ` ;``...'@.`        `,,,,  ,.                                        
     ;@@@@@@@` @@`   `@@  @@@@@@@  @@@@@@@@  @@@@@@@@  @@    '@+  @@@@@@@   @@@@@@@  @@@@@@@#      `,:....#;             .`,@`       `;`...;@.,        ,,,,,,                                           
     ;@@;;;;.  @@@;  `@@ @@;;;;;   @@;;;;@@+ @@';;;;   @@@`  '@+ @@;;;;;@@ @@;;;;;   @@;;;;;       ..`::.++          :`  `.'#        `,,...:@.,`      .,,,,,:,                                          
     ;@#       @@@@# `@@ @@        @@    ,@# @@:       @@@@; '@+ @@    .@@ @@        @@                `:#          ;:` `` :;        ` ;..:,@,.,     .,,,: .;:                                          
     ;@@@@@@   @@ @@@`@@ @@  @@@@` @@@@@@@@  @@@@@@@   @@ @@#'@+ @@@@@@@@@ @@  @@@@  @@@@@@,            ;           :`  ````.         ``:.`.`  :`   ,,,,:,,                                             
     ;@#       @@  @@@@@ @@    @@` @@@@@@@@' @@:       @@  @@@@+ @@@@@@@@@ @@    @@  @@                             ```,.````.`        ,:`     ., `,,,:::::.                                            
     ;@@@@@@@' @@   +@@@ #@@@@@@@  @@     @@ @@@@@@@@. @@   @@@+ @@    .@@ @@@@@@@@  @@@@@@@@                       .,::.``````.`               ,,,:,::, .;,                                            
     ;@@@@@@+  @@    ,@@  #@@@@@   @@     @@ @@@@@@@,  @@    +@+ @@    .@@  @@@@@@   @@@@@@@                         .#+``:,`.`...`           .,:,:::::;.                                               
                                           @                            ,@                                             ``.  .`.........```..,,,:::::: :::                                               
                                                                                                                           `.........,.,,,,,,::::;::;` ,,                                               
                                                                                                                           .. `.,,.,,,,,,,,::::::; :;,                                                  
                                                                                                                           .  ... .,;,,,,::;::,.:;  ;:                                                  
                                                                                                                              .,  ,, ,,,`:; ,:, ,;`                                                     
                                           .@.                                                                                   `,. ,:. :: `;,  :                                                      
                        .+                ,@`               #                    @                                               `,  .:  ,:  ;.                                                         
       @@    '@+ @@    '@+ @@@     ;@@ ;@@@@@@@#;@@@@@@@   @@   @@@@@@`  @@,    @@ @@@@@@@@:                                                                                                            
       @@@   '@+ @@    '@+ @@@;    @@@ ;@@@@@@# ;@@@@@@@@  @@  @@@@@@@@` @@,    @@ @@@@@@@;                                                                                                             
       @@@@  '@+ @@    '@+ @@@@   @@@@ ;@#      ;@#    @@. @@ ;@#    '@+ @@,    @@ @@:                                                                                                                  
       @@'@@.'@+ @@    '@+ @@ @@ @@.@@ ;@@@@@@, ;@@@@@@@#  @@ ;@#    '@+ @@,    @@ @@@@@@@                                                                                                              
       @@ .@@@@+ @@    '@+ @@ ,@@@@ @@ ;@@;;;,  ;@@@@@@@@  @@ ;@#    '@+ @@,    @@ @@';;;`                                                                                                              
       @@   @@@+ @@    '@+ @@  @@@  @@ ;@#      ;@#    @@; @@ ;@#    '@+ @@,    @@ @@:                                                                                                                  
       @@    @@+  @@@@@@@  @@   .   @@ ;@@@@@@@ ;@#    #@; @@  #@@@@@@@   @@@@@@@  @@@@@@@@                                                                                                             
       @'                           +@                 `@;