::::::::::::::::::::::::::::::::::::::::::::::::::::ノ___:::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::::::::::::::>:.:'":.:.:.:.:.:.:.:.:.:.\_::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::/:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.\:::;:::::::::::::::::::::
:::::::::::::::::::::::::::::::::::::::::::/:.:.:.:.:.:N.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.∨::::::::::::::::
. :::::::::::::::::::::::::::::::::::::::/:.:.:.:.:.:.:.| \:.::.ト、:.:.:ト、:.:.:.:.l:.:.:|/:/:;:::::::::::
:::::::::::::::::::::::::::::::::/:.:.:.:.:.i:.:.:..| ヽj \|  ̄::.:.:| / /::::::::::::::
:::::::::::::::::::::::::::::::::::::}:.:.:.:.:ノ^l:.j l⌒l /::::::::::::::::
:::::::::::::::::::::::::::::::::::∧:.:.:.:| |/ ‐ 何/ ゚o pノ /::::::::::::::
::::::::::::::::::::::::::::::::::::::::\::l ラ可} ⌒ |/ /::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::.:.:ヽ、 o゚⌒ }_ / /:::::::::::::::
:::::::::::::::::::::::::::::::::::::::::::.:.:.:::::⌒⌒\ _,ノ! / /:::::::::::::::::
:::::::::::::::::::::::::::::::::::::::::::::::::::::::\ | | / /::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::::::::::::::::::::/! / / / /::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::/ | { { / /:::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::::::::〈 /| | }〈_/:::::::::::::::::::
:::::::::::::::::::::::::::::::::::::::::::::::::::::{ ーU |::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::ij\人ノ::::::::::::::