................................................................................
.. ... .............................................................
. .. ........ ...................................................'
. ..................................................................'
... .............................................................'
.. ........ ....................................................'
.. ...............................................................'''
..... ... ..........................................................'''''''',
. ................................ . ...............'''''''''''''''',
.............................. ........'''''''''''',,,,,,,,,
............................ ..''''''',,,,',,,,,,,,,,,,;;
.......................... .';,,''',,,,,,,,,,,,,;;;;;;
........................ . ...........'',,,,,,,,,,;;;;;;;;:::::
....................... .....''..''..'',;::cc::;:cll:;,;,,,,;;;;;;;;:::::::c
...................... ...,:lodxxxxxdddddxxxxxddoolodddolc:'',;;;;;::::ccccccc
..................... .':okO00KKKKKK000000OOOOkkxddoooodoll;.,;::::::ccccccccl
.................... .;okO0KKKKKKKXXKKKKKK000OOOkkxddooooll:..;:::ccccccclllll
.................... ..cxO0KKKXXXKKKKKKKKKK0000OOOkxxxdollcc:'.,cccccclllllllll
................... .'ck0KKXXXXXXXKKKKKKKKKK000OOkkkkxdolc:,...clllllllllllllo
................... .'lO0KKXXXXXXXXKKKKKKKKKK000OOOkkkxolc:,...clllllllooooool
................... .,oOKXXXXXXXXXXXKKKKKKKKK00Oxollcccc:::,. .clooooooooooooo
.................... ,d0KXXXXXXXXXXXKKKKKK000Oxc,'..',''... .,ooooooooooooooo
..................'. .:k0K0Oxddolcccclooddddl:,.';:ccccc:,. ':;;oddddddddddo
.................''. .','.. .,:clllllllc. . ';cl:,,;;,;, ..''..;xxddddddddd
.................''.. ..,. oKKOxl:loxOKd.;kO;.,::llloooodc..'.,'..,dxxxxxxdd