zzzzzzzzzzzzzzzzzzzzzzzzzzz####################################################zzzzzzzzzzzzzznnnnnn
zzzzzzzzzzzzzzzzzzzzzzz##########################################################zzzzzzzzzzzzznnnnn
zzzzzzzzzzzzzzzzzzzz######################################+++#####################zzzzzzzzzzzzzznnn
zzzzzzzzzzzzzzzzz##############################+++++++++++++++++++##################zzzzzzzzzzzzznn
zzzzzzzzzzzzzzzz######################++++++++++++++++++++++++++++++++################zzzzzzzzzzzzn
zzzzzzzzzzzzzzz#####################+++++++++++++++++++++++++++++++++++++###############zzzzzzzzzzz
zzzzzzzzzzzz######################++++++++++++++++++++++++++++++++++++++++++#############zzzzzzzzzz
zzzzzzzzzz#####################+++++++++++++++++++++++++++++++++++++++++++++++##############zzzzzzz
zzzzzzzz#####################++++++++++++++++++++++++++++++++++++++++++++++++++##############zzzzzz
zzzzzzz###################++++++++++++++++++++++++*****************+++++++++++++##############zzzzz
zzzz#####################++++++++++++++++++++++*************************+++++++++++############zzzz
zz####################+++++++++++++++++++++*******************************+++++++++++##########zzzz
#####################+++#zz#+###+++++++++***********************************++++++++++#########zzzz
###################+##nMW@WMn#+++++++****************************************++++++++++#########zzz
#################++#xW@####@@Mz+++*********************************************++++++++++########zz
################+#zW@W#####@WWxz++*************************ii********************+++++++++########z
##############++#z@#W#######@Mxxn+************************iiiiiiii*****************+++++++#########
###########++#+#z@#WW#######@WWMx#**********************iiiiiiiiiiiii****************+++++++#######
###########++##zW##W@#########WWWx+*******************iiiiiiiiiiiiiiiiii*************++++++++######
##############z@###@@@########@W@Wn+****************iiiiiiiiiiiiiiiiiiiii*************++++++++#####
#######+++#+#z@####Mz+n@######@WM@Wz**************iiiiiiiiiiiiiiiiiiiiiiiii************++++++++####
###+##++++++#M####@z*;;n@###@@@WxWW@#*******iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii***********++++++++###
++++++++++++n@####@z*;;+W@#@WW@@xM@@x******iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii***********++++++++##
++++++++++##W#####@n*i;+M@#@Mx@#@W@@@+****iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii***********+++++++++
++++++++++#nW######x+iinMW##Wxx@#@@@#M**iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii*************+++++++
+++++++++++z@##@###Wz++zMW#@W@W@@#@@@@n**iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii***********++++++
+++++++++++z###@####@WzizM@@MW#@@@@@@#@#**iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii**********+++++
+++++++++++z##@W####@WM;*zM@MnW@#@W@###n**iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii**********++++
+++++++++++x##W@####@xM;;+nMMz#W##@@###n**iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii*********+++
++++++++++#M##W@@####MM;:*+zxn+#@######W**iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii**********++
++++++++++zx#@MW@####@W#+ii+zz##@#######n***iiiiiiiiiiiiiiiii;;;;;;;;iiiiiiiiiiiiiiiiiiii*********+
++++++++++zx@MMM@#####@@#i*++#znW#######@z+*iiiiiiiiiiii;;;;;;;;;;;;;;;;iiiiiiiiiiiiiiiiii*********
++++++++++#x@MWW@######WMzi;i*#nW#@@@###@n**iiiiiiiiiiii;;;;;;;;;;;;;;;;iiiiiiiiiiiiiiiiii*********
+++++++zz##z@WW##W@####@Wx#i:*z#M#Wnn@##Wx+*iiiiiii;;;;;;;;;;;;;;;;;;;;;;;iiiiiiiiiiiiiiiiii*******
+++++++nWMMWW@@##WW@#####M*;iz#+n#@+*#@@WM#*iiiiiii;;;;;;;;;;;;;;;;;;;;;;;;;iiiiiiiiiiiiiiii*******
++++++++nxxW@Wx##WW######@xnxz**z#@#**#nMWx+*iiii;;;;;;;;;;;;;;;;;;;;;;;;;;;;iiiiiiiiiiiiiiii******
+++++++znzMWxi*@#WW#######@Mz*iiz@#M***xxxWn+iii;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iiiiiiiiiiiiii*****
+++++++#znzzz;iW##@@@@####Wn#***###@*++zMnnn*ii;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iiiiiiiiiiiii*****
++++++++*+##z;*W@##@WW@#@@n*i;i*+W@Wzi+*zznM+*i;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iiiiiiiiiiiiii****
+++++++**+##z;+MW@MW#@#@zzx:,,,;:izWMi*##zzzz*i;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iiiiiiiiiiiii****
++++++****#++:z@#ni###W@W*##......i@Mzi#nzz+#*i;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iiiiiiiiiiiii**
+++++****+#++;n@@#;*##@W@xin#,...,zxWM*+nnz#++ii;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iiiiiiiiiiiii**
++++*****++++ixW@*:;W#@@WMz:+z:.:z:iWW#*nnnn#+ii;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iiiiiiiiiiiii*
+++*******++**xMx;::+#@@@MMi,;z++,.,nWx*#xnzz#i;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iiiiiiiiiiiii*
++***********+W@x*::;W@WWxx#,.:;....;xM#*znz#+i;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iiiiiiiiiiiii*
+************+WWn*,,:#MWxn#z:........ixz+zxxz#*;;;;;;;;;;;;;;;;;::::::;;;;;;;;;;;;;;;;iiiiiiiiiiiii
*************+xMn;,,:+MWxz+*:,........ix#zxMMzi;;;;;;;;;;:::::::::::::;;;;;;;;;;;;;;;;;iiiiiiiiiiii
*************zMMz;,,,*@@@z#;,,.........+nzxz+*;;;;;;;;;:::::::::::::::::;;;;;;;;;;;;;;;;iiiiiiiiiii
*************zMxni,,,i@@@x+*:,,..,...;#xWnxn+*;;;;;;;:::::::::::::::::::;;;;;;;;;;;;;;;;iiiiiiiiiii
*************+WMW#i,,;@@WMi#;:,,.,,,#MWWWMnM#*;;;;;;;:::::::::::::::::::::;;;;;;;;;;;;;;iiiiiiiiiii
*************+WWW+i;::W@@W*z+#,,,:iMWMWWWWnxz*;;;;;::::::::::::::::::::::::;;;;;;;;;;;;;iiiiiiiiiii
**************WWMi:,,:M@@M#MMxi::zWWWMWWWWMnx*;;;;;:::::::::::::::::::::::::;;;;;;;;;;;;;iiiiiiiiii
************i*xxn*;,,,n@@MnWWWxiz@@@WWW@@W@MM#i;;::::::::::::::::::::::::::::;;;;;;;;;;;;;iiiiiiiii
************i*xnM*;::,##@WM@@@W@@@@#@@@##@@MWWz*;;:::::::::::::::::::::::::::;;;;;;;;;;;;;iiiiiiiii
************i+nzW+;:,:*##@W@@@@@@@###@###@Wz#xx#;::::::::::::::::::::::::::::::;;;;;;;;;;;;iiiiiiii
*************n++M#;:,,;@##@@#@@##########@W+*i;;:::::::::::::::::::::::::::::::;;;;;;;;;;;;iiiiiiii
*************xi*M#i:,.,W##@####@@@#######@n#*i:::::::::::::::::::::::::::::::::;;;;;;;;;;;;;iiiiiii
************+#iixzi:,.,x######@@@W@@###@WWxz+i::::::::::::::::::::::::::::::::::;;;;;;;;;;;;iiiiiii
************z*iinz*;,.,z###@MWzzznWWW@#xnWxz+*:::::::::::::::::::::::::::::::::::;;;;;;;;;;;;iiiiii
********++##+iiizn+;,..*Mnnnz+;::::+nMM+#Mn#**:::::::::::::::::::::::::::::::::::;;;;;;;;;;;;iiiiii
**************ii*x#*:..;nz#*ii;:::::;i*;#Mn#*i::::::::::::::::::::::::::::::::::::;;;;;;;;;;;iiiiii
**************iiixz+:,.;z#*ii;;::::;;i*;+xz+;;;:::::::::::::::::::::::::::::::::::;;;;;;;;;;;iiiiii
************i*iiizzz;,.:#+*i;;:::;;;i**:*n#i::;:::::::::::::::::::::::::::::::::::;;;;;;;;;;;;iiiii
++***********iiii*nx*,.:+*i;;;;;;;iii*i:iz*;::;::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;iiii
+++**********iiiiixzz:,,*ii;;;;;;iiii*;:i#i:,:;::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;iiii
+++++*********iii+W+#;,,;i;;;;;;;i;;ii:;i+i:,;;::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;iii
+++++**********i*W@#*;,.:;;;;;;:;;;;;i::i+;:,;;:::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;iii
++++++**********n#@n*;,.,::;*;::::::;;::;+;::;;:::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;ii
+++++++********+@##M+;,.,::*i;::::::;;::;#;::i;:::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;ii
++++++++*******n@@#@zi,.,::,::::::::;;::;#;::i:::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;ii
+++++++++*****+MW@#@x*:..:::::::::::i;::;#;::i:::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;i
#+++++++++****nMW@##W+;,.,;;;;:::::;*i:::#;,:i::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;
###++++++++**+@#####@n;,.,i+***iiii*#i:::#;:;i::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;
#####++++++++z#######M*,.,i@@WWWWW@@@*;::#;:i;::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;
#######++++++W#######@#:.,:WWW@@@@@@@n;::+;:i::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;
########++++##########xi,.:n@WW@@@@@@W*::*:;i::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;
#########+++M@@@@#####W+:.,+@@WWW@@@@@W*:*:;i::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;
zzz########zWW@@W@@###@n;,,;W@@@@@@@WWWM*i::;::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;
zzzzzz####zM@@WWWW@@@##M*,,:zW@WWMWWMWWWWM;,,::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;
zzzzzzzz#zM@@WxxxMWW@@#Wz:,,+WWMWMMWWMMWWWi:;,:::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;
zzzzzzzzzn@@#@MnnnxW@@##Wi,,;MWMMMMMWWWMWWzzWi::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;
nnnnnzzzzM@##@WMznnW@@@#@z,:;xMMMMMWWWWMWWW@WM::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;
nnnnnnnzzW@#@@WWMxMW#@@@zx::;nWWWMMWWWWWMWWWW@*::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;
nnnnnnnnzW@#W@WWWMxxW##WM@@zzM@@@@WWWWWWWWMMWW+;::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;
xxxnnnnnnW##@WMMxMxW@###@+nW@##@@@@@@@@WWMMMMMWx:::::::::::::::::::::::::::::::::::::::::::;;;;;;;;
xxxxxnnnnM###@WWWWM@####M,,;#W###@@@@@@@WWMMMMWWn*:::::::::::::::::::::::::::::::::::::::::;;;;;;;;
xxxxxxnnnx####@@W@@@###@x.,:;*@#####@@@W@WWMMxMWWMi:::::::::::::::::::::::::::::::::::::::::;;;;;;;
xxxxxxxnnnW#####@#@#####z.,::;M######@@@@@WWMMMMWWM*::::::::::::::::::::::::::::::::::::::::;;;;;;;
xxxxxxxxnnnW###########@z,,::;W#########@@@@WWMMMWWM*:::::::::::::::::::::::::::::::::::::::;;;;;;;
MMxxxxxxnnnM#######@###@M:i::;@##########@@@WWWMMMWWMi::::::::::::::::::::::::::::::::::::::;;;;;;;
MMMxxxxxxnnW#######M@##@n:iii;@@#########W@@@@@WMxMWWMi;;::::::::::::::::::::::::::::::::::;;;;;;;;
MMMMxxxxxxn@#WM@#####@@@+;;*#*@@@@M@#####@@##@@WWMMMWWn;;;;;;:::::::::::::::::::::::::::;;;;;;;;;;;
MMMMMxxxxxx@#Wnx#######M+*i*+*@@#@n@#xM#######@@@WMxxxnz;;;;;;;;;::;;;;;;;;;;;::::;:;;;;;;;;;;;;;;;
MMMMMxxxxxx##Mnn##@@###nz#++x#@@#####niz@######@@WWMMxxM#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
xxMMMxxxxxx##xnn##MzzxMMnnnM#@@@#####nii*@#####@@@@@WMMMW#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
xxxxxxxxxxM##xnx##Mzz#znnzW##########xiiiM########@W@WMxMWn;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
xxxxxxxxxxW##xnx##xzzz####+zW#######@xiiix##@######@@@WxnMWzi;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iiiiii
xxxxxxxxxxW#@nnM##xzzz####+++x#######xiiin##*x######@@@WMxWWniiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
xxxxxxxxxx@#@xnM##xzzzz####+++M######M*iin##+iz########@WWWW@xiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
xxxxxxxxxx@#WxnM##nzzzz####++++@######+iiz##+ii+W#####@@@@WWW@x*iiiiiiiiiiiiiiiiiiiiiiiiiiiiiii****
xxxxxxxxxx@#WxxW##nzzzz####++++n######xii####iiiin##@@WWW@@@WW@M*iiiiiiiiiiiiiiiiiiiii*************
nnxxxxxxxx@#MxxW##nzzzz####+++++@######zi###ziiiii+W#WW@W@@@WW@WM*iiiiiiiiiiiiiiiii****************
nnxxxxxxxx@#MxxW#@nnzzzz######zzW######@*+##ziiiiiiizW@W#@@@@xWW@M*iiiiiiiiiiiiiiiii***************
nnxxxxxxxM##xxx@#@nnxxxMMW@@@###########x*##niiiiiiii*M@##@@@@WWW@M*iiiiiiiiiiiiiiiiiii************
nnnxxxxxxM##MWW@##@#####################@*##xiiiiiiiiiin###@@@@WWWWMiiiiiiiiiiiiiiiiiii*iii********
nnnxxxxxxW#####@##############@WM@#######x##xii;;;iiiiiiz#####@@WWWWxiiiiiiiiiiiiiiiiiiiiiii*******
nnnxxxxxxW@@@##@#####@@WWMxnz###zW#######@##@n*;;;;;;;;;iz####@@@WWW@niiiiiiiiiiiiiiiiiiiiiiii*****
nnnxxxxxM@@@@@@@#@MxxxxxxxxMMMWWW@#######@##@WM#i;;;;;;;;;x@@@@@@@WWW@ziiiiiiiiiiiiiiiiiiiiiiii****
nnnxxxMMM@@@@@W@#@WWWWWWWWMMMMMWW@#######@##@W@@x;;;;;;;;;iM@MM@@@@WW@W+iiiiiiiiiiiiiiiiiiiiiiiii**
nnnxxxMMM@#@@@@@@@WWWWWWWWWWMMMMWW######@W@@###W#;;;;;;;;;;iWWM@@@@@WWWW*;iiiiiiiiiiiiiiiiiiiiii***
nnxxxMMMM@#M@@@@@WWWWWWWWWMMMMWWWW@####@@######M;;;;;;;;;;;;iWW@@@@@@WWWMi;;;iiiiiiiiiiiiiiiiiiii**
nnxxxMMMW@#MM@@@@@WWMWMWWWWWW@@@@@#############M;;;;;;;;;;;;;*W##@@@@WWWWn;;;;;;iiiiiiiiiiiiiiiiii*
nnxxMMMMW#@MMM@@@WWWWW@@@@@#############@@@@W@#W;;;;;;;;;;;;;;*W##@@@@@WWW#;;;;;;iii;;;iiiiiiiiiiii
nxxxMMMMW#@MMMM@@@@######@@@@@@@@@@##@Mnz+*iiW#@;;;;;;;;;;;;;;;iW###@@@@W@W*;;;;;;;;;;;;;;;iiiiiiii
nxxMMMMM@#@MMMMW@@@@@@@@@@@@@WWWMxn@#M++**iiiM#@;;;;;;;;;;;;;;;;iM###@x@@@@Wi;;;;;;;;;;;;;;;iiiiiii
nxxxMMMM@#WMMMxMW@@@@@WWWMMMxxxxxxn@#M#++***iM##i;;;;::::;;;;;;;;;n###@@@WW@xi;;;;;;;;;;;;;;;;;iiii
nnxxMMMM##MxxxxxW@@MxxxxxxxxMxxxxxx@#Mz##++**x##*;;;;;:::::::;;;;;;#@###@@@@@Mn*;;;;;;;;;;;;;;;;iii
nnxxxxxM##xnnnnnM@@xnxxxxxxMMMMMMMMW#Mnzz#+++x##+i;;;;;:::::::::;;;;#@##@@@W@M@@i;;;;;;;;;;;;;;;;ii
znnnxxxM##xnnnnnW@@xxxxxMMMMMMMMMWWWWMxnnz##+x###ii;;;;;;::::::::::;;+@#@#@W#;###;;;;;;;;;;;;;;;;ii
zzznnnxW##xnnnnnW@@xxxMMMMMMMMWWWWW@WMMxxnzz#n#@z**iii;;;;:::::::::::;*@###n*+W#@i;;;;;;;;;;;;;;;;;
##zzzznW#@xxxMMMW@@MMMMWWWWWWWWWWWWWWMMMxxnnzn@@n++**iii;;;;;::::::::::;n@#######z;;;;;;;;;;;;;;;;;
++###zzx#WxMMWWWW@@WWWWWWWWWWWWWMMMMxxnnnnnnnn@@n+++++**iii;;;;:::::::::*z#######Wi;;;;;;;;;;;;;;;;
+++++#zznxxxMWWWW@@WWWWWWMMMMxxxnnnzz##++##znnW@x#####+++**ii;;;;:::::::;+x#######x;;;;;;;;;;;;;;;;
*****+##znnxMWWWW@WMMMxxxnnnnzz###++**iiii*+znW@x++########+**ii;;;:::::::;W######@i;;;;;;;;;;;;;;;
iiii***+##znxxMMW@Mnnzzz##+++****iii;;;;;;;i#nW@x***+##zzzz###+*ii;;;::::::*#######z;;;;;;;;;;;;;;;
iiiiiii**+##znnxW@x#+***iii;;;;;;;;;;:::::::;zMWx;iii*++#zzzzzz#++*i;;;:::::W######@;;;;:::;;;;;;;;
;;;;;;;iii*++##zW@#ii;;;;::::::::::::::::::::;nWx;;;;;ii*++#zzzzz##+*ii;;;::+#######n::::::::;;;;;;
;;;;;;;;;;i**++#W@+;::::::::::::::::::::::::::;#*:::::;;;ii*++#zznzz##+*ii;;:n######@i:::::::::;;;;
;;;;;;;::;;;i*+zWW*:::::::::::::::::::::::::::::::::::::::;;;i**#zznnnnz#+*i;i@######M:::::::::;;;;
:::::::::::;;*#nWWi::::::::::::::::::::::::::::::::::::::::::;;;i*+#znxxxxnz#*#########:::::::::;;;
:::::::::::::;+MWW;::::::::::::::::::::::::::::::::::::::::::::::;;i*#znxMMMMxzx######@*::::::::::;
::::::::::::::;nWW::::::::::::::::::::::::::::::::::::::::::::::::::;i*+znxMWWMx@######W;:::::::::;
:::::::::::::::*Wx:::::::::::::::::::::::::::::::,,,,,::,:::::::::::::;;i+zxMWWW@#######M::::::::::
::::::::::::::::;::::::::::::::::::::::::::::::::::,,,,,,,:::::::::::::::;i+zxWW@########+:::::::::
:::::::::::::::::::::::::::::::::::::::::::::::::::::,,,,,,::::::::::::::::;i#xW@########x:::::::::
::::::::::::::::::::::::::::,:::::::::::,,:::::::::::,,,,,,,::,,:::::::::::::;+x@########W:::::::::
::::::::::::::::::::::::::::,:::::::,,,,,,,::::,,,:::,,,,,,,,,:,::::::::::::::;*M########@i::::::::
::::::::::::::::::::::::::::::::::,::,,,,,,,,,,,,,,,,,,,,,,,,,::::,::::::::::::;+@########*::::::::
:::::::::::::::::::::::::::::::::::::,,,,:,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::+@#####@M;::::::::
::::::::::::::::::::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::::::*M###@W#:::::::::
:::::::::::::::::::::::::::,,,::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::,:::::::::::::;zW##W*:::::::::
:::::::::::::::::::::::::::,,:::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::,:::::::::::::::;+#*::::::::::
::::::::::::::::::::::::::,::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::::::::::::::::
::::::::::::::::::::::::,,,,::,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::::::::::::::::
:::::::::::::::::::::::,,,,,:::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::::::::::::::
::::::::::::::::::::::,,,,,,,,,,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:,,,,,:::::::::::::::::::::
::::::::::::::::::::::,,,,,,,,:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::::::
::::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:::,:::::,:,,::,,::::::::::
:::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::::::::::::::::
:::::::::::::::::::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::::::::::::