^^^^^^^^^^^#^^^##^##^^^^##^##^^^^^^^^^^^^^^^
^^^^^^^^^^#^^^^##^^##^^###^^##^^^#^^^^^^^^^^
^^^^^^^^^^#^^^##^^^##^^###^^###^^##^^^^^^^^^
^^^^^^^^^###^^##^^^##^^^##^^^##^^##^#^^^^^^^
^^^^^^^#^####^#######^^^###^###^###^#^^^^^^^
^^^^^^^#^^###^^######^^########^###^#^^^^^^^
^^^^^^##^^###^^###############^^###^###^^^^^
^^^^^^###^###^#####################^###^^^^^
^^^^^###^^#########################^####^^^^
^^^^^###################################^^^^
^^^^^###################################^^^^
^^^^^###################################^^^^
^^^^^^#################################^^^^^
^^^^^^#####^^^^##############^^^^^#####^^^^^
^^^^^^######^^^^^^########^^^^^^^^#####^^^^^
^^^^^^^#######^^^^^^####^^^^^^^^######^^^^^^
^^^^^^^^^#######^^^^####^^^#########^^^^^^^^
^^^^^^^^^^^##########^^##########^^^^^^^^^^^
^^^^^^^^^^^^^^^#####^^^^######^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^#####^^^^######^^^^^^^^^^^^^^
^^^^^^^^^^^^^^#################^^^^^^^^^^^^^
^^^^^^^^^^^^^##################^^^^^^^^^^^^^
^^^^^^^^^^^^^^##^###^###^###^#^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^^^^#^^###^^#^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|