.,:::::::,.
                  ,::;;;;;;;;;;::,
                ,::;;;;;;;;;;;;;;::
               ::;;;;;;;;;;;;;;;;:::.
              ::;;;;;;;;;;;;;;:::::,;;.
            ,::;;;;;;;;;;;;;::::,;;;;;;::,
           ::;;;;;;;;;;;;;;;;;;;;;;;;;;;,;;::,
         ,::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::,
        ,::;;;;;;;;;;;;;;;;;;;;;::,vvvvvvvvv,;;;::,
     ,:,;;;;;;;;;;;;;;;;;;;;::,vvnnnnnnnnnnnnvv,;;::.
   ,::,;;;;;;;;;;;;;;;;;::,vv;;;;vvnnv,vnnnvv;;;vv,::
 ,:::,;;;;;;;;;;;;;;;;::,vvvv''';;;vvnv,vv,v;;vvvvv,'
;::::,;;;;;;;;;;;;;;::##'vvv,a####a;;vv,v,v;a##@avv,
;::::,;;;;;;;;;;;;::'###'vv,a#######,vvnnv,#####@;v;
;::::;;;;;;;;;;;;::'###'vvvv,###' `#,vvnnvv' `#@,;'
;;;;;;;;;;;;;;;::'####'vvn;;vvvvvv;;nnnnnnnnmv;;vv,
;;;;;;;;;;;;;::'######'vvnnnn;;;;nnvmnnnnnnnnnm,%vv,
;;;;;;;;;;;::',######'vvnnnnnnnnnv;mnnnnnnnnnnnnm,v'
;;;;;;;;;;'::,####%##'vvnnnnnnnn;nv;mnnnnnnnnnnnn,
;;;;;;;;'::::,###%###'vvnnnnnn;nnnnvvv;mnnnnnnnnm
;;;;;;;':::::,###%###'vvnnnn;v nnnnnnvvv;mmmmmmm'
;;;;;;;':::::,##%####'vvnn;vvnn `nnnnnnnvvvvvv
;;;;;;;;;;;:::,######'vvn;vvnnnn.,,,,.   'vv'#
;;;;,:::;;;;;;,#####'v;vvn;vnnnn;;;;;;; ,v'###
;;;;;,::::;;;;,#####'v%%;vvnnnnnnnnnnnnvv,##%#
;;;;;;,::::;;;,#####'vvv%%%%%;vvvnnnnnnnvv;###
;;;;;;;,::::;;,#####'vvvvvv%%%;vvvvvvvvvv'###%
;;;;;;;,::::;;,##%###'vvvvvvvv%%%%%%%';;;####%
;;;;;;;,::::;;;##%###'vvvvvvvvvvvv';;;;,;###%#              .,,,;'
;;;;;;;;,::::;;##%###'vvvvvvvv;;;;;,::;,:#####           //;;;;;'
;;;;;;;;,::::;;###%##'vvvvv';;;;,:::;;,::#####          //''''
;;;;;;;;,::::;;#######;;;;;;,::::;;;::,:,#####    ,sSSSSssSSSSs,
;;;;;;;;;,::::;###;###;;,:::::;;;;;;;,::,####'   SSSSSSSSSSSSS@SS.v,
;;;;;;;;;;,::::##;;###;;;;;;;;;;;;;,::::,####   v;SSSSSSSSSSSS#@S;vv
;;;;;;;;;;;,:::##::###;;;;;;;;:,::::::::,####  vv;SSSSSSSSSSSS#@S;vv
;;;;;;;;;;;;;,::#:;###;;;;;;;;;;;;;;;:::,####  vv;SSSSSSSSSSSS@S;vnv
;;;;;;;;;;;;;;;,::::##::::::::::;;;;;:::,####  vnv;SSSSSSSSSSS;vnvv'
;;;;;;;;;;;;;;;;;,:::##;;;;;;;;;;;;;::::,###'  `vnv;SSSSSSS;vnnnvv'
;;;;;;;;;;;;;;;;::::,::#;;;;;;;;::::::::,###   ,vvnnnnnnnnnnvvv'
;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::,#',vvnnnnnnnnnnvvvv'
;;;;;;;;;;;;;;;;;;;;:::::::::::::,;;;;;,vvvnnnnnnnnnvvv'
;;;;;;;;;;;;;;;:::::::::::,;;;;;;;;;;;,vvnnnnnnnnnvv'
;;;;;;;;:::::::::::::,;;;;;;;;;;;;;;;,vvnnnnnnnnvv'
;;::::::::::::,;;;;;;;;;;;;;;;;;;;;;,vvnnnnnnnvv'
;;::::::,;;;;;;;;;;;;;;;;;;;;;;;;;,vvnnnnnnnvv'
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,vvnnnnnnvv'
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,vvnnnnnvv'
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,vvnnnnvv'
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,vvnvv:::
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,vvv::::::
;;;;;;;;;;;;;;;;;;;;;;;;;;;;,:::::::::'
;;;;;;;;;;;;;;;;;;;;;;;;;;;,::::::::::
;;;;;;;;;;;;;;;;;;;;;;;;;;,::::::::::'
;;;;;;;;;;;;;;;;;;;;;;;;;;,:::::::::'
;;;;;;;;;;;;;;;;;;;;;;;;;;,::::::::'
;;;;;;;;;;;;;;;;;;;;;;;;;;;,::::::'