~~~~~~~~~~~@@@~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~@@@@~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~@@@@@~~~~~~~~~~@~~~~~@~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~@@@@@@~~~~~~~~~~@@~~~~@@~~~~~~~~~~~~~~~~~~~~~
~~~~~~~@@@@@@@~~~~~~~~~~@@@~~~@@@~~~~@@@@@@@@@@~~~~~~
~~~~~~@@@@@@@@~~~~~~~~~~@@@@~~@@@@~~@@~~@@@@~~~~~~~~~
~~~~~@@@@~@@~@@@@@@@@@~~@@@@~~@@@@~@@~~~@@@@~~~~~~~~~
~~~~@@@@~~@@@@~@@@@@@@@~@@@@~~@@@~@@~~~~@@@@~~~~~~~~~
~~~@@@@~~~@@@@~@@@@~@@@@~@@@~~@@@~~@@~~~@@@@~~~~~~~~~
~~~@@@@@@~@@@@~@@@@~~@@@@~@@~~@@@@~~@@~~@@@@~~~~~~~~~
~~~@@@@~@@@@@@~@@@@~~~@@@@~@~~@@@@~~@@@@~@@@~~~~~~~~~
~~~@@@@~~~@@@@~@@@@~~~@@@~@@~@@@@@~@@@@~@@@@~~~~~~~~~
~~~@@@@~~~@@@@~@@@@~~@@~@@@@@@@@@~@@@@~~@@@@~~~~~~~~~
~~~@@@~~~~@@@@~@@@@~@@~~@@@@@~@@~@@@@~~~~@@@~~~~~~~~~
~~~@@~~~~~~@@@~@@@@@@~~~@@@~~~@~@@@@~~~~~~@@~~~~~~~~~
~~~@~~~~~~~~@@~@@@@~~~~~@@~~~~~@@@@~~~~~~~~@~~~~~~~~~
~~~~~~~~~~~~~@~@@@@~~~~~@~~~~~@@@@~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~@@@@~~~~~~~~~~@@@@~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~@@@~~~~~~~~~@@@@~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~@@~~~~~~~~~@@~~~~~~~~~~~~~~~~~~~~~~~