cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
cccccccccccccccccc::ldxkOOkxdc::cccccccccc:c::clc::ccccccccc
:::::::::::::::::lkKWMMMMMMMMWOl;::::::::::;l0WMW0o:::::::::
;;;;;;;;;;;;;;;o0WMMMMMMMMMMMMMNx:;;;;;;;;c0WMMMMMMKc;;;;;;;
;;;;;;;;;;;;;;OMMMMMMMMMMMMMMMMMMk;;;;;;,lNMMMMMMMMNc,;;;;;;
,,,,,:dxxddookMMMMMMMMMMMMMMMMMMMN:,,,,,lWMMMMMMMMXo,,,,,,,,
,,,,lNMMMMMMMMMMMNK00KNMMMMMMMMMMN;,,,,,oWMMMMMWKo;,,,,,,,,,
''',:KMMMMMMMWWKd;'''',xWMMMMMMMMx,'''':0WKKX0xc,'''''''''''
''''';oxkxxdl:c,''''''':NMMMMMMXo,'''ckXOc,'''''''''''''''''
.........''..''....''';OMMMMMXd;'',lONOc'..........',cool;''
.......''''.......',lx0NNXOd0XxodkKKx;'...........'oXMMMMWx'
.....,d0K0Oxl,......''',;:clKMMMMMNd,.............cNMMMMMMO'
....;0MMMMMMMNxxxkO00000000WMMMMMMMMK:.'cxO00K0kl,kMMMMMMNc.
...,0MMMMMMMMM0xdlc:,'....;XMMMMMMMMMNxKXkc;;:oONXNMMMMMMx..
...cWMMMMMMWXx'............lXMMMMMMMMMMO,.......;KMMMMMMK'..
.;dxl:::'.. .;0WMMMMMMNO, .0MMMMMNc.
.'::;'. .:kXWWKx,. .;ONMMWo.
.cKWMMMN0l. ;0No. ..;:,.
.dWMMMMMMMWo. '0Wd.
;NMMMMMMMMMX; .lW0'
cWMMMMMMMMMMd. .oM0'
cWMMMMMMMMMM0. ;KWx.
lMMMMMMMMMMMN: ....'lXWO;..
.;OWWWWNWWXXXKKk:. .;kXNWWWNWMMWWX0l.
........kO'. :NMMMMMMMMMMMMMMWc
.x0; :NMMMMMMMMMMMMWNK;
.... .,odddoollc::;,'.