DIR\HASHTAG\documentary
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
----------------------------------------------------------------------------------------------------
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNx::;;;:ldOKNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWx::oxxo:,..  .l0XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM0:lkkxo:;::ccc:..;kNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMWWWWMMMMMMMMWMMMMMMMMMMMMMMMMMMMMO..oo,   ;'....,, .,dNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMWWWWWWWWWWWWWWWWWWMMMMMMMMMMMMMWx  :xc...,dl,,'...  .;kWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMWWWWWWWWWWWWWWWWWWWMMMMMMMMMMMWK  .ooc;,l,c;:cccc;.  .cXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMWWWWWWWWWWWWWWWWWWWWMMMMWWWWWXOd.   cc;'cc;,;:::;;;.. .:oNWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMWWWWWWWWWWWWWWWWWWWMMMMWWWWNX0kc.  ..;' ..,,,;,,,,,:, .',kNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMWWWWWWWWWWWWWWWWWWMMMMMMMMWWNKx'  c;,..;;,. .''';:;...,'lNWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMWWWWWWWWWWWWWWWMMMMMMMMMMMMMMWXx. ...,:o;.. ..,'...;.lc.,dMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWX:   . ,l...     .';;.':.;':WMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWNKk:.   'c,..'   .,;. ..  ..;oKMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWNKx:..  'c   ,.''.. ..       .,oXWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWNX00Kl,l,';cc,.  ...         .lOXNWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWNOd;,oxl;,.   ...  'lc;,,;cldkOO0OO0OOO0XNWMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMWNXXKKK0000OOO0Oo:,      ..    cOkkkkkkOOOOO000OxxkOlxKWMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMWKOk0kxkkOOOO0000kl,'.       .'  ':kOOOOOOOOOkOOOOOxdxl':x00XMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMWNKOxcOoloxOO00kOOd,..           ':dOOOOkkkkkkxkkkkkkdoo;.::dO:dNMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMN00kkd:klcokOO0d;o;.            .lxkOOOOkkxxxdddxxxkkxdlc'  .:k::dNMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMWKK0Oc:lldccokO0K'               .lxkO0OOkkxdddoxdxkkkkdllc.  .cx;,lOMMMMMMMMMMMMMMMM
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
----------------------------------------------------------------------------------------------------
.........',:c;;:;.',.';,;;.';,;:coodllodxdxdxxxkxolo;';Okdddo:',.;:::;,...       ....''. ....       
'...'...',:c:cc,'.,;:c;;c.:';,;:lddxxkkkkkkkkkkOxdodl:';ddl;. .. .:::;,'....... ....''..... ...  .  
;;;:X0XxkN0klXNcxNdooxNdK0OXoXXoxNXNk0WXONNNXKW0kOxoo:,.ddo;. ,oc:.,;;::,........'...... .  ........
:cclMKW00WOdxWWOOMkdxxWXMWXNOWMOOWNXONWW0WWWNKMKO0Okxol;cxxl,.'kOxl:clc;'....'.....',,'.'...........
:cclM0WK0Wxo0WWXOMkdxxXMNMMKXWWXKXXM0WWMKWWNMXMK00000kk:.o0Od;.dxoolccc,',,,,;;;;,,;;;',,,,,,,',''''
ccclXkK0OXKO00OXONXKxx0NKXN0XKXNKNNNKWKNXNNNNKWX0KKKXK0Odo0Oxo,ldxc;xxc,,llclccccc:::::;;;;;,,,,,','
cclllll:,;oododddxxxxxkkkkkOOOOO0O000K0K0KkOKK0K0KKKXXKK0xd:lOlcOdx,,oko;ooooollcllcc:::::;;;;;,;,,,
cclllll:;,::cloddxxkxkkkOkOOO0O000K00K0X0Kxx0OO00KKKXKXKxd0OokOdOxxoccll,oddooloollclccc:::;:;;;;;,,
cclllc;,'.;.,codxxxkkkkkOOOOO0O000K0KK0klloddxk0KXKXXXXXd0kOok0lcooodclo.dxxxdddooolllcc:c:::;;,,'..
clcc:'...;,..;cldxdcdkkkOkOOO0O000K00koo::codxOKKXXXXKXKO0KOO00kooxdxxxk,dkxxxdddooll:;c:c:;'',,,,,'
;',:'. .,;','.,lxoc,':loxkOOOdokO000Ox:..,lodk0KKXX0xcoK000000kocodkOkOOckkkxxo:,;cc;..:cc:,.,'''','
.,;'..;,,,'o:'.ldc.'.:xo:,kOx;';oxOO0x:.';ookOKXKNNNkoook0xx00kl,;:lxxOkcxkkxxo;..'cc.';,,,',,,.....
,,'..;'. .c:,. cl,..'xkd,cOx;:.,cokOkdl;,,lokOKXXNX0kl,'c0ko,oxo;.;:ldkkcdxkxxdc;.;c:;..''..';'.....
'...;'.  ,l:...l:'..lko:.oxo,'.,coxkOxl:,,lokOKKKXOOl;..o0xo. oxl,.,:ldxcdkkxdoc'..;;...c,,. ';'... 
...:,.. .::'. .oc'. odc,.odo,..;codxO0o:',cldk0KKX0Ok:'..kk:. :xc;.':loxlcxkxxoc,. :c,. ,,....,;,...
..:;....;c:'. ;l,'. ooc;.ldc'..,cldkkOOd:,;:lx00KK0kOo:. okl'..od;..;clxl:xkxdl:,. ;:;. .'.....::,..
.:c;..',cl;'..co:. ,dl;' :xc,..,cldkOO0Okdc::okO0K0kdo;;.oOd;..,dd;.,:col:xkxol,'. :c'.  ',.....;:;'
.;;,..,lol;'.;dlc,.odc,. ;dc'..;cldkOkooooxocldxk0O0kOx;.:kd'...:dl'';:lo;dxxoo;...:d:.. .;,.....cc;
....;;cdo,'''oc;',.cxl,..oxxl,.:clddodkd;c0c;:loxkkO0OOx;.kOo,';;xkx:,,:c,oxxdd:''.:,,,;'..:'....'''
. ,.,:c,:. 'cool,:llxdc',lOOo:,cldxkkxxdodkcccodooodddocc.xOd;',;xkdc::;c'cool,:;,:;.,.;,'..;,.,..',
'';;:cclc..,;:;:::cloc'''dKOO:c;cdxOOkxkxoodxdxxdxxxlc;:,.doocoldod;l.,lc,:o:oc'cc;',:,,;,..':;'...'
::::lxdoc:;;lc:cccolcl...oxxxx;;codxxkOkOOkOkkOxdddkdooc;cx;d:..;odoo'.;;,;lcll:;;;;c:;:;,''';;'..'.
::c:ccldxclcllcllllllc,,;ldocol;cldxdkkxOkkOkOOkOOkklokoock;,d'.'cco::,;:,,cc:::c,:cc::::::,;,.,,...
::::ccclcclllllooooooolooc;clodocloddxkxkkkOkkOkOOkOkkOkxkdc,co;,,:cllccl;:lollllllllcccccc;,;,,''.,
;:::cccccclcllloooooododdccooxdxxodxdkxxkkkkkkkkOkkOkkOOxkol;c:dc;:cooodd::ooloololllccc:cc:.:;;,,.'
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
----------------------------------------------------------------------------------------------------
XXXXXXXXXXXXXXX0dkKXXXXXXXOdccdolccc::clllcdxdxkOkoooollc::cc00kO0dOOxxoKX0oXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXK0OkkxkO0XXXXXOdl:dl::;,:ooddllxkkkkxxxxxxxkdllllKXKOxdxxxxox00oXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXkddxxxddoloKXXXOddoddoodxxxkkkkkxxxxkxddolxOOOOdkOXXXX0ddxxxoxxxoXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXxlllooc::;c0XXXOdddddooddkkxxddkOO0OolcclloO000XXXXXXXXxddxxoxxxxOKXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXX0xxdolclodxKXXXOdxxxxxxxxxxxxdxO00KKKKK0OKKKKKKXXXXXXXXxddddxxxxxxkKXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXX0o00kdoOKkxXXKKOxxdxxxkxol:;codxdxxkxxkkkkxxkkkxkkkkxkkddddddxxxxxxxOKXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXX0oKXXdOXXkdOxxxxdxxxdo;'',:cdOxxddddoooddoooooooooodoooddddddddxxxxdddXXXXXXXXXXXKXXXXXXX
XXXXXXXXXXX0oKXKdxkxdoxxxxddlc;:::lok0KXXkxxxxl::ccxkkkkkkkkkkOkkkxddddddddxl:;:oXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXK0dkkxooxxdlxkk0Od0kolok0dkXXXXkdxxxc::cc0XXKKKKXXXXXXXKc;loddddddl:::oXXXXXXXXXXXXXXXXXXX
XXXXXXK0OkxxdddddodxOKXXXXOdXXKo0XXxkXXXXOxxxxoc;;o0XXKKKKXXXXK;oxooodddddddl:::oXXXXXXXXXXXXXXXXXXX
XXXXXXK0OOkkkkxxddxO0KKXXXOdXXKoKXXxkXXXXkxxxxo'''o0XXKKKKXXKKKxlKxdddxdo;ddl:::o0KXXXXXXXXXXXXXXXXX
XXXXXXXXXXXK0OkdkkxxdxxkO0kdXXKoKXXxkXXXXkxxxxl'''o0XXK000KKKKOodkddddxdd;ddl:::lxk0KKKXXXXXXXXXXXXX
XXXXXXXXXXXKK0kxxxxxxkddxkkdXXKoKXXxkXXXXOxxxxolollOKK0OOOKKOOodlldddddddxddl::cd000K00KKK0XXXXXXXXX
XXXXXXXXXXXKOOkxxkkxxxxOO0OdXXKoKXXxkXXXXXX0xxoxxkkO0K0OO0Okdcoxxkxddxddddddddk0KKKK0OOOO0KXXXXXXXXX
XXXXXXXXXXXXXXXK0OOkkkkxxddoO00o0XXxkXXXXK0OxxxxkkO0OkO0OOkkxxkkkkkOkkxxxl:cclx00OOO0KXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXK0OOkkxodxxokO0xkXXXK0OOkdxxxxxxxxxxolc:;dxkOkOOkxldxollcclooKXXXXXXXXXKXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXKkxxkkdxxxxxkO000Oklcloodddol:;;;;;;xkkOkOkolldddddlllloXXXXXXXXXXKXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXOdddxxxkkkkxkkO00xdolllll:;;;;;;;:ldxxkkxllllK0Okxoxk0KXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXOddddddddxxxkkkkkxdolllll:;;,,'',codddddlllllKXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXOdoodddddddddddollcccclll:,'';;:::;ddoddlllllKXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXOdl;dddddddddddl::cccc:::;,;:;;;;;;o,.,dlllllKXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXOoolddoldddddddoooddddxxkkdl:;;;,,,o,..clllllKXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXKXXKK0kdollo,'':dddoooooolcdO00KKKK0kdc;,o;,;clllllKXXXKKXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXX0OxOkO0000OOkddoc:odoooool:;,,,;coxO0KKKK0OO00Oxlllll:d0o,oKKXXXXXXXXXXXXXXXXXXXXK
XXXXXXXXXXXXXKKXXXX0dxdddxOkk000Okxdooooooo;;;;;;;;;,;cxO0KKKKKKKklllll:,;,c..xXXXXXXXXXXXXXXXXXKKKK
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
----------------------------------------------------------------------------------------------------
;c:;,,;::;:cc;;c;,:c;;,,;xlokdo:,,;:c;,,;co:.:ccc:. .,'.looolxocolckccllcccclo:xolOOdxcllloccc::cOOx
:cc;c:cclcc:;,,,,,,,,,,;codxxxo;,,,::;;'ccc'.;cccc...,.'llclcc;;;,,,cc::;cllloxolodoocldc;:;c:oc:lxO
;:cc:c:lolcc:,;cl:;,,;;;cololc:;,',,:,',ccc'.;cccc...,.,ol:l;;,;;,'.;;::olccc:cdccc:coc,,,'.,:l:c::c
;:ccccclooccc;lolclc;:ccol::l::;,',:,'';lcl;',llcl,'',.coc::';,;,,:c;;;::;,;::olcc,;c;'''...'';ooc:;
:cloodllxdollclc:c:;,,dxxl;;:c:;,';:',:lcl:;,'ooll;,,'.;:;,,;,,,,;:cc;,:;,;;;:c::;;:,...';;;;;:::oxx
lccllllcllloocc::;,,,,:c:c;;cdlcccc:;,oldx:;,.oooo:;,..;''''''''','''''....'''''''''.'',',,''',,:,,:
::;;;;;,,;;;;;;;:;;;;,,,,;;;:doloccc:cxdxk:lc.looo;,'..;',,,,,,,,,,,,,,;::;:;;:cllllclllllododddxxdo
:::llccclolllodddoodollloolooddddldxxddxxo,.. ,::;..' ...,:c;,',,,,;;,:clc:;:;,,;;;;;::c:::cllcccccc
clllllllllllccccclcol::::lccccoldcccclc;..,c:.,::, .' ','....','.;:::::;clc;:c;okooolol::,',;:;;,,,,
dxkkkOkOOOOOOO000OOO000KKKKKKKKKxxxc,..;coxdl;:;;;;:;..,,,'''...';lc::c;:lllllk0olldcll::lcol::c:col
NNNNNNNNNNNNNNNNXXXNNNNNNNNNNNKx:'..,ldddxOOdc,,oxxxod:',:;,'''''...';:;,:cldOOo:,',looclcxkdxxkdxxo
NWNNNNNWNNWNNWNXXXNWWNWWNWN0x:...;:c:lkkxooox;'dxdllldol.'ccc;,''..'.....',,;oodolcxOxc:lc:c:cccclod
WWWWWWWWWWWWWMWWWWNNNWWX0d;..,;ldddllodoodkXX:cdxoollllc,'dlcccc:,'.........'cdollodc:;;,,',,,;:c:c:
NMMMMMMMMMMMMMMMMMxxxOo,..,cooodxkoloddxKNWMW0lllc:;;;:;:kN0xdlllll:,'..........,,,',,'''.....,::c:;
od0WMMMMMWWWWWWWWKd:'..,codddxkOOdllxKXXWMMWKkoc::;,'''..;xkOKKddoooolc;'.......  .'ccl:'',.',,;;;;,
ooolodO000KOc:ll:...':lloddxkOOkxdk0KXXK00c  .';:lll;.    lololldOOkddddoc;'.......   ..,:,'',,'',,'
:loolooxKMNOl,. ..,:loodxkkOOkkkKXXOxc;'''........;:..............;dddddooll:,......      ..',''''. 
.,ccllclc:'. .',,;;:dkOkkkO0K00KNXKl................................:kxxxko::;,''....              .
   .....  .':cll:cokOkkkk0XNXOOO00,...............................   ..........................  ...
.'...    ..;cllllllllloooodooool'.   . ...........''.............     ..oOOOOOOOkxxddoollc;;:;......
''''',;:ox0KXNWWMMMWWWWNNNNXXXO,.        ...':loooc;'c::;;,'......      .,dxxxxxxxxxxkkOOOkl:,..... 
;::coddlcodkkkkkkkkkkkkOOOOOd'         ..,:oxkkkoccodddoodxkdc,..         .:xkOOOOOOOOOOOOdcc;;,....
::::odookOO0KKKKKKKK000000k'.      ..,coodoooool::cccc;,,;looooool;,'.....''ckkkkkkkkkOkkxlcc::;,''.
;;;;;;:odxkkkOOO000000000OO;'';:clllcccc::cclcc;,,,;,::;::cccc:;;:::::::::::;oxkkkkkkkkkxl:::;;;;,''
;;;;;;odxxxkkkOOOOOOOOOOOOx;:ccccc::;'.   .',,'.;;,,'....';;;;,....'''',,,,,':dxkkkkkkkxd::;::;;,,,,
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
----------------------------------------------------------------------------------------------------
dxxxxxkkkkkkOOOOOOOOO000000000KKKKKKKKKKKXXXXXXXXXXXXXXXXXXXXXNNNNNNNNNNNNNNXXXXXXKK000KNNWWWWWWWWWN
xxxxxkkkkkkOOOOOOOOO000000000KKKKKKKKKKKKKXXXXXXXXXXXXXXXXXXXXNNNNNNNNNNNNNNNNXXXXXKK00KNWWWWWWWWWWW
xxxxkkkkkkkOOOOOOOOO000000000KKKKKKKKKKKKKXXXXXXXXXXXXXXXXXXNNNNNNNNNNNNNNNNNNNNXXXKKKKXWWWWWWWWWWWW
xxxxkkkkkkOOOOOOOOOO00000000KKKKKKKKKKKKKKKKKXXXXXXXXXXXXXXXXXXXXXNNNNNNNNNNNNNXXXXKKKKXWWWWWWWWWWWW
xxxkkkkkkkOOOOOOOOO000000000KKKKKKKKK00OkkkkkkkOOOOO00KKKKKKKKK0kxoOXXKXXXKKKKKKKKKK0KKXWWWWWWWWWWWW
xxxkkkkkkkOOOOOOOO0000OO00000KKKKKKKK0kxddddddddxxxkOk0KKKKKKK0kcolxXX0KXX0KKKKKKKK000KXWWWWMMWWMWWW
xxkkkkkkkkOOOOOOOO0kddoldk000KKKKKKKK0kxdddddddxxxkkOOKKKK000000KK0KKKXXKXKKKKKKKKK00KKXWWWWMMWWMWWW
xxkkkkkkkkOOOOOOOOx::::;:oxO0KKKKKKKKK00OOO0000000xkkKXXXXXXXX0KXXXXXXNX0XXXXXXXXXXXKKXNWWWWMMWWMWWW
xxkkkkkkkkOOOOOOOOc,,;;cl;cxkKKKKKKKKKKKKKXXXXXXO,.;d000KKXNNN0XNNNNNNNNOWWNNNNNNNNXXXXNWWWWMMWWMWWW
xxkkkkkkkkOOOOko:..,',;cclk0KKKKKKKKKKXXXXXXXXXXXXK0KXNNNNONNN0XNNNWWWWN0WWWWWWWNNNNXXXNWWWWWMWMMWWW
xxkkkkkkkkOOl'     .',';;;k0KKKKKKKKKKXXXXXXXXXXNNNNNNNNNNONNN0XWWWWWWWW0WWWWWWWWNNNXXXNWWWWWMWWMWWW
xxkkkkkkkkx'      .. .;,...d0KKKKKKKKKXXXXXXXXNNNNNNNNNNNNONNN0XNNXNNNXK0XWWWWWWWNNNXXXNWWWWWMWWMWWW
xxkkkkkkkx.        ... .....cOKKKKKKKXXXXXXXXNNNNNNNNNNNNNOXNXO000000OkOK0OXNWWWWWNNNXNNWWWWWWWMMWWM
xxkkkkkkk.          ....... .,k0KKKKKXXXXXXXNNNNNNNNNNNNNNOKKKkkOOOOOOkkK0kXNWWWWWNNNNNNWWWWWWWMMWWW
xxxkkkkko        .';ldo..;l,,loxOKKKKXXXXXXkkkkkOOOkONXK0KO0KKOO0XXKdxxxKOkKNWWWWWWNNNNNWWWWWWWWMWWW
xxkkk,;;'        .',:cllcdxxlodxxkOOkOOOOO0xdccllooox0NOxkOOXNXXNNX0ooddXKkXNWWWWWWWNNNWWWWWWWWWMWWW
xxkkk:.,.          ..,;clloodddddoddlxxdkdkOOk;;;:::cd0XKKKKK000KKKKxoodXXkXNWWWWWWWNNNWWWWWWWWWMWWW
xxkkkk'.             .;:dxOOOOOO00OOKKKK0KKKKKKKKKKKKKXXXXXXXXXXXXXXXKK0KXXXNNNNNNNNNNNWWWWWWWWWWWWW
xxkkkkx.            .'':xO0000000000KKKKKKKKKKKKKKKKKKKKKKXXXXXXXXXXXXXXXXXXXXXXXXxkNNNWWWWWWWWWWWWW
xxxkkkko      .......,';dO0KKKKKKKKKKKKKKKKKXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxNNNWWWWWWWWWWWWW
xxkkkkkx. .',:ccccccccccdxxxxddxxdxxdddddooooooddddddddddddddddxxxkOO0KXNNNNNNNNNNkxNNNWWWWWWWWWWWWW
xkkkkkkOd,:::::cccccccclddc:::;;,coxxxxxxxxxxxxxxxxxkkkkkkkkkkkOOOO000KKKNWWWWWWWNOxXNNNWWWWWWWWWWWW
dddxxxxxxo:::;;;;::;:::codccc::,,cO0K0k0KKKKKKKKKKKKKKKKXXXXXXXXXXXXXXXXXNWWWWWNNN0kKXXNNWWWWWWWWWWW
ddddlc:;;;,,,,,,,,,;c:clddcc::,,:oOKKKKKKKKKKKKKKKKXXXXXXXXXXXXXXXXXXXXXXNWWMMMMMW0ONMMWWWMMMMWWWWWW
dl;,,,,,,,,,,,,,,,,;cclldd:::;,:cdkKKKKKKKKKKKKKKKXXXXXXXXXXXXXXXXXXXXXXXNWWWWWWXKNNNNNNNNNNNNNNNNNX
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
----------------------------------------------------------------------------------------------------
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOkx0OlokkccOodxOOOOOOOOOOkkkkkkkkkkkkkkkkkkkkxxxxxxxxxxxxxxxxxxxx
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOxdolc;...d;,cxkOOOOOOOOOOOOkkkkkkkkkkkkkkkkkkkkxxxxxxxxxxxxxxxxxxx
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOkxoc;,,,,,,,:;l;',lxOOOOOOOOOOkkkkkkkkkkkkkkkkkkkxxxxxxxxxxxxxxxxxxx
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOkxxo:,;;;;,'':d:lc:.  'oOOOOOOOOOkkkkkkkkkkkkkkkkkkkxxxxxxxxxxxxxxxxxx
OOOOOOOOOOOOOOOOOOOOOOOOOOOOcoxxo,...',,,,;l;oold,... cOOOOOOOOOkkkkkkkkkkkkkkkkkkkxxxxxxxxxxxxxxxxx
OOOOOOOOOOOOOOOOOOOOOOOOOOx. .:l,  ':,.''.,:loccodl,. ;OOOOOOOOkkkkkkkkkkkkkkkkkkkkxxxxxxxxxxxxxxxxx
OOOOOOOOOOOOOOOOOOOOOOOOOc        .''. ...,,,.'';c:'. oOOOOOOOOkkkkkkkkkkkkkkkkkkkkkxxxxxxxxxxxxxxxx
OOOOOOOOOOOOOOOOOOOOOOOk.           .  ..;;''';:l:'.;cxOOOOOOOOOkkkkkkkkkkkkkkkkkkkkxxxxxxxxxxxxxxxx
OOOOOOOOOOOOOOOOOOOOOOOo        .xxcc::'';;,.',:,,:ooxOOOOOOOOOOOkkkkkkkkkkkkkkkkkkkkxxxxxxxxxxxxxxx
OOOOOOOOOOOOOOOOOOOOOOd.        dOOOxcclc:;;::ldl:dxdkOOOOOOOOOOkkkkkkkkkkkkkkkkkkkxxxxxxxxxxxxxxxxx
OOOOOOOOOOOOOOOOO0OOO,         x0OOOOxoldooodOXNX0kxdOOOO0kOOOOOkkkOOOOOkkkkkkkkOkkkkkxxxxxxxxxxxxxx
OOOOOOOOOOOOO0OOOOOOd        .xOO0OOOOkcooxxkXWWNXOxxOOO0k0kOOOkkkkOkkkkOkkkkkkkOkxxxkxxxxxxxxxxxxxx
OOOOOOOOOOOOOOOOOO0k.         oOOOOOOOOkllxdOXNNNNX0kkk0kkOOkkOkkkk0kkOOkkkkkkkkkkkkkkxxxxxxxxxxxxxx
OOOOOOOOOOOOO0OOOO0o           c00OOOOOx,.oOKNWWWWNNX0OOo:k0OkkkkkkOkkkOOkkkkkkkOkkkkkxxxxxxxxxxxxxx
OOOOOOOOOOOOOOOOOOOO.           ,:lkxxc.  'KXNNNNWWWNNXKl. .;xkkkkkkkkkkkkkkkkkkkkkkxxxxxxxxxxxxxxxx
OOOOOOOOOOOOOOOOOOOOo                      lNNNNNWWWWWNNk.     ....,cxkkkkkkkkkkkkkkkkkkxxxxxxxxxxxx
OOOOOOOOOOOOOOOOOOOOOd.                     ONNNNWWWWWWN:             ,xkkkkkkkkkkkkkkxxxxxxxxxxxxxx
OOOOOOOOOOOOOOOOOOOOOOx.                    .KNXKNWWWWNk.              .dkkkkkkkkkkkkxxxxxxxxxxxxxxx
OOOOOOOOOOOOOOOOOOOOOOOx.                    ;NNXNWWWN0.                .dkkkkkkkkkkkxxxxxxxxxxxxxxx
OOOOOOOOOOOOOOOOOOOOOOOOk.                    dNKXNNN0;                  .xkkkkkkkkkkxxxxxxxxxxxxxxx
OOOOOOOOOOOOOOOOOOOOOOOOOk.                   .00KXX0c                    'kkkkkkkxxxxxxxxxxxxxxxxxx
OOOOOOOOOOOOOOOOOOOOOOOOOOk'                   ,k00k;                      :kxxxxxxxxxxxxxxxxxxxxxxx
OOOOOOOOOOOOOOOOOOOOOOOOOOO;                    .:;.                        dxxxxxxxxxxxxxxxxxxxxxxx
OOOOOOOOOOOOOOOOOOOOOOOOOOO.                                                .xxxxxxxxxxxxxxxxxxdxddd
OOOOOOOOOOOOOOOOOOOOOOOOOOO.                                                 lxxxxxxxxxxxddxxddddddd
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
----------------------------------------------------------------------------------------------------
 . ...  ,;.        ..';,,''.';.';:::::::::::::::::::;;;;;;;;;;;,',;,,;;;;;::ccccccccccc:;.          
   '',    .    ....'..,'''..,'.,;:::::::::::::::;:::c::::::;;;:;',;;;;;;;;:::cccc::::::,.           
    ..  ...... . . ...,''..',.';;;:::::::::::llldkkkkkkkkkxxxddxdxdddxxo::::::;,'',,;;,             
.   ...    .''.... ...,'..''.';;;;::::::::::l0KKK0000OOkOkOOOO00OOOdxkOOOl;''.'....'..              
,  ..'.....,'','',,.. .....';;;;;;:::::OXXKKKXXXXXXXXNNNNNNNNNNNKOo.,lcox..   '. ...               .
c   ',,'..',;;;;,,;;..'''',;;;;;::::::xKkkk0KOXNNNWWWWWWWWWKXNNNkk:;:;c,l        .                  
;.  ..,,,';;;::cccc;. ...............c0oOddlkoX00xooo0OKWW0KXNWOxl,oxkOO,              ..,;:c.      
..'......,Oo'',odoc:..,;;;;;;;;;;;;;oKklkxxdkN0oO0KxdoxNNloddK0dk::ododx...          .:xlkkkkc:.    
,.''..;cc:,   .'kx.  ..;;::::::;;;;dKXXNNWWWWWWNKKKKKXMNlccllxloxoxxxodO0KKK0Okoc:   ',';dxd'.',,...
.   ..,cc,..;l,.;.  .;';;;;;;:lcldOXXNNWWWWWWWWWWWWWWWNxxKKKKOO0KKXXXXXKXXXXXXXKK0x.    ....   .;'''
..... .'''''''.   .'lco,,,;;:0k0XNWWWWWWWWWWWWWWWWWWWWxk0XNN0XNNNNNXNNNNNNNX00OxOOOko,.     .      .
''..        .......'',,'',,,0K0KOk0KX0KNXWXNWWWWWWWWWWWWWWWWWNKNNXXXNXXKKXXKkoldO0kxddd:;.       ...
''''.........'''.........',0OOKNXKXO0kkkON0NNdK0XXNNWWWWWWWWWWWWNNXKXXXOkOxc;clkOkxoddolxooc,       
'',,,,,,'................,KNNNOOOxk0ONWXKNWWKKOOxkdlXx0WWWWWNXXNWNK00Ol,cl;,;,clddllddcoddxxd;d',...
'',,,,''''''......      .kOKWWWWWWNXKWWXOOWWod000WKKKk0WWWWWWNKXNKxOkc';l,.,':codoclddcddxxxxcdclcoc
.....                  .xO:XWWWWWWWWWWMMMMMMXXKO0XddkkWWWWWWWWWWXxO0d::l:.,.'oddocccddlxxxxxdllcldlx
   .lddo'.oo,.oo'oo.  .O0kccok00W0NWWWWMMWMWMMMMMMMMXNKWWWWWWWWNk0Kkodxd:;''cxxxc:,oddooooooodlldodd
   WMXKMWoMMK:MWdMMc .kokxdd;dxxo::0kkdkWWWKKWWWMMMMMMMMMWWWWWWO0KOdxxxlc;;lxkkl:: .:,,:;;;;;;;::,,,
   WMKdXXdMMMxMWdMMc.cokokOxOOOkKkolol;0WWWKc00oxkXMMMMMMWWWWW00KOloddc:cclxxdl:c, .;;,',......     
.. :XMXo.;MMNNMWdMMo,'oddclc:l,x:kxWW0koKWOcKMxxolKMMMMMMMWWW0O0Occlo,';:codol,;:...................
,''ddkWMNoMMOMMWdMMl.::cl0x0dOc:lcXWWKc:lOxKXOOWWKMMMMMMMMWMNO00c;co;..'':oll.......................
  .MMdOMMOMM:WMWdMMc.:::c:dcxcloxKkkK0xclx;d;.clN;xNMMMMMMMNO0Ko;coc.....;cc;  .....................
  .NMXNMNdMM'kMWdMMNXo.'clxdKk0d;;dxKWWWWMWK0xoox;xWMMMMMMWkKKx:col..   ...................     ....
   .;ccl'.::..::'::cc;......;okKXKdxOWWWWWMMMMMMMWWMMMMMMW0KKk:lll'.     ..................         
      .''.       ...............,dXWWWWWWWWWMMMMMMMMMMMMWXKKKllld.     ...................       .. 
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
----------------------------------------------------------------------------------------------------
                                                                                                    
                                                                                                    
                                                       .                                            
                                    ........''''',,''''''........                                   
                                      ....'',,,;;;;;;:;,,''.....                                    
                                 .....',;;:cllooooooooollcc::;,,'.......                            
    ...............................',,;::clodxkkkOOOOkkxxdollc:;,,''.'..............................
,,'....                          ...',;:codxkO0KXXXXXXK00Okxdlc:;,'...                              
                  ..',,,,''''''',,,;;:clodxk0KXWMMMMMMWNXK0kxolc::;;,,'''''''.....'''....           
             'lxkl,......        .';::clodkOKXWMMMMMMMMMNX0Oxdoc:;;,'..               ...',:ccc:,.. 
             .lxOl,....:l:..    ..;c::clodxOKXNMMMMMMMMMNXK0xol:;,'....:d,                     'okkk
                  ..,:::::cc:,,''',,;;:cloxkO0XNWWMMMMWNXK0kxdolc::;,,,'.                     .'oOOO
;,''... .                    .....'',;:clodxkkO0KKXXXXKK0Oxdol:;,'...                 ..',:ldxkxolc;
.'',;:cclloooollllccc:::;;;;;;;;,,,,;;::ccloodxxkkOOOOOkkxdoolcc::;;;;;;;;:::cccccccc::;,,...       
                   ........'',,,;;;:::ccllloodddxxxxxxxxdddoolcc:;;,'.....                          
                  ...                 ......'',,;;;;;;;;,,,,.....                                   
............'','''';c:,.....     .  . .........'''',,,''''''.......               ............''',,;
    ......'';;,:;,,:oxkxlcc:;;,,,',''',,,,,,,;;;::::::::;;;;;;;,,,,,,',''''...................      
                  ..,:cc;coc:;'.            ......'........                                         
                   ..  .clc:::;;.    ..        . ...                                                
                    .:dxoc:,..',,;:::::,.                                                           
                   .,colccc'.'clodkkxxdl;;;'.                                                       
                      ..'..  ...:oxkOOOkxddc,...                                                    
                         .     .;codxkkOkOkdl:'.                                                    
                           ....',;lldxkkkkOkxdd:,.                                                  
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
----------------------------------------------------------------------------------------------------
xkdxxdddoolccccc,:::cclcc:,;:,cccccccccccccc:,'';:;,;::;,,'''::c0KXXxNWWWWdllccc,:c:;::::::.'..'''..
ccokxodoollcccc:':::ccll:c;..',';cccccc:,;::,'';;;,,;:;.,;;,,;ccOddd:loKMNklcc:c;;::;::::::''...'''.
;lolloddoll:::::';:::ccccc;...'':ccccc:;,,,;''',;,,,;:,.':::::c:oool,:;0No::::::,,:::::::::''.....'.
kOxk:,ll:l:;:;,;',,...''.',,'.',:ccc:,'',;;c;,;;c:,,::,.,::::cccWMMN;c:,,''''.';',::;::::::'.....'..
kkOOO',c:ddc:;;,.',,,,,,,,;;..',:::c;'',;:;::;:cc:;;::,,;cc:;cccNMMW,;:;,,''''';.':::::::::......'..
xkkOOc,coodo::;,..,,,',,,,;;'.,,clll::cccc;c:;cll::;;;;::ccc::ccKNWN:;;,,'''.'','':::::::::''....'..
koO0OO;oodolc;:,.     ... .. ...clllc::cc:ll:,,,;llc;,,;;cccc:cc0NNX..''........ .;::::::::'''...'''
xddxxk:coclc:::;. ..........  ..loooll::::clc;::lllc;,,;clccc:ccKMMM..kxxddoc:;, '::::;,;:c,,'..',,.
xloooxd:doo:c:c;. ......'... ...occllc;;clcclc::;:ol;;;:l;;:cccckXKK..xdddol:;;, ':c::;,,:c,,,''',,'
0xlloklckdlcllc;. ...,:cc...  ..occddxllxdo:;;;loloo:::llc,;lcccdkkx..doooc:;,,, '::;:;;;:c,',,',,,'
kxoodkkxxxlcco:;. ....',,... ...lccldkdx0xxol::ldlddc::::c;:ccccokxd..ollc:;;,'' ':;,:;::c:,,,,',,'.
kxoookodkxlcll:;. ..........  ..lllddxdd0loxo,''',;:;;;''.'::lccodoo. ,c::;,,''..;;','',;::;,,,.'..,
:kdodxc,dol:cc,;' ..........  ..c;,clkxk0xxl..........',...cllc:lc::. ,,,',,''..:c...  .,,;;;;;.. .:
'xO0kOx.clccol;,'...........  ..cc:lodxxxdo,lol,     .,,'.clcccc:. ....;,......           .',......,
.o0koOd;,llloc;;'...........  ..ccl:;;,,;,',oo.       .  'lccccc;.... '... .                  ..   ,
.dOd:d;',::cc;.;'. .........   .ccdclo:::. ..:kc..   .''ccccccc::,... .....        ....''......... .
'cdl,cc.::,:;,,''.   ...   .  ';cloc::::;.   .,c;.....'llc::::::;,'.. .....  ............     . ..''
..o:,,c;c:c::::;;,,,;;;;,'''',,;cllollolc,'....x0l....,cllclollclcc:;,,,......',,,,,,,,,'...  .  . .
;;:clcccl:;:lllllcllllclllllllccllclddoc::cccccldxkkOxKOK0k00XX0KKKkl:::::::::coooooodlcc:okllcc;.. 
odxxxkOxdoodxddddoooooooooooooollllodooolcclddolloolKk00K0KKkKKKKKX0xllldddkO00O0kxxxkxdoolldlc:xOkd
OOO0000KKKK00OOkkkkkkkkkkxdoooolllccccllc::cccccccclO0KX0O00kOKKKKKOOkdodk0K0OOOOOOO0OxdxOOkkOocdO00
00OOOOOOO0KKKXXXK0OOkkkkkOkoc:;:;;;;;;:::::::c:::::dXKKKddOk0OOKKOkOkdkKKO0XKkoldc:oldccxodkO0Oolooo
kkxkkkOOOO0OOOOOO000KXXXXKKKK0dc:::::;;:;;;;;ckllllKXNNNK00X0ddxOK0kkOkkOO000KK0Odoloddxk0klokOdoldd
xkkkkkkkkkkkkkkkkxkxkkO00KK00KKXKK0Okdol:;;;;dlcdolx0NWWNXK0kkKKOk0KK0OO00Oxxk0XXX0xollxOddxok0KkldO
xxxxxxxxxxxxxxxxkkkkkkkkOOOOxkO0KXXXNXK0Okddl0::clox0WWWNX0KXXK0O0OOkkKXXXK0Okkk0XNX0OkxxOXXKOdkdooc
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
----------------------------------------------------------------------------------------------------
..............::::.....::.......:::ccc::cc:....::::::::cc:::...:............:.....::::::............
..............:::.......:.......::cc::::c::::::..:::::::::..::...............:::......:::.:.........
.................................:::::::cCc:::::..::...::::::::::cc:......:ccoc.....cc::.::::::....:
....:::..::...........:.:::::::::::::::::::::::::::...:::::::::::coc:::::.::cccccccCCOc::::::c::cccc
......................::....::::::::::.....:.:::::::::::cc:::::::cocc::::::::::ccccccc:::::.:ccccc:c
........:::::::::::::::::..:::::::::::coc::cc:::::::ccccCCCoC88@OCoCc::::cCOCOCoCC8OOC::::::cOOOOOOC
.........::c:::::::c::::::::::cc:::::cc:cc::::::ccccccccO8oO8888OCoo::::cccOoooccCOOOo::::::cOCCCooc
................................::.::...::.....COCCCoOOCCCcCCCCo:::::::::::::::..:.:::::............
...............................:.::.::::coCCCCc8@8@8O@@@@@o@@@@8:.:::::....::::::::c:::.............
.............................::oOOC::::c:8@@@@OO8888OOC8@@OC@@@@8CoCOOCoc:...::::::c::..............
::::cc:cc::::...............cC8@@8O8O888C88888O@@@@@@@COO88O@@@@@888@@@@8::....:::c:................
cOO888C8888Oo:::::::ccooooCO888OCccOO88@8888888@@@@8@@@@@8@@@@@88@8OCO88o:cOCCcCCoc:ccc::::::oC:ccc:
......::::::::::::::::::o88@8Occ::cccC8888888O888@@O@@@@8O88888@@@@8O@@@Occcccccc:::::cc::::::::::::
.....::::::::::::::::cC@@8OCoc:::ccccC@@@8888OCC8@@8@@@@@8@@@@C@@@@@O8888@oooccc:::c::c::::c::::::::
.....::::::::::::::::cccoOcco::ccccccoOOOO@@@O88@@@88@8@8O8@@8O@@@@@8@@@@8cccccc:::::::::::c:::.::..
.......::::::::::::::::ccoCCccccccc:cC888C888OOO8888@@@@8O@@@@O8@@@@@@@@@Ccc:cc:::cccccccc:::::...::
...........:::::.:::..:::oOCccccoc:::c8888OOOOOOOOOO8@@@@8888888@888O8888oc::ccc:cccccc:c::::::..:::
............:........:.::oCCoccooccc::888OCo::coCCocoCOO8@@8888888888888O:::cc::::::::::c::::::.....
..............:::::c:cccc::c:oCCcc:::::::::::coc:::::::o888@8888888OOOOCO8:::::::::::::::c:::::.....
..............::::::::c::::ocCCoc::::.::.:::oo:::::.:.:oO8888888@@88@@@@88ccccccccO88888OOOOOC::::::
:.::::::::::::::::::::::cccccccccccc::::cc:::cccccccccccccooooooCCCCCCoooooooccccccccoocccccccc:::::
...::::::::::::::::::::cccccccccccccccoooooooooooooooooooooooooooooooooooooooooooocccccccccccccccccc
::::::::::::::::::::ccccccccccccccoooooooooooooooooooooooooooooooooooooooooooooooooooocccccccccccccc
..::::::::::::::::::::::ccccccccccccccccccoooooooooooooooooooooooooooooooooooooooocccccccccccccccccc
::::::::::::::::::::cccccccccccccccccccooooooooooooooooooooooooooooooooooooooooooooooooooocccccccccc
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
----------------------------------------------------------------------------------------------------
::::::::::::::::::::::ccc:coccccc:cccccccccccooooccc:::::::cocc:::cooCoocccCCooooCCCooooooCCCCCCCCCC
:::::::::::::::::::::::::::cccccc:cccc::::cccccooccc::::::::::c:::cooooooooooooooooooooooooooooooooo
::::::::..:::::::::.:::::::::cccc:cccc:::c::ccoo::::::::::::ccccccccoooooooooooooooooooooooooooooooo
::::::::::.....::::::::::::::::cc:ccccc:::::ccoc:cccccooooooooooooooooooooooCCCCoooooooooooooooooooo
::::.::...:...........:::::::cccc:ccoc:::::cooCooooooCCCOOCCCCCCCCCoooooccoooooooooooooooooooooooooC
:::::.::....................::::ccccc:::::oCOOCCCOOCCCCCCCCCCOOOOCCCOOCCCCCCCCCCCCCCCCCooooccccccccc
:::::..:..................::::....::::c::cCOOOOOOOOOOOOOCCCOOOCCCCCCCCCCCCOOOOOOOOOOOOOOOOOOOCCOOOOC
::::::......................:::::::...:::::coCOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO88888OOO8OOOOOOC
:::::.........................::::::::..:::::coCOOOO8CooCCCOOOOOOOOOOOOOOOO888888OOOOOOCCCCCCoCCOOCC
::::.....::::::......:::::::....::::::::::.:::cccoooCoooocccCO888888OO888888888888888OOOOOOCCOOOOCoc
.....::::::::.......:::::::::.......::::::..:::cccccccccccccC8888888O88O88888888888888OO8OOOOOOCCoo:
:::::::::::........:c:.:::::::::::........:::::ccccccc:::cco888@888OO8OO8888888888888888OOOOCooc::::
::::::::....::::..:cc:.:::::::::::.....:cCOCCOOOOOO8OOCc:ooOO8@888OOOOO88888888888888888OCoc::::::::
::::.....::::::..:ccc:..::::::::c:......coCCCCOOOO8OOCoc:cooCOOO8OOOOOO888888@@@@888OCoc:::::::::...
:.....:::::::...:cccc:...::::::cc::...::::cCCOOOO8OOCooCooooooCOOOOOOOO888@8@@@88Coc:::::::::::.....
.:::::::::::.:::cccccc...::::::cc:........cooCOOOOOCCCoCCOOOooOOOOOOOO888888OCoc:::::::::::::.......
:::::::::::::::Ccccccc:..:::::ccc:.........oCCOOOOCCCOCOOOOOOC88OOOOOO8OOCoc:::::::::::::::.........
::::::::::::::CCcccccc:..:::::ccc:.........:oOOCoooCCCOOoooooC888OOOOCo:::::::::::::::::.........:..
:::::::::::::COCcccccc:..::::cccc:...::.:::..cCoooooCCCOCCo:cOO88Ooc::...:::::::::::...::.......::::
:::::::::::cCooocccccc:..:::ccccc::...........cooCooooooCCooCOOOOo::::...:::::::..::::::::::::::.:::
....:coooooc:cooccccccc:.::ccccccc::....:.....ccoooooCocoCOOOOOOOCc:::::.......:::::::::::::::::.:::
....::ccoocc::ccccccccc:.::cc::::..:c:........:cooCCoCOCooCOOCCCCCoc:::.....::::::::::::::::::::::::
.:::ccc:::::..::ccccccc:.::c:.:::::.:::......::cccooooCCCoCCCCoCCCCo::..::::::::::::::::::::::.:cccc
.:::cooooocc::.:cccccccc:::c:::::::::::::::::::::cccccooooooooooocc:::::::::::::::::::::::::::.::..:
::::oooooccc::::cccccccc::ccc:::::::ccccc::