i i:i:::::::i:::i:i:::::::i:::i:i:i:::::i:i:i:::i:::i:i:i:i:i:::::i:i:::::i:i:i:::i:i:i:::i:i:i:i:i:::::::i:i:i:i:i:::::::i:i:::i:i:::i:i:::::i:i:::i.
:                                                                                                                                        . . .     .  
i :,:::::,:::::::,:,:,:,:::::::::,:::,:::,:::::::::::::,:,:::::::,:,:::::,:,:::::,:::::::::::::::::::::,:::::::,:::,:,:::,::::i:i:i:i:i:, i:,: ,i,,:i.
: ::,:,:,:,:::::::,:,:,:,:::::,:::,:,:::::,:,:,:,:,:::,:::::::,:,:,:::::,:,:::::::,:::::,:,:::::::,:,:,:::::,:::::,:,:::,:,    ,...... :: ,, . .:  .:.
: :,:,,,,::,,,,:,,:,,,,,:,,,:,:,::,::,:,,,:::,:,:,:,:,:,:,,::,:,,,::,::,,,,,,::,:::,:::,,,:::,,::,:,:,,,:,:,:,:,:::,:,:::::.. . . . .  ,i   ...  ...: 
: ::,::,,:,,,:,:,:,,,:,:,:,::,,:,:,,,::,,:,,,:,:,,::,:,:,,,,,,,:,,,,::,:,,,:,:,,,:,:,:::,:,,::,:,:,:,:,:,,,:,:,:,,,:,,,,:,:::i::::,::::::::::::::i:::.
: :::,:,:,:,,::,:,:,:::::,:::,:::,:::,:,:,:,:,,,:::,:::,,,:,:,:,:,:,:,:,:,:,:,:,:,:,:,,,,::,:,:,:,:,,,:,:,:,:,,,,,,,:,:,,,,,:::::,:,:::,:,:,:,:::,:,: 
: :::,,:,,::,:,:::,:,:,:,:,:,::,::,:,:,:,,,:,,,::,,:::::,,,:,,:,::,:,:,:,:,:,:,::,,,,::,,,:,::,,::,:,:::,,,:,:,,,:,:,:,:,:,,,:,:,,,:::,,,,,:,,,:,:,::.
: :,,::,:,:,,,,,,,:,:::,:,:,:,:,:,,::,:,:,:,,,,::,:,:,:,:,:,,,,,,,:,,::,:,:,:,:::,:,,,:,:,:,:,:,:,:,:::,:,:,:,,,:,:,:,:,:,:,,::,::,:,,,,:,,,:,,,:,::: 
: ,:::,:,:,:,,,:,,::,:::::,:,:,:,,,:,:,,,:,:,:,:,:::::,:,,,,,:,:::,,,:,:,:,:,::,,:,,,,,:,:::,,,:,:,,,:,::,,,:,,:::,:,:,:,:,,,,,,,,,:,:,,,:,:,:,:,,,::.
: :,:,,:,,,,:,:,:::,:,:,,,:,:,:::,,,:,,,,,,,:,:,,,:,:,:,:,:,:,,,,,,,::,,:,:,:,:,:,:,,,:,:,,:,,:,,,:,:,:::,,,,::,:,:,:::,:,,,::,,::,,:,:::,:,,,:,:,,:: 
: ::::,:,:,:,,,:,,,:,,,:,:,:,:,:,:,,::,:,:,,,:::,,,:,:,:,:::,:::,,,,,:,,,:::::,:,,,,,:,,::,,,:,:,:,,,:,,,:::,,,,,,::,:,,,::,::,:,:,:,,::,:,:,,,:,:,:,.
: :::::,:::,:,:::,,,:,,,:,,,:,:,,,:,::,,:,:,:,,,,,:,:,:,:,:,,,:,:,,,:::,,,:,:,::,,,,:,:,:,:::,:::,,,:,:::,:,:,,,:,:,:,:,:,,,:,:,:,:,:::,,,:,:,:::,,,: 
: ,:,,,,,:,:::,:::::::,,::,:,:,:,:,,,,,:,:,,,:,:,:,:,:,:,,,:::,:,:,,,::,::,:,:,:,,,:,:,:,,,,,:,:,:,:,:,:,:,,,,,,,:,,,:::,,:,,,:,::,:,,,:,,,,,,,,,,,::.
: ::,,:,,,:,,,::::,,:,::,,:::,:,:,:,,,,,:,,:::,,:,:,,,:,:,,,:,:,,,:,:::,:,,,:,::,,:::,:,:,:,,,,:,,:,:,:,:,:,:,:,:::,:,:,,,:,,:,,,,:,:::,:,::,,,,:,,,: 
: ::,:,:,:,:,:,:,:,,::,:,,,:::,,,:,:,:,:,,,,,,,:::,:,:,:,:,,,,,:,:,:,,,:::,,::,,,,,:,:,:,,,,,:,:,:,,,,,:,:,:,:,,,,,:,:,:,:,,,:,:,,,,,,,,,:,:::,:,,,:,.
: :,,,::,,:,:,,,:,:,,,,,:::,:,:,:,,,:,:,:,:::,::,,,,,,:::,,::,,,:,:,:,:,:,:,,:,,:,,,,::,,::,,,:,,,:,:,:,,,:,,::,:,:,,,:,:,:,,,:,:,:,:,:,:,:,,,::,,:,: 
: ::,:::,,,:::,:,,:,,:,:,:,:,,,:,,,:,:,,,:,:,:,:,:,:,:::,,,:::,:,:,:,,,:,,,:::,,,:,:,,,::,,:,:,,::,:::,,,,,:,,,:,:,:::,:::,:,::,,,,:,:,:,::,,:,:,,,:: 
: :,:,:,::,,,::,,,:::,:::::,:,,,:,,,:,,,:,,:,,:,,,,,:,:,:,:,:,:,:,:,:::::,,,:,:,:,,,:,:::,,,,,::::,,,,:::,:,,,,,:,,,:,:::,:,,::,:,:,:,,,:::,:,:,,,:,: 
: ::,:,:,,::::,,,:::,:,:,,,:,:,,,:,,,:,:,:::,:,::,::,:,:,:,:,,,,::,,::,:,,,:,:,:,,,:,:,:,:,:,:,:,,,:,:,:,:,:,:,:,:,:,,,,,:,,,:,,,:,,,,,:,,,,,,,:,,::: 
: :::,:,:,,,:,:,:,,,,::,::,,:,:,,,,,:,:,:,:,,,:,,:,,:,:,:,:,:::,:,:::,:,:,,,,,:,:,:,:,:,:,:,:,,,:,:,,,,,:,:,:,:,,::::::,:,,:,,:,,,:,:,::,,,,:,:,:,:,: 
: ,:,::,,:,:,,,,,,,:,:,,,:,:,:,:,,,,:::,,,,:,,,:,:,:::::,,,:,,,:::,:,:,:,      .,:::,:,,,,::,:,:::,,,:,:,,,:,,,:,:,:,,,,,:,,,:,::,,:,:,:,:,,,,,:,,,:,.
: :::,,,,,,,:,:,:,,,,,:::,,,::,::,:,::,,:,,,,::,,,:,:,:,:,:::,:,:::::,,, :8BWB8. ,:,,::,:,:,,,,,::,,,,:,,,:,:,:,:,:,:::,:,,,:,,,:,:,:::,:,:,:,,,,,,,: 
, ::,,,:,:,,,,,,,:::,:,:::,:,,,:::,:,:,,,:,:,,,,,,,,,:,:,:,:,,,,:,::,:, XMr, ,0M ,,:,,,,,:,:,:,:,:,,::,:,:,:,:,:,:,:,:,:,:,:,:,:,,,:,:,::,,,,::,:,,:: 
: :::::::,:,:,:,:,:,:,:,,,:,:,:,,,,,:,,,:,,,,,:::,:,:,:,:,,,,,:,:,:,:,: rMZa0B@@ .::,:,,,:,:,,:,:,,,:,,::::,:,:::,,,:,,,,,,,,,,,,,,,:,,,:,::,,,::::,: 
: ,:,:,:,:,:,,,,,,,:,:,,,:,,,,::,:,:,:,::,::,:,,,:,:,:,,::,:,,::,:,:,,,,  ;;;:  .,,:,:,,,:,:,:,::,::,,,,:,,:,:,:,,,,,,,,,:,:,:,,,::,,,,:,:,:,:::,:,::.
: :,:,,,::::::,,:,:,:::::::,,,,,:,:,:,:,:,,,:,,,,,:,:,,,:,,,:,::,,:,:,,,:.  . ..,,,,:,:,:,:,:,:,,::,:,,,:,:,:,:,:,:,::,,:,,,,,:::,:,,,:,:,,,:,,,::,,: 
: ::,::::,,:,:,:,:,,,:,:::,:,,::,:,:,,:,,,,,,,,:,:,:,:,:::,:::,,,:,,,:,:,,,:,,,:,,,:,,,:,,,:,,:,,::,,:,:,,,:,,,,,:,:,:,:::,:,::,,,::,::::,,:,:,,,:,:: 
: :::,,,:,,,,:,,:,:,::::,,:,:,:,::,,,,:,:,:,:,,,,::,:,:,::,,:,:,:,:,:,:,,,:,:::,,::,::,,:,:,,::,:,:::::,:,,,,,:,,,:,,,:,,,:,,,,:,::,:,:::,:,:,:,,::,: 
: ::,,,,,:,,,,::,:,,,,::,:,:,,,:,:,:,:,:,:,:,:,,,,,,,:,,,:,:,:,,,,,,,:,,,:,:,:,:,,,,,,:,,::,,:,:,:,:,,,,,:,:,:,,,:,:,:,:,:,:,:,,,,:,,,,,,:,:,:,:,:,::.
: :::,::,,:,:,:,::,,,,:,:,,,:,:,:,:,:,:,:,:,:,:,:,:,::,,:,:,,,:,:,,,:,:,:,:,,,:::,,,:,:,,::,:,,,:,,,,,:,:,,,:,:,:,:,:,:,:,:,,::,:,,::,:,:,,,,,,,:,:,: 
: ,:::,:,:,,::,:::,:,:,:,,,:::,,::,,,,,,,,,:,:::,:,,,,::,:::,:,:,:,,:,::,::,,:,:::,,::,,,:,:,:,,,,,:,,,,,:::,:,::,,:,,,:,,,,,,,:,:,:,,,,,:,:,:::,:,:,.
: ::,::,:,,,:::,:::,,,:::,,,:,:,:,:,:::,,,:,:,,,:,,,,::::,,,:,:,,,,:,,:,,,:,:::,,,:,:,:,:,::,,:,:,:::,:,,,:,:,,,:,:,:::,,,,,:,:,,,:,:,:,:::,,,:,::,,: 
, ,:,:,:,:,,,:::,,,,,:,,,,,:,:::,:,,,,,,,:,:,::,,:,,::,,,:,:::,:,:,:,,::,:,,,:,:,:,,,:,:,:,,::,,,,,:,:,:,,,:,,,:,:,:,,,:,,,,,:,:,,,,,,::::,,,,,:,:,:: 
: :,:,,::,:,,,:,:,:,:,:,:,:,:,,,,,:,:,:,::::,,:,:,:::,:,:,:,:,:,:::::,:,,,,,:,,:,:,,:::,:,:,:,:::,:,:,,,:,:::,:,:,:,,::,,::,::,,:,:,,:,,,,:,,,,,:,,,: 
: ::,:::::,:,,,,,:,,,,,:,::::,,,,:,:,:,:,:::::,:,,,:,:,:,,,:,:,:,:,:,,,:,:,:,:,:,,,:,,,,,:::::::,,,,,:::,:,,,:,:,,,:,:::,,,,,:,:,:,:,,,,,:,,,:,:,:,::.
: :,:::::::::,:,:,:,:::::,,,,,,,,,,,::,,:,,,:,:,:,:,:,,,:,:,,,:,:::,:::,::,,:,:,,,:,:,,,:,:,,,:,,,:,:,,,:::,,,:,:::,,::,:,,,:,:::,,,:,:,:,:,:,:,:,:,: 
: ::,,,:,:,:,:,:,::,,,,:::,:,:,,,:,,,,,:,:,,:,,,:,,:,::,,:,:,,,,,,,:,:,,,,,,,,,,,,,:,:,:,:,:,:,:,:,:,::,,:,:::,:,:,:,:,:,:,:,,,:::,,,:,:::,:,:,:,:,::.
: :,:,,,:::,:,,,:,:,,,,,:,:,:,:,,,:,,,:,:,::,,,,:::,,,:,:,,,:,:,:,:,,,,:,,,,,,:,,,,,:,,,:,:,:,:::,:,:,,,:,:,::,,,,:,:,:,,,:::,:,:,:,:,:,::,,,,:,:,,,: 
: ::,,:,,:,:,:,:,:,:,,,,,,,,,,,:::,:,:,:,:,,,:,,,:,:,:,,,:,::,,,,:,,,:,,,:,,,:,:::,:,::,,,::,,,,,:,:,::,,:,:,:,:,:,,,,,,,:,:,:,:::,:,,:,,::::,::,:,::.
: :,:,:,:,:,:,,::,:,,,,,,,,,:,:,:,:,:,,,:,,,,,,,,,:,:,,,:,:,,,:,:::,:,:,:,:,:,:,,:::,,,,:::,:,,,:,:,,,:,:,:,:,:::,:,:,:,:,:,,,:,:,:,:,:::::,,,,,:,:,: 
: ,:,:,:,,,:,:,:,,,:,:,::,,:,:,,,:,:,,,:,:,,,:,:,:,:,:::,,,:::,,,:,:,:,,,:,:::,,,,,:,:,:,:::,:,:,:,:,,,:,,::,,,::,,,,:,,::,,,:,:,:,:,:,,,,,,,:::,,,::.
: :,:,:,,,:::,:,,,:,:::,:,:,:::,:,:,:,,,:,,,:,:,:,:,::,,:,:,:::,:,:,::,,:,:,:,,:,,,,,,,,,::,:,:,:,:,,,:,,::,:,:,,,,,:,:,:,:,:,,,,,:,:::,,,,::,:,::,:: 
: ,:,,,:,,:,,:,:,:,,,:,:,:::,:,:,:,,,,,:::,,:,,:,:,:,:,,,:,:::,:,:,:,:,:,:::,,,,::,:,,,,:,::,:,,,:,:,:,:,::,,::,,,,:,:,:,,,,,:,:::,:,,,,,,,::,,:::,:: 
: :,:,::,,,,,,:,:,:,,,:,,,,,,,:,,,:,:,:,,,,::,,,:,,,:,:,:,:,,,,,:,:,:,::::,,:,,,:,::,,:,,::,:,:,,:,,:,:,,,:,::::,::,:,:,,,,,,,:,:,:,,,:,,:,,:,,,,,:,: 
, ,:,,,,,,,:,,,,,:::,:,:,:,,,:,:,,,,::,:,,,:,,,,,,,,,::,,:,:,:,:,:,:,,::,:,,::,:,:,,,,,:::,:,,,:,,::,:,,,,:,,::::,,:,:,:,,,:,:,:,,,:,:::::,,::,,,,,:,.
: :,:::,:::::,:,:,:,:::,:,:::::,:::,:,:,:::,:,:,:::::,:,:,:,:,:,:::,:,:::::,:,:,:,:,:,:,:,:,:,:::,:,:,:,:,:,:,:,:::,:,:::::::,:::,:::,:,:,:::,::::::: 
:.::,:::::,:::,:::,:::::::::::::,:,:::::::,:::::::::,:,:,:::,:,:,:::,:,:::,:::::,:::::::::::::::,:::::::::,:::,:::::::,:::::,:::::::::,:::::::::,::::.
i . .   . .   . .   . . . . . .   .   . . .   . . . . . . . . . .   . . .   . . . . .   .     .   . . .       . .   . . . . . .       .   .   . . . . 
