:~~=~=~:~~~=~~~~~~=~~=~~~~~=~~~=~~~~~~~~~~~~~:~~~~:~~~~~=~~=~~~~~:~~~=~~~~=~:=~~~=::~~=~~~~~~~~~~~~~~~~~=~~~:~:==~~~~~~~
~~~~:~=~=~~~~~~~~~:~~:~=::~=~~~~=~~~~:~~~:~~~~+=:+~~=~~~~~~~~~~~~~~~~~~~~:~~~~~~~~~~~~~~==:~~~~~~~:=~~~:~=~~~~~~:=~~~~:~
:~~:~~~~~~~~~~~~~~~~~~:~~~~~~:~~~~~~~+~+III=~~~::+I+=~~::~~~~~~~~:~~~~=~~:~~:~~:~~~:~~~~:::~~~~~~~~~=~~~~~~~~~~~~=~:~~~~
~:~:~~~:~:~~:~~~~:~~~:~~~~~=~~?I=7~?IZO8NNZNDO8DZO7+++?=:~~~:~~:~~~~~~:~~~~~~~~:~~~~~~:~~~~~~~~~~~:~:~~~~~:~~~~~~~~~~~~~
:::~~~:~:~:~:::::~:~::~:~~~~ZI?7Z$88NNNNNNNNNNNNDO$$Z7OZO$I+~~::~~~~~::~:~~~=~~:~~~::~::~~~~~:~~::~:~:~~~:::~:~=~~:~:~:~
~~~:~~:~:~~~~~~~~:~:~:::~~=D?I8DNMMMMMMMMMMMMMMMNNNNMNNNMN8Z77:~:::~~~~~~:~~~:~::~~:~:~~~~~:~~::~~:~:~~~~:~:~~~:~:~~~:~~
:::::~~:~~~~:~~:::~:~::~7ZDDONNMMMMMMMMMMMMMMMMMMMMMMMMMMMMNND87+:7=~~~:::~~:~::~~~:~~~::~~::~~~::~~~~::~~:~~~:~~~~:~:~~
:~::~:~~~::~~~:~~~~~::~ODNNNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMND88O7~~~:::~::~~~~:~:::~~~~::~:~~:~:~,~~:~~~~:::~:::~:~~
:~:::~:~::~~:~:::~:~=?8NNNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNDZZ$I~~::::~~:~~:::~~:~:~~:~~::~~~:~:~~::::::::~:~:~:
:::~~~::~::::~:~~~~?$DNNMMMMMMMMMMMMMMMNNNMMMMMMMMMMMMMMMMMMMMMMMMNNNDD7$+:~::::~::~:::~~::::::,:~::~::~~::~~::::~:::~::
~::::~:::~::::~~~=?78NMMMMMMMMMMMMMNMMMMMMNNNMMMMMMMMMMMMMMMMMMMMMMMMNNN8Z?=?=::~~:::::~~:~~~:~:~~::~~~:~~::::::::~:::::
::::,::::~:::~788OO8NMMMMMMMMMMMMMMMNMMMMMMMMNMMMMMMMMMMMMMMMMMMMMMMMMMMNDD$Z:?::::::::::~:::::::::::::~:~:~::::::::::~~
:::::::~::::?I78$ZDMMMMMMMMMMMMMMMNMMNMMMMMMMNMMMMMMMMMMMMMMMMMMMMMMMMMMMMNDO$7:::~:::::::::::::::::::::~::::::~::::::::
::::::::,::+~=?78ONMMMMMMMMMMMMMMMMNNNNMMMMMMMNMMMMMMMMMMMMMMMMMMMMMMMMMMMMNN8$O777I::::::::::::::::::::::::::::::::::::
::::::::::=:=O8NNNMMMMMMMMMMMMMMMMNNNNMNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNN8$+~::?::::::::::::,:::::::::::,:::,::::::
::::::::::~=ZDMNMMMMMMMMMMMMMMMMNNNNNNNNDNNNNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMN8Z~:::::::::::::::::::::::::::::::::,::::
::::::::::?$NNNMMMMMMMMMMMMMMMMMMNN8888D$IZOOODMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNMDO$:,,:,::::::::::::::::::::::::::,,,,::
::,,:::::~IONMNMMMMMMMMMNNNN8NN8DNN8+Z?ZD7~+=77DDMMMNNMMMMMMMMMMMMMMMMMMMMMMMMNMDO8?:::::::,,,:,::,:::::,,,:::::::,:::::
,,:::::,,7ODNNMMMMMMMMMNNDDNO8ND=ODO+=O?7N$=~~=~+88N8NNNMMMMMMMMMMMMMMMMMMMMMMNNNDIZ::,:,:::::::::,,,::,::::,:,,,,:,::::
:,,:,,::?7ZNNMMMMMMMNNDD8I$887DN=~DDZ~~8~?N+?~~~~~~=$NDNMMMMMMMMMMMMMMMMMMMMMMMNNN8??:::::,:,,:,,,::,::::,:,,:,:,,::,:::
:,::,:::=8ODNMMMMMMNND$O=~I8D=7NI~~NDI~~I7~$Z~~~~~~~=7DNMMMMMMMMMMMMMMMMMMMMMMMMNN8O+:,,,,:,,:::,,::,,,,,,:,,,,::,:,,::,
,:,,:,,:8=MNMMMMMMND$7?8=~?7O~+DZ~~8NN$+:~+77+O+~~~~~~?DNNMMMMMMMMMMMMMMMMMMMMMMMMD$D~::,::,,,,,,:,:,,,,,,,,,,,,,,,,,,:,
,,,,,,:+IDDNMMMMMMD=Z==?~~?=II=++~=$~N8+Z::::~==:~~~~~+?+ZMNMMMMMMMMMMMMMMMMMMMNMNND=7:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,:DDNMMNNNNN==?Z=+=~~~I~~$~~~~~~~DO+$=::::::~::~+=~ZDNMMMMMMMMMMMMMMMMMMMMNNOIZ=,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,==8NNMMNNNN+===++==+=~~~$:~~~~:::::++=~::::::::::::~?8MMMMMMMMMMMMMMMMMMMMNNNO,?,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,:~NN8DNNNM7~======~~~~~=:::::::::::::::::::::::::::::+ODNNMMMMMMMMMMMMMMMNMND8I:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,.8=8OMNNNN~~~~~~~~~::::::::::::::::::::::::::::::::::::Z8MMMMMMMMMMMMMMMMNNNDD$:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,+,~OM8NNNO~~~~~~~::::::::::::::::=?7$OOZI+:::::::::::::~ZNMMMMMMMMMMMMMNMNNNN8Z=,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,7,=78DNNN?~~::::::::::~::::::=78DDNNNDND88?::::::::::::~I8NMMMMMMMMMMMMMNMMNND$:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,.:,IO$DMMN~:::::::::~~:~=:,:+O8NND8Z$7?++~~~:::::::::::~:+IDNMMMMMMMMMMMMMMMMNNZ,.,,,.,,,,,,,,,,,,,,,,,,,,,.,,,,,,,
.,,,..,:.ZIODNN::::::::~:~~::=~~ZDDD$7+=~~::~I~:~:::~:::::::::~IONMMMMMMMMMNNMMMMMNN+,,,..,,,,.,,,,.,..,..,..,,...,,...,
,..,....,++ONNN::::::::::~=::~+ZD87?~?+~=7Z$++?7::::::~========~$NMMMMNNNNNMD8NNNMNN7,........,............,,.........,.
..........:=OND:::?$OZ$7~:+:::+7Z??+I=O?.NODDN7O~::~~~::::::::::~DMNMNNOD8ZZ?~:,INMN8=.,................................
..........~+IN8$8NNNMND8ZI++~~~7+??==+,..$MN?=?~:~::::::::::::::~8NMNN88DO$7~???::MNO=.,................................
............:DNNNN8Z7IIII??+?==Z?I?+II+~~~=+::I~:::::::::::::::::ONNNNO$=+?+=~=++,NMOI..................................
.............ZN8Z7::7??+7$I?==+I+??+===~===+=?:::::::::::::::~:::?NNN8O+~::~::~=?,IMO?..................................
.............:8=~:$$D8NOD$7~:::+I?=+~=~~::::=~~:::::::::::::~~~~:?NNDO::~=?~==:=?:?NO,..................................
............~,:+:~NO..ODNO+::~~~~?++::~~~+~:~:::::::::::::::~~~~:+DD8Z~:~:~+~++~+,7MI...................................
............+..,~+$...~~,~::~~~~~~++==~:~~::::::::::::::::::~~~::?ND8?:::+:~=+:==,8N=...................................
...........,,...,~=++:::=~::~~~~~~~~~~:::::::::::::::::::::::::::~ND7:::+I+=:=:+,,NN,...................................
...........?,....:=~~==~:~::~~~~~~~~:::::::::::::::::::::::::::::ID8=:::I?::::?~:ON8....................................
............7....,~~~::~=~:::~~~~~~~~::::::::::::::::::::::::::::7OI::::::::~==:ZNM8....................................
.............~:...=~~~?~~::,,:~:::::=~~:::::::::::::::::::::::::~+=::::::::::::ONNMO....................................
................:~+~:~~~~::~=====~::==~:::::::::::::::::::::::::::::::~:~::::~NMMMMI....................................
..................:~~~:::~::~~?7Z8===~:::::::::::::::::::::::::::::::~I+~~=+?8MNNNN,....................................
..................~~::~~~=+O:~~~~~~~::::::::::::::::::::::::::~~~::~~~II++???8NMNMN,....................................
............     .::::~~~~~=+~=::::::::::::::::::::::::::::::::~~~~~~~??=++??7NNNMN~.                                   
............     ..~:::~~~:~=+II???+=:~:::::::::::::::::::::::~~~~~~~+==~:~=??NNNMN,.                                   
                 ...:::~~~~=??I777I7I=?+~~::::::::::::::::::::~~~:~~~+::::::==NMNND..                                   
                 ...::~~~~~+I+++:::~=++?=++~:::::::::::::::::~~~::~~~~:::::~=+NNMMO..                                   
                    .::~~~=++~~::~~~~==~:~=?+=~::::::::::::::~~~::~~=::::::~=?NNNN8..                  ...            ..
                    ..~~~~=++~===?77II++++?+~+~::::::::::::::~~~~~~=~:::::::+?8NNMD..                                   
                    ..:~~~++~=+::::~~~~~~::::==:::::::::::::~~~~~~=~::::::::=+$NNMN=.                                   
                      .~~~=~+=:~~=~=~~~~::::::~~::::::::::::~~~~~=~:::::::::=+=NNMN?.                                 ..
                      ..~=?~~::=III7??=~~::::::~~:::::::::::~~~~=~::::::::::=++8DNN~.                                   
                      ..:~=::~=+?I?I+==~~::::::~=:::::::::~~~~=+~::::::::::~=++I8NI..                                   
                      ...:=::~~=~~::::::::::::::=~:::::::~~~=++~~::::::::::~~+?+$7?IIIIII=...                           
                        .:=~:::~::::::::::::::::~~:::::~~==?+==~~::::::::::~=+??,,,7$$7II7I,.                           
                 ...     .~:~:::::~~::::,,,:::::~~~::::~+I?+===~~::::::::::~=+I.,,,.$Z77IIII+...                        
                         .::=:::::=~==::::,::::::==~:~???++=~~~~~:::::::::~=+,,,,,,:=IIIIIIIII:...                      
                         ..:~~:::~~:==~~~~::::::~=++I7+===~~:~~~~:::::::::~,,,,,,,,,7IIIIIIII777..                      
                           .:+~~~~=?++???+=~~:~+I$$7I+===~::::~~~~::::::~~,,,,,,,.,IIIIIII7IIIIII:. .                   
                            .====++=+?II??+++++I7I??++=~:::::::~~~:::::~.,,,,,,,,,II7IIIIII7IIII7II..                   
                           ...++?+????77$II?7?+?????+=~::::::::~~::::~:,,,,,,,,,,IIIIIIII7IIIIII??I?,......             
                              .~????+7$III+=++?????=~~::::::::~:~~~:~,,,,,,,,,,:II7IIIII7IIIIIII7I77IIIIIII?~.. ... ....
                              .......,,..+++???+?+~::::::::::::::~~,,,,,,,,,,.~IIIIIIIIIII77II7II7III7IIIIIIIII7IZOOO88O
                                        ..++???+~:::::::::::::::~:,,,,,,,,,,.,7I7IIIIIIIIIIIII$II7IIIIIIIIIIIIIO8ZIIII??
                                          ~+++=~:::::::::::::~~:,,,,,,,,,,,.,II7IIIIIIIIIIIIII7IIIII7IIIIIIIIOOZ7II?I??I
                                          .+=+=:::::::::::::~:,,,,,,,,,,,,.,IIIIIII7IIIIIIII77?III7IIIIIIII$OOIII7IIIIII
                                        ...I==~::::::::::::~.,,,,,,,,,,,,,+7I7IIIIIII7II777IIIIIII$II7IIIIOO$IIII7I7IIII
                                        ..?~+=:::::::::::=,.,,,,,,,,,,,,~D7IIII7IIII7I7I?I77?I7Z$7IIII7IIO8ZI7II7IIIIIII
                                        .I+,?=~::::::::=,,,,,,,,,,,,,,,$8II7IIIII$IIIIIIIII$Z$$7I7IIIII7O8$IIIIII7IIIIII
                                     ...?I=,+=~~:::::~,,,,,,,,,,,,,,,+ND?7II7III?II$II?7I$Z$IIIIIIIIII7OOZIIIIIIIIIIIIII
                                     ..=II?,,7===~::=,,,,,,,,,,,,,,,NNDI7$I7$7III7II7II7$ZIIIIIIIIIIIIOOOIIIIIIIIIIIII7I
                                     ..I7I+,,,I===+::~,,,,,,,,,,,,,MNDI7$7I77III7IIIIII77IIII77IIIIII$8OIIIIII7II777IIII
          ..                       ...IIIII.,.,7?+.,,,,,,,,,,,,,,:MMDII77II77IIIIIIIIII7?I7IIIIIIIII7OZO77IIIII7II7I77II
          ..                       ..+IIIIZ.,..,,..,:,=,,,,,,,,,ZMMD?II77III77II77IIIIII77I7I7II7III$OZ7IIIIIII7IIIII7II
                                   ..7IIIIZ....,..,,,.,:,,,,,,,8MMN7II777IIIIIIIIII?IIII7IIIII7IIII7ZO8IIII77IIIIIIIIIII
                                   .7777II8.,...,,,,,,,,,,,,,?MMNMO7I7$$I7IIII77IIIIIIIIIIII7+I7I7I$ZZOIIII7I7IIIIIIIII7
                                ..:777IIII8....=.,,,,,,:~,,,8NNMMMIII7777IIIIIIIII7I7IIIIII77I?I7IIZZZ$III7III7IIIIIII7I
                              ...=77777I?ID~..:+~,,,,:,,,:,8MMMMN8II777I77IIII7IIIIII7II7II?II7III7$$$IIII7III7IIIII7I7$
                              ..7777777IIIOD.,,??,,,,,,,,,DMMNMMMII?7$77I7II7IIIIIIIIIIIII$II7III7$$$7IIII7?IIIIIII7II77
                           ....7777$77IIII$M8..=?:,,,,,,,DMNMMMM8?II7$777II7IIIIIII7I77I7IIII7II7I$$$IIIII7?IIIIIIIII7$?
                           ...7$$7777II??I7MMN.:??,,,,,,OMMNMMMN7II?77$7IIIII7?IIIII777IIII?II77I7$$$7II7II?IIII?IIII7II
                           ..777$$7777IIIIIMMMD,+?,,,,.=NMNMMMMDII?I7777I7IIIIIIIIIII7IIII?7III7I$$$7$IIIIIIII777IIIIIII
                         ..?77$$$77777IIIIINMMNN,?+,,,.NMMMMMMM$I??I7$77IIII7IIIIIIIII?III7II7III7$$7ZIIII7IIII77IIIII77
                         .77$$7$$7$777IIIII8MMMMM~+:,,.MMMMMMMNII?I7$777IIIIIIIIIIIIIII7I$IIIIII$$777ZIII7I?7I777IIII777
                      ..777$7$77777$$7IIIII$MMMMMMNI,.:MMMMMMMDII?I77777IIIIIIIIIIIIIIII$IIIII7I$$777OIII7IIII77$7I?I777
                    ..?77I$7777777$7$777III7NMMMMMMN$.MMMMMMMNO???I7$7$7I7III7IIIIII?II7IIIIIIIII7I778I?II?III77$$III$77
                    ,7777I777$7777$7$777III7MMMMMMMMMMMMMMMMMN7???I7$$7IIIIII7I777I?III$IIIIIIII7$7$$OI?77III77777II7777
                 ..?III77I777777$$777777IIIIMMMMMMMMMNMMMMMMN8I??II$$77IIIIIIIIIII??II7IIIIIIIII$$$$$8?I$7IIIII7$7III77I
                 .II7I7II7$77777$$$7777I7III8MMMMMMMMMMMMMMMN8I??II$$$$IIII?IIIIII7IIZ7IIIIIIIII$7$$$8I$$7IIII7777I?7777
       ........=777IIIIIII77I7I777777777II777MMMMMMMMMMMMMMDN$II??7$$7777II7IIIIIIII$IIIIIIIIIII7$$$78?$77IIIII777II777I
,.+.~.7.....:I7I7777IIIIIII$I?I7I7777$7777IIIMMMMMMMMMMMMMNNNII??I7$$777I7IIII7III77III77IIII7I7$$$$$8I$7?IIIII7$7II777I
...+, .....I77777I777IIIIIII$7II777I777777IIINMMMMMMMMMMMNNMDIIIII7$$777IIIIII7III77IIII7IIIIIII$$$$$O$7?IIIIII77II777II
. .... ..III777777777IIIIIII77IIII77IIIIIIIII8MDMMMMMMMMNMMMZ7I?II7$$777IIII7IIII7II?IIII7II7III$$$$$Z$?IIIIIIII77I777II
. .... .IIII77777777I7IIIIIII77III77II7I77IIIZNNNMMMMMMMMMMMIIIIII$$$77IIII7I77IIIIII777IIIIII7I$$$$$Z7?I7I7III7IIII777I