--   ---
XIA+AAAAX--1IIA=AI=+==+ - 1 ---      -1--   -- -             -1   --     +++ 1IA++I+      1   ++IXA++1+1 111 1 -1 11--1+1-1-1    ++=
         CC

-ZMZZZ-ZZ=MIAAIAAA+I+=+1- +-+I=++II-+X-ZA=1++=+       1++-1-IZ=X-AZZZXXAX IZXMMMM+A=A-X--Z-ZM===+=MMM-ZI11-+ IIIA=I===I=++II1+ - 1+I
C     C  C                            C                       C C                C   C CC C  CCCCC   C

++=+===MM""-M--X-MM--ZZXXAZ----XX-Z-ZAXMZZ-ZXXAXA=IIIXXZZAXZI-MM=-+""==MXMM-=++=="+ZM-Z=""""""+=+MM=----ZA==+IAAIIAAAXXXIAAI+++++-1
CCCCCCC  ++C CC C  CC      CCCC  C C      C                  C  CCC++CC    C CCCC+C  C C++++++CCC  CCCCC

         CC                                                        CC            C      CCCCCC

+++==M=M=""-MM------Z-XXZXZ-XXAAIXXXXXZ-ZZZXXXAAXAAAAAX--ZM=Z=+++M=="+=+-A+=I+++="""""+Z++"""""+"""+""-"-"M-IAAXAIIAAXI=IAII+=11--+-
CCCCC C C++C  CCCCCC C     C           C               CC  C CCCC CC+CCCC CC CCCC+++++C CC+++++C+++C++.+.+ C

         CC                                                         C            CCCCC    CCCCC CCC CC'C'C

                                                                                                      X X

                                                                                                      C C

++==MMMM=""MMM----M-Z---ZZZZ-ZZZZZZZZXZ-Z-ZZXXZZZZXAZXZM==+"=++"---"-=++-=+=M"++----""++""""""++"-"+----""++ZZAAXAAAXXXIIA=I=AAAA+1
CCCC    C++   CCCC C CCC    C          C C              CCC+CCC+...+.CCCC CC +CC....++CC++++++CC+.+C....++CC

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

                                                                XXX X           XXXX             X  XXXX

                                                                CCC C           CCCC             C  CCCC

++===+===-"MMMMM=M--Z--M-ZZM--M-Z-----ZZZ-ZZ-ZZZX--ZZA-+"+"+==+"++"""===--="M=++------"---"-"-""""-""------+"+XXXXIAAAAZXI++I++  1==
CCCCCCCCC.+     C CC CC C   CC C CCCCC   C  C    CC   CC+C+CCCC+CC+++CCCCCC+ CCC......+...+.+.++++.++......C+C

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

         X                                                                      XXXXXX XXX X X    X  XXXXXX

         C                                                                      CCCCCC CCC C C    C  CCCCCC

+++==+=M=-"M==MM=M-----Z--X----ZZZ-Z-ZZZM-Z--ZZZ-Z--M="-""--"""""-"--M+=M-==+==+-------"-"""-"""--"+"-"----"+=MZZAAAXAXXZIIIIIAAAA==
CCCCCCC C.+ CC  C CCCCC CC CCCC   C C    C CC   C CC C+.++..+++++.+.. CC CCCCCCC.......+.+++.+++..+C+.+....+CC

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

         X                                             X  XX     X XX           XXXXXXX X   X   XX   X XXXX

         C                                             C  CC     C CC           CCCCCCC C   C   CC   C CCCC

+==-IZM==-XMI-XAX1ZX==X=X-A--ZZZ-XZZ--ZZM-----Z---ZM++++"""""""""----+++MM==++==--"-+--"----"""""---"------""=ZMZAXAAAXXAIIAIIAXII=I
CCCC    C.   C             CC   C   CC   CCCCC CCC  CCCC+++++++++....CCC  CCCCCC..+.C..+....+++++...+......++C

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

         X                                                       XXXX           XX X XX XXXX     XXX XXXXXX

         C                                                       CCCC           CC C CC CCCC     CCC CCCCCC

+-=   M =- -=A AZ Z     Z -ZM--ZZXZZ--Z--M-MMM--AZXMM+""----""--"""-+++===+Z===M--"-"+-------"-"+""--"-------"+=+XXXXAZZI=IAAIIXI1II
CC      C. C                 CC     CC CC C   CC     C++....++..+++.CCCCCCC CCC ..+.+C.......+.+C++..+.......+CCC

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

         X                                              XXXX  XX   X            XX X  XXXXXXX X    XX XXXXXXX

         C                                              CCCC  CC   C            CC C  CCCCCCC C    CC CCCCCCC

+Z   ZZ=+"-Z==XIM-Z     Z IZMZZ-MZZZZ-ZZ-MMM-==-==M++"+---------"""""+====MX""---""""""-"----""-"""+"----------=MMAXXAZZIIXAAI=II===
C       C+C                    C     C  C   CCCCCC CC+C.........+++++CCCCC  ++...++++++.+....++.+++C+..........C

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

                                                       XXXXXXXXX              XXX      X XXXX  X     XXXXXXXXXX

                                                       CCCCCCCCC              CCC      C CCCC  C     CCCCCCCCCC

+X+=- Z =- Z =MXM XI  I A=+-MM-----Z-MZ-M==MM=""+==+""----""-----"-"""=-"-""-"---"----""-"-----"-"--"-----"-"--"==ZZXX-XIIAXXXAIII==
C       C.                 C  CCCCC C  C CC  C++CCCC++....++.....+.+++C.+.++.+...+....++.+.....+.+..+.....+.+..+CC    C

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

         X                                            XXXX  XXXXX X    X X  X XXX XXXX  X XXXXX X XX XXXXX X XX

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

+-X=+=MM=-+M=MM===M-ZZZ--MZZ-M-M-MM---MMM===M+"+++""--"---"+-"--"----"--"=""-"""""-""""--"""""""-----""----""""-"MMZXZZAIXXXXXAAAXAI
CC CCC  C.C C  CCC C   CC   C C C  CCC   CCC C+CCC++..+...+C.+..+....+..+C++.+++++.++++..+++++++.....++....++++.+

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

         X                                          XX XXX  X XX XXXX XX    X     X    XX       XXXXX  XXXX    X

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

+- ===+==-+-=MM==M=MMM---MZ---MM-Z-MM-MMM+==="=="------"--""-="----------""="""------"--"-""+""----""-"-------"+-M=XXZZXAXXXXAAXAAAA
CC CCCCCC.CCC  CC C   CCC  CCC  C C  C   CCCC+CC+......+..++.C+..........++C+++......+..+.++C++....++.+.......+C. C

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

         X                                       XXXXXX XX  X  XXXXXXXXXX      XXXXXX XX X     XXXX  X XXXXXXX  X

         C                                       CCCCCC CC  C  CCCCCCCCCC      CCCCCC CC C     CCCC  C CCCCCCC  C

+A==+==M+""MMMM===MMMMMM--Z-M-M=--M---MMM==+""="-"""+"--""-=+=+"-""---""+""+"-----"----=-"--""""----"-"--""-"-"+"-=XZ-ZAXZXXXAAAAAAX
C CCCCC C++    CCC      CC C C CCC CCC   CCC++C+.+++C+..++.CCCC+.++...++C++C+.....+....C.+..++++....+.+..++.+.+C+CC  C

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

                                                X     XX  X     X  XXX       XXXXX XXXX X XX    XXXX X XX  X X

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

+- +"=+=+-"MMM====M=M-M-------M=MMMMMMMMM+="+=""""""""-----"""----"-----"""+------"""""+----"-""-"-------"""--+"-=-XZ-ZAXXXXAAAAAAIX
CC C+CCCC.+   CCCC C C CCCCCCC C         CC+CC++++++++.....+++....+.....+++C......+++++C....+.++.+.......+++..C+.CC  C

    C    'C                                C  CCCCCCCC'''''CCC''''C'''''CCC ''''''CCCCC ''''C'CC'C'''''''CCC'' C'

         X                                            XXXXX   XXXX XXXXX    XXXXXX      XXXX X  X XXXXXXX   XX  X

         C                                            CCCCC   CCCC CCCCC    CCCCCC      CCCC C  C CCCCCCC   CC  C

+MI=+++=+-"M======M==MMM-MM--MMM--MMMMMMM++"+"---"""""-""--"""----"--"---"""----""""""""-"----""------""-""---+"++ZXZZZAXXXAAAAAXXXX
C  CCCCCC.+ CCCCCC CC   C  CC   CC       CC+C+...+++++.++..+++....+..+...+++....++++++++.+....++......++.++...C+CC

         'C                                C C'''CCCCC'CC''CCC''''C''C'''CCC''''CCCCCCCC'C''''CC''''''CC'CC''' C

         X                                    XXX     X  XX   XXXX XX XXX   XXXX        X XXXX  XXXXXX  X  XXX

         C                                    CCC     C  CC   CCCC CC CCC   CCCC        C CCCC  CCCCCC  C  CCC

++ =+"+++-"==MM=======MMM=M-MMMMMMMM=MM=-+""------"-----"---"------""----""""---""""""-"""---""--------------"""==ZZZZXAAXZXAXAZAXZZ
C  CC+CCC.+CC  CCCCCCC   C C        C  CCC++......+.....+...+......++....++++...++++++.+++...++..............+++CC

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

         X                                  XXXXXX XXXXX XXX XXXXXX  XXXX    XXX      X   XXX  XXXXXXXXXXXXXX

         C                                  CCCCCC CCCCC CCC CCCCCC  CCCC    CCC      C   CCC  CCCCCCCCCCCCCC

"- ++""++-"M====M=MM=M-MMMMZZ-MM-MMMM===="---"--"--""""-"------"---"="""""""--"""+""""-""---"""""""---"-""--""-++Z---ZAXZXXAXAXAXZZZ
+  CC++CC.+ CCCC C  C C      C  C    CCCC+...+..+..++++.+......+...+C+++++++..+++C++++.++...+++++++...+.++..++.CC CCC

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

         X                                XXX XX XX    X XXXXXX XXX         XX        X  XXX       XXX X  XX  X

         C                                CCC CC CC    C CCCCCC CCC         CC        C  CCC       CCC C  CC  C

+I =++++"-"=========MMMM--M--M=MMMMMMM==="---------------"--------"-----""---"""-""""""""-"---"""-"""----"----"+----ZXXXAXXXXXZXZZXZ
C  CCCCC+.+CCCCCCCCC    CC CC C       CCC+...............+........+.....++...+++.++++++++.+...+++.+++....+....+CCCCC

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

         X                                XXXXXXXXXXXXXXX XXXXXXXX XXXXX  XXX   X        X XXX   X   XXXX XXXX

         C                                CCCCCCCCCCCCCCC CCCCCCCC CCCCC  CCC   C        C CCC   C   CCCC CCCC

+I =+++++-"========MMMMM------MMMMMM==M+""---------""-"--"------"-"---"------""""----"-"""---"----"""----"----+MM---ZAXZXZXXXAXX-ZZZ
C  CCCCCC.+CCCCCCCC     CCCCCC      CC C++.........++.+..+......+.+...+......++++....+.+++...+....+++....+....C  CCC            C

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

         X                                XXXXXXXXX  X XX XXXXXX X XXX XXXXXX    XXXX X   XXX XXXX   XXXX XXXX

         C                                CCCCCCCCC  C CC CCCCCC C CCC CCCCCC    CCCC C   CCC CCCC   CCCC CCCC

=  ==++++-+======M===M=MMM----MMMMM===M+"-"---"-----"----"--"-------"""---"------------+-"---"--"--"------"--"+MMMM-ZAAXZXXXXAIXXXZZ
C  CCCCCC.CCCCCCC CCC C   CCCC     CCC C+.+...+.....+....+..+.......+++...+............C.+...+..+..+......+..+C    C

         '                              C'C'''C'''''C''''C''C'''''''CCC'''C'''''''''''' 'C'''C''C''C''''''C''C

         X                               X XXX XXXXX XXXX XX XXXXXXX   XXX XXXXXXXXXXXX X XXX XX XX XXXXXX XX

         C                               C CCC CCCCC CCCC CC CCCCCCC   CCC CCCCCCCCCCCC C CCC CC CC CCCCCC CC

+===M==M"-+===M=M===-MM---M---MM-MM=+=M+"-"--"-----"----""-""-----"""-"---"---""-""-""--+"-=""-"""--"------"--"MMM-ZXAXXZAAXXAX-XZXZ
CCCC CC +.CCCC C CCCC  CCC CCC  C  CCC C+.+..+.....+....++.++.....+++.+...+...++.++.++..C+.C++.+++..+......+..+   C            C

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

         X                               X XX XXXXX XXXX  X  XXXXX   X XXX XXX  X  X  XX  X   X   XX XXXXXX XX

         C                               C CC CCCCC CCCC  C  CCCCC   C CCC CCC  C  C  CC  C   C   CC CCCCCC CC

+==+==+=+-"=+++=====MMM-MM--M-MMZMMM==M+""----""-------------------"-"---"--------""---"-""---"""--""-"------""+=MMZXAZZXXXXXAZZXZZZ
C  CCCCCC.+CCCCCCCCC   C  CC C      CC C++....++...................+.+...+........++...+.++...+++..++.+......++CC

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

         X                                XXXX  XXXXXXXXXXXXXXXXXXX X XXX XXXXXXXX  XXX X  XXX   XX  X XXXXXX

         C                                CCCC  CCCCCCCCCCCCCCCCCCC C CCC CCCCCCCC  CCC C  CCC   CC  C CCCCCC

=XA+==+="-"==++=====MMMMMM-MM--=Z+=A-=M""""---""--------"---------""--"-----"-----"--"""-"-"-"""""-"""""-"-----"==-ZXXZZXXXZXZZXZZZZ
C  CCCCC+.+CCCCCCCCC      C  CCC    CC ++++...++........+.........++..+.....+.....+..+++.+.+.+++++.+++++.+.....+CCC

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

         X                                 XXX  XXXXXXXX XXXXXXXXX  XX XXXXX XXXXX XX   X X X     X     X XXXXX

         C                                 CCC  CCCCCCCC CCCCCCCCC  CC CCCCC CCCCC CC   C C C     C     C CCCCC

+ -+===="-"+=++===M==MM=MM-MM-MM=A -A==+"""""--------------------""------------"---"-+-"-"--""-"""-------------""=-ZXZZZZXZXZ-ZZ-ZZZ
C  CCCCC+.+CCCCCCC CC  C  C  C  C    CCC+++++....................++............+...+.C.+.+..++.+++.............++CC          C  C

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

         X                                   XXXXXXXXXXXXXXXXXXXX  XXXXXXXXXXXX XXX X X X XX  X   XXXXXXXXXXXXX

         C                                   CCCCCCCCCCCCCCCCCCCC  CCCCCCCCCCCC CCC C C C CC  C   CCCCCCCCCCCCC

=M1=+==M"-+===+===M==M==--ZMMZMMM=--+Z+=+"+"-"-----------------"+"---"-------------"""""-"""""""""--------------"+-ZXXZZZZZZZZZ-ZZZX
C  CCCC +.CCCCCCCC CC CCCC       C    CCC+C+.+.................+C+...+.............+++++.+++++++++..............+CC            C

        C'                               C C'C'''''''''''''''''C C'''C'''''''''''''CCCCC'CCCCCCCCC''''''''''''''C

         X                                  X XXXXXXXXXXXXXXXXX   XXX XXXXXXXXXXXXX     X         XXXXXXXXXXXXXX

         C                                  C CCCCCCCCCCCCCCCCC   CCC CCCCCCCCCCCCC     C         CCCCCCCCCCCCCC

=A++++=="-++++++==+===MMM-MMM-M=M===-XM""""------""----------"---------"-------------"-"""-----------------------"MZ--ZXZZZZ----ZZZZ
C  CCCCC+.CCCCCCCCCCCC   C   C C CC    ++++......++..........+.........+.............+.+++.......................+  CC      CCCC

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

         X                                 XXXXXX  XXXXXXXXXX XXXXXXXXX XXXXXXXXXXXXX X   XXXXXXXXXXXXXXXXXXXXXXX

         C                                 CCCCCC  CCCCCCCCCC CCCCCCCCC CCCCCCCCCCCCC C   CCCCCCCCCCCCCCCCCCCCCCC

= X+++==""++++=++===M=MMM-MMM-MMM==Z-=X""-"----"==+"---------"----"--"-----------------"----"--------"-----------+=-----XZX-ZZ--ZZZ-
C  CCCCC++CCCCCCCCCC C   C   C   CC    ++.+....+CCC+.........+....+..+.................+....+........+...........CCCCCCC   C  CC   C

        CC                             CC'C''''C   C'''''''''C''''C''C'''''''''''''''''C''''C''''''''C'''''''''''

                                         X XXXX     XXXXXXXXX XXXX XX XXXXXXXXXXXXXXXXX XXXX XXXXXXXX XXXXXXXXXXX

                                         C CCCC     CCCCCCCCC CCCC CC CCCCCCCCCCCCCCCCC CCCC CCCCCCCC CCCCCCCCCCC

+ A++++="-+++==++==+M=MMMZ---MM-M===11A+--------+""----------------------------------"-"----"---------"----------"+-----ZZZZZ---XZ--
C  CCCCC+.CCCCCCCCCC C    CCC  C CCC   C........C++..................................+.+....+.........+..........+CCCCCC     CCC  CC

        C'                              '''''''' CC''''''''''''''''''''''''''''''''''C'C''''C'''''''''C''''''''''C

         X                              XXXXXXXX   XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X XXXX XXXXXXXXX XXXXXXXXXX

         C                              CCCCCCCC   CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C CCCC CCCCCCCCC CCCCCCCCCC

=AA+++++"-+=+==+===MMMM------M-MMM+X+-I=-"--+I------""--"-------------------"---------"----"--"------------------"+=Z--ZZXZ-Z--ZZZ--
C  CCCCC+.CCCCCCCCC    CCCCCC C   C    C.+..C ......++..+...................+.........+....+..+..................+CC CC    C CC   CC

        C'                              'C''  ''''''CC''C'''''''''''''''''''C'''''''''C''''C''C''''''''''''''''''C

         X                              X XX  XXXXXX  XX XXXXXXXXXXXXXXXXXXX XXXXXXXXX XXXX XX XXXXXXXXXXXXXXXXXX

         C                              C CC  CCCCCC  CC CCCCCCCCCCCCCCCCCCC CCCCCCCCC CCCC CC CCCCCCCCCCCCCCCCCC

=+Z=++++"-+=+++++====M=MMMMMMMMM--=I-1=+-----+---------=-------------------"-------"-----------------------------"++MMZZZXZZZ-ZZZ-Z-
C  CCCCC+.CCCCCCCCCCC C         CCC    C.....C.........C...................+.......+.............................+CC         C   C C

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

         X                              XXXXX XXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXX

         C                              CCCCC CCCCCCCCC CCCCCCCCCCCCCCCCCCC CCCCCCC CCCCCCCCCCCCCCCCCCCCCCCCCCCCC

+MM=+++="-==+++++====MMM-MMMMMM---=+ -A"-----"--------------------------------------------------------------------"-M--ZZXZZZ-ZZZZZ-
C  CCCCC+.CCCCCCCCCCC   C      CCCC    +.....+....................................................................+C CC      C     C

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

         X                              XXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

         C                              CCCCC CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC

=MM+++=="-+++"+++=====MMMM-MMM=M-MM1 -Z"=------------------------------------------"------------------"-----------"=MM--ZZZZ--ZZ-Z-M
C  CCCCC+.CCC+CCCCCCCC    C   C C      +C..........................................+..................+...........+C  CC    CC  C C

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

         X                               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXX XXXXXXXXXXX

         C                               CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC CCCCCCCCCCCCCCCCCC CCCCCCCCCCC

+ +++++="-+++"++++++M=M==MM=MM=M-M-- 1M"=---------------""------+-----""""-------------""-------------------------"M=-X-ZZ-Z--Z--ZZ-
C CCCCCC+.CCC+CCCCCC C CC  C  C C C    +C...............++......C.....++++.............++.........................+ CC C  C CC CC  C

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

         X                               XXXXXXXXXXXXXXX  XXXXXX XXXXX    XXXXXXXXXXXXX  XXXXXXXXXXXXXXXXXXXXXXXXX

         C                               CCCCCCCCCCCCCCC  CCCCCC CCCCC    CCCCCCCCCCCCC  CCCCCCCCCCCCCCCCCCCCCCCCC

+X=++++="-==+"++++====M=MMMM-==MMMI  +-"------------------------"""--------------------"--------"-----------------++M--------ZZ--Z-M
C CCCCCC+.CCC+CCCCCCCC C    CCC       C+........................+++....................+........+.................CC CCCCCCCC  CC C

        C'   C                         C''''''''''''''''''''''''CCC''''''''''''''''''''C''''''''C'''''''''''''''''

         X                              XXXXXXXXXXXXXXXXXXXXXXXX   XXXXXXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXXXXXXXXXXX

         C                              CCCCCCCCCCCCCCCCCCCCCCCC   CCCCCCCCCCCCCCCCCCCC CCCCCCCC CCCCCCCCCCCCCCCCC

MI=++++="-==++++++====M=MM=MM==MMM-  =Z"------------"----""----"++="""----------------------"---"-----------------"+M-ZZZ-Z--ZZZZ---
  CCCCCC+.CCCCCCCCCCCC C  C  CC        +............+....++....+CCC+++......................+...+.................+C C   C CC    CCC

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

         X                              XXXXXXXXXXXX XXXX  XXXX       XXXXXXXXXXXXXXXXXXXXXX XXX XXXXXXXXXXXXXXXXX

         C                              CCCCCCCCCCCC CCCC  CCCC       CCCCCCCCCCCCCCCCCCCCCC CCC CCCCCCCCCCCCCCCCC

Z +=++++--=M=+++++==MMMMM==MMM==MM1 1IZ"-----------+"-----"----+=MZ="+--------------------"-----------------------""M-ZZ-Z-ZZZZZ-Z--
  CCCCCC..C CCCCCCCC     CC   CC       +...........C+.....+....CC  C+C....................+.......................++ C  C C     C CC

        ''                             C''''''''''' C'''''C''''     C ''''''''''''''''''''C'''''''''''''''''''''''CC

        XX                              XXXXXXXXXXX  XXXXX XXXX       XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXX

        CC                              CCCCCCCCCCC  CCCCC CCCC       CCCCCCCCCCCCCCCCCCCC CCCCCCCCCCCCCCCCCCCCCCC

Z ====+="-+=+++"+=+=========MM-==M+--=Z=""--------"---""---""-+ZZZAZ"=--++"""--------------------"----------------"+M-XZ-Z--ZZ-ZZ-ZX
  CCCCCC+.CCCCC+CCCCCCCCCCCC  CCC      C++........+...++...++.C     +C..CC+++....................+................+C C  C CC  C  C

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

         X                                XXXXXXXX XXX  XXX  X        XX     XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX

         C                                CCCCCCCC CCC  CCC  C        CC     CCCCCCCCCCCCCCCCCCCC CCCCCCCCCCCCCCCC

Z+++++=+"-++++++++====M====M==MM=M+--+XM"-"------------"---"""=XAIXAX++-+=+""---"---------------------------------"=--ZZ------ZZ-ZXZ
  CCCCCC+.CCCCCCCCCCCC CCCC CC  C       +.+............+...+++C      CC.CCC++...+.................................+CCC  CCCCCC  C

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

         X                               X XXXXXXXXXXXX XXX            X     XXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

         C                               C CCCCCCCCCCCC CCC            C     CCC CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC

MI+++++="-==++++++===MM========M=M+--+I-"------------"""---"--==AIAIAZ+--++"""--"------"-------------------------"==M--ZMM--Z-ZZZXXX
  CCCCCC+.CCCCCCCCCCC  CCCCCCCC C      C+............+++...+CCCC      C..CC+++..+......+.........................+CC CC   CC C

        C'                              C''''''''''''CCC'''C           ''  CCC''C''''''C'''''''''''''''''''''''''C

         X                               XXXXXXXXXXXX   XXX            XX     XX XXXXXX XXXXXXXXXXXXXXXXXXXXXXXXX

         C                               CCCCCCCCCCCC   CCC            CC     CC CCCCCC CCCCCCCCCCCCCCCCCCCCCCCCC

Z M+M=+="-=++="""+==MM==MM==M==M=M+--+IZ+---"--------"--""---IIA-XAA-+-----------------"-------------------------"=MM--Z---Z-ZZZXXXX
   C CCC+.CCCC+++CCC  CC  CC CC C       C...+........+..++..C   C   CC.................+.........................+C  CC CCC C

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

         X                               XXX XXXXXXXX XX  XX          XXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXX

         C                               CCC CCCCCCCC CC  CC          CCCCCCCCCCCCCCCCC CCCCCCCCCCCCCCCCCCCCCCCCC

A =++++=--=+++++++=====M=M=====M=I=1-1=Z+--"------------""""+A+++XZM=""""--+"--------"-"-------------------------"+M--ZZ-ZZXZ-ZZZXXX
  CCCCCC..CCCCCCCCCCCCC C CCCCC C       C..+............++++C       C++++..C+........+.+.........................+C CC  C    C

        ''                               ''C''''''''''''CCCC         CCCC'' C''''''''C'C'''''''''''''''''''''''''C

        XX                               XX XXXXXXXXXXXX                 XX  XXXXXXXX X XXXXXXXXXXXXXXXXXXXXXXXXX

        CC                               CC CCCCCCCCCCCC                 CC  CCCCCCCC C CCCCCCCCCCCCCCCCCCCCCCCCC

Z +"+=++--+++++"+"++=M===-M==M=M=++1 -1X+""-"----------"--"-"-=1+=IZZZZ-MM"""---------------------------------"--+=MZ--Z-Z-Z-Z-ZXXXX
  C+CCCC..CCCCC+C+CCC CCCC CC C C       C++.+..........+..+.+C         C  +++.................................+..CC  CC C C C C

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

        XX                                 X XXXXXXXXXX XX X                 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XX

        CC                                 C CCCCCCCCCC CC C                 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC CC

- +"+++=--++++++"+==MMM=MM===M+=A==1 -=Z="------------+""-X"--Z11+IXXXZ=+""""+"""--------------------------------+MM-----MZ--Z-XXXXX
C C+CCCC..CCCCCC+CCC   C  CCC CC        C+............C++. +..         CC++++C+++................................C  CCCCC  CC C

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

        XX                                XXXXXXXXXXXX   X  XX                   XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

        CC                                CCCCCCCCCCCC   C  CC                   CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC

--++"++=--++++++++=M==M=MM===+MI==+--+AM+"""--"------"+++-ZM--"  =XZZX"++I---""-++"-----------------------------"+M-Z-Z-Z-Z---ZXXZZZ
C CC+CCC..CCCCCCCCC CC C  CCCC          C+++..+......+CCC.  ..+       +C  ...++.CC+.............................+C C C C C CCC

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

        XX                                  XX XXXXXX    X  XX            XXX  X   XXXXXXXXXXXXXXXXXXXXXXXXXXXXX

        CC                                  CC CCCCCC    C  CC            CCC  C   CCCCCCCCCCCCCCCCCCCCCCCCCCCCC

ZX""+""+-"=+=++==MM======M====++++1-IX-M="""-----""---+=X"--+-A -AXAIMX- Z------"=+"----------------------------"=M--XX-------ZZZM-M
  ++C++C.+CCCCCCC  CCCCCC CCCC        C C+++.....++...CC +..CC            ......+CC+............................+C CC  CCCCCCC    C

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

        X                                   XXXXX  XXX    XX              XXXXXX    XXXXXXXXXXXXXXXXXXXXXXXXXXXX

        C                                   CCCCC  CCC    CC              CCCCCC    CCCCCCCCCCCCCCCCCCCCCCCCCCCC

"+"""+"+--=+==++++="+=========1+11=A--Z-=+""-""""+++---"IAIAII- 1IAAI1=I++"=+"++++""---------------------------"==---Z----Z---ZZ---M
+C+++C+C..CCCCCCCCC+CCCCCCCCC       CC CCC++.++++CCC...+                  +CC+CCCC++...........................+CCCCC CCCC CCC  CCC

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

        XX                                  X       XXX                             XXXXXXXXXXXXXXXXXXXXXXXXXXX

        CC                                  C       CCC                             CCCCCCCCCCCCCCCCCCCCCCCCCCC

"+++"+++--+++++""+++++==+=+MA1111=ZMM-AXM+""-""+++++"--=+1+++1  +AIA=-1AZ-=-MZXXX-=++"-------------+-----------"=M--ZZ-Z-Z--------MM
+CCC+CCC..CCCCC++CCCCCCCCCC          C   C++.++CCCCC+..C                 CCC     CCCC+.............C...........+C CC  C C CCCCCCCC

C   C   ''     CC                         CC'CC     C''                              C''''''''''''' '''''''''''C

        XX                                  X        XX                               XXXXXXXXXXXXX XXXXXXXXXXX

        CC                                  C        CC                               CCCCCCCCCCCCC CCCCCCCCCCC

"++""+++-"=+"++"""+"+++++++I+++==X-MMZZM+++""+====++"--X---11  -=AIA+- 11+=+===IAXXM="-------------"----------""+MM-ZZ-Z-Z---MZZ-MMM
+CC++CCC.+CC+CC+++C+CCCCCCC       C     CCC++CCCCCCC+..                             C+.............+..........++C  C  C C CCC   C

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

        X                                            XX                               XXXXXXXXXXXXX XXXXXXXXXX

        C                                            CC                               CCCCCCCCCCCCC CCCCCCCCCC

+"++++++--==++""+""+++++++I11+IAX-M=M-=+==="+=M=-=++"+"=----1  +AAII=-   ----1+=IAX-=+-------------------------"+Z--ZZ-------ZXZ---=
C+CCCCCC..CCCC++C++CCCCCCC       C C CCCCCC+CC CCCCC+C+                            CCC.........................+C CC  CCCCCCC   CCCC

 C      ''    CC CC                        C        C C                               '''''''''''''''''''''''''C

        XX                                                                            XXXXXXXXXXXXXXXXXXXXXXXXX

        CC                                                                            CCCCCCCCCCCCCCCCCCCCCCCCC

""++"+++""M+++++"""++++++A++1=AZ--M=M="+====+=M==++=++"+-  -  -=XZXA=       -1=IIAX-="-------------------------"=MZZ--M---M-MMZZMMM=
++CC+CCC++ CCCCC+++CCCCCC       CC C C+CCCCCCC CCCCCCC+                            CC+.........................+C   CC CCC C       C

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

                                                                                      XXXXXXXXXXXXXXXXXXXXXXXXX

                                                                                      CCCCCCCCCCCCCCCCCCCCCCCCC

+""+++++-"M=+"+"+"""+"++I+1+=AZ---M=++++===M++===++"++"I----  -=X-ZZ=      -1+=IIXZ-""""-----------------------+=M-ZZMM--ZMM--ZZ-MMM
C++CCCCC.+ CC+C+C+++C+CC       CCC CCCCCCCC CCCCCCC+CC+          C                 C++++.......................CC C    CC   CC  C

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

        X                                                                               XXXXXXXXXXXXXXXXXXXXXXX

        C                                                                               CCCCCCCCCCCCCCCCCCCCCCC

+""+++=+--==+"""++""+"+A+1+IIX-MM-M+"""+=M===+====++++-M--1111=XZZZZX-     -1+=AAXZ=+++-----""-----------------+=---ZM----M---Z--MM=
C++CCCCC..CCC+++CC++C+C       C  C C+++CC CCCCCCCCCCCC.                            CCCC.....++.................CCCCC  CCCC CCC CC  C

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

        XX                                            X                                XXXXX  XXXXXXXXXXXXXXXXX

        CC                                            C                                CCCCC  CCCCCCCCCCCCCCCCC

++"+++==-"===+++=""""+=+1+=AAZMM=M==""+M==+====M==+"=+-"-11+IAZ+"-XZZ--  --1==IIAX-"++"-----+"++++"----------""+M--Z--Z--M--ZZ---MM=
CC+CCCCC.+CCCCCCC++++C          C CC++C CCCCCCC CCC+CC.+       C+C                C+CC+.....C+CCCC+..........++C CC CC CC CC  CCC  C

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

        X                                             X                                XXXXX       XXXXXXXXXX

        C                                             C                                CCCCC       CCCCCCCCCC

+""+=+++--M===++""""=I+++=IXZ-M=M++"+===+==M=+++==++=""+111--1XZ-M--A+   -1++=IAXXZ+"""----+=++M++"---------"+"+=---Z------M-----MM=
C++CCCCC.. CCCCC++++C        C C CC+CCCCCCC CCCCCCCCC++C        C CC               C+++....CCCC CC+.........+C+CCCCC CCCCCC CCCCC  C

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

        XX                                                                             XXXX        XXXXXXXXX

        CC                                                                             CCCC        CCCCCCCCC

++++=+++-"==++++++"MI+1++IAXZMM==+""=======MM-+===++++M-=1-  -+=AAAI+1---11++=IAAXZM"""---"====Z=="--------""+++MMM--MMM-MM---M--MM=
CCCCCCCC.+CCCCCCCC+            CCC++CCCCCCC  CCCCCCCCC C                            +++...+CCCC CC+........++CCC   CC   C  CCC CC  C

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

        X                                                                              XXX         XXXXXXXX

        C                                                                              CCC         CCCCCCCC

+++++++=""=++=+"++-=+11+IIX -M=+++"+=M=+==M=MM+=+=+++-I=++-   - +I=I+1--1++IIIIAXZZZ-+-"-"=MM=MMM=+----------"Z+===--==MM=M---MMMM==
CCCCCCCC++CCCCC+CCC         C CCCC+CC CCCC C  CCCCCCCC                              CC.+.+C  C   CC..........+ CCCCCCCC  C CCC    CC

        CC     C                  C                                                   'C'C         ''''''''''C

                                                                                      X X          XXXXXXXXXX

                                                                                      C C          CCCCCCCCCC

""""+=+=""+++++++-++11+=AA -M==++++==M======M=++==+M==11++1-+1 -1+==+11-1+=IIIAAXXZZX-MM-+MMMMMM==+---"-------AX"=+M===--M-ZZ-ZM-MM=
++++CCCC++CCCCCCCC         C CCCCCCCC CCCCCC CCCCCC                                  C  CC      CCC...+.......  +CC CCCCC C  C  C  C

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

                                                                                                   XXX XXXXXXX

                                                                                                   CCC CCCCCCC

+="""+"=""++++"+Z=+++==IAX M=++""+=++M=++======+=MX=+11111++XX=AAI=I=+=++ ==IAAAXXZZZ--MMMM---MM=+"-----------XX=""""==MMM--Z-MM-MM=
CC+++C+C++CCCC+C            CCC++CCCC CCCCCCCCCCC                                    CC    CCC  CC+...........  C++++CC   CC C  C  C

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

                                                                                                   XXXXXXXXXXX

                                                                                                   CCCCCCCCCCC

+=++"+++--+++"+Z=++===IAXX-=+++""==++==+=======MX==+1+1111++=XIAII-ZZAI=11+=IAAXXXZZZZZ---MM=MMM=+"--"+"-"----ZAA"-""++===----MMM=M+
CCCC+CCC..CCC+C           CCCCC++CCCCCCCCCCCCCC                   C                    CCC  C   CC+..+C+.+....   +.++CCCCCCCCC   C C

    C   ''   C                 CC                                                                 C''C C'C''''   C'CC

        XX                                                                                         XX   X XXXX    X

        CC                                                                                         CC   C CCCC    C

++++"+="""="""X=+=+=IIAAZ-M=++""==+=+=+====++MZA===+1++111+1- 1++=IAA=I=1++=IAAXXXZZZZ----M=MMMM="--+M=+-"----MAIZ--"+++==M--MMMMM=+
CCCC+CC+++C+++           C CCC++CCCCCCCCCCCCC                                         CCCC C    C+..C CC.+....    ..+CCCCC CC     CC

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

                                                                                                  XX    X XXXX    XX

                                                                                                  CC    C CCCC    CC

"++=""+"-"=""A+11=IIIAAXZ-=++""+=+++++===+=+-I++++11+1++++==1    -1+=II++1=IIAAAXZXXZZZ---M-MMM=="-=---+------+AAX---""+=MM-ZMM=M==+
+CCC++C+.+C++            CCCC++CCCCCCCCCCCCCC                                          CCC C   CC+.CCCCC......C   ...++CC  C   C CCC

C   CC C'C CC                CC                                                                  C'     ''''''    '''CC

        X                                                                                         X     XXXXXX    XXX

        C                                                                                         C     CCCCCC    CCC

"++=++++--=+X=+1+=IAAAXZ-==+++"=++=+++=+==-AI=+++++++1+++==I=++==IAZXAI===IAAAXZXXZXZZ---=MM-MM==+-ZAZX-"-----"IAA=---""+=MZZM=M==++
+CCCCCCC..CC            CCCCCC+CCCCCCCCCCCC                                           CCCC  C  CCC.    C+.....+   C...++CC    C CCCC

C       ''                    C                                                                   '     C'''''C    '''CC

        XX                                                                                        X      XXXXX     XXX

        CC                                                                                        C      CCCCC     CCC

"+++"++"-"=A+1++=IIAXXA-==+""""++==+++=++ZII==1++=+==+===IAAI+IXZZZZAIIIIIAAAXXXZZZZZ---MM-M-MM==+-XIAIX+-----"IAAX---"-+==MMMM===+"
+CCC+CC+.+C            CCCC++++CCCCCCCCCC                                            CCC  C C  CCC.     C.....+    ...+.CCC    CCCC+

C   C  C'C                 CCCC                                                                   '      '''''C    '''C'           C

        X                                                                                         X      XXXXX     XXX X

        C                                                                                         C      CCCCC     CCC C

"+==""""-"A+++1=IAAXXZZM=++"""++++++++=+=AA===========IIIAXZZ1--1+=IIIAIIIAXXXXZZZZZ-MMMMM--M====+-Z+++=------+IIAI-----"++===M=+=++
+CCC++++.+              CCC+++CCCCCCCCCCC                                           C     CC CCCCC.     C.....C    .....+CCCCC CCCCC

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

        X                                                                                         X      XXXXX     XXXXX

        C                                                                                         C      CCCCC     CCCCC

+"==+"""-A=+1++=IAXZZ-MM=+"""===M++++==+=I========IIIAAAXXZ-MA     1+=IIIAXZXZZZ-Z-=M-MMMMMM=M===+"+1--1A-----M=II=----"""+M++++==+"
C+CCC+++.            C  CC+++CCC CCCCCCCC                  C                    C CC C      C CCCC+C     .....     ....+++C CCCCCCC+

 C   CCC'                 CCC                                                                     C      '''''     ''''CCC         C

        X                                                                                                XXXXX     XXXX

        C                                                                                                CCCCC     CCCC

="+=+"""-=1+++=IAXXZZ-M=+"""+=+=M=+=++++=X====1=IIAAXZZ-MM=+++111--++=IIXXZZZZZMM====MMM======M==+"-I  -1-----A=II=------"++"""+++++
C+CCC+++C            C CC+++CCCC CCCCCCCC              C  CCCC                   CCCC   CCCCCC CCC+.     .....     ......+CC+++CCCCC

 C   CCC                 CCC                                                                      C'     '''''     ''''''C  CCC

                                                                                                   X     XXXXX     XXXXXX

                                                                                                   C     CCCCC     CCCCCC

==+=+""Z=+1++=IIAXX--M=++""+=++Z-===+==++ZAIII=IIAXZM=+=++==+=XA=+==AXXXZZ--M==+===MMMMM==MMMMMMM=+"M   =-----1+===------""+""""++"+
CCCCC++            CC CCC++CCCC CCCCCCCCC            CCCCCCCCC            CC CCCCCC     CC       CC+     .....     ......++C++++CC+C

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

                                                                                                         XXXXX     XXXXXX

                                                                                                         CCCCC     CCCCCC

+++=+"M==+++=IIAXZ-MM==+"""==+=MM===+==++MAII=IIIIAXXZXXXXXXXXXAZZZZ--MMMM=+++++=========M--Z-M=M=+""-  Z----+-1+==------------"+""+
CCCCC+            C  CCC+++CCCC  CCCCCCCC                           CC    CCCCCCCCCCCCCCC CC C C CC++    ....C     ............+C++C

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

                                                                                                         XXXX      XXXXXXXXXXXX

                                                                                                         CCCC      CCCCCCCCCCCC

"=+=++==++1==IAAZ--===+""""=====+=+=+=+=+=AAAIII=====I==IIIIIIII=IIXXXXIZM++=+++++==M==MMZZZZZ-M===+-M  -----X  1++------"----"-""-"
+CCCCC           CCCCCC++++CCCCCCCCCCCCCCC                                CCCCCCCCCC CC       C CCCC.   C....      ......+....+.++.+

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

                                                                                                    X    XXXX      XXXXXX XXXX X  X

                                                                                                    C    CCCC      CCCCCC CCCC C  C

"+"==I==+++=IIAXZ-M+++"-""=====+====+"+++"-XXA=I=III=====II=II====IIIAAAIZM+++++++==M-ZXXXXXZ--MM==+"-  =----   -1+---------------""
+C+CC            C CCC+.++CCCCCCCCCCC+CCC+C                                CCCCCCCCC C       CC  CCC+.  C....      ...............++

C C                   C'CC           C   C                                                          C'   ''''      '''''''''''''''CC

                       X                                                                             X   XXXX      XXXXXXXXXXXXXXX

                       C                                                                             C   CCCC      CCCCCCCCCCCCCCC

"+"+Z=++++==IAXZ-M=+++"-"======++=+=+++""""MZXAII=I=I==========IIIIIAAAXIAZ=++++=M-XAIIIAAXXZ--M===+"-- =---"    11-----------------
+C+C            C CCCC+.+CCCCCCCCCCCCCC++++                                CCCCCC C          CC CCCC+.C C...+      .................

C C                   C'C              CCCC                                                         C'   '''C      '''''''''''''''''

                       X                                                                             X   XXX       XXXXXXXXXXXXXXXXX

                       C                                                                             C   CCC       CCCCCCCCCCCCCCCCC

""+M==+++=IIAXX-M=++""""+====+=++M==+++++"""=MZXAIIII=I=IIIIIIIIIIIIIXXXXZZ-===MXAIIIIIIAAXXZZMM==+=+-- ----M    -1""---------------
++C            C CCC++++CCCCCCCCC CCCCCCC+++C                              CCCC                 CCCCC.. C...       ++...............

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

                                                                                                     XX  XXX         XXXXXXXXXXXXXXX

                                                                                                     CC  CCC         CCCCCCCCCCCCCCC

""+I===+=IIAAZZ-M=+"""""====+=++++==="+++=+"""MZZXXIAIIA=I====+=====IIAAXXXZZ---ZXXAAAAAAAXZZZMM====+"-=A---1     A------------"---"
++C            C CC+++++CCCCCCCCCCCCC+CCCCC+++                               CCC                CCCCC+.C ...       ............C...+

CC                 CCCCC             C     CCC                                                       C'  '''       ''''''''''''B'''C

                                                                                                      X  XXX       XXXXXXXXXXXXHXXX

                                                                                                      C  CCC       CCCCCCCCCCCCXCCC

"+ZII+++==IAX-MM=+""""""++=+++"""+==++""+++"""+"MZXAAI==+=+++++++===IIAAAXXZZZ----ZZXXXAXZZZ--MM==+++"------      M-----------------
+C           C  CC++++++CCCCCC+++CCCCC++CCC+++C+                              CCCC          CC  CCCCC+..C...       .................

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

                                                                                                      XX XXX       XXXXXXXXXXXXXXXXX

                                                                                                      CC CCC       CCCCCCCCCCCCCCCCC

"MII===+=IAAXZM=+""""""++====++"+++++++++++++""+-XI==+++++++1111+++==IIIAAAXXZZZ-----ZZXZZ---M====+++"--+---      "-----------------
+              CC++++++CCCCCCCC+CCCCCCCCCCCCC++CC                               CCCCC     CCC CCCCCCC+..C...      +.................

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

                                                                                                      XX XXX       XXXXXXXXXXXXXXXXX

                                                                                                      CC CCC       CCCCCCCCCCCCCCCCC

+AII====IAAXZZM++"""--"+==+==+"""++"+++++"+++ZZA===++++1+++11-1-1++==IIIAAAXZZZ---Z--M-XZZ--M===+=++""-----+      ------------------
C              CC+++..+CCCCCCC+++CC+CCCCC+CCC                                  CCC CC C   CC CCCCCCC++.....C      ..................

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

                    XX                                                                                XXXXX       XXXXXXXXXXXXXXXXXX

                    CC                                                                                CCCCC       CCCCCCCCCCCCCCCCCC

-III=++=IAAXX-=+"""---"+==+=+""++++"++""+MXI====++++11111+1111-1111+==IIIAXZZZ--Z-Z----ZZZ--MM=====+""-----Z      ---------------"--
C            CCC+++...+CCCCCC++CCCC+CC++C                                     CC C CCCC   CC  CCCCCC++.....       ...............+..

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

                   XXX                                                                                XXXXX       XXXXXXXXXXXXXXX XX

                   CCC                                                                                CCCCC       CCCCCCCCCCCCCCC CC

AIIII==IIAXXZM=""---""+"+""++"""+==M-XIIII=I==++1++1111111-1111111+===IIAAXZZZXZZZ-----ZZZ---M==++++""-----      X------------------
              C++...++C+C++CC+++CCC C                                             CCCCC   CCC CCCCCC++.....       ..................

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

                 XXX                                                                                  XXXXX       XXXXXXXXXXXXXXXXXX

                 CCC                                                                                  CCCCC       CCCCCCCCCCCCCCCCCC

IIII===IIXXZ-=+-"---"+"""""=M--ZAAI=======++++++1+11111111-111111++===IAAAXZZZZZZZ-Z-Z-ZZZ---M====+++------      +------------------
            CCC.+...+C+++++C CC                                                   C C C   CCC CCCCCCC......      C..................

               'C'''C CCCCC                                                                          ''''''       ''''''''''''''''''

               X XXX                                                                                 XXXXXX       XXXXXXXXXXXXXXXXXX

               C CCC                                                                                 CCCCCC       CCCCCCCCCCCCCCCCCC

IIAI==IAAXZM=""-----"++M-ZXAA=I=I===+==+++++++11111+1+1111++++++++=====AAXXZZXZZZZZZZ--Z-Z----M===+++"-----      -------------------
            C++.....+CC C                                                            CC C CCCC CCCCCC+.....      ...C...............

             CC'''''C                                                                                C'''''      ''' '''''''''''''''

               XXXXX                                                                                  XXXXX      XXX XXXXXXXXXXXXXXX

               CCCCC                                                                                  CCCCC      CCC CCCCCCCCCCCCCCC

IIII===AXXZXZXZ-XXAAAAIIIIII====++++++1++11++11111++1+++1++++++++=+=IIIAAXXXXZXZZ-Z---------M-MMM===+"-----      -------------------
               C                                                                 C CCCCCCCCC C   CCCC+.....      ...................

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

                                                                                                      XXXXX      XXXXXXXXXXXXXXXXXXX

                                                                                                      CCCCC      CCCCCCCCCCCCCCCCCCC

IIIII=IIIAAAAAAAAAAIIAI==I==++=++111+1+1+11++11++1++++++=++========IIIAAXXZZZZZZZ-Z-----------MMMMM=+------     1-----------"-------
                                                                                 C CCCCCCCCCCC     CC......      ...........+.......

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

                                                                                                     XXXXXX      XXXXXXXXXXX XXXXXXX

                                                                                                     CCCCCC      CCCCCCCCCCC CCCCCCC

IIIIII=====I=I=IIIIIII==++++++1111-1111111+1+1+++++==+==========I=IAAAAXXXZZZZ----Z----------MMMMMMM=-----+     ----------"-"------"
                                                                              CCCC CCCCCCCCCC       C.....C     C.........+.+......C

                                                                                                     '''''       '''''''''C'C''''''B

                                                                                                     XXXXX       XXXXXXXXX X XXXXXXH

                                                                                                     CCCCC       CCCCCCCCC C CCCCCCX

IIIIII===++=+==I======++++111111-111111111++=+==++======III=IIIIIIIAAAAXAXZZ--Z--M-M--------MMMMMMMM="----=     "---------"-----"--"
                                                                            CC CC C CCCCCCCC        C+....C     +.........+.....C..C

                                                                                                     C''''      C'''''''''C'''''B''B

                                                                                                      XXXX       XXXXXXXXX XXXXXHXXH

                                                                                                      CCCC       CCCCCCCCC CCCCCXCCX

IIAIIIII===++++++++++11-11- -------11+11===II=====II=I=IIIIIIIIIIAIIAAAXXXZZ----M--------Z-----MMMMMM"----Z     --------"----------"
                                                                            CCCC CCCCCCCC CCCCC      +....      ........C..........C

                                                                                                     C''''      ''''''''B''''''''''B

                                                                                                      XXXX      XXXXXXXXHXXXXXXXXXXH

                                                                                                      CCCC      CCCCCCCCXCCCCCCCCCCX

111++++11++-1-11---1---1---1- ---11-11==++===I=III=I===IIIIIIIIAIAAAIIAIAXXXXXXZZZ------M-----MMMMM-M"--M"Z     ---------------"----
                                                                                  CCCCCC CCCCC     C +.. +      ...............C....

                                                                                                     C'' C      '''''''''''''''B''''

                                                                                                      XX        XXXXXXXXXXXXXXXHXXXX

                                                                                                      CC        CCCCCCCCCCCCCCCXCCCC

I=IIIIIII=++++111--11-----11111---1-11++++++==+====+==+III======II=I==I==AAAAAAAIAZZZ-ZZM------MMM-MM"--+ZI    =MM++"++"++----------
                                                                                     C   CCCCCC   C  +..C         CC+CC+CC..........

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

                                                                                                      XX                  XXXXXXXXXX

                                                                                                      CC                  CCCCCCCCCC

=IIAAIAII===+=+++111+1++11++++11+1++++++++=+I==IIII==IIIAIIIAIIIIIIIIAAAXAAXXZZZZ----ZZZZZZZZZZ---Z--+""""=    M++""-""-""----------
                                                                                 CCCC          CCC CCC++++      CC++.++.++..........

                                                                                                      CCCC        CC'CC'CC''''''''''

                                                                                                                    X  X  XXXXXXXXXX

                                                                                                                    C  C  CCCCCCCCCC

IIIAAAIIIII=I===+=+++++++=++++1+++++=+++++======IIIIIIIAAAAAAAIIIIIIIIAIAXXAZZZZ-Z--ZZ--Z-Z-------MMM"----+-   ---------------------
                                                                                C CC  CC C CCCCCCC   +....     .....................

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

                                                                                                      XXXX     XXXXXXXXXXXXXXXXXXXXX

                                                                                                      CCCC     CCCCCCCCCCCCCCCCCCCCC

AIAAAAAAAAAAIIIIII===============+======I===II=IIIIIIIIIAAAIIAAIAAIAAIAAXAXXXZZZ------------MMMMMM==="----+-   ----------------"----
                                                                                CCCCCCCCCCCC      CCC+....     ................C....

                                                                                                     C''''     ''''''''''''''''B''''

                                                                                                      XXXX     XXXXXXXXXXXXXXXXHXXXX

                                                                                                      CCCC     CCCCCCCCCCCCCCCCXCCCC

XXXXAAXXXAAAAAAAIAIII=III=I=III=I=======I===IIIIIIAIAAIIIAAIIAAAIAIIAAAAAAXXXXZZZ---------M-MMMMMM==="----+1  --------------------"-
                                                                                 CCCCCCCCC C      CCC+....     ...................C.

                                                                                                     C''''     '''''''''''''''''''B'

                                                                                                      XXXX     XXXXXXXXXXXXXXXXXXXHX

                                                                                                      CCCC     CCCCCCCCCCCCCCCCCCCXC

ZZXXXXXXXAAAXAAAAAAAAIIIIIIIIIAIIII=IIIIIIIIAIIIIAAAAXAAAAAAAAAAAAAIAAAAAAXXXZZZZZ---Z----M-MMMM====="----+1  Z--------------------"
                                                                                  CCC CCCC C    CCCCC+....     ....................C

                                                                                                     C''''     ''''''''''''''''''''B

                                                                                                      XXXX     XXXXXXXXXXXXXXXXXXXXH

                                                                                                      CCCC     CCCCCCCCCCCCCCCCCCCCX

-ZZZXXXXZXXXXXAXAAXAAIAAAAAAAAIIIIIIAAAIAAIAAAAAAAAXXXXXXXXAAAAAIAIIIIAAAAXAXXXZZZ-Z-----MMMMMMM=====""---1-  +---------------------
C                                                                                 C CCCCC       CCCCC++...    C.....................

                                                                                                     CC'''     '''''''''''''''''''''

                                                                                                       XXX     XXXXXXXXXXXXXXXXXXXXX

                                                                                                       CCC     CCCCCCCCCCCCCCCCCCCCC

+M--ZZZXZZZXXZXXXXXAAXAAAAXAAAXAAAAAAAAAAAAXXXXXXXZZZZZZZXXZXXXAAAIAAAAAAAXXXXXZZZ------MMMMMM======="---"+-  "-------------------""
C CC                                                                              CCCCCC      CCCCCCC+...+    +...................CC

                                                                                                     C'''C    C'''''''''''''''''''BB

                                                                                                      XXX      XXXXXXXXXXXXXXXXXXXHH

                                                                                                      CCC      CCCCCCCCCCCCCCCCCCCXX

""+=MM--ZZ-ZZZXZZXXXXXXXXXXXXXXXXXXXXXXXXZXXZZZZZ----MM====M=-ZXAAAAAAAAAAXXXXZZZZ------MM=MM========"---+1-  --------------------"-
++CC  CC  C                                      CCCC  CCCC CC                    CCCCCC  C  CCCCCCCC+...C    ....................C.

CC                                                                                                   C'''     ''''''''''''''''''''B'

                                                                                                      XXX     XXXXXXXXXXXXXXXXXXXXHX

                                                                                                      CCC     CCCCCCCCCCCCCCCCCCCCXC

""""""+=M----Z-ZZZZZZZZZZZZZZZZZZZZZZZ---------===="""--"""+=MZXAAIAAAAAAXXXXXZZZZZZ---MMM=MM=M===M==+---++-  -----------------"-"--
++++++CC CCCC C                       CCCCCCCCCCCCC+++..+++CC                       CCC   C  C CCC CCC...C    .................C.+..

CCCCCC                                             CCC''CCC                                           '''     '''''''''''''''''B'C''

                                                      XX                                              XXX     XXXXXXXXXXXXXXXXXHX XX

                                                      CC                                              CCC     CCCCCCCCCCCCCCCCCXC CC

++""+""--"+===MMMMM-X-MZ------------M--MMM==+=++++------""+MXAI==IIIIIAAAXAXXXZXXZZ---M-MMMMMM=======+"--=+- +----------------------
CC++C++..+CCCC     C C  CCCCCCCCCCCC CC   CCCCCCCC......++C                        CCC C      CCCCCCCC+..C    ......................

  CC CC''C                                        ''''''CC                                            C''     ''''''''''''''''''''''

       XX                                         XXXXXX                                               XX     XXXXXXXXXXXXXXXXXXXXXX

       CC                                         CCCCCC                                               CC     CCCCCCCCCCCCCCCCCCCCCC

++""""""-+"++""++"+==================++++++++==++"-""-""+=MZAAI===IAIIAAXXXXXXXZZXZZ---MM-MMM========+---M+  -----------------------
CC++++++.C+CC++CC+CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC+.++.++CC                          CCC  C   CCCCCCCCC...    C......................

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

        X                                         X  X                                                XXX     XXXXXXXXXXXXXXXXXXXXXX

        C                                         C  C                                                CCC     CCCCCCCCCCCCCCCCCCCCCC

"+"+""""-++++"++++"+++++""+++""++++++++=====+==+"-"""+=M-ZXXAIII=IIIIIIAAXXAXXXXXXZZ--MMM-M==========+"---=  "----------------------
+C+C++++.CCCC+CCCC+CCCCC++CCC++CCCCCCCCCCCCCCCCC+.+++CC C                           CC   C CCCCCCCCCCC+..C   +......................

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

        X                                        X                                                     XX     XXXXXXXXXXXXXXXXXXXXXX

        C                                        C                                                     CC     CCCCCCCCCCCCCCCCCCCCCC

+""+""+"-="++++++++=++=+"""++""+++=++=+=+++==++""+=M-ZXXXXAIIII==IIIIIIIIAAAXXXXXXZZZ-MMMMMM========++---X+  ----------""-----------
C++C++C+.C+CCCCCCCCCCCCC+++CC++CCCCCCCCCCCCCCCC++CC C                                C      CCCCCCCCCC...    ..........++...........

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

        X                                                                                             XXX    XXXXXXXXXX  XXXXXXXXXXX

        C                                                                                             CCC    CCCCCCCCCC  CCCCCCCCCCC

+""+""+"-+"++++++++=++++""""+""+++++++++"+++++"MZXAXAAAAIIIII===+==I===IIAIAAAXXXXXZZZ--MM=M========++"--I+  ----------"---"--------
C++C++C+.C+CCCCCCCCCCCCC++++C++CCCCCCCCC+CCCCC+                                       CC  C CCCCCCCCCC+..    ..........+...+........

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

        X                                                                                              XX    XXXXXXXXXX XXX XXXXXXXX

        C                                                                                              CC    CCCCCCCCCC CCC CCCCCCCC

"+"+"++"-=++"++++"+=+++++""""++++=++++++"=+"+=-AII=====================IIIAAAAAXXXZZ----MMMMM========+"--+- 1---------""-"----"----"
+C+C+CC+.CCC+CCCC+CCCCCCC++++CCCCCCCCCCC+CC+CCC                                     CCCC     CCCCCCCCC+..    .........++.+....C....C

C C C  C'   C    C       CCCC           C  C                                                          C''    '''''''''CC'C''''B''''B

        X                                                                                              XX    XXXXXXXXX  X XXXXHXXXXH

        C                                                                                              CC    CCCCCCCCC  C CCCCXCCCCX

"+++"++"-+""+++++"+++=++""++"+=+"++="+"++++=-AI=+++111++++=++====+==I=IIIAAAAAAXXXZZ-----MMMM=M=M==+=+"--+- Z-----"---""------------
+CCC+CC+.C++CCCCC+CCCCCC++CC+CCC+CCC+C+CCCCCC                                       CCCCC    C C CCCCC+..    .....+...++............

C   C  C' CC     C      CC  C   C   C C                                                               C''    '''''C'''CC''''''''''''

        X                                                                                              XX    XXXXX XXX  XXXXXXXXXXXX

        C                                                                                              CC    CCCCC CCC  CCCCCCCCCCCC

"++++"+"-++++++++"+++=+"+""+"++""+++"+++++MXI=+1------1-11++++==++====IIIAAAAAAXXXZZZ--MMMM=MM==M===++"--=- +-----"---+------------"
+CCCC+C+.CCCCCCCC+CCCCC+C++C+CC++CCC+CCCCC                                           CC    C  CC CCCCC+..   C.....+...C............+

C    C C'        C     C CC C  CC   C                                                                 C''    '''''C''' ''''''''''''C

        X                                                                                              XX    XXXXX XXX XXXXXXXXXXXX

        C                                                                                              CC    CCCCC CCC CCCCCCCCCCCC

++++"++""=+"++==+++++++"+=+++++"+++"++++++I==1--     ----1+1+++==+======IIIAAAXXXXXZ---MMMMMMMM======+"--+- -----""--"""------------
CCCC+CC++CC+CCCCCCCCCCC+CCCCCCC+CCC+CCCCCC                                          CCC        CCCCCCC+..   .....++..+++............

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

                                                                                                       XX   XXXXX  XX   XXXXXXXXXXXX

                                                                                                       CC   CCCCC  CC   CCCCCCCCCCCC

++++"++""=+"++++=+++++""""+++++"+""""+"""X=+1---      ----1++++++++===IIIIIAAAXXXZZ----MMMMMMM=====+++"--+  -----"----"----------"-"
CCCC+CC++CC+CCCCCCCCCC++++CCCCC+C++++C+++                                          CCCC       CCCCCCCC+..   .....+....+..........C.C

    C  CC  C          CCCC     C CCCC CCC                                                             C''   '''''C''''C''''''''''B'B

                                                                                                       XX   XXXXX XXXX XXXXXXXXXXHXH

                                                                                                       CC   CCCCC CCCC CCCCCCCCCCXCX

+++""++"-=+++"+++++++++"""+++++++"++++""+I+1-        - ----11+++1++++===IIIIAAXXXXZZ---MMMMMMM===+==+"--"1  -----"----"-------------
CCC++CC+.CCCC+CCCCCCCCC+++CCCCCCC+CCCC++C                                           CCC       CCCCCCC+..+   .....+....+.............

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

        X                                                                                             XX    XXXXX XXXX XXXXXXXXXXXXX

        C                                                                                             CC    CCCCC CCCC CCCCCCCCCCCCC

+"+"+"+"-=""+++++++="++"""++++++"++++"+"==11-        --- --1-1111+1++=+=IIAAAAXXXXZZ--MMMMMMMM======+"--+1 +----"-----"-----"------"
C+C+C+C+.C++CCCCCCCC+CC+++CCCCCC+CCCC+C+C                                           CC        CCCCCCC+..C   ....+.....+.....C......C

 C C C C' CC        C  CCC      C    C C                                                             C''    ''''C'''''C'''''B''''''B

        X                                                                                             XX    XXXX XXXXX XXXXXHXXXXXXH

        C                                                                                             CC    CCCC CCCCC CCCCCXCCCCCCX

+""++++"-=+++"+"++++++++""+++++++"+++++"+=11--     -- -------111111++++I=IAAAAXXXXZZZ-M--MMMM=======+"--=  ----------""-------------
C++CCCC+.CCCC+C+CCCCCCCC++CCCCCCC+CCCCC+C                                            C CC    CCCCCCCC+..C  C.........++.............

 CC    C'    C C        CC       C     C                                                             C''    '''''''''CC'''''''''''''

        X                                                                                             XX    XXXXXXXXX  XXXXXXXXXXXXX

        C                                                                                             CC    CCCCCCCCC  CCCCCCCCCCCCC

+++++++""+"+++"+""+++=++"++++"++""+=+""""I+1----  ------------1111111+===IIIAAAXXXZZ--M-M-MM=M======+---M  +---------""------------"
CCCCCCC++C+CCC+C++CCCCCC+CCCC+CC++CCC++++                                           CC C C  C CCCCCCC...   C.........++............C

       CC C   C CC      C    C  CC   CCCC                                                            '''    '''''''''CC''''''''''''B

                                                                                                     XXX    XXXXXXXXX  XXXXXXXXXXXXH

                                                                                                     CCC    CCCCCCCCC  CCCCCCCCCCCCX

"++++++""+++++++""=+=++++""++"++"++=+""+"Z=+1------------------1111++++==I=IAAAXXXZZ--M-MMM========="----  "---------""-----------"-
+CCCCCC++CCCCCCC++CCCCCCC++CC+CC+CCCC++C+                                           CC C   CCCCCCCCC+...C  +.........++...........C.

C      CC       CC       CC  C  C    CC C                                                           C'''   C'''''''''CC'''''''''''B'

                                                                                                     XXX    XXXXXXXXX  XXXXXXXXXXXHX

                                                                                                     CCC    CCCCCCCCC  CCCCCCCCCCCXC

""++"++""=++=+++""+++++++++++++++++++++""+=+1111111111----1-1--11+++++===IIAAAAXXXZZ---MMMM====M===+"---Z  ----------"""-----------"
++CC+CC++CCCCCCC++CCCCCCCCCCCCCCCCCCCCC++C                                          CCC    CCCC CCCC+...   ..........+++...........C

CC  C  CC       CC                     CC                                                           C'''   ''''''''''CCC'''''''''''B

                                                                                                     XXX   XXXXXXXXXX   XXXXXXXXXXXH

                                                                                                     CCC   CCCCCCCCCC   CCCCCCCCCCCX

"+"++++""=+=+"+++"=++++++++++++++=++"++"""A==++1++1++111--111-111=+++=====IIAAAXZXZZ--M-MMM=M==MM==+----X  -----"---"-""-----------"
+C+CCCC++CCCC+CCC+CCCCCCCCCCCCCCCCCC+CC+++                                          CC C   C CC  CCC....   .....+...+.++...........C

C C    CC    C   C                  C  CCC                                                          ''''   '''''C'''C'CC'''''''''''B

                                                                                                    XXXX   XXXXX XXX X  XXXXXXXXXXXH

                                                                                                    CCCC   CCCCC CCC C  CCCCCCCCCCCX

"++++++""=+++"++""++++++++++++=++=++"++"+"=I==+=+=++++1111111++++=++===IIIAAAAXXZZZ---MMMM==MMM===+"-"--A  -----"---""-"------------
+CCCCCC++CCCC+CC++CCCCCCCCCCCCCCCCCC+CC+C+C                                        CCC    CC   CCCC+.+..   .....+...++.+............

C      CC    C  CC                  C  C C                                                         C'C''   '''''C'''CC'C''''''''''''

                                                                                                    X XX   XXXXX XXX  X XXXXXXXXXXXX

                                                                                                    C CC   CCCCC CCC  C CCCCCCCCCCCC

+++++++""=+++"++""+++=+++++++++++==+"++++""ZAI=I=III==++1++++++===+====IIIAAAXXXZZ-Z-MMMMMMMMMM===""----A  ----""---""-"------------
CCCCCCC++CCCC+CC++CCCCCCCCCCCCCCCCCC+CCCC++                                       C C          CCC++....   ....++...++.+............

       CC    C  CC                  C    CC                                                       CC''''   ''''CC'''CC'C''''''''''''

                                                                                                    XXXX   XXXX  XXX  X XXXXXXXXXXXX

                                                                                                    CCCC   CCCC  CCC  C CCCCCCCCCCCC

+++"+++""==+++++++++++++++++++"+"+++=++++""+ZAAAAAAAI=+===========+=====IIIAAXXZZZZ---MMMMMM=M=M=+"-----A =----""---""-"------------
CCC+CCC++CCCCCCCCCCCCCCCCCCCCC+C+CCCCCCCC++C                                       CCC      C C CC+.....   ....++...++.+............

   C   CC                     C C        CC                                                       C'''''   ''''CC'''CC'C''''''''''''

                                                                                                   XXXXX   XXXX  XXX  X XXXXXXXXXXXX

                                                                                                   CCCCC   CCCC  CCC  C CCCCCCCCCCCC

++++++=""=+++++++"+++++++++++""+++++++++++++"ZAXAAXXA===IIIII=III=======IIIIXXXXX-------MMMMM====+"-"---Z ----"-"---"""""-----------
CCCCCCC++CCCCCCCC+CCCCCCCCCCC++CCCCCCCCCCCCC+                                    CCCCCCC     CCCCC+.+...  C...+.+...+++++...........

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

                                                                                                   X XXX   XXX X XXX     XXXXXXXXXXX

                                                                                                   C CCC   CCC C CCC     CCCCCCCCCCC

+=++"+=""==++++++++++=+++++=+++++++++++++"++"+--ZZZXAIIAAIIIIIII=I=====IIIAAXXXZZZ-----MMMMM====+"-""---Z +---"-----""-"------------
CCCC+CC++CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC+CC+CCC                                  CCCCC     CCCCC+.++...  C...+.....++.+............

    C  CC                                C  C                                                    C'CC'''   '''C'''''CC'C''''''''''''

                                                                                                  X  XXX   XXX XXXXX  X XXXXXXXXXXXX

                                                                                                  C  CCC   CCC CCCCC  C CCCCCCCCCCCC

==++++=""==++++++++++==+++"++++++++=++++++"+++===MZXAIAAIAIIIIII=======IIIAAXXXZ-------MMMM=M==+""-""---- ----"-----""--------------
CCCCCCC++CCCCCCCCCCCCCCCCC+CCCCCCCCCCCCCCC+CCCCCC                               CCCCCCC    C CCC++.++...C ....+.....++..............

       CC                 C               C                                                     CC'CC'''  ''''C'''''CC''''''''''''''

                                                                                                  X  XXX  XXXX XXXXX  XXXXXXXXXXXXXX

                                                                                                  C  CCC  CCCC CCCCC  CCCCCCCCCCCCCC

+=+++++""===++++++=++=++++++++++++++==+++"++++=""=XXAAAAIAAIII========IIIAAXXXXZZ------M-MM===++""-""---= ----"----"""--------------
CCCCCCC++CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC+CCCCC++C                               CCCCCC C  CCCCC++.++...C ....+....+++..............

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

                                                                                                  X  XXX  XXXX XXXX   XXXXXXXXXXXXXX

                                                                                                  C  CCC  CCCC CCCC   CCCCCCCCCCCCCC

++++"++""=+=++"+++=+=+++++++++++++++=+++++++=+++"-XXAAIIAAIIII=======IIIAXXXXXZZZZZZ----MMM===+""""""---" ----------"""-------------
CCCC+CC++CCCCC+CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC+C                                  CCCC   CCCC++++++...+ ..........+++.............

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

                                                                                                     XXX  XXXXXXXXXX   XXXXXXXXXXXXX

                                                                                                     CCC  CCCCCCCCCC   CCCCCCCCCCCCC

"+++"==""=+=+++""+++++++"+""+++++=+===+=+=+++++""ZXXAIIIIIIIII===I=IIIAAAAXXXXZZZZZZZ----M====+""""""----1---"-------"--""----------
+CCC+CC++CCCCCC++CCCCCCC+C++CCCCCCCCCCCCCCCCCCC++                                    CCCC CCCCC++++++.... ...+.......+..++..........

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

                                                                                                     XXXX XXX XXXXXXX XX  XXXXXXXXXX

                                                                                                     CCCC CCC CCCCCCC CC  CCCCCCCCCC

+++++=+""=+++"+""++++++++++"+++++++=+====++++"+++ZXAAIIIIIII=I=IIIIIIAAAAAAXXXZZZZZZZ-M-MM==++""""""""---M-----------"--""----------
CCCCCCC++CCCC+C++CCCCCCCCCC+CCCCCCCCCCCCCCCCC+CCC                                    C C  CCCC++++++++... ...........+..++..........

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

                                                                                                      XXX XXXXXXXXXXX XX  XXXXXXXXXX

                                                                                                      CCC CCCCCCCCCCC CC  CCCCCCCCCC

"++++Z+""=+=+""""++++=+++++++++"+++++==+==+++++++ZXAAIIIIII====IIIIIIAAAAAAXZXXZZ-Z-----M=M=+""""""""-----------"----"-------------"
+CCCC C++CCCC++++CCCCCCCCCCCCCC+CCCCCCCCCCCCCCCCC                                C CCCCC C CC++++++++...........+....+.............C

C      CC    CCCC              C                                                             CCCCCCCC'''''''''''C''''C'''''''''''''B

                                                                                                     XXXXXXXXXXX XXXX XXXXXXXXXXXXXH

                                                                                                     CCCCCCCCCCC CCCC CCCCCCCCCCCCCX

+++++++""==+++++"++++==+"+++++++++++=+=+M+=++=+++ZAAAIII==I===IIIIIAAIIAAAAAZXZZZZZZ---MM==+++""+""""""------"-""---------"---------
CCCCCCC++CCCCCCC+CCCCCCC+CCCCCCCCCCCCCCC CCCCCCCC                                   CCC  CCCCC++C++++++......+.++.........+.........

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

                                                                                                       XXXXXX X  XXXXXXXXX XXXXXXXXX

                                                                                                       CCCCCC C  CCCCCCCCC CCCCCCCCC

+"+++++""=+++++""++++==++"++++++++++=+==++=++=++MXAAAIII==I=IIIIIIIIAAAAXXXXXZZZZZZZ---MM=++"""""""""--------""+""-----------------"
C+CCCCC++CCCCCC++CCCCCCCC+CCCCCCCCCCCCCCCCCCCCCC                                    CCC  CCC+++++++++........++C++.................C

 C     CC      CC        C                                                                  CCCCCCCCC''''''''CC CC'''''''''''''''''B

                                                                                                     XXXXXXXX     XXXXXXXXXXXXXXXXXH

                                                                                                     CCCCCCCC     CCCCCCCCCCCCCCCCCX

+"+++++""=+++++"+++++==+++++++++++++++=+++++++++-XXAAIII=II=IIIIIIIAAAAAXXXXZZZZ-ZZ----M==++"""+"+"""--------""+"""---------------""
C+CCCCC++CCCCCC+CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC                               C  CCCC CCCC+++C+C+++........++C+++...............CC

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

                                                                                                     XXXXXXXX      XXXXXXXXXXXXXXXHH

                                                                                                     CCCCCCCC      CCCCCCCCCCCCCCCXX

+++++++""=+++"+++=M++==+++++++++++=+=+===++++=++-XXAAIIAIII===I=IIIAAAAXXXXZZZZZZZZ--MMM=+"""""+"""""---------""""------------------
CCCCCCC++CCCC+CCCC CCCCCCCCCCCCCCCCCCCCCCCCCCCCCC                                  CC   CC+++++C+++++.........++++..................

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

                                                                                                     XXXXXXXXX    XXXXXXXXXXXXXXXXXX

                                                                                                     CCCCCCCCC    CCCCCCCCCCCCCCCCCC

+++++=+""M+=++=++==+++==+"++++++++=++=+==++++"++ZXAAAAIIII=III=IIIIIAAAXXXXZZZZZZZZ--MMM=++"""++"""""-------""+"""------------------
CCCCCCC++ CCCCCCCCCCCCCCC+CCCCCCCCCCCCCCCCCCC+CC                                   CC   CCC+++CC+++++.......++C+++..................

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

                                                                                                     XXXXXXX      XXXXXXXXXXXXXXXXXX

                                                                                                     CCCCCCC      CCCCCCCCCCCCCCCCCC

"++++++""=+++++++=++=+=+++++++++++++++==+++++++"ZXAAAAIIII=IIIIIAAAAXAXXXXZZZZZZZZ--MMMM=="""++++""""---------"""---------------"--"
+CCCCCC++CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC+                                  CC    CC+++CCCC++++.........+++...............C..C

C      CC                                      C                                          CCC    CCCC'''''''''CCC'''''''''''''''B''B

                                                                                                     XXXXXXXXX   XXXXXXXXXXXXXXXHXXH

                                                                                                     CCCCCCCCC   CCCCCCCCCCCCCCCXCCX

+++++=+""=++++++++++++==++++++++++=+++++=++++++"ZXAAIIIIIIIIIIIIAAAAAXXXXXXXZZZZZZ--MMM=++"""++++""""----------""--------------"----
CCCCCCC++CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC+                                  CC   CCC+++CCCC++++..........++..............C....

       CC                                      C                                          CCC    CCCC''''''''''CC''''''''''''''B''''

                                                                                                     XXXXXXXXXX  XXXXXXXXXXXXXXHXXXX

                                                                                                     CCCCCCCCCC  CCCCCCCCCCCCCCXCCCC

+++"+=+""+++++"++++++===+"+++++++++++++++++++++"ZXAAIIIII=I=IIAIAAAXXXXXXXXZZX-ZZ--MM===""""+++++""-"-------""----------------------
CCC+CCC++CCCCC+CCCCCCCCCC+CCCCCCCCCCCCCCCCCCCCC+                              C  CC  CCC++++CCCCC++.+.......++......................

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

                                                                                                   X XXXXXXX  XXXXXXXXXXXXXXXXXXXXXX

                                                                                                   C CCCCCCC  CCCCCCCCCCCCCCCCCCCCCC

++""+++""+++++"++++++=+++"+"++++++++==++++++++"+ZAAIII=I==IIIIIAAAAAXAXXXXXZXZZZZ--MMM=+++"+++++"""""--------"----------------------
CC++CCC++CCCCC+CCCCCCCCCC+C+CCCCCCCCCCCCCCCCCC+C                                 CC   CCCC+CCCCC+++++........+......................

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

                                                                                                     XXXXXXXX XXXXXXXXXXXXXXXXXXXXXX

                                                                                                     CCCCCCCC CCCCCCCCCCCCCCCCCCCCCC

"+++++"""+++++"""++++=+++""++++++++=+++=++++"+"+ZXAAII===IIIIIIIIAAAAAXXXXXZZZZ-Z-MMM==+"""+++++M""-"-------------------------------
+CCCCC+++CCCCC+++CCCCCCCC++CCCCCCCCCCCCCCCCC+C+C                               C C   CCC+++CCCCC ++.+...............................

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

                                                                                                   X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                                                                                                   C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC

++++"+"""++++"""++++++++++"++++++=+++=+==+=+""""XAAIII==IIIIIIIAIAIAAAXXXXXZZZZ---MM==++"""++++++"""--------------------------------
CCCC+C+++CCCC+++CCCCCCCCCC+CCCCCCCCCCCCCCCCC++++                               CCC  CCCC+++CCCCCC+++................................

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

                                                                                                    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                                                                                                    CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC

""++"++""++++""++++++=++++""+++++++====++=++"""+XAAIII=====IIIAAAAIXAAXXXXZZZ-ZZ--MMM=+"""+=++++""""--------------------------------
++CC+CC++CCCC++CCCCCCCCCCC++CCCCCCCCCCCCCCCC+++C                             C  CC   CC+++CCCCCC++++................................

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

                                                                                                    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                                                                                                    CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC

""+""+"""+=++"+"+++++=++++"+++==+++=++=++++++""=AAII=II==IIIIAAAAIIAAXXZZZZZZ------M=++""++=+=+""""""--"-"-----------------"--------
++C++C+++CCCC+C+CCCCCCCCCC+CCCCCCCCCCCCCCCCCC++C                             CCCCCC CCC++CCCCCC++++++..+.+.................+........

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

                                                                                                     XX X XXXXXXXXXXXXXXXXX XXXXXXXX

                                                                                                     CC C CCCCCCCCCCCCCCCCC CCCCCCCC

"""+"+"""+++""+++++++=++++""""+++++=++++++++"""XAAAIIIIIIIIIIAAAAAAAXXZZZ--------MMM==+"++++=+++"""---""----------------------------
+++C+C+++CCC++CCCCCCCCCCCC++++CCCCCCCCCCCCCC+++                          CCCCCCCC   CCC+CCCCCCCC+++...++............................

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

                                                                                                   XXX  XXXXXXXXXXXXXXXXXXXXXXXXXXXX

                                                                                                   CCC  CCCCCCCCCCCCCCCCCCCCCCCCCCCC

"""++""+"+++"+++++++++++++"++"++++++=++"+++"""=AAAIIIII=IIIIAAAAXAXXZZZ--------MMMM==+++++=+=++"""""-"+"""--------------------------
+++CC++C+CCC+CCCCCCCCCCCCC+CC+CCCCCCCCC+CCC+++C                        CCCCCCCC    CCCCCCCCCCCC+++++.+C+++..........................

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

                                                                                                    X     XXXXXXXXXXXXXXXXXXXXXXXXXX

                                                                                                    C     CCCCCCCCCCCCCCCCCCCCCCCCCC

"""++++""+++"++++++"++++++"+++++++++++++++++""XAAAAIIIIIIIIIAAAXXXZZZ---M-M------MMM=+"+===++++"""-"""++""------------"-------------
+++CCCC++CCC+CCCCCC+CCCCCC+CCCCCCCCCCCCCCCCC++                       CCC C CCCCCC   CC+CCCCCCCC+++.+++CC++............+.............

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

                                                                                                  X       XXXXXXXXXXXX XXXXXXXXXXXXX

                                                                                                  C       CCCCCCCCCCCC CCCCCCCCCCCCC

++++"++""+"+++=+=+++==++++"+++"++"++++++++++"+XAAAIIIIII=IIIAAAXXZZZ--MMMM------MMM=M=+++==+++"""--"++""""--------""-"--------------
CCCC+CC++C+CCCCCCCCCCCCCCC+CCC+CC+CCCCCCCCCC+C                      CC    CCCCCC   C CCCCCCCCC+++..+CC++++........++.+..............

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

                                                                                                 XX       XXXXXXXX  X XXXXXXXXXXXXXX

                                                                                                 CC       CCCCCCCC  C CCCCCCCCCCCCCC

+++++++""+++++++++++=+=+++""++"+++++++++++"""ZAXAAAAIIIIAAAAXXXXZZ--MMMMMM----MMMM===+++=++++""""--"+"+"""--------------------------
CCCCCCC++CCCCCCCCCCCCCCCCC++CC+CCCCCCCCCCC+++                     CC      CCCC    CCCCCCCCCCC++++..+C+C+++..........................

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

                                                                                                 XX       XXXXXXXXXXXXXXXXXXXXXXXXXX

                                                                                                 CC       CCCCCCCCCCCCCCCCCCCCCCCCCC

+++++++"++++++++++++=+++++"""+"+"++=++++++""=XAAAAIIIIAAAAXAXXZZZ--MMMMMMM-----MM===++++=++++""""-""+++""""-------------------------
CCCCCCC+CCCCCCCCCCCCCCCCCC+++C+C+CCCCCCCCC++C                    CC       CCCCC  CCCCCCCCCCCC++++.++CCC++++.........................

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

                                                                                                 X         XXXXXXXXXXXXXXXXXXXXXXXXX

                                                                                                 C         CCCCCCCCCCCCCCCCCCCCCCCCC

+=+++++"++"+++++===+==+++""""++++++=++"+++"+XXAAAAAIIAAAXXXXZXZ--MMMMMMMM---MMMMM==++"+=+++"""""-"+++++""""-------------------------
CCCCCCC+CC+CCCCCCCCCCCCCC++++CCCCCCCCC+CCC+C                   CC        CCC     CCCC+CCCCC+++++.+CCCCC++++.........................

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

                                                                                                X          XXXXXXXXXXXXXXXXXXXXXXXXX

                                                                                                C          CCCCCCCCCCCCCCCCCCCCCCCCC

+++=+=+""+++++++==++=+++++++++++++"++"++"""ZXXAAAAAIAIAAAXXXZZ--MMM==MMMMM----MM===++++++++"""""+++++++"""""------"-----------------
CCCCCCC++CCCCCCCCCCCCCCCCCCCCCCCCC+CC+CC+++                   CC   CC     CCCC  CCCCCCCCCCC+++++CCCCCCC+++++......+.................

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

                                                                                                            XXXXXX XXXXXXXXXXXXXXXXX

                                                                                                            CCCCCC CCCCCCCCCCCCCCCCC

"++++++"++"+++++=+++=+++++++""""""""+"""""=AAAIAIIAAAAAAAXXXZZ---MM====MM---MMM===++"++++++"""""+++++++""""""-----------------------
+CCCCCC+CC+CCCCCCCCCCCCCCCCC++++++++C+++++C                   CCC  CCCC  CCC   CCCCC+CCCCCC+++++CCCCCCC++++++.......................

C      C  C                 CCCCCCCC CCCCC                                          C      CCCCC       CCCCCC'''''''''''''''''''''''

                                                                                                             XXXXXXXXXXXXXXXXXXXXXXX

                                                                                                             CCCCCCCCCCCCCCCCCCCCCCC

"+++"++""+++++++=+++==++++++""++++""+""""+AIIIIIIIAAIAAAXXXZZ--MMMM=M==MM---MMM===++++=++++""""+++++++++"""""""-"-------------------
+CCC+CC++CCCCCCCCCCCCCCCCCCC++CCCC++C++++C                   CC    C CC  CCC   CCCCCCCCCCCC++++CCCCCCCCC+++++++.+...................

C   C  CC                   CC    CC CCCC                                                  CCCC         CCCCCCC'C'''''''''''''''''''

                                                                                                               X XXXXXXXXXXXXXXXXXXX

                                                                                                               C CCCCCCCCCCCCCCCCCCC

"""+"++""++++++=+++++=++++"+""+++""""""""XI=I===IIIIIAAXXXXZZ--MMM==M=MMM-Z--M====+"+++++++"""=+++++++++++""""""-"------"--------"--
+++C+CC++CCCCCCCCCCCCCCCCC+C++CCC++++++++                    CC   CC C   C CC CCCCC+CCCCCCC+++CCCCCCCCCCCC++++++.+......+........+..

CCC C  CC                 C CC   CCCCCCCC                                          C       CCC            CCCCCC'C''''''C''''''''C''

                                                                                                                X XXXXXX XXXXXXXX XX

                                                                                                                C CCCCCC CCCCCCCC CC

+"""++"""++++++++++"==+++++++"++""""""""XAI=====IIAIIIAAXXXZZZ---MM=====---MM=M==++++=++++""""=+++=+++"+"+"+"""+"""""""-----"---""-"
C+++CC+++CCCCCCCCCC+CCCCCCCCC+CC++++++++                      CCC  CCCCCCCC  C CCCCCCCCCCC++++CCCCCCCC+C+C+C+++C+++++++.....+...++.+

 CCC  CCC          C         C  CCCCCCCC                                                  CCCC        C C C CCC CCCCCCC'''''C'''CC'C

                                                                                                                       XXXXX XXX  X

                                                                                                                       CCCCC CCC  C

"""""++""+++++=++"+++=+++++++""""""""""-AI=====I=IIIAAXXXXZZZZ---MMM===MM---MM===+""+++++"""""++++++"+""+"""""""""""-"----------""""
+++++CC++CCCCCCCC+CCCCCCCCCCC++++++++++C                      CCC   CCC  CCC  CCCC++CCCCC+++++CCCCCC+C++C+++++++++++.+..........++++

CCCCC  CC        C           CCCCCCCCCC                                           CC     CCCCC      C CC CCCCCCCCCCC'C''''''''''CCCC

                                                                                                                    X XXXXXXXXXX

                                                                                                                    C CCCCCCCCCC

"""""+"""+=+"++++++"+=++++++""""""+"""=AI==+++==IIIIAAAXXXZXZZ-Z-MMM=M==M--MMM==+++"++++"""""+++++"+"+"+""""""""""""-""""--"-"--""""
+++++C+++CCC+CCCCCC+CCCCCCCC++++++C+++C                       C C   C CC CC   CCCCC+CCCC+++++CCCCC+C+C+C++++++++++++.++++..+.+..++++

CCCCC CCC   C      C        CCCCCC CCC                                             C    CCCCC     C C C CCCCCCCCCCCC'CCCC''C'C''CCCC

                                                                                                                    X    XX X XX

                                                                                                                    C    CC C CC

"""""""""++++++++++"+++++++"""++""+""+XI==+++====IIIAAAXXXZZZ-ZZ--MM==+=M--MM====++"+++++""""+=+++++"+++++"+"""""""""""""--"-"--"""-
+++++++++CCCCCCCCCC+CCCCCCC+++CC++C++C                       C  CC  CCCC CC  CCCCCC+CCCCC++++CCCCCCC+CCCCC+C+++++++++++++..+.+..+++.

CCCCCCCCC          C       CCC  CC CC                                              C     CCCC       C     C CCCCCCCCCCCCC''C'C''CCC'

                                                                                                                         XX X XX   X

                                                                                                                         CC C CC   C

""++"""""+++"++=++++=+++++++"""+"""""XA====+=====IIIIAAXXXZXZZ----MMM==MM-MMMM==++"++++++""""+++++++++"++"+"""""""""""""""-""""--"""
++CC+++++CCC+CCCCCCCCCCCCCCC+++C+++++                         CCCC   CC  C    CCCC+CCCCCC++++CCCCCCCCC+CC+C+++++++++++++++.++++..+++

CC  CCCCC   C               CCC CCCCC                                             C      CCCC         C  C CCCCCCCCCCCCCCC'CCCC''CCC

                                                                                                                          X    XX

                                                                                                                          C    CC

"""""+"-"+++++++++++++++++++"""+""""MII===++=====IAAIAAXXXXZZZZZ--M=M===MM-MM=M==+"++++++""""++++"++++"+"+""""""""""""""""-""-"--""-
+++++C+.+CCCCCCCCCCCCCCCCCCC+++C++++                            CC C CCC  C  C CCC+CCCCCC++++CCCC+CCCC+C+C++++++++++++++++.++.+..++.

CCCCC C'C                   CCC CCCC                                              C      CCCC    C    C C CCCCCCCCCCCCCCCC'CC'C''CC'

       X                                                                                                                  X  X XX  X

       C                                                                                                                  C  C CC  C

"""+"+"""+++++++++++++++++++"""""""+II==+=++++==IIIAIAXXXXXZZZZZ---MM======MM====++++++++""""++++++++"++""""""""""""""+"""-""""-""""
+++C+C+++CCCCCCCCCCCCCCCCCCC+++++++C                            CCC  CCCCCC  CCCCCCCCCCCC++++CCCCCCCC+CC++++++++++++++C+++.++++.++++

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

                                                                                                                          X    X

                                                                                                                          C    C

"""""+""++"++++++++"+++"++++"""""""XII=+++++====IIIAAAXXXXXZZZZ----MM===+====M=+=+++++"+"""""++==+"+++"++"""+""+""""""+"""""""""""""
+++++C++CC+CCCCCCCC+CCC+CCCC+++++++                            CCCC  CCCCCCCC CCCCCCCC+C+++++CCCCC+CCC+CC+++C++C++++++C+++++++++++++

CCCCC CC  C        C   C    CCCCCCC                                                   C CCCCC     C   C  CCC CC CCCCCC CCCCCCCCCCCCC

"""="+""+++==+++++=++++++"+++""+""-I===++==++===IIAAIAXXXXZZZZZ-Z--MMM=+=+=======++++++++""-"++==++""++++++++""++""+""++""""""""""""
+++C+C++CCCCCCCCCCCCCCCCC+CCC++C++C                            C CC   CCCCCCCCCCCCCCCCCCC++.+CCCCCC++CCCCCCCC++CC++C++CC++++++++++++

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

                                                                                           X

                                                                                           C

"""+"++"+++++++++++++=++++""++"""+AII==++=+=====IAAAAXXXXZXZZZZZ---MMM=+++======++++++++"""-""+++++++""""+++"""++"""""""""""""""""-"
+++C+CC+CCCCCCCCCCCCCCCCCC++CC+++C                              CCC   CCCCCCCCCCCCCCCCCC+++.++CCCCCCC++++CCC+++CC+++++++++++++++++.+

CCC C  C                  CC  CCC                                                       CCC'CC       CCCC   CCC  CCCCCCCCCCCCCCCCC'C

                                                                                           X                                      X

                                                                                           C                                      C

"""""+"-"+++++++++=++==+++"""+"""ZIII==++=++====IIAAAAAXXXXXZZZZZ---MM===+=+=====+++++++""""""++++"++"++++""+""++""+""+""""""---""""
+++++C+.+CCCCCCCCCCCCCCCCC+++C+++                                CCC  CCCCCCCCCCCCCCCCCC++++++CCCC+CC+CCCC++C++CC++C++C++++++...++++

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

       X                                                                                                                     XXX

       C                                                                                                                     CCC

"""""""-"++++++++++++=++++""""""+AAII====++====IIIAAAAAXXXXXXZZZZ---MMM==++++====+++++++""""""++++++"""++"""+"""+"+"""+"""-"""--""""
+++++++.+CCCCCCCCCCCCCCCCC++++++C                                CCC   CCCCCCCCCCCCCCCCC++++++CCCCCC+++CC+++C+++C+C+++C+++.+++..++++

CCCCCCC'C                 CCCCCC                                                        CCCCCC      CCC  CCC CCC C CCC CCC'CCC''CCCC

       X                                                                                                                  X   XX

       C                                                                                                                  C   CC

"""""+"""+"+""""+++++=++++"+"+""ZAAI==+=+=++==IIIAAAAIAXAXXXXZXZZZZ---MMM=+++==M===+++++""""""+++"=+""""++""+""++"""+++""""""""""+""
+++++C+++C+C++++CCCCCCCCCC+C+C++                                   CCC   CCCCCC CCCCCCCC++++++CCC+CC++++CC++C++CC+++CCC++++++++++C++

CCCCC CCC C CCCC          C C CC                                                        CCCCCC   C  CCCC  CC CC  CCC   CCCCCCCCCC CC

"""""""-"+"+""+"""+"++=+++++"+"+XIII==+==+=+==IIIAAAAIXAXAXXXZZXZZZZ----M==M++=+==++++++""-"-"++""++++""+"+"+""+=+""""+""""""""+""""
+++++++.+C+C++C+++C+CCCCCCCC+C+C                                    CCCC CC CCCCCCCCCCCC++.+.+CC++CCCC++C+C+C++CCC++++C++++++++C++++

CCCCCCC'C C CC CCC C        C C                                                         CC'C'C  CC    CC C C CC   CCCC CCCCCCCC CCCC

       X                                                                                  X X

       C                                                                                  C C

"""""+"-"+"+""+"""+""+++"""""+"=AAII==+==+=====IIIAIIAAAAXXXXXXXZZZZ-Z--MMM-=======+++"+""""-"+++"""+"+"+++"+""==+""""+++"""""""""""
+++++C+.+C+C++C+++C++CCC+++++C+C                                    C CC   CCCCCCCCCCC+C++++.+CCC+++C+C+CCC+C++CCC++++CCC+++++++++++

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

       X                                                                                    X

       C                                                                                    C

"""""+"""+""""+""""""+"""""""""ZAAI=====+=++===IIIIIAAAAAAXAXXXXZXZZZZ---MM====+++=+++++"""-""+"++"""++"+"++=+==++"++"+++""""+""""""
+++++C+++C++++C++++++C+++++++++                                       CCC  CCCCCCCCCCCCC+++.++C+CC+++CC+C+CCCCCCCC+CC+CCC++++C++++++

CCCCC CCC CCCC CCCCCC CCCCCCCCC                                                         CCC'CC C  CCC  C C        C  C   CCCC CCCCCC

                                                                                           X

                                                                                           C

""""++"""+++"+"+"""""++""""""""XAI=====+I=======IIIAIIAAIIAXXXXXXXXZZZ-Z---MMM==++++++++++"--"+"+""+++++++""+==+=++""+++""""""""""-"
++++CC+++CCC+C+C+++++CC++++++++                                       C CCC   CCCCCCCCCCCC+..+C+C++CCCCCCC++CCCCCCC++CCC++++++++++.+

CCCC  CCC   C C CCCCC  CCCCCCCC                                                           C''C C CC       CC       CC   CCCCCCCCCC'C

                                                                                           XX                                     X

                                                                                           CC                                     C

"""""""""+""+""""""""""=""""""+AAII====+=+=====IIIIAIIIAAAAAAXAXXXXZZZZZZZ--MM==+=++++""++""-"-++""+++++""""++"++++++"+""""""+""""""
+++++++++C++C++++++++++C++++++C                                           CC  CCCCCCCC++CC++.+.CC++CCCCC++++CC+CCCCCC+C++++++C++++++

CCCCCCCCC CC CCCCCCCCCC CCCCCC                                                        CC  CC'C'  CC     CCCC  C      C CCCCCC CCCCCC

                                                                                            X X

                                                                                            C C

"""""+"""++"+"+"""""""+""""""-MAII=========+=====III+IIAIAAAAAAAXXAXXZZZZZZZ-MM===++++"++"""-"""+""+"+""++"""+"+=+"+++++""+"""++""""
+++++C+++CC+C+C+++++++C++++++.                                              C  CCCCCCC+CC+++.+++C++C+C++CC+++C+CCC+CCCCC++C+++CC++++

CCCCC CCC  C C CCCCCCC CCCCCC'                                                        C  CCC'CCC CC C CC  CCC C   C     CC CCC  CCCC

                             X                                                              X

                             C                                                              C

"""""++""+""""+"""""""++=""""-ZII=========++=====III+=IIAAAIIAAAAXAXXXXZZZZ--MMM===+++"+++""-"-""""++"++++""++"++++"=++++++""""+""""
+++++CC++C++++C+++++++CCC++++.                                             CC   CCCCCC+CCC++.+.++++CC+CCCC++CC+CCCC+CCCCCCC++++C++++

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

                             X                                                              X X

                             C                                                              C C

"+=""+""+++"+"""""""""+++""+""I==1+++11+==+====II=I+===IIIII==AAIAXXXAXXAXZ---MM====++++++"""+"""""+++++""+-++++"+++++++"""+"+"+""""
+CC++C++CCC+C+++++++++CCC++C++                                             CCC  CCCCCCCCCC+++C+++++CCCCC++CCCCCC+CCCCCCC+++C+C+C++++

C  CC CC   C CCCCCCCCC   CC CC                                                            CCC CCCCC     CC      C       CCC C C CCCC

"--"-""--""""++==M==MMM--M=M==+111+1111++=++++==+======I======IIIAAAXAXXX=--Z---MMM==="+++="""+"""""++""+"+="+"++"+"++++""""++=""""+
+..+.++..++++CCCC CC   CC C CC                                            CC CCC   CCC+CCCC+++C+++++CC++C+CC+C+CC+C+CCCC++++CCC++++C

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

 XX X  XX

 CC C  CC

---------"""-"-----""-""""-"-+1--------111++1++++==++++=++++=====IIAAIAXXIZZZ----MMMMM===M-====+="+++=+===M""++++"+++="++"++"==+""""
.........+++.+.....++.++++.+.C                                               CCCC     CCC CCCCCCC+CCCCCCCC ++CCCC+CCCC+CC+CC+CCC++++

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

XXXXXXXXX   X XXXXX  X    X X

CCCCCCCCC   C CCCCC  C    C C

--------""""---"--""--""""""-Z-    - -----11111+++=+++++++======II=IAAAAXXXZX-Z--M-MM=++++==+++""-"++++++++++++++"+++++=+="+"++++"""
........++++...+..++..++++++.                                                C CC C  CCCCCCCCCC++.+CCCCCCCCCCCCCC+CCCCCCCC+C+CCCC+++

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

XXXXXXXX    XXX XX  XX      X                                                                    X

CCCCCCCC    CCC CC  CC      C                                                                    C

-"--"---""""--""---""-"""""--+         -----111++11+++11++++++++===IIIIAIXXAXXZZ---M=M=+++"+++""""-"""""+""++"""+"+"++"+++"""=+"+=++
.+..+...++++..++...++.+++++..                                                   CCC C CCCC+CCC++++.+++++C++CC+++C+C+CC+CCC+++CC+CCCC

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

X XX XXX    XX  XXX  X     XX                                                                     X

C CC CCC    CC  CCC  C     CC                                                                     C

---------""""-""------""""----         -----1111111111111++++++++=====I=IAAAXXXZZ----===+"++++""""--""""""""""+=+"++++++""+"+++++"""
.........++++.++......++++...                                                    CCCCCCCC+CCCC++++..++++++++++CCC+CCCCCC++C+CCCCC+++

'''''''''CCCC'CC''''''CCCC'''                                                            C    CCCC''CCCCCCCCCC   C      CC C     CCC

XXXXXXXXX    X  XXXXXX    XXX                                                                     XX

CCCCCCCCC    C  CCCCCC    CCC                                                                     CC

---------""""-""--""---"""--+-    -      -------111--1111111++1++++===IIIAAAAAXXZ----M==+++===+"""--""""""""+"""""""++++""+"+++"+++"
.........++++.++..++...+++..C                                                    CCCC CCCCCCCCC+++..++++++++C+++++++CCCC++C+CCC+CCC+

'''''''''CCCC'CC''CC'''CCC''                                                                   CCC''CCCCCCCC CCCCCCC    CC C   C   C

XXXXXXXXX    X  XX  XXX   XX                                                                      XX

CCCCCCCCC    C  CC  CCC   CC                                                                      CC

---------"-"-""---"---""-"----  - -     ------11111-111111111++++++=====IIIAAXXXZZ---M===++====+++""""+""+"""""+""""++"+""+"""+""=""
.........+.+.++...+...++.+..C                                                     CCC CCCCCCCCCCCC++++C++C+++++C++++CC+C++C+++C++C++

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

XXXXXXXXX X X  XXX XXX  X XX

CCCCCCCCC C C  CCC CCC  C CC

-+---"------""----"-"-"""""-I----  - -  ------11+1--1--1111111++++++===I=IAAAXXXZZZZ-MMM==+=MMM==+++"""""+"""""""+"""+++""+"""""+"""
.C...+......++....+.+.+++++.                                                        C   CCCC   CCCCC+++++C+++++++C+++CCC++C+++++C+++

' '''C''''''CC''''C'C'CCCCC'                                                                        CCCCC CCCCCCC CCC   CC CCCCC CCC

X XXX XXXXXX  XXXX X X     X

C CCC CCCCCC  CCCC C C     C

---------"-----""-"--"-""""-I++----   ------11111111-11111111++++++++====AIAXAXXZZ---MMM===+======+=+""-""""+"""""""""+"""""-"""""""
.........+.....++.+..+.++++.                                                      CCC   CCCCCCCCCCCCC++.++++C+++++++++C+++++.+++++++

'''''''''C'''''CC'C''C'CCCC'                                                                         CC'CCCC CCCCCCCCC CCCCC'CCCCCCC

XXXXXXXXX XXXXX  X XX X    X                                                                           X                    X

CCCCCCCCC CCCCC  C CC C    C                                                                           C                    C

--------""--"--"-""--""-"-""A==++11 -----1--111111-1-11111111+11++++===IIAIAAAXXZZZ---MMM=====MM=====+"""""++""+"-"""""""""""-""""""
........++..+..+.++..++.+.++                                                       CCC   CCCCC  CCCCCC+++++CC++C+.+++++++++++.++++++

''''''''CC''C''C'CC''CC'C'CC                                                                          CCCCC  CC C'CCCCCCCCCCC'CCCCCC

XXXXXXXX  XX XX X  XX  X X                                                                                       X           X

CCCCCCCC  CC CC C  CC  C C                                                                                       C           C

--------"---"-""-"--""--"--"AIII==+11111-1----11-111-11-1111111++++=====IAAIAAXZX----MMMMM=+==MM===M=="""""""""+""""""""""""-"--""""
........+...+.++.+..++..+..+                                                     CCCC     CCCC  CCC CC+++++++++C++++++++++++.+..++++

''''''''C'''C'CC'C''CC''C''C                                                                          CCCCCCCCC CCCCCCCCCCCC'C''CCCC

XXXXXXXX XXX X  X XX  XX XX                                                                                                 X XX

CCCCCCCC CCC C  C CC  CC CC                                                                                                 C CC

-"---"---""""---""--"---"--+XXIII==+111111111----1-1-1-111+1+++++++====IIIAAXZAZZ-------MM=+==MM=MM==M+"""-"+"""""""""""""""-"-"""""
.+...+...++++...++..+...+..C                                                     CCCCCCC  CCCC  C  CC C+++.+C+++++++++++++++.+.+++++

'C'''C'''CCCC'''CC''C'''C''                                                                            CCC'C CCCCCCCCCCCCCCC'C'CCCCC

X XXX XXX    XXX  XX XXX XX                                                                               X                 X X

C CCC CCC    CCC  CC CCC CC                                                                               C                 C C

"-------""--"---------"""--=XXAIIII===+++111+11--111--11-1111++++++===IIIAAAXXXZZ-----MMMM=+==MM=MMMM==""""-"--""-""""""""""-"""---"
+.......++..+.........+++..C                                                     CCCCC    CCCC  C    CC++++.+..++.++++++++++.+++...+

C'''''''CC''C'''''''''CCC''                                                                            CCCC'C''CC'CCCCCCCCCC'CCC'''C

 XXXXXXX  XX XXXXXXXXX   XX                                                                                X XX  X          X   XXX

 CCCCCCC  CC CCCCCCCCC   CC                                                                                C CC  C          C   CCC

"-""----""-"-"-""----------MZXXAAAI======+++++1-1111---111111+++++====IIAAAAXXXZZ-----M-MMM===MM=MMMM==-""--""-""-"-"""""""""-""-"""
+.++....++.+.+.++..........                                                      CCCCC C   CCC  C    CC.++..++.++.+.+++++++++.++.+++

C'CC''''CC'C'C'CC''''''''''                                                                            'CC''CC'CC'C'CCCCCCCCC'CC'CCC

 X  XXXX  X X X  XXXXXXXXXX                                                                            X  XX  X  X X         X  X

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

""""----""-"-"-"--"------=M-ZZXAIAII=III======11111111-1111111+++++====IAAXXXZZZZ----MM-MMM==MMZ-===M==""""-"--""-"-""""+""""--"-"--
++++....++.+.+.+..+......C C                                                     CCCC  C   CC   CCCC CC++++.+..++.+.++++C++++..+.+..

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

    XXXX  X X X XX XXXXXX                                                                                  X XX  X X         XX X XX

    CCCC  C C C CC CCCCCC                                                                                  C CC  C C         CC C CC

"-""""--"""""---"--------ZZZZXXAAAA==I=II==I==++++11-1111+1111+++++=1IIIAAAXXXXZZ----MMMMMM==MMMMMMMM=="-""""-"++--""""""-""""""""-"
+.++++..+++++...+.......C                                                        CCCC      CC        CC+.++++.+CC..++++++.++++++++.+

C'CCCC''CCCCC'''C'''''''                                                                               C'CCCC'C  ''CCCCCC'CCCCCCCC'C

 X    XX     XXX XXXXXXX                                                                                X    X   XX      X        X

 C    CC     CCC CCCCCCC                                                                                C    C   CC      C        C

----""--"---------""--"-----ZXXAAIIAIIIIIIIII=I=++++++11111+1++++====IIAXAXXZZZ-------MMMM==MMMMMMM=MMM+"---""""--"""""+""""-""""""-
....++..+.........++..+CCCCC                                                   CCCCCCC    CC       C   C+...++++..+++++C++++.++++++.

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

XXXX  XX XXXXXXXXX  XX                                                                                   XXX    XX          X      X

CCCC  CC CCCCCCCCC  CC                                                                                   CCC    CC          C      C

-"-"""-----"-------"-"Z-MMM-ZZXXAAIIIIIIIIIII=II===+++11111++++======IIAAAXZZZ--Z-------MMM==MMMMMMM-M=+"---"-"""----"-"""""""""-"""
.+.+++.....+.......+.+ C   C                                                  CC CCCCCCC   CC       C CC+...+.+++....+.+++++++++.+++

'C'CCC'''''C'''''''C'C                                                                                  C'''C'CCC''''C'CCCCCCCCC'CCC

X X   XXXXX XXXXXXX X                                                                                    XXX X   XXXX X         X

C C   CCCCC CCCCCCC C                                                                                    CCC C   CCCC C         C

-"-"""-----"----------XXM==-ZZXAAIIAIIIIIIIIAIIIII=+++++1+++++=====IIIIAAXXZZZ-ZZ-------MMM==MM=MMMMMM="""---+"-"----""="""""-"---""
.+.+++.....+.........C   CCC                                                  C  CCCCCCC   CC  C      C+++...C+.+....++C+++++.+...++

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

X X   XXXXX XXXXXXXXX                                                                                     XXX  X XXXX        X XXX

C C   CCCCC CCCCCCCCC                                                                                     CCC  C CCCC        C CCC

---"""---"-"-----"-----XX==-ZXXXAIAAAIIIIAIIIIIIIIII==+=+++++==II=IIIIAAXXZZZZ--Z--------MM=MMMMMMM=-=M"----"M+------=+""""-------""
...+++...+.+.....+..CCC  CCC                                                  CC CCCCCCCC  C       CCC +....+ C......CC++++.......++

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

XXX   XXX X XXXXX XX                                                                                    XXXX   XXXXXX      XXXXXXX

CCC   CCC C CCCCC CC                                                                                    CCCC   CCCCCC      CCCCCCC

----"--------------ZZ-MMM---ZZZXXAAAAAIAI=IAAIIIAIIIII==+=+====IIIIIIAAAZXZZZ-------MM-MMM==MMMMMMMM-M="-----"-------"++"-""----"---
....+..............  C   CCC                                                 CCCCCCC  C   CC        C C+.....+.......+CC+.++....+...

''''C''''''''''''''                                                                                    C'''''C'''''''C  C'CC''''C'''

XXXX XXXXXXXXXXXXXX                                                                                     XXXXX XXXXXXX    X  XXXX XXX

CCCC CCCCCCCCCCCCCC                                                                                     CCCCC CCCCCCC    C  CCCC CCC

-"----------------"XXZ------ZZZXXAAIAAIIIIIIIIIIIIIIII=IIII==II=IIIAAAAXXXZZ----------MMMM==MM-MMMMMMM="""""""-""-""""""""""=""""-"-
.+................+   CCCCCC                                                CCCCCCCCCC    CC  C       C+++++++.++.++++++++++C++++.+.

'C''''''''''''''''C                                                                                    CCCCCCC'CC'CCCCCCCCCC CCCC'C'

X XXXXXXXXXXXXXXXX                                                                                            X  X               X X

C CCCCCCCCCCCCCCCC                                                                                            C  C               C C

""--------------""-ZZXZXXZ---ZXXXAAIAAAIIIAAIAIIIIIIIIIAAAIIIIIIIAAAXIXXXZZ-----M--MMMMMM===MMMMMMMMM==+=++=+=+"+"+=+++++++===++++=+
++..............++C       CCC                                              CCCCC CC      CCC         CCCCCCCCCC+C+CCCCCCCCCCCCCCCCCC

CC''''''''''''''CC                                                                                             C C

  XXXXXXXXXXXXXX

  CCCCCCCCCCCCCC

-----------------AX--ZZXXX--ZZXXXAAAAAAAIIIIIIIIIIAAIIAAIAAIAAAAAAAXXXXZZZZ-M----M-M-MMMMM==MMMMMM-MM=="+""+==+++++"+MM+++===++++++M
.................  CC     CC                                               C CCCC C C     CC      C  CC+C++CCCCCCCC+C  CCCCCCCCCCCC

'''''''''''''''''                                                                                      C CC        C

XXXXXXXXXXXXXXXXX

CCCCCCCCCCCCCCCCC

-"---"---""----""XZX-M-ZZXZMZZZXXXAAAAIIIIIIAIAAAAAAAXAXAAXAIAIIAAAAXXZZZZZ-M--M---MM-MM===MMMM--MM=M==----+=--"""""""""""-"-"-"----
.+...+...++....++   C C                                                    C CC CCC  C  CCC    CC  C CC....CC..+++++++++++.+.+.+....

'C'''C'''CC''''CC                                                                                      ''''  ''CCCCCCCCCCC'C'C'C''''

X XXX XXX  XXXX                                                                                        XXXX  XX           X X X XXXX

C CCC CCC  CCCC                                                                                        CCCC  CC           C C C CCCC

""-""----"---"MMMZXX--ZZZZ--ZZZZXXAAAAAIIIIAAIAAAAAAAAAXXAXXXXAXAAAXXXZZZZZ----M--MMMMMM===MMMMMMMMMM="------"-"---""""+""----------
++.++....+...+      CC    CC                                               CCCC CC      CCC          C+......+.+...++++C++..........

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

  X  XXXX XXX                                                                                          XXXXXX X XXX       XXXXXXXXXX

  C  CCCC CCC                                                                                          CCCCCC C CCC       CCCCCCCCCC

---------"---ZAZZXAAXZXXX-MM-ZZXXXXXAXAIIIIAAAAAAXXAXAXXXXZXXZXZZZXZZZZZZ-------MMMMMM====MMMMMMMM=MM=-------""+""""""+"""----------
.........+...            C  C                                            CCCCCCC      CCCC        C  C.......++C++++++C+++..........

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

XXXXXXXXX XXX                                                                                         XXXXXXX             XXXXXXXXXX

CCCCCCCCC CCC                                                                                         CCCCCCC             CCCCCCCCCC

"---""--"---"=XXZXAAXZZXXZ-MZZZZXXXXXXIIIIIAAAAAAAAXXXXZXXXZXZZZZZZZZZ------------MMM=====MMMMMMMMMMM=-------+"------"+"-"""-"--""--
+...++..+...+C            C                                           CCCCCCCCCCCC   CCCCC           C.......C+......+C+.+++.+..++..

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

 XXX  XX XXX                                                                                          XXXXXXX  XXXXXX   X   X XX  XX

 CCC  CC CCC                                                                                          CCCCCCC  CCCCCC   C   C CC  CC

"""-----------AXZZZZZZXZZZZM-ZZZXXXXXAAAAIIAAAAAXXXXXZXXXZZZZZ---M---------MMMMMMMMMM=+==MMMMMMMMM===+----"--+-------=""+"---""-----
+++...........              C                                 CCC CCCCCCCCC          CCCC         CCCC....+..C.......C++C+...++.....

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

   XXXXXXXXXXX                                                                                        XXXX XX XXXXXXX     XXX  XXXXX

   CCCCCCCCCCC                                                                                        CCCC CC CCCCCCC     CCC  CCCCC

""""""--"""---XZZ--ZZZZZ-MMM-ZZZXXXAXAAAAIIAAAAAXXXXZZXZZZZZ---MMM-MM--M-M-MMMMMMM====+MMMM-MMMMMMMM="---"--"+-------"""-""-""""""--
++++++..+++...   CC     C   C                               CCC   C  CC C C       CCCCC    C        C+...+..+C.......+++.++.++++++..

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

      XX   XXX                                                                                        XXX XX  XXXXXXX   X  X      XX

      CC   CCC                                                                                        CCC CC  CCCCCCC   C  C      CC

""""""--"-"---+-MMMZXXXZZ-MM--ZZZXXXAAAAAAIAAXAAXXXXZZZZZZZZ---MMMMMMMMM--MMMMM====++==MMMMMMMMMM=M==-"-----"=-------"+""-+""""-"""-
++++++..+.+...CC         C  CC                              CCC         CC     CCCCCCCC          C CC.+.....+C.......+C++.C++++.+++.

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

      XX X XXX                                                                                       X XXXXX  XXXXXXX    X     X   X

      CC C CCC                                                                                       C CCCCC  CCCCCCC    C     C   C

""""""-----"-""M--XZAXXXZ-MM-ZZZZZXXXXAAAAIAAAAXXZZZZZZZZ----M-MMMM=MM==MMMM=MM===+++==MMMMMMMMMM==="----"---""""----"+--+""""+""---
++++++.....+.++ CC       C  C                            CCCC C    C  CC    C  CCCCCCCC          CCC+....+...++++....+C..C++++C++...

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

      XXXXX X                                                                                        XXXX XXX    XXXX  XX        XXX

      CCCCC C                                                                                        CCCC CCC    CCCC  CC        CCC

""""""--""-"--""MM-ZZXZZZ-M=-ZZZZZXXXXAAAAAAXAXXXZZZZZZZZ---MMM=MMM======M=======+++==MM=M=MMMM====+"------"""-------"""-=--+"--"--"
++++++..++.+..++  C      C CC                            CCC   C   CCCCCC CCCCCCCCCCCC  C C    CCCCC+......+++.......+++.C..C+..+..+

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

      XX  X XX                                                                                       XXXXXX   XXXXXXX   X XX  XX XX

      CC  C CC                                                                                       CCCCCC   CCCCCCC   C CC  CC CC

""""""--"""--"-"-=M==M---=+=-ZZZXXXXXXXAAAAAXAAXZXZZZ-----M-MMM===============+++++===MMMMMMM=MM===""-----"-""-------""--"--"-"-""-"
++++++..+++..+.+.C CC CCCCCCC                        CCCCC C   CCCCCCCCCCCCCCCCCCCCCCC       C  CCC++.....+.++.......++..+..+.+.++.+

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

      XX   XX X X                                                                                    XXXXX X  XXXXXXX  XX XX X X  X

      CC   CC C C                                                                                    CCCCC C  CCCCCCC  CC CC C C  C

-"+""""-""-""--""""--"+M+""M-ZZXZZXXXXXXXXAAXXAXXZZZ-----MMMMM===+==+=+++++++""+++====MMMMMMMM====+-------+--""------"""----""""-"""
.+C++++.++.++..++++..+C C++ C                       CCCCC     CCCCCCCCCCCCCCC++CCCCCCC        CCCCC.......C..++......+++....++++.+++

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

X      X  X  XX    XX                                                                              XXXXXXX XX  XXXXXX   XXXX    X

C      C  C  CC    CC                                                                              CCCCCCC CC  CCCCCC   CCCC    C

""+"""""""""""""""""""-"-----ZZZXXXXXXXXAXAAAAAXXXZZZ--M-MMMM====++=+++""""--""++===MMMMMMM=MM=M==--"----"-"-"----"--"""---""""-""""
++C+++++++++++++++++++.+..CCC                        CC C    CCCCCCCCCC++++..++CCCCC       C  C CC..+....+.+.+....+..+++...++++.++++

CC CCCCCCCCCCCCCCCCCCC'C''                                             CCCC''CC                   ''C''''C'C'C''''C''CCC'''CCCC'CCCC

                      X XX                                                 XX                     XX XXXX X X XXXX XX   XXX    X

                      C CC                                                 CC                     CC CCCC C C CCCC CC   CCC    C

""""""--"""-"""""-""""---+Z=--ZZZZZXXXXXXXAAAXXZZZZZZ----MM====++++"+""-----"""+======MMMMM=M===+"--"-------""-----"-""------"-"""""
++++++..+++.+++++.++++...C CCC                       CCCC  CCCCCCCC+C++.....+++CCCCCCC     C CCCC+..+.......++.....+.++......+.+++++

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

      XX   X     X    XXX                                              XXXXX                      XX XXXXXXX  XXXXX X  XXXXXX X

      CC   C     C    CCC                                              CCCCC                      CC CCCCCCC  CCCCC C  CCCCCC C

"""""""""""""""""""""""""-Z=--ZZZZZXXZXXXXAAXXXXZZZZZ--M-MM=====+++"+""---""""++++====MMMMM====="---"----"-"""-----"-""----"-"-"""""
+++++++++++++++++++++++++C CCC                       CC C  CCCCCCCC+C++...++++CCCCCCCC     CCCCC+...+....+.+++.....+.++....+.+.+++++

CCCCCCCCCCCCCCCCCCCCCCCCC                                          C CC'''CCCC                  C'''C''''C'CCC'''''C'CC''''C'C'CCCCC

                                                                       XXX                       XXX XXXX X   XXXXX X  XXXX X X

                                                                       CCC                       CCC CCCC C   CCCCC C  CCCC C C

""""""""""""""""""""""""+ZM=M-ZZZZZXXZXZXXXAXXXXZZZZZ---MMM====++++"+""""""""+++++===MMMMMM===M"----"--------"-------""-----""--""""
++++++++++++++++++++++++C  C C                       CCC   CCCCCCCC+C++++++++CCCCCCCC      CCC +....+........+.......++.....++..++++

CCCCCCCCCCCCCCCCCCCCCCCC                                           C CCCCCCCC                  C''''C''''''''C'''''''CC'''''CC''CCCC

                                                                                                XXXX XXXXXXXX XXXXXXX  XXXXX  XX

                                                                                                CCCC CCCCCCCC CCCCCCC  CCCCC  CC

""""""""""""""""--"""""--XM-M--ZZZZZZZXXXZXAXXXXXXZZ---MMM=M==++++++++"++"""-""+++============+-"---"--------"-------+"----""""-"""+
++++++++++++++++..+++++.C  C CC                     CCC   C CCCCCCCCCC+CC+++.++CCCCCCCCCCCCCCCC.+...+........+.......C+....++++.+++C

CCCCCCCCCCCCCCCC''CCCCC'                                              C  CCC'CC                'C'''C''''''''C''''''' C''''CCCC'CCC

                XX     X                                                    X                  X XXX XXXXXXXX XXXXXXX  XXXX    X

                CC     C                                                    C                  C CCC CCCCCCCC CCCCCCC  CCCC    C

""""-""-"""""""------"-"XXM---ZZZXZZZZZZZZXXXXXXZZ----MMMMM===+++++++++"+"""""""+++=======++++------"--------"+------"------"""-""-"
++++.++.+++++++......+.+   CCC                    CCCC     CCCCCCCCCCCC+C+++++++CCCCCCCCCCCCCC......+........+C......+......+++.++.+

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

    X  X       XXXXXX X                                                                       XXXXXX XXXXXXXX  XXXXXX XXXXXX   X  X

    C  C       CCCCCC C                                                                       CCCCCC CCCCCCCC  CCCCCC CCCCCC   C  C

""""-""-""""""""----""-=XX=-Z-ZZXZZZZZZZZZXAXXXXZZZ----MMMM====++++++++"++"""""""++M+++=+=+++-------"--------"-------"-"-----""--"""
++++.++.++++++++....++.C  CC C                     CCCC    CCCCCCCCCCCC+CC+++++++CC CCCCCCCCC.......+........+.......+.+.....++..+++

CCCC'CC'CCCCCCCC''''CC'                                                C  CCCCCCC            '''''''C''''''''C'''''''C'C'''''CC''CCC

    X  X        XXXX  X                                                                      XXXXXXX XXXXXXXX XXXXXXX X XXXXX  XX

    C  C        CCCC  C                                                                      CCCCCCC CCCCCCCC CCCCCCC C CCCCC  CC

""""""--""""""""-"-"-""ZXZ=MZMZZZZZXXZXXZZZAXZXZZ-Z-----MMM====++++++++++"""-"+""""=++"++++""-------"--------"-------"-------"-"--""
++++++..++++++++.+.+.++   C                      C CCCCC   CCCCCCCCCCCCCC+++.+C++++CCC+CCCC++.......+........+.......+.......+.+..++

CCCCCC''CCCCCCCC'C'C'CC                                                  CCC'C CCCC   C    CC'''''''C''''''''C'''''''C'''''''C'C''CC

      XX        X X X                                                       X                XXXXXXX XXXXXXXX XXXXXXX XXXXXXX X XX

      CC        C C C                                                       C                CCCCCCC CCCCCCCC CCCCCCC CCCCCCC C CC

"++""""-"""""""""""-""+ZXZ+MZ-ZZZXZXXZZZZZZAXZZXZZZZ---MMM=M====++++++++++""-""+""""+++++++"--------"----"---""------"-------"---"""
+CC++++.+++++++++++.++C   C  C                      CCC   C CCCCCCCCCCCCCC++.++C++++CCCCCCC+........+....+...++......+.......+...+++

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

       X           X                                                        X               XXXXXXXX XXXX XXX  XXXXXX XXXXXXX XXX

       C           C                                                        C               CCCCCCCC CCCC CCC  CCCCCC CCCCCCC CCC

"""""""""-"""-""""""""MXZ-=MZ-ZZZXZXXZZZZZZXAZZZZZZZ---MM=MMM===++++++++"+""-"--"""""+"""""---------"--------"-------"---------"""""
+++++++++.+++.++++++++   CC  C                      CCC  C   CCCCCCCCCCC+C++.+..+++++C+++++.........+........+.......+.........+++++

CCCCCCCCC'CCC'CCCCCCCC                                                  C CC'C''CCCCC CCCCC'''''''''C''''''''C'''''''C'''''''''CCCCC

         X   X                                                              X XX           XXXXXXXXX XXXXXXXX XXXXXXX XXXXXXXXX

         C   C                                                              C CC           CCCCCCCCC CCCCCCCC CCCCCCC CCCCCCCCC

""""+"-""""""""""""-""ZZ--M+-M-ZZZXXXZZXZZZXXXZXZZ-Z---MMMMM====++++=++++"""-"-"""""""""""""--------"--------"-------"----------"""-
++++C+.++++++++++++.++  CC CC C                   C CCC     CCCCCCCCCCCCC+++.+.+++++++++++++........+........+.......+..........+++.

CCCC C'CCCCCCCCCCCC'CC                                                   CCC'C'CCCCCCCCCCCCC''''''''C''''''''C'''''''C''''''''''CCC'

      X            X                                                        X X             XXXXXXXX XXXXXXXX XXXXXXX XXXXXXXXXX   X

      C            C                                                        C C             CCCCCCCC CCCCCCCC CCCCCCC CCCCCCCCCC   C

"""""""""""""--""""-"=ZX-M-+M=-Z-ZZXXXXXZZZXXXZZZZZZ-----MM==M==+++++++++"""---"""""+""++"----------"--"-----"-------"-----"----"""-
+++++++++++++..++++.+C  C CC CC C                   CCCCC  CC CCCCCCCCCCC+++...+++++C++CC+..........+..+.....+.......+.....+....+++.

CCCCCCCCCCCCC''CCCC'C                                                    CCC'''CCCCC CC  C''''''''''C''C'''''C'''''''C'''''C''''CCC'

             XX    X                                                        XXX           XXXXXXXXXX XX XXXXX XXXXXXX XXXXX XXXX   X

             CC    C                                                        CCC           CCCCCCCCCC CC CCCCC CCCCCCC CCCCC CCCC   C

""+""+--"""""""""""---XX-MM===M-ZZXZZZZXZZZXZAZZZZ--Z--MMMMM====+++=++++""""-"""""""+""+"--"--------"-------"=-------"--"----""--"""
++C++C..+++++++++++..C  C  CCC C                  CC CC     CCCCCCCCCCCC++++.+++++++C++C+..+........+.......+C.......+..+....++..+++

CC CC ''CCCCCCCCCCC''                                                   CCCC'CCCCCCC CC C''C''''''''C'''''''C '''''''C''C''''CC''CCC

      XX           XX                                                       X            XX XXXXXXXX XXXXXXX  XXXXXXX XX XXXX  XX

      CC           CC                                                       C            CC CCCCCCCC CCCCCCC  CCCCCCC CC CCCC  CC

""""""""""--"----""-"ZZX-M=M=MM--ZZZZZZXZXXXXXZZZZ-----M--MMM===+=+++++"""""-"""""+"""""---"--------"-------""-------"------"-"----"
++++++++++..+....++.+   C C C  CC                 CCCCC CC   CCCCCCCCCC+++++.+++++C+++++...+........+.......++.......+......+.+....+

CCCCCCCCCC''C''''CC'C                                                  CCCCC'CCCCC CCCCC'''C''''''''C'''''''CC'''''''C''''''C'C''''C

          XX XXXX  X                                                        X           XXX XXXXXXXX XXXXXXX  XXXXXXX XXXXXX X XXXX

          CC CCCC  C                                                        C           CCC CCCCCCCC CCCCCCC  CCCCCCC CCCCCC C CCCC

"""""""""""-"-----""=ZZZ-==MM--M--ZZZ-ZXZZXXXXZZZZ-ZZ----MMMM===+++==++""+""--"""+"""+""---"--------"-------""-------+-------+--"--"
+++++++++++.+.....++C   CCC  CC CC   C            C  CCCC    CCCCCCCCCC++C++..+++C+++C++...+........+.......++.......C.......C..+..+

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

           X XXXXX                                                          XX          XXX XXXXXXXX XXXXXXX  XXXXXXX XXXXXXX XX XX

           C CCCCC                                                          CC          CCC CCCCCCCC CCCCCCC  CCCCCCC CCCCCCC CC CC

"""""""-"""--"--"-----Z--==--MM=M--ZZ--ZZZZZZXXZZZ-Z-----M=MM===+++++++"++""--"""+"""+"----"-------"--------"--------"-------"-----=
+++++++.+++..+..+...CC CCCCCC  C CC  CC           C CCCCC C  CCCCCCCCCC+CC++..+++C+++C+....+.......+........+........+.......+.....C

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

       X   XX XX XXX                                                        XX         XXXX XXXXXXX XXXXXXXX XXXXXXXX XXXXXXX XXXXX

       C   CC CC CCC                                                        CC         CCCC CCCCCCC CCCCCCCC CCCCCCCC CCCCCCC CCCCC

"""""""-""""-"--""""Z-Z-=+--MMMMM----Z-ZZXZZZXXZZZ--Z-----MMMMM=++=++++++"""""""""""""-----"-------""-------"+------=+"------------"
+++++++.++++.+..++++ C CCCCC     CCCC C           CC CCCCC     CCCCCCCCCC+++++++++++++.....+.......++.......+C......CC+............+

CCCCCCC'CCCC'C''CCCC                                                     CCCCCCCCCCCCC'''''C'''''''CC'''''''C ''''''  C''''''''''''C

       X    X XX                                                                      XXXXX XXXXXXX  XXXXXXX  XXXXXX   XXXXXXXXXXXX

       C    C CC                                                                      CCCCC CCCCCCC  CCCCCCC  CCCCCC   CCCCCCCCCCCC

""""-"--""-"---"---+--XM+-----MMMM------ZZZZZZXZZ--Z-----MM=MM==++=+++++""""--""""""+------------------------------"""----"-------""
++++.+..++.+...+...CCC  CCCCCC    CCCCCC         CC CCCCC  C  CCCCCCCCCC++++..++++++C..............................C++....+.......++

CCCC'C''CC'C'''C'''                                                     CCCC''CCCCCC ''''''''''''''''''''''''''''''BCC''''C'''''''CC

    X XX  X XXX XXX                                                         XX       XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXH  XXXX XXXXXXX

    C CC  C CCC CCC                                                         CC       CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCX  CCCC CCCCCCC

"""-""--"-""-"-----M-ZXM+Z-MM--M=--------ZZZZZXZZZZZ----MMMMM===++++++++"+""--"""""""-------------------------------""---"--------""
+++.++..+.++.+..... C   C C  CC CCCCCCCCC           CCCC     CCCCCCCCCCC+C++..+++++++...............................++...+........++

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

   X  XX X  X XXXXX                                                         XX       XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX  XXX XXXXXXXX

   C  CC C  C CCCCC                                                         CC       CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC  CCC CCCCCCCC

""-"-"--"-------"---M-X=+---MMZMM---------ZZ-ZXZZ---------MM===M=+++++++""""--""""""--------------"-----------------""-------------+
++.+.+..+.......+..C C CCCCC     CCCCCCCCC  C    CCCCCCCCC  CCC CCCCCCCC++++..++++++..............C.................++.............C

CC'C'C''C'''''''C''                                                     CCCC''CCCCCC''''''''''''''B'''''''''''''''''CC'''''''''''''

  X X XX XXXXXXX XX                                                         XX      XXXXXXXXXXXXXXHXXXXXXXXXXXXXXXXX  XXXXXXXXXXXXX

  C C CC CCCCCCC CC                                                         CC      CCCCCCCCCCCCCCXCCCCCCCCCCCCCCCCC  CCCCCCCCCCCCC

"""""----"""---"---M--Z==MM-=MX=M-------ZZZZ-ZZZZ----Z--ZM-M===M=+++++=++""""-""""+---------------------------------"---------+"---"
+++++....+++...+... CC CC  CC  C CCCCCCC    C    CCCC CC  C CCC CCCCCCCCC++++.++++C.................................+.........C+...+

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

     XXXX   XXX XXX                                                          X     XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXX  XXX

     CCCC   CCC CCC                                                          C     CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC CCCCCCCCC  CCC

"-"""--------"-----MMZZM=-=M-XZM-M-------ZZZ-ZZZZZ-Z-----MMMMM==+=+++=++++""--"---------------------------"-----------------"-------
+.+++........+.....     CCC C   C CCCCCCC   C     C CCCCC     CCCCCCCCCCCC++..+...........................+.................+.......

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

 X   XXXXXXXX XXXXX                                                         XX XXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXX XXXXXXX

 C   CCCCCCCC CCCCC                                                         CC CCCCCCCCCCCCCCCCCCCCCCCCCCC CCCCCCCCCCCCCCCCC CCCCCCC

""""""-------------M-XZ--ZM-Z-XMXMM-------ZZZ-ZZZ-ZZ--Z--MMMMMMM==++++++++""-----"-------------"----------"----------"-----""-------
++++++............. C  CC  C C     CCCCCCC   C   C  CC CC       CCCCCCCCCC++.....+.............+..........+..........+.....++.......

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

      XXXXXXXXXXXXX                                                         XXXXX XXXXXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXX  XXXXXXX

      CCCCCCCCCCCCC                                                         CCCCC CCCCCCCCCCCCC CCCCCCCCCC CCCCCCCCCC CCCCC  CCCCCCC

""""""-----"-----"-"-ZXZZ--MZXX=ZMMM---------ZZ-ZZZZ-------MM=M==+=++++"+"+"----"--------------"---------------------=-----"-------"
++++++.....+.....+.+C    CC    C    CCCCCCCCC  C    CCCCCCC  C CCCCCCCC+C+C+....+..............+.....................C.....+.......+

CCCCCC'''''C'''''C'C                                                   C C C''''C''''''''''''''C''''''''''''''''''''' '''''C'''''''C

      XXXXX XXXXX X                                                         XXXX XXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX XXXXX XXXXXXX

      CCCCC CCCCC C                                                         CCCC CCCCCCCCCCCCCC CCCCCCCCCCCCCCCCCCCCC CCCCC CCCCCCC

""-""""--"-""--"---"M-XZXMA-AXXX-ZM---Z---Z-ZZZZ-ZZZZZ-----MMMMM===+++++++"""---"--------""""-------"----"--"-------""----"--"--"---
++.++++..+.++..+...+ C     C    C  CCC CCC C    C     CCCCC     CCCCCCCCCC+++...+........++++.......+....+..+.......++....+..+..+...

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

  X    XX X  XX XXX                                                          XXX XXXXXXXX    XXXXXXX XXXX XX XXXXXXX  XXXX XX XX XXX

  C    CC C  CC CCC                                                          CCC CCCCCCCC    CCCCCCC CCCC CC CCCCCCC  CCCC CC CC CCC

"""""""-------------"ZZMZM=-MZX-MZ=---Z----Z--ZZZZ--ZZZ-----MMM==+=++=++"""+"-"----------""""-------"-----""""""""""+"""""""""""+++"
+++++++.............+     CC   C  CCCC CCCC CC    CC   CCCCC   CCCCCCCCC+++C+.+..........++++.......+.....++++++++++C+++++++++++CCC+

CCCCCCC'''''''''''''C                                                   CCC C'C''''''''''CCCC'''''''C'''''CCCCCCCCCC CCCCCCCCCCC   C

       XXXXXXXXXXXXX                                                         X XXXXXXXXXX    XXXXXXX XXXXX

       CCCCCCCCCCCCC                                                         C CCCCCCCCCC    CCCCCCC CCCCC

"""""""----------"---=Z-X-M+=ZZ=ZZ=M------ZZZ-ZZZZ-Z-ZZ-----MMM=======+++++"""--"----------------"-----------"-"-"--"""-"-----------
+++++++..........+...C C C CC  C  C CCCCCC   C    C C  CCCCC   CCCCCCCCCCCC+++..+................C...........+.+.+..+++.+...........

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

       XXXXXXXXXX XXX                                                         XX XXXXXXXXXXXXXXXXHXXXXXXXXXXX X X XX   X XXXXXXXXXXX

       CCCCCCCCCC CCC                                                         CC CCCCCCCCCCCCCCCCXCCCCCCCCCCC C C CC   C CCCCCCCCCCC

"+""-""-----------"--"--X-MM=ZZ-ZZ-M-M---M--Z-ZZZZZZZZZ----MMM========+++"+"""--------"----------------------------------=----------
+C++.++...........+..+CC C  C  C  C C CCC CC C         CCCC   CCCCCCCCCCC+C+++........+..................................C..........

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

    X  XXXXXXXXXXX XX                                                         XXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXX

    C  CCCCCCCCCCC CC                                                         CCCCCCCC CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC CCCCCCCCCC

"=""""""""""-""--""-"-+MAXI-+XZ-XZ-M--Z--Z-ZZ-ZXZZZZZZZZ-Z---MMM=M=+==++=++""-------------------------------------------------------
+C++++++++++.++..++.+.C    CC  C  C CC CC C  C          C CCC   C CCCCCCCCC++.......................................................

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

            X  XX  X X                                                       XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

            C  CC  C C                                                       CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC

""""""""""""---""""---""---"=IX-XX-+M--Z----ZZZZXZZZZZZZ-----MMMMM====++++""""-----------------------------------------"------------
++++++++++++...++++...++C..+C  C  CC CC CCCC            CCCCC     CCCCCCCC++++.........................................+............

CCCCCCCCCCCC'''CCCC'''CC ''C                                              CCCC'''''''''''''''''''''''''''''''''''''''''C''''''''''''

            XXX    XXX   XX                                                   XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXX

            CCC    CCC   CC                                                   CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC CCCCCCCCCCCC

--"""+"""""""---"-"--""-M--"-IX-ZX-+M--Z--Z--Z-ZXZXXZZZZZZ-Z---MMM====++++""""------------------------------------------------------
..+++C+++++++...+.+..++. ..+C  C  CC CC CC CC C           C CCC   CCCCCCCC++++......................................................

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

XX           XXX X XX  X XX                                                   XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

CC           CCC C CC  C CC                                                   CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC

--"""""--""--"----"--""-=--=-AZZXX-"+MM---Z--Z-ZXXZXXXZZZZZZ-M-MMM=+===++"""""------------------------------------------------------
..+++++..++..+....+..++.C..CC     C+C  CCC CC C             C C   CCCCCCC+++++......................................................

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

XX     XX  XX XXXX XX  X XX                                                   XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

CC     CC  CC CCCC CC  C CC                                                   CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC

---""""""""""----""---"-M"-XXAXAZAM"+M---Z-Z-Z--ZZXXZXZZ-XZ-Z-MM=MM===+++++"""-----"------------------------------------------------
...++++++++++....++...+. +.        +C CCC C C CC        C  C C  C  CCCCCCCC+++.....+................................................

'''CCCCCCCCCC''''CC'''C' C'        C                                       CCC'''''C''''''''''''''''''''''''''''''''''''''''''''''''

XXX          XXXX  XXX X  X                                                   XXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

CCC          CCCC  CCC C  C                                                   CCCCC CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC

"+"-"""-"---------"-------=IAAXZAX=+"+M-----Z---ZZZZXZZZZZZ---MM=MM===++++"""-"-----------------------------------------------------
+C+.+++.+.........+.....C.C       CC+C CCCCC CCC           CCC  C  CCCCCCC+++.+.....................................................

C C'CCC'C'''''''''C''''' '          C                                     CCC'C'''''''''''''''''''''''''''''''''''''''''''''''''''''

   X   X XXXXXXXXX XXXXX X                                                   X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

   C   C CCCCCCCCC CCCCC C                                                   C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC

+-=+++""""+""""""""""-""X"X=IAZZXX++-"M-------ZZ-ZZZZZZZZZZ----MMMM=+=+++++""""+"""-------------------------------------------------
CCCCCC++++C++++++++++.++ +        CC.+ CCCCCCC  C          CCCC    CCCCCCCC++++C+++.................................................

      CCCC CCCCCCCCCC'CC C          'C                                     CCCC CCC'''''''''''''''''''''''''''''''''''''''''''''''''

                     X              X                                              XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                     C              C                                              CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC

"++=MM"""++"""""""""""""A"A=AAZZXZ=+-==MM-------ZXXZXXZZZZ-----MM======++++"""====+++++"-------------------------------------"------
+CCC  +++CC+++++++++++++ +        CC.CC  CCCCCCC          CCCCC  CCCCCCCCCC+++CCCCCCCCC+.....................................C......

C     CCC  CCCCCCCCCCCCC C          '                                      CCC         C'''''''''''''''''''''''''''''''''''''B''''''

                                    X                                                   XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXHXXXXXX

                                    C                                                   CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCXCCCCCC

+"++=MM+"+""""""""""""""A"AAAXXZZZ="-M=MM-M-----ZXXXXXZXZZZ-ZZ-MMMM===+==++"""MZXZZZ-Z-ZZM+"=--------+------------------------------
C+CCC  C+C++++++++++++++ +        C+. C  C CCCCC           C  C    CCCCCCCC+++      C C   C+C........C..............................

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

                                    X                                                        XXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                                    C                                                        CCCCCCCC CCCCCCCCCCCCCCCCCCCCCCCCCCCCCC

""+"+=M+=""""""""""""""+X"+AIAZZ--=""MMMM--------XXZZZZZZZ-----MM=======++++"-MZZXZZZZZZXX-M=++------"-----------------"------------
++C+CC CC++++++++++++++C +C     CCC++    CCCCCCCC         CCCCC  CCCCCCCCCCC+.            C CCC......+.................+............

CC C     CCCCCCCCCCCCCC  C         CC                                       C'                 ''''''C'''''''''''''''''C''''''''''''

                                                                             X                 XXXXXX XXXXXXXXXXXXXXXXX XXXXXXXXXXXX

                                                                             C                 CCCCCC CCCCCCCCCCCCCCCCC CCCCCCCCCCCC

""""++=+=++""""""""""""=X"""-X-Z-M+"+--MM----Z---ZXZZXZXZZZZ--MMMM=====++++"""+ZXXZZXXZ-M++++"""-------------"--""-------------"----
++++CCCCCCC++++++++++++C +++C C C C+CCC  CCCC CCC           CC    CCCCCCCCC+++C        C CCCC+++.............+..++.............C....

CCCC       CCCCCCCCCCCC  CCC       C                                       CCC               CCC'''''''''''''C''CC'''''''''''''B''''

                                                                                                XXXXXXXXXXXXX XX  XXXXXXXXXXXXXHXXXX

                                                                                                CCCCCCCCCCCCC CC  CCCCCCCCCCCCCXCCCC

""""""++++++"""""""""""=X""""ZM+++""=---M--M-----ZXXZXXZZZZ----MMMM=+==+++"""""ZXZM===+"""""+""-"""""""-"+"""++""+"++"--"-""---"----
++++++CCCCCC+++++++++++C ++++  CCC++CCCC CC CCCCC          CCCC    CCCCCCC+++++    CCCC+++++C++.+++++++.+C+++CC++C+CC+..+.++...C....

CCCCCC      CCCCCCCCCCC  CCCC     CC                                      CCCCC        CCCCC CC'CCCCCCC'C CCC  CC C  C''C'CC'''B''''

                                                                                               X       X              XX X  XXXHXXXX

                                                                                               C       C              CC C  CCCXCCCC

"""""""++++"+""""""""-"+X""""XM"-+""M---=M-------ZXXZZZZZZZZ--MMMM=M===+++++""-="--"+=+""+M-Z-=MMM-=+"++++"""==M=++=M=+M+""""+""--"-
+++++++CCCC+C++++++++.+C ++++  +.C++ CCCC CCCCCCC           CC    C CCCCCCCC++.C+..+CCC++C C CC   CCC+CCCC+++CC CCCC CC C++++C++..C.

CCCCCCC    C CCCCCCCC'C  CCCC  C' CC                                        CC' C''C   CC            C    CCC            CCCC CC''B'

                     X          X                                             X  XX                                             XXHX

                     C          C                                             C  CC                                             CCXC

""""""""+++++""""""""--+X""""--"-"-"----ZM--------XXXZZZZZ-Z--MM=======+++"""--"+"""+""""""++==+=MM-Z-M+++=++++++==MM++""""++=++++"-
++++++++CCCCC++++++++..C ++++CC+.+.+CCCC  CCCCCCCC        C CC  CCCCCCCCCC+++..+C+++C++++++CCCCCC  C C CCCCCCCCCCCC  CC++++CCCCCCC+.

CCCCCCCC     CCCCCCCC''  CCCC  C'C'C                                      CCC''C CCC CCCCCC                            CCCC       C'

                     XX         X X                                          XX                                                    X

                     CC         C C                                          CC                                                    C

+""""""""+++""++""""-"""A""""Z---"-"---ZZ---------XXZZZZZZZ----MM======+++++"""--XZZZM++++M-====M=++++=++====++==ZM-M++++++"++==+++"
C++++++++CCC++CC++++.+++ ++++ C..+.+CCC  CCCCCCCCC         CCCC  CCCCCCCCCCC+++.C     CCCC CCCCC CCCCCCCCCCCCCCCC  C CCCCCC+CCCCCCC+

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

                    X          XX X                                            X

                    C          CC C                                            C

--+"M"=====+++++"+""-"""A""""Z---"-+---ZZZ-ZZ---Z-XXZZZZZZ-----M=MM===++++++"""-MMZX+IIXZA=I===ZAA-==+++++++==--ZX-XXXZM+"++"+""++"+
CCC+ +CCCCCCCCCC+C++.+++ ++++ C..+.CCCC   C  CCC C        CCCCC C  CCCCCCCCC+++.            CCC   CCCCCCCCCCCCCC  C     C+CC+C++CC+C

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

                    X          XX X                                            X

                    C          CC C                                            C