ffUUww!!                                        !!UUUU!!
                      eeMMzzeeMMff                                    zzMMnnnnMMnn
                  ;;BBMM!!!!nn""MMww                              ::UUMM""zzzz!!MMDD;;
                  ffDD!!UUffnnBB::##;;                            ""##::DDzzzzDD;;BB!!
                  ""MM::ee!!;;nnnnBB                              ::##!!nn""""ee""MM;;
                  BBUU  nnzznn;;""DDee                            wwDD;;!!nnnnff::DDUU
                MMUUff  ww""nnff  zzBBDD                        ##DDzz  zzzzffnn  zzDDMM
              !!MM  ww""nnnn!!nneenn  MM::                    ::MM  wwzzeeffzznn!!ee  MM;;
            wwMMBB##ffMM  ff!!::MM  ""BB##zz                nn##BB;;  MM  ffff  MMff##BBMMee
          BBBBMM;;MMMMzzzzff;;nnee!!ff;;UUDD                DDUU::zzffnnnn""!!zznnMMMM;;MMDDDD
        BB##nnMM  MMBB  nn!!ee;;::eeww  MMff                zzMM  wwee  !!zzzzff  ##MM  MMnnMMUU
        wwww""DDBBnnBB;;UU::::ww""MM####MMMMww            wwMMMM##MMMM;;UU::::UU;;BBee##ww!!wwee
        ##UUffee  nnDD::MM##MMBB!!BB;;  ww;;MMwwnn!!!!nnww##;;ee  ""##;;MM####MM;;DDnn  nnffDDBB
      ee##"";;ffww!!::UUnneennBBzz!!nn""ee;;zzBBnnDDwweeDDzz::ee!!nn!!nnMMzz""UUww::!!wwzz::!!##nn
    wwMMff!!ff;;DDffBB  ##  wwUUMMff""nn;;zzww  eeMMBBee  wwnn;;zzffffMMUUffnnMM  ##ffDD;;ff!!zzMMww
  zzMM;;  wwzzww  wwnn!!MMzznnffDD!!::;;;;wwff  MMMMMMMM  zznn!!  ;;ffDD!!!!;;eeffzzww  eennee  !!MMzz
zzMMnnff""nnzzzz  ffeeMMnnMMeeDDDD;;zzUU;;nnee  MMeeUU##::eeee;;UUnn;;BBUUnnMM""MMnnff  nnzzee::zznnMM!!
""MM""ee;;eezzffeezz!!MM""MMzzMM  ffee  ##  ""DDMMzznnMMww""  BB::nnff;;##nnMM""MM""nnww!!nnee  ww""MM""
  ""eeDDMMzz;;!!  !!  UUMMffBBwwzz::wwwwff;;UUMMzz"";;nnMMww;;ffUUee::zzUUDDffMMee::!!  ff  zzMMwwww;;
    ffffeeBBwwnnzzwwnnMMnnDDUUMMUU::!!zz;;zzMMffffzzzz""nnMMff::zzzz::BBMMwwBBnnMMnnwwffzzwwBBeezzff
          wwMMMMUUzzMMzz""""""MM;;BB!!""UUzzDD::ffffnn!!;;UUnnDD::ffDD;;MM""!!;;ee##ffBBMMMMee
          zzUUnnff::DDzzff::  ##DDzzzz  MMMMMM;;nnzzffzz""MMMMMM  zzffBB##  ::ffnnDD::ffeeUUzz
          !!MM::ww!!zz!!ffMM##MMff!!##UU##BB##MMBBeeUU##MM##BBBBBB##!!zz####MMff""nnffww;;MM!!
            ;;DDBBMM!!""MM""DDee""ffMMMMwwffDDDDzzBBDDnnDDwwzzUU##MM!!!!eeDD""MM;;ffMMDDBB::
              """"nnDDMMnnzz##BBDDnn;;;;ffDDBB  MMMM##MM  BBUUnn  ""zzDD####zzww##BBzz""""
                    ww##MMMMww##MM"";;zz::MMMM  MMMMMM##  MMMM;;!!""""MM##eeMMMMMMww
                          BBff;;ww""nnnnzz;;UUzzMMwwww##nnUU;;ffnnee;;UU::nnBB
                          ""##zz  ""ww!!UU  ;;MM!!;;;;ff##::  wwffnn!!  zz##""
                            UUMMww::nnzzzz""MMMM        MMMM""zznnee::UUMMww
                              BBww""""nn;;zzMM            MMnn;;zzff;;DDDD
                              MM!!DD!!""wweeBB;;        ""BBnnDD::ffDDffMM
                              zzMMDDff  ##BBUU            DDDD##  ffBBMMff
                                ;;MM##UUMMww                wwMMUU##MM;;
                                    zznn;;                    ;;nnzz