.. .. .. .. .. .. .. .. .. .... .... .. .. .. .. .. ..
::............ .. .... ....::....::..............::..::::..:: ..:: ......::........::..
..::::........................::::................::::::::::::::::::::........::..............
..............................................................................::............::
....;;jjjjjjjjjjjjffjjjjttttjjttttttffiijjjjiiiijjiittffiiii;;;;;;ttffGGjjGGEEEEEEEEEEGG....::
..;;ffLLffffLLGGLLjjDDGGjjttjjjjttffffffffGGKKKKKKKKEELLtt;;;;;;;;jjGGGGDDDDDDKKKKKKDD......
....;;GGLLGGGGEEEEGGjjffjjttiiiiiittjjDDEEKKKKKKWWWWWWKKKKLLii;;;;iiffDDDDDDGGLLEEKKKKEE......
....iiWWEEDDGGDDEEEEGGjjttiitt;;::;;GGKKKKKKKKKKWWWWWWWWWWWWLL;;;;;;;;ffDDDDDDEEEEEEEEDD......
....;;KKKKEEEEKKWWEEGGfftttt;;;;ttffKKKKKKKKKKKKWWWWKKWWWWWWWWGG,,;;;;;;jjGGGGDDEEDDEEGG....,,
..;;DDKKWWKKffGGGGKKKKLLtt;;ttttEEKKKKKKKKKKKKWWWWWWWWKKWWWWWWtt,,;;;;;;iiffGGDDEEEELL..::..
..;;EEKKKKEEttttttjjGG;;::::::iiKKKKKKKKKKKKWWWWKKKKWWKKWWKKWWEE,,::;;;;;;;;ttffffLLLL......
....;;KKEEDDGGjjtttt;;,,ii;;,,,,ttKKKKKKKKWWKKKKKKWWKKKKWWKKWWKKWWjjttttjjjjffffffGGGGLL......
....;;ffttffEEGGttttjj;;::::;;::ttKKKKKKKKKKKKKKKKKKKKKKEEKKWWKKWWttjj;;;;::;;iijjjjffff......
....;;ffffKKWWEEffjjfftt;;iitt::iiKKKKKKKKDDDDGGGGGGDDDDDDEEKKWWWW;;;;,,iittffLLGGGGGGLL......
..;;GGGGGGffffGGLLLLLLtttt;;::ttKKKKKKDDGGGGffffffffLLGGDDEEKKWWttttttttLLffDDDDGGGGff......
....;;GGGGGGGGDDLLGGGGtt;;jjjjjjjjKKKKKKDDDDDDGGjjjjffLLGGKKKKKKEEjjttLLGGLLEEEEffjjffjj......
....;;DDGGDDDDDDGGEEEEDDDDDDGGGGGGKKWWDDDDKKKKKKKKGGGGKKKKKKKKKKDDjjLLLLDDDDDDLLjjfffftt......
....;;KKDDEEEEEEKKEEKKKKEEEEEELLffGGKKDDDDEEKKKKEEGGDDKKKKKKKKKKGGLLffLLGGDDGGff;;jjLLii......
..;;KKKKKKKKKKKKEEKKWWDDGGjjjjffGGKKGGGGLLGGGGDDffGGDDDDDDDDDDEEGGjjDDGGDDGGffjjfffftt....
....;;EEEEKKKKEEKKKKKKKKKKEELLjjjjGGDDGGGGffjjffGGffGGDDffffGGDDDDffffEEDDEEffttjjLLjjff::....
....;;KKKKKKKKEEKKKKEEDDEEEEffLLGGGGGGGGGGjjjjffGGffLLDDffjjGGDDGGffGGDDGGDDjjttjjjjjjff......
....;;KKKKKKWWKKKKKKDDDDEEEEDDEEGGLLGGGGGGffGGLLGGGGDDDDGGLLDDDDEELLffffLLLLjjtttt;;ffff......
..;;KKKKWWWWWWKKKKKKKKKKEEKKDDjjLLffDDGGGGDDGGGGDDDDDDDDGGDDEEGGDDGGDDffffttffjjiiiiff::....
..;;KKKKWWKKKKWWWWWWWWWWKKEEGGffjjLLDDGGGGLLDDffttjjGGDDLLDDGGKKEEGGEEDDGGGGLLtt;;;;;;::..
::..;;WWWWKKEEGGWW##WWKKKKWWKKEEGGtt;;ffDDGGGGLLGGDDDDDDGGDDKKEEDDDDLLGGDDDDGGDDLL;;,,........
,,..;;WWWW##WWWWWWWWWWWWKKKKKKWWKKEEff::ffDDDDLLffffGGGGDDKKDDGGEEEEEEDDDDDDDDEEDDtt ::....
....iiWWWWWWWWWWWWWWWWWWWWKKKKEEEEKKDDjjLLDDKKDDGGGGDDDDKKDDGGGGDDKKKKEEEEDDGGGGffff:: ::....
..iiWWWWWWKKWWWWWW##WWWWWWKKKKEEKKGGjjffDDEEKKKKKKKKKKDDGGLLLLGGEEEEEEDDDDDDGGjjff ....
....ii##WWWWWWWWWWWWWWWWWWWWWWKKKKKKDDEEKKDDDDDDEEEEGGGGLLLLLLLLLLLLLLGGEEGGGGff,,:: ::..
,,..ii##KKWWWWWWWWWWWWWWKKKKKKKKKKKKKKEEGGEEDDDDDDLLffffLLLLffLLffffffLLLLLLDDLL:: ::....
....iiWWWWWWWWWWWWWWWWWWWWWWKKEELLGGGGGGEEDDGGGGLLLLLLLLLLffLLffffLLLLffffffLLGGii.. ::..::
..iiWWWWWW####WWWW##WWWWKKGGLLGGLLGGGGKKLLLLGGGGLLLLLLffLLffLLLLffLLLLffffLLLLGGGGii ..::..
....iiWW##WWWWWWKKKKWWWWKKGGLLLLLLGGLLLLEEGGLLLLLLffffffLLffffLLffLLLLffffffLLLLGGGGii ::::
::..iiWWWWKKKKKKEEEEEEKKGGLLLLLLLLLLLLLLEELLffLLLLiiffffffffLLLLffLLffffffffLLLLLLGGEE::::....
::..iiWW##WWWWWWKKKKKKEELLLLLLLLLLLLLLLLGGffffffLLttLLffffLLLLLLffffffffffffLLLLLLGGKK::::....
....iiWWWWKKKKWWWWWWEELLLLffLLffffLLLLLLLLffffffffLLLLffffLLLLffLLffffffffLLLLLLGGDDEE;;::....
....;;KKKKGGEEWWWWKKLLLLLLLLLLffffLLffLLLLffffLLLLLLffffLLffLLffLLffLLffffLLLLGGDDDDDDii::..
::..;;WWKKEEKKKKKKGGLLLLffLLffffffLLffffLLjjffLLLLLLffffffLLffLLLLLLffLLffffLLLLLLGGGGtt::....
::..iiWWWWWWWWKKEELLLLLLffLLffffffffffffffiiffLLffffffffffLLffDDGGffLLffffLLGGLLLLGGGGLL......
..::iiKKWWKKWWKKEELLLLLLffffLLffffLLffffffffLLLLffffffffffLLLLEEffLLffffffGGLLLLLLGGDDLL......
::;;KKKKKKWWEEGGLLLLffffffLLLLffffffffffffLLffLLffffffLLLLGGGGLLffffffLLLLLLLLGGDDEEff....
..::;;KKKKWWWWGGGGLLLLffffffLLLLffffffffffffLLffLLffffffGGffGGLLffffffjjLLffLLLLLLGGGGff......
::::iiWW####EELLLLGGLLLLLLLLLLLLLLffffffffffffffffffffffGGffLLffffffffLLLLffLLLLLLGGGGLL......
....iiWWWWEEffffffLLLLLLffLLLLLLLLLLLLffffLLffffLLffffffGGLLLLffffffffLLffffLLLLGGGGGGGG......
..ii##WWEELLLLffffLLLLLLLLLLLLLLLLLLffLLLLffffLLLLffLLDDLLLLffffLLGGffffLLLLLLDDDDDDGG......
..ii##WWLLLLffLLffLLLLGGLLLLLLLLLLLLttffLLffffLLLLLLEEGGLLffffffLLLLffffffGGLLGGGGGGGG....
....ii##KKLLffffffLLLLLLGGLLLLLLLLLLLLffffLLffffLLLLLLGGLLffffffLLffffttffffGGLLLLLLLLGG......
....ii##KKGGLLffffLLLLLLDDGGLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffGGLLLLLLLLGG......
..iiWWEEGGLLffLLLLLLGGDDGGLLLLLLLLLLLLLLGGGGGGLLLLLLGGLLLLffffffffLLffLLLLGGGGGGGGGGGG......
..iiWWEELLLLffLLLLffffLLLLLLGGGGLLGGGGLLLLLLGGGGLLLLLLffLLffffffffLLLLLLGGGGDDEEDDEEGG..::
....ii##LLtt..LLffLLttGGLL;;GGEELLLLGGGGGGGGLLLLLLLLffffffffffffffffLLttffffGGLLffffLLLL......
....ii##GGff..GGLLffLLGGLLiiLLLLLLttttffLLGGGGLLGGGGffffffffffttttffLLffffffGGLLffffLLLL......
....iiWWLLff..GGLLLLLLLLttiiGGff;;LLLLttLLGGLLLLGGLLffffffffffttttffLLffffffGGLLffffLLLL..::..
..iiWWGGff::GGLLLLGGLLffiiLLLL;;LLffLLLLLLLLLLGGGGGGGGLLLLffLLLLLLLLGGGGGGDDDDEEEEKKGG..::
....;;KKGGLL::GGGGLLGGLLLLttttff;;LLLLGGGGLLLLLLLLGGffffffffffttttffGGttttttGGffffffLLLL..::..
....iiKKGGLL::GGGGGGffLLLLiiffLL;;LLGGGGLLLLLLLLLLGGffffffffffttttffGGttttffGGffffffLLff::::..
....iiKKLLtt..ffLLGGiiffttiiGGLLffiiffLLGGGGLLLLLLLLffffffffffttttffGGttffffGGffffffLLff::::..
....iiWWDDDDEEGGGGGGGGGGGGDDGGGGGGLLGGGGGGLLLLLLLLLLffffffLLLLffffLLGGLLLLLLGGGGLLLLGGjj::..
....;;LLffttttjjttttttttttttjjttttttttttttttttttttttttttttttttttttjjjjffffjjttffffffffii....
..............................................................................::..............
..............................................................................::..............
..............................................::..........................................
.. .... .. .... .. .... .. .... .... .. .... .. .... .. .. .. ..