^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^#######^^^^^^^^^^^^^^^ ^^^^^^^^^#############^^^^^^^^^^^^ ^^^^^^^^###############^^^^^^^^^^^ ^^^^^^^^###############^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^@@@@@@@@@@@@^^^^^^^^^^^ ^^^^^^^^@@@@@@@@@@@@^^^^^^^^^^^ ^^^^^^^^^@@@@@@@@@@^^^^^^^^^^^^ ^^^^^^^^^^^^@@@@@@^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^@@^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^@@^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^@@^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^@@^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^