;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;:::::::;;;;;xxx;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;::''''````.....````'':;;;x;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;:'`........ .......``':;x;;;;;xxx;;;;;;;;
;;;;;;;;;;;;:'`.. ... . .........':;x;;xxxxxxx;;;;;
;;;;;;;;;;;'`...... ...........`:xx;xxxxxx;;;xx
;;;;;;;;;;'...... . ..... ........';xxxxxxx;;;xx
;;;;;;;x;'........ ......````..................'xxxxxxxxxxxx
;;;;;;;;'............`````''''`.................';xx;xxxxxxx
;;;;;;x;`.........`````''''''''''````.``.........:xxxxxxxxxx
;;;;;;x;`.........````'''''''''''''''`````...... `;xxxxxxxxx
;;;;;;;;`...... .````'''''''':::'''''''''``... . :xxxxxxxxx
;;;;;;;x'.. .. ..```''':::::::::::::'''`````.. ...';xxxxxxxx
;;;;;;;x;`.... .`````````''::::::'``.......``. ...:xxxxxxxxx
;;;;xxx;;`... ..`...````````':::'````'''''````. 'xxxxxxxxx
;;;;;;;x;` .````''''''''''':''''''``````'''`..`:xxxxxxxxx
;;;;x;x;x:.` .``````...''''``''`''`'`.````'''`.`':xxxxxxxxx
;;;;xxxxx:`'..``''`````'''''`''''`':':'''''''''.`':xxxxxxxxx
;;;;xxx;x:`'`.``''''''::::'``''''`''::::'''''''`'':xxxxxxxxx
;;;xxxx;x:`'`.```''''''''''``''''`''''::''''''`.`':xxxxxxxxx
;;;xxxxxx;`'`..``'''':::::'``':::'`':::::::'''``'`:xxxxxxxxx
;;;xxxxxxx;'''````''':::::''''::''''::::::''''':::xxxxxxxxxx
;;xxxxxxxxx;::````''':'''''```''`````''''''''':xxxxxxxxxxxxx
;xxxxxxxxxxxx;`.`'''''````````''''```````'''''xxxxxxxxxxxxxx
;xx;;xxxxxxxx;`..'''::``'````'''''```'''''''';xxxxxxxxxxxxxx
;;;;xxxxxxxxxx;` .`'':::'''''''''''''''''''`:xxxxxxxxxxxxxxx
;;;;x;xxxxxxxxxx:`.`''''''''''''''::''''''`';xxxxxxxxxxxxxxx
;;;;x;xxxxxxxxxxx:.````''''::'''':::'''```'`:xxxxxxxxxxxxxxx
;;;;;xxxxx;xxxxx:..```````'''''''''''````''..:xxxxxxxxxxxxxx
;;;;;;;;xxxxx;;;....`'`````````````````'''`..`:;xxxxxxxxxxxx
;;;;;xxx;;:'``.......`'''`````....``'''''`......`';;xxxxxxxx
;xx;;:'``.............`'''''''``'''''::'`..........``'':;xxx
::'`...................`'''':::::::::'`..................`':
.........................`''''::'':'`.......................
..........................`'''':::'`.``.....................
............................'''''`..`.......................
..................................``........................
..................................``........................
............................................................
............................................................