Simple ASCII Art Generator
Our first task was to generate an ASCII text file from an image file.
We have two different grey level mappings for ASCII conversion:
grey10 = "@%#*+=-:. "
grey70 = "$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^‘’. "
Comparison of ASCII Art with Grey 10 and Grey 70
Grey level 10 provides better ASCII art output than grey level 70 because it ensures stronger contrast, better clarity, and more distinguishable features in the
final image. ASCII art works by mapping average grey levels of image patches to predefined character sets, where darker characters represent denser areas and
lighter ones represent less dense regions.
The grey10 consists of only ten distinct characters, making transitions between different shades more noticeable. This controlled granularity enhances the
structural integrity of the image, ensuring well-defined edges and recognizable patterns. The limited set prevents unnecessary blending of details, which is
crucial for maintaining clarity when reducing an image to ASCII.
On the other hand, grey70 has 70 characters, leading to much finer gradations in brightness. While this may seem beneficial, it actually reduces the perceptibility
of differences between adjacent regions. Since ASCII characters vary in width and texture, using too many shades can create a visually noisy and less structured
output, making important features blur together. With grey 70, subtle variations between characters become less noticeable due to the limitations of ASCII
rendering. This results in a loss of sharpness and reduces the effectiveness of the representation. Grey 10, by providing fewer but more distinct levels, ensures a
more pronounced and visually appealing ASCII conversion, making the details of monkeyking.jpg stand out clearly.
Effect of Patch Size on ASCII Art Quality
Reducing the patch size further improves the ASCII representation because it increases the resolution of the ASCII output. Each ASCII character represents a
smaller portion of the image, allowing for more localized detail to be captured. In your case, a 9×9 patch size means each ASCII character represents a 9×9 pixel
block in the original image. If the patch size decreases, more ASCII characters are used to depict the image, improving fine detail preservation. Here I calculated
the patch size following process explained in the Assignment pdf. Additionally I done the experiment for ASCII image new size 80 and 160.
A smaller patch size also helps in maintaining sharp edges and subtle textures, which would otherwise be lost in large patches. For example, a face or a fine pattern
in the image will be more accurately represented if there are more ASCII characters to work with, rather than each covering too much area and averaging out critical
details.
Original Image & Visual Comparison
Original Image
Grey 10 - width 160
Grey 70 - width 160
Grey 10 - width 80
Grey 70 - width 80
goto top ^
=========================================-==----===-====-==----=-=--------------====================================================================
=========================================-===---------=---------------------------==================================================================
=========================================-------------------------------------------==-=============================================================
========================================-------------------------------------------------===========================================================
========================================-----------------------------------------------------==-====================================================
=======================================---------------------------------------------------------====================================================
=====================================--------------------------------------------------------------=================================================
===================================------------------------------------------------------------------===========--==================================
==================================--------------------------------------------------------------------==========--==================================
=================================------------------------------------------------------------------------==---==--==================================
================================-------------------------------------------------------------------------------=---=================================
=============================--------------------------+*=------------------------------------------------------------==--==========================
============================---------------------------*%##=--------------------------------------------------------------=-========================
============================--------------------------+%%@@@#+=---------------:-----------::-:--------------------------------======================
=========================----------------------------=*%%%@@@ @#=-----::::::::::::::::::::::::-------------------------------=======================
=========================--------------------------==+##%%%@@@ @@*=-::::::::::::::::::::::::::::------------------------------======================
========================---------------------------=+*####%%%@@ @%*-:::::::::::::::::::::::::::::----------------------------======================
=======================---------------------------=+**####%%%@@ *-:::::::::::::::::::::::::::::-----------=++****+=--=------====================
===================-=---------------------------:=+**######%%%@ @+:::::::::::::::::::::::::::::::::-----+*#########*==-------===================
===================-------------------------::::-++**######%%%@@ @-:::::::::::::::::::::::::::::::::--=*###%%%%%%%%%%*=-=---===-================
===================---------------------::::::::==**######%%%%@@ *:::::::::::::::::::::::::::::::::-+##%%%%%%%%%%%%%%#=---====--===============
===================--------------------:::::::::=+**######%%%@@ %:::::::::::::::::::::::::::::::::*#%%%%%%%%%%%%%%%%%%=----=-=================
==================-------------------::::::::::-++*#####%%%%@@@ %=:::::::::::::::::::::::::::::::=#%%%%%%%%%%%%%%%%%%%#==----=================
==================------------------:::::::::::-+**####%%%%@@@@ @+:::::::::::::::::::::::::::::::#%%%%%%%%%@@@@@@@@@@@@*---===================
=================------------------::::::::::::-=**####%%%@@@@ #::::::::::::::::::::::::::::::=%%%%%@@@@@@@@@@@@@@@@@%=--====-==============
=================-----------------:::::::::::::=++###%%%%@@@@@@ %@ %-::::::::::::::::::::::::::::-#%@@@@@@@@@@@@@@@@@@@@@@*--===================
================------------------:::::::::::::=+**##%%%@@@%=-*@@ @=# *::::::::::::::::::::::::::::=%@@@@@@@@@@%##% @@@@@@@%=--=====---==========
================-----------------::::::::::::::-+###%%@@@@+...:*@ *#*# -::::::::::::::::::::::::::::+%@@@@@@ #-::--*@@@@@@@@%+-----=-----=========
===============-----------------:::::::::::::::=+#%%%%@@%-...::=@@ -@*#@-:::::::-::::::::::::::::::::*@@ #::::::-#@@@@@@@@*-----------=========
===============---------------:::::::::::::::::-*#%%%@@%:...=%#=#@@=%*%%-==-:=+*=-:::::::::::::::::::#@ @-:::::::=@@@@@@@%*------=-----========
==============----------------::::::::::::::::::+%-..:*+...+%#%+*@@#%@ @%%%++#+==*+#+=:::::::::::::::% #:::::::::%@@@%%%%+------------========
==============---------------:::::::::::::::::::-#-.......-%%@***%@ %% #*::=::*%% @#-::::::::::::% *:::::::::#@@%%###+-------------=======
=============---------------:::::::::::::::::::::-*:=:...:%#*%=*#%@ %@@-=------+#@ #-::::::::::# +:::::::::%@@%%#%#=--------------======
==========------------------:::::::::::::::::::::::=%##::-*%-:*+#@@ %@ --%+-=**=-=%% @+:::::::::* +:::::::::#@@@@%%#--------======-=+====
==========-----------------:::::::::::::::::::::::::#+@*..:=+--+*@ @%@ *.=#%*+#%:-+%%* @*::::::::= #:::::::::+@@@@%#-----==-=-=++%*%@ ====
==========----------------::::::::::::::::::::::::::=+=+.....-:=*@ %% =.=##%%%@+:-*#-# %#=::::::::@ @::::::::::*@@%%=-----*#*--=+*@#% *===
========------------------::::::::::::::::::::::::::=-:......-:-# %% +.=###%%%%+:.:-% #%::::::::* +::::::::::+#*------=***==+*#@%@@%====
=======-----------------::::::::::::::::::::::::::::=:..:-+..-.-@ @%%@ #..##%%%%%%%#%@@ %+:::::::-%%%@@ @:::::::::::-:---+*#%*#%****@%@*--====
======-----------------:::::::::::::::::::::::::::::-=......:..* @%%@ @ -.-##%%%%%%%%%%@ %#:::==---===+#*%@#::::::::::-=*#%%%@@@@@##%@@+=----===
======-----------------::::::::::::::::::::::::::::::*-:-:::..:@%%%@ @@ @:.:##%%%%%%%%%%%@@@%::*%##% %@=--=-----::=+#%%%%@@@@@@%#*#%#+------===
======----------------::::::::::::::::::::::::::::::::--:....-#%%%@ @@@ @:..+%%%%%%%%%@% % #:==::=@ *-::::-*@ @**#%%@@@@@%#+==#%=-----------==
======----------------:::::::::::::::::::::::::::::::::-#%+-%@%%%@@@@%@@ =...=*%++%@%%@@ +--..= @@%:::::* %#####*@@@@#*=-------------------==
=====----------------:::::::::::::::::::::::::::::::::-#% % %%%%@% @@ @ %-....-+*#*##@@#%=..- @@@%:..::% ######%***=-::::-------------------=
==-==----------------:::::::::::::::::::::::::::::::::-* @%%%%@@% %@ @ @##% %=::-=*=+###%%#...@ @%%%-...:@ #######%**-:::::::-------------------
---==----------------:::::::::::::::::::::::::::::::::-#@ %%%%@@%@ %@ @ %#%%%% @###*%@@@%%-..* ###+....% @#%@%%%%%%*+:::::::-------------------
--=-=---------------:::::::::::::::::::::::.::::::::::-#@@##%%% @% @%% @#*+*#%@ @@ ##%..: #+##:...* ##@@@@@@% %#::::::::------------------
-==-=---------------::::::::::::::::::::::..::::::::::*####%%%@@@@@%%@@@#++**#%@ @@ ##*..* @==#+...- @#%@@@@@@@ =:::::::------------------
=------------------::::::::::::::::::::::...:..::::::=####%%%%@@%@@%%@@#+++*##%%@ @=.=% %#+::% #-=#-::.# %#@@@@@ @@@@*::::::::-----------------
=------------------:::::::::::::::::::::.......:..:::+###%%%@@@%%@%%%@#**++++*#%@ %+**=+%@@-:- *:+#:::- ##%@@@@@@@@%%%%+::::::::----------------
=------------------::::::::::::::::::::..............:-=*%@@@@%%%@%%@@#*++++*%@%@@ ##+*#@@@-:= +:*+:::* @##@@@@@@@@@@@%%%=:::::::----------------
-------------------:::::::::::::::::::...................% @%%%%%%%%@@#===++***#%@ @%@@ %#+:.= --#+:::@ ##%@@@@@ @@@@@@@@#:::::::----------------
-------------------:::::::::::::::::::..................:%%%%%%%%%%@ %=----==++*##@ @#*--....- ==#=::- %#%@@ @@@@@+::::::----------------
-------------------::::::::::::::::::..................-= @%%%%%%%% %+------=++**#@ *-......:.-@ ###=-=*##%@@ @@@ @*:::::----------------
-------------------::::::::::::::::::................:*=+ @%%%%%%%@%+------=+*#%%@ +.......::-@ %%####%%@@@ @@ @@=:::-----------------
-------------------::::::::::::::::::................* =* #%%%@ #=---=====+++**#% #.......:--% %*##%%@@@@ @ #:::-----------------
------------------::::::::::::::::::................-@ +# % @@#::-==------=+*#%@ #........+=#@*#%@@ @@@ @ %::------------------
------------------:::::::::::::::::.................*@@%@ % -.:::-----=++#@ @-.......=#*%#@ %@@@ =:::-----------------
------------------:::::::::::::::::.............:---::-# @@ @%@ =:::----==++#% #........-#@% =--@ @@@--+@ @-:::-----------------
-----------------::::::::::::::::............---:....:-# @ @#*+# -::=++=+*#@ @ @@=-:........=%@ =--% @ @@@*::%@@ =:::-----------------
-----------------::::::::::::::::..:::...----....:-=#@ @%% @+=--+-=#%%%#@@@ @+............=#@#=-*%#%*%% @**#::-@@ -:::-----------------
-----------------::::::::::::::::::::----....:-=*%@ %%@ %*#@ %+--==#**##%%@@@@ =-...............-***#**%*#% *==*-:::#%#=::::-----------------
-----------------:::::::::::::::**:-=#-..:-=*#@ @#*=--%@%+==*%@@#:..==**###%%@@@ =.................=%#**+=*##+===+=::::::::::::-----------------
-----------------:::::::::::::-+##==#%#=*%@@ @#*+=-.....-..:::::.....::**##%%%@@@ =..................:+%*+======+*+:::::::::::::-----------------
------------------::::::::-+*####+**%%@@ @#*+=-:.....................=#*###%%%@@@ %#+-..................-++===+*% *:::::::::::::::---------------
----------------:-=-::-+*#####%#-+%@@ @#+==-......................:+%@ ####%%%@@@ @@@@@#=..................*@@@ +:::::::::::::::---------------
------------::--+****##***#%%@@ @ %-:.......................:=# ###%%%%@@@ @%%%+..................@ -:::::::::::::::---------------
----------:....-+*****#%%%@ @%#%@ *.......................::*@@ %###%%%@@@@ @%%%+..................- ::::::::::::::::---------------
----------....::+++#%%@ @@%+=+#---.......................--.-=*@ %%#**#%%%%%%%##+##%+...................# %:::::::::::::::----------------
--------::...:--=+%@ @@@#+-:..-=...........................--=*# %*...:::--=++*#% *...................= +:::::::::::::::----------------
----=++..:.:-+**+% @@%*=:::::.............................:=*%=*@ @@%::=*##%@@@@ %-..................:@ :::::::::::::::::---------------
---+*##:.:-=*#%%%%@%%*-:::::::............................-*#%@%+=% ==#%@@@@@ @ %=................:% *.::::::::::::::::---------------
---+#%%=:=##%%%%@#++#-::::::::........................-***#%%@ **++%@ @@ @%@@@@ @@ @ %=.............:% @:.::::::::::::::::---------------
---*#%%#*#@@%%%@#=@%+:::::::::.....................:-*%%@@@@ #=-=-*#*@@##@@@%@@%%%@ @@ #...........=@ =..::::::::::::::::---------------
---*% @@@% #-::-:::::::::::.................:::-:--=+*###=--+*+#=*#@%**#%%%%%@ %:.......:# *...::::::::::::::::---------------
---=@@%*##==++--::::::::::::::................::.:=+*#%%%@@@+=-=--+**+* #*#%@%%%@@@@@@@@ #+-=:.+@ #.....:::::::::::::::---------------
----+=---------::::::::::::::::..............:.-+#%%%%@@ -:-:-*#%+#* #*#@%%@@%%%%@@@@@ @@ #......:::::::::::::::---------------
---------------::::::::::::::::.............-=*#############:----#*+*%* #*##%%%%%%%%%%%@@@@@ @@@ *.......:::::::::::::::---------------
----------------:::::::::::::::...........=*++=--:-==++***##-===**::*#% %#%@%%%%%%%%%%%%%%@@@ @%#**+% +........:::::::::::::::---------------
----------------:::::::::::::::.......::-=-:--+*#%@ @@@%=-+*#--+## @@#%%###%%%%%%%%%%@@@ @%###%@@@@#-.........::::::::::::::::--------------
-----------------::::::::::::::....::-:::-+*##%%%@@ #====+**@ %-=+*##%%%%%%%@@@@%%####%@@ =..........::::::::::::::::--------------
------------------:::::::::::::..:...:=+**##%@@ #*++**@ @#%+-::--========++*#%@@ %*...........::::::::::::::::--------------
------------------:::::::::::::.::.-=***#%@ @#@*##%@#**@ @#**##*++===++**#%@@ @+--........::::::::::::::::--------------
------------------:::::::::::::::-+***%@ @@@ %#%***##+===#@%##***##%%%%%%%%%@@@@ @@@@#=:.....::::::::::::::::---------------
-------------------::::::::::::-+**#@ @%@@@ @#%****# ==::=*%##**####%%%%%%%%%@@@ @%##%%@ %+-....::::::::::::::::---------------
-------------------:::::::::::=%#% %%%%@@@ ##%****#%@=-::-*###*####%%%%%%%%%@@@ @#++***#@ %%+:..::::::::::::::::---------------
--------------------::::::::-#@ %%%%%%%@@ #*%*****%%#@--:::+#######%%%%%%%%%@@ %+-===+**% @@@@@#:..:::::::::::::::----------------
--------------------:::::::+%@ ##%%%%%%@@ %+%#*****@## %-:..:*######%%%%%%%%@@@ %=:::--=+*#%%@ %=:::::::::::::::::----------------
--------------------::::::-%@ @##%%%%%%@@@@ %=*%+*****%#% *:...:*#####%%%%%%%%@@%=::::::-=+*%@ @*:::::::::::::::----------------
---------------------::::-:* %##%%%%%@@@@@@#-+%+++*+*%##@@ =...:-#####%%%%%%%@@+::::::::-+#@ @@ @=:::::::::::::----------------
---------------------:::-::= *####%%%%@@@@%%*-+%=++++++@*# @ :.:::=####%%%%%%@#:::::::::-+@ @%=::::::::::::----------------
---------------------:::::=% @-:.#%%%%@@%#**@=:+#-==++++*%*# #:::::*####%%%%%+::::::::-+% @@ @@ @#+=-:::::::::---------------==
---------------------::::-% *+:.:%%##*+++*+::*+::---==+#+*% +::::-####%%%%-::::::::=%%%% @@@ %*-::::::::---------------===
---------------------:-.:# @..-..++++++*+-:-*=:-:.:::-+#++ :::::=###%%#:.::::::-*##% @ %#%@@@ #+-:::::::-------------=====
-----------------------:= @ +..:=:=#%%@*-::++:::-::::--*=+* *:::::+%%%*....::::+#*#@ @#+***#%@ @%%%+::::::-------------=====
----------------------:-#@@ :..:==+@ *:.:=+::.-:.:-::-#-=+ -:::.-:=#:....::-***% %===+++*# @@@ @@ +:::::-------------======
----------------------:=#%@ ...:=++#*..-+--::::.-:.--*--=% %.:::::+*=....:=**# @@@@ @=::-=++*%%@@@ @@ @-::::--------------======
-----------------------*@@ @..:-=*+##..:*::.-:::-:-=*-:=# =..::.=+#....+**% @@@@@@+:::*-=+*#%@ =::::--------------=======
-----------------------%@ @..-=+*+#%..:*.:::.-:::=*-:-# %..:::=*=:..+**@@@@@@@#-::::=-=*%@ %-:::--------------=======
----------------------#@@ ::=+*#+# ..:+--:::-:=+*::-* -..::--:::*##@@@@@@@=::::::-=#@ *::--------------========
---------------------*%@ =-=+*#+#@-.::*.:+***+=::-# %..::::::*%% %@@@@#:::::::=#@ =---------------========
--------------------+%@ %-=+#%+%@*:::++=-::::::-# @ -..::::#@%@@@@@@+::::::-#@ =--------------========
-------------------=#%@ *=*%#*@@%::::::::::::-# @@ #...::#@%%%% @%-:=::::+@ @=------------=========
-------------------*%@ #%@%@ =:::::::::-=# @@@ @....* %#%%%@*:::*=:-#@@@ @=-----------=========
------------------+%% #* #::::::-=+*% @@@@@ #*:..=@%%#%%@=...:-:+%@@@ +----------=========
------------------#@@ @ %=-=+****% %%%@ @@@@@@@@@ @#%-:.-@%###%@=....::*%@ @@ @@ %=---------=========
-----------------=%@ %++#%####%%%@%%%% @@@@@@@@@@%#%%..:%@**#%%-:....-*#@@@@@ @@ @@%#%%#+--------=========
-----------------#%@ %=+#*#####***#%%%# @++*@@@@@%##%@-..==#*##%-::...-*%@@%@@ @@@@@ @@ @@%@@ @#-=------==========
----------------+%@ %=-**+********#%###@ +::..:#@#*##%@+....:**##-::::.=*@@%%@@@@%@@@@ @%#%@ @*=-----===========
----------------#%@ #-:=+-==++*****#%*##% =+-:..=#+*#% :.....+**::-:::+#@%%%@%%@@#%@@@@ @#**##@@ %+=---============
---------------=%@ @+:.-=:::===+****#@+**# +..--.-*+%@ %......=+:::*::*#@%%%@%%%@@#%@@@@ #+===+*#@ @*----============
---------------#@@ @@@@@ -...+-.:---=+++*#@+++* %-...--:=# @ #:.::..-:.::::*@%#%% %%%%@@@%@@ #------=+#%@ @*=--============
---------------#@ @@@@ -:..:+::--==+#%#*=--+ *:...-=--% @ %:::::-..:::*@@#%@@%%%%@@@ @@@*---::=--=+%@@%#%@ @@@*-=============
------:::------:# @@@ +-:::+-::=##+=:::::=@ +. .:-+=-# %::::-.:::*@%#%@%%%%%@@@@ @*--:::::===*#***#%@@ @-=============
-----::::::---:::*#@ @@@@@ %=::::#**=::::::::-# =...:=*+=*@ =:::::::*%%#%@@%%%@@@@@@#=-::::::::=+=+*%@ @ %-=============
----:::::::::-::-* @%%%@@@ +=:::::::::::::::+ -...=+**+#@ *:::::.+#*#%%@%%%@@@@@%=--:::::::-=-=#@ @#+%@ +---===========
---::::::::::-::+#@%%%%@@ #+-::::::::::-=+#@ ######.:.:=+##+#@@ :::::-*:#%#%%%%%@@@@+:::::::::--:-# @#=---#@ @ #-------========
--:::::::::::-::*@%%%%@ @@%#*+==**-:::::-=+**#@ +.......-.-+*##+#%#%%@ =:::::::+##%%%%%@@#::..:::::--:=% %+------+%@ @@%=-------------==
--::::::::::-::=*@@@@ @%#*+=-----::+#*--+*######@@*=:.......::-+*#%*#######%@#:::::::=#%%%@%@%=...:=::::-:=% #=---------*%@@@@@=----------------
---:::::::::-::+# @%*==----------:-##########*=-::::::......:-+#%#*%@%######@-::::::=#%%%@@*-:....-::-:-*%%@*------------=#%%@%=-----------------
---::::::::::::*%@%#*=--------------::+######+=:::::::::::::::..:# %*%@@@@@%###@*::::::=%%%@@=::......::-+**#*---------------=#@#-------------------
----::::::::-:-**+=-----------------::-*##+-:::::::::::::::::::..%##@@%@@@@@@@#*@::::::-%%%#::::.....::=****------------------=+--------::----------
-----::::::::--+-:-----------------::::--::::::::::::::::::::::::# @#####%%@@@ @%-::::::%@+::::::....-****=---------------------------::::----------
------:::::::::::::-----------------:::::::::::::::::::::::::::::=%#@**####%%@ +::::::*-:::::::::.+#**=------------------------:::::::::::--------
--------:::::::::::---------------------:::::::::::::::::::::::::-##% +*####%@@ %::-*%=::::=:::::-#%#+----------------------:::::::::::::::::------
---------:::::::::-:---------------------:::::::::::::::::::::::::+%% @+####%%@ @=# %**::::*::::+@@*-----------------------::::::::::::::::::------
----------::::::::-------------------------:::::::::::::::::::::::=%%@ #*####%%@ ##--.::::::# %=-----------------------::::::::::::::::::::-----
----------::::::::---------------------------::::::::::::::::::::::=*#+-+*####%@ @ %#*--.::::-% #------------------------:::::::::::::::::::::-----
------------:::::-----------------------------::::::::::::::::::::::::::-*####%%@ %*@=--:.:.-@ *-------------------------:::::::::::::::::::::-----
--------------::::------------------------------:::::::::::::::::::::::::+*####%% %*@@----..= @=-------------------------::::::::::::::::::::::-----
---------------------------------------------------::::::::::::::::::::::-*####%%%* #----:+ %---------------------------:::::::::::::::::::::------
---------------------------------------------------------:::::::::::::::-+%###%%%@ %-----#*----------------------------::::::::::::::::::::------=
+=-----------------------------------------------------------:::--::-----+*%%%%%@@@@@@----------------------------------::::::::::::::::::::-----=++
+++=---------------------------------------------------------------------+##*++#@ @+---------------------------------:::::::::::::::::::----=++++
++++=------------------------------------------------------------------...:::==*@@ @ %#--------------------------------:::::::::::::::::-----++++++
+++++=-----------------------------------------------------------------:::-*%@%#% %% @@ %=------------------------------::::::::::::::::-----+++++++
++++++=-----------------------------------------------------------------=#%@@@@@ #*#@@ %------------------------------::::::::::::::-----=++++++++
+++++++=-----------------------------------------------------------------=#%@@@%+++*% +-----------------------------::::::::::::-------+++++++++
++++++++=------------------------------------------------------------------+%#=--=+*%@ %-----------------------------::::::::::--------=+++++++++
+++++++++=-------------------------------------------------------------------::::*@@*% @=----------------------------:--::::----------=+++++++++*
+++++++++=-------------------------------------------------------------------::=%@ %#@ +=--------------------------:-----------------+++++++++**
++++++++++-------------------------------------------------------------------=*#%@@ #% *=-=--------------------------------------===+++++++++***
+++++++=++=------------------------------------------------------------------=*#%%@ @#@ %#+=====--------------------------------=====+++++++++****
*++++++++===----------------------------------------========-----------------=+#%%@ #@ %%========-----------------------------=====+++++++++*****
***++++++++==---------------------------------------============-------------=*#%%@@ %@ %@#=======-----------------------------=====+++++++++******
****++++=------------------------------------------===============-----------+*#%%@@ @ @ +=====----=-------------------------======++++++++*******
****+=---------------------------------------------===============----------=*#%@@@@ @% %===========-------------------------======+++++++********
***==-------------=-----======----------------------===============----=---=::-=#%@@ @@ +============------------------------=======------==+*****
*+=----------------==--=========--------------------===============-------+####+=+%@ @ #==============-----------------------==-------------=*****
**==----------------==-==========-------------------=================-===.-*#*+++*+# @ +==============-------------------------------------==+****
****+=---------------=============-----------------====================:-::---=+:=+*@ @%============-==-------------------------------------=-=**##
#*****+=--------------==============----------------==================-::::===-::=*%% *=============---------------------:-----------------===*###
###*****=--------------==============----------------=================::--:::::::+@ @@ +=============------------------------------------======*###
####*****+=------------===============---------------================:-:=:--:::-+@ @@@==============-----------------------------------=======####
######*****=------------==============---------------=-=========+====::---+#*+*#@ @%==++==========----------------------------------=======*####
#######*****+------------==============----------------==============:-=:=*#%@@ @@%%==+=+*+===---------------------------------=========*####
########*****+-----------===============---------------=======+===+==:-=:+%%%@@ @ @@%##%##===-----------------------------------========**####
#########*****+------------==============--------------=-===========:-+=-*%%@@ @@%%#%*+==-------------------------------------========***####
##########*****=--------------===========---==----------=--=======---.:=+*%%%%%###@ @%@%%%@#=--=----======------------------------=========+***#####
##########******=---------------==========--===---===-=-----======+--=-----=++*#% @%@@%%%@@###+=-==========-:::::-----------------==++++++****######
##########*******----------------=========-=====--=====-----========-=+#*++%@@ @%@%@@%%%%@@#+---========--::--------------==------===++******#######
##########*#*****+-----------------==============-=====-----========--==+++*%%%%%%@@%%%@%@+----=======----------------------===========+****########
##########*#*****+=-----------------=============-=====-----========--===++*#%%#%%@@@@@@@*----=+====---------------------======++===++****##########
##########*#*****+=------------------====================--==========--==++*#%#%%@@@@ @@@=---=++===-----------------------====++++++******++++++####
##########*#*****++-------------------===============================--==++*###%@@@@ @@@%----+++==------------------------==++++++*****+=====+++*###
##########*#*****++-------------------===============================--==++**#%%@@@@@@@@%----++==--------------------------+++++******+====+***#####
############*****++--------------------==============================--==++**#%%%@@@ @@ #-===++=----------------------==+++++++******===+*##########
###########*****+++---------------------=============================--==+***#%%%@@@@@@ *+++++=--------------------===+++++++*******==+#############
###########*****++=---------------------============================+--==+***#%%%@@@%@ @*++++=-------------------====+++++++*******++*##############
#%%%#######*****++-----====-------------============================+--==+***#%%@@@@@ @%*+++==------------------====+++++++*******++################
****#######*****++====++++====-----------==========++===============+--=+++*##%%@@@@@@@#+++==-----------------=====++++++++*******+#################
+++++*#####****++++++++=-------------------==+===++++++++============-==+++*##%%@@@@@@#+++===----------------=====++++++++*********#################
++++++++###*****++++=------------------------===++++=+++++++=========-==+++*##%%@@@@%#++++===----------------====++++++++**********#################
++++++++=+#*****+++=--------------------------=====+=+++++***======+--==+++*##%%@@@%#++++====----------------====+++++++++==++*****#################
+++++++++=+*****++=----------------------------=+++==-++++****+=====--==+++**##%%@%#+++++=--------------------==+++++++==========++*################
*++++++++==+****+=------------------------------=++++=--=++****====---==+++**#%%%%#+++++------::--------------==++++++--============+*##############
*++++++++===+***+=--==---------------------------+++++++==-==+*+===--===+++**##%%#+++++=-=====----------------==++++=---==============*#############
%#*++++++====***+=---=----------------------------+++++++*+==+*+==---====++*###%#*++++=========---:::--------===+++=--================++############
%%%#+++++=====**+==--==---------------------------=+++++++*+=+*===--====+++*#####++++++=======--::-----------===++=---===============+++*###########
%%%%#*++++====***===-==----------------------------++++++++*==*+=--=====++*#####*++++++====--::-----------------=---=================++++*##########
%%%%%%*+++====+**+=====----------------------------++++++++*==+*=-======+*#%####*+++++===--:-----------------------==================+++++##########
%%%%%%#+++=====****====----------------------------=++++++++==+*#+=+==++**#%####*++++===--------------------------===================+++++##########
%%%%%%%#+++====*****+===---------------------------=++++++++==+**##*+++**#######*+++==---------------------------==================+++++++##########
%%%%%%%%++++===+******+=--=-------------------------++++++++-+++**##****#####**#*+===---------------------------==================+++++++*##########
%%%%%%%%++++++=+*********+=-------------------------++++++++++++***##*****###****==----------------------------==================++++++++###########
%%%%%#*++++++======++*******++====---------------------==++++*++****#************=-----------------------------==================+++++++*###########
%%%**+++++++++=========+********+++++---------------------==++*******************=--------------------------=--=================++*+++++############
%%**#####**+++=========-=+*******+++=------------------------=+*****************+---------------------------=-=================+++*#+++#############
%%%%%%%%%%%%#*+============*******+++---------------------:::-=+***************+----------------------------=-================+++++##*##############
%%%%%%%%%%%%%%##+==========-+*****+++=--------------------:::---+**************-----------------------------=================++++++#################
%%%%%%%%%%%%%%%%#*+===========**++++++=--------------------------=************+-----------------------------=================+++++*#################
%%%%%%%%%%%%%%%%%##*==========-==---=+++=--------------------------+++++++++=------------------------------=================++++++####%%%%##########
%%%%%@@@@@%%%%%%%%%##+=========-=======++++===----------------------++++++=-------------------------------================++++++*###%#%%%%%%########
@%@@@@@@@@@@@%%%%%%%%#*==========*****+++++==------------------------=+++--------------------------------=====+==========+++++*####%%#%%%%%%%%######
@@@@@@@@@@@@@@@%%%%%%%%*=========+*****++++++==-------------======----=+------------------------------===++++++++======+++**#####%%%#%%%%%%%%%%%####
@@@@@@@@@@@@@@@@@%%%%%%%#+========******++++++===---------=+++++++===--=--------------------------====++++++++*+******##########%%%%%%%%%%%%%%%%%###
@@@@@@@@@@@@@@@@@@@%%%%%%#+++=====+#*****++++++++=-----===+++++++++++==----------=------------=======+++++++********###########%%%%%%%%%%%%%%%%%%%%#
@@@@@@@@@@@@@@@@@@@@%%%%%%*+++++==+##******+++++++=======++++++++++++++=---=-----=+==------========+++++++++******###########%%%%%%%%%%%%%%%%%%%%%%%
@@@@@@@@@@@@@@@@@@@@%%%%%%%++++++=+###*******+++++++====++++++++++++++++========-=++++============+++++**++**+**###########%%%%%%%%%%%%%%%%%%%%%%%%%
@@@@@@@@@@@@@@@@@@@@@@@@%%%#+++++++#####********+++++==*****+++++++++++++=========++++++++========+++++**++*+***########%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@@@@@@@@@@@@@@@@@@@@@@@@@%%+++++++%######***********+****************++++=========*********++++++**++**++******##########%%%%%%%%%%%%%%%%%%%%%%%%%%
@@@@@@@@@@@@@@@@@@@@@@@@@@@@*+++++*%%#######*****************************+===+**********************+******#*#####%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@@@@@@@@@@@@@@@@@@@@@@@@@@@#+++++#%%%%##########*************************++****************************########%%%%%%%%%%%%%%%%%%%%%@@@@@%%%%%%%%%%
@@@@@@@@@@@@@@@@@@@@@@@@@@@@#++++*%%%%%%#################*###*****************************************########%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@%%%%%%%
@@@@@@@@@@@@@@@@@@@@@@@@@@@@#+++*%%%%%%%%%%##########################****************************###########%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@%%%%%%
@@@@@@@@@@@@@@@@@@@@@@@@@@@%*++#%%%%%%%%%%%%%#############################*################################%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@%%%%%%
@@@@@@@@@@@@@@@@@@@@@@@@%%#*##%@%%%%%%%%%%%%%%%##########################################################%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@%%%%%%%
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%####################################################%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@%%%%%%%%%
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%#%%%%%%%%#####################################%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@%%%%%%%%%%
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%#%%%%%%%%%##################################%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@%%%%%%%%%%%%%%
{{{{{{{{{{{{{{{{{{{{{{{{{{{111111111{1{{}[}{[[[[}}}[}}}}[}}[[[[}[}[[[[[[[[[[[[[[}}}}}{{{{{}{{{}{{}}}}}}}}}}}}}{{{{{1111)11)))))))1111111{11111111{{{
{{{{{{{{{{{{{{{{{{{{{{{{{{{1111111{{{{{{}[}}}[[[[[[[[[}[[[[[[[[[[[[[][[][[[[[]][[[}}}}}}}{{{{{}}}}}}}}}}}}}}}}}}{{{{1111111)))))1111111111111111{{{{
1{{{{{{{{{{{1111{{{{{{{{{{{111111{{11{{{}[[[[[[[[][[[[[[][[[[[[[[[[[][]]]]][[]]]][[[}}[}}}}{}}}}}}}}}}}}}{{}}}}}{{{{{{11111111))11111111))11111111{{
1{1111{111{{1111111{{{{111{111111{{{{}{}[[[[[[[[]]]]]]]]]][[[[[[]]]]][]]]]][[][]]][[[[[[[}}}}}}}}}}{}}}}{{{{}{}}}{{{{{111111111111111111))))111111{{
11111111111{1111111{{11111{111{1{{{{{}}}[[[[[[]]]]]]]]]]?]]][][[]]]]]]]]]][[[][[]][[[[[[[[[[[}}[}}}}}}}}{{{}{{}}{{{{{{111111111))1111111))))1111111{
1111111111111111111111111{{{{{{{{{}}}}}[[]][]]]]???????????]]]]]]]]]]]]??]]]]]]]]]]]]]]][[[[[[[[}}}}}}}}{{{}}}}}}{{{{{111111111)111111111)))))))111{
1)))111111))))111111111{{1{{{{{{{{}}}[[][[]]]???????????-?????]]]?]]]?]??]]]]]]]?]]]]]]]]]]]][[[[[[}}}{{{{}}}}}}}}}}{{111111111111{1)))111)))))))111
)))))11111))))11111111{{{11{{{{{}}}[[[[]]]]]?????---------?????????????????????????????????]]]]]]][[[}}}}}}}}}}}[[}}{{{111111111{1{1)11111)))))11111
))))))))))))))))11111{{{{1{{{{}}}}[[[]]]]?????-----__-_------?????--????????-????---??????????]]]]][[[}}}}}}}}}}[[}}{{{{1111111{11{1111111)))))))111
))1)))))))))))))11111{{{{1{{{}}}}[[[]]]???-----__-______-_------?----------------__-----------????]][[[[[}}[[[}}[[}}{{}{{{111111{111)11111)))))1)111
))))))))(((()))))1111{{{{{{{}}}}[[]]]?????---_______+__[?_-_------__-__--____-____+___________--????]][[[[[[[[[}[[[}}}}{{{{{{{1{{{1111111)))))))1)11
))))(((((((())1))11{{{{{{{{}}[[[[[]]???----______+__+++/c}[__---___________+___++++++++_++++____---???]]]]]]][[[[[[[[[}}[[{}}}{{{{{111111))))))))111
))))(()((()(())))11{{}}}}}}}[[[[]]??----_______+++++~+]YdQZ)?__+_++++++++++++++~~~~~~+~++~~++++___----????]]]][[]][[]][][[}[}}}}}{{{{1111))))))1111{
))))(((((())))1)1{{{{}{}}}}}[[[]????----______+++++~~?xmdh*h0n(_~~++~~~~~~~~~~<~~~~~~~~~~~<<~<~~++__---??-???]]]]][[]]][][[[[[}}}{{{{1111)111))11111
))))(((((()))))11{{{{}}}}[[[[]]????---______++++++++]|Xwqdh*#&hL}+~~~~<<<<<<<<<<<<<<<<<<<<<<<<~~~++___--??-???]]]]][[]][]]][[}}}}}{{{1111111))111111
))))(((((())))111{{{{}{}}[[[]]????----___++++++~~~~(|rLOmqdhaW8MhY)~<<<<>>>>>><>>>>><<>>>>>>><<<~~++++_----???]]]]][[]]]]][[[[}}}}{{{{1111111))11111
))))(((())))))111{{}}}}}[[]]]???----____+++++~~~~~-|jzLQ0ZqdboM@8WbX~>>>>ii>i>>>>>i>>>>iiiiii>><<<~~+++___---???]??]]]][][[[[[}}}}}{{{11111111111111
)))))((())))1111{{}}}}}[[]]]???---_____++++~~~~~~_1tcULQQ0wqpa*B$@@&X~iiiiiiiiiiiiii>>iiiiiiiii>><<~~~~+++__-?)/xczXcx)][}[[[[[[}}{}}{{1111111111111
))))))))))111111{{}[}[[[[]]???---____+++~~~~~~~~<)/uXJLQQ0Zwqko&@ #niiiiiiiii!!i!iiii!!!ii!iii>>><<<<~+++[/UJQ0OZZZZZU|}[[[[[[[}{}}{{1111111111111
)1))11)))){{111{{{}[[[[[]]???----___+++~~~~~<<<<-tjzUCQQQQZwqdoW% %a+!!!!!!!!!!!!!!!!!!!!!!!!!ii>>><<<~~)YLOZmwwqqqqqwwz}[}[[[}}}[}}{{111111111111
11))1))))1{{11{{{}}[[[[[]???--____++++~~<<<<<<<<{(uXJLQQ00mqpb*W% $%X>!!!!l!!!!!!!!!!!!!!ll!!!!ii>>>><~jCOmwqqpppppddpppQ{[[[}}{}[[}{1111111111111
111111111{111{{{}}}[[]]]???---___+++~~~<<<<<<<>>\/cYCQQ0OZqbba*8$ @k!lllllllllllll!!llllllllll!!iii>>~/rzJLQ0Omqdkho#% b1lIllllllllllIllllllllllllll!iii|0wqpppdddbbbbkkkkkkkZ{}[[[[}{11{{{{111{{1111
{{1)){{{{11{{{{}}}[[]????---__++++~~<<<<<>>>>>>]tuYCL00mqdka*#W@ WrIIlllllIIIIIIlllllllIIIlIll!!!>Qwpdddbbkkhhhhhhhhaaaac[[[}}{{}{{}{{{11{{{111
{}{))1{{111{{{}}}[[[]????--__++++~~<<<<>>>>>>>i-)cULQOZqpba*#WB$ @J!IIlIIIIIIIIIIllllllIIIIlIll!!\qdbbka*#MMMMM#oaaaaaaod([[}}{{[}{{}}{{1{{{111
{}}{11{{{{{{{{}}}[[[]?-?---__+++~~<<<>>>>>iiiii1txJQOmwdkh*#WMW&B$ p* q-IIIIIIIII;IIIIllllIIIIIIIIll~0bhhh*MWWWWWWWWWMoaaaooaz[[}}}{}{}}}}}{{{{{{{1
}}}{{{{{{{{{{}}}[[[]]??--___+++~~~<<<>>>iiii!!!1xcU0Zpdka*#q)-uaW@ M)J%8cIIIIII;;;;;IIIIlIIIIIIIIIIll1baoo#WWWWWWpLQk&&W*ooooam1[[}}}{}[[[}}}{{{{{{{
}}{{{{}{{{{{{}}}[[[]?----__++~~~~<<<>>>iiii!!!i[xJ0Opdho*a/"^:IU*% u0uZB]IIII;;;;;;;IIIIllIlIIIIIIIIIfko*WWWW&&O]<<~~uWWW*oooak/[[[[[}[][[[}}{{{{{{{
}{}}}}}{{{{{}}}[[]]??---__+++~~~<<>>>>iii!!!!!!(rCwdpb*#p_^^"I<1*W$[aXC#?II;;<;l_;;;;;IIIlIIIIIIIIIIIva*&&&&&&O>>><<<~QWWMoaahhu[[[[[[[[[[[}}}}{{{{{
{{{}{{{{{{{}}}}[[]]??--__+++~~<<><>>>iii!!ii!!!-vQpkbh*d;^^^(d0)0#a\dzmk]}}~!(/c{?<;;;;IIIIIIIIIIIIIIL#&8888&M_iii>><<1MMM*aahkX][[[][}[][[[}}}}}{{{
{}}}1{{{{{{}}}[[[]???--__+++~~<<<>>>iiii!!!!!!l!td+:"iUf^^^/qLprca*ZmaBamqbnfCt\1zjLr{lIIIIIIIIIIIIIId8%%8888O!!!i>>><>>iiii!!!!!!!!?0]�^^^,^^-mp#vczk#@BBBBqp&ZcI>{<><<0M#bmZO0t?]][][[]]][[[}}}}}}}
{}}}}}{}{}}}}[[[]???--_+++~~<<<<>>>>ii!!!!!!!!!!!]Y>{l^,^!mCXq|vLk#@ %$%p*o_|]~-__~rQM$$8L_IIllIIIIIIO%%%%%%8fll!!iii>>p##kwZmZ)??]??]?][[][[[}}}}}}
{}}}}{}}{}[[[[[]]??--__++~~~<<<>>>>iii!!!!l!!!l!ll!\mOQ>;_vw[>UjCa#$B%BkhB~~wt~{vv}[|mqB BarIllllIIlluBBB%%%%nIl!!!iii>>>iiii!!!ll!llllllli0j#v^,;)j_?rYa&$%Mkh@U"{OqurOk!-jpbX8 @aXlllllllI{BBBBB%%CIll!!!ii>/ooahkZ]_--?{(?1[)/nqvm*8|}}}
}}{{}{{}}}[[[[]]??-___++~~<<<>>>iiiii!!lllllllIlllll)r)t^^""^+!1X#$$8qkB |�|COpdqh/;[UL[O $dZ|llllIIIl#BBBB%%#llll!!!ii>zhabm}+_--]cCc[~|xzoQp8%u}}}
}}}{}}}}[[[[[[]]?--__++~~~<<>>>iiiii!!!lllllllIIIIII}-l,�^:"^_I?Q8 &qb8 t.{Q0Zpqdkr;,i-d @JbilllIIIIzBBBBB%8tIllll!!i>>>>ii!i!!!lllllIllIIIIII{!^^l~/^^+:?a$WqbW $8J.^0OmqqwdqpZmaMBB@%dtlllIII!~wqpaM%%o>IIll!!!ii>_<~~]tv0pUJpvvzUMkov[[}}}}
{}{{{}[[[[[[]]??--__+~~<<<>>>>iii!!!llllllIIIIIIIIII]1�^":^,i^,X8awdW%@8o%].+ZOmqddbpdqbka%@BkOlll(}_-[1()/OvwWOIIlll!!iii+\v0qqdha*M#CLmW#t1]][[}}}
}}}{{}[[[[[]]]??-___+~~<<<>>iiiii!!!lllllIIIIIIIIIII!>"^<*dqp#&BMM&@#I.>0OmqwqpqdddbkhWWkllcmQLm&@@$ka\~-)?+~[_!i{xLqwpka#WM*awJUQbZ/?]]][[}}}
{}}{}}[[[[[]]??--++++~<<<>>>iii!!!!llllIIIIIIIIIIIIIIl?-i^^"^~Oqqpo&8o*#B$ oI.^twppmpdwqphd&b Cl||lI1# @$@Y~l!!!_UM&hUv0qdh*MMobLx))Cw1-?-??]]]][[}}
}}}}}}[[[[]]??--_+++~~<<<>>iii!!!!lllIIIIII;;IIIIIIIIIl_Lwt[m*wwqhM#WbM*$ 81..^{Yd//whkdaaB8t?-",)8$&M#p>!!!iv8kLQO0JcaW#hZv(_~++_-?-----??]]][[}}
}}}}}[[[[[]]?--__++~~<<<>>iii!!!llllIIII;;;;;II;;IIIl>]Jb Bp8wwwb#k%*h@h 888w+..�:-rzOXQZo*Zm1��]8@Mhhp>,:;><<~~++____---??]]][[[}
}}[}}[[[[]]]?-___++~~<<>>iiii!!!lIIIII;;;;;;;;;;;;IIIl[Y8$ Mmwwp#ak@k#@a MZZk&88d\><~}v{fCLQbdC�.:M@#qmw-���la QQZ0000dUc?!ii>><<~+++____---??]]][[[
[[[}}[[[[]???-__+~+~~<<>>iiii!llllIIII;;;;;;;;;;;;;III+Q#8$wwwqoMbM&b*8WBwQwkwd&B$%oOOJYqh#Mbp-..UB&ZQ0x...�w aCphdddddbXf!!i>>><~~+++___---??]]][[[
[[}[}[[[[]]??-_+++~~<<<>iii!!!lllIIII;;;;;;:;;;;;;;I;I?Z*oZZwwb&od&okb&B#LYxUOwa8$WW8 %00m"�i%BJtCLI...u &OOh**hhhb&mZi!ii>><<~+++____--???]]][[
[}}[}[[[]]??--__++~~<<>>ii!!!llllIIII;;;;;::;;;;;;;;;IuCZJZwwq#MhhWkbhW*Lx/ucQmh8@@@WMB &0LX:,vB#{{Jj���+%%MLda*oM#aW$8&}iii>><<~~++____---??]]][[
}[[[[[[[]]??--__++~<<<>>ii!!!!lIIIII;;;;;:::;::;;;;;;}J00ZwwpbWhb*obp#*LrfrcCLmkM@ #{:\b%Bd0tllk@L+|J]I;:Z$&mZho*oM&&WWWWv>>>>>><<~~++___---???]][[
}[[[[[[[]?----__++~<<<>>ii!!!lllIII;;;;;:::::::;::;;;nLOZmpk*Mokq*bpdWOucnxtfuLqW@ bjUc|nmMo[!+8%uIfJ!!![BBZQpa*#M#ooakkkd/<>>>><<<~+++___---??]]][
}[[[]]]]]?----__++~<<>>>i!!!!lllIII;;;;::::::::::::::i[1Xp#M#okpdhpqaa0Uf//fYpabh#@ 8LOnc0hWo+!}B8/lun!!!X *JOh*#MWMM##*akbd{>>i>><<~~++___---??]]][
[[[[][[]]?----__++~<<<>>i!lllllIIII;;;:::,:::::::::::,,,,w&okkdqbdqpWoL|)\truccZb#@ WqhMB&pQxl:1@&[+Q/!!!h$Q0p*MWWW&WWMo#*hhO>ii>><<~~++___---???]]]
[[[[]]]]???---__+~~<<>>ii!!lllII;II;;;:::,:::,,,:::,,,,"Idqpdpqqbqqa&m)][]]{|truJOo$&BhZu[+",,.]%8{|Q|!!-&m0moM&&8888%@BM#MM*riii>><~~+_____---??]]]
[[[[]]]?????--_++~~<<>>i!!!lllII;;I;;::::,,,::,,,,,,,""?18hmmwwpdwd8pt_+++_]1/juU0M %z?:��^^^I"-W800Z|](zLOqaW88%%%%%B B*MW8hviii><++_____----??]]]
]][[[]?????--__++~~<<>ii!!!llIIII;I;;:::,,,,,:,,,,,,"lY)x8akmwwpqbWqt_+++_](fzQmpo8@ /�����^^>i-oBdwLCQOmph*W8%BBB%BB$ BMW&BoW)i>>~++__+___----?]]]
]]][[]?????--__++~~<<>>ii!llIIIIIII;;::,,,,,,,,,,,,""U8(vB$8Zwmk*&Q1++](||\\//tcUQp% Z,�����^i[+k&qUL0wbo*#W8%BBBBBBB$ 8M&8&&%0><<~+~+_____----??]]
]]][[]?????--__++~<<>>ii!!llIIII;;;;:::,,,,,,,,,""""_# rJ$ d&B#*Ci>+}{?_+_?]1tvLqM%$0�������:r\Q*XLwaW8B@$B%%BBBBB@$ W#W8*8@m><~~+++_____----??]]
]]]]]]????---__++~<<>>ii!!llIIII;;;::::,,,,,,,,""""^vM#w*$@k8B 8%@?,i><+++_?{/nQhB M~������^)QUbJa$ $8@ $@@@$$ @dMW*8B)><<~++_+++___---??]]
]]]]]]???---__++~~<<>ii!!llIIII;;;;::::,,,,,,,"";+_-<;[O @$*M8%*pMB|li>~_+?{(fnJk&@ @0,������^+Low %&(+]M@@@$@B8&%&&8##M~?f#%o-><<~~+++++___----?]]
]]]]]]???-_-__++~<<>>ii!!llIIII;;::::,,,,,,,:~__<,",,I-0B$@BM8MQYjL%+!<{rr(ncCaB#B@8MW|];������^"}p*&%)~~b&%MBBBB@@ $WoMXl!mha&\><<~~+++++____---??]
]]]]]]???-____+~~<<>>ii!llIIII;;;::!!;,,,~__~,^",;_|Ja% WkbBBB$Wr}]+n~(LmdbOahh%B$ $o/�.�������^^,)LoL1[Yk0pUwb&@ aXUL<<~~++++++___---??]
]]]]]]??--____+~~<<<>ii!!lIIII;;ii>l!-_-_:^^";+(cpM@%qmo kULWB@%kr-_{}JUYC0qdo*MW$ \+..��������^^^^"-YuvOcvmUCk%8X{(c]Il!QqL\>><<~~++++++__----??]
]][]]]??--___+~~~<<>>ii!llIII;;><<~~++++++__----???
]]]]]???--__++++~<<>>ii!!lIII![nJ0)1CwQ|vmhWBaLzt}+"���"-��II!<;,....!izUL0mpdh#M% {....��������^^^^^"IjwYt1}}}}}/zrIIlll!!!i>><<~~++___+___---???
[]]]]???--__+++++_<>>ii!!!?/X0QOCxzcqba#@WZcf1]l����������.........."{LYJLOwpbh#MB mZn]"��������^^^^^^"",?/r\(\jXq%cIIlll!!!ii>><<<~+_______---???
[]]]???--___+++~|_ii-/z0JJC0wQ_fd##8MOr(}~"^����������..........>tq#8CCQZqdba*MB @h##oWO1�������^^^^^""""":U*oMBBB/IIlll!!!ii>><<<~++_______--???
]]]]???--_?_i<-?fvXzuLJzXUZwphW@@%%M% k[;^^^^^��������.�........l{QB $BQQ0mqdk*#M$ %&$Wbpqt�������^^^^^^"""""hBBBBBB[;Illl!!!ii>><<<~++_______---??
]]]]??---?l.�":?xXUzzY0wqk#% @8#bLmW$v^^^^^^��������.........I>><<~++________--??
]]]]??--_~.�^,;itjrQwdo&$ @%Moqn1tZ?-]"^^^^^^�������........._?"_{c*@ bmOzzLwdbdbbpZJnJOdf�����������^^^^^^^"Q%BBBBBp;;IIll!l!!ii>><~~+++_______--?]
]?]]?-[~!!��,l~~1rm#% $%W*aQj_;:,+(,"""^^^^^��������..........-]{vL&B$BkX,^";!<_[)/jv0k&u.�����������^^^^^^"}%%BBBBBn;;IIIll!!!!i>><~~+++___--__--?]
]??]{/j,�<^;]xcvxq$B&*owv)iI;;;::,,,"""^^^^^�������.........i{Xb\Xa8BWMdl;{uJZdh*##&%BBk-�������������^^^^^!*%BBBBB8<;;IIIlll!!!i>><<~~++___--__-?]]
]??nUJLi"<_(UOmpmb*pwc_!lllII;:::,,"""^^^^^�������.......�-uLmhpn(q@$@&11ZdooMWW&%$ BM&b(,�����������^^^^lbBBB@@BBU:;;IIIlll!!ii>><<~~++__+----??]]
??]jQww\<{JLqddbh0xf0-!!lllI;;:::,,"""^^^^^������....�?vzYOqd#@YvrfdW@W*bWhM*&@$8*W@ #@b(����������^^^>kBBB@@@@Wi:;;IIIllll!!i>><<~~+++_+_----?]]
???cZwb0YQoabbkMZ}hkni!!llII;;:::,,""^^^^^^������..;]Yqkho*WB@L\-1-XQc#MZZ#*hkhakdpM$ Wa @L,���������^)MBB@@@@@@|::;;IIIIlll!!i>><<~~+++___---??]]
???vbB MMWq8@%BO_>><<~~++++__-_-??]]
???{hWqvLZ}}jf[~<>>iii!!llII;;::,,"""^^^^^����l;^l1rY0pbkahan)]{[[fuunvBQvCq*wqk#W**M*#W8@ &0x~|<,xW%B@@@@$$$0:,:::;IIIIIll!!i>><<~~++++____-??]]
????/1--__++~~~<<>>>ii!!!lII;;;::,,""^^^^^��^l:-xZwqdkaM8B$B_i~i+X0dnZv%LzOobphhbqdkaao*#&%B$ %%ha%%B@@@$$$$J:,,:::;IIIIIll!!i>><<~~+++++_---??]]
?????---__+++~~<<<>>>ii!!llI;;;::,,""^^^^^�"](cLZOQCLQ0000QJ!_[?]LU/cdU&CcJLqbpqqqqqpbkhao#W88B $@%W##@$$$$Y,",,:::;;;IIlll!iii><<~~++++__---??]]
????---___+++~~~<<>>>ii!!llI;;;::,,"""^^^:|cxf([~<_}\jnzXXQQ?{1\Xz<<<~~++++___--?]]]
???----___+++~~~<<<>>ii!!llI;;;::,,""^;>])+i~[/vQdo&B@%&W#*k}[nz0]?rCZBWa0pwZOZmwwwqqqpdkha*&@ $&hqZOZba*ooJ-"""",,:::;;IIIIll!!i>>><<~++++___--?]]]
???-----__+++++~~<<>>iii!lIII;;::,,><~ili]/cQZqpboM8%BB@BB%&J)\\{fXY*B% @m]}rUOZmwwwwpbhaahkqOCJQqoW% $@ %$|""""",,:::;;IIIlll!!i>>><<~++++___--?]]]
???----___+++++~~~<>>>ii!llII;;::;:^,!}fzYL0qaWB$ $$@$$@$ $ZujruUo8@ $hZpx]ii_[1(())(||tnzLpoW@ 8pY""""",,,,::;;IIIlll!!i>>><<~++++___-??]]]
???----___+++++~~~<<>>ii!!lIII;:II:_\czUCqo%$ @@$%@ #ZhXCLd*0vva$*ZvYQLUnf||\tncU0whW%@$ Mn-],",,,:::;;IIllll!ii>><<<~++++___--??]]
???----_____++++~~<<>>>i!!!lII;l>]jvzYqM@@$ $$ %a*W&B m0qXzXJLf|)|CWqQJzXULZwpddbbbkkha*M%@ %oa*#Q)!,,,::;;;IIlll!!ii>><<~~+++____--??]]
????--_______+++~~~<<>>ii!!lII;_rvcOo$$8B$$$ $*ka#M&&B #QmUXXXC&|1!>}Xp0CUUJCQZmwwwqqppbhoW%@ $aq0OpkW$$kn+,,::;;IIIll!!!ii>><<~~+++_____--?]]
????---______++++~~<<>>>ii!lII\wLk$$ @@@ &qpdkh#W&8 @QCqzzYz0kM([!!]uOLJUJL0Zmwwwqqpdka#W8@ WCrnucUOa8 8dmfl::;;;IIlll!!ii>><<~~++++_----??][
????----_____++++~~~<<>>ii!l_0*8@ $ B$ $kmqpdbkaM&8$ OXdccczzqqZ#?+!l><~~~+++++-?--?]][
???----_______+++~~~<<>>iii/pW%$ $@B@ %ZZwpdbbkh*&8$wjqLvczvcaZQ&m_!:"IvLCLQOZmwwwqppda#W%q1<<<~~+++___---??]][
???-----______++++~~<<>>>>?dMB $@BB$ WLOwpdbkkha*W8b)UqnvuzcUk0p&&Y!^�^!ULQ0OZmwwwqppkoMb{Ii!!!i_{jUwM@ 8BB Wui;IIIlll!ii>><<~~~++___-???]]]]
???----______+++++~~~<>>>~>XB @@@@@ BwL0mqpdkhao*##Z]nprjrvxvq0QoWB ):�^I?QQ0OZmwwqqpbaofI!!!!!!i?/J#$%WW$ $$ W}IIIll!!ii>><<~~+++__--???]]]]
???-----______+++++~~<<>~!<)8 BB@@$ $zCQ0Zqpdkao*owqu~fm\t/trjnaXJ8W 8>";!>(O0OZmmwqqdhQ><<~~+++__--??]][[[
???-----______+++~~~~<<<;i)b$ $$@ #_;:Qmwpbh*dQYXa\ijQ?|\/t/fzmcQ@% Zll!!<<~~+++__--?]]][[}}
???-----_-____+++++~~<ivjI;_~+((/Zxup@B /!l!!~LOOZmwpq?l!!!!!!i|mkmk&%%BBB@BBMa*B @pX]>l!i>><<~~~+++_--??][[[}{{
???----_______+++++~~<-^!ii>>>~~~++__-??][[}}}}}
]??------_______+++~~~_I)&W&%B j..I1i|Qbkhz~I>/x!li_Ii>l--U)/U$@ Ull!!lxmmmc��^:l!!ifJXJ*%%B%&8%aJnucY0qM @8oddb/ii>><<~~~+__--??][[}}{}}
]??------_______+++~~~<+QaM8% I.�I}1/h8Y>,>|j<<~~~~+__-??]][}}{1{}
]???------___-__+++~~~<}0bW% &..">{rfZY^"+t+_l><<~~+++__--??][[}{{1{}
]???------___--___+++~~Y#M8 #..l-\vfQ0""ivI;"_ll!_!-1z+i{L$$$ $@@@$$ {::!!:|rC:^."/zzp&*oh#WMxi!>u-1jX0m*B $BB $)<<<<~~++++__--?]][}{{1111
]]??-----------___++~~-mM8$ W."_)rYfJd^,;U,>I;"-l;!|X~!?J@ @%88B@$$ k":;>>)v(I,^xzU*W*oo##L+!!!<(-1YmW$B8@ k~<<<~+++___--??][[}{{111)
]]????-----???--___+~+0hW@ ;!1tvJ/J8,,Ij_~Ii<_>)jz>!+UB$ $B8888%%@$ [,:Ii_+!l!XCOo*aao*o|!!!!!i~|LM$%&8@@@$ $$$ $Y<<~~+++__--??][[}}{{11))
]]]???----?-??----__+YbMB (-|jY0rO#[:IUwd%whhh*C(Q#$88$$&%BBB@ %)~~+++__---?]][[}{{11)))
]]]]????????-???-_-_rqo8 b-\xLmxqWU;llrj\]!IIl!!~C@@ 8W&888%%%%B _^,;l!i0hdhh#ha#/!!!!!!?CM@88%%BB@8%@$ %1~++___--??][[[{{{11)))
[]]]????????????---)ObW$ z|zdZUM*b!llI;;;;;Il!_L@$ #W&&888888B C�":I!ZMqpbk8ap_i{i!!ija%&8$88%B@$B$ W}++__--??]][[}{{11))))
[]]]????????????--]Yp*B $LkodM@ $(llI;;;Ill~1Z@ oMW&&88888$ *"^":Y8qOqbkWY;;iX}!-QM*W888%&B$ $@$$ $ W1__---?]]][[}{{11))))
]]]]]???????????--jqb& $ $$$$ QU$ $ O>!!ll>_}fud$ $8 @*MMWW&&&&& 8Oci�^|WbwQpbo\�",l?itdhWW&88%B8B@@$ &BB@ @$$ 8/_--??]]][[}{111))))
]]]???????????????Qo#@ $$@$@$$$$$ $ $%W8B%@p\?)jvYUYwB@%qqwM$ %###MMWWWW%hLd_!�~akJZZda{".�";i[lllfJ*bwwoddh*Ok#MMWB&&BWQuvJZhWB$B$ %mn1]][}}}{{{1)1)11
-___+_++____---)ko8 @BBBBBBBBBBB@@BhjI,]\>;>{)\fuuczJhnuXZ @ %f:^??:+vrmM p::::::)j!Iizl!uOawmqowqbh*Zd*MMM%BOt(|\fcLh&% BaU[[][{}}{}{111({{
___++~++++++__-LhW%$BBBBBBB88W#MWW&~"",/-"<+[]{fjxvChf/fY@$ p_..,][i{L8W$ QI:;;::~;:;i>!zhdOmk%dqdkh*akoM8&J[]--][)rCpMB$@B%B@@@@B*v\[[}}}{{{{11){{
__++~+~~~~+++_?O*8@ $@BM##M88B$ $-;::!x!<_[)(nJmLv}_?j8 $ Ui..,~\~+p&W@ k>;;;I~::;I!Y#*Zm*#kqdkhho8h*WU-_+!i{]]{xm*apZdM8&&&&&W*oc[}}}{{{{11)1{{
_++~~~<<<~~~++~lC8$8aoM%@B%8%B$ j]I;If+;>\QLx}iiii>{a $ n^ .I_j(]J&&8 k!I;I~:;I!U#kZpWbqbpkhhha%WU-~\}1XOUczJwaM%@@@B%%BBh[}}}{{{{111{{1
++~~~<<<<<<~~+!I>UO#$@Maha#&B@@$ p\>lliQzv((r\tzqM@$@%W&&&888&%q[}}}{{{{{{{}11
++~~<>><<<<<<_I!]U&%hpdkaoW&%B$ $x|!l!>>>><<<+!>tZWmwpboW%@$ $BB@B0x]!!!!!!!!!i_{tQW@CLJLZL:<.i|xJQjQMW&&8 8>l!!!!!i_-<[0B $MC(__]JM%%888W&0-?]][[[}}}}}}{{
++<<<>>>>>>><+![\rvvCW$@r:::::,:_�+/vQOnLwOwd*@ @)lllll!lfOZwdkbkhMQ>>>>>>_li}YaaWW8B8oqCu/)-++~~<>>>>>>~!i/LBB@&*pz\}-___++~~~~<-QOZOOOO000c\_I;;;;;::::::>?jQdQUpaw0CQ0QQM]llllll}ZpbkM*Y_l�.�:[I!~i[Ymk*Y]++++++++___10qb*k)++__++----___--?]
_+~<<<>>>>>>uwMpOv)------___+~~~~<0&kYm*ao*#bZQJoulIl!!!{mdkho(>>>+I+vYn(+__-------__+~+~~<<~YZCj?i!!llllIIII;;;;;;;;::kL0aadhho*#MWZzoi!!!!!_pbkJ<<>>>+[t->~~+__------__+++~<<<<]]>>>ii!!!llllIIIIIIII;;;;C&oZJJL0mph*M@Ww_!!!ii!qaf!i!lI;:"""+vczu{__+__+_+__+__++++~+++~~~~~~<<<<~~~+++__--
?-_+~~<<<<>>>><<<<<~+__-------_+++~~<<<<<>>>iiii!!!llllIIIIIIIIII\b0WXzJLQZqk*8$@r!iiiiiv?!ll!!lIll"/QXv1_________+__+__+++~~~~~~<<<<><<<<<<~~~++__-
?--_+~~~<<>>>>><<<<~+++-------__++~~~~~~<<<>>>>ii!!!!!!llllllIIII_QQb&nYCLQZqh#$$dii?Xw|>>I!}!!!i!_ObJ/++_____+___+_+++++++~~<<<<<<>>>>>>><<<<~~++__
??-__++~~<<>>>><<<~<~++_------___++++~~~~<<<>>>>iiii!!!!lllllllllixdm%*nJCLQmpaB$W}Q%kvvc!!i!tM*z]_+++____+_____++++++~~<<<<>>>>>>>>>>>><<~~++++
?]?--_++~~<<<<<<<<~~~~+__-----____++++++~~~<<<>>>iiiiii!!!!!!!lll!1pk#%OcJCLOwbWB&&B%JL[_:;li!!iCBb\+++++____-++____++++++~<<>>>>>>iiii>i>>>><<~~++~
]]??-__++~<<<<<<<<~~~~+_-------___++++++++~~~<<<>>>>>iiiiiiii!!!!!i(uJj-jUCCLZph&%M@mJv~_,I;lI+b%0]_++++_____-__---_+~~++~<<<>>iiiiiiiiii>>>><<~~++~
]]]??--_++~~<<<<<~~~~++_-------_____+++_++++~~<<<>>>>>>>iiiiiiiii!iiiiii]cJCCQwd*8%bz#}~~i:I,]#&u___+++___-________+_++++~<<>>iiiiiiiiiiii>>><<~~+++
?????--__+++~~<<<<~~+++_--------___________+++~~<<<<<>>>>>>>>iiiiiiiii>>>/YCLLZpk8bcW*~~~_�"(&*|____+___---_----______++~<<<>iiiiii!!iiii>>>><<~~+__
???--??-__++~~~~~~~~+___--?????----__________+++~~~<<<<<<<<>>>>>>>>i>>><<~YCLQZpkkz%BZ~~+_;r%m[_______--____-??-_____++~~<<>>>i!!!!!!iiii>>><<~~++_-
]???-??--__++~~~~~~~+__-_-?]???-----____--__-__++++~~~~~~<<<<>>><<>><<<<~tp00Owdka&B&b-+++?Jc?_____----__---_-?-_____+~~~<<>>>i!!!iiiiii>>><<~~++_?}
r(??????-___++~~~~~~+___--?]????----__---------___++~+~~~~~~~<<<~~<<~~~~-jYbmmqbhMM#W*]____-----------------_-??_____+~~<<>ii>ii!i!iii>>>><<~~++?(fj
rrj{????--__++++++++++_---???]??--_-__---????-?-____+++++++~~~~~~~~++++~_/ZQvj/Zh88%f___------------??--------____++~~<<>>>iiiiiiii>>><<<~~+_)fjjr
rrrj(????--____++++++__---??]]??--_-_----??????----________+~+~~++++++~�^,;l>}1voa&bO[------------???--------___+++~~<>>>>iiiiiii>>>><~~++?/fjjrr
rrjjj|????--___++____----]??]]??----_--?-??]??????--__-_______+++__+++_!;!]ud#b0kBpm&MM8b}_-------------?-------____++~~<><>>>>ii>>>><<<~~++[tffjrrx
rrjjjf\]???--_-______----]?]]]??-----?-???]]]]]????---------_________++-|Jdo**#W&CUQoaBB%m----???-------?--------___++~~<<<>>>>>>><<<<~~~++}ttfjjrxx
rrjjfff\]???----__-__----?]?]]???-????????]]]]]]]????????-------_-____++_(Lko*#qxtjYk%%BB8j--?????????--?-----?--___++~~<<<<<<<<<<<<~~~++_[/tffjrxxn
rrjjffft(]???------__--]??]???--???????????]]]]]]]]]]???????????-?--___++_-jmC\__{rXb#%BBBp???]??????????--??-----__+++~<<<<<<<<<<~~~+++_?\/tfjjrxnn
xrrjjfftt}]???--------?]?]]-???--__-??-????]]]]][[]]]]]]?]???????-----_____-+>!l~\0khM%@$Mo&/1111{{}}{}}}[[[[]?????---___++_____[))(|({{[]??][{(fuXXYU
Xn{[[[]]]]]]]]]????1}--{)(((1))}_____________--?]]][}{}{{{{11{1{{{}[[[[[[]/OZZLj(rqW%@$oBJ111{{1{{}{}}}}[[[]???????--___~+____]1}?_-]]]]]]]][[{vvcUU
Yu\}[[[]]]]]]]]]???-)1?((((()())1?__________---??]][}}{{1{111111{{{}}[}{(:]XLXrf/un0%@$#%/1111111{{}}}}}[]]]]]??????--__++____~+_??]]]]]?]][[}}tYUXX
UUYzf{]]]]]]]]]?????-))((((()(()))[_____--__---??]]}}{}11{111111{1{}}}{i~!i++?{x!}nY*@$Md))11111{}}}}[}}[][]?]??????---_+++_~~___-???]]]][[[[}[{UUJJ
JUUYYzf}[]]]]]]]????--(||||(((((())}-_-_---_---??]][}}}{1{{11111{1{{{{~ilii11}-!!}ubb%B%Y)1111111{{{{}[[[]]]???????----__+~<__---??]?]]]][[[[}}}YJJC
JJJUUYXc\[]]]]]]]????-]||||||||((())}--_-----???]?][[}}}{{{{111{111{{}>><<~~+__-?]??????]][{\///tjnzXYUJJCCCC
00OOO00QLCzUYXzcu[?????--_+++++++1||((())1]{111{[[}{{}}[[[[[}}}{{{1)_1fCzjxwaM&Wkoko*dpbkao0j]][(\\|(()1]+<<~~~~++++____-]}}[]]][[}})/ruvzXYUJJCCCCC
00OOOOO0QLXJUXzcut????--__++++~++~[||())))111111}[}{{}}[[[[[}}}{{1{|_?1(/jrUdmkwqpahkbkhkhn]]?[\\\||()?~~~~~~~~~++++__--]]][1()1{}}}{{1nzXYUJCCCCCLL
0OOOZOO0QLYJUXzcun}???---_+_++~~++~?(()))))1111){[}{{}}[[[[[}}}}{{11[_})\fjzQwpOqb*hha#hhu]??]\/\\||[~++~~~~~~~~+++___--?{))1|\/t|\\trvzXYJCCCLLLLLL
OOOZZZOO0LYJUXzcun\????-___+++~~~+++?())1111)))){}}{{{}}}[[}}}}}{{{1}_?1\fjvLmOwdMaa#&o#h(??-(//\\(_+++~~~~~~~~~++___--???)|\\tfjrxnvczYYvr////xCLLL
OOZZZZZO0QUJUXzvunj???--___++++~+++++]))))11)))1}{}}{{}}}}}}}}}{{{111_?}|fruJOZpoaa*&MMMk?---///\)+_++~~~~~~~~~~++__--???]}\/fjrxnuvzXYx|||\\///zLLL
OOZZZZZO0QUJUXzvunr]???----++++~++++_+}))11)))1}}}}{{{}}}}}}}}{{{{{{(+-{|frcUQwdhhoMWWW#m----//\1~_+++~~~~~~~~~++__--??]][[tfjxnuvczXz/(|\\jvXUCLLLL
OZZZZZOO0QJJUXzvuxr]??---?__++++++++___1)1)))()}}{}{}}}}}}}}}{{{{{11(_-{|fxzU0qbdh*M&Wh&J?}(\//1++++++~~~~~~~~++__--?]{|/ttjrxnvczXYz|(|jzLQQQQQLLLL
ZZZZZZOO0LCXUXcvnxj???---]_-++++++++___?1))))(((}}}}}}}}}}}}{{{{1111(_-{|juzUOppba*WMh*8Ufftt/|+++++~~~~~~~~~+++_-?}(\//tfjrnuvczYYX(|nJQQQQQQQQLLLL
ZZZZZZZ0QLCYXXcvnx\??---[?]-_++++++_____1)))(((((}}}}}}}}}}{{{{{1111t+-1\jvzUOwpbaWMko8MUftt/\]+++++~~~~~~~+++__-}(|\/tfjrxnuvczXYY/tULQQQ0QQQQQLLLC
ZmmmZZZ0QLCUczcunj[???-{}1}-__++++_____-})))((||){{}}}}}}}{{{{{11111t_?1\jucUOwphMMh#&Wkuft/\|~+~~~~~~~~~++++__](|\\/tfjrxxuvczXYYxrCCLLQQQQQQQLLLCC
cczU0ZZOQLJUYuuunt())(////|){}]?______-_?}))|(|\\\(ft\(1{}{{{{{11111/_[)/jxcJ0wb##aWWMoLft/\|[~~~~~~~~+++++___}||\\/tfjrxxnuvczXYYrJCCLLQQQQQQLLLCCC
xxrjjuC0QLJUYzvxxrjftt/)[?---_________-----}(/\\\/fj/rrxj\{{{{{{1111\-}(/fjzJOwkoaMM#hQnf/\|(?~~~~~~~~++++___}||\\/tfjrxxnuvvczXYYUJCCLLQQQQQLLLLCCC
nxrrjftnJLJYXzvunrjf|[?--?----________------?(\\/ttf|rrxnnnt1{{{1111(]{(/fjzCZwka***bLrft/\|(-~~~~~~~~~++___?||\\/ttfjrxnuuvvczXXYUJCCLLLQQLLLLLCCCC
nnxrrft/\nJYXzvunxf{]??-???---_________-----?]||1){/\/rxnnuuu\{{111/_[1|/tfzJOwkhoodCrft/\|)}_~~~~~~~~~++__--{\\\/tfjjrxnj\|/ruzXYUJJCLLLLLLLLLCCCCC
nnxrrjft/\jYXzvunj}[]]??]----__________-----???(tft))+/xnnuuuvf{{{{(_[)|/tfcU0ZdkhqJrjft/1-~~~~~~~~~~~+++__--]\\//tfjjr\{}}}{{{{)tnYJCLLLLLLLLCCCCCC
unxrrjjt/\)jXzvun1][[[[]?---___________-------?-|tfff}_-{/nuuvv|{{|--[(|/tfcYQmqbqJrjjf/]+--_~<<~~~~~~++___--?|\//tfj/][}}}}{{{{{1)(rYCLLLLLLCCCCCCC
unxrjrjft\))xzcvj}[]}}]]?---_____________------?-/ffjrxj|}]1(nvj}{(+-1(\/tjvY0OwqLxjjft}[(|()1-~~~~~~+++__--?[\\//tf)?[[}}}{{{{{1))(|\uCLLLCCCCCCCCC
q0Xrjjjt/\)()vcvf1[][}[??----________________--?-[fjjrxxnuj({/cf}(_+])(|\tjcJ0Qm0urjjf((\|()11{-~~<<<~~++_--?)\\//t{][}}}}}}{{{11)(||\/nCLCCCCCCCCCC
pqqQxjjf/\((1\zcr1{[[}}]]??--______+__________---_\jjrxxnnut1/Y){}~-1)||/fnz0LQZJrjjft/\||()1{?+<>~~++___--??}{\/t}][[}}}}{{{{111)(|\/ttuCLCCCCCCCCC
ppqqZujft/|()1ucv|{{[}}[]]??-?-____+++++++_____---?jrrrxnnnv((cr{+-1)(||/rvQ0CQOYjjfft/\|()[_><~~~~+++__---???]-}[][}}}}}}{{{{11)((|\/tttzLCCCCCCCCC
pppqqmuft/\|()fccn){}{}[[[]?]]-_-__++++++++____-_-_/jrrxxnnu\(rX)+1))(|\juJm0CL0Xjfft/\|([+<~~~~~~~+++__--???]]]-][}}}}}}{{{{11))(||\tt/fxLLCCCCLCCC
ddppqwZrt/\|()(cccu({{}[[[[]?[?--____+++++++_____-_1jjrrxxnn|(fcJn(/\\ffuYZmQJCQcftt/\|{+~+~~~~~~~++___---??]]]]?[}}}}}{{{{{11))(|\\\tftfrLLLLLLLLCC
dddppqwJft/\|))ucccvj1}}[[[[?]]?]-___++++++~++_-___}jjrrrrxn{(fuYLQcnxnvz0ZOLJJLct//\(-~+~~~~~~~~+++___-???]]][?[}}}}}{{{{{{1))(||\//tfjjxQLLLLLLLCC
ddddpqqmjt//\((rzccccvj)[[}[][]?-?___+++~+~~++++_++[ffjjjjrr]/rxzYQOzuccJLQQCUUJv/\|{++++~~~~~~++++__---???]][][}}}}}}{{{{111)(||\//tfjjjcQQLLLLLLCC
bbdddpqwnrjft/|jzzccccccut([][]?---__+++++~~~~~++++]tttfffj/tjjxvzYLJczzYUCJJYYUc\|[~+++~~~~~~~+++___--??]][[[?}}}}}}{{{{111)((|\//tffjrrCQQQQLLLLCC
bbbdmJcxjfft/\()))|txccccccvxf\)1}[?-__+++~~~~~++++---?}(ttftcnxuczXJzzzXYYYYXXXc|]+++++~~~~~~+++___--???][[[[]}}}}}{{{{{111))(|\/tffjjrz000QQQLLLCC
bbpYunxxrjjft/|(()11}{\nzzccvvuunnxr/__+__++~~~~~++~~~~+++}\/rYXvczzYXzzXXXzXzzcu{+++++~~~~~~+++___---??][[[}[[}}}}{{{{{111)(|\\/rvjjjrn0O000QQLLLCC
bbUYCLQLJYvrt/\||)111{{[1rzccvvuunxr|-____++~~~+~+++~~~++~~~]\jzYzcczXzzzzccccvvt++~~~~~~~~+++_+__--???][[[[}]}}}}}{{{{{11)(||\/ttXJnrnQOOO00QQQLLCC
kddbbbbddpqw0Xj\|(()11{{{}1uzccvuunx/-___-_+++++++++~~~+++<<<~}fzXcvczzccccvvvux++~~~~~~~~++++___--????][[[[}[}}}}{{{{{11)((|\//ttr0Cv0OOOOO00QQLLCC
kkkbbbbbddpqwmZJr\|())111{{[/zzcvunxr}-?___+++++___++~+~~~<<<~~+/vccvvvvvvvuuuu]~~~~~~~~~~+++___---??]][[[[[}{}}}}{{{{11)((|\//tffj000OZZOOO00QQLLLL
kkkkkkkkbbddpqwmOYt|(()))1{{}1zznftfxj{?-____+_+_______~~~~~~~~~~)uvuuuuuuuuuut~~~~~~~~~++++___---??]][[[[[[}1}}}{{{{11)((|\\/tffjuOO0ZZZZZOO00QQLLL
kkkkkkkkkkbbdpqwmZ0c\|())11111[{}[][{/r/1]-___?-___--__+++~~~~~~~~[rnxxxxxxr([+~~~~~~~~++++___---??]]][[[[[}}){}}{{{11)((|\\/ttfjxQOZOmmmmZZOO00QQQL
kkkkkhhhhhkkbbdpqwmZCf|()1)))1{]1}}(\|\rjft\|1?--__---____++++++++_-trrrrj1+~~~~~~~~~++++___---???]]][[[[[}}})(}{{{1))(||\//ttfjz0OZmOmwwwmmZZOO00QQ
hkhhhhhaahhhhkbbdpqwmOu||(()))1)}cXzvunxjft\{--??---?-----_____-_+___\jjf?++++++++++++____----?]]]][[[[[[}{))|/({11)((|\\/ttfxXQOOZmwZwwqwwwmmZZOO00
hhhhhhaaaaaaahhkbdpqqwmU\||((((()rYXzvunrjft/|{]????]]????-?{(((1}]---\f]__-_____+_____---????]][[[[[[})\tfjjrrxt|((|\\/fruXCQ0OZmmwZqqqqqqqwmmmZZOO
hhhaaaaaooooooaahkbddpqwL/\\\||(()UUXzcunxjft/\|}]]]]][]]]}/ttt///\|1]?{-???-----------????]]][[[[}}})tffjjrxnuncXXXYUJJCLLQ0OOZmmwwwppppppqqwwmmZZZ
aaaaaaoooo***oooahhkbdppqJ///\\||(nJUXzvunxrjft//)[[[[[}}1jjfffttt///\{]]][]]]]??{[???]]]][[[[}}}}}{\jjjrrfruvvzvYUUJCCLQQ00OZZmwwwwppddddppqqqwwmmZ
aaaaoooo********oaahkbdpdpztt///||fCJUXzcvunxrjfff\{}{}}|xxrrjjjjffffft)][[}[[[[])/)}][[[[[}}}}{{{{tjrrxxrfnvvzXYXJCLLQ000OZZmmwqwwpddddddddpppqqwwm
aooooo***######**oohbbkkbbpxfttt/\/0LCUYXzcvunxxrrjf)1{|nnnxxrrrrrrrjjjj)}{{{}}{[1jjjf|{}}}{{{{{{1txxxnuuxjvcnYYJCJLQ00OOZZmmwwqmqdddbbbbbbddpppqqqw
oooo****#########*aaoaahkkb0jfffttfO0QCJUYXzcvvunnnxj)|vvvuunnnxxxnxxxxrj{111{{{}}fxnnnxj/(111111|nnxxncvrxcnvzYLQQQL0ZZmmwwwwmwpddbbbbbbbbbddddppqq
ooo****####MMM###*o*ooaahhkkxrrjffxmZ0QLCJUYXzzccvvvvjvzzccvuuuuuvuuuunnnt1111)(()(uvvvuuuuuxrjjrnuunnuvnxuXvYUY00OZZZOZZZmmwqpdddbbbkkkkkbbbbbdddpp
oo****####MMMMM##o#***oaaahhUxxrjjXwmZO0QLCJUUYYXXXXXXXXXXzczzccccccccvvvn()\nvvccccccccccvvvvvvvvvcnccvYUzCUJ0OOZmmwwqqqpppdddbbbbkkkkkkkkkkkbbbddp
*****###MMMMMMMMM**##**ooaah0xnrrxZpqwmZO0QLCCJJJUUUUUUUUYXYYYXXXXXXXzzzzcjfczzzzzzXXXXXXXzzzzzzzzzzvzXUJCCQCOOZmmwqqqppddddbbbbkkkkkhhhhhkkkkkkbbdd
****####MMMMMMMMMMa##***ooaa0nxrrUddpqwmZZO00QLLCCCCJJJJJYJJJUUUUUUYYYYYXXvXXXXXXYYYYYYYYYYXXXXYYYYUYUJCLQ0OZZmwwqqpppddbbbbkkkkkhhhhhhhhhhhhkkkbbdd
****####MMMMMMMMMM#a*#**ooaaCnrrXdbddpqqwmmZOO00QQLLLLLLCJLCCCCCCJJJJUUUUUXYUUYUUUUUUUUUUUUUUUUUUJJJCCLQ00OZmmwqqppdddbbbkkkkkhhhhhhhhhhhhhhhhkkbbdd
o***####MMMMMMMMMMM#oho**oowuxnQkkbbddppqqwmmZOOO00QQQQQCQQQQQLLLLLLCJCCJJYJJJJJJJJJJCCCCJJJJJJJCCCLLQ00OZZmwqqpppddbbkkkkhhhhhhhaaaahahhhhhhhkkbbdd
oo***####MMMMMMMMM####ahkbOULZkhkkkbbbddppqqwmmZZZOOO000L0OO000000QQLLLLLCJCCCCCCCCCLLLLLCCCCCCLLLQQ00OOZmmwqqppdddbbkkkkhhhhhhaaaaaaahhhhhhhkkkbbdp
aoo***####MMMMMMMM#####**ooaaahhhkkkbbbddddpqwwmmmmmZZZZZ0ZZZZZOOOOO000QQQLLLLLLLLLQQQQQQLLLLQQQQQ000OZZmmwqqpppdddbbkkkkhhhhaaaaaaaahhhhhhkkkkbbdpp
aaooo***####MMMMM#####***ooaaahhkkkkbbbbbbddpqqwwwmwwmmmmZmmmmmmmmZZZOOOO0LQQQQQQQQQQ0000QQQQ00000OOOZZmmwwqqppppddbbbkkkhhhhaaaahahhhhhhhkkkkbbdppq
hhaaooo***#a#########***oooaahhhkkbkbbbbbbdddpqqwwwwwwwwwwZwwwwwmmmmZZZZZOQQQ000000000000000000OOOOZZZmmwwqqqqppppdddbbkkkkhhhhhhhhhhhkkkkkbbbddppqw
=========================-----=-=------------=====================================
=======================------------------------===================================
======================------------------------------==============================
=====================----------------------------------===========================
===================-------------------------------------======-===================
==================-------------------------------------------=-===================
================--------------=*=----------------------------------===============
================--------------*%@#+---------------:-------------------============
==============---------------+#%%@@%+-:::::::::::::::-----------------============
=============---------------=*##%%@ %-::::::::::::::::------==++=-----===========
===========--------------::=+*###%@ #::::::::::::::::::--=*##%%%#=---===========
==========------------::::-+*###%%@ =::::::::::::::::::+#%%%%%%%%+-============
==========-----------:::::-+*##%%@@ *:::::::::::::::::=%%%%%%%%%%%+---=========
==========----------::::::-*##%%@@ %:::::::::::::::::#%%@@@@@@@@@%============
=========----------:::::::=*#%%@@##@ @# -:::::::::::::::+%@@@@@%@@@@@@*-===-======
=========---------::::::::=#%%@%-.:# *#@::::::::::::::::*@@ %-:-*@@@@#---=--=====
========---------:::::::::-#**@:.=#+@*#@++-+==-:::::::::# -:::-@@@@#-------====
========--------:::::::::::*..:.=%#*@ %@+--=#@#-::::::% %:::::#@%%*-------====
=======--------:::::::::::::=*=:*++*@ @@=*-===% *:::::# %:::::#@%%+----====+==
=====---------:::::::::::::::+*..::+@ @@%:##%*-#+ *::::+ :::::=@%*---*=-+%# ==
====----------:::::::::::::::-..:.:+ @@ @.##%%*=+ %=::::@ +:::::=+--=***+*@%*==
===----------::::::::::::::::=...:.%%% @=-#%%%%%% @#:==+**#*#-::::=+#%@@@#%@+=--=
===----------:::::::::::::::::-=.:+%%@@@ -:+%%%%%@@*-==@ =::=#%+#%@@%*+++=-----=
===---------::::::::::::::::::=%@@%%@@@@ *:.==##%@*::@@@+::#%###*#+-:-----------
=-=---------::::::::::::::::::=@ %%@@@@@@#%@ #**+#%%=.%@#*..#@#%%%#=::::----------
--=--------::::::::::::.::::::+%#%%@@@@ #+*%@ @#:- =#:.+ #@@@@@#::::----------
=----------::::::::::::...:::-##%%@%@%@#++*#@ ++%@#:#%-*:: %%@@@@@@-::::---------
-----------:::::::::::.......:=*@@@%%%@#++*%% #*#@#:%#-+:+ #@@@@@@@%-:::---------
-----------::::::::::..........=%%%%%@%====+#@ @%*-:.%*+=:#%%@ @@*:::---------
----------:::::::::::.........=*@%%%%%=---=*#@ +....:#@#**#%@ @ @*::---------
----------::::::::::.........+%# %@@#--====+*% #....=*%#%@@ @ @@::---------
----------::::::::::........:*% @::---=+% @....-## %@ #% #::---------
----------:::::::::.....::::.:* @ #*#:-++*%@ @-....:*@%-#@@ @@:*@#::---------
---------:::::::::::-:::.:=*%%@ #@ @+-=*#%@@@ *.......:=+*###@@*+=:*#=::---------
---------::::::::=#-*+=*%%%*-::+--=+-.:+##%@@ +.........:*#==+=+=:::::::---------
-----------::-+*##+#@@%*=:...........:*###%@@ @#+-........:-+*% =::::::::--------
------::-+*+###%@ @@ #:............:* %#%%@@ @%*..........@ :::::::::--------
-----:..:+*%@ %+++=:............--+@ %*+*##%###*..........- @::::::::---------
--==.::=+* @#+-:................:=*# @:=+*##%@@:.........:@ *:::::::::--------
-=##:=*%%%#*:::::.............-=*%@*+@ %%%@@ %=.......:% ::::::::::--------
-=%@%%@@@=*=:::::...........:=*#%@*=+**@#%%%%% %.....-@ =.:::::::::--------
--##++=+-::::::::.........:=*#%@@*--=**%*#@%@@@@@ @#+=# *..:::::::::--------
--------:::::::::.......-+****##%=--*+#%*#%%%%%%@@@ @ +...:::::::::--------
---------::::::::....::===+*%%@@@+=*==# %%%#%%%%%%@ @%%###=.....::::::::--------
----------:::::::..::-=*#%@ @+=*% @+==+*****##%@ @+......::::::::--------
----------:::::::::=+#%@ ##*%*+%@******##%@ %+:...:::::::::--------
-----------::::::=*%@ @@@ @#**%*--##*###%%%%%@ @%#%@ %=:.:::::::::--------
-----------::::-# @%%%@@ @##**%%+::+####%%%%@@ %+==*%@@ @-.:::::::::--------
-----------:::-% %#%%%@@@+#***%%@-..*###%%%%@#-::-=*@ @*::::::::---------
------------:::# %##%%@@%%=#+++##@ @:.-###%%%%=::::-# %-::::::---------
------------::= *.+%%##**-+-==+#* *::=##%%#-:::-*%@ @*-:::::--------=
-------------:@ @.::***+-==::::=+# -::+#%+.:::=#% @##% @*-:::-------===
-------------+@ *.:=##--=:::::-==@ %:::=+..:-+#@ #=++#@ @@*::--------===
-------------%@ =.-+#-.=:::::==-% =.:-*:.-*%@@@%=:=+*%@ -::-------====
------------+@ +:+**+.=::::==:# @.:-=:-#%@@@+:::=#@ *:--------====
-----------=@ %=*###:=====-:# =.::=%@%@#-::-*@ =-------=====
-----------% *##@@::::::-# @ %..=@%%@+:-:=@ =------=====
----------*@ %@ +::-=+% @@@ @*.:@#%%-.:=*@@ +-----=====
---------=% @**###%@%% @@@@@%%-:###%-..-#@@@ @ @@#=----=====
---------*@ @++*****#%% @=:+@%#%*.:=*#-:.-#@@@@@@ @%@ +---======
--------=% %=--==+**###@ #--.**% -..-*:=:=%%%%%%%@@ @#+*% %=-=======
--------*@ @ *.:=:-=+*#*=% +.:--@ =::::::+%#@@%@@%@%+---+#@ @#========
---------%@@ @ #-:=-=++-::* :.:+-@ =::::+@%@%%%@@%+:::==*##%@ +=======
--:::::-:+@@%@@ +::=:::::= :.=*+% #:::=#%%%%@@@+-::::-=#@ %% =-======
-::::::::#%%@ @%#+=:::-=+# *---:.+#*%%@ :::-+#%%%@*::::::=# %+--+@ @*------==
-:::::::=%@ @#+=-----#+*###**=:...::+%*####%+:::-%%@%=..-::-# #=-----#@@#---------
--::::-:+%#+--------:+##*=::::::::.:#%%@@@%##:::-%%*:...:-+**--------=#+----------
---:::::=-----------:-=:::::::::::::#%##%%@ %:::-%=:::..=*+=--------------:::-----
----:::::::-----------::::::::::::::=#@*##%@ +:+=::-::-**=-------------::::::::---
-----:::::-------------::::::::::::::%@%*##% %@%+::-:=@+-------------::::::::::---
------::::---------------::::::::::::-=-+##%@ @#-:::+@=-------------::::::::::::--
--------:------------------:::::::::::::-*##%@%%--.*#--------------::::::::::::---
--------------------------------::::::::-##%%@ #--=+---------------::::::::::::---
+=---------------------------------------***% %-------------------::::::::::---++
+++------------------------------------:.-**%@@@@=-----------------:::::::::--=+++
++++------------------------------------=%@@%*#@ @-----------------:::::::---=++++
++++=------------------------------------=*=-+#@ *-----------------::::----=+++++
+++++=-------------------------------------:*@@# %=------------------------+++++*
+++++=-------------------------------------*%@ %@ %===-------------------==+++++**
*+++++=----------------------======--------+#% % %====----------------===+++++***
**+==------------------------=======------=#%@ @@#===--=-------------====++++****
*+=----------====------------========----===+%@ @@=======-------------=====-===+**
*+=--------=======-----------===========-=**++% #========---------------------=**
***+--------========---------==========:::=-:=% +========--------------------==*#
##***=-------========---------========-:--::-% @@========-------------------====##
####**+------========----------=======---*##@ @**=====-------------------====+##
#####**+------========---------=======-=-%%@ @@##*+=-------------------=====*##
######**+-------=======--=-------====-:-=##%%%@@%%%==--====-------------=====+**##
#####****=--------=====-===-===--======+++#%@@@%%@%+-=====--:-----------==+***####
#######**+----------=======-===--=====-=++#%%%@@@%=-====-----------=======+**#####
#######**+=----------=================--++##%@@@@*--+==-------------=++++***++++##
#######**+=----------=================--++##%@@@@+-=+=------------===++***+=+***##
######***+=-----------================--+**%%@@@@+++=-----------==++++***++*######
######***+---==-------==================+*#%%@@@@++=----------==+++++*****########
++*###**+++=+==---------====+++=========++#%@@@@*+==---------==+++++*****#########
+++++****++=-------------===++++++====-=++#%@@@*++==---------==++++++****#########
++++++***+=---------------=+=-=+**+===-=++*#%%*++=-----------=++++======+*########
*++++==**=-----------------=+++===*==-==++*#%*++====---------=++=-========+#######
%#+++==+*==-----------------+++++=*=--==++###+++====--:------=+=-=========++######
%%%*+===*+===---------------=+++++++-===+####+++==--------------==========++*#####
%%%%++==+*+==---------------=++++++**+++*###*++=---------------==========+++*#####
%%%%*++=+***+==--------------++++=+**#**###**==---------------==========++++*#####
%%#*++++==++***++===-----------=++*+*********=----------------=========+++++######
%#*#**++======****++=------------=+*********+-----------------========++**+#######
%%%%%%%#*======+***+=-----------::-=********----------------==========+++#########
%%%%%%%%%#+======+==+=--------------=++++++=---------------==========+++*#########
%%%@@@%%%%%#+======+++++=-------------+++------------------=========+++*#%%%%%####
@@@@@@@@%%%%#+====+***+++=-------====--+----------------==++++++++++*###%%%%%%%%##
@@@@@@@@@@%%%%++===****++++=---=++++++=--------------===++++****#######%%%%%%%%%%%
@@@@@@@@@@@%%%%+++=*#***++++===+++++++++====-=+==-=====+++++***######%%%%%%%%%%%%%
@@@@@@@@@@@@@@%#+++*###******++***+++++++=====+*+++===+++*+***#####%%%%%%%%%%%%%%%
@@@@@@@@@@@@@@@%+++#%####****************=+*****************###%%%%%%%%%%%%%%%%%%%
@@@@@@@@@@@@@@@%++*%%%#########*##***********************####%%%%%%%%%%%@@@@@@%%%%
@@@@@@@@@@@@@@@#+#%%%%%%%################*#################%%%%%%%%%@@@@@@@@@@@%%%
@@@@@@@@@@@@@@%%%@%%%%%%%%%%##############################%%%%%%%%%@@@@@@@@@@@%%%%
@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%####################%%%%%%%%%%@@@@@@@@@%%%%%%
{{{{{{{{{{{{{{{11111{{}}}[[[[[}[}[[[[[[[[[[[[}}}{{{{}{}}}}}}}{{{1111)))111111111{{
{{{{{{{11{{{{{{111{{{{}[[[[][[[][[[[[][]][[]][[}}}}}}}}}}}{{}}{{{11111)1111111111{
11111111111111{111{{{}[[[]]]]]]?]]][]]]]][[[]][[[[[[}}}}}}{{{}{{{{11111)1111))1111
1)11111)11111{{{{{{}}[[]]??????????]]]]?]]]]]]]]]]][[[[}}{{}}}}}{{11111111111)))11
)))1))))1111{{{{{}}[[]]???-------????????????-??????]]][}}}}}}[}{{11111111111)))11
)))))()))111{{{{}}[[]??---____--------------____-----??][[[[[}[}}}{{{11{1111)))))1
))((((())11{{{{}[[]]?---____++}c(_-______+__++++++++__-??]]]][[[[[[}}}{{{111))))11
))(((())){{{}}}}[]??--____+++-Xdh0j-+~~~~~~~~~~~~~<~~+__-????]]]]][[[[}}{{11)1)111
))((()))1{{{}}[[]??--__++++~[/QwdoWbr_<<>>><<><<>>>><~~++---?]]][]]][[}}{{1111)111
)))()))11{}}}[]]??-___++~~~+|zL0wd*B%p_>iiiiiii>iiii><<~~+__-{|ff(][[[[}}{{1111111
))1))1111{}[[[]??-__++~~~<<)nUQQZqh8 0i!ii!!!ii!!!!!i><<~~)zQZmmmC\[[[}}}{1111111
111))1{1{}[[[]?--__++~<<<<_/XCQ0wpa8 %1!!l!!!!!!!!ll!ii>]rUL0mdh#@ ullllllIllllllll!i\mppddbbkkkkr[[[{1{{11{11
{{){11{{}}[]??-_++~~<<>>>i[uC0mdh#8$ qlIlIIIIIlllIIIl!>Zdbao*#*aaaad{}}{}{}{1{{1
}{{{{{{{}[[]?-__++~<>>>ii!)vQmdh#LJM$#L&[IIII;IIllIIIIIl/ka#WWMdhW#aoau[}}}[}}{{{{
}}}}{{{}}[]?--_+~~<<>>ii!!1Cmdob-"lQ%YCo>i!!!![QXUhl^|0rMXOhtt-j|}_IIIIIIIIIO&88&-i><+oMahZ][[[][[}}{{
}}}{{{}}[]?-_++~<<>>ii!!!!iz,^I^)mQua&BBqot+])ZaJ-IlIIIIq%%%b!!i>>ii!!l!!!i(z(;zxrva@%M#1c_)|1m&BX!llIlLB%%dl!!i>Z*kpx??-?1)11f}}
}{}}}[[[]?-_+~<<>>iii!llllll!nX^,<>fM$ookIJZwU~Qn8%zlllItBB%&il!!i(hkU_-[u)[rwZ8\}
}{}}[[[[]?__+~<>>iii!llllIIII],,<^ii!!lllIIIIII|,::I,qkk%8W1~0wpppbk&*Ql(\rvzQYZ_il!i}rJpha*Omoj}[[}
}}}[[[]?-_+~~<>iii!!llIIIIIIIi_}:!npdW##@B?InpwwqbaMU]{1aB%\!!)QwxQboodYtxr}[?]][}
}}}[[]]?__+~<>>i!!llIII;;I;II!)kohqpoWhM @8X;,})ZQd*UIi#Wht;!QbQQZXCf]<~+___-?]][[
}[}[[]?-_+~~<>ii!lIII;;;;;;;II\W@wwohWoWW0bo8ZcvnZbb\.q#Zv.�OhZqwq0(!i><~+__--?]][
[[}[[]?-_+~<>>i!lllII;;:;;;;;IxdZwb#aah&ZnXm#B8@ aZl[%\C!.tBOhoahMO!i><~++__-?]][
}[[[]?--_+~<>i!!llII;;;:::;;;_LOwd*koboOxxz0o$$/xpMQlCd-cI!&kwo*WM#*[>>><~+__--?][
[[]]]?--_+~<>i!!llII;;:::::::>1z*#hpkpaJftXwb& OULaL!dL[/!r&Qh#MM#ohw_i><~+__--?]]
[[]]]?--_+~<>i!llIII;::::,:::,"{kdppqad{}{\xLh$odv]i�bYx{!0mpM&88%*Uii>~+___-?]]
[[[???-_+~<<>!!lII;I;::,,,,,,:)Uawwpbk)++]\z0a$x��^:IZaOvXZbM%%%B$ M&Mzi>+____--?]
]][???-_+~<>i!!lII;;::,,,,,""jwO@khaO[?{{{)tYw%C���^{UbLqoW8%BBB@ #8WW><++___--?]
]]]]?--_+~<>i!lIII;;::,,,,""!Ym&8&@&h>>~+-{rq% a:���?QZ&8qM$$$B$ $%Zp&O><~+++_--?]
]]]??-__+~<>i!lII;;::,,,!i!!:u*O><~++___-??
]]]??-__~<<>i!lIIIi!~>i!,i1Xkk*80o@o/~)UCmh*W U,.����^;{rvCJQhWzr}luZ|><~+++__--?
]]]?--_+~<>>i!lI!|C_Yf1zddwv?!>j+~(f+.ltJOqhM$ /..����^^^>uJ\|t}/(Il!!i><~++___--?
[]]?-__++~+i>[tv0Cf0h*wY{<,�����.....>uOCZphM@ h0x_����^^^"l]nYm&{Ill!i><<+_____-?
]]??--!!-xUxJL0kM8W*BCl^^�����.....Ic&$dQmdoM 8MpY����^^^^""hBBB<<+_____-?
]]?-?I�,irzp*8B&pnrj(I^^^����.....__ro$qUxY0ZqZCZX^�����^^^^[%BBo;Ill!!i>~++____-?
]]1\^Il|jY&8oCt~;::,""^^�����....I(uC&8a>{nYLZb#*;������^^^;aBBBz;IIl!!i><~+__-_-]
?1J0>(zwdpJUillI;:,,"^^^����.�~}um*Yfo@qpko#8@8B@d(������^IpB@@&i;IIll!i><~+__--?]
?1w#wdM*o1z}!llI;:,""^^^���,!1z0dhY1/zvaZpdbbk%B%B m:����]oB@@@\:;IIll!i><~++__-?]
??QCnr)/_>>i!llI;:,""^^^�,l}uQdhoX??\UvqUQapa*o#M%$ MJr{L%@@$$u,:;IIIl!i><~+++_-?]
??--__+~<<>ii!lI;:,""^^"_tzXXUL0m{?[Xx0dYQpdqqpbha#8@ @%W&$$j",:;;Ill!i><~++_--?]
??--__+~~<>>i!lI;:,""I>}{1jYmbaaar|z1\Z&dpmZwwqqpko8$&okpZZJ}"",::;IIl!i><~++__-?]
??--__++~~<>i!lI;::;!_|cOk#8@$$@@*n\vwB an)|rvvvXUL0wa8$ @Mf"",,::;Ill!i><~++__-?]
??--__+++~<>>!lI;Ii{nCbW$$$&8@ $ZOUwXrphYUUXcXCOqa&@ Bwx>,,:;;Ill!i><~++__-?]
??--___++~~<>i!lI1zqW@B$ BahM&@ hOXXmz__JQUJQZwwqpk*8$ Mq0mM$d{;:;IIl!!i><~++_--?]
??--___++~~<>ii~Q&$ $$$ #qdbaWBWCLczwdf>inCC0ZwwqdaWBqt1\umMW&W+:;IIl!!i<<~++_--?]
??--___+++~<>>~dB $@@ dZpbkaMWxOuvcpb#]^:zL0Zwwqd*Z[i!~)Ua8B@@#v!IIl!i><~~+__-?]]
??--___+++~~<<>Q @@$ dOOqbhokw(JffxCLoBa;:_LOZwqpd|l!!i[O&%8@$$$@d_Il!i><~++_-??][
??---___++~~<~+__-][[}
??--____+++~~<#%B M"\nC@ $]linZmj,I!i|Cp8&%%hZZk@ oc]!><~~+_-?]}}}
]?---____++~~n*% v.i(O0_-1![\(#$ bII>)n��;~xCo88B0\txJ#88#Xi>~~~_-?][}{{
]?---__-_++~~dW$ |^?xL],(li!>!})-w$ @@$ (:!~Xl�+cqMaMq}<{/YdM@@% 8_<<~++_-?]}{11
]??---??-_+~n#$ j|1{QWBB$ $ z<~++_-?][}{1)
]]??-???--_\hB q}uCLC;}{(){_>0$ B&88%B {,I!|q*kaO_!!+YM%B@8B@ B|~+_--?]}{{1)
[]???????-[m& zQZo#il;;;l~Z$ M&888% w^:(hpkMn>[!\a8B8%@@$ %(__-?][}{1))
]]???????-Ya$$$$$ pM@ j!i~{rkB8@ #MW&&%#Y,rkZahdh*kMdj_?[/ZW&8@B%WL(}}{{1){
++~~~~~_+dWW&W8%@$ Z~I(~|nt[i>v <.!t[h&$B}I!;Ixhwopbkh*bt<<<~!fM*khM8@ Bt!>1>!!!i18$ &l�}cxp&% QIII\Jwbddhhhx~i!!>?\0W8mq&%%&&)[}{{}{{
+<<>>><<<0ppo%@@8*qCn(!!i-1/08u[[[i,tCzqko@%ili?fZqbkoY>Il!><1Z@qj-_r*8&Wz-]]][[}}
+<<>>>>>}dW8#On(]+~~-LruLQLUu};:::I[C&Q}+++_?Ja#J_-_-????]
_~<>>>~!/pLf[---_+~~III;;;;:IQwwa*opLZl!!]dkY<:��;~fYv[++++_++{Qn_+++++__-?
-+~<<>><)?~+_---_++~<~)><<<+_----_+~~~<<>>i!!llllIII|ZazC0p#$r>><<<~+_
?-_+~<<<<<~~+_---_++++~<<>>iii!!!!ll>>ii>>><~++
]?-_+~<<<<~~+_---___++++~<<>>>iiii!!!?\-rCLw*&o0+i;Inh1+++_____-_++~<>iiiiiii><<~+
???-_+~~<~~+_---?-______++~<<>>>>>i>iii>-YLObawm~+,UO?___-__--___++<<>ii!!ii>><~+_
[?-?-_+~~~~+_-???---__-___++~~~~<<><<><00mba8Z++(n-__--_---?___+~<>>i!!iii><<~_[
r|???-_++~++_-??]?--_--??-___++++~~~~~~~[Uzvd&&k]_-------------_++~<>iiiii>><~+]/j
rj/]?--_+++_--?]]?--_--????-_____++++++!:_uUw*aMo\-------?----__++~>>>ii>><<~+1fjr
rjf/[?--____--?]]?-?-???]]]??-----____+_\q*#bcOMB#[-??---?-----_++~<<>>><<~++)tjrx
rjff\]?-----??]??--?????]]]]]??????---___}c\+jQoBBz?]????????--__+~~<<<<~~+_}/fjxn
xrjft{]?---???]???-__-???]][[[]]]]]??-----+!<{?>\q88f1111{{}}]]????--_+~+--??]][[}}UJ
CJUYv)]]]????|||||()}----???][}{{11111-+!!]k$#o)111{{{}[]]?-----_+__-??][[}}{1JJ
LCJJYXt]]???-}\\\||()[???-?]][[}})11)1___cL0o@$Bhcv))\|}[[]?--___-__---?]][}}{{rJC
QLLCJYXr]???--)\\\|(()[]??]][[[}}}|1{|?}?wkMB@@8#aO0ct}[]?--____?___--??][}}{1\YJC
QQQLCJXct]??--_-}||(()1][}[[[[[[[}}11-<[|QZqmkWhbpd\|[[{11}-+~+--_---??]{{}{(jYUCC
0000LUYXc(??--++++{|())[11}[}}}[[}}{1{{jfjOko*hkdaqx[{||({?~<~++__-][[][}(fuzYJJCC
0OOO0JJXcn]?--_++~~]())1111[{}}[[}}{{1-1tn0qmkhham}?)\\)?~~~~~~+_--}{)|()|tzYJCCLL
OOZZ0JJXcn)?--_++~++]))11)1}}{}}}}}{{1?[/rCZdo*W#c?[/\1++~~~~~+__-?]|/frnvXvj//fJL
OZZZOCJXvn\??--+++++_})1))}}{{}}}}{{{{][/nJZkaMWMt-{/{+++~~~~~+_-?}{\jxvzXj(fuXULL
ZZZZ0LYXvn(?---_++++__1))()}}}}}}{{{11[[/uUwdoWaMrt/)+++~~~~++_]1\tfrnvXYfrUQQQQLL
ZZZZ0CYcvr[??{{?-++___}))((1{}}}{{{111{}tuJmbMoWart\-~~~~~~++-{|/tjrnvzYuzLQQQQLLC
nncL0CUcnrt\/)}]--___--[)\\\fft|{{{111{1tnJwa*MoUt\(~~~~~++_-(|/tjrnuczYXCLQQQLLLC
nrjtnUYzuxt{?-?-_____---?)||t/xnnt1{1|])txCwh*hXf/|1~~~~~+__[\\tfrxnruzXUJLLLLLLCC
nxrf//zzuj}]]?--_____----?)t|[|ruux1{{](/rUZbdzjt1_~~~~~~+_-?|/tff(}}{1|rXCLLLLCCC
cxjjt|\cv(][[?--_______----|fjt()\u|)_}|/rUOqXjf){){-~~~++_-?|/t|[}}}{{1)|xCLCCCCC
qOnjt|)fc\}[[]?-_________--?jrxnn)u)[-)|/nLQQrjt\|(1]~<~~+_-[)/([}}}{{1)(\/xCCCCCC
ppmvf\()cx{}}[]??-_+++++__--(rrnntfj_1(\jJ0LJjf/|)?~~~~+__-??]?[}}}{{{1)|\ttcCCCCC
dpqmr/|)xcx)}[[]]?-_+++++___}jrxn//zzrfrzZQCYt/|]~~~~~++_--?]]]}}}{{{1)(\/ffvLLLLC
ddpqXt/|fzccr(}]]?-_+++~~+++]ffjr(fuUQvcJQCUX\)_+~~~~++_--?][]}}}{{{1)(\/tfjYQLLLC
bdOYnjt/|\/rccvr/(1}?+++~~++_][)tfunzYXzXYYXz1+++~~~++_--?][[[}}{{{11(|/tfjn00QLLC
bLUJYcr/|(11{\ucvunr{__+~~+++~~++}fXzzXzzzcvr_+~~~+++_--?][[[[}}{{11(|/tzuxQO0QQLC
kbbbdpq0v\()11{/zcux|--_+++_+~+~<<+|cvvcvvuu?~~~~~++__-?]][[}}}{{{1)|\/tnQQZOO0QLL
kkkkkbdqmQn|))1{(j|(f|]_______+~~~~~}nnnnnr)~~~~~++_--?]][[}{{}{{1)|\/tjXOOZZZO0QL
kkkhhhkbpqmJ/())1}(/tfj/(]-_--___++++?fjf[~~~~+++__-??]][[[}{({1)(|\/txUZmmwwmZO00
hhhaaaahkbpwOr|(((fYcurf/)[??]???{)1}]?/]-______--??][[[})/fjrf//fjnzCOZmmqqqwwmZO
aaaaoo*oohkbpwr/\|(YYcuxjt/1[[[}/fft//([]]???[???]][[}}1tjjjuvcYJCLQ0OZwwqpdppqwmm
aooo**#**oakbbwjt/\zCYzvnxrj\{1jxrrjjjjt}}}}[|/({[}{{{)rxnxxvXUJLQ0OZmwwpddbbdppqw
oo**#####*aoahkJjftU0LJYzcvuutxcvunnnnnxt1111)nunrt\|\rnnvxvuXL00OZmmwqddbbbbbbdpp
o**##MMMM*#*oahqxrjOmOQLJUYYYXYXzzzzzcccv|fuvvczzccvvvcvczUUJ0Zmwqqpddbbkkkkkkkbbd
**##MMMMMMo#*oadnrYdpwZO0QLCJJJUJJUUUYYYXcXXXYYYYYXXXYYYUCQ0Zmwqpddbbkkkhhhhhhkkbd
o*##MMMMMM#oo*oQxJbbdpqwmZO0QQQCQLLLLCJJJUJJJJJJJJJJJJCLQ0Omwqpddbkkhhhhhhhhhhhkbd
oo*##MMMMM##*abqkhkkbddpqwmmZZO0ZOOOO0QQLCLLLLLLLLLLLQQ0OZmwqpddbkkhhhaaaahhhhkkbd
aoo**###M###**oaahkkbbbddqwwwwmmmmmmmZOOOQQ0QQ0000Q000OOZmwqqppdbbkhhhahhhhhkkkbdp