                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                          
        -                      --                                                                                                                                                                                                                         
---   - -------  ---------------------------------                 -                                                                                                                                                                                      
--------------------------------------------------------------------------- ------     -----------------       -                       ----                                                                                                               
-------------------------------------------------------------------------------------------------------------------------    -      -------------  ------------    ---   ---- -                         -                                                 
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------    -----------------------             -    
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
=-------================================-----=============------------===------==----------------=--------------------------------------------------------------------------------------------------------------------------------------------------------
===================================================================================-======================================================----------------------------------------------------------------------------------------------------------------
=====================================================================================================================================================================================================--------===========-========-------------------------
===========================================================================================================================================================================================================================================---=======-----
=++++++++++++++==++++++++++++==++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=====+++++++++++++++=======================================================================================================================================
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++==========================================================================================
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++==++++++===========================
xxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=======
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+xxxx++xxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
xxxxxxxxxxxxxxxxxxxxx#######################xxx#xxx#################################################################################x##xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++
xxx#xxx#######################################################################################################################################################xxxx########xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+xxx+++
#################################################################################################################################################################################################xx##xxx####xxxx##xx########xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
############################################################################################################################################################################################################################################x####xxxxxxxxx
#####################################################################################################################################################################################################################################################xxxxx
+xxxxxxxx+++xxxxxxx#####xx#######xxxxxxxxxxxxxxxxxxx#xxx#xxxxxxxxxxx##xx#############################################xxxxxxxxxx##xxx#xxxxx#xxxxxxxxxxxxxxxxxxx###xxx####xxxxxxxxx##xxxxxxxxxxxxx##xx#######################xxx#####x##xxxxx##xxxxxxxxxxxxx
==+++++++++++++++++++++++++xxxxx+x+xx+++++++++++++++++++++++++++++xxxxxxxxxxx###x+++xxxx##########x#########x##xx####xxx++++++++xxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++x++++++++++xxxxxxxx++xxxxxxxxxxxx++++++xxxxxx++++++xxxxx++++++xx+xxxxxxxxxx
==========+=============+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxx++xxxxxxxxxx++++++++++++++++xxxx++++++++++++++++++==++++++++======++++==++++++++++++=++++++++++++===+++++++++++++++++++==++++++++++++===
=================++++++xxxxxxx+++++++++++++++++++++==========++++++++++++++++++++++++++++++++++++xxxxxxxxx#xx#xxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++==+++=======++=======+++================++++++++++++xxx++++++++++=============-
=======-=======++++++++xxxxxxxxxxxxx+++++++++++========+=++++xx++++++++++++xxx+xx#xxxxxxxxxx++++x+++++++++++++++++++++++++++++++++++++++++++++++++++++=++++++++=+++++++++++++++++++++++++++==========+++++==++==========++++++++++++++++==+=============+=
=============++++xxxxxxxxxxxxx###xxxxxxxxx#xx++++===++xxxxxxxxxxxxxxx+++++x#xx####xx#######xxxxxxxxxx+++xxxxx++++===++=====================++=+++++++++++=+++++++++==+++++=+++=+++==++++++===========++++++++++==============================++++++=======
=====+++++++++++x+++++xxxxxxxx#######xx##xxxxxxxxxxxxxxxxxxxxxxxxxxxx######xx###xxxx#####xxxxxxxx++++++xxxxxxxxx++====+=====================+++++++++++==============+++++=++++x++++++++++===++++++===-============----=====-===--------------------------
--=++++==+++=========++xxxxxxxxxxx++++++++++++++++x+++++++xxx+xxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxx+++++++++++++++++==+++++++++++x++++++++++++=+=================++++++++++++++==+++===============+++++++===--=====-----====+========------                   
++x+++++++++++++++++++++++++++++===+++++++++++========++=++++++++++++=======++++++++++++++++++=====++=+++++++++++++=============+++++++======--==---=========+==++++++++++++++++++========--===-=========-------=-=====+++++++++++======------------------
++++++++====+++++++++==============++++++++++++++++===++++=========++++++==+++++++++++++========--==================--------=========++=======------------==========++++++++++++++=========-----=====++==============================++++++===============
++==++++++++++++++++++====------==+++++++++x+++++==========+++=+++++xx+++++++=+++++++++++++++++======--=======----===========+++=====++++++++++++===============---=====================+=+=====++++++++++++++++++========-------=========++====+++=======
====++++++++++=+++++=====------=++++++++++++====----===--==+++++++++++++++++============++++++++++++++=========---=======+++++++++====================++==++++++++===+=======---===========+++++++==========+=========+=====----------====================
===========================--================-----------=============+++++++++=============------==--------------================++================--===================++++====------------=====================================---------======-----=====
=-----------========---------==-----========------------=================================-------=====----===============================-------------==----------===========+++++++=-==---------=====================----=========------------------------
=====--------========---------------------------==-=--=========--=--============================+++========================+=====++=========+==++========------------============================-------==------------------------------------------------
---------------------------------------------================+===++++++++++++================================--==============+++++++=======================------=-----====----===========================----====------  --------------    ------------  
-----------------------------==--------========================++++++++++===============================-------------==========================================---===----------------------------===========-===========---------------   --------------- 
--------------------------------=====+++++++++++++++++========+++++==================----------====-----------====--===========================================-----------------------------------------------------============--------------------=====-
      -------------==========+++++++++++++++++++++======+========++===========--====----------==-----------------------------======-------------==================---------------------------------------------------========--=-----------------------===
     -------------==========+++++++++++++++++++++++=================================---==----------------------------------=-------------------------------------------------------         -----------------------------------------------     ----------
    ------------------==========++++++++++++++++==========-----====------================----------         ----------------------------------------------------------------                   -  ---  ----------------------------------           ------