.........,................'',.',.'',:;;:l:::;;;;;:::cldl:cc:cccclollooxkcc:;,''',,:'','...  .:..     .  .      .    ..                                     .              .         
.  .........................';....'';,,:l:cccc:;;;::::c;ldccll:c:ccccloo:c;;,,,,;;;''','...       .                         .           ';.                 .         .        ..   
   .........,..............''.'.,'',co;;;;cdllccc::::cc::::c::::::::::;,,'',''',l:;,;''.....               .    .                 .     ..               .       .      '    .  .   
  ........................'...'''.',;;,,',;,;ccl::::ccl:;;;;::::;:;;;;;;;,',',''''';:,...                                  .                       .      . .   .               .   
....:...................','.'......',;,..'.'',,;;c:::cc;,,,,,:c;:c:;;;;,,,;,,'',,,,;xx'.....           .                 .   .   '.                .               ,.            .  
 ..;.:'.......'...........'l;,.....''.'''..'.''',;,,;;,,,;,''',;,;;;,;:;;;;:;,;::;,','..,'..  .   .         .. .. . .,   ..         .                                             . 
....'l'..............'......,...,'',...;:.'.''''''',,;,';,'',;',.',,,;cclc:c::c::;,','..'.....     .   .         ..         .                      .    ''   .                      
..............,......,,.........',''...';';l''.,',',''','''''.'.,',;;cdk0Oxoccccc:,,,'............  .... .                  .  .   .                  .     ..              .       
......................................,,l'...:;.';,''','';.....''',:koldxdc:::::::;;'.....................     .       .  .  . .         .   .   .                                  
.........................'...''..'....;:'..'.'.....'',o:'..';;,,,;,;:;:::ccllc;;,,;,'.,......c:,..'......         .      .       .... .               ..  .                     .   
.............................:'',..'..''...'.....'..'''',';,',,'::,;;;;:lolldx:;;;,'''.......;:.......  .. .                ...;::ccc::,,...'..    ..    'd..        ..    .    .   
..............;'.........'...',',';''',:'''''.',''''.'.,,;l::cc::;,;;:loOdckKKOdl;'...,l:.,.......'..... ..  ..    ...     ..'::c::ccc:::::lcll;;:,..   ..:..         .    .        
...............',.......','''',,'';'''';'''''''''','',,;;cccxkOko:::lccokKNNXXOdc;','.':,..... ........   ... .    . .   . ...''.'',,;,'',ccloodddlc;...             .          ..  
.......'...........,....;',,'''''''''.''''''':''''';,;;:;;:ldKKxl;;;:lloOOKK00xdl:'.......'......     ....  . ..        ......',::cc::,'...,coodxxxkxdol'.    .                     
.......;...............',;::,',''';,'..,::c,'.''',';;;c:c::ccoooc:::;:loxkkxddol:,.....';...........   ..  .  .   ..   .. .,loooolllllcllllloodddddxxxkkkdl'       .           .    
...'..'..'..........'..';lOdll;,''''''';:o;,',,;:c,,,;::cccc:llcc::::cclllllc:;,''..'.'...........'......     ..  .. ....,:dxxxxxkkkkkkkxxxkkkxxxdddddxdddddo:. .              .    
............'........''',;;;,''';'',..'';',::::llc:;:colclllolllcc::;,;;;,',;''.'.'...........''....... ....  .....';codxkxxkkkOOOOOOOOOOOOOOkxdoodddddoclc:coo'..    .,'.          
.......'.'..'.,'.....'''',,,;::;;;;,,''''',:dd:ddc:cclllclcclllolccc::;;;,',,''''.'..'...................'. ......'';cooodxkdoddxkOOOOOOOOOkxdddoolcc,......,:cc;'';;:loxkd:.       
.......'......'....''',,',,:clc;;;:;;,'''',;c;'':c:cccccccccldooollkkc::llc,'.',..,........'...................'..    .'okxocooloolodxOOOkkxxxdocc;,.       .',:cllc::::cllod'      
.......''.........'.''',,;;;;;;,,,;;;;','',,',,::cclllccollllooollodl:ccdd:''''''','..........,.............',.':.    .lcc;,;,'.....'';xkdlodddoc;,..       ..'',;,,:lllcccldo      
...............'....',;;;;;;;;;;;,c;;;;'','',;:cllkdolclo0xooolclcl::::;:,,,,'''','c,'....',c''......'..'.....'.,.    .,.........''..,;cko:cllllc;'..  ..    ...';';cododdxkk;      
..........'..'.....',,,;:;,;;;;;,,;c;:;'',...:lodxxdddodxdxddllcccc:;c;;;lc:,,,,,,;c,'''',''..'...............;cd:   ..''''..',',;;::lllxxlclllcc:;,.  .     ...';.';cllldxx:       
...,l,.....'.'.....',;;;:::::;;;,,;:,,,;,''.,clodd0Odx00Oxdoocc:cccc:;;;;;cl;:,',,,;''',''.....'....,...........cl'  .:;,:,,::;;;;;;:coxkxxolcccccc:,...    ...';;..',;clll'        
....''..'.........'',;;:::clc:;;;;;'''''..,:;:lodddodxolllodlcc:clccccc;c:;,,,,;'',c,''''''......;................. .lcc::::ccc::;;;;:;lodoolc:::cc:,''...  ..';;:,,,,;;;..        .
.......'.;....''',,;;;::c:::;;;;o;'....'.;ld:;odddoddlodlllllccclokxoc:;;;;;;,,:,,;,,',',,,'.''..',.................:doc';;',;::;;,','',col::lc::cc:,......  ..,:::....    .        
.........,''',,,,,;:l;;;::,,,,,;,''colcccldxodddddddkdddkolllllllllcccc:;;:;;c;,,;,''''''',''''..'..................cl,,'',,',;,;:;,,;:c:col::llc:llc,........';col..               
......'....'''''''',,,;;;;;:;',;;;cxOOkkO00Okkkdoodkxxddddolllcldlclkd::;;,;,;;,,'',''',;''''....''.................;c,''.    ....',,::cllll,;:::::ccc:,.....',;cdo.                
.'.....'....;''',,,;;;,,;:;,',:c:cokdkxkxxkxxkddxddddok0kxxdooodollcccc::c:;;;;,,,,,:,,,'',;'.......';...............,'..            ...',;l;,;;:::ccllc,...''';:oc.  .     .       
.,.'..........'';olc;,;,,,;:c:cllodxOxxxddoldoxxdddxodoxdxO0oooxxolco:::cclol::c;c:',,,,,'''''....,.........'........,,;,          .....;occ:;,,;;::;:ll,......,co, ..     ..       
........'...,''',cc::,,;ccocclooxdddddkOkdloloxKkddolooxookdlllddllclll:c:lxd:;;;,;:;,,,'''',.',;,'..,,........;....';,;;,...,;;;:clloddoodl:;;,;::c:ccc,'...',,:o.           ..   .
'....'....'','''','''.',:xdolllodollxOxdooollloooddxdolodooooloooldollkc:c;;;;;;;,,,;,,,,,''''';o:'.';..............,:,;cdxdddxkkkxoc:;,:dxd;,'',;;;:cc,'..',;,,:;          .       
,.........'';',,,',,'';cclccccclccoocllOkdooodoxxx00dodO0dooOddkoccc:::;;,,,cd,,,;,,;:;,,'',''''','.'................:;;;oollllllc:,'.',ldx:'....',,;;,...',,;;::. .          .     
........''';;,;;,,;;;;ccclloc::llclo::cdOkdoodookkKkxxxkkdlddxxxlcc:;:::,,'';;c,,'';;,,,','''.'''''..'............;...;c;c,......',...':ldl,......'.......',;:;c,..' .       .    ..
.......''''',;c;':lcc::cc:;:;l:;:;;:::coxxk0klldkO0kxxkxxkddkkxodocc;:;;,;,,',l;:c;;;,,'';,;,'',:'...'....'.....'.....'cc,;'.   ...'.;,cox:;;;;;,,,.......,,:ccc. .. ..       .':.  
.......''..',,cl:llcc:::;;,,,;;:;:cc::clolcc:lcllodOkOOO0K0Okxdllc::;:c;;:',',:,:;;,,,,,',,,,,',''..........'..,......;occ,'..  ....',;loc;;;;::;;;,,'....,;;:c,.           .       
.;,'......,,;;::;;:c:;;:;;;;,;;;;:do;:ldOccc;;lolddxkKNNNWWN00kdolcc::l:;,;,,,,;c;;;,,;',;,,'',',,'''....,..,.........dd:',,'.......',;:;,,,;;;,,;;;;'.....',,'.....                
'..';,'..',:;;,,;clc:;;;;;,;;;,;:cl:;;c:::l::dlclxdox00OXXXXKKOkoodxdll:;:;::;,l:;,,',,,,,,,,,;:;,,;,''..............:xo:,...'.......',..........''''......... ...     .   .  . ... 
..''''...,',:::lll::co:;;,c;;:::olxO0o:;cldkklxoo;:o:llokkONKkxolloklc:;;,,;;;cc,,,,,'',,,c:,;;;,:;;::;''',:..'.....;ddd:;'.....   .....  ..            .....   ..         ..       
,.'''..''.,,;;:cc:ckdl:;;,:xd:c;;:codOldxdkKOkoclccdoOoxOdookocccoc:;;;:,;,;;:;:;;;,,,',;;;;;;:;,::cc::;,''.'......cdddoc:'...      ......'...         .....     .      .      .    
,',,'''..'',;;:::::llcc;;;cc:;;;;c;;:c:lkk0OKKkl:;cOoldxoodol;;::c;;'';',',,,:xx::,;;,;,,;::::cclooldxc:,;'.'.....:odxdoc,;....    ..'...',,''...... .......   ..   ..   .        . 
'''','',.,;,c;:;,;;,,;;;;ll;;:lc::;cc::cOOOxOxdo::;clo0000Od::::;,''''''',,,,,,;;;;:oc:;;;:llldOKOkdkK0o:,''',;'';lddxdcc;,,...    ......',;;'.''..'..'.....  .. . ...              
''',''.';;;,,',''',;;;,;;:cl::ldxdolc::lokxxddoo::::lokNNXko:',',;,;;'';',c;,'',,;;cc:::;:::lxdxO00K0kkdc;,;,',,cooddxlcc:';'...   ......',,;'..'.',,'.......... ..   . .       .   
'''',..',,:c:,,,',,,,:;:::ccclo0XkoolclldOXKkxllo:;:loxxdll;,,'''';;:,''','',''',;l::cc::ccloclooxOkOxooc::;clcododxxolc:c'';....... ..   ..,,'...';,'........'.....     .          
''',,,,,',;:c;;,,,,,,,;::cd0lccclodllloddxodooc:l:;:c::;:,,,;,'';,,,,;,,,'''.'.'''',::cclllllc:ccokdxlll:;;;;:clooxxollccc,.',... .....      ..   .,,:'........ ....   .          . 
.'.'';;,,;;,,;,,,,',;;;,;:cll:c:ccoxoldO0Oxol:c;:::;:;:;,'';,,,,'',',,,';:;'''.'....::::cccloclcclcccolc::;cc:;ldxxolllccc:'.''...   ...     ..  .'';c... . .   . ... .;.......     
''';,;,:,,,;c:;,,'';;:,,;::oc::c:lllcldkK0olc:c:ccl:,,:,''''',,'''',,''','''.'',,,'.'',;::cccccc::::cc;,,,,,,;cddddlllcccc:;'.......       ..    ..';''.    ..        ...;l..       
.'.,c::;;,,c;,,;,,;'',;:;:cccccccclolllcccclco::ooc,;::,....'...'.,,';''.'.'.'..;c''',''',;clc:::c::;,',,,;:;coloollllcc:c:;,'..'....... . .     ..,'.   .         ..'.....    .    
...,olc::c:;;,,,:;,,,;:dKxlcc:cllcclcccccddlocc:coc,;;'.'.''........'''',''''''''.''.'...,,;;:coc:;,',,'.,;cloloollllcccc::;,,....................',.  .    .. .........            
..':olcc:::;;,'',',,:c:clolcc:cllcllllllloocccl::::;,,,',..,,.......,..''''.'',,,,,'.'..,',';;,c;;''''',,;lodoololcllcccl;:;,''..................';'..         ....               . 
;,:ccolc:;;;,''''',,;;;::coolllllllllccccccccl::l:;;;,c;,;;,'''''''...''.'''',;d0l:''''',:.'..........',cclooocllcclccccl:::;,''....''...........';. .. .,. ..                      
,.:ollo:,,,;',''.',,,,;;ccclclcoolccccccccllccc:::;;,;,,,;:o,',''.';,..'.''',,;loc,''.,c'.,...........,,ccoodlcclccccc::l:::;;,''..''.''.........,,.   .... .           .         .