..JJ.gMNMMNg..
                                 .MMMMMMN#MMMMMMNNJ...
                            ..gNMMMMNNMMN#NNMMMMMMMMNMMNa,
                        ..dNMMMMMMMMMMMMMNMMNMMMMMMMMMMMMMb
                        HMMMMMN#HHM#MNMMMMMMMMMMMMMMMMMMMMMb        
                       JMMMMMMMMMMMMMM@MMMMMMMMMMMMMMMMMM#MMp      
                      .MMMMMMMMMMMMMMMMMMM#MMMMMMMMMMMMMMMMMM,
                      .M:+?MMMMMMB=`````^^`?TWMMMMMMMMMMMMMMMN,
                     . ``................^^^^::?TMMMMMMMMMMMMMN,
                     ............``.`....^^^^^:;++HMMMMMMMMNMMMN
                    7!..`...`..``.``......^^^^::++?dMMMMMMNM@MMMb
                   `.Jgmg..`.`.+kHHHmJ..^.^^^^^::+?1HMMMMMH#MMMMN
                   .MMMMM\....dMB9Uu0UTH,^.^^^^^::;;+MMMMMMNMMMMM;
                   ?C7??Oz....+lOz?!???z+.^^^^^:::;;?JMMMMMMMMMMMb
                   +jc```+!.^++!.````..^!::::^:::;;;;?MMMMMMMBC+?7
                  .+:.nJx...^^;:dlj,  `1.^:::::::;;;;??dMMMM3zzzz1+.
                 ..+.WMM8+`..`+?MMMR   .`^^:^::;;;;;;??zMMMMv+++++++
                 ``:+1I!.`....``?1z+,```^^^^::::;;;;;???dHHH=zlz+;;+
                 +.`..``...+?+.^..........^^^:;;;;;;?;???vW$1rz+:++!
                 Mb... ...?;:`..++..^..^^^.^.:;;;;;?????1?Xz+1!`.!?
                 WS+.....++?+..+zv::.^^^^:::;;;;;????????zz?;?+?!,
                WfHz1z++zzswWW9T:^^^^^^::;;;;;;????????=lvdm++.Jg\
                xzVI;?zCwUOz++::^^^^^.++;;;??;???????==lOZdMMMMMF
                 9+z1;;?+++:::^^^^.?++1zz??????????==lOwXMMMMMM@`
                  `+`1+;;;+:::..?+++zVC+????????===llwwWMMMMM#^
                     `=Z0ytAzOOOTzz+??++=====?=lllOwXWH@MMM@!
                       1OwvwrtOll=????====lllltwwXWWWHHHW#!
                       !1+++++++;????==llztrwwkWfVWMMHHY
                       `.++:^^::+??=lzwwwXXWbpWyVNMMM8
                       ```zz+++zzzzwwXkWWpWWyZZyMMM
                       .`..??777TWpkbbHUUXXXuuXZ
                       V7U&  ` ..zVUVVOOOOtttrww???zCuZC?+++?
                   !+W` . Jb.. .?++:;++++11=z11zO.`Jd91Z???!!!?Owc`
                   +`7.. .dE???+!^^^^^::::;;;;;++dmWHWW$ ..` ` `?7Oz.
                .....+++????+!:^^^^^^^^^:::::++dWHMWWHHbXn&, `    ``+1:
               ^` `+;:!!!``^^``......^^^^.J+wWXKH@HXUWkWWWZ++...  .`.z.+=
             ! ```.....................JwXkXXWWWWHHWkWHkUX.``.``..1&.Oz+z1
           `.`.....`.......^...^..^.JuXXWWWW0XWUXkXWRdWVWX+....`.``?1zjv+++
          `^........`.`.......^..^.JVUXWWWXHXWXWUukXHUXpHI..^..`.``.``?OWMNs=.
          ```^.+.......`......^^..JdXXSXZHWkdHwWdW0XWuWHWI::^...`.`...``?UHHXv!
         .....+zz..^..........^^`+kXkkyWXSX0wwXW0XzZdSXWKw++::^.........?+zWH0:`