.........':;'....''''',:lc'',,,,,,,,,,,,
''''''...'dkxlcllllllloxxd:''',,,,,,,,,,
..''''....lOkxxkkkkOOOOOOOOxl;''''''''''
....''...,dkoxKNNXKKKKK0KXNXK0o'........
........,dkkddOXXXKKKKK000KK0Oko:'......
.....,;,cddkxx0KK0OO000OkO0K0KNMWk,.....
...'cxxllxxdxXMMW0kK0KKKKKXKKWMMM0;.....
''.;xOkodOOkx0WMMX0KXXNNXKK0XWWKx;......
,,.;xOkooOkkkxk00KK000000OO00Od,........
:;':xOkooOkkkkkkxxxkkkkkkkxxkko;:c:;;;;;
oo::xOkooOkkkkkkkkkOOOOOOkkkkOo:cllloooo
llc;:odloOkkkkkkkkkkkkkkkkkkkOo:looooooo
oooocc:,oOkkkkkkkkkkkkkkkkkkkOo:cooolooo
olllll:,oOkkkkkl;;::::;:oxkkkOo;cooooooo
looolc,'lkkOkOx:,;;:;;',oOkkkko;:looooll
loddol:',ldddoc;:cc;,,'.;ldddl:;::ccclod