::::::::::::::::::::::::::::::::::::::::--
:::::::::::::::::-:::::--::::::::::::::--:
:::::::::::::::++-==+++==-=-:::::::::::-::
:::::::::::::-===++++++++++==-::::::::::::
::::::::::::-++++++***++++++++--:::::::--:
::::::::::-=++++++++++++*+++++=--::::::--:
::::::::::++++=++====+++++=*++=--::::::---
::::::::::++==--=--=====++++++---::::::-::
:::::::::::=+-======-=++++++-+==::::::---:
::::::::::-----++=+===+++++=:==-:::::::---
:::::::::::=-::--=++++++++=-::--:::::::---
:::::::::::-+::--=====+-==--:=-:::::::----
::::::::::::-::-==+=+=======-:::::::::--:-
::::::::::::::---++****++=+-::::::::::-:::
::::::::::::::-:==******+==-:::::::::::-::
:::::::::::::::--=++++*+++--::::::::::::::
:::::::::::::::--*+*++*++=--::::::::::-:::
::::::::::::::::=*++++++++----::::::::-:::
:::::::::::::::-+++++++++++=-:::::::::::::
:::::::::::::--:=+++*++**=++--::::::::::::
:::::::::::-:::--=+++++++++*+=::::::::::::
::::::::::::::::-===+++++*++*+-:::::::::::
:::::::::::::::---===+==++++*+--:-----:-::
::::::::::::::::::::---=+==+++==----:---=-
::::::::::::::::::::::::::==++++==-------=
:::::::::::::::::-:::::::-::=+**++==-----=