-''--''-'''-'''''----''----------''------'---'----------------------------------------..'+=--MAXZ1)+=-
.CC..CC.CCC.CCCCC....CC..........CC......C...C........................................''+CCCC

'BB''BB'BBB'BBBBB''''BB''''''''''BB''''''B'''B''''''''''''''''''''''''''''''''''''''''++C

XHHXXHHXHHHXHHHHHXXXXHHXXXXXXXXXXHHXXXXXXHXXXHXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXCC

CXXCCXXCXXXCXXXXXCCCCXXCCCCCCCCCCXXCCCCCCXCCCXCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC

'''-''''''''-''-''----'------------------''----'---------------'-----------------------..'+==-MAXZ11)+=-
CCC.CCCCCCCC.CC.CC....C..................CC....C...............C.......................''+CCCC

BBB'BBBBBBBB'BB'BB''''B''''''''''''''''''BB''''B'''''''''''''''B'''''''''''''''''''''''++C

HHHXHHHHHHHHXHHXHHXXXXHXXXXXXXXXXXXXXXXXXHHXXXXHXXXXXXXXXXXXXXXHXXXXXXXXXXXXXXXXXXXXXXXCC

XXXCXXXXXXXXCXXCXXCCCCXCCCCCCCCCCCCCCCCCCXXCCCCXCCCCCCCCCCCCCCCXCCCCCCCCCCCCCCCCCCCCCCC

''''''''''''-'--'---'''--------''----''---'--------------------'-------------------------.''+=--MAXZ1)++=-
CCCCCCCCCCCC.C..C...CCC........CC....CC...C....................C.........................'++CCCC

BBBBBBBBBBBB'B''B'''BBB''''''''BB''''BB'''B''''''''''''''''''''B'''''''''''''''''''''''''+CC

HHHHHHHHHHHHXHXXHXXXHHHXXXXXXXXHHXXXXHHXXXHXXXXXXXXXXXXXXXXXXXXHXXXXXXXXXXXXXXXXXXXXXXXXXC

XXXXXXXXXXXXCXCCXCCCXXXCCCCCCCCXXCCCCXXCCCXCCCCCCCCCCCCCCCCCCCCXCCCCCCCCCCCCCCCCCCCCCCCCC

-'-''''-''--''--'-----'----'''-'-----'--------''''---------------------------'------------..'++=-MAXX11)+==-
.C.CCCC.CC..CC..C.....C....CCC.C.....C........CCCC...........................C............''+CCCC

'B'BBBB'BB''BB''B'''''B''''BBB'B'''''B''''''''BBBB'''''''''''''''''''''''''''B''''''''''''++C

XHXHHHHXHHXXHHXXHXXXXXHXXXXHHHXHXXXXXHXXXXXXXXHHHHXXXXXXXXXXXXXXXXXXXXXXXXXXXHXXXXXXXXXXXXCC

CXCXXXXCXXCCXXCCXCCCCCXCCCCXXXCXCCCCCXCCCCCCCCXXXXCCCCCCCCCCCCCCCCCCCCCCCCCCCXCCCCCCCCCCCC

'''''''''-'''--''----'''--'----'--------'----''--''-----------------------------------------.''+==-MAXZZ1)+==-
CCCCCCCCC.CCC..CC....CCC..C....C........C....CC..CC.........................................'++CCCC

BBBBBBBBB'BBB''BB''''BBB''B''''B''''''''B''''BB''BB'''''''''''''''''''''''''''''''''''''''''+CC

HHHHHHHHHXHHHXXHHXXXXHHHXXHXXXXHXXXXXXXXHXXXXHHXXHHXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXC

XXXXXXXXXCXXXCCXXCCCCXXXCCXCCCCXCCCCCCCCXCCCCXXCCXXCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC

'''''''''--''--''----'''--'----'--------'----------------------------------------------------.''++=-MAAXZZ1)++=-
CCCCCCCCC..CC..CC....CCC..C....C........C....................................................'++CCCC

BBBBBBBBB''BB''BB''''BBB''B''''B''''''''B''''''''''''''''''''''''''''''''''''''''''''''''''''+CC

HHHHHHHHHXXHHXXHHXXXXHHHXXHXXXXHXXXXXXXXHXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXC

XXXXXXXXXCCXXCCXXCCCCXXXCCXCCCCXCCCCCCCCXCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC

------------'---------------------------------------------------------------------------------..''++=-MMAXXZ1))+==-
............C.................................................................................''++CCCC

''''''''''''B'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''++CC

XXXXXXXXXXXXHXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXCC

CCCCCCCCCCCCXCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC

-----------------------------------------------------------------------------------------------...''+==-MMAXXZ11)++=---
...............................................................................................'''++CCCC

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''+++CC

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXCCC

CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC

-------------------------------------------------------------------------------------------------..'''+==--MAAXXZ11))++==---
.................................................................................................''+++CCCCC

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''++CCC

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXCC

CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC

--------------------------------------------------------------------------------------------------...'''++==-MMAAXXZZ11)))++======--
..................................................................................................'''+++CCCCC

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''+++CCC

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXCCC

CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC

-------------.-..----...----....-----.-----..---........------------------------------------------.....'''+++=---MMAAXXXZZ1111)))))+
.............'.''....'''....''''.....'.....''...''''''''..........................................'''''+++CCCCCCC

'''''''''''''+'++''''+++''''++++'''''+'''''++'''++++++++''''''''''''''''''''''''''''''''''''''''''+++++CCC

XXXXXXXXXXXXXCXCCXXXXCCCXXXXCCCCXXXXXCXXXXXCCXXXCCCCCCCCXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXCCCCC

CCCCCCCCCCCCC C  CCCC   CCCC    CCCCC CCCCC  CCC        CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC

.....................................................................-.---------------------------.......'''+++====---MMMAAXXXZZZZ11
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'...........................'''''''+++CCCCCCCCCC

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++'+'''''''''''''''''''''''''''+++++++CCC

CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCXCXXXXXXXXXXXXXXXXXXXXXXXXXXXCCCCCCC

                                                                     C CCCCCCCCCCCCCCCCCCCCCCCCCCC

.......''.''''''.''''''.''''''''''.'''''''''''''.''''''''.'................---------------------.........'''''++++++===--MMMMAAXXXZZ
'''''''++'++++++'++++++'++++++++++'+++++++++++++'++++++++'+''''''''''''''''.....................'''''''''+++++CCCCCCCCCCC

+++++++CC+CCCCCC+CCCCCC+CCCCCCCCCC+CCCCCCCCCCCCC+CCCCCCCC+C++++++++++++++++'''''''''''''''''''''+++++++++CCCCC

CCCCCCC  C      C      C          C             C        C CCCCCCCCCCCCCCCCXXXXXXXXXXXXXXXXXXXXXCCCCCCCCC

                                                                           CCCCCCCCCCCCCCCCCCCCC

'''''''''''''+'''+'''''''''+''+'''''''''''''+'''''''''''''''''''''''''...........-----------.........'''''++++++====-----MMMAAXXXXZZ
+++++++++++++C+++C+++++++++C++C+++++++++++++C+++++++++++++++++++++++++'''''''''''...........'''''''''+++++CCCCCCCCCCCCCCC

CCCCCCCCCCCCC CCC CCCCCCCCC CC CCCCCCCCCCCCC CCCCCCCCCCCCCCCCCCCCCCCCC+++++++++++'''''''''''+++++++++CCCCC

                                                                      CCCCCCCCCCCXXXXXXXXXXXCCCCCCCCC

                                                                                 CCCCCCCCCCC

+++++++++++++++++++++++++++++++++++++++++++==++++++++++++++++'''+''''''''........................''''+++++===-----MMMAAAAAXXXZZZZZ11
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC+++C++++++++''''''''''''''''''''''''++++CCCCCCCCCCCCC

                                                             CCC CCCCCCCC++++++++++++++++++++++++CCCC

                                                                         CCCCCCCCCCCCCCCCCCCCCCCC

======+============-====================================+==+++++++++++'''''.'..............'''''+++===---MMMMAAAXXXXZZZZZ1111))))+++
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC+++++'+''''''''''''''+++++CCCCCCCCC

                                                                      CCCCC+C++++++++++++++CCCCC

                                                                           C CCCCCCCCCCCCCC

=============---------M----=-=======-----------------------==-=======++++++'''''''''''''''''+++===---MMAAAXXXZZZ111)))))++++++====-
CCCCCCCCCCCCCCCCCCCCCC CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC+++++++++++++++++CCCCCCCCC

                                                                           CCCCCCCCCCCCCCCCC

--------MM-MMMMAAAXXXXXXAAAMAMMMMMMMMMMMMMMMAAAAAAAAAAAAAMAAMAMMMMM-----=====+++++'''''++++===---MMAAAXXZZ111)))+++=====------
CCCCCCCC  C                                                        CCCCCCCCCCCCCCC+++++CCCCCCCCCC

                                                                                  CCCCC

AAAAAAAAAXAAXXZZ11ZZZZZZZZZZZZZXXXXXXXXXXXXZZZZZZZZZZZZZZZZZXZXXXAAAAAMMMMM----===++++=====---MMAAXXZZ111))++====---
                                                                           CCCCCCCCCCCCCCCCCCC

ZZZZZZZZ111111)+)1ZZZZZZZZ11))))))111111111)))))))))))))))1)))11ZZZZXXXXAAAMMMM----------MMMMAXXZZ111))+++==----
                                                                               CCCCCCCCCC

))))))+)+++++==+ZXXXXAAAXZ11111)+=+=+++++++==+===========++++++))))111ZZZXXXAAAAAMMMMMMMAAAXXXZZ11))+++===---
=========-=---+1XAAAMMMMAAXZZZ11)+=--------- ------     ------====+++))111ZZZZXXXXXXXXXXXZZZZZ11)+++==---
             -)ZXAMMMM--MMAAXXXZ1)+=--                         ----==++)))))11111ZZZ111111111)))+===---
                      CC

             +ZXAAMM-----MMAAAAAXZ)++=                             ----===++++))))))))))+++++++==--
                    CCCCC

            -)ZXAMMM-M---MMMAAMMAAZZ1+=-                             - ---=====+++==+++=====+===---
                    C CCC

            +ZXAMMM-----MMMMMMMMMMAAXZ1+=                                  --------====----------
                   CCCCC

            )ZAAM-------MMMMMMMMMMMMMAXZ1+=                                         -- --
                 CCCCCCC

            1XAMM====---MMMMMMMMMMM--MMAX1=-
                 CCCCCCC           CC

            )XM--=++==--MMMAAAMMMMMM----MAZ)=                                                                                     --
               CCCCCCCCC            CCCC

            1XM-==+===--MMMAAAAAAAMMMM---MAXZ)-                                                              ---------------===-=++)
               CCCCCCCCC              CCC

            1XM-======--M-MMMMAAAAAAMMMMMMMMMX)=                                                   ----------==++++++++++))+)))+)1ZZ
               CCCCCCCCC C

           =ZA-=+====---M-MMMMAAAAAAMMMMMMM--MA1=-                                            --- ----=--====+)))))1)1)1111ZZZZZXXXA
              CCCCCCCCCC C                 CC

           +ZA-=+====-------MMMMMMMMMMM-MM---MMMX)=                                       - --===-===+++++)))111ZZZZZZZXXXXAAAXXAMMM
              CCCCCCCCCCCCCC           C  CCC

           +ZA-+++++==--=---MMMMMMMM-MMMMM------MX1+                                    ----====+++++)))))11ZZXXXAAAAAAAAAMMMMAM--=-
              CCCCCCCCCCCCCC        C     CCCCCC                                                                                CCCC

           )XM=+++++====-MMAAMMMMMMMMMMMAMMM------MZ)=                                 --===++++)))))111ZZZZXXAAAMMMMMMMMM----M-====
              CCCCCCCCCCC                   CCCCCC                                                                        CCCC CCCCC

           )XM-=++++====-MMAAAAMMMMMMAAAAM-MMM--=--MX1=                                -===++)+)11111ZZXXXXAAAMMMM--------==----=+++
              CCCCCCCCCCC                 C   CCCCC                                                               CCCCCCCCCCCCCCCCCC

           )AM-++'+++++=--MMMMAAAAXAXAAAAM---------MMA1=                            --==+++))))1ZXZXXXAAAAMMMMM---===========-==++''
              CCC+CCCCCCCC                CCCCCCCCC                                                            CCCCCCCCCCCCCCCCCCC++

                 C                                                                                                                CC

           )AM=++++++++=--MMMAAAAAXXXXXAAM--M------MMMA1)-                        --===+))11111ZXAAAAAMMMMM-----===========+=-=+''''
              CCCCCCCCCCCC                CC CCCCCC                                                        CCCCCCCCCCCCCCCCCCCCC++++

                                                                                                                                CCCC

           +AM=+++'+++===-MMAAAXXXXXXXXXAMM-MMMM------MMX)-                      --=++))11ZZZXXAAMMMMM-------============++++==+''''
              CCCC+CCCCCCC                 C    CCCCCC                                                CCCCCCCCCCCCCCCCCCCCCCCCCC++++

                  C                                                                                                             CCCC

           )AM=++''++++=MMMMAAXXXXXXXXXXAMMMMMMMM-------MX+                    --=++)))1ZZXXXAAMM-----==============+++++++++-='''''
              CCC++CCCCC                         CCCCCCC                                         CCCCCCCCCCCCCCCCCCCCCCCCCCCCCC+++++

                 CC                                                                                                            CCCCC

           +A-=+''+++++=MMMAAAXXXAXXXXZXAAMMAAAMMM----==-AZ)-                --==+))11ZZXXAAMMM----=======+=========+++++++++=+'''''
             CCC++CCCCCC                          CCCCCCC                                      CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC+++++

                CC                                                                                                             CCCCC

           =A-=+''+=++=-MMMAAAAXXXXZZZZZXXXXXAAAMM----===-AX1+             --==++)11ZZXAAAMM----======+++++=========+++++++'+=+'''''
             CCC++CCCCCC                          CCCCCCCC                                  CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC+CCC+++++

                CC                                                                                                         C   CCCCC

           =A-='''+++=-MMMMAAAXXZZ111111ZXZZXXXAAMM--=====-MAZ)-          --=++))1ZZXAAMMM---===+++++++++++=========+++'''''++'.''''
             CC+++CCCCC                            CCCCCCCC                               CCCCCCCCCCCCCCCCCCCCCCCCCCCCC+++++CC+'++++

               CCC                                                                                                     CCCCC  C+CCCC

                                                                                                                               C

           -X-=+''++-MAMMMAAXZ111)11)))1ZZ11ZZZXAA---======-MAZ)-      ---=++))11ZZXXAMM---==++++++++++++++=========+++'''''++'...''
             CCC++CCC                             CCCCCCCCCC                            CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC+++++CC+'''++

                CC                                                                                                     CCCCC  C+++CC

                                                                                                                               CCC

           -XM-++++-MMAAAXXXZZ111))))))11Z1111ZXXAMM-=======--MX)=  --===++))11ZZZXAAM---==+++++++++++++++++++====++++''''''++'..'''
              CCCCCC                                CCCCCCCCCC                        CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC++++++CC+''+++

                                                                                                                      CCCCCC  C++CCC

                                                                                                                               CC

            ZA-====MMAAAXAXXZZZZZZ111)1ZZZ1111ZZXXAAM-========-AZ1+==++++))11ZZZXXAMM--==++++++'''+++++++++++++++++++'''''''++''''''
              CCCCC                                  CCCCCCCCCC                      CCCCCCCCCC+++CCCCCCCCCCCCCCCCCCC+++++++CC++++++

                                                                                               CCC                   CCCCCCC  CCCCCC

            ZA-===---MAAAAXXXXZZZZZZZZZZZZ111ZZZZXXXAMM-==++++=-MAXZ1)))111ZZZZXXAAM-===++++'+'''''+++++++++++'+'++++''''''+=+''''''
              CCCCCCC                                  CCCCCCCCC                    CCCCCCCC+C+++++CCCCCCCCCCC+C+CCCC++++++CCC++++++

                                                                                            C CCCCC           C C    CCCCCC   CCCCCC

            ZM--==+==--MMMAAAAAAAAAXXZZZZZZZZZZZZXXXXAMM-==+++==---MXZZZZZZXXXXXXXAM--===++++'''''''+++++++++'''''''+++++++=-=+++'+'
              CCCCCCCCC                                 CCCCCCCCCCC                 CCCCCCCCC+++++++CCCCCCCCC+++++++CCCCCCCCCCCCC+C+

                                                                                             CCCCCCC         CCCCCCC             C C

            ZM-=+++==--MMMMMMMMMMAXXXZXXXXXXXXXZXXXZXXAA-===++++===-MAAXXXXXXXXXXXAAM--===+++++''''''''++++++'''''''+++++==---=+++++
              CCCCCCCCC                                 CCCCCCCCCCCC                 CCCCCCCCCC++++++++CCCCCC+++++++CCCCCCCCCCCCCCCC

                                                                                               CCCCCCCC      CCCCCCC

            1AM-====-MMMMMMMMMMMAAXXXXAAXXXXXXXXXXXZXXAAM--====++++==-MAAXXXXXXXXXAAAMM--====++++''''''''+++++'''''+++====-MM-====++
               CCCCCC                                    CCCCCCCCCCCCC                 CCCCCCCCCC++++++++CCCCC+++++CCCCCCCC  CCCCCCC

                                                                                                 CCCCCCCC     CCCCC

            +XM-----MMMMAMMM---MMMMAXXXXZZZZZZZZXXXXXAAAMMM---==++++=---MAXXAAAMMMAAAMM----====+++''''''''+++++++++++===---MMM-===++
               CCCCC        CCC                            CCCCCCCCCCCCC               CCCCCCCCCCC++++++++CCCCCCCCCCCCCCCCC   CCCCCC

                                                                                                  CCCCCCCC

            +XAM-------MM----=--MMAXZZZ11111111ZZXXXXXXXXAAMM-=++'++====MMMM---=---MMMM-----====+++'''.'''++========----MMMAA--=====
                CCCCCCC  CCCCCCC                             CCCC+CCCCCC    CCCCCCC    CCCCCCCCCCCC+++'+++CCCCCCCCCCCCCC     CCCCCCC

                                                                 C                                 CCC+CCC

                                                                                                      C

            +ZAM===----MMMM--MMMAAXZ1ZZ11111111ZZZXXXXXXXXAMM-=++'+++===---=++++++=---------====+++'''..'''+==-----MMMMMMMAAM-======
                CCCCCCC    CC                                CCCC+CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC+++''+++CCCCCCCC          CCCCCCC

                                                                 C                                 CCC++CCC

                                                                                                      CC

            =ZM-++===--MMMMMMMMMMAXXZXZZ1111Z1ZZZZZZZXXXXXAMMM--=++++'+====+''...''+============+++'''...''+==-MMAAAAMMMMMMAA-======
               CCCCCCCC                                       CCCCCCC+CCCCCC++'''++CCCCCCCCCCCCCCCC+++'''++CCCC              CCCCCCC

                                                                     C      CC+++CC                CCC+++CC

                                                                              CCC                     CCC

             1M-=++==--MMAMMMMM--MAXXXZZZZZZZZZZZZZZZZZXXXAAAMMM-==+'''++++'..---..'++=+=======+++'''''.'''++=-MMAAAAMM--MMAM-======
               CCCCCCCC        CC                               CCCC+++CCCC+''...''+CCCCCCCCCCCCCC+++++'+++CCCC        CC    CCCCCCC

                                                                    CCC    C++'''++C              CCCCC+CCC

                                                                            CCXXXCC                    C

                                                                              CCC

             )A-=+===--MAAM---==-MAZZZZZZZZ1111ZZZZZXZZZZZXAAAAMM-=+'..'+++'..----.''++++++===+++''''''''''+==--MAAAMM-----MM-======
               CCCCCCCC    CCCCCC                                CCC+''+CCC+''....'++CCCCCCCCCCCC++++++++++CCCCC      CCCCC  CCCCCCC

                                                                    C++C   C++''''+CC            CCCCCCCCCC

                                                                     CC     CCXXXXC

                                                                              CCCC

             1A=+++==-MMMM-----AXZ111ZZZZXZZZZZZZZXXXXZZZZXXAAAAMM-+'..'+++''.-----.''''+++++++++''''....'''++==-MMM--=====---======
               CCCCCCC    CCCCC                                   CC+''+CCC++'.....'++++CCCCCCCCC++++''''+++CCCCC   CCCCCCCCCCCCCCCC

                                                                    C++C   CC+'''''+CCCC         CCCC++++CCC

                                                                     CC      CXXXXXC                 CCCC

                                                                              CCCCC

             )XM=++=-MMMAAAAAXXZ11)11ZZZZXXZZXXXXZXXZZZZZZZXXAAAMM-='..''+++''------..''++++++++''.......''''++==----==++++=--======
                CCCCC                                             CC+''++CCC++......''++CCCCCCCC++'''''''++++CCCCCCCCCCCCCCCCCCCCCCC

                                                                    C++CC   CC''''''++CC        CC+++++++CCCC

                                                                     CC       XXXXXXCC            CCCCCCC

                                                                              CCCCCC

             +ZA-==--MAAXZZZZ111))))11ZZZZZZZZZZZZZZ1111ZZZXXXXAAM-=+'.''++++'.-----...''+++++++'..........'''++==--=+++'''=-=+===+=
                CCCCC                                             CCC+'++CCCC+'.....'''++CCCCCCC+''''''''''+++CCCCCCCCCC+++CCCCCCCCC

                                                                     C+CC    C+'''''+++CC       C++++++++++CCC          CCC

                                                                      C       CXXXXXCCC          CCCCCCCCCC

                                                                               CCCCC

             =ZAM-=--AXZ11))))11))))1111111)))))))))1)11ZZZZZXXAAM-==+'''++++''.------.'''+++++''...........'''+====++'''''=-=++====
                 CCCC                                             CCCC+++CCCC++'......'+++CCCCC++'''''''''''+++CCCCCCC+++++CCCCCCCCC

                                                                      CCC    CC+''''''+CCC     CC+++++++++++CCC       CCCCC

                                                                               CXXXXXXC          CCCCCCCCCCC

                                                                                CCCCCC

             =ZXM--MAXZ111)))111))++++++++==+++++)))11ZZZZZZZXAAMM--=+''''++'+''.------.'''++++''.............'+++++''''.''+-=++===+
                 CC                                               CCCC++++CC+C++'......'+++CCCC++'''''''''''''+CCCCC++++'++CCCCCCCCC

                                                                      CCCC  C CC+''''''+CCC    CC+++++++++++++C     CCCC+CC

                                                                                CXXXXXXC         CCCCCCCCCCCCC          C

                                                                                 CCCCCC

             -1XAMMMXXZZ11)))))++=============++)11ZZZZXXXXXXAAMMMM-=++''''''''+'-------..''++++''......--....''++'''++''''+==+++=++
                                                                   CCCC++++++++C+.......''++CCCC++''''''..''''++CC+++CC++++CCCCCCCCC

                                                                       CCCCCCCC C'''''''++CC    CC++++++''++++CC  CCC  CCCC

                                                                                 XXXXXXXCC        CCCCCCXXCCCC

                                                                                 CCCCCCC                CC

             =)ZXAAAXXZZZ))++++===--==+==+=+++))11ZZZZXXXXXXAAAAAAAM-=+''''''''''..-------.''+++''''....---....'''''+++++''+==+++=++
                                                                    CCC++++++++++''.......'++CCC++++''''...''''+++++CCCCC++CCCCCCCCC

                                                                       CCCCCCCCCC++'''''''+CC   CCCC++++'''++++CCCCC     CC

                                                                                 CCXXXXXXXC         CCCCXXXCCCC

                                                                                   CCCCCCC              CCC

          -==+)ZXAAAXXZZ111))))++===+++++++))111111111ZZXXXXXXAAAAAMM-=+''.....''''.-------.''''''''''..----..'''''++===++'+==++++=+
                                                                     CCC++'''''++++'.......'++++++++++''....''+++++CCCCCCC+CCCCCCCCC

                                                                        CC+++++CCCC+'''''''+CCCCCCCCCC++''''++CCCCC       C

                                                                          CCCCC    CXXXXXXXC          CCXXXXCC

                                                                                    CCCCCCC             CCCC

       --=+)))1ZZXXXXXZZZZZZ11)))++)))))))))11))))))))11ZZZXXAAAAAAM--=+''......''+'.-------..'''''''''..--..'''''+++====+++===++==+
                                                                    CCCC++''''''++C+'.......''+++++++++''..''+++++CCCCCCCCCCCCCCCCCC

                                                                        CC++++++CC C+'''''''++CCCCCCCCC++''++CCCCC

                                                                          CCCCCC    CXXXXXXXCC         CCXXCC

                                                                                     CCCCCCC             CC

     -=++)1ZZ11ZZXXXXXXXXXXXXXZZZZZZZZ111111))++)))11111ZZZXAAAAAAAM-==+''.----.''+'---------....''''''''...''+'''++=====+++--====-=
                                                                    CCCC++'....'++C+.........''''++++++++'''++C+++CCCCCCCCCCCCCCCCCC

                                                                        CC+''''+CC C'''''''''++++CCCCCCCC+++CC CCC

                                                                          CXXXXC    XXXXXXXXXCCCC        CCC

                                                                           CCCC     CCCCCCCCC

  --=+)1ZXXAAXXZZXAAAAXAAAAAAAAAAXAAXZZZ111)))))11111111ZZZXXXXAAAMM-==+'..----.''+'------------..'''+++++''+++'.'++=+==+++=--====-=
                                                                    CCCC+''....'++C+............''+++CCCCC++CCC+'+CCCCCCCCCCCCCCCCCC

                                                                        C++''''+CC C''''''''''''++CCC     CC   C+C

                                                                         CCXXXXC    XXXXXXXXXXXXCC              C

                                                                           CCCC     CCCCCCCCCCCC

-=+)1ZZXAMM--MAAXAAMMAAXXAAAAAAAAXAXZ1111)))++)1111)111111ZZZXXXXAM--===''.----.'++.------------.''+'''++++++=+''++=++==+'+=--======
           CC                                                      CCCCC++'....'+CC'............'++C+++CCCCCCCC++CCCCCCCC+CCCCCCCCCC

                                                                        CC+''''+C  +''''''''''''+CC CCC        CC        C

                                                                          CXXXXC   CXXXXXXXXXXXXC

                                                                           CCCC     CCCCCCCCCCCC

+)1ZXXAM--====-MAAAAAAXXZXXXAAXXZ11))+++++++++))))))111))))1ZXXXXXAM--==+'...-...''..-----------.'++++'++++++++'++++====+''+-M=++===
        CCCCCCC                                                     CCCCC+'''.'''++''...........'+CCCC+CCCCCCCC+CCCCCCCCC++CC CCCCCC

                                                                         C+++'+++CC++'''''''''''+C    C        C         CC

                                                                          CCCXCCC  CCXXXXXXXXXXXC

                                                                             C       CCCCCCCCCCC

1ZXAMM--====+==-MAAAAAXXXZZZXZ11)))++===+=+++++++))11))++))1XXXXXXAAM-==++'......''''''.--------.'++++++++++++''++++=---=+'+-M=++==+
      CCCCCCCCCC                                                     CCCCC+''''''++++++'........'+CCCCCCCCCCCC++CCCCCCCCCC+CC CCCCCC

                                                                          C++++++CCCCCC+''''''''+C            CC          C

                                                                           CCCCCC      CXXXXXXXXC

                                                                                        CCCCCCCC

XAMM-===++++++=-MAXAMMAXXZZ11111)++++==+++)))+++)11))++))1ZXAAAAAAAAMM-==+'..'''...''++'.-------.'+++++++++=++'''+===---=+''=M-+++=+
    CCCCCCCCCCCC                                                      CCCC+''+++'''++CC+'.......'+CCCCCCCCCCCC+++CCCCCCCCC++C CCCCCC

                                                                          C++CCC+++CC  C+'''''''+C            CCC         CC

                                                                           CC   CCC     CXXXXXXXC

                                                                                         CCCCCCC

M--===++++++++=-MAXAAMAZZ1))))1)++)++==)11)1111ZZ1)))))11ZZXAAAAAXXAAM--=+''''''...'''+'.------.''++++++++===+'''+=-----=+''=M-+'+=+
 CCCCCCCCCCCCCCC                                                      CCCC++++++'''+++C+'......'++CCCCCCCCCCCC+++CCCCCCCCC++C CC+CCC

                                                                          CCCCCC+++CCC C+''''''+CC            CCC         CC    C

                                                                                CCC     CXXXXXXC

                                                                                         CCCCCC

-==+++++++++++==-AXXXXZ1))))11ZZZ1ZZ11)1ZZZZXXXXZ1111ZZZZXZZZZZXXXXAAM-==+'''''.....'''..------.'++++'.'''++++'''+=-=---=+''=M-+++=+
CCCCCCCCCCCCCCCCC                                                     CCCC+++++'''''+++''......'+CCCC+'+++CCCC+++CCCCCCCCC++C CCCCCC

                                                                          CCCCC+++++CCC++''''''+C    C+CCC    CCC         CC

                                                                               CCCCC   CCXXXXXXC      C

                                                                                         CCCCCC

=++++++++++++==-MAXZ1111))11ZXXXXXZZXXXAAAAAAAXXZZZZZXZZZZ1ZZZZZZXAAM--==+'''''....'.'..------.'+++++'''''+++'''++=-=====+'+=M-++==+
CCCCCCCCCCCCCCCC                                                     CCCCC+++++''''+'+''......'+CCCCC+++++CCC+++CCCCCCCCCC+CC CCCCCC

                                                                          CCCCC++++C+C++''''''+C     CCCCC   CCC          C

                                                                               CCCC C CCXXXXXXC

                                                                                        CCCCCC

++++++++++++==--MAXZ)1ZZZZXZXXXXXXXAAM-=--MMMAXXXXXZZZZ11111ZZZZXXAAMM-==++'''''''''..-------..''++++''''''''''+====-====+++=M-++==+
CCCCCCCCCCCCCCCC                      CCCC                            CCCCC+++++++++''.......''++CCCC++++++++++CCCCCCCCCCCCCC CCCCCC

                                                                           CCCCCCCCC++'''''''++CC    CCCCCCCCCC

                                                                                    CCXXXXXXXCC

                                                                                      CCCCCCC

++++++++++==-MMAAMAX1ZXAXXXXZXXXXAMM-=+++-MAXXZZZZ111)11111ZZZZZZXAAAM--==++'+'''''..--------..''+++++'''..'''+====--======+=M-====+
CCCCCCCCCCCCC                       CCCCCC                            CCCCCC+C+++++''........''++CCCCC+++''+++CCCCCCCCCCCCCCC CCCCCC

                                                                            C CCCCC++''''''''++CC     CCC++CCC

                                                                                   CCXXXXXXXXCC          CC

                                                                                     CCCCCCCC

++++++++===-MMMM-==MAMMMAAAXXAAAM---MMM-MAX111111)+))))111111ZZZXXAAAAM--=++++'''....--------..'''''''...-..''+===---=++===+=M-===++
CCCCCCCCCCCC    CCC              CCC   C                               CCCCCCC+++''''........''+++++++'''.''++CCCCCCCCCCCCCCC CCCCCC

                                                                              CCC++++''''''''++CCCCCCC+++'++CC

                                                                                 CCCCXXXXXXXXCC       CCCXCC

                                                                                     CCCCCCCC            C

===++++++==---==+''+=-MMAAAAXXAAAAAXZZZZ11)+))+)+++))))))))111ZZZXAAAAM--==++''''....-----....'''''.....--...''++=--==++===+=M=+++++
CCCCCCCCCCCCCCCCC++CCC                                                 CCCCCC++++''''.....''''+++++'''''..'''++CCCCCCCCCCCCCC CCCCCC

                 CC                                                          CCCC++++'''''++++CCCCC+++++''+++CC

                                                                                 CCCCXXXXXCCCC     CCCCCXXCCC

                                                                                     CCCCC              CC

++++'++++++=+=+=+'.'=-MAXXXZZ111111)))))+)+++++++++++++))))1ZZZZXXAAAAMM-===+'''''...--...''''.......'...-....'+==--=+++==++=-=+++++
CCCC+CCCCCCCCCCCC+'+CC                                                  CCCCC+++++'''..'''++++'''''''+'''.''''+CCCCCCCCCCCCCCCCCCCCC

    C            C+C                                                         CCCCC+++''+++CCCC+++++++C+++'++++C

                  C                                                               CCCXXCCC    CCCCCCC CCCXCCCC

                                                                                     CC                  C

+'''''+++++++====+'+=-MAXZ1)+++++)))))))+======+===++++))11ZZZZZXXAAAAMM-====+''''........'++'..'...''.....''.'+==--=''+++'+=-=++++=
C+++++CCCCCCCCCCCC+CCC                                                  CCCCCC++++''''''''+CC+''+'''++'''''++'+CCCCCC++CCC+CCCCCCCCC

 CCCCC            C                                                           CCCC++++++++C  C++C+++CC+++++CC+C      CC   C

                                                                                  CCCCCCCC    CC CCC  CCCCC  C

''''''+'++++==---===-MAXZ1+++++++))++)++=========++))111ZZZXXXXXAAAMAAAM-=+====+''.........'+'..''...'....'''''++===+''++'''+-=+'''+
++++++C+CCCCCCCCCCCCC                                                   CCCCCCCC++'''''''''+C+''++'''+''''+++++CCCCCC++CC+++CCCC+++C

CCCCCC C                                                                        CC+++++++++C C++CC+++C++++CCCCC      CC  CCC    CCC

                                                                                  CCCCCCCCC   CC  CCC CCCC

'''''''++++==--MM----MAXZ1+)))1))))))))++===++++))111ZZXXXXAAAXXXAMMAAAM-=+==--=+'.......-.++''''+''......'++''''+++''++'''+=-=+''+=
+++++++CCCCCCCC  CCCC                                                   CCCCCCCCC+'''''''.'CC++++C++''''''+CC++++CCC++CC+++CCCCC++CC

CCCCCCC                                                                          C+++++++'+  CCCC CC++++++C  CCCC   CC  CCC     CC

                                                                                  CCCCCCCXC         CCCCCC

                                                                                         C

'''''''+++===----=+++=-MXZ11ZZZ111))))))+++))11111ZZZXXXAAAAAAXXAAAAAAXAM-===--=++'.'..'..'++'+++''.......'++''''+++''++'''+=-=++''=
+++++++CCCCCCCCCCCCCCCC                                                  CCCCCCCCC+'+''+''+CC+CCC++'''''''+CC++++CCC++CC+++CCCCCC++C

CCCCCCC                                                                           C+C++C++C  C   CC+++++++C  CCCC   CC  CCC      CC

                                                                                   C CC CC         CCCCCCC

''+'+++++====--==+'''+=MXZ11ZZZ11))))))))1111ZZZZZZZXXAAAMAAAAAXXAAXXXXAAM-==--==+'''..''.'=+'+=+..-......''++''+=++'+++'''++=-++''+
++C+CCCCCCCCCCCCCC+++CC                                                   CCCCCCCC+++''++'+CC+CCC''.''''''++CC++CCCC+CCC+++CCCCCC++C

CC C              CCC                                                             CCC++CC+C  C   ++'++++++CC  CC    C   CCC      CC

                                                                                     CC  C       CCXCCCCCC

                                                                                                   C

'''++'+++====---==+++=-AZ1)111111111ZZXXXXXXZZXXAAAAAAAAMMAAAAXXAXXXXZZXAM--====+''..-.'''+=+'+'.---.......'++'+++++++++'''+'==+'..+
+++CC+CCCCCCCCCCCCCCCCC                                                   CCCCCCC++''.'+++CCC+C+'...'''''''+CC+CCCCCCCCC+++C+CCC+''C

CCC  C                                                                           CC++'+CCC   C C+'''+++++++C  C         CCC C   C++

                                                                                   CCXC         CXXXCCCCCCC                      CC

                                                                                     C           CCC

''++++++====----==+++-MX1)11ZXXXAXXAAAAAAAAAXXXXAAAAAAXXAAAAAAXXAXXXXZZZXAM-====+''''..'''++''..----...'....'++=+++==-=+..'''==='..'
++CCCCCCCCCCCCCCCCCCCC                                                     CCCCCC++++''+++CC++''....'''+''''+CCCCCCCCCCC''+++CCC+''+

CC                                                                               CCCC++CCC  CC++''''+++C++++C           ++CCC   C++C

                                                                                     CC       CCXXXXCCC CCCC            CC       CC

                                                                                                CCCC

'+++++++=====--==+'++-MAZ1ZAM-M-----=--MMMAAXXXXXXXXXXZZXXXAAAAAAAXXXXXXXAM-=+++++++'++++''''.----..........'++=++=---=+..'''=-=+..'
+CCCCCCCCCCCCCCCCC+CCC       C CCCCCCCC                                    CCCCCCCCC+CCCC++++'....''''''''''+CCCCCCCCCCC''+++CCCC''+

C                 C                                                                 C    CCCC+''''++++++++++C           ++CCC    ++C

                                                                                             CXXXXCCCCCCCCCC            CC       CC

                                                                                              CCCC

'+++++=+====----==++==-MXZXM=+==+++++==-MMAAAXXXXXZZZZZZZZXAMMAAAAAAAXXAAAM-=++++++++===++''..---.'''......''+====-MM-=+.''++=-=+'''
+CCCCCCCCCCCCCCCCCCCCCC     CCCCCCCCCCCC                                   CCCCCCCCCCCCCCC++''...'+++''''''++CCCCCC  CCC'++CCCCCC+++

C                                                                                         CC++'''+CCC++++++CC           +CC      CCC

                                                                                            CCXXXC   CCCCCC             C

                                                                                              CCC

'+++++++==-------=+''+=MZXXM==+''''''++=-MAMMAXXXXZXXXXZZZZXAAMMMMAMMMMM--==++'''++=++==++''.-----'''''...''+==---MMM-='.'+''===++''
+CCCCCCCCCCCCCCCCCC++CC     CCC++++++CCCC                               CCCCCC+++CCCCCCCCC++'.....+++++'''++CCCCCC   CC+'+C++CCCCC++

C                  CC          CCCCCC                                         CCC         CC+'''''CCCCC+++CC           C+C CC     CC

                                                                                            CXXXXX     CCC              C

                                                                                             CCCCC

'++++======---M--='.'=-AZXAM-==+'''''++=-MMAAXXXXZZXXXXXZZZZZXAMMMAMM---==++++''++==+++=+'''--..--..''''''++===----MMM='.'+''==++++'
+CCCCCCCCCCCCC CCC+'+CC     CCCC+++++CCCC                            CCCCCCCCC++CCCCCCCCC+++..''..''++++++CCCCCCCCC   C+'+C++CCCCCC+

C                 C+C           CCCCC                                         CC         CCC''++''++CCCCCC             C+C CC      C

                   C                                                                        XXCCXXCC                    C

                                                                                            CC  CC

+++++======---MM-=+''+MAZXAM--==+''''+====-AXZZZZZZZZZZXAXXZZXXAMMMMMM-===+'''''++==+'+==''.--..-.....''+++=-=+==---MM='.'+''==++++'
CCCCCCCCCCCCCC  CCC++C      CCCCC++++CCCCCC                           CCCCC+++++CCCCC+CCC++'..''.'''''++CCCCCCCCCCCC  C+'+C++CCCCCC+

                   CC            CCCC                                      CCCCC     C   CC+''++'+++++CC               C+C CC      C

                                                                                           CXXCCXCCCCC                  C

                                                                                            CC  C

++++=+====---MAAM-=+'+-AZZXA-====+'''++=--=-AXZ11ZZZZZZZXAAAXXXAAAMMMM----==+'''++--+'+=='...-....'...''+==---++=---MM-'.'=+'+==+=++
CCCCCCCCCCCCC    CCC+CC     CCCCCC+++CCCCCCC                          CCCCCCC+++CCCCC+CCC+'''.''''+'''++CCCCCCCCCCCC  C+'+CC+CCCCCCC

                    C             CCC                                        CCC     C   C+++'++++C+++CC               C+C  C

                                                                                          CCCXCCCC CCC                  C

                                                                                             C

++++=====--MMAAXAM-=++-AZZXAM==++++'''+=MAAMMAXXZZZZXXXZXXXXAXAAMMM-----=--=+'''++==+''++'........''''++===---++=MM-MM='.+=++==+==++
CCCCCCCCCCC       CCCCC      CCCCCC+++CC                           CCCCCCCCCC+++CCCCC++CC+''''''''++++CCCCCCCCCCC  C  C+'CCCCCCCCCCC

                                   CCC                                       CCC     CC  C++++++++CCCC                 C+

                                                                                          CCCCCCCC                      C

++++====---MAAXXXXM-=+=MXXXAM-=+++=++++=-AXZXXAAXXZZZZZZZ1+)XAAAM--===--====+''.+++=='.''......-..'++++====--=++=-----+''+=++=++==++
CCCCCCCCCCC        CCCC      CCCCCCCCCCCC                        CCCCCCCCCCCC++'CCCCC+'++''''''.''+CCCCCCCCCCCCCCCCCCCC++CCCCCCCCCCC

                                                                             CC+     C+CC++++++'++C                    CC

                                                                               C      C  CCCCCCXCC

                                                                                               C

++++====--MMAXXXZXXA--=-AAAMM--=++=====--MAXZZXAAAAXXZ111) -ZAAAM--=++=-=++==+'.'''++''''...''....'++++===---=+==----+'.'+====++++++
CCCCCCCCCC          CCCC     CCCCCCCCCCCC                        CCCCCCCCCCCCC+'+++CC++++'''++''''+CCCCCCCCCCCCCCCCCCC+'+CCCCCCCCCCC

                                                                              C+CCC  CCCC+++CC++++C                   C+C

                                                                               C         CCC  CCCC                     C

++++===--MMAAXXZZZZAM-=-AXAM----===-----MMMMXZZXXAAMMAZZ11))XAMAAM--=++==++===+..'..'''+'..'++'...'++++++=----==----=''.'+===++++'''
CCCCCCCCC            CCC    CCCCCCCCCCCC                          CCCCCCCCCCCCC''+''+++C+''+CC+'''+CCCCCCCCCCCCCCCCCC++'+CCCCCCCC+++

                                                                               ++C++CCC C++C  C+++C                  CC+C        CCC

                                                                               CC CC     CC    CCC                     C

+++===---MAAXXZZZZZA-=+=MAXAAMAAMMMMMMMMMMMMAAAXXXAM-MAXAAAM-=--MM-==+'+=+++++'......''++'.''++...''++''++=-M---M--=+'..'====+''+'''
CCCCCCCCC           CCCC                            C       CCCC  CCCC+CCCCCCC+''''''++CC+'++CC'''++CC++CCCC CCC CCCC+''+CCCCC++C+++

                                                                      C       C++++++CC  C+CC  +++CC  CC             C++C     CC CCC

                                                                               CCCCCC     C    CCC                    CC

++===---MMAXXXZZ1ZZA-+++=MAAMMAXXXXAAAAAAAMMMMAMAAAMMMMAMMM-=+'+=--==+''++'++'...--...'++'...'++'.'''''''++=MM-MM-=++'.'+====+.''++'
CCCCCCCC            CCCCC                                  CCC+CCCCCCC++CC+CC+'''..'''+CC+'''+CC+'+++++++CCC  C  CCCC+'+CCCCCC'++CC+

                                                              C       CC  C  C+++''+++C  C+++C  C+CCCCCCC            C+C      +CC  C

                                                                              CCCXXCCC    CCC    C                    C       C

                                                                                 CC

++===--MMAAXXXZZ1ZXA-+''+=MM--MAXZZZXXXAAAAAAMAAAAMMMMMMMM-==+..'=M--=+'''.'++'...-....'''....++'..'''+++++=---MM-+'''.'+===='.''++'
CCCCCCC             CC++CC  CC                            CCCC''+C CCCC+++'+CC+'''.''''+++''''CC+''+++CCCCCCCCC  CC+++'+CCCCC+'++CC+

                      CC                                      ++C      CCC+C  C+++'++++CCC++++  C++CCC             CCC+C     C+CC  C

                                                              CC          C    CCCXCCCC   CCCC   CC                   C       C

                                                                                  C

====--MMAAXXZZ111ZXM-+''+=-M----MAXZZZXXAAAAAAAAAAMMMMMMMA-=+++..+MAM-+''...'++'........''...-.''....'+=====-----=+'''''+===+'''++++
CCCCCC              CC++CCC CCCC                          CCCCC''C   CC++'''+CC+''''''''++'''.'++''''+CCCCCCCCCCCCC+++++CCCCC+++CCCC

                      CC                                       ++      CC+++C  C++++++++CC+++'+CC++++C             CCCCC     CCC

                                                               CC        CCC    CCCCCCCC  CCCXC  CCCC

                                                                                             C

===---MMAXXXZ11)1ZXM='.''+=-------AXXXXAAAAMMMAAAMM----MM-M=+'+''+-MAM=+''..''++'''..'......--..'....''+=--M---===+'.'''++++++''+''+
CCCCCC              C+'++CCCCCCCCC                 CCCC  C CC+C++CC   CC++''++CC+++''+''''''..''+''''++CCCC CCCCCCC+'+++CCCCCC++C++C

                     C+CC                                    C CC       CC++CC  CCC++C++++++''++C++++CC            C+CCC      CC CC

                      C                                                   CC       CC CCCCCCXXCC CCCC               C

                                                                                            CC

==----MAAXXZ11)))1XM='..'+====----MAXXAAMMMMMMMMMMM=++==----+'+++=-MMM-++'''''++''+'.''.........'...'''+=-MMM--==+'.''++++++++''''''
CCCCCC              C+''+CCCCCCCCC                 CCCCCCCCCC+CCCCC   CCC+++++CC++C+'++'''''''''+'''+++CCC   CCCCC+'++CCCCCCCC++++++

                     C++C                                    C           CCCCC  CC C+CC+++++++++C+++CCC           C+CC        CCCCCC

                      CC                                                            C  CCCCCCCCC CCC               C

==--MMMAXXXZ1)))1ZXM='..''=======-MMAAMMMM-=--MM---=+++++++=+'+==------=+''''++'''+'..'.---...'''...'''+-MAAAM-==+'''+=+''+=+'''..''
CCCC                C+''++CCCCCCCC        CCCC  CCCCCCCCCCCCC+CCCCCCCCCCC++++CC+++C+''+'...'''+++'''+++CC     CCCC+++CCC++CCC+++''++

                     C++CC                                   C           CCCC  CCC C++C+'''+++CCC+++CCC           CCC   CC   CCC++CC

                      CC                                                            CC CXXXCCC   CCC                            CC

                                                                                        CCC

==-MMMAAXZZ1))))1XM-+.--..+==----=--------==-------=+++++''+++==----==--=''+==+'''+..'.-.--..'++'''''+=-AAAAAA-===++===+''=-+'''..'+
CCC                CC'..''CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC++CCCCCCCCCCCCCC++CCCC+++C''+'.'..''+CC+++++CCC      CCCCCCCCCC++CCC+++''+C

                     +''++                               CC              CC    CCC ++C+'+''++C  CCCCC                   CC   CCC++C

                     CXXCC                                                         CC CXCXXCC                                   CC

                      CC                                                               C CC

=--MMAAXXZZ1)))1ZA-='.----.'+=-MM---------==========+'''++'''+--=---=+==-+''==+''''..''.....''+++'''+=-MAAXAAAM==++++=-+''+-='''.'++
CCC               CC+'....'+CCC  CCCCCCCCCCCCCCCCCCCC+++CC+++CCCCCCCCCCCCC++CCC++++''++'''''++CCC+++CCC        CCCCCCCCC++CCC+++'+CC

                    C+''''+C                         CCC  CCC             CC   CCCC++CC+++++CC   CCC                    CC   CCC+C

                     CXXXXC                                                        CC  CCCCC                                    C

                      CCCC

=--MMAAXZZ1)+))1XM=+'......''+=-MMMMAM-----=======++++'''++'''+==-=====+==''=-=++''..''.'..'+''++++++-MAAAXAAA-=+''+===+'+=-=''..'+=
CCC               CC+''''''++CCC      CCCCCCCCCCCCCCCC+++CC+++CCCCCCCCCCCC++CCCCC++''++'+''+C++CCCCCCC        CCC++CCCCC+CCCC++''+CC

                    C++++++CC                         CCC  CCC            CC     CC++CC+C++C CC                  CC     C    CC++C

                     CCCCCC                                                        CC  C CC                                    CC

=-MMMAAXZZ1)+))ZA-+'....'''+++===-MMAAAM-===++==+==+''''''++++++=-=++=='++'.+-=++'.-.''''..'++'+++++=MAAAAXAAM=+'..'+===++=-=''..'+=
CC               CC+''''+++CCCCCCC      CCCCCCCCCCCC++++++CCCCCCCCCCCCC+CC+'CCCCC+'.'++++''+CC+CCCCCC         CC+''+CCCCCCCCC++''+CC

                   C++++CCC                         CCCCCC             C  C+     C+'+CCCC++C  C                 C++C         CC++C

                    CCCC                                                   C      CXC    CC                      CC            CC

                                                                                   C

-MMMAAXXZ1))++1ZA='...-..''+=====-MMMMMM-=+======-=+'''+'.'++=+'+=='+=+''++''+=++'...'..'.-'++++++==-MAAAAAXAM=+'..''+====--+'''''+=
C                C+'''.''++CCCCCCC      CCCCCCCCCCCC+++C+'+CCCC+CCC+CCC++CC++CCCC+'''+''+'.+CCCCCCCCC         CC+''++CCCCCCCC+++++CC

                  C+++'++CC                         CCC C+C    C   C   CC  CC    C+++C++C+'C                    C++CC        CCCCC

                   CCCXCC                                C                        CCC CC CX                      CC

                      C                                                                   C

-MMAAAXZZ1))))ZXM='..-----..'+==-=-MM---==+++++==--=++++'''++==+''+++=+''''+''++''.'+'.....'++++++==-MMMMMAAAM=+''.'''+===--+'++''++
C                C+''.....''+CCCCCC  CCCCCCCCCCCCCCCCCCC+++CCCCC++CCCCC++++C++CC++'+C+'''''+CCCCCCCCC         CC++'+++CCCCCCC+CC++CC

                  C++'''''++C                           CCC     CC     CCCC CC  CC+C C+++++C                    CC+CCC       C  CC

                   CCXXXXXCC                                                      C   CCCCC                       C

                     CCCCC

-MMAXXZZ1)+++1ZA-+'..-.----..+=-M--MAM--==+'''++==-=++==+=++====++=+'+++''.'+''++''+=='....'++++=======---MAAM==+'''.'+++=--+'++++++
C               CC+''.'....''CCC CC   CCCCC+++CCCCCCCCCCCCCCCCCCCCCC+CCC++'+C++CC++CCC+''''+CCCCCCCCCCCCCC    CCC+++'+CCCCCCC+CCCCCC

                  C++'+''''++              CCC                      C   CC+C CC  CC   C++++C                     CCC+C       C

                   CCXCXXXXCC                                             C            CCCC                         C

                     C CCCC

MMAAXXZ11)++)1XM=+'...------.'=-MM--MMM=++++'''++++=++=-=======-==-=++==+'..+'++++'==='....'+++===+++++++=-AAM-=++''.''''+--='''++++
                CC+'''......'+CC  CC   CCCCC+++CCCCCCCCCCCCCCCCCCCCCCCCCC+''C+CCCC+CCC+''''+CCCCCCCCCCCCCCC   CCCC++'++++CCCC+++CCCC

                  C+++''''''+C              CCC                          C++ C    C   C++++C                      CC+CCCC    CCC

                   CCCXXXXXXC                                             CC           CCCC                         C

                      CCCCCC

MAAXXZZ1)+=+1ZA-++'.....---.''+=-MM-===+'''''''+=++'++=----==----=MM=+=M-+..'++++++==+'.--..'+==-=++++'''+=-AM-==++'..''''=-=''''+++
               CCC+'''''...'++CCC  CCCCC+++++++CCCC+CCCCCCCCCCCCCC  CCC CC''+CCCCCCCCC+'..''+CCCCCCCCC+++CCC  CCCCC+''++++CCC++++CCC

                  C+++++'''+CC          CCCCCCC    C                      ++C         C+''++C         CCC          C++CCCC   CCCC

                   CCCCCXXXC                                              CC           CXXCC                        CC

                        CCC                                                             CC

MAAAXZZ)+++)1XM=+''.....--..'+''=---=++'......'=-=+''++=-M-------=-MM==-M=+''===+++==+.----.'++=-==+++''.'+=--====+'.....'=-+'''''+'
               CC++'''''..''+C++CCCCCCC+''''''+CCCC++CCCC CCCCCCCCC  CCC CC++CCCCCCCCC'....'+CCCCCCCCC++'+CCCCCCCCC+'''''+CCC+++++C+

                 CC+++++''++C CC       C++++++C    CC                      CC         +''''+C         CC+C         C+++++C   CCCCC C

                   CCCCCXXCC            CCCCCC                                        CXXXXC            C           CCCCC

                        CC                                                             CCCC

MAAXZZ1)+++)ZX-+'''.........'+'''+====+'...''.'+=-=++=+==---====-==-M--MA-=+====+'+==+.-----.'+=---==+''..'+--=====''....'==+''''''.
              CC+++'''''''''+C+++CCCCCC+'''++'+CCCCCCCCCCCCCCCCCCCCC CC  CCCCCCCC+CCCC'.....'+CCCCCCCC++''+CCCCCCCC++''''+CCC++++++'

                CCC+++++++++C CCC      C+++CC+C                                  C    +'''''+C        CC++C        CC++++C   CCCCCC+

                   CCCCCCCCC            CCC  C                                        CXXXXXC           CC           CCCC          C

                                                                                       CCCCC

AAXXZZ))==)1XM=''...........'++'''+=+++'....'+'+=---=--=====+++''++==-MAXM=+==+++'+--='-----.'+-MMM-=+''...+=-----=+'....'+++''''...
              C++'''''''''''+CC+++CCCCC+''''+C+CCCCCCCCCCCCCCCC++CCCCC    CCCCCCC+CCCC+.....'+CC   CCC++'''CCCCCCCCC+''''+CCC++++'''

               CC+++++++++++C  CCC     C++++C C                CC                C    C'''''+C        CC+++         C++++C   CCCC+++

                 CCCCCCCCCCC            CCCC                                           XXXXXC           CCC          CCCC        CCC

                                                                                       CCCCC

AXXZ1))+=+1ZA-+'......''''..''+++'==++++'..''+==-----M---===+'''''+++=-MXX-=--=++++--='.----.'=MAAAM-+'...'+=-MMM-+'.....''''+''...-
             CC+''''''++++''++CCC+CCCCCC+''++CCCCCCCC CCCCCCC+++++CCCCC   CCCCCCCCCCCC+'....'+C     CC+'''+CCC   CC+'''''++++C++'''.

               C++++++CCCC++CC   C      C++CC                CCCCC                    C+''''+C        C+++C        C+++++CCCC CC+++'

                CCCCCC    CC             CC                                            CXXXXC          CCC          CCCCC       CCCX

                                                                                        CCCC                                       C

AXXZ11)++)ZX-+''......''++''...'''++++++++'''+===---M-----=+++'...'+++==MXAM--=++''=-='.----.'=MAXAAM=+''..'=-MMM=+'..--.'''''''...-
            CC++''''''++CC++'''+++CCCCCCCC+++CCCCCCC CCCCCCCCC+'''+CCCCC    CCCCC++CCC+'....'+C      CC++''+CC   CC+''..'+++++++'''.

              CC++++++CC  CC+++CCC        CCC                 C+++C              CC   C+''''+C         CC++C       C++''+CCCCCCC+++'

                CCCCCC      CCC                                CCC                     CXXXXC            CC         CCXXC       CCCX

                                                                                        CCCC                          CC           C

XXZZ1)++)1XM=+''.....''+++++..-.'++=++''++++=++++=-MM---M-==++'...'++==--XXAMM=+''+-=+..---.'+-AXXAMM-+''..'=MAM-='.-..--.'..'''....
            CC++'''''++CCCCC''.'+CCCCC++CCCCCCCCCCC  CCC CCCCC+'''+CCCCCC     CC++CCCC''...'+CC      CC++''+C   CC+'.''..'+''+++''''

              CC+++++CC     ++'+C     CC                      C+++C             CC    ++'''+C          CC++C      C+'++''+C++CCC++++

                CCCCC       CCXC                               CCC                    CCXXXC             CC        CXCCXXC CC   CCCC

                              C                                                         CCC                         C  CC

XZZ1)++)1XM-+'.''.''''++++++'..-.''+=++'''+=======---==-MM-=++'...'''+---AZXAM-+'.'=+'.-----'=MAXZAM-=+''..'+MAM-='.-----..-.''.....
           CC+'++'++++CCCCCC+''.'++CCCC+++CCCCCCCCCCCCCC  CCCC+'''+++CCCC     CC+'+CC+'.....+C      CCC++''+C   CC+'.....''.'++'''''

             C+CC+CCCC      C++'+CC    CCC                    C+++CCC           C+C  C+'''''C          CC++C      C+'''''++'+CC+++++

              C  C           CCXC                              CCC               C    CXXXXX             CC        CXXXXXCCXC  CCCCC

                               C                                                       CCCCC                        CCCCC  C

ZZ1))+)1ZA-=''.'''+++++++''''''....'+=+'.''=--=------=++=-===+'...'''+==-MZ1ZAM='..++'.-----.+MAXZXM=+''...'+-AM-=+.--.--..-.'''....
          CC++'+++CCCCCCC++++++''''+CCC+'++CCCCCCCCCCCCCCCCCCC+'''+++CCCC      C+''CC+'.....'C      CC++'''+CC  CCC'..'..''.'+++''''

            CC+CCC       CCCCCC++++C   C+CC                   C+++CCC           C++  C+'''''+         CC+++C       +''+''++'+CCC++++

              C                CCCC     C                      CCC               CC   CXXXXXC           CCC        CXXCXXCCXC   CCCC

                                                                                       CCCCC                        CC CC  C

ZZ1)))1ZA-='..''++++++++'''''''''....++'''++=----==--=+'''+==+'''.'++=---MX11XM-+'.''..------+MXZZXM=+'...''+-MM--+.-----..-.''''...
         CC+''++CCCCCCCC+++++++++''''CC+++CCCCCCCCCCCCC+++CCCC+++'+CCCCCC      CC+'++''......C      CC+'''++CC  CCC'.....''.'++++'''

           C++CC        CCCCCCCCC++++  CCC             CCC    CCC+C              C+CC++''''''         C+++CC       +'''''++'+CCCC+++

            CC                   CCCC                            C                C  CCXXXXXX          CCC         CXXXXXCCXC    CCC

                                                                                       CCCCCC                       CCCCC  C

Z111)1ZXM=+'.'''+++++++=++'+++'''''''''''+=-----===-=+''''''+'''''''+-MAAAX1ZXAM-+'....------+MXZZZA=+'..'''+-MMM-='.-.-...-........
         CC+'+++CCCCCCCCCC+CCC+++++++++++CCCCCCCCCCCCC++++++C+++++++CC          CC+''''......C      CC+''+++CC   CC+'.'.'''.''''''''

           C+CCC          C   CCCCCCCCCCC             CCCCCC CCCCCCC              C++++''''''         C++CCC       C+'+'+++'++++++++

            C                                                                      CCCCXXXXXX          CC           CXCXCCCXCCCCCCCC

                                                                                       CCCCCC                        C C   C

Z11111XA-+'.''++++++++===+++===+'''.+++''''+---=====-+''''''''..''''+=MAZZZZZXXAM=+'..-------+MXZ1ZA-+'...''+=MMMM='.......-........
        CC+'++CCCCCCCCCCCCCCCCCC+++'CCC++++CCCCCCCCCCC++++++++''++++CC           CC+''.......C      CC+'''++CC    C+'''''''.''''''''

          C+CC                  CCC+   CCCC           CCCCCCCC++CCCC               C++'''''''         C+++CC       C+++++++'++++++++

           C                       C                          CC                    CCXXXXXXX          CCC          CCCCCCCXCCCCCCCC

                                                                                      CCCCCCC                              C

11111ZXM=+'''+++++++======+++=-===+.'+=---=====+=-=+====+'''''....''+=-AZ1)1ZXAAM-='..-------'MZ11ZX-=''..'''=MMAM=+....''.-........
        CC+++CCCCCCCCCCCCCCCCCCCCCC'+CCCCCCCCCCCCCCCCCCCC+++++''''++CCC          CC+''.......+      CC++''+++C    CC''''++'.''''''''

          CCC                      +C                    CCCCC++++CC               C++'''''''C        CC++CCC       ++++CC+'++++++++

                                   C                          CCCC                  CCXXXXXXX           CC          CCCC  CXCCCCCCCC

                                                                                      CCCCCCC                              C

1111ZXA-+''''++++++=+==++++++++++===+++=-MMMMMM--==++===++'''.......+=-MX1))1ZAMM-='..-------'-Z111XA=+''''''+-AAM='....''.--..--...
       CC++++CCCCCCCCCCCCCCCCCCCCCCCCCCCC      CCCCCCCCCCC+++'''''''CCC          CC+''.......+C      CC++++++CC   C+''''++'..''..'''

         CCCC                                             CCC+++++++               C++'''''''C         CCCCCC      C++++CC+''++''+++

                                                             CCCCCCC                CCXXXXXXX                       CCCC  CXXCCXXCCC

                                                                                      CCCCCCC                              CC  CC

1111ZXM=+''''++++++===++++++++'''++=--===----MM-==+++===+++'''''...'+=MXZ))+)1XM--='..------.'MZ)1ZXA-+''''''+-MMM='.-..++'--..--..'
       CC++++CCCCCCCCCCCCCCCCC+++CCCCCCCCCCCC  CCCCCCCCCCCC+++++'''+CC          CCC+''......'+       CC++++++CC   C+'.''CC+..''..''+

         CCCC                 CCC                          CCCCC+++C               C++''''''+C         CCCCCC      C+'++  C''++''++C

                                                                CCC                 CCXXXXXXC                       CXCC   XXCCXXCC

                                                                                      CCCCCC                         C     CC  CC

1))1XA-=+'''+'+++'++====+++'+'''''++=====-====---===========++'''...'+-X1)++)1ZAM=++..-------+MZ11ZXA-+'''''''+=--+'....+='------..'
      CCC+++C+CCC+CCCCCCCCC+C+++++CCCCCCCCCCCCCCCCCCCCCCCCCCCC+++'''+CC          CCC''.......C       CC+++++++CCCCC+''''CC+......''+

         CCC C   C         C CCCCC                            CCC+++C               ++'''''''          CCCCCCC     C++++  C''''''++C

                                                                 CCC                CCXXXXXXX                       CCCC   XXXXXXCC

                                                                                      CCCCCCC                              CCCCCC

)))1XM-++'+++=++++==-----==+++'.-.+===----MM-M--=++==-=+++===+++'..-.'=MZ)+++)ZAM=+''.------.=A111XAM-+'''''''+=-='....'=='------.''
      CCC+CCCCCCCCCCCCCCCCCCCC+'.'CCCCCCCC  C CCCCCCCCCCCCCCCCCC+''.'+C          CC++'......'C       CC+++++++CCCC+''''+CC+......'++

         C                    C+'+                              C++'+C             CC+''''''+          CCCCCCC    C++++C  C''''''+CC

                               CXC                               CCXC                CXXXXXXC                      CCCC    XXXXXXC

                                C                                  C                  CCCCCC                               CCCCCC

+))ZA-=+++++======------==+++''..'+=-MMMM--MMMM----=--==++''++'''...'+=MXZ11))ZXM=+'..------'=X11ZXAM-+''...'''+=+'.'''.'+'------..'
     CCCCCCCCCCCCCCCCCCCCCCCC++''+CCC    CC    CCCCCCCCCCC++CC+++'''+CC          CC+''......+C       CC++'''+++CCC+'+++'+C+......''+

                             CC++C                        CC  CCC+++C              C++''''''C          CC+++CCC   C+CCC+C C''''''++C

                               CC                                CCC                CCXXXXXX             CCC       C   C   XXXXXXCC

                                                                                      CCCCCC                               CCCCCC

+)1ZA-=+''++==-==-----==+'''+'''++==-MMMMMMMMMMMAAAM-M-==+''''+''...'=-MAXZZZZXXA-+'..------'=AZ11XAM-+'......''++'.'+'..'.------...
     CCC++CCCCCCCCCCCCCCC+++C+++CCCCC               C CCCC++++C++'''+CC          CC+''......+C       CC+''''''++CC+'+C+''+'......'''

        CC               CCC CCC                          CCCC CC+++C              C++''''''C          C++++++CC  C+C C++C+''''''+++

                                                                 CCC                CCXXXXXX            CCCCCC     C   CC CXXXXXXCCC

                                                                                      CCCCCC                               CCCCCC

++)ZA-=++'+++====---===+''.''+++======-MMM--M--MAAAAAM-=+++++++=++..'=-AZ1111XXAM-='.-------'=AX11ZXA-+'.........'''++'..''------...
     CCCC+CCCCCCCCCCCCCC++'++CCCCCCCCCC   CC CC       CCCCCCCCCCCC''+CC          CC+'.......+C       CC+'''''''''+++CC+''++......'''

         C              CC+CC                                     ++C              C+'''''''C          C+++++++++CCC  C++CC''''''+++

                          C                                       CC                CXXXXXXX            CCCCCCCCC      CC  XXXXXXCCC

                                                                                     CCCCCCC                               CCCCCC

=+)ZA-=++++++====---====+++++==-====++==----MMMMAMMM-M--======++++'.'+MX1)+++1ZA-=+'.-------'-AXZZZXM=+..........'''+++'.''..---..''
     CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC        C CCCCCCCCCCCC+'+C          CCC+'.......+C       CC''''''''''+++CCC+'++''...''++

                                                                  C+C              C+'''''''C          ++++++++++CCC   C+CC++'''++CC

                                                                   C                CXXXXXXX           CCCCCCCCCC       C  CCXXXCC

                                                                                     CCCCCCC                                 CCC

=+1XM=+++=++=+====-MM==--=++++=----===---=-MM--==----MMM-=====++++'''+=MX1)))1ZA-+'.-------.'-MXZZXA-='..........'+++++'''''...-.''+
     CCCCCCCCCCCCCC  CCCCCCCCCCCCCCCCCCCCCC  CCCCCCCC   CCCCCCCCCC+++CC         CC+'.......'+C      CC+''''''''''+CCCCC+++++'''.'++C

                                                                  CCC             C+'''''''+C         C++++++++++C     CCCCC+++'+CC

                                                                                   CXXXXXXXC           CCCCCCCCCC           CCCXC

                                                                                    CCCCCCC                                    C

=+1XM=++++=======-MAA-=-=+'''+======++''+=-AAM----MMMMM--==+++++++++++=-MAZ1)1ZXM='.-------.+-MAXXAM-=+'''''....'+==++++''+++''..''+
     CCCCCCCCCCCCC   CCCCC+++CCCCCCCCC++CCC   CCCC     CCCCCCCCCCCCCCCCC         C+'.......'CC      CCC+++++''''+CCCCCCC++CCC++''++C

                          CCC         CC                                          C+'''''''+           CCCCC++++C       CC   CC++CC

                                                                                   CXXXXXXXC                CCCC               CC

                                                                                    CCCCCCC

=+1X-====+===++++=-MM--===+==++++====+''=-MAAAAMAAAMMMMMM-++'++++====--MAAXZ111XM=+.-------'=-MAAAM-==++++++'.'+===++''+++==+'...''+
    CCCCCCCCCCCCCCC  CCCCCCCCCCCCCCCCC++CC               CCC+CCCCCCCCCC          CC'.......+CC     CCCCCCCCC+'+CCCCCC++CCCCCC+'''++C

                                      CC                    C                      +'''''''C                C+C      CC      C+++CC

                                                                                   CXXXXXXX                  C                CCC

                                                                                    CCCCCCC

=+ZA-========+++'+==--========+''++=--MMAAAXXZXAAAAAMMMM-=+++=+++==-MAAXZZZZZZZXAM='-------+-MMAAM--==+=====+++=---=+++===--+'...'''
    CCCCCCCCCCCC+CCCCCCCCCCCCCC++CCCCC                  CCCCCCCCCCCC              C+.......CC     CCCCCCCCCCCCCCCCCCCCCCCCCCC+'''+++

                C              CC                                                  C'''''''                                  C+++CCC

                                                                                    XXXXXXX                                   CCC

                                                                                    CCCCCCC

+1XM=====++=+++++==--=====+==++'''+----MMM-MAAMMMMMMMMM-====--=++===MAAAXXZ1)1ZXA-+'------.+--MMM---=++=-====+=-MM-=+++==+=-+'...'''
    CCCCCCCCCCCCCCCCCCCCCCCCCCC+++CCCCC   C            CCCCCCCCCCCCC             CC+......'CCC   CCCCCCCCCCCCCCC  CCCCCCCCCCC+'''+++

                               CCC                                                 C''''''+                                  C+++CCC

                                                                                    XXXXXXC                                   CCC

                                                                                    CCCCCC

+ZX-=++++++++++++======+===++++'+++=---MM---MM---M-====+=====++''''+==-MMAX1111ZXM='------.'=-MMM---=++=--====--MM-=++===+=-=+''''''
   CCCCCCCCCCCCCCCCCCCCCCCCCCCC+CCCCCCC  CCC  CCC CCCCCCCCCCCCC++++CCCC           C+......'+CC   CCCCCCCCCCCCCCC  CCCCCCCCCCCC++++++

                               C                               CCCC                C''''''+C                                  CCCCCC

                                                                                    XXXXXXC

                                                                                    CCCCCC

1XM==++++'+'''+++=========+'''++'+++===MM--MMM--=-+++''''''.---------.'+=-AXZZZZXA-+.------'+===---=+'++====+=-M--=======+=-==++'''+
   CCCCCC+C+++CCCCCCCCCCCCC+++CC+CCCCCC  CC   CCCCCCC++++++'.........'+CCC        CC'......+CCCCCCCCC+CCCCCCCCC CCCCCCCCCCCCCCCC+++C

         C CCC             CCC  C                    CCCCCC+'''''''''+C             +''''''C         C                          CCC

                                                           CXXXXXXXXXC              CXXXXXX

                                                            CCCCCCCCC                CCCCCC

1XM=+++++++'''++++=======-=+++++'+=====---M---=====+++'-----------------.'=MAAXXXAM='.-----'++++==-+''++==+++=-MM-==--==+=--===+++==
   CCCCCCCC+++CCCCCCCCCCCCCCCCCC+CCCCCCCCC CCCCCCCCCCC+.................'+C        C+'.....+CCCCCCCC++CCCCCCCCC  CCCCCCCCCCCCCCCCCCC

           CCC                  C                     C'''''''''''''''''+C          C+'''''C        CC

                                                       XXXXXXXXXXXXXXXXXC            CXXXXX

                                                       CCCCCCCCCCCCCCCCC              CCCCC

1X-=+++++++''++++=====--=======+==-=======+++=++++'..---''------------''---'=-AXAM-='.----.''''++==+'''++++'+=-AAM---M-++=---===++=-
  CCCCCCCCC++CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC+''...CC............CC...+CC    CC+'....'++++CCCCC+++CCCC+CCC   CCC CCCCCCCCCCCCCC

           CC                                     C++'''BB''''''''''''BB'''C        C+''''+CCCC     CCC    C

                                                   CCXXXHHXXXXXXXXXXXXHHXXX          CXXXXC

                                                     CCCXXCCCCCCCCCCCCXXCCC           CCCC

1A-=+++++++'''+==-====---===++==++====+++++====++'.---'''---..'''.---''''''--'=-MM-=+.--.'++''''++++'''''''''+-AAAMMMM===--MM--=+===
  CCCCCCCCC+++CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC+'...CCC...''+++'...CCCCCC..+CC  CCC'..'+CC++++CCCC+++++++++CC       CCCCC  CCCCCCC

           CCC                                   C+'''BBB'''++CCC+'''BBBBBB''C       +''+C  CCCC    CCCCCCCCC

                                                  CXXXHHHXXXCC   CXXXHHHHHHXX        CXXC

                                                   CCCXXXCCC      CCCXXXXXXCC         CC

1A-++++++''''''+===+=====+==++++''+++++++++++++''---''''--.'++=++.-''''''''''--.+===+'...'+++'''++++'''..-..'+=MAAAMM-===-MAA--=====
  CCCCCCC++++++CCCCCCCCCCCCCCCCC++CCCCCCCCCCCCC++...CCCC..'+CCCCC'.CCCCCCCCCC..'CCCCC+'''+CCC+++CCCC+++''.''+CC      CCCCC   CCCCCCC

         CCCCCC                 CC             CC'''BBBB''+C     +'BBBBBBBBBB''+     C+++C   CCC    CCC++'++C

                                                 XXXHHHHXXC      CXHHHHHHHHHHXXC      CCC              CCXCC

                                                 CCCXXXXCC        CXXXXXXXXXXCC                          C

)A-=+++'''+++'+++==+=++++++=++++''++++++''++++'---'''''-.++=---=+.-''''''''''''--'+++++''+====+++++++''----.''=-MMAAMM-=-MMAAM-----=
  CCCCC+++CCC+CCCCCCCCCCCCCCCCCC++CCCCCC++CCCC+...CCCCC.'CCCCCCCC'.CCCCCCCCCCCC..+CCCCC++CCCCCCCCCCCC++....'++CC      CCC     CCCCCC

       CCC   C                  CC      CC    C'''BBBBB'+        +'BBBBBBBBBBBB''C     CC            CC''''+CC

                                               XXXHHHHHXC        CXHHHHHHHHHHHHXX                      XXXXC

                                               CCCXXXXXC          CXXXXXXXXXXXXCC                      CCCC

1A-==+++''''++++++=+++'''''''+++++++'''.'+++'.-----'''-.+=-AXA-=+-''''''---''''''-.'''+++=--=====+'++'.----.''+----MMM-==-MAAM----==
  CCCCCC++++CCCCCCCCCC+++++++CCCCCCC+++'+CCC+'.....CCC.'CCC   CCC.CCCCCC...CCCCCC.'+++CCCCCCCCCCCC+CC+'....'++CCCCC   CCCC    CCCCCC

        CCCC          CCCCCCC       CCC+C   C+'''''BBB'+         'BBBBBB'''BBBBBB'+CCC            C  C+''''+CC

                                       C     CXXXXXHHHXC         XHHHHHHXXXHHHHHHXC                   CXXXXC

                                              CCCCCXXXC          CXXXXXXCCCXXXXXXC                     CCCC

1A-====+++''+++++++++''''''''''''.'''...'''''.---------+=-A+=A--=+---''-..---''''--..'+=-----=====''''.----''+=--==-MAM-=--MMMM---==
  CCCCCCCC++CCCCCCCCC++++++++++++'+++'''+++++'.........CCC    CCCC...CC.''...CCCC..''+CCCCCCCCCCCC++++'....++CCCCCCC   CCCC    CCCCC

          CC         CCCCCCCCCCCC+CCC+++CCCCC+'''''''''           '''BB'++'''BBBB''++C            CCCC+''''CC

                                 C   CCC     CXXXXXXXXX           XXXHHXCCXXXHHHHXXCC                 CXXXX

                                              CCCCCCCCC           CCCXXC  CCCXXXXCC                    CCCC

ZA-======++++++++++++'''''++'''++...'.....''''''..----'=-MZ =A-'.'..----..----'----...'+=-------==+''.-----.+==--==-AAM-----M-----==
  CCCCCCCCCCCCCCCCCCC+++++CC+++CC'''+'''''++++++''....+CC     C+'+''....''....C....'''+CCCCCCCCCCCC++'.....'CCCCCCCC   CCCCC CCCCCCC

                     CCCCC  CCC  +++C+++++CCCCCC++''''C        C+C++''''++''''B''''+++C            CC+'''''+

                                 CCC CCCCC      CCXXXX          C CCXXXXCCXXXXHXXXXCCC               CXXXXXC

                                                  CCCC              CCCC  CCCCXCCCC                   CCCCC

ZM-====++++++++++++'+++'..'++++=+'.'''.'''+=====''.---=MMAX1ZA=-''--'----------'=--.'''++=--MMMM=++''.-----'+=-====-AAM-------=---==
  CCCCCCCCCCCCCCCCC+CCC+''+CCCCCC+'+++'+++CCCCCC++'...C       C.CC..+..........+C..'+++CCCCC    CCC++'.....+CCCCCCCC   CCCCCCCCCCCCC

                   C   C++C      C+CCC+CCC      CC+'''         'BB''C''''''''''C ''+CCC            CC+'''''C

                        CC        C   C           CXXX         XHHXX XXXXXXXXXX  XXC                 CXXXXX

                                                   CCC         CXXCC CCCCCCCCCC  CC                   CCCCC

1A-===+++++++++++++++++++'+++'++++''''''+==--M-='''.-.-MMAXXXA=-''--..-.=-''''----'-'''++'+-MMAAM-=++'.----.'====+=-MM----==-=======
  CCCCCCCCCCCCCCCCCCCCCCC+CCC+CCCC++++++CCCCC CC+++'.'C       C.CC..''.'C.CCCC....C.+++CC+CC     CCCC+'....'+CCCCCCC  CCCCCCCCCCCCCC

                         C   C    CCCCCC        CCC+'+         'BB''++'+ 'BBBB''''B'CCC  C           C+''''+C

                                                   CXC         XHHXXCCXC XHHHHXXXXHX                  CXXXXC

                                                    C          CXXCC  C  CXXXXCCCCXC                   CCCC

ZA-===+=+==+++=++++'''++++=++++=++++++++=-MAAAM=''+.-'-MMAXXXX+---+'---.=-'''''''''-'++++''+-AXZXAM-=+'..--.'+=+++-----MMM==--=====-
  CCCCCCCCCCCCCCCCC+++CCCCCCCCCCCCCCCCCCCC     C++C'.+C       C...C+...'C.CCCCCCCCC.+CCCC++CC      CCC+''..'+CCCCCCCCCC   CCCCCCCCCC

                   CCC                          CC +'C         ''' C'''+ 'BBBBBBBBB'C    CC           C++''+C

                                                   CX          XXX  XXXC XHHHHHHHHHX                   CCXXC

                                                    C          CCC  CCC  CXXXXXXXXXC                     CC

1A-=+++=+===++++++''''++++=--=-==-M---=-MAXZZXM+''+--'MAAAXXZA'---'--''--''''''''''-'++++++'+-AZ1ZZAM-='.--.'++++=MMM--MM-=-MM-===--
  CCCCCCCCCCCCCCCC++++CCCCCCCCCCCC CCCCC       C++C..+        +...+..CC..CCCCCCCCCC.+CCCCCC+CC       CC+'..'+CCCCC   CC  CCC  CCCCCC

                  CCCC                          CC ''C        C'''C''BB''BBBBBBBBBB'C      C           C+''+C

                                                   XX          XXX XXHHXXHHHHHHHHHHX                    CXXC

                                                   CC          CCC CCXXCCXXXXXXXXXXC                     CC

ZM==+++++++++++++''''+++++=-=-AM-MAAMMMMXXZZZXA-+.'.-.-XXXXXXZ+------''''''''''''''-'+++++++++-X1))ZXA-+'.-.'+++=-MMM--MM-=-MM-==-MM
  CCCCCCCCCCCCCCC++++CCCCCCCCC  C              CC'+'.'C       C......CCCCCCCCCCCCCC.+CCCCCCCCCC       CC+'.'+CCCCC   CC  CCC  CCCC

                 CCCC                            +C+'+         ''''''BBBBBBBBBBBBBB'C                   C+'+C

                                                 C CXC         XXXXXXHHHHHHHHHHHHHHX                     CXC

                                                    C          CCCCCCXXXXXXXXXXXXXXC                      C

ZM==++++++++'+'''''''+++++=--MMMMAAAAMMMXZZ1111Z-''.-.-XZZZXZZ=-''--''''''''''''''-.+++===+++'+-Z++)ZZA='.-.'+++=--------==--------M
  CCCCCCCCCC+C+++++++CCCCCCCC                   C++'.'C       C.CC..CCCCCCCCCCCCCC.'CCCCCCCCC+CC       C+'.'+CCCCCCCCCCCCCCCCCCCCCC

            C CCCCCCC                            CC+'+         'BB''BBBBBBBBBBBBBB'+         C          C+'+C

                                                   CXC         XHHXXHHHHHHHHHHHHHHXC                     CXC

                                                    C          CXXCCXXXXXXXXXXXXXXC                       C

ZM======++++++++++++++++++=MAAMMAAAAAAMMAAX1)++1-''.-'MXZZZZZZ=-''''''''''''''''''-'=+====+=+'.+X+=+)1X-+....'++=---=----==-=-------
  CCCCCCCCCCCCCCCCCCCCCCCCC                     C++'.+        C.CCCCCCCCCCCCCCCCCC.+CCCCCCCCC+'C       CC''''+CCCCCCCCCCCCCCCCCCCCCC

                                                 CC+'C         'BBBBBBBBBBBBBBBBBB'C         C+          ++++C

                                                   CX          XHHHHHHHHHHHHHHHHHHX           C          CCCC

                                                    C          CXXXXXXXXXXXXXXXXXXC

ZM-=====+=+++++++++++++====-MAAAAAAAMAMMMMAZ11))X='.--+AZZZZZZM-''''''''''''''''''-+-=-=====+'---)---=1M='...'+==--------==-=--M----
  CCCCCCCCCCCCCCCCCCCCCCCCCC                     C+'..C        .CCCCCCCCCCCCCCCCCC.CCCCCCCCCC+..C       C+'''+CCCCCCCCCCCCCCCCC CCCC

                                                  C+''         'BBBBBBBBBBBBBBBBBB'          C''         C+++C

                                                   CXX         XHHHHHHHHHHHHHHHHHHX           XX          CCC

                                                    CC         CXXXXXXXXXXXXXXXXXXC           CC

ZM-======+++++++'''''++=-----MAXXXXAAAMMMMAZ1)+)Z-'.--'AZZZZXXX'-'''''''''''''''''.=---=====+.-'.X    +X-+''''+==--M--M---===-MMMMM-
  CCCCCCCCCCCCCC+++++CCCCCCCC                    C+'..+        +.CCCCCCCCCCCCCCCCC'CCCCCCCCCC'.C'       CC++++CCCCC CC CCCCCCC     C

                CCCCC                             C+''C        C'BBBBBBBBBBBBBBBBB+          +'B+         CCCC

                                                   CXX          XHHHHHHHHHHHHHHHHHC          CXHC

                                                    CC          CXXXXXXXXXXXXXXXXX            CX

ZA======++++'''''''..'+=--MMMMMMMAAXAAAAM-MX1)+++Z-'---=XZZXXAX--''''''''''''''''-'=--M-==--+.-'--=   -ZM=''''++===----M--===-M--MMM
  CCCCCCCCCC+++++++''+CCCC               C        C+...C       C.CCCCCCCCCCCCCCCC.+CCC CCCCCC'.C.C       C++++CCCCCCCCC CCCCCC CC

            CCCCCCC++C                             C'''         'BBBBBBBBBBBBBBBB'C          +'B'         CCCC

                   CC                               XXX         XHHHHHHHHHHHHHHHHX           CXHX

                                                    CCC         CXXXXXXXXXXXXXXXXC            CXC

ZM=++==++++++'''''''++=-----MMMAAAMMMAXXXXXX1)+==1A+---+XZZXXAAM'-'''''''''''''''-+-MMM-==-='--'-=+   -1M=+'''+==+=-------===-M-----
  CCCCCCCCCCC+++++++CCCCCCCC                       C...C        +.CCCCCCCCCCCCCCC.CC   CCCCC+..C.C       CC+++CCCCCCCCCCCCCCCC CCCCC

             CCCCCCC                                '''         C'BBBBBBBBBBBBBBB'          C''B'          CCC

                                                    XXX          XHHHHHHHHHHHHHHHX           XXHX

                                                    CCC          CXXXXXXXXXXXXXXXC           CCXC

X-=+++++++++'''''''''++------MMMAAM--MAXXZZZ1)))++Z-.-'--1)1ZAMM=.''''''''''''''-+-MMAAM--M+.-''-'1    1M=+'''+==+=---======--M----=
 CCCCCCCCCCC+++++++++CCCCCCCC      CC              C'.C.C       C'CCCCCCCCCCCCCC.CC     CC C'.CC.+       CC+++CCCCCCCCCCCCCCCC CCCCC

            CCCCCCCCC                               +'B'         +BBBBBBBBBBBBBB'           +'BB'C         CCC

                                                    CXHX         CHHHHHHHHHHHHHHX           CXHHX

                                                     CXC          XXXXXXXXXXXXXXC            CXXC

A-+++++++'''''''''+'''+++=-------M----MMAAZ11)))==+A+---.M)))ZAMM=-''''''''''''-'-MMMAAAMM-'.-''''Z    )M=++''+===--M--++=-MM------=
 CCCCCCCC+++++++++C+++CCCCCCCCCCC CCCC              C...'        C.CCCCCCCCCCCC.+C        C+'.CCC+       CCC++CCCCCC CCCCCC  CCCCCCC

         CCCCCCCCC CCC                               '''+         'BBBBBBBBBBBB'C          C+'BBBC          CC

                                                     XXXC         XHHHHHHHHHHHHX            CXHHH

                                                     CCC          CXXXXXXXXXXXXC             CXXX

A-=++++'''''..''''++''''+==-------=-=-MAAXZ1)++=--=Z=--'-'X1)1XAM-+-''''''''''-'=-MAAAAAMM+.--'''.X    )A-==+'+==--M---==-MM--==---=
 CCCCCC+++++''++++CC++++CCCCCCCCCCCCCC              C..C.+       CC.CCCCCCCCCC.+CC        C'..CCC'       CCCC+CCCCC CCCCCC  CCCCCCCC

       CCCCC++CCCC  CCCC                             ''B'C         'BBBBBBBBBB'C           +''BBB+           C

            CC                                       XXHX          XHHHHHHHHHHX            CXXHHHC

                                                     CCXC          CXXXXXXXXXXC             CCXXX

M-==++++'+'''''.''++==+++++=====----==--AAXZ1+++=  =X=----+X))1XAM=+.--'''''--+-MMAXXXXXM='--'''-.X   -+XM-==++=--M-------MM--=--M--
 CCCCCCC+C+++++'++CCCCCCCCCCCCCCCCCCCCCC             C....C       CC'..CCCCC..CC         C+..CCC.'        CCCCCCCC CCCCCCC  CCCCC CC

        C CCCCC+CC                                    ''''          +''BBBBB''            C''BBB'+

               C                                      XXXX          CXXHHHHHXX             XXHHHXC

                                                      CCCC           CCXXXXXCC             CCXXXC

M-==++++++'++''.''+++===++++==+==-----==-MAZ11Z1+-  =Z-'---'A)))1XM-='.-----'+-MAXXZZXXA-'---'''-.A=   =ZM-==++=--M---M---MMM---MM--
 CCCCCCCCC+CC++'++CCCCCCCCCCCCCCCCCCCCCCC             C+...+       CC+'.....+CC         C+...CCC.'        CCCCCCCC CCC CCC   CCC  CC

          C  CC+CC                                     C'''C         C+'''''C            C'''BBB'+

               C                                        XXX           CXXXXX              XXXHHHXC

                                                        CCC            CCCCC              CCCXXXC

M=+++++++++++''''''++++++''+=+++=-==--=+==-MXXAX1+=--=)M'-'-.M1+)1ZXAM-=++=-MMAXXZZZXXA-'--'''''-.M+  -=1M--=+=-MMMM--MM--MMM--MMM--
 CCCCCCCCCCCC++++++CCCCCC++CCCCCCCCCCCCCCCC             +.C.'         CCCCCC           C+..CCCCC.'        CCCCCC    CC  CC   CC   CC

             CCCCCC      CC                             C'B'+                           C''BBBBB'+

                                                         XHXC                            XXHHHHHXC

                                                         CXC                             CCXXXXXC

-=++''+++++''''+'+++++++'''+==+++++=+++++++=MM-MXZ1+---)M'----+MZ11111XAMAAAXXXZZZXAM-+.--'''''--'M)---+ZM--==-MAAAM-------MMMMM----
CCCC++CCCCC++++C+CCCCCCC+++CCCCCCCCCCCCCCCCC  C          +....C                      CC'..CCCCC..+        CCCCC     CCCCCCC     CCCC

    CC     CCCC C       CCC                              C''''                         +''BBBBB''C

                                                          XXXX                         CXXHHHHHXX

                                                          CCCC                          CCXXXXXCC

-=+'''+++++'++'+++=====+++++++=+++''+'''++'+-==--AX1=--=1A='----'-AXZ1111ZZ1ZZXXXAM-+'----''-----'-1===+ZAM---MAAAAMMMMM--MMMAAM----
CCC+++CCCCC+CC+CCCCCCCCCCCCCCCCCCC++C+++CC+CCCCCC         C+....+C                 CC+....CC.....+C        CCC          CC      CCCC

   CCC     C  C                   CC CCC  C                C''''C                    C''''BB'''''C

                                                            XXXX                      XXXXHHXXXXX

                                                            CCCC                      CCCCXXCCCCC

-=+'''++''''++++++===+++''+++++++++++'''++''+=+==-MXZZ1)++)X-+.----'=-MAXXXXAA-==+'.------------.'=X)==+ZAMMMMAXXAAMAAMM-MMAAAAMMM--
CCC+++CC++++CCCCCCCCCCCC++CCCCCCCCCCC+++CC++CCCCCC          CC'....+CC        CCCC+'............'+C                     C         CC

   CCC  CCCC            CC           CCC  CC                  +''''C              C+''''''''''''+C

                                                              CXXXX                CXXXXXXXXXXXXC

                                                               CCCC                 CCCCCCCCCCCC

-=++'''''''''''+++=+++'''++'+++=+++=='''''.'''''+==-M--A1+===+ZM+.------.''''..---------...----.''+MZ+=)ZAMMAXXXAAAAAAAM-MAXXXXAAAM-
CCCC+++++++++++CCCCCCC+++CC+CCCCCCCCC+++++'+++++CCCC CC         C'......'++++''.........'''....'++C                     C          C

    CCCCCCCCCCC       CCC  C         CCCCC+CCCCC                 +''''''+CCCC++'''''''''+++''''+CC

                                          C                      CXXXXXXC    CCXXXXXXXXXCCCXXXXC

                                                                  CCCCCC       CCCCCCCCC   CCCC

-=++''++'''''++++==++++''+++++==+++++''''...'...'''+=++=-AXZ)++=)ZA-+'....-----------.'=---+'..'''+-Z)+1A--MAAAAAAAAAMMMMAAXZZZXXAAM
CCCC++CC+++++CCCCCCCCCC++CCCCCCCCCCCC++++'''+'''+++CCCCCC          CC+''''...........'+CCCCC+''+++CC     CC

    CC  CCCCC          CC            CCCC+++C+++CCC                  C++++'''''''''''+C     C++CCC

                                         CCC CCC                      CCCCXXXXXXXXXXXC       CC

                                                                          CCCCCCCCCCC

-=++'++++++++========++++==========+++''''........''+''''+=-MAZ)= -=+)1ZAMM-==-==++=-MXZ11ZA+.''+++=X1)ZM=--MAAAAAAAAMMMMAAXZ11ZZXAA
CCCC+CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC++++''''''''++C++++CCC               CCCCCCCCCC       C'++CCCC     CCC

    C                                 CCCC++++++++CC CCCC                                    +CC

                                          CCCCCCCC                                           C

M-=+++++++====-=----=====---=======++++'''....''....''..''''++-MAZ)=      --+++))Z1+=--- -+X=''+++'=MXZA---MAAAMAAAAAMMMAAAAXZZZZXXA
 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC+++''''++''''++''++++CCC                             C++CCC+C    CCC

                                       CCC++++CC++++CC++CCCC                                 CC   C

                                          CCCC  CCCC  CC

--=++++=====---MM-M---------=====+==+''''......'........'''...'++'+-X1=                   =X=++++''+MAAM--MAAXAMAAAAMMMMAAXXXXXZZZXX
CCCCCCCCCCCCCCC  C CCCCCCCCCCCCCCCCCC++++''''''+''''''''+++'''+CC+CC                        CCCCC++C    CC

                                     CCCC++++++C++++++++CCC+++C  C                               CC

                                         CCCCCC CCCCCCCC   CCC

M-==+=--------MMMMMMM------==++++++++''+++'''''''''.........'..'...'+=-A1+                =ZM---+'''---==--MMAMMAAAMMMAAAXXXXZXXZZZZ
 CCCCCCCCCCCCC       CCCCCCCCCCCCCCCC++CCC+++++++++'''''''''+''+'''+CCC                      CCCC+++CCCCCCC

                                     CC   CCCCCCCCC+++++++++C++C+++C                             CCC

                                                   CCCCCCCCC CC CCC

MM===---MMMMMMAAAMMMMMM-MMM--=++++++++==+==+'+'''''.''..''..'.''..'+++'+-AZ)=            -)ZXAM-+'.'+===+==----MMMMAAAAAXXZZZZXXXZZZ
  CCCCCC               C   CCCCCCCCCCCCCCCCC+C+++++'++''++''+'++''+CCC+CC                      CC+'+CCCCCCCCCCC

                                            C CCCCC+CC++CC++C+CC++C   C                          C+C

                                                   C  CC  CC C  CC                                C

AM--=---MAAAAXXXXXAAAMM-MMMMM-=+++++++=++++''''''...'+'.'''.'''....'''''+=-AXXZ1+=-      +11XAM-+''.''++++++===---MAAAAXZZZZ1ZZXZZZZ
  CCCCCC               C     CCCCCCCCCCCCCC++++++'''+C+'+++'+++''''+++++CCC                    CC++'++CCCCCCCCCCCC

                                           CCCCCC+++C C+CCC+CCC++++CCCCC                         CC+CC

                                                 CCC   C   C   CCCC                                C

AM-=--MMAAAAXXZZZZXXAAM----MMM-=+++====+++''''+''...'+'..''..'''....''''===----MAZ)+-   +11ZXAM-+''..''++++++=---MAAAAAXZZZ1111ZZZ1Z
  CCCC                 CCCC   CCCCCCCCCCCC++++C++'''+C+''++''+++''''++++CCCCCCC                CC++''++CCCCCCCCCC

                                          CCCC CC+++C C++CC++CCC++++CCCC                         CC++CC

                                                 CCC   CC  CC   CCCC                               CC

AAM------MMMAAAXXXXXXAAMM-------==+==--==++++++'''''++'''''......''''++++======-MAZZ)+==)11ZXAAM=++'..'''''+==--MMAAAAXXZ111))11ZZ11
   CCCCCC                CCCCCCCCCCCCCCCCCCCCCC+++++CC+++++''''''++++CCCCCCCCCCC                CCC+''+++++CCCCC

                                               CCCCC  CCCCC++++++CCCC                              C++CCCCC

                                                           CCCCCC                                   CC

XAMM------MMMMMAAXXXXAAAM--=-----=======+=+=++''''+''++'''''.'.'''''''''''++++=-MAXZ1)++1ZZXAAXM==+'..'.''+==-MMAAAAAXX11)))))1ZXZ1)
    CCCCCC               CCCCCCCCCCCCCCCCCCCCC++++C++CC+++++'+'+++++++++++CCCCCC                CCC+''+'++CCCC

                                              CCCC CC  CCCCC+C+CCCCCCCCCCC                         C++C+CC

                                                            C C                                     CC C

XAMM-----MMAMMMMMMAAMMAMM-============+++++++=++++++++'''........''..'''.''''+-MMMAXZ11ZXXXAMAM-==+.-.'''+=-MAAAAAAAXZ1)+++)+)1ZXZ1)
    CCCCC                CCCCCCCCCCCCCCCCCCCCCCCCCCCCC+++''''''''++''+++'++++CC                CCCC'.'+++CCC

                                                      CCC++++++++CC++CCC+CCCC                      +'+CCC

                                                         CCCCCCCC  CC   C                          CXC

                                                                                                    C

ZXAAM---MMAAAAAAAMMMMMM----=++++====+++++=+++====+++=+'''''..'''.'+''''++'.'''=--=-MXXXXXXXAAM=+++.--.''+==MAAAAAAAXZ1++++++++)111)+
     CCC               CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC+++++''+++'+C++++CC+'+++CCCCC           CCCC'..'++CCC

                                                      CCCCC++CCC+C CCCC  C+CCC                    +''+CC

                                                           CC   C         C                       CXXC

                                                                                                   CC

ZXAAMMM---MMAAAXAAAMMMM-----==++==--==+++++++++==++++''''+++'''''+=+'''''''+++'+++=-MMAAAAXAMM-=+''.-.''+=-MAAAAAAAXZ)+=+++++++))+++
       CCC             CCCCCCCCCCCCCCCCCCCCCCCCCCCCCC++++CCC+++++CCC+++++++CCC+CCCCC          CCC++'.'++CCC

                                                     CCCC   CCCCC   CCCCCCC   C                  CC+'+CC

                                                                                                   CXC

                                                                                                    C

ZXAAMM-----MMAAAAAMMMMMMMM---==++=-----=++++++''''+++'.'++++++''+==+'+'..'''''.''====--MMAAM--=+'''..'''=-AXXAXXXXXZ1++=++++++++++++
      CCCCC               CCCCCCCCCCCCCCCCCCCC++++CCC+'+CCCCCC++CCCC+C+''+++++'++CCCCCC     CCCC+++''+++CC

                                              CCCC   C+C      CC    C C++CCCCC+CC               CCC++CCC

                                                      C                CC     C                    CC

ZXAMM----===-MMAMMMMMMMMMMMM--=+++==----=+'+++''''+'''..''''''++==++'''''+''''''+======--M-=++++'..'''+=-MXZZXZZZZZZ1)++++++++++++++
     CCCCCCCC               CCCCCCCCCCCCCC+CCC++++C+++''++++++CCCCCC+++++C++++++CCCCCCCCC CCCCCC+''+++CCC

                                          C   CCCC CCC++CCCCCC      CCCCC CCCCCC                C++CCC

                                                      CC                                         CC

XAMM---======-MMMMMAAAMMMMM---=+++++-MMM-==+++'..''.....'''.''+===+'..'''+''+++++==-----MM=+''+=+'.'++=-MAXZZZZ11ZZ1)))))++++++++=+=
    CCCCCCCCCC             CCCCCCCCCC   CCCCCC+''++'''''+++'++CCCCC+''+++C++CCCCCCCCCCCC  CC++CCC+'+CCCC

                                              C++CC+++++CCC+CC     C++CCC CC                CC   C+C

                                               CC  CCCCC   C        CC                            C

AAMMM--======---MMMMMMMM-----===+++++-MAAA--=++''++'++'''''''''''''''.''..''+++++++==---===+''+++'''+=-MMAXXZZZ11111)))))))+++++++++
     CCCCCCCCCCC        CCCCCCCCCCCCCC    CCCCC++CC+CC+++++++++++++++'++''++CCCCCCCCCCCCCCCC++CCC+++CCC

                                               CC  C  CCCCCCCCCCCCCCC+CC++CC                CC   CCC

                                                                     C  CC

MMMMM---======----MMMMM-----====+++++==MAAMM-=========+++'+++++''''''''.''''+=====++=--=+++++++++++++=-MAXXZZZZ1ZZ11))))))+++===++++
     CCCCCCCCCCCCC     CCCCCCCCCCCCCCCC     CCCCCCCCCCCCC+CCCCC++++++++'++++CCCCCCCCCCCCCCCCCCCCCCCCCCC

                                                         C     CCCCCCCC+CCCC

                                                                       C

MMMMMM---===+=====--------===+'''''++++=-MMM-----=---=+++++======++''...'+''+==--===--=+'++++++++++===--MAXXXXZZZZZ1)))))++++===++++
      CCCCCCCCCCCCCCCCCCCCCCCC+++++CCCCCC   CCCCCCCCCCCCCCCCCCCCCCC++'''+C++CCCCCCCCCCCC+CCCCCCCCCCCCCCC

                              CCCCC                                CC+++C CC            C

                                                                     CCC

MMMAMAMM--===+++===-------++''..'''''''+-MAAAMMMMM---===+===---=++=++'''+++++++===++++''++++++''++==----MAAAXXXXXZ1)))))++====++++))
        CCCCCCCCCCCCCCCCCCCC++''+++++++CC         CCCCCCCCCCCCCCCCCCC+++CCCCCCCCCCCCCC++CCCCCC++CCCCCCCC

                            CC++CCCCCCC                              CCC              CC      CC

                              CC

MMMMMAAMM--==+++++==----==++''''''.....'+-MAXXAAAMMM---==-M--MM-===+'''''''''''++++'''.''++''''''+------MAMAAAXXXZZ11111)+====+++)))
         CCCCCCCCCCCCCCCCCCC++++++'''''+CC          CCCCCC CC  CCCCC+++++++++++CCCC+++'++CC++++++CCCCCCC

                            CCCCCC+++++C                            CCCCCCCCCCC    CCC+CC  CCCCCC

                                  CCCCC                                               C

MMMMMAAAMMM-==+++==--=====++''''.......'+=-MAAAMMMMMM-----MMMAAMM-=+'''''..'''''+'+''''''++++''+=-MMM---MMMAAAXXXZZZZZ11)+++==++)))1
           CCCCCCCCCCCCCCCCC++++'''''''+CCC          CCCCC       CCC+++++''+++++C+C++++++CCCC++CCC   CCC

                            CCCC+++++++C                            CCCCC++CCCCC C CCCCCC    CC

                                CCCCCCC                                  CC

-MMMAAAAAAM---===========++''''.....-...'++=--M-MMM---===--MMMAAM-=''''''..''++++++'''+'++++++++MAAMM--MMMMAAXXXZZZXXZZ1))+++++))111
C          CCCCCCCCCCCCCCCC++++'''''.'''+CCCCC C   CCCCCCCC      CC++++++''++CCCCCC+++C+CCCCCCCC     CC

                           CCCC+++++'+++C                          CCCCCC++CC      CCC C

                               CCCCCXCCC                                 CC

                                    C

MMAAAAAAAAAM---===+++++++++'''.....---....'+++==---==++==-MMMMM--=+'...'''+=-==++++''+++++======MAAM--MAAAAXZZXXXXXXXZ11))++++))1111
            CCCCCCCCCCCCCCC+++'''''...''''+CCCCCCCCCCCCCCC     CCCC+'''+++CCCCCCCCC++CCCCCCCCCCC    CC

                           CCC+++++'''++++C                        C+++CCC         CC

                              CCCCCXXXCCCC                          CCC

                                   CCC

MMMAAAAAAAAMM---==+++'''++++''..........''''++==-=-=+==+==-=--=='''...''+=-MM-=+'''''++=++==-==MAXAM--AAAAXZZZXAAXXXXZ11))))))11ZZZZ
             CCCCCCCC+++CCCC++''''''''''++++CCCCCCCCCCCCCCCCCCCC+++'''++CCC  CCC+++++CCCCCCCCCC     CC

                     CCC    CC++++++++++CCCC                    CCC+++CC        CCCCC

                              CCCCCCCCCC                           CCC

MMMMAAAAAAAAAM---==++''''+++''..''''''''''++++====-========++++'...''+++++===-=+''++'+==++==--MAXXAM-MAMMMAXXXAAAAAXZZ11)))111ZZZZZZ
              CCCCCCC++++CCC++''++++++++++CCCCCCCCCCCCCCCCCCCCC+'''++CCCCCCCCCCC++CC+CCCCCCCCC      C

                     CCCC   CC++CCCCCCCCCC                     C+++CC           CC  C

                              CC                                CCC

-MMMAAAAAXXAAMMM---==+''''++'''''''+++'++++++====-------==-=++''''+++=====-==+'''''+++======-MAXXAAMMMAMMMMAAAAAAXXXZZZ11111ZZZZZZZX
C               CCCCCC++++CC+++++++CCC+CCCCCCCCCCCCCCCCCCCCCCC++++CCCCCCCCCCCC+++++CCCCCCCCCC

                      CCCC  CCCCCCC   C                       CCCC            CCCCC

--MMMAAAAXAXAAMMMM--==++++++''''++++++++==--------MM--====---=++++++++=-==-=+'....'+++=====---AAAAAMAAAMMMMAAMMAXXXZXXXZZZZZZZZXXXXX
CC                CCCCCCCCCC++++CCCCCCCCCCCCCCCCCC  CCCCCCCCCCCCCCCCCCCCCCCCC+''''+CCCCCCCCCCC

                            CCCC                                             C++++C

                                                                              CCCC

--MMMAAAAAAAAAAAMMM---==++++'''+++=======--MMMMMMMMM---=========++=+'''++++'.....'+++=====----MAXXAAAAAMMMMMMMMAXXZXAAAXXXXXXXAAXAAA
CC                 CCCCCCCCC+++CCCCCCCCCCCC         CCCCCCCCCCCCCCCC+++CCCC+'''''+CCCCCCCCCCCC

                            CCC                                     CCC    C+++++C

                                                                            CCCCC

--MMMAAAAAAAAAAAMAMMM--==++++++++===------MMMMMMMMMMMMM-=========++++''''+''''''''+====--MMMMMMAXXAAAAAAAAAAMMMAAXXAMMAAXAAAAAAAAMMM
CC                   CCCCCCCCCCCCCCCCCCCCC             CCCCCCCCCCCCCC++++C++++++++CCCCCCC

                                                                     CCCC CCCCCCCC

----MMMMMMMMMAMMMAAAMM-====++++++===-==----MMMMMMMMMMMM--======++++''''''''''''+++==----MAAAAMMAAAAAXXAAAAAAAMMMMAMMMMMAAAMAMAMMM--=
CCCC                  CCCCCCCCCCCCCCCCCCCCC            CCCCCCCCCCCC++++++++++++CCCCCCCCC                                         CCC

                                                                   CCCCCCCCCCCC

--------M--MMMMMMMAAMMM--=============----MMMMMMMAAAAAAMM----==++++'''+'''''''+++===--M-MAAAMAAAAAAAXXXXXXXAMMMMM----MMMM---MM---==+
CCCCCCCC CC            CCCCCCCCCCCCCCCCCCC               CCCCCCCCCC+++C+++++++CCCCCCCC C                         CCCC    CCC  CCCCCC

                                                                   CCC CCCCCCC

-----==------MMMMMMMMM-M------======----MMMMMMMMMMAAAAXAAAAMM-=++=+++''...''''++====--MMMMAAMAAAAAAXZZZZXXAMM--==++++=========++++''
CCCCCCCCCCCCC         C CCCCCCCCCCCCCCCC                     CCCCCCCC++'''++++CCCCCCCC                       CCCCCCCCCCCCCCCCCCCCC++

                                                                     CC+++CCCC                                                    CC

                                                                       CCC

=========----MMMMMMMMMMMMMMMMM--------M-MMM-----MMAAAXXXXXXXXAMMMMM-=+'.-.''''''+===----MMMMMAAAAAX11ZZZXAM-=++''...''+++++'''''....
CCCCCCCCCCCCC                 CCCCCCCC C   CCCCC                   CCC+'.'++++++CCCCCCCC                   CCCC++'''++CCCCC+++++''''

                                                                      C+'+CCCCCC                               CC+++CC     CCCCC++++

                                                                       CXC                                       CCC            CCCC

                                                                        C

=========----MMMMMAAAMAAAAAAAAAMMMMMMMMMMMM-MMMMAAAAAAAAAXXXXXAAAMM-=++'..'+''''++=======----MAAAX111ZXXXA-++'....--..''''''....----
CCCCCCCCCCCCC                              C                       CCCC+''+C++++CCCCCCCCCCCCC             CCC+''''..''++++++''''....

                                                                       C++C CCCC                             C++++''++CCCCCC++++''''

                                                                        CC                                    CCCCXXCC      CCCCXXXX

                                                                                                                  CC            CCCC

========---MMAAAAAXXAXXXXXZZZZXXXZXXXXXXXXXXXXXZZXZZZZXZXXZXXAXXAAAAM-=++'+''.'++++++++++=---MAXX1)+1XAMM-+'..-.......''+++'...-----
CCCCCCCCCCC                                                          CCCC+C++'+CCCCCCCCCCCCCC            CC+''.'''''''++CCC+'''.....

                                                                         C CC+C                            C++'+++++++CC   C+++'''''

                                                                             C                              CCXCCCCCCC      CCCXXXXX

                                                                                                              C                CCCCC

==-=-----MMMAAAAXXXXAAXXXXXZXZXXXXAAAAAAAAAAAAAAAMAAAXXZZZ1ZZZXXXXXXM-=+''''..'+===++++=+=-MAAXZ1))+)XM--+'.......'''''++++''..-----
CCCCCCCCC                                                            CCC++++''+CCCCCCCCCCCC            CCC+'''''''+++++CCCC++''.....

                                                                        CCCC++C                           C+++++++CCCCC    CC++'''''

                                                                            CC                             CCCCCCC           CCXXXXX

                                                                                                                               CCCCC

--M----MMMMAMMAAAAAAAAAAAXXXAAAAAAMMMMMMMMMM----========---MMMMMAXXXM-==++'''''+==++++++++-MAAXZ1++++1XM=+.....''++++++++==++'..----
CC CCCC                                     CCCCCCCCCCCCCCC          CCCCC+++++CCCCCCCCCCCC             CC'''''++CCCCCCCCCCCC+''....

                                                                          CCCCC                           +++++CC            C++''''

                                                                                                          CCCCC               CCXXXX

                                                                                                                                CCCC

--MM------MMMMMMAAMAAAMAAAAAAAAAAMMM-M-------=====-=====----MMMAXXAM-=++++''.''+=++'''+++=--MMXZ1++==+1A-''''''''++++=+++===++'..---
CC  CCCCCC                          C CCCCCCCCCCCCCCCCCCCCCC        CCCCCC++'++CCCC+++CCCCCC            C++++++++CCCCCCCCCCCCC+''...

                                                                          CC+CC    CCC                   CCCCCCCC             C++'''

                                                                            C                                                  CCXXX

                                                                                                                                 CCC

------=------MMMMAAAAAXXXAXAAAAMMMMMMMM-----------MM---MAAAAAAAAXA-=+''........''....'++====-MAZ)+==--+1A-+'''''''+++++++++++++'.---
CCCCCCCCCCCCC                          CCCCCCCCCCC  CCC           CCC++''''''''++''''+CCCCCCC            CC+++++++CCCCCCCCCCCCC+'...

                                                                     CC++++++++CC++++C                     CCCCCCC             C+'''

                                                                       CCCCCCCC  CCCC                                           CXXX

                                                                                                                                 CCC

---======--MMMAAXXXXXXXXXXAXXAAAAAAMMMMMM-MMMMMMMMAAM--------MMAAAMMM-====++''''.....''+++++=-MX1)+=--=+1XM=+''...''+++'''++++''.---
CCCCCCCCCCC                              C           CCCCCCCC        CCCCCCC++++'''''++CCCCCCC             CC++'''++CCC+++CCCC++'...

                                                                            CCCC+++++CC                      CC+++CC   CCC    CC+'''

                                                                                CCCCC                          CCC              CXXX

                                                                                                                                 CCC

--===----MMAAAXXXXXXXXXXXXXXXXXXAXXXAAXXXAXXXAAAAMAXMM-MMMAAXXXZ1)11ZZZXXXAM-MMM=++'''''+++++=-AZ1+=- --=)ZA-='..--..'''''''''''..--
CCCCCCCCC                                             C                     C   CCC+++++CCCCCCC             CC+''..''+++++++++++''..

                                                                                   CCCCC                      C++''++CCCCCCCCCCC++''

                                                                                                               CCXXCC           CCXX

                                                                                                                 CC               CC

------MMMMAAAAAXAXXXXXXXXZZZZZZZZZ11ZZZZ1ZZZXXXXXXZ1ZZZZ111111))++))11111)1ZXXZZAM-==========-AX1)+--   -=+1XM='.-----..''''''''....
CCCCCC                                                                            CCCCCCCCCCCC                C+'.....''++++++++''''

                                                                                                               C+'''''++CCCCCCCC++++

                                                                                                                CXXXXXCC        CCCC

                                                                                                                 CCCCC

MM----MMMMAAAAAAAAXXXXXXXZZZZZZ111)11ZZZ1Z11ZZZZZXXZZXXXXXXXZZ111))))11Z1111111)1ZXXAXAAMMMMMAZ)++=-     -=+)ZA-='.----.''''........
  CCCC                                                                                                         CC+'....'++++''''''''

                                                                                                                 C+''''+CCCC++++++++

                                                                                                                  CXXXXC    CCCCCCCC

                                                                                                                   CCCC

-------MMMAAAAAAAXXXXXXXXXZZZZZZ1ZZZZXZZZZZZXXAAAMAXAMMMM---MAAXZ1)++)1ZZZ11ZZZZZ))))11ZZXXZZ1)+++=--     --=+1ZAM+'----...........-
CCCCCCC                                                  CCC                                                      C+....'''''''''''.

                                                                                                                   C''''+++++++++++'

                                                                                                                    XXXXCCCCCCCCCCCX

                                                                                                                    CCCC           C

-----MMMMAAAAAAAAAAAAAAXXZZZZZZZXXXZZXXXXXAAAAMMMMMAAM------MAAXZ1)+++)11111ZXAAXZ1)))11ZZZZZ111)++=--       -=+)ZA-'.--.....----..-
CCCCC                                                 CCCCCC                                                       C+'..'''''....''.

                                                                                                                    C+''+++++''''++'

                                                                                                                     CXXCCCCCXXXXCCX

                                                                                                                      CC     CCCC  C

-----MMMMAMMAAAAAAAAAAXXZZZZXXAAXXXXXXXXAAAAMMMMAAAAXAMMAAAAXXZZ11)++++)+++))1ZXAXXZZXXAAAAXXZZZZ1++---        -=+1X-+---...------.-
CCCCC                                                                                                               CC...'''......'.

                                                                                                                      '''+++''''''+'

                                                                                                                      XXXCCCXXXXXXCX

                                                                                                                      CCC   CCCCCC C

---MMMMMMMMMMMAAMMAAAXXXZZXXAAAAXXXXXXXXAAAAAAAAXXXXZXXXXZZZZZXXXZ1Z11))======+)1ZXXAMMM---MAAXXAZ1+=--          -=+Z-'.....------.-
CCC                                                                                     CCC                          C+'''''......'.

                                                                                                                      C+++++''''''+'

                                                                                                                       CCCCCXXXXXXCX

                                                                                                                            CCCCCC C

-M-MMMMMMMMMMMAMAAAAXXXAAAAAAAAAXXXXXXXXXAAXXXZZZZXXXXAAMMMM-----MMAAXZ)+====++)111ZXXAAM--MMAAMAX1)+==-          -=)X=..-----------
C C                                                         CCCCC                        CC                           C''...........

                                                                                                                       ++'''''''''''

                                                                                                                       CCXXXXXXXXXXX

                                                                                                                         CCCCCCCCCCC

MM-MM-MMMMMMMMMMAAAAAAAAAAAAAAAXXXXZZZZZZZXXZZXXAAM-MM--==-----MMAXXZ11))+++)1))))+++)1ZZXXXZZZZZ))+=--             =)A+.-----------
  C  C                                             C  CCCCCCCCC                                                        C'...........

                                                                                                                        +'''''''''''

                                                                                                                        CXXXXXXXXXXX

                                                                                                                         CCCCCCCCCCC

MMM----MMMMMMMAMAAAMMMMMMMMAAAXXZZZ1ZZZZZZXXAAMM----MMMAMAAAAXXXXXXAAAAXXZ1)111)))+=--==++++=====---                -+Z-'-----------
   CCCC                                         CCCC                                                                   C+...........

                                                                                                                        C'''''''''''

                                                                                                                         XXXXXXXXXXX

                                                                                                                         CCCCCCCCCCC

MM-----MMMMMMAAAMMMMMMMMMMAAXXZZZZZZZZXXXAAAAAAAAAAXXZXXAAAAMMM-==+++=--AZ11))++++=---==--                          -=+Z-'----''''--
  CCCCC                                                        CCCCCCCCC                                                C+....CCCC..

                                                                                                                         C''''BBBB''

                                                                                                                          XXXXHHHHXX

                                                                                                                          CCCCXXXXCC

M------MMMMMMMMMMM--MMMMMAAXXXXZXXZXXXXXXXXXXXAAMM-----==+++'''''.''++==-AXZ)+=======+==---                        --==)ZM+--'''''-.
 CCCCCC           CC                              CCCCCCCCCC+++++'++CCCCC                                                 C..CCCCC.'

                                                            CCCCC+CC                                                       ''BBBBB'+

                                                                 C                                                         XXHHHHHXC

                                                                                                                           CCXXXXXC

--===-M-MMMMMM-----MMMMMMAAAAAAXAXXXXXXXXXXXAMM-===++++''''......''+==-MAXZZ1+=--=---===----      ----    --- -----===++)ZM'--'''-.=
CCCCCC C      CCCCC                            CCCCCCCC++++''''''++CCCC                                                    +..CCC.'C

                                                       CCCC++++++CC                                                        C''BBB'+

                                                           CCCCCC                                                           XXHHHXC

                                                                                                                            CCXXXC

=====---MMMM-----MMMMMMMMMM-MMMAAXXXXXXXXXAAM-==+++++++'''''''++==-MMAAXXXZXZ1)+=-----==-------==---=------=---==++))+++=+1M+--'-.+A
CCCCCCCC    CCCCC          C                 CCCCCCCCCC+++++++CCCCC                                                         C..C.'C

                                                       CCCCCCC                                                               ''B'+

                                                                                                                             XXHXC

                                                                                                                             CCXC

===----MM--------MMMMMMM-----MMAAXXXXXXAAAAMM-==+++++==++==--MMMMMMM------MMAAXZ)+------   ---===========-===+++))11)+++==)XM+.-'-AZ
CCCCCCC  CCCCCCCC       CCCCC                CCCCCCCCCCCCCCCC       CCCCCC                                                   C'.+C

                                                                                                                              +'C

                                                                                                                              CX

                                                                                                                               C

====-------==-----M------==---MMAAAAAAAAAAAMM--====---------=====+++++++===--MMAZ1+=-       -------=+++++==+++)))))1))++++)ZAM=+=MXZ
CCCCCCCCCCCCCCCCCC CCCCCCCCCCC               CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC                                                 CCC

====------===------========---MMMMAAAXXAAAAAMM-----=====+++++++++''''++++==---MAXZ)+=----  --  -  -==++++===+++))++))))))1ZXAM-==-AX
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCC                CCCCCCCCCCCCCCCCCCC++++CCCCCCCCC                                                CCCC

                                                                 CCCC

======-==============+======----MMMAAXXXXXAAM---===+++++'''''+'++'''+++++===--MMMAZ)+===-     --  --=========++++++))))1ZXXXAM==+=-M
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC             CCCCCCCCCCC+++++C+CC+++CCCCCCCCCC                                                CCCCC

                                                        CCCCC C  CCC

=+======+=======+++++=++=====--MMMAAXXXXXXAAMM--=++++++++'+++++++++'''''+++==--MMMAZ1)+=-----------====++====+++++))))1ZXAAM-=+''+=-
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC               CCCCCCCCCCC+CCCCCCCCC+++++CCCCCCC                                             CCC++CCC

                                                         C         CCCCC                                                       CC

++=====+++++++++++++++++======---MAAXXXZXXXXAM--==++++++++++++++++''''''++=-------MMAXZ)++++==+++++)))+++++++))))11111ZXXAM-=''..'+-
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC             CCCCCCCCCCCCCCCCCCCC++++++CCCCCCCCCC                                         CC++''+CC

                                                                  CCCCCC                                                     CC++C

                                                                                                                               CC

++====++++++'''++++++++++++++==--MAXXZZZZZXXAM-========++++=+++++'''''''+++=====--===-AZ)+++)+)))))111)))1))))111ZZZZ1ZXAM-='..--.+=
CCCCCCCCCCCC+++CCCCCCCCCCCCCCCCCC             CCCCCCCCCCCCCCCCCCC+++++++CCCCCCCCCCCCCC                                    CC+''..'CC

            CCC                                                  CCCCCCC                                                    C++''+

                                                                                                                             CCXXC

                                                                                                                               CC

++====++++'''''+''''+'''+''+++=--MAXZZ11ZZZXAM--=============++++''...''''''+====++===MX1))))++)))11Z111111111ZZZXXXXXXAM-=+'..--.''
CCCCCCCCCC+++++C++++C+++C++CCCCCC             CCCCCCCCCCCCCCCCCCC++'''++++++CCCCCCCCCC                                   CCC+''..'++

          CCCCC CCCC CCC CC                                      CC+++CCCCCC                                                C++''+CC

                                                                   CCC                                                       CCXXC

                                                                                                                               CC

++===+'''''''''''''''''''''''+==-MAXZ1111ZZXAMM--===-========++'''....'''''+==++++++=-MXXXZ1))+++)1ZZZZZ1ZZZZ1ZXAAMAAAMM-==+''''....
CCCCCC+++++++++++++++++++++++CCCC              CCCCCCCCCCCCCCCC+++''''+++++CCCCCCCCCCC                                  CCCC++++''''

      CCCCCCCCCCCCCCCCCCCCCCC                                  CCC++++CCCCC                                                 CCCC++++

                                                                  CCCC                                                          CCCC

++===+''''''''''.........''''+==-MAXZ1))11ZXXAM---=====--=====+''.......''++=++++++=-MMM--AZZ1)++)11ZZXZZXAXXXXAMM-MM---===+++++++''
CCCCCC++++++++++'''''''''++++CCCC              CCCCCCCCCCCCCCCC++'''''''++CCCCCCCCCCC   CC                        C  CCCCCCCCCCCCC++

      CCCCCCCCCC+++++++++CCCC                                  CC+++++++CC                                                        CC

                CCCCCCCCC                                        CCCCCCC

===++''.''................'''+==-MXX111)11ZXXAM-----===--====++'..--...'+++=++++++==--+++=-MXZ1))))1ZXAXXAMAAAAM--------===========+
CCCCC++'++''''''''''''''''+++CCCC              CCCCCCCCCCCCCCCC+''..'''+CCCCCCCCCCCCCCCCCCC                     CCCCCCCCCCCCCCCCCCCC

     CC+CC++++++++++++++++CCC                                  C++''+++C

       C  CCCCCCCCCCCCCCCC                                      CCXXCCC

                                                                  CC

-==++'..'.................'''++=-MXXZ11111ZZXAM----------===++''..--..''++===+++===-='.'+++=MAZ11)))1XAXXAAAAAM--MMMMMM-------======
CCCCC+''+'''''''''''''''''+++CCCC              CCCCCCCCCCCCCCC++''..''++CCCCCCCCCCCCC+'+CCCC                   CC      CCCCCCCCCCCCC

     C++C+++++++++++++++++CCC                                 CC++''++CC             C+C

      CC CCCCCCCCCCCCCCCCC                                      CCXXCC                C

                                                                  CC

M-==++''''''''............''++==-MAXZZ1111ZZXAMM---------===+'''.....'++++======+==+'..'''+=MMXZ1)+)1ZZZZZXXAAAMMAAAAMMMMMMMM-------
 CCCCC++++++++''''''''''''++CCCCC               CCCCCCCCCCCCC+++'''''+CCCCCCCCCCCCCC+''+++CC                                 CCCCCCC

      CCCCCCCC++++++++++++CC                                 CCC+++++C              C++CCC

              CCCCCCCCCCCC                                      CCCCC                CC

AAM--=++++''''...........'''+++=--MXXZZZZZZZXAAMM--------===+'''...'''''++========'.-.....'==-AXZ1)+)11111ZZXXXXXXXXXAAAAAAXAMMMMMMM
   CCCCCCC++++'''''''''''+++CCCCCC               CCCCCCCCCCCC+++'''+++++CCCCCCCCCC+'.'''''+CCC

          CCCC+++++++++++CCC                                 CCC+++CCCCC          C+'+++++C

              CCCCCCCCCCC                                       CCC                CXCCCCC

                                                                                    C

XXXAAM--==++'''..........'''++===-MAAXXZZZZXXAAMMMMMMMM---==+'''.''.''''+========'----....'++=MAZ1)))))))11ZZZZZZZZZZXXXXXZZXAAAAAAA
      CCCCCC+++''''''''''+++CCCCCC                     CCCCCC+++'++'++++CCCCCCCCC+....''''+CCC

            CCC++++++++++CCC                                 CCC+CC+CCCC         C''''++++C

               CCCCCCCCCC                                       C  C              XXXXCCCC

                                                                                  CCCC

11ZZZXAMMM--=+''.......'''''++++==-MMAAAXXXXXAAAAMMAMMMM--==++'''''..''++=====-='.----.--.''+=-MAXZ1))+)))11111111111ZZZZZ11ZXXXXXXZ
          CCCC++'''''''+++++CCCCCCC                     CCCCCC+++++''++CCCCCCCCC+'....'..'++CCC

              CC+++++++CCCCC                                  CCCCC++CC         C+''''+''+CC

                CCCCCCC                                            CC            CXXXXCXXC

                                                                                  CCCC CC

+)))11ZXXAMM-=+'''...'''''++++++++=--MMAXXXAXAAAAAAAAMMM---===++'....''++===--='.----......'+++=-MAXZ))+++))))))))1111ZZ)))1ZZXXZZZ1
            CCC+++'''+++++CCCCCCCCCCC                   CCCCCCCC+''''++CCCCCCCC+'....''''''+CCCCC

               CCC+++CCCCC                                      C++++CC        C+''''++++++C

                  CCC                                            CCCC           CXXXXCCCCCC

                                                                                 CCCC

==++++)1ZZXXMM==+''.'''''''''''''++==-MMAAAAAAAAAAAMAAMM----==+'......'++==--='..---......-.''''+=-AXZ1))))))))))1111111))))ZZXZZZZ1
              CCC++'+++++++++++++CCCCC                  CCCCCCC+''''''+CCCCCCC+''...''''''.'++++CCC

                 CC+CCCCCCCCCCCCC                              C++++++C       C++'''++++++'+CCCC

                   C                                            CCCCCC         CCXXXCCCCCCXC

                                                                                 CCC      C

-----==+)11ZXAM-=+''''''''''''''''+++=--MMMMMMAAAAAMAAMM----==''.....''++=--=+''........---.....''+-MAXZZZZ1))))1111111)))))11Z1ZZZ1
               CCC++++++++++++++++CCCCCC                CCCCCC++'''''++CCCCCCC++''''''''...'''''++CC

                  CCCCCCCCCCCCCCCC                            CC+++++CC       CC++++++++'''+++++CC

                                                                CCCCC           CCCCCCCCXXXCCCCC

                                                                                        CCC

     --==++)ZXAM-=+'''''''''''...'''++==-----MMMAAAAAAMMM---=+''...--.'+=--=++''''...-..---..--...'+===-MMAXZZZ11111111)))))11ZZZZXZ
                CCC+++++++++++'''+++CCCCCCCCC            CCCCC++'''..'+CCCCCCC++++'''.''...''..'''+CCCCC

                   CCCCCCCCCCC+++CCC                          CC+++''+C       CCCC+++'++'''++''+++C

                              CCC                               CCCXXC            CCCXCCXXXCCXXCCC

                                                                   CC                C  CCC  CC

      --==++)ZXAM-=++'+'++'''....''''++===-=---MMAAAAAAMMMM--==+''.--.'=--=++++++'''...----....----...'+==MMMAXZZZZ11)))))))11ZZZXXX
                 CCCC+C+CC+++''''++++CCCCCCCCCC            CCCCC++'..'+CCCCCCCCCC+++'''....''''....'''+CCC

                     C C  CCC++++CCCC                           CC+''+C          CCC+++''''++++''''+++C

                             CCCC                                 CXXC              CCCXXXXCCCCXXXXCCC

                                                                   CC                  CCCC    CCCC

     --==+++)1ZXAMM-====+++++''''''''''++++===---MAAAMAMMMMMMM-=='....+==+===+++++''''.----...-------..'.'+=-MAXZZ11)))))))11ZXXAAXX
                   CCCCCCCCCC++++++++++CCCCCCCCCC             CCC+''''CCCCCCCCCCCC++++'....'''.......''+'+CCC

                             CCCCCCCCCC                          C++++            CCCC+''''+++'''''''++C+C

                                                                  CCCC                CXXXXCCCXXXXXXXCC C

                                                                                       CCCC   CCCCCCC

  --====++)))))1ZXXXAAMM---====++++''''++++++===--MAAAAAAAAAAMM-=+'..'+++++===+++++'+'........--------....''+=-AX11))1))))11ZXXXAAXA
                        CCCCCCCCCCC++++CCCCCCCCCCC             CCC+''+CCCCCCCCCCCCC+C+''''''''........''''++CCC

                                   CCCC                           C++C             C C++++++++''''''''++++CC

                                                                   CC                 CCCCCCCCXXXXXXXXCCCC

                                                                                              CCCCCCCC

  --=++)))))++++)111ZZXXAAMMM-M-==+++''+''+++++==--MAAAAAAAAAAM-=++'++'.''+=====++++++'''''.....------....-..'=MXZ11111))11ZZXXAAAAA
                             C CCCCCC++C++CCCCCCCCC            CCCC+CC+'++CCCCCCCCCCCC+++++'''''......''''.''+C

                                     CC CC                         C  C+CC            CCCCC+++++''''''++++'++C

                                                                       C                   CCCCCXXXXXXCCCCXCC

                                                                                                CCCCCC    C

   -=++)11))+++=+++)11ZZZXXAAAM--======++++++++++=--MAAXAAAAAMM--===+'...'+++========++++++''''''.......-----.+-MAAXZ1ZZ111ZXXAAMAAM
                               CCCCCCCCCCCCCCCCCCCCC           CCCCCC+'''+CCCCCCCCCCCCCCCCC++++++'''''''.....'CC

                                                                     C+++C                 CCCCCC+++++++'''''+

                                                                      CCC                        CCCCCCCXXXXXC

                                                                                                        CCCCC

----==+++)))++===+++)1ZZZZZXXAAM--------==++++'+++=-MAAXXAAAAAMM---=+'...'++====---==+++++++''''+++'..-------.+==-MMAAAXZZZXAAAMMMM-
                                CCCCCCCCCCCCCC+CCCCC            CCCCC+'''+CCCCCCCCCCCCCCCCCC++++CCC+''.......'CCCC                 C

                                              C                      C+++C                  CCCC   C++'''''''+

                                                                      CCC                           CCXXXXXXXC

                                                                                                      CCCCCCC

---=====+++++=====++))111ZZZZXXXAAAMMMMMM--==+++++=-MMAAXAAAAAAMMM-=+'...''++====--=+++++==++++++++'..-------''++====-MAAAAAMM---M-=
                                         CCCCCCCCCCC              CCC+'''++CCCCCCCCCCCCCCCCCCCCCCCC+''.......++CCCCCCC        CCC CC

                                                                     C+++CC                        C++'''''''CC

                                                                      CCC                           CCXXXXXXX

                                                                                                      CCCCCCC

---===+++===-======++111111111111ZZXXXAAAM--==++++==-MMAAAAAAAAAAM--=+''''''++=====++++++=+++++''+'''..-----.....'''++=------=====+=
                                          CCCCCCCCCCC             CCCC++++++CCCCCCCCCCCCCCCCCCC++C+++''.....'''''+++CCCCCCCCCCCCCCCC

                                                                      CCCCCC                   CC CCC++'''''+++++CCC

                                                                                                     CCXXXXXCCCCC

                                                                                                       CCCCC

-========-    ----=-=++))++++++++++)11ZXXAMM--=======--MMAAAAAXXAAM--=+'''''''=-==+++''+++++++''''''''..---..-----.'++++++++++++'''+
                                            CCCCCCCCCCC            CCCC+++++++CCCCCCC++CCCCCCC++++++++''...''.....'+CCCCCCCCCCCC+++C

                                                                       CCCCCCC       CC       CCCCCCCC++'''++'''''+C            CCC

                                                                                                      CCXXXCCXXXXXC

                                                                                                        CCC  CCCCC

 --------           ---=====-===--===+)11ZXXAAM--=======--MMAAXXXAAM-==++''''+====+++'+++'++++''''.'''....--------..''''''''.......'
                                               CCCCCCCCCCC          CCCCC++++CCCCCCCC+CCC+CCCC++++'+++''''........''++++++++'''''''+

                                                                         CCCC        C   C    CCCC+CCC++++''''''''++CCCCCCCC+++++++C

                                                                                                  C   CCCCXXXXXXXXCC        CCCCCCC

                                                                                                          CCCCCCCC

-                     -    ------   --==+))1ZXXAM-==+++++=-MMAXXXXAAM--=++'''+====+++++++++++++++''''''...-------.....'''...---.--..
                                                 CCCCCCCCCC          CCCCC+++CCCCCCCCCCCCCCCCCCCC++++++'''.......'''''+++'''...'..''

                                                                          CCC                    CCCCCC+++'''''''+++++CCC+++'''+''++

                                                                                                       CCCXXXXXXXCCCCC   CCCXXXCXXCC

                                                                                                          CCCCCCC           CCC CC

                      --    -===--     -===+)1ZAAM-=+'''''+=-AAXZXXAAM-==++''+============++++==++++++'''.-------...........-------.
                                                  CCC+++++CCC         CCCCC++CCCCCCCCCCCCCCCCCCCCCCCCC+++'.......'''''''''''.......'

                                                     CCCCC                 CC                         CCC+'''''''+++++++++++'''''''+

                                                                                                         CXXXXXXXCCCCCCCCCCCXXXXXXXC

                                                                                                          CCCCCCC           CCCCCCC

 -- ------                   -===-      --=+)1XXAM-=++''''+=-MAXXXXXAAM-==++++===-=========++==========+.--------...........-----...
                                                  CCCC++++CCC          CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC'........'''''''''''.....'''

                                                      CCCC                                              +''''''''+++++++++++'''''+++

                                                                                                        CXXXXXXXXCCCCCCCCCCCXXXXXCCC

                                                                                                         CCCCCCCC           CCCCC

------====-                   ----- - -----=+)1ZXAM-=+''''+==-MAXXXXAAM--==+++==----====--===+++=---==-='.-------............----...
                                                   CCC++++CCCC         CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC+'.......''''''''''''....'''

                                                      CCCC                                              C+'''''''++++++++++++''''+++

                                                                                                         CXXXXXXXCCCCCCCCCCCCXXXXCCC

                                                                                                          CCCCCCC            CCCC

+++===++))+=--                -----==+=====++)1ZXAM-=++'''+++=MAXXZXAMM--===++==-----------==+++==------+.-----.''''.'.........--...
                                                   CCCC+++CCCC         CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC'.....'++++'+'''''''''..'''

                                                       CCC                                               +'''''+CCCC+C+++++++++''+++

                                                                                                         CXXXXXC    C CCCCCCCCCXXCCC

                                                                                                          CCCCC                CC

Z111)))111))+==-            ------=+))))++++)1ZXAAM-=+++'+=++=-AXZXXAM-====+++===--MMMMM----=+++==------+..---.'++'+'''''.......-...
                                                   CCCCC+CCCCCC       CCCCCCCCCCCCC     CCCCCCCCCCCCCCCCC''...'+CC+C+++++'''''''.'''

                                                        C                                                ++'''+C  C CCCCC+++++++'+++

                                                                                                         CCXXXC          CCCCCCCXCCC

                                                                                                           CCC                  C

MAAZZZZZ11)))))+-          --=====))1Z11)))11ZXAAMM--==++=====-MXZZXAM-====+++===--MMMMMMMMM-======------+'...'++=+==+'''.....''..''
                                                   CCCCCCCCCCCC       CCCCCCCCCCCCC         CCCCCCCCCCCCCC+'''+CCCCCCC+++'''''++''++

                                                                                                          C+++C       CCC+++++CC++CC

                                                                                                           CCC           CCCCC  CC

--MAAAAX11))1111)=----    -==+++))1ZZZZZZZZZZAAMM---=======+++=-MAXXAM-==========----MMAAAMMMM--=====----=+'''++======+''..-...'''''
CC                                               CCCCCCCCCCCCCCC      CCCCCCCCCCCCCCC         CCCCCCCCCCCCC+++CCCCCCCCC++''.'''+++++

                                                                                                           CCC         CC++'+++CCCCC

                                                                                                                         CCXCCC

                                                                                                                           C

MMMMM-MX1))))11111)))++===+++))11ZZZZZZXXXXAAM--==-===++==+++'+=-MAXAM-=+=======-----MMAAAAMMM--==+++=--==++++====---==+'.---..'''+'
     C                                        CCCCCCCCCCCCCCC+CCC     CCCCCCCCCCCCCCC         CCCCCCCCCCCCCCCCCCCCCCCCCC+'...''+++C+

                                                             C                                                          C+'''++CCC C

                                                                                                                         CXXXCC

                                                                                                                          CCC

AAAAAAAX1)))11ZZZZZZZZ1)+++))1ZZZXXXXZXXXAAAM--======+++++'''''+=-MMM-==++++=====-----MMMAAAAAM-=++'''+++++++======--=++'.----..''+'
                                             CCCCCCCCCCCCC+++++CCC   CCCCCCCCCCCCCCCCC         CCCC+++CCCCCCCCCCCCCCCCCC+'....''++C+

                                                          CCCCC                                    CCC                  C+''''++CC C

                                                                                                                         CXXXXCC

                                                                                                                          CCCC

AXXZXXXXZ111)1111ZXXAAXZ1))11ZZXXXZZZZXXXAAAAM-=----=+++++'''''+==----=++''++========-M--MAAAAM-=+'....''++===========+''------.''++
                                              CCCCCCCCCCCC+++++CCCCCCCCCC++CCCCCCCCCCC CC      CCC+''''++CCCCCCCCCCCCCC++......'++CC

                                                          CCCCC          CC                       C++++CC              CC''''''+CC

                                                                                                   CCCC                  XXXXXXC

                                                                                                                         CCCCCC

AXXAAAAAAXZZZZZXAAAAAAXZZ111ZXXAAXXXZZXAAAAMMM---M--========+++===--==+++''''++++++=====--MAMAM-=+'..---..'+==+++=====++'.-----.''''
                                              CCC CCCCCCCCCCCCCCCCCCCCCCC++++CCCCCCCCCCCCC     CCC+''...''+CCCCCCCCCCCCC+'.....'++++

                                                                         CCCC                     C++'''++C             C+'''''+CCCC

                                                                                                   CCXXXCC               CXXXXXC

                                                                                                     CCC                  CCCCC

MMM---MMAAXAMMM---MAAAAAXZZXXAAAAAAAXXAAAAAM--------===-------========++++'''++++++=======-----==+'...----.'++''+=----=+'...---.'''.
   CCC         CCC                          CCCCCCCCCCCCCCCCCCCCCCCCCCCCCC+++CCCCCCCCCCCCCCCCCCCCC+'''....'+CC++CCCCCCCC+'''...'+++'

                                                                          CCC                     C+++''''+C  CC        C+++'''+CCC+

                                                                                                   CCCXXXXC              CCCXXXC   C

                                                                                                      CCCC                  CCC

--==--MAXXXA-==+=-MAAMMAAAAAAAAAAAAMMMMMMAM--=----====-MM----------==-==++''+++======+==++=+++=+''''''.----.'''+=---==+''.'+'..'+'..
CCCCCC      CCCCCC                         CCCCCCCCCCCC  CCCCCCCCCCCCCCCCC++CCCCCCCCCCCCCCCCCCCC++++++'....'+++CCCCCCCC++'+C+''+C+''

                                                                          CC                    CCCCCC+''''+CCC        CC+C C++C C++

                                                                                                      CXXXXC             C   CC   CC

                                                                                                       CCCC

-MMMAAAAAAM-====-MAAAMMMMMAAAXXAMMMMMM--MMMM------==---MMMM-M--=-------=+''++++===+++''''+++++'...'+++'----.''+=-=++''+'''+=+'''''..
C          CCCCCC                     CC    CCCCCCCCCCC    C CCCCCCCCCCCC++CCCCCCCCCC++++CCCCC+'''+CCC+....'++CCCCCC++C+++CCC+++++''

                                                                         CC          CCCC     C+++C   C''''+CC      CC CCC   CCCCC++

                                                                                               CCC     XXXXC                      CC

                                                                                                       CCCC

XXAXXAMM-==+===-MMAAAAMMMAAMM-----MM--==--MAM---=======-MAM--=++===---===++======='''...'+===='..'+++'.----.++==+'.-.'+''+++'''+++++
        CCCCCCCC             CCCCC  CCCCCC   CCCCCCCCCCC   CCCCCCCCCCCCCCCCCCCCCCC+++'''+CCCCC+''+CCC+'....'CCCCC+'.'+C++CCC+++CCCCC

                                                                                  CCC+++C     C++C   C+''''+     C+'+C CC   CCC

                                                                                     CCC       CC     CXXXXC      CXC

                                                                                                       CCCC        C

XAMAA------MMMMMMMAAAAAAAAA-=++==-M-=+++=-MM-=========-MMM---======+=+====---===-=+++''++=--==+++===+''.--.'===='...'+=+++'''+===--M
     CCCCCC                CCCCCCC CCCCCCC  CCCCCCCCCCC   CCCCCCCCCCCCCCCCCCCCCCCCCCC++CCCCCCCCCCCCCC++'..'+CCCC+'''+CCCCC+++CCCCCC

                                                                                     CC              CC+''+C    C+++C     CCC

                                                                                                       CXXC      CCC

                                                                                                        CC

--==---MAAXXXXAAMMAAAAAMMM-=+'+=--M-=+'+=MM-====++====-MM-=------=++++==-----===--=+++++==--=========+''...+=--='''+====++'+=-MMMMMM
CCCCCCC                   CCC+CCCC CCC+CC  CCCCCCCCCCCC  CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC++'''CCCCC+++CCCCCCC+CCC

                             C        C                                                               CC+++     CCC       C

                                                                                                        CCC

=+'++--MAXXXXXAAMMMAAAM--==+++=-MMMM====-M-=====++===-M-=++=--M--=====-MM---======++''++=----======---=++++=---=+=---==+++=--MMMM--=
CC+CCCC                CCCCCCCCC    CCCCC CCCCCCCCCCCC CCCCCCC CCCCCCCC  CCCCCCCCCCC++CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC    CCC

  C                                                                                 CC

-'=-=--MAAM-MAAMM-MMMM--==+'''+-M---======+'+=++'+++=--=''+=---=-----------=====++==+'+==-MM-------MMM-=++====--------====----==++''
C+CCCCC    C     C    CCCCC+++CC CCCCCCCCCC+CCCC+CCCCCCC++CCCCCCCCCCCCCCCCCCCCCCCCCCC+CCCC  CCCCCCC   CCCCCCCCCCCCCCCCCCCCCCCCCCCC++

 C                         CCC             C    C       CC                           C                                            CC

MMMAMAM--M--MAAAM----=++++''''+=----==+++'.'+++'+++=--=+''+==+++====--=+======++++--=++=-MAAAAMM------+'''+==-------=====---==+'''.'
       CC CC     CCCCCCCCC++++CCCCCCCCCCC+'+CCC+CCCCCCCC++CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC       CCCCCCC+++CCCCCCCCCCCCCCCCCCCCC+++'+

                          CCCC           C+C   C        CC                                             CCC                     CCC+C

                                          C                                                                                       C

MMMMMAAAAAAAXXAAM---==''''.'''++===-++++'''''+++=-----=''+==+''''+++==+'++=++++'+=---==-MAAAAMMM----=+''.'+=---========----===++'''+
                 CCCCC++++'+++CCCCCCCCCC+++++CCCCCCCCCC++CCCC++++CCCCCC+CCCCCCC+CCCCCCCC        CCCCCC++'+CCCCCCCCCCCCCCCCCCCCCC+++C

                      CCCC+CCC          CCCCC          CC    CCCC      C       C                      CC+C                      CCC

                          C                                                                             C

MM-MAAXXZXXXAAAAMMMM-==+'.---.'+==-=+++++=+++=-----MM-=+===++'...'++++'''+=+++++=MM-===-MMMM---M--====++++=--====--=====--===+++++++
  C                 CCCC+'...'+CCCCCCCCCCCCCCCCCCCC  CCCCCCCC+'''+CCCC+++CCCCCCCC  CCCCC    CCC CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC

                        C+'''+C                              C+++C    CCC

                         CXXXC                                CCC

                          CCC

-MMAMAXXXXAMMMMMMMM--=++'.---..'===+++++===++-M-------===---=='''+++++'''=======-M--===--MM------=++=====--------M---====---=+''+++=
C                  CCCCC+'...''+CCCCCCCCCCCCCC CCCCCCCCCCCCCCC+++CCCCC+++CCCCCCCC CCCCCCC  CCCCCCCCCCCCCCCCCCCCCC CCCCCCCCCCCC++CCCC

                        C+'''++C                              CCC     CCC                                                     CC

                         CXXXCC

                          CCC

-MMMMAAAAMM===------=++++'--.''+===+=+==---=----MM----=--MAAM-====+++'''=------MMM-----MMMMM----=++++==-------MMMMM---=-=----=++++==
C          CCCCCCCCCCCCCC+..'++CCCCCCCCCCCCCCCCC  CCCCCCC    CCCCCCCC+++CCCCCCC   CCCCC     CCCCCCCCCCCCCCCCCC     CCCCCCCCCCCCCCCCC

                         C''+CC                                      CCC

                          XXC

                          CC

-MMMMMMMM-=+''++=====++'++.'+=+=--==---M-MMM----MMMM-----MMMM-====-====-MMMM--MAAAMM-MMMMMMM---=+++++==-------MMMMMMM---------=====-
C        CCC++CCCCCCCCC+CC'+CCCCCCCCCCC C   CCCC    CCCCC    CCCCCCCCCCC    CC      C       CCCCCCCCCCCCCCCCCC       CCCCCCCCCCCCCCC

            CC         C  +C

                          C

-MMMMM---=+'''++==+++++++''+++==--M-MMMMMMAMM----MMMM--MM------=---MMMMMAAMMMMMAAAAM-MMMM--MM--=+=====-M-----M-MMMMMM--====---------
C     CCCCC+++CCCCCCCCCCC++CCCCCCC C         CCCC    CC  CCCCCCCCCC                 C    CC  CCCCCCCCCC CCCCC C      CCCCCCCCCCCCCCC

           CCC           CC

                                                                      =)XM+-'''''''''''''''''''--------------------------.'=MX1)=-
                                                                          C.CCCCCCCCCCCCCCCCCCC..........................'+C

                                                                           'BBBBBBBBBBBBBBBBBBB''''''''''''''''''''''''''+C

                                                                           XHHHHHHHHHHHHHHHHHHHXXXXXXXXXXXXXXXXXXXXXXXXXXC

                                                                           CXXXXXXXXXXXXXXXXXXXCCCCCCCCCCCCCCCCCCCCCCCCCC

                                                                     -+1X-+--'''''---'''''''''''--------------------------'+-XZ)=-
                                                                         CC..CCCCC...CCCCCCCCCCC..........................+CC

                                                                           ''BBBBB'''BBBBBBBBBBB''''''''''''''''''''''''''C

                                                                           XXHHHHHXXXHHHHHHHHHHHXXXXXXXXXXXXXXXXXXXXXXXXXX

                                                                           CCXXXXXCCCXXXXXXXXXXXCCCCCCCCCCCCCCCCCCCCCCCCCC

                                                                     =+1A-+--'''''--''''''''''''--------------------------'+MXZ)=-
                                                                         CC..CCCCC..CCCCCCCCCCCC..........................+C

                                                                           ''BBBBB''BBBBBBBBBBBB''''''''''''''''''''''''''C

                                                                           XXHHHHHXXHHHHHHHHHHHHXXXXXXXXXXXXXXXXXXXXXXXXXX

                                                                           CCXXXXXCCXXXXXXXXXXXXCCCCCCCCCCCCCCCCCCCCCCCCCC

                                                                    -+)ZM='--''''''''''''''''''''-------------------------.+-AZ)=
                                                                         C+..CCCCCCCCCCCCCCCCCCCC.........................'CC

                                                                          C''BBBBBBBBBBBBBBBBBBBB'''''''''''''''''''''''''+

                                                                           XXHHHHHHHHHHHHHHHHHHHHXXXXXXXXXXXXXXXXXXXXXXXXXC

                                                                           CCXXXXXXXXXXXXXXXXXXXXCCCCCCCCCCCCCCCCCCCCCCCCC

                                                                    =)1AM='--''''''''''''''''''''-------------------------.+-X1)=
                                                                         C+..CCCCCCCCCCCCCCCCCCCC.........................'CC

                                                                          C''BBBBBBBBBBBBBBBBBBBB'''''''''''''''''''''''''+

                                                                           XXHHHHHHHHHHHHHHHHHHHHXXXXXXXXXXXXXXXXXXXXXXXXXC

                                                                           CCXXXXXXXXXXXXXXXXXXXXCCCCCCCCCCCCCCCCCCCCCCCCC

                                                                   =+1XA-+.--''''''''''''''''''''-------------------------.+-A1)=-
                                                                        CC'..CCCCCCCCCCCCCCCCCCCC.........................'CC

                                                                          +''BBBBBBBBBBBBBBBBBBBB'''''''''''''''''''''''''+

                                                                          CXXHHHHHHHHHHHHHHHHHHHHXXXXXXXXXXXXXXXXXXXXXXXXXC

                                                                           CCXXXXXXXXXXXXXXXXXXXXCCCCCCCCCCCCCCCCCCCCCCCCC

                                                                  -+1ZAM='--'''''''''''''''''''''-------------------------.+-AZ)=-
                                                                        C+..CCCCCCCCCCCCCCCCCCCCC.........................'CC

                                                                         C''BBBBBBBBBBBBBBBBBBBBB'''''''''''''''''''''''''+

                                                                          XXHHHHHHHHHHHHHHHHHHHHHXXXXXXXXXXXXXXXXXXXXXXXXXC

                                                                          CCXXXXXXXXXXXXXXXXXXXXXCCCCCCCCCCCCCCCCCCCCCCCCC

                                                                 -+)ZAM=+.--'''''''''''''''''''---------------------------'=MX1)=
                                                                       CC'..CCCCCCCCCCCCCCCCCCC...........................+C

                                                                         +''BBBBBBBBBBBBBBBBBBB'''''''''''''''''''''''''''C

                                                                         CXXHHHHHHHHHHHHHHHHHHHXXXXXXXXXXXXXXXXXXXXXXXXXXX

                                                                          CCXXXXXXXXXXXXXXXXXXXCCCCCCCCCCCCCCCCCCCCCCCCCCC

                                                                -=)1XM-+'--''''''''''''''''''''-----.....-----------------.+-MX1+-
                                                                      CC+..CCCCCCCCCCCCCCCCCCCC.....'''''.................'CC

                                                                        C''BBBBBBBBBBBBBBBBBBBB'''''+++++'''''''''''''''''+

                                                                         XXHHHHHHHHHHHHHHHHHHHHXXXXXCCCCCXXXXXXXXXXXXXXXXXC

                                                                         CCXXXXXXXXXXXXXXXXXXXXCCCCC     CCCCCCCCCCCCCCCCC

-                                                               -=)1XM='.--'''''''''''''''''----..'''+++'..---------------.+-MZ)+-
                                                                      C+'..CCCCCCCCCCCCCCCCC....''+++CCC+''...............'CC

                                                                       C+''BBBBBBBBBBBBBBBBB''''++CCC   C++'''''''''''''''+

                                                                        CXXHHHHHHHHHHHHHHHHHXXXXCC       CCXXXXXXXXXXXXXXXC

                                                                         CCXXXXXXXXXXXXXXXXXCCCC           CCCCCCCCCCCCCCC

+=-====--=---- ---                                              -=)ZAM='--''''''''''''''''----..''++===-=+'..-------------.+-AX1+-
                                                                      C+..CCCCCCCCCCCCCCCC....''++CCCCCCCC+''.............'CC

                                                                       C''BBBBBBBBBBBBBBBB''''++CC        C++'''''''''''''+

                                                                        XXHHHHHHHHHHHHHHHHXXXXCC           CCXXXXXXXXXXXXXC

                                                                        CCXXXXXXXXXXXXXXXXCCCC               CCCCCCCCCCCCC

)++))++++=++=====-----                                          -=)1AM='--'''''''''''''''--..''+++=----MMM-+'.------------.+-AZ1+-
                                                                      C+..CCCCCCCCCCCCCCC..''++CCCCCCCC   CC+'............'CC

                                                                       C''BBBBBBBBBBBBBBB''++CC             C+''''''''''''+

                                                                        XXHHHHHHHHHHHHHHHXXCC                CXXXXXXXXXXXXC

                                                                        CCXXXXXXXXXXXXXXXCC                   CCCCCCCCCCCC

1))1)))))+++++=====-----                                        -=)ZA-='--'''''''''''''--..'+++====-MMMMMAAM='.-----------.'=MX1+-
                                                                     CC+..CCCCCCCCCCCCC..''+CCCCCCCC        C+'...........'+C

                                                                       C''BBBBBBBBBBBBB''++C                 C+'''''''''''+C

                                                                        XXHHHHHHHHHHHHHXXCC                   CXXXXXXXXXXXC

                                                                        CCXXXXXXXXXXXXXCC                      CCCCCCCCCCC

1))1))))))++++=====----- -                                      -=)1XM=+.---'''''''''--..'+++===-----MMMMAAAM='.----------.'=MX1+=
                                                                      CC'...CCCCCCCCC..''+CCCCCCCCCCC        C+'..........'+C

                                                                        +'''BBBBBBBBB''++C                    C+''''''''''+C

                                                                        CXXXHHHHHHHHHXXCC                      CXXXXXXXXXXC

                                                                         CCCXXXXXXXXXCC                         CCCCCCCCCC

)+))))))+)+++=====----- -                                       -=)1ZA-='.--'''''''---.'+++===----------MMMAXA='.---------.'=MX1+=-
                                                                      CC+'..CCCCCCC...'+CCCCCCCCCCCCCCCC      C+'.........'+C

                                                                        C+''BBBBBBB'''+C                       C+'''''''''+C

                                                                         CXXHHHHHHHXXXC                         CXXXXXXXXXC

                                                                          CCXXXXXXXCCC                           CCCCCCCCC

==+===+=====-----                                               -=+)ZXA-=+.--'''''--.'+++===--------=-==--MAXXM='.--------.'=MX1)=-
                                                                       CCC'..CCCCC..'+CCCCCCCCCCCCCCCCCCCC     C+'........'+C

                                                                          +''BBBBB''+C                          C+''''''''+C

                                                                          CXXHHHHHXXC                            CXXXXXXXXC

                                                                           CCXXXXXCC                              CCCCCCCC

  --------                                                       --+)1XA-=+.--''--.'++++==---------=======-MAAM-+.--------.'=MAZ)=-
                                                                        CCC'..CC..'+CCCCCCCCCCCCCCCCCCCCCCC    CC'........'+C

                                                                           +''BB''+C                             +''''''''+C

                                                                           CXXHHXXC                              CXXXXXXXXC

                                                                            CCXXCC                                CCCCCCCC

                                                                  -=+)1XA-='.----'+++===-----------========-MAAM='--------.'=MXZ)=-
                                                                         CC+'....+CCCCCCCCCCCCCCCCCCCCCCCCCC    C+........'+C

                                                                           C+''''C                               C''''''''+C

                                                                            CXXXX                                 XXXXXXXXC

                                                                             CCCC                                 CCCCCCCC

                                                                   -=+)1ZA-='.--'+++==--MM---==-----==+++===-MAM='--------.'=MXZ)+-
                                                                          CC+'..+CCCCCCC  CCCCCCCCCCCCCCCCCCC   C+........'+C

                                                                            C+''C                                C''''''''+C

                                                                             CXX                                  XXXXXXXXC

                                                                              CC                                  CCCCCCCC

                                                                     -=)1ZA-='.'''+=--MMMMM-===-----=====++=-MAA-+.-------.'=MAZ)+=
                                                                           CC+'+++CCCC     CCCCCCCCCCCCCCCCCC   CC'.......'+C

                                                                             C+CCC                                +'''''''+C

                                                                              C                                   CXXXXXXXC

                                                                                                                   CCCCCCC

                                                                      =+)1XM-=++'++=--M-------=----===+++++==-AAM='-------.'=-AZ1+=
                                                                            CCCC+CCCCC CCCCCCCCCCCCCCCCCCCCCCC   C+.......'+CC

                                                                                C                                 C'''''''+C

                                                                                                                   XXXXXXXC

                                                                                                                   CCCCCCC

                                                                      -=+)ZAM-=+++=-----------=======++++++==-MAM-'.------.'=-AZ)+-
                                                                             CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC   C+'......'+CC

                                                                                                                  C+''''''+C

                                                                                                                   CXXXXXXC

                                                                                                                    CCCCCC

                                                                       -=)ZXM--===-------------=====++++++++=-MAM-+.------.'+-AZ1+=-
                                                                             CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC   CC'......'+CC

                                                                                                                   +''''''+C

                                                                                                                   CXXXXXXC

                                                                                                                    CCCCCC

                                                                       -=)ZXAM-------------MMM--====++''''++==-AM-='------.'=-AX1+=-
                                                                              CCCCCCCCCCCCC   CCCCCCCC++++CCCCC  CC+......'+CC

                                                                                                      CCCC         C''''''+C

                                                                                                                    XXXXXXC

                                                                                                                    CCCCCC

                                                                      -=+)1XAM-------M-----MMMMM-====+''''''+=-MAM='------.'=MAZ1+=
                                                                              CCCCCCC CCCCC     CCCCCC++++++CCC   C+......'+C

                                                                                                      CCCCCC       C''''''+C

                                                                                                                    XXXXXXC

                                                                                                                    CCCCCC

                                                                    -=+))ZZXAMMMM---MMMMMMMMMMMM--===++'''''++-MMM='.-----.'+-AZ1)=-
                                                                                 CCC            CCCCCCC+++++CCC   C+'.....'+CC

                                                                                                       CCCCC       C+'''''+C

                                                                                                                    CXXXXXC

                                                                                                                     CCCCC

                                                                  -++)11ZZXAMM-M----MMMMAMMMMMMMM--==++''''''+=-MM-+.-----.'+-AZ1+=-
                                                                              C CCCC             CCCCCC++++++CCC  CC'.....'+CC

                                                                                                       CCCCCC       +'''''+C

                                                                                                                    CXXXXXC

                                                                                                                     CCCCC

      -------- -                                               --=)1ZZXXXAAMM-----MMMMAAAAAAAAAMMMM-==+++'''''+=MM-='-----.'+-MX1)=-
                                                                             CCCCC                 CCCCCC+++++CC  CC+.....'+CC

                                                                                                         CCCCC      C'''''+C

                                                                                                                     XXXXXC

                                                                                                                     CCCCC

--===++))++++++)+===--                                    --==++)1XAAAMMM--------MMMMMMAAAAAAAAAMMM--==+++''''+=MM-+.-----.'+-MX1)=-
                                                                         CCCCCCCC                  CCCCCCC++++CC  CC'.....'+CC

                                                                                                          CCCC      +'''''+C

                                                                                                                    CXXXXXC

                                                                                                                     CCCCC

)))111ZZZZZZZZZZZ11)))+++++=+===----        -----==--===++))11ZZZXAMMM-----------MMMMMMAAAAAAAAAMMMM-==++'''''+=-M-=.-----.'+-MX1)=-
                                                                      CCCCCCCCCCC                   CCCCC+++++CCC CC'.....'+CC

                                                                                                         CCCCC      +'''''+C

                                                                                                                    CXXXXXC

                                                                                                                     CCCCC

ZXXXXXAAAAAAAAAAAAXXXXZZZZZZZ1111)))++++++++))))))111111ZZZXXAAAAMMM---====-------MMMMMAAAAAAAAAAMMM--=+++''''+=-M-='------.+=MXZ)+=
                                                                    CCCCCCCCCCCCCC                  CCCCCC++++CCC CC+......'CC

                                                                                                          CCCC      C''''''+

                                                                                                                     XXXXXXC

                                                                                                                     CCCCCC

AAMMMMMM---------MMMMMAAAAAAAAAXXXXXZZZZZZZZZZXZXXAAAAAAAMMMM----MMM----==--------MMAAAAAAAAXXAAAMMM--=+++''''+=-M-='-----.'+-AX1)=-
        CCCCCCCCC                                            CCCC   CCCCCCCCCCCCCC                  CCCCCC++++CCC CC+.....'+CC

                                                                                                          CCCC      C'''''+C

                                                                                                                     XXXXXC

                                                                                                                     CCCCC

----------=========---------------MMMMMMMMMMMMMM----=---=========----------------MMAAAAAXAAAAAAAMMM---=++''..'+=--M='------'+-MXZ)+-
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC              CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC                  CCCCCC++''+CCCC C+......+CC

                                                                                                         CC++C      C''''''C

                                                                                                           CC        XXXXXX

                                                                                                                     CCCCCC

===============++++=============================++++++++++++++++=-------=------MMMMAAAXXXXXAAAAMMM----==+''...'+=-M-+.-----.+-MXZ)+=
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC                   CCCCCCC++'''+CCC CC'.....'CC

                                                                                                         CC+++C      +'''''+

                                                                                                           CCC       CXXXXXC

                                                                                                                      CCCCC

++++++++++++++++''+++++++++++'+''++++'++++++++'''''''''''''''''+====---==------MMAAAAAXXZXXXXAAMMM--====++'....'=-M-=.-----.+=MAZ)+=
CCCCCCCCCCCCCCCC++CCCCCCCCCCC+C++CCCC+CCCCCCCC+++++++++++++++++CCCCCCCCCCCCCCCC                   CCCCCCCC+''''+CC CC'.....'CC

                CC           C CC    C        CCCCCCCCCCCCCCCCC                                           C++++C     +'''''+

                                                                                                           CCCC      CXXXXXC

                                                                                                                      CCCCC

++++'+++''+++''''''''''''''''''''''''''''''''''...............'+====----------MMMMMAAAAXXXXXXAAAMM--===+++'''..'=-M-='-----.+-MXZ)+=
CCCC+CCC++CCC++++++++++++++++++++++++++++++++++'''''''''''''''+CCCCCCCCCCCCCCC                    CCCCCCCC+++''+CC CC+.....'CC

    C   CC   CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC+++++++++++++++C                                           CCC++C     C'''''+

                                               CCCCCCCCCCCCCCC                                               CC       XXXXXC

                                                                                                                      CCCCC

'''''''''''''''''..'...'.''...............''''...-.----..-...'+++++======-==--MMMMMAAAXAAAAAXAAAMM--==+++++'''''+---='----..+=MXZ)+=
+++++++++++++++++''+'''+'++'''''''''''''''++++'''.'....''.'''+CCCCCCCCCCCCCCCC                    CCCCCCCCC+++++CCCCC+....''CC

CCCCCCCCCCCCCCCCC++C+++C+CC+++++++++++++++CCCC+++'+''''++'+++C                                             CCCCC     C''''++

                 CC CCC C  CCCCCCCCCCCCCCC    CCCXCXXXXCCXCCC                                                         XXXXCC

                                                 C CCCC  C                                                            CCCC

''''''''''''''............................''''...---------...'++++=======----MMMAAAAAXXXAAAAAAAAAMM--===++++''''+=MM='.----'+=MAZ1)=
++++++++++++++''''''''''''''''''''''''''''++++'''.........'''+CCCCCCCCCCCCCCC                      CCCCCCCCC++++CC  C+'....+CC

CCCCCCCCCCCCCC++++++++++++++++++++++++++++CCCC+++'''''''''+++C                                              CCCC     C+''''C

              CCCCCCCCCCCCCCCCCCCCCCCCCCCC    CCCXXXXXXXXXCCC                                                         CXXXX

                                                 CCCCCCCCC                                                             CCCC

'''''''''''''.............................''''....--------..'+=++=====---MMMMMAAAAAXXXXXXXAAAMAAAMM--====++++'''+=MM-+.---.'+=MAZ1+=
+++++++++++++'''''''''''''''''''''''''''''++++''''........''+CCCCCCCCCCCC                          CCCCCCCCCC+++CC  CC'...'+CC

CCCCCCCCCCCCC+++++++++++++++++++++++++++++CCCC++++''''''''++C                                                CCC      +'''+C

             CCCCCCCCCCCCCCCCCCCCCCCCCCCCC    CCCCXXXXXXXXCC                                                          CXXXC

                                                  CCCCCCCC                                                             CCC

'''''''''''''................'''''''''''''''''.....-...---.'+++++=--==-MMMMAAAAXXXXXXXZZZZXAAAMMMMMM--===+=+++''+=MMM='.--.'+=-AX1)=
+++++++++++++''''''''''''''''+++++++++++++++++'''''.'''...'+CCCCCCCCCCC                             CCCCCCCCCC++CC   C+'..'+CCC

CCCCCCCCCCCCC++++++++++++++++CCCCCCCCCCCCCCCCC+++++'+++'''+C                                                  CC      C+''+C

             CCCCCCCCCCCCCCCC                 CCCCCXCCCXXXC                                                            CXXC

                                                   C   CCC                                                              CC

'''''''''''''...............'''''''''''''''++'''........-..'++++=--===--MMAAAAAXXXXXXXZZZZZZXAAMMMMMM--===+++++++=MAM='.--..+=-MXZ)+
+++++++++++++'''''''''''''''+++++++++++++++CC+++''''''''.''+CCCCCCCCCCCC                             CCCCCCCCCCCCC   C+'..''CCC

CCCCCCCCCCCCC+++++++++++++++CCCCCCCCCCCCCCC  CCC++++++++'++C                                                          C+''++

             CCCCCCCCCCCCCCC                    CCCCCCCCXCC                                                            CXXCC

                                                        C                                                               CC

''''''''++'''.............'''''''''''''''+++++++'''.......'+==========--MMAAAAXXXZZZZZZZZZZZZZXAAMMMMMM--=+++++++=MAM-'.---.'=-MXZ)+
++++++++CC+++'''''''''''''+++++++++++++++CCCCCCC+++'''''''+CCCCCCCCCCCCC                               CCCCCCCCCCC   C+'...'+CC

CCCCCCCC  CCC+++++++++++++CCCCCCCCCCCCCCC       CCC+++++++C                                                           C+'''+C

             CCCCCCCCCCCCC                         CCCCCCC                                                             CXXXC

                                                                                                                        CCC

'''++++++++''''...........''''''''''''''++======+++'''''''++======++=-MMMAAAXXXXZZZZZZZXXXXXZZXXXAAMMMAMM-==++++==MAM-'.--..'=-MXZ)+
+++CCCCCCCC++++'''''''''''++++++++++++++CCCCCCCCCCC+++++++CCCCCCCCCCCC                                   CCCCCCCCC   C+'..''+CC

CCC        CCCC+++++++++++CCCCCCCCCCCCCC           CCCCCCC                                                            C+''++C

               CCCCCCCCCCC                                                                                             CXXCC

                                                                                                                        CC

'++++==++++++'''..........''''''''''''''+==------=====+++++=========-MMAAAAXXXXZZZZZZ1ZZZXXXXXXXXXAAAAAAAMM-=+++=-MAA-+.--..+=-MXZ)+
+CCCCCCCCCCCC+++''''''''''++++++++++++++CCCCCCCCCCCCCCCCCCCCCCCCCCCCC                                      CCCCCCC   CC'..''CCC

C            CCC++++++++++CCCCCCCCCCCCCC                                                                               +''++

                CCCCCCCCCC                                                                                             CXXCC

                                                                                                                        CC

'+++======+++''...........'''''''''''''+==--MMMMM-------==+========--MMAAAAAAXXXZZZZZZZ1ZZZXXXAAAAMMMAAAAAAM-===--AXA-+..-..'=-MXZ1)
+CCCCCCCCCCCC++'''''''''''+++++++++++++CCCCC     CCCCCCCCCCCCCCCCCCCC                                       CCCCCC   CC''.''+CC

C            CC+++++++++++CCCCCCCCCCCCC                                                                                ++'++C

               CCCCCCCCCCC                                                                                             CCXCC

                                                                                                                         C

'+++======++'''.......''''''''''''''''++=--MMMMMM--------====+=====--MMAAAAXXXZZZZ1ZZZZZZZZZZZXXAAMMMMAAAXAAM--=-MAAA-+.....'=-MAZ1)
+CCCCCCCCCCC+++'''''''++++++++++++++++CCCCC      CCCCCCCCCCCCCCCCCCCC                                        CCCC    CC'''''+CC

C           CCC+++++++CCCCCCCCCCCCCCCC                                                                                 +++++C

               CCCCCCC                                                                                                 CCCCC

'++++++==+++'''.......'''''.''''''''''+==--MMMMM---------===++====--MAAAAAAXXXZZZ111ZZ1ZZZZZZZZXXAAAAMMAAAAAAM---MAAA-+.....+=-MAXZ)
+CCCCCCCCCCC+++'''''''+++++'++++++++++CCCCC     CCCCCCCCCCCCCCCCCCCC                                          CCC    CC'''''CCC

C           CCC+++++++CCCCC+CCCCCCCCCC                                                                                 +++++

               CCCCCCC     C                                                                                           CCCCC

++++++++++'''''''''''''''''.....''''+++==--M-M---=========++++===---MAAXAAAXXXZZ111)111111ZZZZZZXXXXXXAAAAAAMM--MMXXA-+....''+=MAXZ1
CCCCCCCCCC+++++++++++++++++'''''++++CCCCCCC C CCCCCCCCCCCCCCCCCCCCCC                                          CC     CC''''++CC

          CCCCCCCCCCCCCCCCC+++++CCCC                                                                                   ++++CC

                           CCCCC                                                                                       CCCC

++++++++++''''''''''''''''.......''''+++=----===+++++=+++++++++===--MMAAXXXXXXZZ11)))))))))1)1111ZZ111ZZXXAAM---MAXXM-+....''+=-AXZ1
CCCCCCCCCC++++++++++++++++'''''''++++CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC                                         CCC     CC''''++CCC

          CCCCCCCCCCCCCCCC+++++++CCCC                                                                                  ++++CC

                          CCCCCCC                                                                                      CCCC

+++++++++++''+++++++++''''.......'''''++==-===+''''+++++++++++++==--MMMAXXXZZZZZ11))))+++++))))11111))111ZXAMM--MAXXM-+''..''+=-MAXZ
CCCCCCCCCCC++CCCCCCCCC++++'''''''+++++CCCCCCCCC++++CCCCCCCCCCCCCCCCC                                          CC     CC++''++CCC

           CC         CCCC+++++++CCCCC         CCCC                                                                    CC++CC

                          CCCCCCC                                                                                        CC

+++++++++++++++==++++++'''...'..'''''+++===+++'...'''++++'+++++==---MAAAXXZZZZ1111)))+)++++++)))1111))))11ZXAM--MAXAM=+''.''++=-MAXZ
CCCCCCCCCCCCCCCCCCCCCCC+++'''+''+++++CCCCCCCCC+'''+++CCCC+CCCCCCCCCC                                          CC     CC++'++CCCC

                       CCC+++C++CCCCC         C+++CCC    C                                                             CC+CC

                          CCC CC               CCC                                                                       C

==++++++=++++========++''''''''''''+++++==++''....'''+++'''+++=---MMMAAXXXZZ1111)))+)))+++++++)))))1111ZZZXXAM--MAAAM=++''''+==-MAXZ
CCCCCCCCCCCCCCCCCCCCCCC++++++++++++CCCCCCCCC++''''+++CCC+++CCCCCCC                                            CC     CCC++++CCCC

                       CCCCCCCCCCCC         CC++++CCC   CCC                                                             CCCC

                                              CCCC

==+++++==========---==++''''''.'''''++++=++''.---.'''+++'''++=----MMAAAAXXZ11)))++++))))))))))1111Z1ZZZZXXAAAMM-MAAAM=++''''++=--MXZ
CCCCCCCCCCCCCCCCCCCCCCCC++++++'+++++CCCCCCC++'...'+++CCC+++CCCCCCC                                             C     CCC++++CCCCC

                        CCCCCC+CCCCC       CC+'''+CCC   CCC                                                             CCCC

                              C              CXXXC

                                              CCC

=======---===-----MM-=+++''''''''''++++++++'..--...''++''''++=---MMAAAAAXXZZ1))))))+)))))))111111ZZZZZZXXAAMMMM--MAAM=++''''++==-MAZ
CCCCCCCCCCCCCCCCCC  CCCCC++++++++++CCCCCCCC+''..'''++CC++++CCCCCC                                              CC    CCC++++CCCCC

                         CCCCCCCCCC        C++''+++CC  CCCC                                                             CCCC

                                            CCXXCCC

                                              CC

====-------==---MMMAM-=+++++''''''++==++++'..---.'..'+''''''+==-MMMAAAAXXZZZZ11111111))))))11)1)111ZZZXXAAAMMMMMMMAA-=+''''''++=-MAX
CCCCCCCCCCCCCCCC     CCCCCCC++++++CCCCCCCC+''...'+''+C++++++CCCC                                                    CCC++++++CCCC

                            CCCCCC        C++'''+C++C CCCCCC                                                           CCCCCC

                                           CCXXXC CC

                                             CCC

==---------==---MMAAMM===++++'''''++==++++'.---..'''''''''+++==-MMMMAAXXXZZZZZZZZZZZ1111111111)))11ZZXXXAAAAAAAAAAAAM+'''''''++=-MAX
CCCCCCCCCCCCCCCC      CCCCCCC+++++CCCCCCCC+'...''+++++++++CCCCCC                                                     C+++++++CCCC

                             CCCCC        C+'''++CCCCCCCCC                                                            CCCCCCC

                                           CXXXCC

                                            CCC

==-------=-====--MMMM-====++++''''++====++'.--....'''...''++===-MMMMMAXXZZZZ11111111Z1ZZZZZZZ11111ZZXAAAAAAAAAAAAXXA-+''''''''+=-MAX
CCCCCCCCCCCCCCCCC    CCCCCCCCC++++CCCCCCCC+'..''''+++'''++CCCCCC                                                    CC++++++++CCC

                              CCCC        C+''++++CCC+++CC                                                            CCCCCCCC

                                           CXXCCCC   CCC

                                            CC

=========--=====--M--======+++++++++===+++'.--..'.'''....''+-M---MMMAAXXZ1111)))))))111ZZZZZZZZZZZZXXAMMMMMAAAAAXXXA-+''''''''+=-MAX
CCCCCCCCCCCCCCCCCC CCCCCCCCCCCCCCCCCCCCCCC+'..''+'+++''''++CC CCC                                                   CC++++++++CCC

                                          C+''++C+CCC++++CC                                                           CCCCCCCC

                                           CXXCC C   CCCC

                                            CC

=========---===------======++++=+==+==+++'.---.''''''....''+-M---MMMAAXXZZ111))))++)))))111111ZZZZZXXAMMMMAAAXAAXXXA-+''..''''+=-MAX
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC+'...'++++++''''++CC CCC                                                   CC++''++++CCC

                                         C+'''+CCCCCC++++CC                                                           CC++CCCC

                                          CXXXC      CCCC                                                               CC

                                           CCC

========--------------====++++======++++''.--.'''''.'....''+=-----MMAAXXXZZZ11))++++======+++))1111ZZXXAAAXXXXXXXZXA-+'....'''+=-MAX
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC++'..'+++++'+''''++CCCCCCC                                                  CC+''''+++CCC

                                        CC+''+CCCCC+C++++CC                                                           C++++CCC

                                          CXXC     C CCCC                                                              CCCC

                                           CC

++============---=----====++++====+++''''.----.''+'......''+==----MMAAXXXZZZ111))+++++++=====+++)))111ZZZZZ11ZZZZZXM=''......'++=-MX
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC++++'....'++C+''''''++CCCCCCC                                                  C++''''''+CCCC

                                     CCCC+''''+CC C++++++CC                                                          CC++++++C

                                         CXXXXC    CCCCCC                                                              CCCCCC

                                          CCCC

++=============--==---====+++++++++''.''..--...''''.--..''++==--MMMMAAXXZZZZ111)))))++))+++++++++++))11111))111Z11XM=''......''+=-MA
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC++'++''..'''++++'..''++CCCCCC                                                    C++''''''++CCC

                                   CC+CC++''+++CCCC+''++CC                                                           CC++++++CC

                                     C  CCXXCCC    CXXCC                                                               CCCCCC

                                          CC        CC

'++======+================++++'''''.............''..--..''++==-MAAAAAAXXZZZZ111))))))))))1)))))11)))))1111))111111ZM=+''.....''+=-MA
+CCCCCCCCCCCCCCCCCCCCCCCCCCCCC+++++'''''''''''''++''..''++CCCCC                                                     CC++'''''++CCC

C                             CCCCC+++++++++++++CC++''++CC                                                            CC+++++CC

                                   CCCCCCCCCCCCC  CCXXCC                                                                CCCCC

                                                    CC

''++===================+++++++''...----.'''''.'''..--...''+=--MAAXXXXXXXZZ11111)))))))))1111ZZZXXZZZZ111111ZZ1111ZXM=''.......'+=-MA
++CCCCCCCCCCCCCCCCCCCCCCCCCCCC++'''....'+++++'+++''..'''++CCCC                                                      C++'''''''+CCC

CC                            CC+++''''+CCCCC+CCC++''+++CC                                                           CC+++++++C

                                CCCXXXXC     C   CCXXCCC                                                               CCCCCCC

                                   CCCC            CC

''++===========++======+++++'''...-----.'+''''.''..---..''+=--MMAXXXXXXXXZZZ11111)1111111ZZZXAXAAAAAXXXXXXXXXZZXXXA-+'........''+=-A
++CCCCCCCCCCCCCCCCCCCCCCCCCC+++'''.....'+C++++'++''...''++CCCC                                                     CC+''''''''++CCC

CC                          CCC+++'''''+C CCCC+CC++'''++CC                                                           C++++++++CC

                               CCCXXXXXC      C  CCXXXCC                                                              CCCCCCCC

                                  CCCCC            CCC

++=============++======++++'''...------.'++++'''...---..''+=--MMAAXXXXXXXXZZZZZZZZZZZZZZZZZXXAAAAMMMMAAXXXAAAAXAAM-=+'.........'+=-M
CCCCCCCCCCCCCCCCCCCCCCCCCCC+++'''......'+CCCC+++'''...''++CCCC                                                    CCC+'''''''''+CCC

                           CCC+++''''''+C    CCC+++'''++CC                                                           C+++++++++C

                              CCCXXXXXXC        CCCXXXCC                                                              CCCCCCCCC

                                 CCCCCC            CCC

=======+===++++++++++====++''...-------.''++++'....---..'++=--MMAAXXXZZZXXXXXXXXAAAAAAAAXXXXXXXXAAMMMMAAAAAAAAAAM===+'.........'++=-
CCCCCCCCCCCCCCCCCCCCCCCCCCC++'''.......'++CCCC+''''...''+CCCCC                                                   CCCC+'''''''''+CCCC

                           CC+++'''''''+CC    C++++'''++C                                                            C+++++++++C

                             CCCXXXXXXXC       CCCCXXXCC                                                              CCCCCCCCC

                                CCCCCCC            CCC

==+==-=====+++++++++++++++'''...-------...'+=+''.......'++==-MMMAAAXXXZZZZXXXXXAAMMMMMMMMMMAAXXXXXAMMMMAAAAAAAAM-++=+'.........''+=-
CCCCCCCCCCCCCCCCCCCCCCCCCC+++'''.......'''+CCC++'''''''+CCCCC                                                   CCCCC+'''''''''++CCC

                          CCC+++'''''''+++C   CC+++++++C                                                             C+++++++++CC

                             CCCXXXXXXXCCC      CCCCCCC                                                               CCCCCCCCC

                                CCCCCCC

++++=--====++''+++++++++++''...--------..-.+++'''......'++=--MMMAAAXXXXXXXXZZXAAAMMMMMM-----MMAXZZXAAAAAAAAAAMM-=''+++.........'''+=
CCCCCCCCCCCCC++CCCCCCCCCCC++'''........''.'CCC+++''''''+CCCCC                          CCCCC                   CC++CCC'''''''''+++CC

             CC           CC+++''''''''++'+   CCC++++++C                                                         CC   +++++++++CCC

                            CCCXXXXXXXXCCXC      CCCCCC                                                               CCCCCCCCC

                               CCCCCCCC  C

++++==--===++''+===++++++'''..---------..-.'++'''......'++=--MMMAXXXXXXXXXXZZXXAAMMMMMMMM--MMMAXXZZXXXAAAAMMM--=+'''++'.........'''+
CCCCCCCCCCCCC++CCCCCCCCCC+++''.........''.'+CC+++''''''+CCCCC                            CC                  CCCC+++CC+'''''''''+++C

             CC          CCC++'''''''''++'+C  CCC++++++C                                                         CCC  C+++++++++CCC

                            CCXXXXXXXXXCCXC      CCCCCC                                                                CCCCCCCCC

                              CCCCCCCCC  C

'++++=---==++''+===++'++'''+'.---------..-..''''......''++=--MMAAXXZZXXXXZZZZZZZXXAAAAAAAAAAAAAXXZZZZZZXAAMM--==+'''+'..........'''+
+CCCCCCCCCCCC++CCCCCC+CC+++C+'.........''.''++++''''''++CCCCC                                               CCCCC+++C+''''''''''+++C

C            CC      C  CCC C+'''''''''++'++CCCC++++++CC                                                         CCC C++++++++++CCC

                             CXXXXXXXXXCCXCC    CCCCCC                                                                CCCCCCCCCC

                              CCCCCCCCC  C

++++=---==+''''+==++''''''++'..-------...-...''...'....''+==--MMAXXZZZZ1111111111ZZZZZZZXZZZZZZZZZZZ111ZXAAM-==++'''+'...........'''
CCCCCCCCCCC++++CCCCC++++++CC+''.......'''.'''++'''+''''++CCCCC                                              CCCCC+++C+'''''''''''+++

           CCCC     CCCCCC  C++'''''''+++'+++CC+++C++++CC                                                        CCC C+++++++++++CCC

                             CCXXXXXXXCCCXCCC  CCC CCCC                                                               CCCCCCCCCCC

                               CCCCCCC   C

++++=---=='''.'+++'''''''''''.--------.'..--........'..''++=---MAAAXXZ1111))))))))))))1111))))1111111111ZXAAM-=+++'++'.--........'.'
CCCCCCCCCC+++'+CCC+++++++++++'........'+''..''''''''+''++CCCCCC                                              CCCCC+CC+'..''''''''+'+

          CCC+C   CCCCCCCCCCC+''''''''+C++''++++++++C++CC                                                         C  C+''++++++++C+C

             C               CXXXXXXXXC CCXXCCCCCCCC CC                                                               CXXCCCCCCCC C

                              CCCCCCCC    CC                                                                           CC

++''+=-===+'...'''''.''''.'''.--------...------.--....'''++==--MMAAXXXZ11)))+++++++)))))11))))))))11111111ZXAM-=++'++'..-..........'
CC++CCCCCCC+'''+++++'++++'+++'........'''......'..''''+++CCCCCC                                               CCCC+CC+''.''''''''''+

  CC       C+++CCCCC+CCCC+CCC+''''''''+++''''''+''++++CCC                                                         C  C++'++++++++++C

            CCC     C    C   CXXXXXXXXCCCXXXXXXCXXCCCC                                                                CCXCCCCCCCCCC

                              CCCCCCCC   CCCCCC CC                                                                      C

''''+=+'+=+'.....'''.''....''.--------..---------.....''''++=--MMAAAXXXZZ1))))++++++++++)))))))))))11111111ZAM-==+++++'.-..........'
++++CCC+CCC+'''''+++'++''''++'........''.........'''''++++CCCCC                                               CCCCCCCC+'.''''''''''+

CCCC   C   C+++++CCC+CC++++CC+''''''''++'''''''''+++++CCCC                                                            C+'++++++++++C

            CCCCC   C  CCCC  CXXXXXXXXCCXXXXXXXXXCCCCC                                                                 CXCCCCCCCCCC

                              CCCCCCCC  CCCCCCCCC                                                                       C

'''++=+''++'.......''''....'''..-----.'.---------.....''''+==--MMAAAXXXXXZ1111))))+++++=+===++++++)))))))))1ZAM-=+'++'..............
+++CCCC++CC+'''''''++++''''+++''.....'+'.........'''''++++CCCCC                                                CCC+CC+''''''''''''''

CCC    CC  C+++++++CCCC++++CCC++'''''+C+'''''''''+++++CCCC                                                        C  C++++++++++++++

            CCCCCCC    CCCC   CCXXXXXC CXXXXXXXXXCCCCC                                                                CCCCCCCCCCCCCC

                                CCCCC   CCCCCCCCC

'''+==+'.''..-.....''''.....'....---..'.----------....''''++==--MMAAAXXXXXZZZZ111))))))+)++++=++++++++++)++)1XAM-=++++'.............
+++CCCC+'++''.'''''++++'''''+''''...''+'..........''''++++CCCCCC                                                CCCCCC+'''''''''''''

CCC    C+CC++'+++++CCCC+++++C++++'''++C+''''''''''++++CCCC                                                            C+++++++++++++

        C  CCXCCCCC    CCCCC CCCCXXXCC CXXXXXXXXXXCCCC                                                                 CCCCCCCCCCCCC

             C                   CCC    CCCCCCCCCC

'''=-==+....---....''''...........--.''.---------..'''''+++++==---MMAAAXXXXZZZZ111))))))))))++++))++++++++++)1XAM-===+'.............
+++CCCCC''''...''''++++'''''''''''..'++'.........''+++++CCCCCCCCCC                                               CCCCC+'''''''''''''

CCC     ++++'''++++CCCC+++++++++++''+CC+'''''''''++CCCCC                                                              C+++++++++++++

        CCCCXXXCCCC    CCCCCCCCCCCXXC  CXXXXXXXXXCC                                                                    CCCCCCCCCCCCC

            CCC                   CC    CCCCCCCCC

'.'+--=+'..----......'.............-.''.--------...''''+++=+=====--MMAAAAAXXXZZZZ11111111111111111111111)))++1XAAM---=''............
+'+CCCCC+''....''''''+'''''''''''''.'++'........'''++++CCCCCCCCCCCC                                               CCCC++''''''''''''

C+C     C++''''++++++C+++++++++++++'+CC+''''''''+++CCCC                                                               CC++++++++++++

 C       CCXXXXCCCCCC CCCCCCCCCCCCCXC  CXXXXXXXXCCC                                                                     CCCCCCCCCCCC

           CCCC                    C    CCCCCCCC

+''+--==+..----.......'''...-.---.--.''.----.....''''+++========------MMMAAAXXZZZZ111ZZXXXXZZZZXXAAAXXXXZZ1))ZAMM----=+'............
C++CCCCCC''....'''''''+++'''.'...'..'++'....'''''++++CCCCCCCCCCCCCCCCC                                           CCCCCC+''''''''''''

 CC      ++''''+++++++CCC+++'+'''+''+CC+''''+++++CCCC                                                                  C++++++++++++

         CCXXXXCCCCCCC   CCCXCXXXCXXC  CXXXXCCCCC                                                                       CCCCCCCCCCCC

           CCCC             C CCC CC    CCCC

+'.'=-=+'............'..'....-------.''.----..''''++++==----------------MMMMAAXXZZZZ1ZXXXAAAAAAAMM--MMMAXXZ11ZM-=====+''............
C+'+CCCC+''''''''''''+''+''''.......'++'....''++++CCCCCCCCCCCCCCCCCCCCCC                          CC           CCCCCCC++''''''''''''

 C+C    C++++++++++++C++C++++'''''''+CC+''''++CCCC                                                                    CC++++++++++++

  C      CCCCCCCCCCCC CC CCCCXXXXXXXC  CXXXXCC                                                                          CCCCCCCCCCCC

                             CCCCCCC    CCCC

='.'++++'.......'........'...-------.''.----.''''+++===--MMMMMMMM-----------MMAXXZZZZZZXXAAM------====-MAXZ11XM-+++++'..............
C+'+CCCC+'''''''+''''''''+'''.......'++'....'++++CCCCCCCC        CCCCCCCCCCC                CCCCCCCCCCC        CCCCCC+''''''''''''''

 C+C    C+++++++C++++++++C+++'''''''+CC+''''+CCCC                                                                    C++++++++++++++

  C      CCCCCCC CCCCCCCC CCCXXXXXXXC  CXXXXC                                                                         CCCCCCCCCCCCCC

                             CCCCCCC    CCCC

=+''+++++'...........---.....----.--.''.----..''++++===-MMAAAAAAMMM---------MMAAXXXXXXXXXAAM--=+++++===-MAXZZXM-+++++'..............
CC++CCCCC+'''''''''''...'''''....'..'++'....''++CCCCCCCC           CCCCCCCCC                CCCCCCCCCCCC       CCCCCC+''''''''''''''

  CC     C+++++++++++'''+++++''''+''+CC+''''++CC                                                                     C++++++++++++++

          CCCCCCCCCCCXXXCCCCCXXXXCXXC  CXXXXCC                                                                        CCCCCCCCCCCCCC

                     CCC     CCCC CC    CCCC

=+..'++++''....'....-----........'...''.---..'''+=====--MAAAAAXAAMM----MM---MMAAAXAAAXXXAAAMM-==++'++==-MAXZXM-=++==+'..............
CC''+CCCC++''''+''''.....''''''''+'''++'...''+++CCCCCCCC           CCCC  CCC                 CCCCC+CCCCC      CCCCCCC+''''''''''''''

  ++C    CC++++C++++'''''++++++++C+++CC+'''++CCC                                                  C                  C++++++++++++++

  CC       CCCC CCCCXXXXXCCCCCCCC CCC  CXXXCC                                                                         CCCCCCCCCCCCCC

                    CCCCC               CCC

++'.'+++++'...'''.---------.'..''''.'''.---..''++====---MAAAAXXXAAM-----MMMMMMMAAAAAAAMMMMMMM-====+++==-MAXZZA-+++==++'.............
CC+'+CCCCC+'''+++'.........'+''++++'+++'...''++CCCCCCCCC           CCCCC                     CCCCCCCCCCC      CCCCCCCC+'''''''''''''

  C+C     C+++CCC+'''''''''+C++CCCC+CCC+'''++CC                                                                       C+++++++++++++

   C       CCC   CXXXXXXXXXC CC    C   CXXXCC                                                                          CCCCCCCCCCCCC

                  CCCCCCCCC             CCC

+++''''''++'..''''.--.-----.'..'''''++'.---..''++=====--MAAXXXXXXAMM------MMAAAAMMAAAAMM-----=========--MAXZZA-+++===+'.............
CCC++++++CC+''++++'..'.....'+''+++++CC+'...''++CCCCCCCCC            CCCCCC              CCCCCCCCCCCCCCCC      CCCCCCCC+'''''''''''''

   CCCCCC  C++CCCC+''+'''''+C++CCCCC  C+'''++CC                                                                       C+++++++++++++

            CC    CXXCXXXXXC CC        CXXXCC                                                                          CCCCCCCCCCCCC

                   CC CCCCC             CCC

+=+'''''''''..'''''....----.'..''''++='---...''++++++==-MAAXXXXXXAMMMM---MMAAAAAMMMAAAAMM-===+++++==----MAZ1ZA-======+'.............
CCC+++++++++''+++++''''....'+''++++CCC+...'''++CCCCCCCCC              CCC                CCCCCCCCCCCCCCC      CCCCCCCC+'''''''''''''

   CCCCCCCCC++CCCCC++++''''+C++CCCC   C'''+++CC                                                                       C+++++++++++++

            CC     CCCCXXXXC CC        XXXCCC                                                                          CCCCCCCCCCCCC

                       CCCC            CCC

+=+++++'''..'''''''.....---.'..''+++=='---..''+++++++=-MAAAAAAAAAAAAAAAMAAAXXAXAAAAAAAAAM-==+++++++===-MMXZ1ZA------=+''............
CCCCCCC+++''+++++++'''''...'+''++CCCCC+...''++CCCCCCCCC                                  CCCCCCCCCCCCCC       CCCCCCCC++''''''''''''

       CCC++CCCCCCC+++++'''+C++CC     C'''++CC                                                                        CC++++++++++++

          CC       CCCCCXXXC CC        XXXCC                                                                            CCCCCCCCCCCC

                        CCC            CCC

''++==+''..............---.....'''++++'.--..''''''''+=-MMMAAMMMMMMAAAXXXZZXXXXXXXXXXAAAMM-==+++++++++==-MAZZZA------=+''............
++CCCCC++''''''''''''''...'''''+++CCCC+'..''++++++++CCC                                  CCCCCCCCCCCCCCC      CCCCCCCC++''''''''''''

CC     CC++++++++++++++'''+++++CCC    C+''++CCCCCCCC                                                                  CC++++++++++++

         CCCCCCCCCCCCCCXXXCCCCC        CXXCC                                                                            CCCCCCCCCCCC

                       CCC              CC

'.'+==++''''...''...------..--..''+++''.---.'''''..'+==---------MMAXXZZZZZZXXZZZZZXXAAAAM--========+==-MAAZZXA-=----=+''............
+'+CCCCC++++'''++'''......''..''++CCC++'...'+++++''+CCCCCCCCCCCC                         CCCCCCCCCCCCCC       CCCCCCCC++''''''''''''

C+C     CCCC+++CC+++''''''++''++CC   CC+'''+CCCCC++C                                                                  CC++++++++++++

 C          CCC  CCCXXXXXXCCXXCC       CXXXC     CC                                                                     CCCCCCCCCCCC

                    CCCCCC  CC          CCC

...'====++''''.'''.-------.---...'+=+''.---..''....''+=====+===-MMAXXZZZZZXXXZZZZZXXXAAAAMM------=====-MMAXZXM-===--=+''............
'''+CCCCCC++++'+++'.......'...'''+CCC++'...''++''''++CCCCCCCCCCC                           CCCCCCCCCCCC       CCCCCCCC++''''''''''''

+++C      CCCC+CCC+'''''''+'''+++C   CC+'''++CC++++CC                                                                 CC++++++++++++

CCC           C   CXXXXXXXCXXXCCC      CXXXCC  CCCC                                                                     CCCCCCCCCCCC

                   CCCCCCC CCC          CCC

'..'=--===+++''''+'..---------.'..'+=+'.----.....''''''+++++++==-MAXXXZZXXXXXZZZZZZZXXAAAAMMMMMMM-====--MAAXA-=++==-==+'............
+''+CCCCCCCCC++++C+''.........'+''+CCC+'....'''''++++++CCCCCCCCCC                                CCCCCCC     CCCCCCCCCC+''''''''''''

C++C         CCCC C++'''''''''+C++C   C+''''+++++CCCCCC                                                                C++++++++++++

 CC                CCXXXXXXXXXC CC     CXXXXCCCCC                                                                       CCCCCCCCCCCC

                     CCCCCCCCC          CCCC

''.'+-====++=+'.''+''..-----...''.'+++'.----.....'''..''++++++===-MMAAXXAAAAXXZZXXXXAAMMAAXXXAAM--====----MM-==+++====+'..-.........
++'+CCCCCCCCCC+'++C++''.....'''++'+CCC+'....'''''+++''++CCCCCCCCCC                              CCCCCCCCCC  CCCCCCCCCCC+''.'''''''''

CC+C          C+CC CC++'''''+++CC+C   C+''''+++++CCC++CC                                                               C++'+++++++++

  C            C     CCXXXXXCCC  C     CXXXXCCCCC   CC                                                                  CCXCCCCCCCCC

                       CCCCC            CCCC                                                                              C

++''+==+=====+'.'+++''.--.....'''''++'..----...'''''..''++========--MMMMMMMAAXXAAAAAMMMMAXZ1ZXAM--==========++''''+===+'..---.......
CC++CCCCCCCCCC+'+CCC++'..'''''+++++CC+''....'''+++++''++CCCCCCCCCCCC                            CCCCCCCCCCCCCC++++CCCCC+''...'''''''

  CC          C+C   CC+''+++++CCCCC  C++''''+++CCCCC++CC                                                      CCCC     C++'''+++++++

               C      CXXCCCCC        CCXXXXCCC     CC                                                                  CCXXXCCCCCCC

                       CC               CCCC                                                                              CCC

=++''++++====+'.'+++'..-......'...'+''..---..''++''...'''+==++++++======--MMAAAMMMAMMAAAXZ111ZXAM-======+++'''...'+===+'..-----.....
CCC++CCCCCCCCC+'+CCC+''.''''''+'''+C++''...''++CC++'''+++CCCCCCCCCCCCCCCCC                       CCCCCCCCCC+++'''+CCCCC+''.....'''''

   CC         C+C   C++'++++++C+++C CC++'''++CC  CC+++CCC                                                  CCC+++C     C++'''''+++++

               C     CCXCCCCCC CCC    CCXXXCC      CCC                                                        CCC       CCXXXXXCCCCC

                       C                CCC                                                                               CCCCC

++''''++++===''''++++'.-..''''..-.''''..--.''+==+''...'''++++''''+++++++=--MMMMMMMAAAAXXZZ11ZZXXAM==++++'''....--.'+==+''..------...
CC++++CCCCCCC++++CCCC+'.''++++''.'++++''..'++CCCC++'''+++CCCC++++CCCCCCCCCC                       CCCCCC+++''''..'+CCCC++''......'''

  CCCC       CCCC    C+'++CCCC++'+CCCC++''+CC    CC+++CCC    CCCC                                       CCC++++''+C    CC++''''''+++

                      CXCC    CCXC    CCXXC        CCC                                                     CCCCXXC       CCXXXXXXCCC

                       C        C       CC                                                                     CC          CCCCCC

''....''++===+'''''''.--.''''...--.''''..-.'++=++''..'''''+'''''''+++''++=--MMMMMMMMMAAXZZZZZXXAM=++++''...------..'+==+'...-----...
++''''++CCCCCC+++++++'..'++++'''..'++++''.'+CCCCC++''+++++C+++++++CCC++CCCCC                     CCCCC++'''......''+CCCC+'''.....'''

CC++++CC      CCCCCCC+''+CCCC+++''+CCCC++'+C     CC++CCCCC CCCCCCC   CC                               CC+++''''''++C    C+++'''''+++

  CCCC               CXXC    CCCXXC    CCXC        CC                                                   CCCXXXXXXCC      CCCXXXXXCCC

                      CC        CC       C                                                                 CCCCCC           CCCCC

''.....''+===++''''...--.''''.''..'''''....''++++''.'''''''''''''+=+++++==----MMMM--MMAAXXXXXXA-=+''''''...-----...'++=+''..-----...
++'''''++CCCCCC++++'''..'++++'++''+++++''''++CCCC++'+++++++++++++CCCCCCCCCCCCC    CC           CCC++++++'''.....'''+CCCC++''.....'''

CC+++++CC      CCCC+++''+CCCC+CC++CCCCC++++CC    CC+CCCCCCCCCCCCC                                 CCCCCC+++'''''+++C    CC++'''''+++

  CCCCC            CCCXXC    C  CC     CCCC        C                                                    CCCXXXXXCCC       CCXXXXXCCC

                      CC                                                                                   CCCCC            CCCCC

'......'''+===+''''..--...'''.'''.''''.....''''++''.'''''''''''''+==+++++==--------=--MMMAAAAM-=+'''.......-----...''+=++'...----...
+''''''+++CCCCC++++''..'''+++'+++'++++'''''++++CC++'+++++++++++++CCCCCCCCCCCCCCCCCCCCC        CCC+++'''''''.....'''++CCCC+'''....'''

C++++++CCC     CCCC++''+++CCC+CCC+CCCC+++++CCCC  CC+CCCCCCCCCCCCC                                CCC+++++++'''''+++CC    C+++''''+++

 CCCCCC            CCXXCCC   C   C    CCCCC        C                                                CCCCCCCXXXXXCCC       CCCXXXXCCC

                     CC                                                                                    CCCCC             CCCC

''.....'''+++++++=+'---.'.....''''........'''''''''''...'++++''''+=+++++++=--===--====---MMMM-=+''..........---.....'+===+'...--.-..
++'''''+++CCCCCCCCC+...'+'''''++++''''''''+++++++++++'''+CCCC++++CCCCCCCCCCCCCCCCCCCCCCCC    CCC++''''''''''...'''''+CCCCC+'''..'.''

CC+++++CCC         C'''+C+++++CCCC++++++++CCCCCCCCCCC+++C    CCCC                               CC++++++++++'''+++++C     C+++''+'++

  CCCCC             XXXC CCCCC    CCCCCCCC           CCC                                          CCCCCCCCCCXXXCCCCC       CCCXXCXCC

                    CCC                                                                                     CCC               CC C

''......'''++=====+'....'.--..........-.''''''''''''..'''+++++'''+++++++++====++=========-----=+''...------..-......'+===+''........
++''''''+++CCCCCCCC+''''+'..''''''''''.'++++++++++++''+++CCCCC+++CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC++'''......''.''''''+CCCCC++''''''''

CC++++++CCC        C++++C+''++++++++++'+CCCCCCCCCCCC++CCC     CCC                               CC+++''''''++'++++++C     CC++++++++

  CCCCCC            CCCC CXXCCCCCCCCCCXC            CC                                            CCCXXXXXXCCXCCCCCC        CCCCCCCC

                          CC          C                                                              CCCCCC  C

'........''+==---=+'...'''---.....--....''''''''''''''+++===++'''''''++++===++++++==++++==----==+''..------.........'++===+''.......
+''''''''++CCCCCCCC+'''+++...'''''..''''++++++++++++++CCCCCCCC+++++++CCCCCCCCCCCCCCCCCCCCCCCCCCCC++''......'''''''''+CCCCCC++'''''''

C++++++++CC        C+++CCC'''+++++''++++CCCCCCCCCCCCCC        CCCCCCC                            CC++''''''+++++++++C      CC+++++++

 CCCCCCCC           CCC   XXXCCCCCXXCCCC                                                           CCXXXXXXCCCCCCCCC         CCCCCCC

                          CCC     CC                                                                 CCCCCC

'...''...''+=----=+'...'''----....--..'''''''''''''''+++====+''''''+++++++=+++++++++++++===----==+'..----........''''++====+'.......
+'''++'''++CCCCCCCC+'''+++....''''..''+++++++++++++++CCCCCCCC++++++CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC+''....''''''''++++CCCCCCC+'''''''

C+++CC+++CC        C+++CCC''''++++''++CCCCCCCCCCCCCCC        CCCCCC                               C++''''++++++++CCCC       C+++++++

 CCC  CCC           CCC   XXXXCCCCXXCC                                                             CCXXXXCCCCCCCC            CCCCCCC

                          CCCC    CC                                                                 CCCC

+'.'''..''+=-MMMM-=''''''..--..''.-..''''.'''''''''+++++++==+''''''++++++++++++==++++'++==-------=+'.--.....'..'''+''++==-==+'......
C+'+++''++CCC    CC++++++''..''++'.''++++'+++++++++CCCCCCCCCC++++++CCCCCCCCCCCCCCCCCC+CCCCCCCCCCCCC+'..'''''+''+++C++CCCCCCCC+''''''

 C+CCC++CC         CCCCCC++''++CC+'++CCCC+CCCCCCCCC          CCCCCC                  C             C+''+++++C++CCC CC        C++++++

  C   CC                 CCXXCC  CXCC    C                                                          CXXCCCCC CC               CCCCCC

                           CC     C                                                                  CC

+''''''..'+=-MMMMM=+'''''.--.-..'.-..'''...''''''''++++'++==+'''''++'''++++''++==++'''+==-------=++'........'''''''++++===-==+'.....
C++++++''+CCC     CC+++++'..'.''+'.''+++'''++++++++CCCC+CCCCC+++++CC+++CCCC++CCCCCC+++CCCCCCCCCCCCC+''''''''+++++++CCCCCCCCCCC+'''''

 CCCCCC++C          CCCCC+''+'++C+'++CCC+++CCCCCCCC    C     CCCCC  CCC    CC      CCC             C++++++++CCCCCCC           C+++++

       CC                CXXCXCC CXCC   CCC                                                         CCCCCCCC                   CCCCC

                          CC C    C

=+++=+'..'+=MAAAAA-+'''''....-......'''''.'''++'''''+'+++===+''''++'''''++''++===+''++==--==---==++'''.....'''''''''++++=====++'''..
CCCCCC+''+CC      CC+++++''''.''''''+++++'+++CC+++++C+CCCCCCC++++CC+++++CC++CCCCCC++CCCCCCCCCCCCCCC+++'''''+++++++++CCCCCCCCCCC+++''

      C++C          CCCCC++++'++++++CCCCC+CCC  CCCCC C       CCCC  CCCCC  CC      CC               CCC+++++CCCCCCCCC           CCC++

       CC                CCCCXCCCCCC     C                                                            CCCCC                       CC

                             C

=+'+=+'..'+=-AAXXA-+''.'''....-.....'''+'''''++++'''''++===++''''++''.'''+'+++==+'''+=====++====++'''''...''++''''''''++++====+'''..
CC+CCC+''+CCC     CC++'+++''''.'''''+++C+++++CCCC+++++CCCCCCC++++CC++'+++C+CCCCCC+++CCCCCCCCCCCCCC+++++'''++CC++++++++CCCCCCCCC+++''

  C   C++C          CC+CCC++++'+++++CCC CCCCC    CCCCC       CCCC  CC+CCC C      CCC              CCCCC+++CC  CCCCCCCC         CCC++

       CC             C   CCCCXCCCCC                                 C                                 CCC                        CC

                              C

+.'+=='..'+=MAXXXA-+'''''''''.-.....''++++'''++++''++++==+++++''''++'''''++=====+''++==+++''+++''''++'''''+++++'''...''++++==-=+'''.
C'+CCC+''+CC      CC+++++++++'.'''''++CCCC+++CCCC++CCCCCCCCCCC++++CC+++++CCCCCCCC++CCCCCCC++CCC++++CC+++++CCCCC+++'''++CCCCCCCCC+++'

 +C   C++C          CCCCCCCCC+'+++++CC    CCC    CC           CCCC  CCCCC        CC       CC   CCCC  CCCCC     CCC+++CC         CCC+

 C     CC                    CXCCCCC                                                                              CCC              C

                              C

'..+++'..'+=MAAAAM=+''''''......----.++=+++++++'''+++++++''++++++++++''++======+'.'+++++''''''..''++++++++++++++'''..''''++==-=+'''.
+''CCC+''+CC      CC++++++''''''....'CCCCCCCCCC+++CCCCCCC++CCCCCCCCCC++CCCCCCCCC+'+CCCCC++++++''++CCCCCCCCCCCCCC+++''++++CCCCCCC+++'

C++   C++C          CCCCCC++++++''''+          CCC       CC          CC         C+C     CCCCCC++CC              CCC++CCCC       CCC+

 CC    CC                 CCCCCCXXXXC                                            C            CC                   CC              C

                                CCCC

'..'''...'+=MAAAA-='..'++'......----'+==++=++++''+++'''''''+++====+++++=======+'..'+++''''''...'''++++++++==+====++'''''''++====+''.
+''+++'''+CC     CC+''+CC+''''''....+CCCCCCCCCC++CCC+++++++CCCCCCCCCCCCCCCCCCCC+''+CCC++++++'''+++CCCCCCCCCCCCCCCCC+++++++CCCCCCC++'

C++CCC+++C         C++C  C++++++''''C          CC   CCCCCCC                    C++C   CCCCCC+++CCC                 CCCCCCC       CC+

 CC   CCC           CC    CCCCCCXXXX                                            CC          CCC                                    C

                                CCCC

'..''....'+=-AAA-=+'..'++'.------...'+======++++'++'...''''+++====+++=========+'.'''''.'''''..''''''++++++==+=====+++'''''++====+''.
+''++''''+CCC   CCC+''+CC+'......'''+CCCCCCCCCCC+CC+'''++++CCCCCCCCCCCCCCCCCCCC+'+++++'+++++''++++++CCCCCCCCCCCCCCCCC+++++CCCCCCC++'

C++CC++++C         C++C  C+''''''+++C           C  C+++CCCC                    C+CCCCC+CCCCC++CCCCCC                 CCCCC       CC+

 CC  CCCC           CC    CXXXXXXCCC                CCC                         C     C     CC                                     C

                           CCCCCC

'.......'+==-MAM-=+'''+=+'.-----...'++==--==++++++''...''++++==========-==++==+'''''''''+++'''''+'''++++++===========+++++++====+''.
+'''''''+CCCC   CCC+++CCC+'.....'''+CCCCCCCCCCCCCC++'''++CCCCCCCCCCCCCCCCCCCCCC+++++++++CCC+++++C+++CCCCCCCCCCCCCCCCCCCCCCCCCCCCC++'

C+++++++C          CCC   C+'''''+++C              CC+++CC                      CCCCCCCCC   CCCCC CCC                             CC+

 CCCCCCC                  CXXXXXCCC                 CCC                                                                            C

                           CCCCC

.---.-..'+====-==+'''+=-='.------.'''+=---====++++'...'''+++++====---====++++++''''''''+++++'''+++++++++++===============+++===++''.
'...'.''+CCCCCCCCC+++CCCC+'......'+++CCCCCCCCCCCCC+'''+++CCCCCCCCCCCCCCCCCCCCCC++++++++CCCCC+++CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC++'

+'''+'++C         CCC    C+''''''+CCC             C+++CCC                      CCCCCCCC     CCC                                  CC+

CXXXCXCC                  CXXXXXXC                 CCC                                                                             C

 CCC C                     CCCCCC

.---...'+===++++'''.'+--='.------.'''+=-MM--=====+'''''''+++++=======+++=+++=+++''''++++++++''+===+++++++++====================++''.
'...'''+CCCCCCCC+++'+CCCC+'......'+++CCC  CCCCCCCC+++++++CCCCCCCCCCCCCCCCCCCCCCC++++CCCCCCCC++CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC++'

+'''+++C        CCC+C    C+''''''+CCC             CCCCCCC                       CCCC        CC                                   CC+

CXXXCCC            C      CXXXXXXC                                                                                                 C

 CCC                       CCCCCC

.---..'+=--=+'......'=--='.------.'''+=MMMM-==--=+''''''+++'++=====+++++=====++'''+++=++++++'+++++++'+=+++=============--=======+''.
'...''+CCCCCC+''''''+CCCC+'......'+++CC    CCCCCCC++++++CCC+CCCCCCCCCCCCCCCCCCC+++CCCCCCCCCC+CCCCCCC+CCCCCCCCCCCCCCCCCCCCCCCCCCCC++'

+'''++C      C++++++C    C+''''''+CCC             CCCCCC   C                   CCC          C       C                            CC+

CXXXCC        CCCCCC      CXXXXXXC                                                                                                 C

 CCC                       CCCCCC

--...'+=---='.......'=--=+.------.''+=-MMMMM--M-=+++''++''''++====++'++======++''++=======++++++'''''++====---=========-----====++''
..'''+CCCCCC+'''''''+CCCCC'......'++CCC     CC CCCCC++CC++++CCCCCCCC+CCCCCCCCCC++CCCCCCCCCCCCCCC+++++CCCCCCCCCCCCCCCCCCCCCCCCCCCCC++

''+++C      C+++++++C     +''''''+CC                CC  CCCC        C          CC               CCCCC                             CC

XXCCC        CCCCCCC      CXXXXXXC

CC                         CCCCCC

--...'+=---=+....-..'=--=+.-----...''+=-MMM-MMM-==+'''''''''++++++++++=======++'++=======++''''''''''+====--M--==++===------====++''
..'''+CCCCCCC''''.''+CCCCC'.....'''++CCC   C   CCCC+++++++++CCCCCCCCCCCCCCCCCCC+CCCCCCCCCCC++++++++++CCCCCCC CCCCCCCCCCCCCCCCCCCCC++

''+++C       ++++'++C     +'''''+++CC              CCCCCCCCC                   C           CCCCCCCCCC                             CC

XXCCC        CCCCXCC      CXXXXXCCC

CC               C         CCCCC

....'+=----='....-..+=--=+.-----...''+=--MMMMAMM-=++''..'''''++++++=====---==+++++========+'''''''''+==-----M----=====---MM---==++''
''''+CCCCCCC+''''.''CCCCCC'.....'''++CCCC       CCCC++''+++++CCCCCCCCCCCCCCCCCCCCCCCCCCCCCC+++++++++CCCCCCCC CCCCCCCCCCCC  CCCCCCC++

++++C       C++++'++      +'''''+++CC               CC++CCCCC                              CCCCCCCCC                              CC

CCCC         CCCCXCC      CXXXXXCCC                   CC

                 C         CCCCC

...''+=---=+'...--..+=---+.-----...''++=-MAAAAAM==++'......'''''++++===---===++++======++++'''++'''+==-------------------MMM---=++''
'''++CCCCCCC+'''..''CCCCCC'.....'''++CCCC       CCCC+''''''+++++CCCCCCCCCCCCCCCCCCCCCCCCCCC+++CC+++CCCCCCCCCCCCCCCCCCCCCC   CCCCCC++

+++CC       C+++''++      +'''''+++CC               C++++++CCCCC                           CCC  CCC                               CC

CCC          CCCXXCC      CXXXXXCCC                  CCCCCC

                CC         CCCCC

...''+===++'...--..'+=-M-+.------..''+=-MAXAAAA-=+++'..........'+++++==--===========+++==+++++++'''++=----===---MMM-MM---MMMMM-==++'
'''++CCCCCC+'''..''+CCC CC'......''++CCC       CCCCC+''''''''''+CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC+++CCCCCCCCCCCCC   C  CCC     CCCCC+

+++CC      C+++''++C      +''''''++CC               C++++++++++C                                CCC                                C

CCC         CCCXXCC       CXXXXXXCC                  CCCCCCCCCC

               CC          CCCCCC

...'+===+'...---..'+=-MM-+.-------.'++=-MXXXXAM-=++'...........'+++++======-----===+++====++++''.''++=======---MMMMMMM-----MMM--==+'
'''+CCCCC+'''...''+CCC  CC'.......'+CCCC       CCCC+'''''''''''+CCCCCCCCCCCCCCCCCCCCCCCCCCCCCC++'++CCCCCCCCCCCC       CCCCC   CCCCC+

+++C     C+++'''++C       +'''''''+C               C+++++++++++C                              CC+CC                                C

CCC       CCCXXXCC        CXXXXXXXC                 CCCCCCCCCCC                                 C

             CCC           CCCCCCC

...'+=-='..-.---..'+=-MM-+.-------.'++=-AXZZXAM-=+'...........''''++++++===-------=++=====++''.....'++======--MMMMMMMMM-----MMM--=++
'''+CCCC+''.'...''+CCC  CC'.......'+CCCC       CCC+'''''''''''++++CCCCCCCCCCCCCCCCCCCCCCCCCC++'''''+CCCCCCCCCC         CCCCC   CCCCC

+++C    C++'+'''++C       +'''''''+C              C+++++++++++CCCC                          CC+++++C

CCC      CCXCXXXCC        CXXXXXXXC                CCCCCCCCCCC                                CCCCC

           C CCC           CCCCCCC

...'=--='.--.--..'+=--M-=+.-------.'+=-MAXXXXXAM=+''.........''''''''''++=-----M--====++==++'..--..''++=----=-MMMMMMMMMM----MMMM--=+
'''+CCCC+'..'..''+CCCC CCC'.......'+CCC         CC++'''''''''++++++++++CCCCCCCC CCCCCCCCCCCC+''..''++CCCCCCCCC          CCCC    CCCC

+++C    C+''+''++C        +'''''''+C              CC+++++++++CCCCCCCCCC                     C++''++CC

CCC      CXXCXXCC         CXXXXXXXC                 CCCCCCCCC                                CCXXCC

          CC CC            CCCCCCC                                                             CC

.''+=--='..---...'+=-MMM-+.------..'+=-AAXXXXXAM=+''.........''''''''''+==---M----====++==++''...''+++==--===--MMMMMMMMMM---MMMMM-==
'++CCCCC+''...'''+CCC   CC'......''+CCC         CC++'''''''''++++++++++CCCCCC CCCCCCCCCCCCCC++'''++CCCCCCCCCCCC          CCC     CCC

+CC     C++'''+++C        +''''''++C              CC+++++++++CCCCCCCCCC                     CC+++CC

C        CCXXXCCC         CXXXXXXCC                 CCCCCCCCC                                 CCC

           CCC             CCCCCC

'''+=--+'.----...'+-MMMM-+.------..'+=-MAAAAXAAM-=+'........''+''''''+++==-------==========+++''''+++++=======-MMMM-----M-----MMM--=
+++CCCCC+'....'''+CC    CC'......''+CCC         CCC+''''''''++C++++++CCCCCCCCCCCCCCCCCCCCCCCCC++++CCCCCCCCCCCCC    CCCCC CCCCC   CCC

CCC     C+''''+++C        +''''''++C               C++++++++CC CCCCCC                         CCCC

         CXXXXCCC         CXXXXXXCC                 CCCCCCCC

          CCCC             CCCCCC

'''+=--='.--..-..'+-MAAM-='.------.'+=--MMAAAAAAM-='........''+++'++++========-------=======++++++''''+++==------------------------=
+++CCCCC+'..''.''+CC    CC+'......'+CCCC         CC+''''''''++CCC+CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC++++CCCCCCCCCCCCCCCCCCCCCCCCCCCCCC

CCC     C+''++'++C        C+''''''+C               C++++++++CC   C                                CCCC

         CXXCCXCC          CXXXXXXC                 CCCCCCCC

          CC  C             CCCCCC

++'+=--+'........'+-MAAM-+'.------.'+==-MMMAXXXAM-='.......''''++++===---======------==+++++++++++'''''++==----------------------===
CC+CCCCC+''''''''+CC    CC+'......'+CCCC         CC+'''''''++++CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC+++++CCCCCCCCCCCCCCCCCCCCCCCCCCCCC

  C     C++++++++C        C+''''''+C               C+++++++CCCC                                   CCCCC

         CCCCCCCC          CXXXXXXC                 CCCCCCC

                            CCCCCC

+''+---+.........'=-MAAM-+'-------..'+=-MMAAXXAA-=+'.....'''++++===-----M------MM----========++++'''+''++===---------------------===
C++CCCCC'''''''''+CC    CC+.......''+CCC        CCC+'''''+++CCCCCCCCCCCC CCCCCC  CCCCCCCCCCCCCCCC+++C++CCCCCCCCCCCCCCCCCCCCCCCCCCCCC

 CC     +++++++++C        C'''''''++C              C+++++CCC                                     CCC CC

        CCCCCCCCC          XXXXXXXCC                CCCCC

                           CCCCCCC

'..'=-=+..--.....'+--MMM-='.-------.'+=-MAAAXAA-=+'.....''+++++===------MMMMMMMMM-----=======++''''''''+====----=-------MMMMM-----==
+''+CCCC''..'''''+CCC   CC+'.......'+CCC       CCC+'''''++CCCCCCCCCCCCCC         CCCCCCCCCCCCCC++++++++CCCCCCCCCCCCCCCCC     CCCCCCC

C++C    ++''+++++C        C+'''''''+C             C+++++CC                                     CCCCCCCC

 CC     CCXXCCCCC          CXXXXXXXC               CCCCC

          CC                CCCCCCC

...'=-=+..--....''+--MMM-='.-------.'+=-AAXXXAM-+''.....''++++===---MMMMMMMMMMMMM-----===+++++++'''''+++==--------------MMMMMM-----=
'''+CCCC''..''''++CCC   CC+'.......'+CCC       CC++'''''++CCCCCCCCCC             CCCCCCCCCCCCCCC+++++CCCCCCCCCCCCCCCCCCC      CCCCCC

+++C    ++''++++CC        C+'''''''+C            CC+++++CC                                      CCCCC

CCC     CCXXCCCC           CXXXXXXXC               CCCCC

          CC                CCCCCCC

...'==+'..--....'+=-MMMM-='.--------.+=MAAXXXAM-+''..'''''++==---MMMAAAAMAAAAAMMM------==+''+++++''++====---MMMM-------MMMAAMMMM---=
'''+CCC+''..''''+CCC    CC+'........'CC        CC++''+++++CCCCCCC                CCCCCCCCC++CCCCC++CCCCCCCCC    CCCCCCC         CCCC

+++C   C++''++++C         C+''''''''+            CC++CCCCC                                CC     CC

CCC     CCXXCCCC           CXXXXXXXXC              CC

          CC                CCCCCCCC

'''+==+'..--...''+=-MMMM--+'--------.+=-MAXXXAM-+'..'++++++=--MMAAAAAAAAAAAAAAMMM----MMM-+''''+++++++===--MM-MMMMM------MMMAMMMMM--=
+++CCCC+''..'''++CCC    CCC+........'CCC       CC+''+CCCCCCCCC                   CCCC   CC++++CCCCCCCCCCCC  C     CCCCCC         CCC

CCC    C++''+++CC          C''''''''+            C++C                                     CCCC

        CCXXCCC             XXXXXXXXC             CC

          CC                CCCCCCCC

++++==+'..-..'''++=--MMM--+.--------.'=-MAXXAM-=+'.'+++=++++=-MMAAAAAAAAMMMMMMMM-----MM--=+++++++=++++++=---------===---MMMMMMMMM--=
CCCCCCC+''.''+++CCCCC   CCC'........'+CC      CCC+'+CCCCCCCCCC                  CCCCC  CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC         CCC

       C++'++CCC           +''''''''+C           C+C

        CCXCC              CXXXXXXXXC             C

          C                 CCCCCCCC

===+=+''..-..'''+==----M--+'--------.'+-AAXXAM-=++''++++=+++=--MMAAXXXXAAAMMMAAAAMMMM---===+++++====++++==--===--=====--MMMMMMMMMM--
CCCCCC++''.''+++CCCCCCC CCC+........'+CC      CCCC++CCCCCCCCCCC                      CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC          CC

      CC++'++CCC           C''''''''+C            CC

        CCXCC               XXXXXXXXC

          C                 CCCCCCCC

=====+''....'''++==-------+.--------.'=MAXXXAM--=++++++++====--MMMAAXXXXXAAAAAXXZXXAM--===++'+++++=======---------====--MMMMAAAMMM--
CCCCCC++''''+++CCCCCCCCCCCC'........'+C       CCCCCCCCCCCCCCCCC                      CCCCCCC+CCCCCCCCCCCCCCCCCCCCCCCCCCC          CC

      CC++++CCC            +''''''''+C                                                      C

        CCCC               CXXXXXXXXC

                            CCCCCCCC

+---=++''..''++++=-------=+'--------'=-AXXXAM--===+++'''++==-----MMMMAAAAAAAAAXXZXXAMM--===+'''++++=-----MMMMMMMM---===-MMAAAAAAAMM-
CCCCCCC++''++CCCCCCCCCCCCCC+........+CC      CCCCCCCC+++CCCCCCCCC                     CCCCCC+++CCCCCCCCCC        CCCCCCC           C

       CC++CC              C''''''''C                CCC                                    CCC

         CC                 XXXXXXXX

                            CCCCCCCC

+=---=+++'''''+++==---====+'--------'=-AAXAAM-===++'''....'++++++===--MMMAAAMMMAAAAMM---===++'''+++=--==-MMMM--MM--====--MAAAAMMAMM-
CCCCCCCCC+++++CCCCCCCCCCCCC+........+CC      CCCCCC+++''''+CCCCCCCCCCC               CCCCCCCC+++CCCCCCCCC    CC  CCCCCCCC          C

         CCCCC             C''''''''C              CCC++++C                                  CCC

                            XXXXXXXX                  CCCC

                            CCCCCCCC

+=--M-==+'''''+++===-=====+'-------.'=-MAAAM--+'''....-----.......''++=--MMAMMMMMMMM-=====+++++++++======--MMMMMM--=====-MMAAMMMMMM-
CCCC CCCC+++++CCCCCCCCCCCCC+.......'+CC     CCC+++''''.....'''''''++CCCCC           CCCCCCCCCCCCCCCCCCCCCCC      CCCCCCCC          C

         CCCCC             C'''''''+C          CCC++++'''''+++++++CC

                            XXXXXXXC              CCCCXXXXXCCCCCCC

                            CCCCCCC                   CCCCC

==--MM-=''''''++++========+'-------'+=-MAAMM=+.----------------------.'+=-MMMAMM----==+==+++==++++++======-MMMMMM----===--MMMMMMMMM-
CCCC  CC++++++CCCCCCCCCCCCC+.......+CCC     CC'......................'+CCC      CCCCCCCCCCCCCCCCCCCCCCCCCCC      CCCCCCCCC         C

        CCCCCC             C'''''''C          +''''''''''''''''''''''+C

                            XXXXXXX           CXXXXXXXXXXXXXXXXXXXXXXC

                            CCCCCCC            CCCCCCCCCCCCCCCCCCCCCC

----MM-+'...''''++++======+.------.+=---MM-+'---'''''''-----------------.+--MAAAAM--==+++++===+++==+===------MMM-------------M-MMMM-
CCCC  CC+'''++++CCCCCCCCCCC'......'CCCCC  CC+...CCCCCCC.................'CCC      CCCCCCCCCCCCCCCCCCCCCCCCCCC   CCCCCCCCCCCCC C    C

        C+++CCCC           +''''''+         C'''BBBBBBB'''''''''''''''''+

         CCC               CXXXXXXC          XXXHHHHHHHXXXXXXXXXXXXXXXXXC

                            CCCCCC           CCCXXXXXXXCCCCCCCCCCCCCCCCC

-----M-=+...'''''''++===++'.-----.'=---=++.--''''''''-----.......----''--.'+=-MAMMM-==++++++++++=======----==----===---------M---MMM
CCCCC CCC'''+++++++CCCCCCC+'.....'+CCCCCCC'..CCCCCCCC.....'''''''....CC..'+CCC     CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC CCC

         +++CCCCCCC       C+'''''+C       +''BBBBBBBB'''''+++++++''''BB''+C

         CCC               CXXXXXC        CXXHHHHHHHHXXXXXCCCCCCCXXXXHHXXC

                            CCCCC          CCXXXXXXXXCCCCC       CCCCXXCC

----MMM=+'..''''''''++==++''....'+====+'.--'''''''---.''.-.''''++'.---''---.'+=---===++''++++++=========-====----====-------MM---MMM
CCCC   CC+''++++++++CCCCCC++''''+CCCCCC+'..CCCCCCC...'++'.'++++CC+'...CC...'+CCCCCCCCCC++CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC  CCC

         C++CCCCCCCC      CC++++C      C+''BBBBBBB'''+CC+'+CCCC  C+'''BB'''+C          CC

          CC                CCCC        CXXHHHHHHHXXXC  CXC       CXXXHHXXXC

                                         CCXXXXXXXCCC    C         CCCXXCCC

=---MMM-='.'''''...''++++++''.''+===+'.--'''''''--.'=--='-.'++===++'.--'----..++==++++''''++++++=+++++=====-----=====--------MM--M--
CCCC   CC+'+++++'''++CCCCCC++'++CCCCC+'..CCCCCCC..'+CCCC+.'+CCCCCCC+'..C....''CCCCCCCC++++CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC  CC CC

         C+CCCCC+++CC      CC+CC     C+''BBBBBBB''+C    C'+C       C+''B''''++        CCCC

          C     CCC          C        CXXHHHHHHHXXC      XC         CXXHXXXXCC

                                       CCXXXXXXXCC       C           CCXCCCC

=-MMMMM-=+''''......''+===+++++===++'.--''''''---.+-MAM-+--.+=-MM-==+.-'---..'++==+''''''''++++++++''+=========----==-----===-------
CC     CCC++++''''''++CCCCCCCCCCCCCC+'..CCCCCC...'CC   CC..'CCC  CCCC'.C...''+CCCCC++++++++CCCCCCCC++CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC

          CCCC++++++CC              C+''BBBBBB'''+       ''+         +'B'''++C     CCCCCCCC        CC

              CCCCCC                 CXXHHHHHHXXXC       XXC         CXHXXXCC

                                      CCXXXXXXCCC        CC           CXCCC

=-MMMMM-==++'..---..''+=-========+'...--'''''---..'+=--='---+-MAAMM-='--'--.'+==-==++''''''''''''''''''+++======--============------
CC     CCCCC+''...''++CCCCCCCCCCCC+'''..CCCCC...''+CCCCC+...CC     CC+..C..'+CCCCCCCC++++++++++++++++++CCCCCCCCCCCCCCCCCCCCCCCCCCCCC

            C++'''++CC            C+++''BBBBB'''++C     C'''         C''B''+C        CCCCCCCCCCCCCCCCCC

             CCXXXCC               CCCXXHHHHHXXXCC       XXX          XXHXXC

               CCC                    CCXXXXXCCC         CCC          CCXCC

=-MMAMM-==++'..---..'+=--------=+'....-'''''--------'MM+.---'-MAAAAM-+.----.+-MM---==++++''''''''........'++====--==================
CC     CCCCC+''...''+CCCCCCCCCCCC+''''.CCCCC........+  C'...+C      CC'....'CC  CCCCCCCCC++++++++''''''''+CCCCCCCCCCCCCCCCCCCCCCCCCC

            C++'''++C            C++++'BBBBB''''''''C   +'''C         +''''+             CCCCCCCC++++++++C

             CCXXXCC              CCCCXHHHHHXXXXXXXX    CXXX          CXXXXC                     CCCCCCCC

               CCC                    CXXXXXCCCCCCCC     CCC           CCCC

=-MAMM-==+++'..---..'+--------=+''....-------''-''---++.----.=MAXXXAM-'----.=MXAAM---====++'''''...------.''++==============-=--====
CC    CCCCCC+''...''+CCCCCCCCCCC++''''.......++.CC...CC'....'C       C+....'C     CCCCCCCCC+++++'''......'++CCCCCCCCCCCCCCCCCCCCCCCC

            C++'''++C           CC++++'''''''CC'BB'''  +''''+         C''''+               CCCCC+++''''''+CC

             CCXXXCC              CCCCXXXXXXX  XHHXXX  CXXXXC          XXXXC                    CCCXXXXXXC

               CCC                    CCCCCCC  CXXCCC   CCCC           CCCC                        CCCCCC

-MAAMM-=+++'''.---.'+=-MMMMMM-++'''''.-------''-'''----''---.-AXXXXXAM+----'=X)ZXAMM---=--===+++''...........'++++========-------===
C     CCCCC+++'...'+CCC      CCC+++++'.......++.CCC....CC...'C        C....+C       CCCCCCCCCCCC++'''''''''''+CCCCCCCCCCCCCCCCCCCCCC

           CCC+'''+C            CCCCC+'''''''CC'BBB''''BB'''+          ''''C                    CC+++++++++++C

              CXXXC                  CXXXXXXX  XHHHXXXXHHXXXC          XXXX                       CCCCCCCCCCC

               CCC                    CCCCCCC  CXXXCCCCXXCCC           CCCC

MMAAM-=++'''......'+=-AXXAAM-+''''''+'.--------''''''''''-''-=AAAAXXXM=.--.'-Z)1XAMM----------==++''+'''......'''''++======------=++
     CCCC+++''''''+CCC      CC++++++C+'........CCCCCCCCCC.CC.C        C'..'+C       CCCCCCCCCCCCCC++C+++''''''+++++CCCCCCCCCCCCCCCCC

         CCC++++++C           CCCCCC C+''''''''BBBBBBBBBB'BB'          +''+C                      CC CCC++++++CCCCC

            CCCCCC                    CXXXXXXXXHHHHHHHHHHXHHX          CXXC                             CCCCCC

                                       CCCCCCCCXXXXXXXXXXCXXC           CC

MAAAAM=+''.......'==MAZ11ZXM+..'''++++.---''''''''''''''''''-=AXAAAXXM=.--.'-X1ZZXAAM----M------====+++''......''.'''++++++==----==+
      CC++'''''''+CC        C''+++CCCC'...CCCCCCCCCCCCCCCCCC.C        C'..'+C        CCCC CCCCCCCCCCCCC++''''''++'+++CCCCCCCCCCCCCCC

        CC+++++++C           ++CCC    +'''BBBBBBBBBBBBBBBBBB'          +''+C                           CC++++++CC+CCC

          CCCCCCC            CC       CXXXHHHHHHHHHHHHHHHHHHX          CXXC                              CCCCCC  C

                                       CCCXXXXXXXXXXXXXXXXXXC           CC

MAAAM-=++'..--..'+-MX1+++1A=.-.'''+==+.-'''''''''''''''''''-.=AAAAXXXM=.--.+MXZZZZXAMMMMMMM--MMM----==++'''...''''''''''++++==--====
     CCCC+''..''+CC        C'.'+++CCCC'.CCCCCCCCCCCCCCCCCCC.'C        C'..'C               CC   CCCCCCCC+++'''++++++++++CCCCCCCCCCCC

         C++''++C           +'+CCC    +'BBBBBBBBBBBBBBBBBBB'+          +''+                             CCC+++CCCCCCCCCC

          CCXXCC            CXC       CXHHHHHHHHHHHHHHHHHHHXC          CXXC                                CCC

            CC               C         CXXXXXXXXXXXXXXXXXXXC            CC

MMAAM-=+''..--.'+=MX)=--=1M'--.'+++=-='-'''''''''''''''''''-.-AXXXXZXM'---'-Z))1ZXXXAAAAAAMMMMMMMMM-==++++''..''''+++'+'++++=-----==
     CCC++''..'+CC         +..'+CCCCCC+.CCCCCCCCCCCCCCCCCCC.'C        +...+C                       CCCCCCC++''++++CCC+C+CCCCCCCCCCCC

        CC++''+C           C''+C      C'BBBBBBBBBBBBBBBBBBB'+         C'''C                               CC++CCCC   C C

          CCXXC             XXC        XHHHHHHHHHHHHHHHHHHHXC          XXX                                  CC

            CC              CC         CXXXXXXXXXXXXXXXXXXXC           CCC

MMMM--=++'...-.+=MX1=   +X+---.+===---'-'''''''''''''''''''-'MXXXXXXA-'--.=A1+)1ZXXAAAAAMAAAMMMMMMM--=+++++'''''++++=+++++++=------=
    CCCCC+'''.'CC         C...'CCCCCCC+.CCCCCCCCCCCCCCCCCCC.+        C+..'C                        CCCCCCCC+++++CCCCCCCCCCCCCCCCCCCC

         C+++'+            '''+       C'BBBBBBBBBBBBBBBBBBB'C         C''+                                 CCCCC

          CCCXC            XXXC        XHHHHHHHHHHHHHHHHHHHX           XXC

             C             CCC         CXXXXXXXXXXXXXXXXXXXC           CC

-MMM-==+'''...'=MZ+-    1=-''-.+-MMMMM+-'''''''''''''''''''.=XZZZZXXM+---'M1++)1ZZXAMMMMMMAMMM--MMAM-==+++++'''''++++=++++++=-----==
C   CCCC+++'''+C         C.CC.'CC     C.CCCCCCCCCCCCCCCCCCC'C        C...+                    CC    CCCCCCCC+++++CCCCCCCCCCCCCCCCCCC

        CCC+++C           'BB'+        'BBBBBBBBBBBBBBBBBBB+          '''C                                  CCCCC

           CCC            XHHXC        XHHHHHHHHHHHHHHHHHHHC          XXX

                          CXXC         CXXXXXXXXXXXXXXXXXXX           CCC

-MMM-==++'''...+M1=     1=-''--+-MAAAAM'-'''''''''''''''''-'MZZZZZXA-'---+X1)))11XAMMM----MMM---MAAMM-==+++++'''''+++++++++==-----==
C   CCCCC+++'''C         C.CC..CC      +.CCCCCCCCCCCCCCCCC.+        C+...C            CCCC   CCC     CCCCCCCC+++++CCCCCCCCCCCCCCCCCC

         CCC+++           'BB''        C'BBBBBBBBBBBBBBBBB'C         C'''                                    CCCCC

            CCC           XHHXX         XHHHHHHHHHHHHHHHHHX           XXX

                          CXXCC         CXXXXXXXXXXXXXXXXXC           CCC

-MMM--==++'''.'+A1-     Z+-'''-'-MAAAXA-.-''''''''''''''''-+XZZZZZXA=.--.=X1++))1XMMMM--==--M----MMM--==++'++'''''''+++++====------=
C   CCCCCC+++'+C         C.CCC.+C      C'.CCCCCCCCCCCCCCCC.C        C'..'C            CCCCCC CCCC   CCCCCC+CC+++++++CCCCCCCCCCCCCCCC

          CCC+C           'BBB'C        +'BBBBBBBBBBBBBBBB'          +''+                                 C  CCCCCCC

             C            XHHHX         CXHHHHHHHHHHHHHHHHX          CXXC

                          CXXXC          CXXXXXXXXXXXXXXXXC           CC

--M-===++''''''=X+     -A.''''-.=MAAAAAM+-'''''''''''''''-'MXXZXXXA-'--.=A1)++)1XM-MMMM-==--MM-----==++++'''''''''''''++======-==--=
CC CCCCCC++++++C         'CCCC.'C       C.CCCCCCCCCCCCCCC.+        C+..'C         C    CCCCC  CCCCCCCCCCC+++++++++++++CCCCCCCCCCCCCC

         CCCCCC          +BBBB'+         'BBBBBBBBBBBBBBB'C         C''+                                 CCCCCCCCCCCCC

                         CHHHHXC         XHHHHHHHHHHHHHHHX           XXC

                          XXXXC          CXXXXXXXXXXXXXXXC           CC

----====+'''+++-Z=     =M.'''''-'-AAMMAM-'-'''''''''''''-.=XXXXXXM-'--.+A)+++)1ZAMMMMM--==---M----=+'''+++'''''''''''+++=====--==--=
CCCCCCCCC+++CCCC         'CCCCC.+C      C+.CCCCCCCCCCCCC.'C       C+..'C              CCCCCCC CCCCCC+++CCC+++++++++++CCCCCCCCCCCCCCC

         CCC             +BBBBB'C        C'BBBBBBBBBBBBB'+         C''+                             CCC   CCCCCCCCCCC

                         CHHHHHX          XHHHHHHHHHHHHHXC          XXC

                          XXXXXC          CXXXXXXXXXXXXXC           CC

==-----=+'''++=M)      +--'''''--+MAMMMMM-'-'''''''''''-.+MXXXXAM='---'M1==+)1XAM-----====----====++'''++++++++++++++++====---------
CCCCCCCCC+++CCC         C.CCCCC..C       C+.CCCCCCCCCCC.'C       C+...+          CCCCCCCCCCCCCCCCCCC+++CCCCCCCCCCCCCCCCCCCCCCCCCCCCC

         CCC             'BBBBB''         C'BBBBBBBBBBB'+         C'''C                             CCC

                         XHHHHHXX          XHHHHHHHHHHHXC          XXX

                         CXXXXXCC          CXXXXXXXXXXXC           CCC

==---M--=+++++-X+      1+-''''''-.=MMMMMMM='-''''''''--'=AAXXXAM+.--.+A)- -+1AM----============+++''+++=++++=++++++++==----MMMMM-M--
CCCCC CCCCCCCCC         C.CCCCCC.'C       C+.CCCCCCCC..+C       C'..'C         CCCCCCCCCCCCCCCCCCC++CCCCCCCCCCCCCCCCCCCCCCC     C CC

                         'BBBBBB'+         C'BBBBBBBB''C         +''+                             CC

                         XHHHHHHXC          XHHHHHHHHXX          CXXC

                         CXXXXXXC           CXXXXXXXXCC           CC

==--MMM-==++++-X=     =Z+-'''''''-.=MMMM---='.--'''---'-AXXXXA-+.--.+A)- -+)ZA-===+++++++++===++''''++========+===++===--MMMAMAMMMM-
CCCC   CCCCCCCC         C.CCCCCCC.'C    CCCC+'..CCC...+C      CC'..'C         CCCCCCCCCCCCCCCCCC++++CCCCCCCCCCCCCCCCCCCCC          C

                         'BBBBBBB'+         C+''BBB'''C         +''+                            CCCC

                         XHHHHHHHXC          CXXHHHXXX          CXXC

                         CXXXXXXXC            CCXXXCCC           CC

----MMMM-==+++=A)     +X+--'''''''-.=MMM----=+'.---.'=MAZZZXA-'---.+A)--=)ZXAM-==++'''++++++++++++++++=----===+==++==--MMAAAAAAAAMMM
CCCC    CCCCCCC         C..CCCCCCC.'C   CCCCCC+'...'+C       C+...'C          CCCCC+++CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC

                         ''BBBBBBB'+          C+'''+C         C'''+                CCC

                         XXHHHHHHHXC           CXXXC           XXXC

                         CCXXXXXXXC             CCC            CCC

=---MMAM-==+++=A1     )A'--''''''''-.+-MMMM--==+++=-MAZZ1ZA-+.---'=X+--+1XMM-=++++'++'++++++++++====+=----====++++==-MMAAXXXXXAAMMM-
CCCC    CCCCCCC         +..CCCCCCCC.'CC    CCCCCCCCC       CC'...+C         CCCCCC+CC+CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC              C

                        C''BBBBBBBB'+                        +'''C                C  C

                         XXHHHHHHHHXC                        CXXX

                         CCXXXXXXXXC                          CCC

=--MMAAM-=====-A)    -1M'---''''''''--'=-MMMMMMM-MMAZ1)1X-+.---.=A1+=+1ZA-=++++''+++++++==+++++==----=--=++==+=====-MAAXXXXXXXAMM---
CCC     CCCCCCC         +...CCCCCCCC..+CC       C        CC'...'C        CCCCCC++CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC             CCC

                        C'''BBBBBBBB''C                    +'''+               CC

                         XXXHHHHHHHHXX                     CXXXC

                         CCCXXXXXXXXCC                      CCC

=--MAAMM--===-MX)-   +X-.------'-'''''--'+---------MAA-='.--.'=M1)+1XAM=++'''''''''+''++=++'+++=--------=++++++=---MAXXAAAXXXAAM----
CCC     CCCCCC         C'......C.CCCCC..+CCCCCCCCCC   CC+'..'+C        CCC+++++++++C++CCCCC+CCCCCCCCCCCCCCCCCCCCCCC             CCCC

                        +''''''B'BBBBB''C               C+''+C            CCCCCCCCC CC     C

                        CXXXXXXHXHHHHHXX                 CXXC

                         CCCCCCXCXXXXXCC                  CC

---AAAMM--==--AX)-  -)A+.-----------------.'''''''.'''''..'+-AZ1)1XM=+++'''........'''++++''++=-MMMM----==++++==---MAXXAAAXXXAAM--=-
CCC     CCCCCC         C'.................'+++++++'+++++''+CC       CCCC+++''''''''+++CCCC++CCCC    CCCCCCCCCCCCCCC             CCCC

                        +'''''''''''''''''+CCCCCCC+CCCCC++C             CCC++++++++CCC    CC

                        CXXXXXXXXXXXXXXXXXC       C     CC                 CCCCCCCC

                         CCCCCCCCCCCCCCCCC

--MAXXAMM-==-MAX1=  =1M+.------..''..----------.--..''+=-MAAXXXAM=+''..'.''.......'''+'''''++=--MMAM-===-=====----MMAXXXXXXXXAAM--=-
CC       CCCC          C'......''++''..........'..''++CCC        CC++''+'++'''''''+++C+++++CCCCC    CCCCCCCCCCCCCC              CCCC

                        +''''''++CC++''''''''''+''++CC             CC++C+CC+++++++CCC CCCCC

                        CXXXXXXCC  CCXXXXXXXXXXCXXCC                 CC C  CCCCCCC

                         CCCCCC      CCCCCCCCCC CC

-MAXZXAAMM---MAXZ)==+X-'....---'=MAMM---==+'''+===-MAXZ1ZZAM-=++''........''.'''''''''''''++=----MM-=====---=---MMAAXXXZZZXXAAMM----
C         CCC         C+''''...+C    CCCCCC+++CCCCC         CCCC++''''''''++'+++++++++++++CCCCCCC  CCCCCCCCCCCCC                CCCC

                       C++++'''C           CCC                  CC++++++++CC+CCCCCCCCCCCCC

                        CCCCXXX                                   CCCCCCCC  C

                            CCC

MAAXZZXAMM----MAXZ))1A='....--.'M1++++===+)1ZZ1)))+++)ZAM=+'''''...........'.''+''''''''''+==-------====------MMMAXXZZZZZZZXAMM---==
          CCCC        C+''''..'+                         CC+++++'''''''''''+'++C++++++++++CCCCCCCCCCCCCCCCCCCC                 CCCCC

                       C++++''+C                           CCCCC+++++++++++C+CC CCCCCCCCCC

                        CCCCXXC                                 CCCCCCCCCCC C

                            CC

AXXXZZZXM------MAXZZA-+...''..'=X)             -=+)ZXM=+''...'''..'..........''++''''''+++++=--=======--MMMAAMMAAAXXZZZZZXXAMM-=====
         CCCCCC      CC'''++''+C                      CC++'''+++''+''''''''''++CC++++++CCCCCCCCCCCCCCCCC                      CCCCCC

                       +++CC++C                         CC+++CCC++C++++++++++CC  CCCCCC

                       CCC  CC                            CCC   CC CCCCCCCCCC

XXXZXXZXAM-----MMAAA-='...'+''+-X)           =)ZAM-=++'...'..'''.......'......''''''''++++++====++=----MMMAXXXXXXXZZZZZZZXAM--==+===
          CCCCC     CC+'''+C++CC                  CCCC+'''+''+++'''''''+''''''++++++++CCCCCCCCCCCCCCCCC                     CCCCCCCC

                      C+++C CC                        C+++C++CCC+++++++C++++++CCCCCCCC

                       CCC                             CCC CC   CCCCCCC CCCCCC

XZZZZZXZXXAMMM--MMM-=+''.'++++=-X1=        -+ZM=+'.......''''''......'''.....'...'++++===++====++=-MMMMM--MAXXZZ1ZZZZZZZXXAM-==+++==
              CC   CCC++'+CCCCCC               CC+'''''''++++++''''''+++'''''+'''+CCCCCCCCCCCCCCCCC     CC                  CCCCCCCC

                      CC+C                       C+++++++CCCCCC++++++CCC+++++C+++C

                        C                         CCCCCCC      CCCCCC   CCCCC CCC

Z11ZZZZZZZXAAM-----=+'...'+===-MAZ+-   --+1ZAM=''.........''''''...'.'''''''''''''++++======+====-MAAAAAMMMAAXXZZZZZZZZXAAM-========
              CCCCCCC+'''+CCCCC               C++'''''''''++++++'''+'+++++++++++++CCCCCCCCCCCCCCCC                         CCCCCCCCC

                     C+++C                     CC+++++++++CCCCCC+++C+CCCCCCCCCCCCC

                      CCC                        CCCCCCCCC      CCC C

Z111ZZZZZZXXAM---==+'....'+=-MMMMX1+=+)1ZAM-==+''....'....'''''''''''''++++''''+'''+''+=====+=--MMXXXAAMMMAXXXXZXXXXXXXAAM--========
              CCCCCC+''''+CCC              CCCC++''''+''''+++++++++++++CCCC++++C+++C++CCCCCCCCCC                          CCCCCCCCCC

                    C++++C                     CC++++C++++CCCCCCCCCCCCC    CCCC CCC CC

                     CCCC                        CCCC CCCC

ZZZZZZZZZZXXAM--=+++'.--.'++-AAMMAX111ZXM-=++++''...'''...''''''''''''+++''''++++''''++======-MMAXXXAAMMMMAAXXXXXXAAAAAMMM-=====+++=
              CCCCCC+'..'+CCC            CCCCCC++'''+++'''++++++++++++CCC++++CCCC++++CCCCCCCCC                            CCCCCCCCCC

                    C+''+C                     CC+++CCC+++CCCCCCCCCCCC   CCCC    CCCC

                     CXXC                        CCC   CCC

                      CC

ZZZZZZZZZXXXXM-==+'+'..-.''+-AAMMAXXXXXA-==++++'''..''''''++++++++++++++''''+++=+++++==-====-MAAXXAAMM--MMAAXXAAAAAMMMM---===++++++=
              CCCC+C+''.'++CC           CCCCCCC+++''++++++CCCCCCCCCCCCCC++++CCCCCCCCCCCCCCCCC         CC               CCCCCCCCCCCCC

                  C C++'+CC                    CCC++CCCCCC              CCCC

                     CCXC                         CC

                       C

11ZZZZZZZZXXXAM-=+''''.-.''+=-MMMMAAAAMM-=+''''.....'''+'''++++++====++++''++========----==--MAXAAAM-----MMMAAAMMMMM----==+++++++++=
               CCC++++'.'++CCC          CCC++++'''''+++C+++CCCCCCCCCCCCCC++CCCCCCCCCCCCCCCCCC       CCCCC           CCCCCCCCCCCCCCCC

                  CCCC+'+CC                CCCC+++++CCC CCC              CC

                      CXC                      CCCCC

                       C

))11ZZZZZXXXXAMM-=+''...'====-----MMMM-==+''.........''++''''''+++========++=====--MMMMM--MMAXXXAMM-====---MMMM---------====++++++==
                CCC++'''+CCCCCCCCC    CCCC++'''''''''++CC++++++CCCCCCCCCCCCCCCCCCCC     CC         CCCCCCCC    CCCCCCCCCCCCCCCCCCCCC

                   CC+++C                 CC+++++++++CC  CCCCCC

                     CCC                    CCCCCCCCC

)))1ZZZZXXXAAMMM--=+'..'+--===--====--=+++'..--.......'''......'++++====---=====-MMMAM----MXZZXAM--=+=====----------MM---====++=====
                CCCC+''+CCCCCCCCCCCCCCCCCC+''..'''''''+++''''''+CCCCCCCCCCCCCCCCC     CCCC       CCCCCCCCCCCCCCCCCCC  CCCCCCCCCCCCCC

                    C++C                  C++''+++++++CCC++++++C

                     CC                    CCXXCCCCCCC   CCCCCC

                                             CC

+++)1ZZZXXAAAMMMM-=+'...+===+=-===++==++++'......'.............''++'++==---=====---MMM-==-MAZZXM-=++++====----------MM---==========-
                 CCC+'''CCCCCCCCCCCCCCCCCC+''''''+'''''''''''''++CC+CCCCCCCCCCCCCCC   CCCC      CCCCCCCCCCCCCCCCCCCC  CCCCCCCCCCCCCC

                    C+++                  C++++++C+++++++++++++CC  C

                     CCC                   CCCCCC CCCCCCCCCCCCC

++++)1ZZXXAAAMMMM-=+'....'+++=====+++++'''......'''.........''.'''+++++++==++++=====-----MAAXAM-=+++++++==-------------===+++++=====
                 CCC+''''+CCCCCCCCCCCCC+++''''''+++'''''''''++'+++CCCCCCCCCCCCCCCCCCCCCCC      CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC

                    C++++C             CCC++++++CCC+++++++++CC+CCC

                     CCCC                 CCCCCC   CCCCCCCCC  C

+++))1ZZXXXAAAMMMM-=+'...''''++=======++''..''''''''.......''''''''++++'+++++''+++==--MMAAAAMM-===+++=====-=-----------==+++++======
                  CCC+'''++++CCCCCCCCCCC++''++++++++'''''''++++++++CCCC+CCCCC++CCCCCCC        CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC

                     C+++CCCC           CC++CCCCCCCC+++++++CCCCCCCC    C     CC

                      CCC                 CC        CCCCCCC

++)))1ZXXXXAAAAAAM-=+'....'.''++======+++'''''...........''''++++'''+++''++++''''++=-MMAAXAM-=================-------===++++++======
                  CCC+''''+'++CCCCCCCCCCC+++++'''''''''''++++CCCC+++CCC++CCCC++++CCCC       CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC

                     C++++C+CC           CCCCC+++++++++++CCCC    CCC   CC    CCCC

                      CCCC C                  CCCCCCCCCCC

++))11ZZXXXAAAAAAM-=+''.''''.''+======++''''''..........''++++==+++++++''+====+++==--MAAAAM-============----==------====++++++======
                  CCC++'++++'++CCCCCCCCC++++++''''''''''++CCCCCCCCCCCCC++CCCCCCCCCCCC      CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC

                     CC+CCCC+CC         CCCCCC++++++++++CC             CC

                       C    C                 CCCCCCCCCC

++))111XXAAAXAXAAA-=+'''''''''''++++++''''.''''...'....''+=====+++++++++++===-====-MMAAM---===========------===---==++++++++++=====+
                  CCC+++++++++++CCCCCC++++'++++'''+''''++CCCCCCCCCCCCCCCCCCCCCCCCCC     CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC

                     CCCCCCCCCCC      CCCC+CCCC+++C++++CC

                                          C    CCC CCCC

++)))11ZXXXXXXXXAM-==+++++'''''''+++++''''''''''''...'''+==---=+++++==-===---MMM-MMMMMM--=============--------======+++++++========+
                  CCCCCCCC+++++++CCCCC++++++++++++'''+++CCCCCCCCCCCCCCCCCCCCC   C      CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC

                          CCCCCCC     CCCCCCCCCCCC+++CCC

                                                  CCC

+)))111ZXAAXXXXAMM==++==+++''+'''+++++'''++'''''''....''++=--==++++==-MMM----MMMM-----==========----------MMM---====++++===------==+
                  CCCCCCCCC++C+++CCCCC+++CC+++++++''''++CCCCCCCCCCCCCC   CCCC    CCCCCCCCCCCCCCCCCCCCCCCCC   CCCCCCCCCCCCCCCCCCCCCCC

                           CC CCC     CCC  CCCCCCC++++CC

                                                  CCCC

))))11ZXAAAAXXAMM-=++=--==+'''+'+++'''''++++++++''....''++====++++==-MAAAMM-------======-------MMMMMMMMMMAAAAMM-====++==-MMMMMMM--==
                 CCCCCCCCCC+++C+CCC+++++CCCCCCCC++''''++CCCCCCCCCCCCC      CCCCCCCCCCCCCCCCCCCC                CCCCCCCCCC       CCCC

                           CCC C   CCCCC        CC++++CC

                                                  CCCC

))111ZZXAAAMMAMM--=++==---=+++++++++'''''+++==++'''....'''+++=====--------==============------MMMAMMAAAAXXXAAAMM------=-MMMAMMMM--==
                CCCCCCCCCCCCCCCCCCCC+++++CCCCCCC+++''''+++CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC                  CCCCCCCC        CCCC

                                    CCCCC       CCC++++CCC

                                                   CCCC

11111ZZXAAAAMMMM--=++==-M-=+++++++++++''''+++==+++'''...'''''+==-MAAMM--=+++++++===-------MMMMMMAMMAAAXXXZXXAAAAMMMM----MMMMMMM--==+
                CCCCCCCC CCCCCCCCCCCCC++++CCCCCCCC+++'''+++++CCCC     CCCCCCCCCCCCCCCCCCCC                          CCCC       CCCCC

                                      CCCC        CCC+++CCCCC

                                                     CCC

11111ZXXAAAAAMM----====-MM-=++++++++++++''++++==++++''.......'+=-AAXAAM-+++++++==--------MMMMMMAMMMMAAXXZZZXXXAAAAMM------MM---===++
               CCCCCCCCC  CCCCCCCCCCCCCC++CCCCCCCCCC++'''''''+CCC      CCCCCCCCCCCCCCCCCC                           CCCCCC  CCCCCCCC

                                        CC          CC+++++++C

                                                      CCCCCCC

1111ZZZXAAAAAM-------=-MAAM-==++++++++++++++++==++++++''......'+--MAAM-=+++=====-----MMMMMMMMMMMMMMAAXZZZZZZXAAM----=====-----=====+
              CCCCCCCCC    CCCCCCCCCCCCCCCCCCCCCCCCCCC++''''''+CCC    CCCCCCCCCCCCCCC                           CCCCCCCCCCCCCCCCCCCC

                                                      CC++++++C

                                                        CCCCCC

ZZZZZXXXAAAAMM-===-----MAAAAM----========++++++++'++++''.....''+==----==+++==----MM--MMMMMMMMMMMMAAXXZZZXXAMM-==+++++===============
              CCCCCCCCC      CCCCCCCCCCCCCCCCCCCC+CCCC++'''''++CCCCCCCCCCCCCCCCCC  CC                        CCCCCCCCCCCCCCCCCCCCCCC

                                                 C    CC+++++CC

                                                        CCCCC

ZZXXXAAAAAMMM-====-MMMMMMAAXAM-MM--==---==++'++''''''''''''''''+============-----M---------MMMAAAXXXAAAM--===+++''+++===============
             CCCCCC           C  CCCCCCCCCCC+CC++++++++++++++++CCCCCCCCCCCCCCCCCC CCCCCCCCC             CCCCCCCC++CCCCCCCCCCCCCCCCCC

                                            C  CCCCCCCCCCCCCCCC                                                 CC

XXAAAMMAAAMM--=++=-MMMMMAAAXXAMMMMM-----===++''''+'''''''++++'''+====++===---MMMMM-------MMAAAAAMMM--==++++''+''++++==========-----=
            CCCCCCC                CCCCCCCCCC++++C+++++++CCCC+++CCCCCCCCCCCCC     CCCCCCC          CCCCCCCC++C++CCCCCCCCCCCCCCCCCCCC

                                             CCCC CCCCCCC    CCC                                           CC CC

AAAAMMMMMMM--==++=-MMAAAAAAAAAMMMMM-------==+'''+++++'''''+++++======++==----MM--MMMMMMMMAMMMM--==++++'''''''++++=========-----MMMM-
           CCCCCCCC                CCCCCCCCCC+++CCCCC+++++CCCCCCCCCCCCCCCCCCC  CC             CCCCCCCC+++++++CCCCCCCCCCCCCCCCCC    C

                                             CCC     CCCCC                                            CCCCCCC

MAAM-----M--==++==-MMAAXXXXAAAAAAAMM-------=+'''''+++''''''++==--=======-------------MM---===+++''''''''''++++===---------MMMMMMMMMM
    CCCCC CCCCCCCCC                 CCCCCCCCC+++++CCC++++++CCCCCCCCCCCCCCCCCCCCCCCCCC  CCCCCCCCC++++++++++CCCCCCCCCCCCCCCC

                                             CCCCC   CCCCCC                                     CCCCCCCCCC

-MMM-==-----=+++=--MMAAXXXXAAAAAAAMMMM------=++''''+''+'''++===--===========-----=======+++++''''''''''++++==--MMMAAAAMMMMMMMMMMMMMM
C   CCCCCCCCCCCCCCC                   CCCCCCCCC++++C++C+++CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC++++++++++CCCCCCCC

                                               CCCC CC CCC                                   CCCCCCCCCC

=========---=+++=--MMAAAXXAAAAAAAMMMMM-------=+++++'''+'+++=----==++++===--------===++++''''''''.''''++=---MMAAXXXXXAAMMM-----------
CCCCCCCCCCCCCCCCCCC                   CCCCCCCCCCCCC+++C+CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC++++++++'++++CCCCCC              CCCCCCCCCCC

                                                   CCC C                                CCCCCCCC+CCCC

                                                                                                C

+++++++++=--==+=-MMAAAAAXXXXXAAAAMMM--======-=====++++++===----=+++++=--MMMMMM--==+++''''''''''++++==-MAAAXXXXXXAAAAMM--------------
CCCCCCCCCCCCCCCCC                   CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC      CCCCCCC++++++++++CCCCCCC                CCCCCCCCCCCCCC

                                                                                     CCCCCCCCCC

'..''.''++=--==-MAAXXXXXXXXZXZXAMM--==+++======++++++===--=---==+++==--MMMM--=====++======----------MMAAAAAAAAMMM----========-------
+''++'++CCCCCCCC                  CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC    CCCCCCCCCCCCCCCCCCCCCCCCC             CCCCCCCCCCCCCCCCCCC

C++CC+CC

 CC  C

........''+=--MMMAXZ111ZXZZZZZXAM--==+'''++++++++++++===--=====+++====----------MMMMAAAAAMMMMM--====-------------====+++++++====----
''''''''++CCCC                   CCCCC+++CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC              CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC

++++++++CC                            CCC

CCCCCCCC

---........'=-MAAAXZ)))111111ZXAM---=+''''+++++'''''++++++++++++====---MMAAAAAAAAAAAAMMM-==++++''+++============+++++++++++++======-
...''''''''+CC                   CCCCC++++CCCCC+++++CCCCCCCCCCCCCCCCCCC                 CCCCCCC++CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC

'''++++++++C                          CCCC     CCCCC                                           CC

XXXCCCCCCCC

CCC

---....---..+-AAAAZ)+=+++++)1ZXAAMM--='''++==++'''...''.''++++==--MMMAAAAAAAMM---====++'''''''.'''++=======+++++++'''++++++++=======
...''''...''CC                     CCC+++CCCCCC+++'''++'++CCCCCCCC            CCCCCCCCC+++++++'+++CCCCCCCCCCCCCCCC+++CCCCCCCCCCCCCCC

'''++++'''++                          CCC      CCC+++CC+CC                             CCCCCCC+CCC                CCC

XXXCCCCXXXCC                                      CCC  C                                      C

CCC    CCC

---.....----'+-MMAZ+=---=+))1ZXAAMMM-=+++++++'''...''++==--MMMMMMMAAAAAMMM--==++'''''...''''''''''++=====++++++'''''''''+++++++====+
...'''''....+CC                     CCCCCCCCC+++'''++CCCCCC               CCCCCC+++++'''++++++++++CCCCCCCCCCCCC+++++++++CCCCCCCCCCCC

'''+++++''''C                                CCC+++CC                           CCCCC+++CCCCCCCCCC             CCCCCCCCC

XXXCCCCCXXXX                                    CCC                                  CCC

CCC     CCCC

--..''''.---.'=-MX)-   --+)1ZXAMM-M--=++'''..'''''+=MAXXZZZZXAAAAAAAAMMM---==+''''......''''''''+++======+++'''''''..''''+++++++++=+
..''++++'...'+CC                 C CCCCC+++''+++++CC                    CCCCCC++++''''''++++++++CCCCCCCCCCCC+++++++''++++CCCCCCCCCCC

''++CCCC+'''+C                          CCC++CCCCC                            CCCC++++++CCCCCCCC            CCCCCCC++CCCC

XXCC    CXXXC                              CC                                     CCCCCC                           CC

CC       CCC

-..'''''..---.+=M1=    -=+)ZAM-===-==+'.'..''+==--MX1)+))++)ZXXXXXAAMMM--==++''.......'''++++++++====-===+++''''''....''''++++++++==
.''+++++''...'CC              CCCCCCCC+'+''++CCCCC                     CCCCCC++'''''''+++CCCCCCCCCCCCCCCCCCC++++++''''++++CCCCCCCCCC

'++CCCCC++'''+                        C+C++CC                                CC+++++++CCC                   CCCCCC++++CCCC

XCC     CCXXXC                         C CC                                    CCCCCCC                            CCCC

C         CCC

-.'''+'''..-..'-X)-    -=)1XM=++++==+'...'+=-AXZZ1))+++))1))))111ZXAMM--==+''''...''+++===--====++=++=+++++++'''''''''''''''++++++++
.'+++C+++''.''+C             CCCCCCCC+'''+CCC                         CCCCC++++'''++CCCCCCCCCCCCCCCCCCCCCCCCC+++++++++++++++CCCCCCCC

'+CCC CCC++'++C                      C+++C                                 CCCC+++CC                         CCCCCCCCCCCCCCC

XC       CCXCC                        CCC                                      CCC

C          C

-..'.........'-A1-     -+)1XM=+''++=++''+=MAZ1)+++++))1Z111)++))1ZXAMM--=++'''++==--MMMMMMMM--=+++++++'''''''''''''''''''''''''''+++
.''+'''''''''+C              CC++CCCCC++CC                            CCCCC+++CCCCCC        CCCCCCCCCC+++++++++++++++++++++++++++CCC

'++C+++++++++C                 CC     CC                                   CCC                        CCCCCCCCCCCCCCCCCCCCCCCCCCC

XCC CCCCCCCCC

C

-..------..'=MX)=      -=+1ZA-+++++=----MAXZ1)))111ZZZZZZ1)))))ZXAAAAAAMMMMMMMMAAXXXXXXXXXAAMM--=======+++++++++'+''++'''''''''''''+
.''......''+C                CCCCCCCCCCC                                                      CCCCCCCCCCCCCCCCCC+C++CC+++++++++++++C

'++''''''++C                                                                                                    C CC  CCCCCCCCCCCCC

XCCXXXXXXCC

C  CCCCCC

---------'=MX)=        -=+)1ZA-===-MAXXXZ1ZZZXXXAAAMMMAXXXZZZZZXXAAAXXXXAAAAMMMMMMMMMMMAMMM--====++==========---======+++'''''''''''
.........+C                   CCCCC                                                        CCCCCCCCCCCCCCCCCCCCCCCCCCCCCC+++++++++++

'''''''''C                                                                                                               CCCCCCCCCCC

XXXXXXXXX

CCCCCCCCC

---''--.'-X1=          --==+)1XAAAXZ111))1XAAMMMMAAAAXXXXXXXXXZZXXAAMM--==++++'''++++++==++'''......''''+++===-MMMM---===++++'''''''
...CC..'+C                                                            CCCCCCCC+++CCCCCCCCCC+++''''''++++CCCCCCC    CCCCCCCCCC+++++++

'''BB''+C                                                                     CCC          CCC++++++CCCC                     CCCCCCC

XXXHHXXC                                                                                      CCCCCC

CCCXXCC

--''--.+MX)-            -==--=)1ZZZZZ111ZXAAMMMAXZ1)))))1ZXAAAAM-=+++'''......-...''''''''...---------.....'''+=====----====++++++''
..CC..'C                                                        CCCCC+++''''''.'''++++++++'''.........'''''+++CCCCCCCCCCCCCCCCCCCC++

''BB''+                                                              CCC++++++'+++CCCCCCCC+++'''''''''+++++CCC                    CC

XXHHXXC                                                                 CCCCCCXCCC        CCCXXXXXXXXXCCCCC

CCXXCC                                                                        C              CCCCCCCCC

--'--'-X)=              -=====+)))11ZXAAAAAAXXXZ1)+==++)ZXAM-=++'....------------..........------------.......'''''+++======++++''++
..C..+C                                                     CCCC+''''............''''''''''............'''''''+++++CCCCCCCCCCCCC++CC

''B''C                                                          C++++''''''''''''++++++++++''''''''''''+++++++CCCCC             CC

XXHXX                                                            CCCCXXXXXXXXXXXXCCCCCCCCCCXXXXXXXXXXXXCCCCCCC

CCXCC                                                                CCCCCCCCCCCC          CCCCCCCCCCCC

---.+MZ+-             --==++)11)))11XAMMAXXZ11)))))))1ZXXA-=''..-------------------------------------..........'''''''+++++++++'''''
...'C                                                     CC++''.....................................''''''''''+++++++CCCCCCCCC+++++

'''+                                                        CC++'''''''''''''''''''''''''''''''''''''++++++++++CCCCCCC         CCCCC

XXXC                                                          CCXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXCCCCCCCCCC

CCC                                                             CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC

--.=A1=             -----=+1ZXZ11)11ZXXZ1))=====+)1ZZZZXAM='.------------------------------------.............'''''''''''+++++++''''
..'C                                                      C+'....................................'''''''''''''+++++++++++CCCCCCC++++

''+                                                        C+''''''''''''''''''''''''''''''''''''+++++++++++++CCCCCCCCCCC       CCCC

XXC                                                         CXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXCCCCCCCCCCCCC

CC                                                           CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC

--'M1=              ------=)ZZZ1)++))))++==--==+))1111ZA-+'.----''''''-''---------------------.......'''''.''''''++++'''''''++++''''
..+                                                     CC+'....CCCCCC.CC.....................'''''''+++++'++++++CCCC+++++++CCCC++++

''C                                                       C+''''BBBBBB'BB'''''''''''''''''''''+++++++CCCCC+CCCCCC    CCCCCCC    CCCC

XX                                                         CXXXXHHHHHHXHHXXXXXXXXXXXXXXXXXXXXXCCCCCCC     C

CC                                                          CCCCXXXXXXCXXCCCCCCCCCCCCCCCCCCCCC

-.-Z=                    -==))++=========-==+))))+)))1X-'.----'''''''''''''-----------...........''''''+++''++++++++++++''+'+++++''+
.'C                                                    C+'....CCCCCCCCCCCCC...........'''''''''''++++++CCC++CCCCCCCCCCCC++C+CCCCC++C

'+                                                      C+''''BBBBBBBBBBBBB'''''''''''+++++++++++CCCCCC   CC            CC C     CC

XC                                                       CXXXXHHHHHHHHHHHHHXXXXXXXXXXXCCCCCCCCCCC

C                                                         CCCCXXXXXXXXXXXXXCCCCCCCCCCC

-+A+-                       --     --======+)))++++1ZX-+.------''''''''''--------......''''''''''''+++++==++==+++++++++++++++++++''+
.C                                                    CC'......CCCCCCCCCC........''''''++++++++++++CCCCCCCCCCCCCCCCCCCCCCCCCCCCCC++C

'                                                       +''''''BBBBBBBBBB''''''''++++++CCCCCCCCCCCC                              CC

X                                                       CXXXXXXHHHHHHHHHHXXXXXXXXCCCCCC

C                                                        CCCCCCXXXXXXXXXXCCCCCCCC

.-X+-                              -=+=++==++++==+ZAM=+.--------''''''--------...''''''++++++'++++++======----==========+++===++++++
'C                                                   CC'........CCCCCC........'''++++++CCCCCC+CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC

+                                                      +''''''''BBBBBB''''''''+++CCCCCC      C

C                                                      CXXXXXXXXHHHHHHXXXXXXXXCCC

                                                        CCCCCCCCXXXXXXCCCCCCCC

=X1+=--                     --------=+======+)))ZA-='.---''''''''''''------..'''''++++++++++++++++=====--------M------=========+++++
C                                                 CC+'...CCCCCCCCCCCC......''+++++CCCCCCCCCCCCCCCCCCCCCCCCCCCCC CCCCCCCCCCCCCCCCCCCC

                                                    C+'''BBBBBBBBBBBB''''''++CCCCC

                                                     CXXXHHHHHHHHHHHHXXXXXXCC

                                                      CCCXXXXXXXXXXXXCCCCCC

A1)+===-                    -=+==----------=)1ZZXM='---'''''''''''''-----..'''''++++++++++=++++++==--------MMMMMMMMMM--------====+++
                                                  C+...CCCCCCCCCCCCC.....''+++++CCCCCCCCCCCCCCCCCCCCCCCCCCC          CCCCCCCCCCCCCCC

                                                   C'''BBBBBBBBBBBBB'''''++CCCCC

                                                    XXXHHHHHHHHHHHHHXXXXXCC

                                                    CCCXXXXXXXXXXXXXCCCCC

Z))))++==-                 --=++=--       -=+)1ZXM=+.--''''''''''''----..'''++''++++++++++++++=++=--------MMMMAAMMMMMMMMMM---=======
                                                  CC'..CCCCCCCCCCCC....''+++CC++CCCCCCCCCCCCCCCCCCCCCCCCCC                CCCCCCCCCC

                                                    +''BBBBBBBBBBBB''''++CCC  CC

                                                    CXXHHHHHHHHHHHHXXXXCC

                                                     CCXXXXXXXXXXXXCCCC

1))Z1)+++==-       --==-- ---====-      --=+)1ZA-+''..----''''''''---..'''''+''+++++++++++++++====--------MMAAMAMAAAAAAAMM------==--
                                                CC++''....CCCCCCCC...''+++++C++CCCCCCCCCCCCCCCCCCCCCCCCCCC                CCCCCCCCCC

                                                  CC++''''BBBBBBBB'''++CCCCC CC

                                                    CCXXXXHHHHHHHHXXXCC

                                                      CCCCXXXXXXXXCCC

11)1Z1)))))+==----===+==---------------=+)1ZXA-=+.------------''---..''''''+'''''''+''''''+++++==========--MMMMMMAAAAAMMMM----------
                                              CCC'............CC...''++++++C+++++++C++++++CCCCCCCCCCCCCCCCC               CCCCCCCCCC

                                                 +''''''''''''BB'''++CCCCCC CCCCCCC CCCCCC

                                                 CXXXXXXXXXXXXHHXXXCC

                                                  CCCCCCCCCCCCXXCCC

Z111111))))++===========------ --==++))))1ZXA-+'.----''''----------.'''+++++''.....''''''''''+++++++++++====--MMMMAAAM--M--MMMMMMMMM
                                             CC+'....CCCC..........'+++CCCCC++'''''++++++++++CCCCCCCCCCCCCCCCC        CC CC

                                               C+''''BBBB''''''''''+CCC     CC+++++CCCCCCCCCC

                                                CXXXXHHHHXXXXXXXXXXC          CCCCC

                                                 CCCCXXXXCCCCCCCCCC

AXZ11111)+++==--=========----=--=+))111ZZXAM-+'.-------''''''----.''+++++++''............'''''++''''''''++++==---MMMM------MMMMMMMMM
                                            CC+'.......CCCCCC....'++CCCCCCC++''''''''''''+++++CC++++++++CCCCCCCCC    CCCCCC

                                              C+'''''''BBBBBB''''+CC       CC++++++++++++CCCCC  CCCCCCCC

                                               CXXXXXXXHHHHHHXXXXC           CCCCCCCCCCCC

                                                CCCCCCCXXXXXXCCCC

MAXZ1ZZZ1++===----====+=====++++))1ZZ11ZZXM+'.---'''------''''---.'++++++''......---......''''''''''''.''''++=====-MM------MMMMMMMMM
                                           C+'...CCC......CCCC...'+CCCCCC++''''''...''''''++++++++++++'++++CCCCCCCC  CCCCCC

                                            C+'''BBB''''''BBBB'''+C      CC++++++'''++++++CCCCCCCCCCCC+CCCC

                                             CXXXHHHXXXXXXHHHHXXXC         CCCCCCXXXCCCCCC            C

                                              CCCXXXCCCCCCXXXXCCC                CCC

-MAXZXXXZ1+++++====+))))))))11ZZZZZXZZZZAM='.--''''''''----------...'''++'.......---...............'''..'''++===++=--MMM-==----M-MMM
C                                         C+'..CCCCCCCC..........'''+++CC+'''''''...'''''''''''''''+++''+++CCCCCCCCCC   CCCCCCC C

                                           C+''BBBBBBBB''''''''''+++CCC  C+++++++'''+++++++++++++++CCC++CCC

                                            CXXHHHHHHHHXXXXXXXXXXCCC      CCCCCCCXXXCCCCCCCCCCCCCCC   CC

                                             CCXXXXXXXXCCCCCCCCCC                CCC

==-AXXXXXZ11111)))))11ZZZZXXXXZZXZZXXZZXM+'----''''''''''-------..'...''+++''.....----.--..........'''''''''++=++++=-----====----MMM
CCC                                      C+....CCCCCCCCCC.......''+'''++CCC++'''''....'..''''''''''+++++++++CCCCCCCCCCCCCCCCCCCCC

                                          C''''BBBBBBBBBB'''''''++C+++CC   CC+++++''''+''++++++++++CCCCCCCCC

                                           XXXXHHHHHHHHHHXXXXXXXCC CCC       CCCCCXXXXCXXCCCCCCCCCC

                                           CCCCXXXXXXXXXXCCCCCCC                  CCCC CC

++=-MAAAAAXXXXXXXXZZZXXXAAMMAAXXXXXXXAMM=+.---'''''''''''''--..''++'''''++==+'''..------------....''''''...''++++++++==--===------MM
CCCC                                    CC'...CCCCCCCCCCCCC..''++CC+++++CCCCC+++''............''''++++++'''++CCCCCCCCCCCCCCCCCCCCC

                                          +'''BBBBBBBBBBBBB''++CC  CCCCC     CCC++''''''''''''++++CCCCCC+++CC

                                          CXXXHHHHHHHHHHHHHXXCC                 CCXXXXXXXXXXXXCCCC      CCC

                                           CCCXXXXXXXXXXXXXCC                     CCCCCCCCCCCC

''++=--MMMMMMMM---MAAMMMM---MMXXXXXAAM=+''.-''''''''''''''---.''+===+++++++=++''.--------------...'.......-.'''++++++++=--==--------
++CCCCC        CCC       CCC          CC++'.CCCCCCCCCCCCCC...'++CCCCCCCCCCCCCC++'..............'''+'''''''.'+++CCCCCCCCCCCCCCCCCCCCC

CC                                      CC+'BBBBBBBBBBBBBB'''+CC              CC+''''''''''''''+++C+++++++'+CCC

                                          CXHHHHHHHHHHHHHHXXXC                  CXXXXXXXXXXXXXXCCC CCCCCCCXC

                                           CXXXXXXXXXXXXXXCCC                    CCCCCCCCCCCCCC           C

''++=---=----====+==-==+++=-MMAAAXAAM-='-----'''''''''''-----.''++=++++++++++''..---------.............'....''''++'++'+========-----
++CCCCCCCCCCCCCCCCCCCCCCCCCC         CC+.....CCCCCCCCCCC.....'++CCCCCCCCCCCCC++''.........'''''''''''''+''''++++CC+CC+CCCCCCCCCCCCCC

CC                                     C'''''BBBBBBBBBBB'''''+CC             CC++'''''''''+++++++++++++C++++CCCC  C  C

                                        XXXXXHHHHHHHHHHHXXXXXC                 CCXXXXXXXXXCCCCCCCCCCCCC CCCC

                                        CCCCCXXXXXXXXXXXCCCCC                    CCCCCCCCC

++++======--====++'++'''.'+-MMAAAXAM-=+'------'''''''''''---.''+++++++'''''''''..-----....'''''........'''.''..''''''''++++++==-===-
CCCCCCCCCCCCCCCCCC+CC+++'+CC        CCC+......CCCCCCCCCCC...'++CCCCCCC+++++++++''.....''''+++++''''''''+++'++''++++++++CCCCCCCCCCCCC

                  C  CCC+C             C''''''BBBBBBBBBBB'''+CC       CCCCCCCCC++'''''++++CCCCC++++++++CCC+CC++CCCCCCCC

                        C               XXXXXXHHHHHHHHHHHXXXC                  CCXXXXXCCCC     CCCCCCCC   C  CC

                                        CCCCCCXXXXXXXXXXXCCC                     CCCCC

--===----=-----==+''''...'=-MMAAAXAM-+.---''---''''''''''--.'''++++++'''''''....------..''++++''...'........'...'''''.''''+++=======
CCCCCCCCCCCCCCCCCC++++'''+CC        CC'...CC...CCCCCCCCCC..'+++CCCCCC+++++++''''......''++CCCC++'''+''''''''+'''+++++'++++CCCCCCCCCC

                  CCCC+++C            +'''BB'''BBBBBBBBBB''+CCC      CCCCCCC++++''''''++CC    CC+++C++++++++C+++CCCCC+CCCC

                      CCC             CXXXHHXXXHHHHHHHHHHXXC                CCCCXXXXXXCC        CCC CCCCCCCC CCC     C

                                       CCCXXCCCXXXXXXXXXXCC                     CCCCCC

MMM--MMMM-MMMMM---====++=-MAAAAAAAAA-'----''''''''''''''--.''++++++++'++'''...-------.'''+++==+''''''..........'''''.....'+====-====
   CC    C     CCCCCCCCCCC          C+....CCCCCCCCCCCCCC..'++CCCCCCCC+CC+++'''.......'+++CCCCCC++++++''''''''''+++++'''''+CCCCCCCCCC

                                     C''''BBBBBBBBBBBBBB''+CC        C  CCC+++'''''''+CCC      CCCCCC++++++++++CCCCC+++++C

                                      XXXXHHHHHHHHHHHHHHXXC                CCCXXXXXXXC               CCCCCCCCCC     CCCCC

                                      CCCCXXXXXXXXXXXXXXCC                    CCCCCCC

MMMMMMMMAAAMAAAMMMMMMMMMMAAXXAAAAAMM='--'''''''''''''''---.'+++++++++++++++''..------.'''++=====++''''.........'''...--..'+=------==
                                    C+..CCCCCCCCCCCCCCC...'+CCCCCCCCCCCCCCC++''......'+++CCCCCCCCC++++'''''''''+++'''..''+CCCCCCCCCC

                                     C''BBBBBBBBBBBBBBB'''+C               CC++''''''+CCC         CCCC+++++++++CCC+++''++C

                                      XXHHHHHHHHHHHHHHHXXXC                  CCXXXXXXC                CCCCCCCCC   CCCXXCC

                                      CCXXXXXXXXXXXXXXXCCC                     CCCCCC                                CC

AAMMMMAXXXAAAAXAAAAAAAAAAXXXXXAAMM-=+.---''''-.--'''''----.'+++++=++++====++''..-----.''+++==+++++'''''....''''..'..---..'+==-M-M---
                                  CCC'...CCCC.'..CCCCC....'+CCCCCCCCCCCCCCCC++''.....'++CCCCCCCCCC+++++''''++++''+''...''+CCCC C CCC

                                     +'''BBBB'+''BBBBB''''+C                CC++'''''+CC          CCCCC++++CCCC++C++'''++C

                                     CXXXHHHHXCXXHHHHHXXXXC                   CCXXXXXC                 CCCC    CC CCXXXCC

                                      CCCXXXXC CCXXXXXCCCC                      CCCCC                               CCC

XXAAAAXXZZXAAAXXAAAAXXXAXXZXXAM--=='.---'''''-=+-''''''---.'++======+=====++''..----.'++====+'''''''''''''''''''....----.'+==----MMM
                               CCCC+'...CCCCC.CC.CCCCCC...'+CCCCCCCCCCCCCCCC++''....'+CCCCCCC+++++++++++++++++++''''....'+CCCCCCC

                                   C+'''BBBBB'  'BBBBBB'''+C                CC++''''+C       CCCCCCCCCCCCCCCCCCC++++''''+C

                                    CXXXHHHHHX  XHHHHHHXXXC                   CCXXXXC                           CCCCXXXXC

                                     CCCXXXXXC  CXXXXXXCCC                      CCCC                                CCCC

ZXXXXXXZZZXAAAAXXXXXXXXXXZXXAM-++'.---'''''''-..-''''''---.'++++========+++++'..----.'+=====+'.'''...''++++++++''...---.'+=-----MMMM
                              CCC+'...CCCCCCC.''.CCCCCC...'+CCCCCCCCCCCCCCCCC+''....'+CCCCCCC+'+++'''++CCCCCCCC++'''...'+CCCCCCC

                                 C+'''BBBBBBB'++'BBBBBB'''+C                 C++''''+C       C+CCC+++CC        CC+++'''+C

                                  CXXXHHHHHHHXCCXHHHHHHXXXC                   CCXXXXC         C   CCC            CCCXXXC

                                   CCCXXXXXXXC  CXXXXXXCCC                      CCCC                                CCC

1ZXXZZZZZXXAAMMAAAAXXXXAXXXA--+'.----''''''''''''''''''---.''+++++=====++''''..----.'+++===+'........''++==+++'''.......'+==----MMMA
                            CCC+'....CCCCCCCCCCCCCCCCCC...'++CCCCCCCCCCCC++++''....'+CCCCCCC+''''''''++CCCCCCC+++'''''''+CCCCCCC

                               C+''''BBBBBBBBBBBBBBBBBB'''+CC            CCCC++''''+C       C++++++++CC       CCC+++++++C

                                CXXXXHHHHHHHHHHHHHHHHHHXXXC                  CCXXXXC         CCCCCCCC            CCCCCCC

                                 CCCCXXXXXXXXXXXXXXXXXXCCC                     CCCC

ZZZXZZZZZXXAAMMMAAAAAAAMMMM-+'.---''''''''''''''''''''---..''''++++=+++++'''.----.'++==++=+''.......''++=====++'''....''+====---MAAA
                           CC+'...CCCCCCCCCCCCCCCCCCCC...''++++CCCCCCCCCC+++'....'+CCCCCCCC++'''''''++CCCCCCCCC+++''''++CCCCCCCC

                             C+'''BBBBBBBBBBBBBBBBBBBB'''++CCCC          CCC+''''+C        CC+++++++CC         CCC++++CC

                              CXXXHHHHHHHHHHHHHHHHHHHHXXXCC                 CXXXXC           CCCCCCC              CCCC

                               CCCXXXXXXXXXXXXXXXXXXXXCCC                    CCCC

ZZZZZZZZXXAAMMMMMMMMMMM-==+''.--'''''''''''''''''''''----.''''''''++++++++'.-----'+===+++++'.......''+++======++++'...'+=-==-----MAA
                       CCCC++'..CCCCCCCCCCCCCCCCCCCCC....'++++++++CCCCCCCC+'.....+CCCCCCCCC+'''''''++CCCCCCCCCCCCC+'''+CCCCCCCCCC

                           CC+''BBBBBBBBBBBBBBBBBBBBB''''+CCCCCCCC        C+'''''C         C+++++++CC             C+++C

                             CXXHHHHHHHHHHHHHHHHHHHHHXXXXC                 CXXXXX           CCCCCCC                CCC

                              CCXXXXXXXXXXXXXXXXXXXXXCCCC                   CCCCC

XXXXXZ1ZXXXAAAMMM-MM--++''.-----''''''''''''''''''''-----..''.'''''++=+++''--.--.+====++++''.......'++===--MM--===='.-.'=--------MAA
                 C  CCCC++'.....CCCCCCCCCCCCCCCCCCCC.....''++'+++++CCCCCC++..'..'CCCCCCCCC++'''''''+CCCCCCC  CCCCCC+'.'+CCCCCCCCC

                        CC+'''''BBBBBBBBBBBBBBBBBBBB'''''++CC+CCCCC      CC''+''+         CC+++++++C               C+'+C

                          CXXXXXHHHHHHHHHHHHHHHHHHHHXXXXXCC  C             XXCXXC           CCCCCCC                 CXC

                           CCCCCXXXXXXXXXXXXXXXXXXXXCCCCC                  CC CC                                     C

AAAAAXZXXAAAAAMM--===+'------'''''''''''''''''''''''-----......''..''++++'.-----.+===+++++'..--.....'+==---MMMM---+'.-.'=-MMMM--MMMA
                CCCCCC+......CCCCCCCCCCCCCCCCCCCCCCC.....''''''++''++CCCC+'.....'CCCCCCCCC+''..'''''+CCCCCC    CCCC+'.'+CC    CC

                      C''''''BBBBBBBBBBBBBBBBBBBBBBB'''''++++++CC++CC    C+'''''+         C++''+++++C              C+'+C

                       XXXXXXHHHHHHHHHHHHHHHHHHHHHHHXXXXXCCCCCC  CC       CXXXXXC          CCXXCCCCC                CXC

                       CCCCCCXXXXXXXXXXXXXXXXXXXXXXXCCCCC                  CCCCC             CC                      C

AMMMAAAAAAAMMMM-==+'''.--'''''''''''''''''''''''''''-----........--..'+=+'-----.'++==+++++''........'+=----MMMMMM-=+.--.+-MAAAMMAAAA
               CCCC+++'..CCCCCCCCCCCCCCCCCCCCCCCCCCC.....''''''''..''+CCC+.....'+CCCCCCCCC++''''''''+CCCCCC      CCC'..'CC

                   CCC+''BBBBBBBBBBBBBBBBBBBBBBBBBBB'''''++++++++''++C   C'''''+C         CC++++++++C               +''+

                      CXXHHHHHHHHHHHHHHHHHHHHHHHHHHHXXXXXCCCCCCCCXXCC     XXXXXC            CCCCCCCC                CXXC

                       CCXXXXXXXXXXXXXXXXXXXXXXXXXXXCCCCC        CC       CCCCC                                      CC

MMMMMMMAMAAMMM--+'.-------''''''''''''''''''''''''''-----....''.---...++'.----.'+++==+++++''''.....''+=----MMMMMMM-='.-.+-MAAMMAAAAA
              CCC+'.......CCCCCCCCCCCCCCCCCCCCCCCCCC.....''''++'...'''CC+'....'+CCCCCCCCCC++++'''''++CCCCCC       CC+'.'CC

                 C+'''''''BBBBBBBBBBBBBBBBBBBBBBBBBB'''''++++CC+'''+++  C+''''+C          CCCC+++++CC               C+'+

                  CXXXXXXXHHHHHHHHHHHHHHHHHHHHHHHHHHXXXXXCCCC  CXXXCCC   CXXXXC               CCCCC                  CXC

                   CCCCCCCXXXXXXXXXXXXXXXXXXXXXXXXXXCCCCC       CCC       CCCC                                        C

MMMMMMMMMMMMM-=+'.---'''----'''''''''''''''''''''''------..''''.------.''.---.'+++====++=++++''''.''+==----MAMMMMM--='..+-MMMMMMXXXX
             CCC+'...CCC....CCCCCCCCCCCCCCCCCCCCCCC......''++++'......'++'...'+CCCCCCCCCCCCCC++++'++CCCCCCC       CCC+''CC

                C+'''BBB''''BBBBBBBBBBBBBBBBBBBBBBB''''''++CCCC+''''''+CC+'''+C              CCCC+CC                 C++

                 CXXXHHHXXXXHHHHHHHHHHHHHHHHHHHHHHHXXXXXXCC    CXXXXXXC  CXXXC                   C                    CC

                  CCCXXXCCCCXXXXXXXXXXXXXXXXXXXXXXXCCCCCC       CCCCCC    CCC

----------=--=+'.--'''''''---'''''''''''''''''''''''----..''''.--------..---..'+++====++===+++++'''+==--MMMMAMMMM---=+''+=-MMMMMAXXX
CCCCCCCCCCCCCCC+'..CCCCCCC...CCCCCCCCCCCCCCCCCCCCCCC....''++++'........''...''+CCCCCCCCCCCCCCCCC+++CCCCC         CCCCC++CCC

               C+''BBBBBBB'''BBBBBBBBBBBBBBBBBBBBBBB''''++CCCC+''''''''++'''++C                 CCC                   CC

                CXXHHHHHHHXXXHHHHHHHHHHHHHHHHHHHHHHHXXXXCC    CXXXXXXXXCCXXXCC

                 CCXXXXXXXCCCXXXXXXXXXXXXXXXXXXXXXXXCCCC       CCCCCCCC  CCC

=-------==+'++'.--''''''''''''''''''''''''''''''''''---...'''.--------------.''+++===+++======+++''+====--MMMMMMMMMM-=+++=---MMAAXXZ
CCCCCCCCCCC+CC+'..CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC...'''+++'..............'++CCCCCCCCCCCCCCCCCC++CCCCCCC          CCCCCCCCC

           C  C+''BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB'''+++CCC+''''''''''''''+CC                  CC

               CXXHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHXXXCCC   CXXXXXXXXXXXXXXC

                CCXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXCCC       CCCCCCCCCCCCCC

==+======+..------''''''''''''''''''''''''''''''''''--..''''.-----''''------.'+++++==+++==++==++++'+++==+=----MMMAAAMM-===----MAXXXX
CCCCCCCCCC''......CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC..''++++'.....CCCC......'+CCCCCCCCCCCCCCCCCCCC+CCCCCCCCCCC        CCCCCCCC

          ++''''''BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB''++CCCC+'''''BBBB''''''+C                    C

          CCXXXXXXHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHXXCC    CXXXXXHHHHXXXXXXC

            CCCCCCXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXCC       CCCCCXXXXCCCCCC

++''+++++'-------'''''''''''''''''''''''''''''''''''--..'''..----''''-------''++++++======+++=++++++'+++++-----MAAAAAMMM----==MAXZZZ
CC++CCCCC+.......CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC..''+++''....CCCC.......++CCCCCCCCCCCCCCCCCCCCCC+CCCCCCCCCC         CCCCCC

  CC     C'''''''BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB''++CCC++''''BBBB'''''''CC                      C

          XXXXXXXHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHXXCC   CCXXXXHHHHXXXXXXX

          CCCCCCCXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXCC       CCCCXXXXCCCCCCC

+''.....'.------''''''''''''''''''''''''''''''''''''---.'''.----''''--------.''++++==+====+====+++++++++'+=---MMAAAAMAAM------MXXZZZ
C++'''''+'......CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC...'+++'....CCCC........'++CCCCCCCCCCCCCCCCCCCCCCCCC+CCCCC          CCCCCC

 CC+++++C+''''''BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB'''+CCC+''''BBBB''''''''+CC                         C

   CCCCC CXXXXXXHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHXXXC   CXXXXHHHHXXXXXXXXC

          CCCCCCXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXCCC     CCCCXXXXCCCCCCCC

''..----.-------''''''''''''''''''''''''''''''''''''---.''.----''''---------.''+++==++==-=====++++++++''..'+==MAXXXAAAMM--==--MAXZZZ
++''....'.......CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC...'++'....CCCC.........'++CCCCCCCCCCCCCCCCCCCCCCC++''+CCC          CCCCCC

CC++''''+'''''''BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB'''+CC+''''BBBB'''''''''+CC                       CC++C

  CCXXXXCXXXXXXXHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHXXXC  CXXXXHHHHXXXXXXXXXC                           CC

    CCCC CCCCCCCXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXCCC    CCCCXXXXCCCCCCCCC

....----------'''''''---'''''''-----''''''''''''''''---...---''''''---------..'+++==++==---===++++''.''.---.'=MAXXXAAAM-=++==MAXXZZZ
''''..........CCCCCCC...CCCCCCC.....CCCCCCCCCCCCCCCC...'''...CCCCCC.........''+CCCCCCCCCCCCCCCCCCC++'++'...'+C         CCCCCC

++++''''''''''BBBBBBB'''BBBBBBB'''''BBBBBBBBBBBBBBBB'''+++'''BBBBBB'''''''''++C                   CC+CC+'''+C

CCCCXXXXXXXXXXHHHHHHHXXXHHHHHHHXXXXXHHHHHHHHHHHHHHHHXXXCCCXXXHHHHHHXXXXXXXXXCC                      C  CXXXC

    CCCCCCCCCCXXXXXXXCCCXXXXXXXCCCCCXXXXXXXXXXXXXXXXCCC   CCCXXXXXXCCCCCCCCC                            CCC

....--------''''''------------------------''''''''''----..--''''''----''----..''+======--M--=++''''.--------.+-AAAAXAAM-=+''=-AXZZZZ
''''........CCCCCC........................CCCCCCCCCC....''..CCCCCC....CC....''++CCCCCCCCC CCCCC++++'........'CC        CCC++CC

++++''''''''BBBBBB''''''''''''''''''''''''BBBBBBBBBB''''++''BBBBBB''''BB''''++CC               CCCC+''''''''+             CC

CCCCXXXXXXXXHHHHHHXXXXXXXXXXXXXXXXXXXXXXXXHHHHHHHHHHXXXXCCXXHHHHHHXXXXHHXXXXCC                     CXXXXXXXXC

    CCCCCCCCXXXXXXCCCCCCCCCCCCCCCCCCCCCCCCXXXXXXXXXXCCCC  CCXXXXXXCCCCXXCCCC                        CCCCCCCC

.....------''''''---------------------------'''''''''------'''''-----'''-----.'++==--------=++'....--------.'=-MAMMAAM--='..+-MAXZZZ
'''''......CCCCCC...........................CCCCCCCCC......CCCCC.....CCC.....'+CCCCCCCCCCCCCCC+''''........'+CC       CCC+''CC

+++++''''''BBBBBB'''''''''''''''''''''''''''BBBBBBBBB''''''BBBBB'''''BBB'''''+C               C++++''''''''+C            C++

CCCCCXXXXXXHHHHHHXXXXXXXXXXXXXXXXXXXXXXXXXXXHHHHHHHHHXXXXXXHHHHHXXXXXHHHXXXXXC                 CCCCXXXXXXXXC              CC

     CCCCCCXXXXXXCCCCCCCCCCCCCCCCCCCCCCCCCCCXXXXXXXXXCCCCCCXXXXXCCCCCXXXCCCCC                      CCCCCCCC

.....-------'''--------------------------------''''''------''''------''''---..'+==--------=+'''.----------'+==-MM---M-===+'.'=MAAXXX
'''''.......CCC................................CCCCCC......CCCC......CCCC...''+CCCCCCCCCCCCC+++'..........+CCCC  CCC CCCCC+'+C

+++++'''''''BBB''''''''''''''''''''''''''''''''BBBBBB''''''BBBB''''''BBBB'''++C             CCC+''''''''''C               C+C

CCCCCXXXXXXXHHHXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXHHHHHHXXXXXXHHHHXXXXXXHHHHXXXCC                 CXXXXXXXXXX                 C

     CCCCCCCXXXCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCXXXXXXCCCCCCXXXXCCCCCCXXXXCCC                    CCCCCCCCCC

''..-------------------------------......------------------''''------''''---'''+==-------=+....---------.'+=-==---=======+'''=MAAAAA
++''...............................''''''..................CCCC......CCCC...+++CCCCCCCCCCCC''''.........'+CCCCCCCCCCCCCCCC+++C

CC++'''''''''''''''''''''''''''''''++++++''''''''''''''''''BBBB''''''BBBB'''CCC            ++++'''''''''+C                CCC

  CCXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXCCCCCCXXXXXXXXXXXXXXXXXXHHHHXXXXXXHHHHXXX               CCCCXXXXXXXXXC

    CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC      CCCCCCCCCCCCCCCCCCXXXXCCCCCCXXXXCCC                   CCCCCCCCC

''.---------------...------...----.....''.----------------''''-------'''---.''''+===-MM-==+.-----------.''+=-=+=--==+++=++++=-MAAAMM
++'...............'''......'''....'''''++'................CCCC.......CCC...'++++CCCCC  CCCC'...........'++CCCCCCCCCCCCCCCCCCCC

CC+'''''''''''''''+++''''''+++''''+++++CC+''''''''''''''''BBBB'''''''BBB'''+CCCC           +'''''''''''+CC

  CXXXXXXXXXXXXXXXCCCXXXXXXCCCXXXXCCCCC  CXXXXXXXXXXXXXXXXHHHHXXXXXXXHHHXXXC               CXXXXXXXXXXXC

   CCCCCCCCCCCCCCC   CCCCCC   CCCC        CCCCCCCCCCCCCCCCXXXXCCCCCCCXXXCCC                 CCCCCCCCCCC

''.--------------...'.----.....-----..''''.-----.--------''''--..---''''---.....'+++-MM-=+'.------'''--.'++==++===++'''''''+=-MAAMM-
++'..............'''+'....'''''.....''++++'.....'........CCCC..''...CCCC...'''''+CCCC  CCC+'......CCC..'+CCCCCCCCCCC+++++++CCC     C

CC+''''''''''''''+++C+''''+++++'''''++CCCC+'''''+''''''''BBBB''++'''BBBB'''+++++C         C+''''''BBB''+C           CCCCCCC

  CXXXXXXXXXXXXXXCCC CXXXXCCCCCXXXXXCC    CXXXXXCXXXXXXXXHHHHXXCCXXXHHHHXXXCCCCC           CXXXXXXHHHXXC

   CCCCCCCCCCCCCC     CCCC     CCCCC       CCCCC CCCCCCCCXXXXCC  CCCXXXXCCC                 CCCCCCXXXCC

'.----'---------..'''..-..........--.''''''.......-.----------...---''------..--..''+=-=+'.------''''--.++===+++++''..-....'+=MMM--=
+'....C.........''+++''.''''''''''..'++++++'''''''.'..........'''...CC......''..''++CCCCC+'......CCCC..'CCCCCCCCCC++''.''''+CC   CCC

C+''''B'''''''''++CCC++'++++++++++''+CCCCCC+++++++'+''''''''''+++'''BB''''''++''++CC     C+''''''BBBB''+          CC++'++++C

 CXXXXHXXXXXXXXXCC   CCXCCCCCCCCCCXXC      CCCCCCCXCXXXXXXXXXXCCCXXXHHXXXXXXCCXXCC        CXXXXXXHHHHXXC            CCXCCCC

  CCCCXCCCCCCCCC       C          CC              C CCCCCCCCCC   CCCXXCCCCCC  CC           CCCCCCXXXXCC               C

'.---''--------.''++'.--.....''''.-..'++''''''..........------....---------...---..''++'.--------''''--.'+==++++'.--------.'+==-==++
+'...CC........'++CC+'..'''''++++'.''+CC++++++''''''''''......''''.........'''...''++CC+'........CCCC..'+CCCCCCC+'........'+CCCCCCCC

C+'''BB''''''''+CC  C+''+++++CCCC+'++C  CCCCCC++++++++++''''''++++'''''''''+++'''++CC  C+''''''''BBBB''+C       C+''''''''+C

 CXXXHHXXXXXXXXC     CXXCCCCC    CXCC         CCCCCCCCCCXXXXXXCCCCXXXXXXXXXCCCXXXCC     CXXXXXXXXHHHHXXC         CXXXXXXXXC

  CCCXXCCCCCCCC       CC          C                     CCCCCC    CCCCCCCCC   CCC        CCCCCCCCXXXXCC           CCCCCCCC

.-----------...''+++'.--...''+++'....''''''+'''...''''''.------....--------....---..'''.----------'----.'+=++''.---------.''++==++++
'...........'''++CCC+'..'''++CCC+''''++++++C+++'''++++++'......''''........''''...''+++'..........C....'+CCCC++'.........'++CCCCCCCC

+'''''''''''+++CC   C+''+++CC   C++++CCCCCC CCC+++CCCCCC+''''''++++''''''''++++'''++CCC+''''''''''B''''+C    CC+'''''''''+CC

CXXXXXXXXXXXCCC      CXXCCC      CCCC          CCC      CXXXXXXCCCCXXXXXXXXCCCCXXXCC   CXXXXXXXXXXHXXXXC       CXXXXXXXXXC

 CCCCCCCCCCC          CC                                 CCCCCC    CCCCCCCC    CCC      CCCCCCCCCCXCCCC         CCCCCCCCC

----------.''++++==+'....''++++''....'''''+++''..''++++'.-----......---------------....---'--..---------.'++'..---------.'''+++++'''
..........'++CCCCCCC+''''++CCCC++''''+++++CCC++''++CCCC+'.....''''''...............''''...C..''.........'+CC+''.........'+++CCCCC+++

''''''''''+CC       C++++CC    CC++++CCCCC   CC++CC    C+'''''++++++'''''''''''''''++++'''B''++'''''''''+C  C++'''''''''+CCC     CCC

XXXXXXXXXXC          CCCC        CCCC          CC       CXXXXXCCCCCCXXXXXXXXXXXXXXXCCCCXXXHXXCCXXXXXXXXXC    CCXXXXXXXXXC

CCCCCCCCCC                                               CCCCC      CCCCCCCCCCCCCCC    CCCXCC  CCCCCCCCC       CCCCCCCCC

---.....''+++=====-==+''''''++'''..''+++++==++'''++++++'.--.....'''''.-...----------..------''.---------.'''...-------...'''''''''''
...'''''++CCCCCCCCCCCC++++++CC+++''++CCCCCCCCC+++CCCCCC+'..'''''+++++'.'''..........''......++'.........'+++'''.......'''+++++++++++

'''+++++CC            CCCCCC  CCC++CC         CCC      C+''+++++CCCCC+'+++''''''''''++''''''CC+'''''''''+CCC+++'''''''+++CCCCCCCCCCC

XXXCCCCC                         CC                     CXXCCCCC     CXCCCXXXXXXXXXXCCXXXXXX  CXXXXXXXXXC   CCCXXXXXXXCCC

CCC                                                      CC           C   CCCCCCCCCC  CCCCCC   CCCCCCCCC       CCCCCCC

--.''+++++===-=------=+''''''''''..'++=====+'''+++=++++'........''+++....-----------...---.'+'------..--..'......-................''
..'++CCCCCCCCCCCCCCCCCC++++++++++''+CCCCCCCC+++CCCCCCCC+''''''''++CCC''''...........'''...'+C+......''..''+''''''.''''''''''''''''++

''+CC                  CCCCCCCCCC++C        CCC        C++++++++CC   ++++'''''''''''+++'''+C C''''''++''++C++++++'++++++++++++++++CC

XXC                              CC                     CCCCCCCC     CCCCXXXXXXXXXXXCCCXXXC   XXXXXXCCXXCC CCCCCCXCCCCCCCCCCCCCCCC

CC                                                                       CCCCCCCCCCC   CCC    CCCCCC  CC         C

...'+====+==--=------=='''''''+''''+++===++''''+++++++'''...--..'+===+'..---..--...'+++'..'++'.--.-.......'''''''...''''.-.........'
'''+CCCCCCCCCCCCCCCCCCC+++++++C++++CCCCCCCC++++CCCCCCC+++'''..''+CCCCC+''...''..'''+CCC+''+CC+'..'.'''''''+++++++'''++++'.'''''''''+

+++C                   CCCCCCC CCCC        CCCC       CCC+++''++C     C++'''++''+++C   C++C  C+''+'+++++++CCCCCCC+++CCCC+'+++++++++C

CCC                                                      CCCXXCC       CCXXXCCXXCCC     CC    CXXCXCCCCCCC       CCC    CXCCCCCCCCC

                                                            CC           CCC  CC               CC C                      C

+''++==++'+==-=----====+++'''++++++==+=++''''+++=+++++'''''.--..'+===+'''..--.-..''+===+''+++'........-...'++++++''''+++....'''''.'+
C++CCCCCC+CCCCCCCCCCCCCCCC+++CCCCCCCCCCCC++++CCCCCCCCC+++++'..''+CCCCC+++''..'.''++CCCCC++CCC+''''''''.'''+CCCCCC++++CCC''''+++++'+C

 CC      C                CCC            CCCC         CCCCC+''++C     CCC++''+'++CC     CC   C++++++++'+++C      CCCC   ++++CCCCC+C

                                                           CXXCC         CCXXCXCC             CCCCCCCCXCCC              CCCC     C

                                                            CC             CC C                       C

-=++=+'.''+=====--=-======++++=====--=+++''+++====+++++++++'...'+++===+++''.....''+==-=+++++++'''+'''.....'+++++++++++=+''''+===++++
CCCCCC+'++CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC++CCCCCCCCCCCCCCCC+'''+CCCCCCCCC++'''''++CCCCCCCCCCCC+++C+++'''''+CCCCCCCCCCCCC++++CCCCCCCC

      C+CC                               CC                C+++C         CC+++++CC            CCC CCC+++++C             CCCC

       C                                                    CCC            CCCCC                     CCCCC

-=+++'..''++++==------==========-----=++++++++++==+++======+++++++++======+'''''++==-==+++++++'''++++''''''+++'+++++++==++++========
CCCCC+''++CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC+++++CCCCCCCCCCCCCC+++CCCC++++++CCC+CCCCCCCCCCCCCCCCCCCCC

     C++CC                                                                 CCCCC              CCC    CCCCCC   C

      CC

=+++'.'++'+++==---MMMM-==---===------=+++++++''+++====+========+++++========+++++=====++'++++'''''++==+++'''''''+++++++====-=====---
CCCC+'+CC+CCCCCCCC    CCCCCCCCCCCCCCCCCCCCCCC++CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC+CCCC+++++CCCCCCC+++++++CCCCCCCCCCCCCCCCCCCC

    C+C  C                                   CC                                         C    CCCCC       CCCCCCC

     C

+++''.'+++====---MMMMM-=--==+++=-----=++++'+''''++===+++++++==++''++=========++++====+'''''''....'++====+''''''''''''++====-========
CCC++'+CCCCCCCCCC     CCCCCCCCCCCCCCCCCCCC+C++++CCCCCCCCCCCCCCCC++CCCCCCCCCCCCCCCCCCCC+++++++''''+CCCCCCC++++++++++++CCCCCCCCCCCCCCC

   CC+C                                   C CCCC                CC                    CCCCCCC++++C       CCCCCCCCCCCC

     C                                                                                       CCCC

+==+''++======-MMMMMM-=====++'+====-==++=+'++++++++==+++''''+++'''+===+++=+==+++====++'''''''....'+++===+'''''''''''''++============
CCCC++CCCCCCCCC      CCCCCCCC+CCCCCCCCCCCC+CCCCCCCCCCCCC++++CCC+++CCCCCCCCCCCCCCCCCCCC+++++++''''+CCCCCCC+++++++++++++CCCCCCCCCCCCCC

    CC                       C            C             CCCC   CCC                    CCCCCCC++++C       CCCCCCCCCCCCC

                                                                                             CCCC

=--========+=--MM----==++=+'.'++=========++++===++++==++''''+++'+++===++++++++++====+'++++++''..'''++++++++''''''''''+++++====+++===
CCCCCCCCCCCCCCC  CCCCCCCCCC+'+CCCCCCCCCCCCCCCCCCCCCCCCCC++++CCC+CCCCCCCCCCCCCCCCCCCCC+CCCCCC++''+++CCCCCCCC++++++++++CCCCCCCCCCCCCCC

                           C+C                          CCCC   C                     C      CC++CCC        CCCCCCCCCC

                            C                                                                 CC

=---M--======-----======+=+'..'+++++=====++++==++++++=++''''+========+'''++++++====+''++++++++'''''''+++++++++++++++++++++++==++====
CCCC CCCCCCCCCCCCCCCCCCCCCC+''+CCCCCCCCCCCCCCCCCCCCCCCCC++++CCCCCCCCCC+++CCCCCCCCCCC++CCCCCCCC+++++++CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC

                           C++C                         CCCC          CCC           CC        CCCCCCC

                            CC

=-MMMM-----=--===-======+=+''''+++++======++===++'''''''''''+=======++'''+++====--=+''+=====++'''''''+++=============++++++=========
CC    CCCCCCCCCCCCCCCCCCCCC++++CCCCCCCCCCCCCCCCCC+++++++++++CCCCCCCCCC+++CCCCCCCCCCC++CCCCCCCC+++++++CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC

                           CCCC                  CCCCCCCCCCC          CCC           CC        CCCCCCC

-MMMMMM-------===-====+++==+++++======---======++'''.....'''++++++==+++++==========++++==+++'''''++++++========---====++==========++
C      CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC+++'''''+++CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC+++++CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC

                                                 CCC+++++CCC                                CCCCC

                                                    CCCCC

-MAAMMMM--------=-==++++==+++++=====----M---====+++''''..''''''++==================++++=++'''''++===========---------=======-====+++
C       CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC CCCCCCCCCC++++''++++++CCCCCCCCCCCCCCCCCCCCCCCCCCC+++++CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC

                                                   CCCC++CCCCCC                           CCCCC

                                                       CC

MMAAMMMMMM--------==+++===+++==-------MMMMM-----===++++''''''''+=--==========+==+++++++++'''''++====---=====------------===---===+++
          CCCCCCCCCCCCCCCCCCCCCCCCCCCC     CCCCCCCCCCCC++++++++CCCCCCCCCCCCCCCCCCCCCCCCCC+++++CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC

                                                       CCCCCCCC                          CCCCC