.     .          .        .     .        .     . .        .     .        .     .    .     .        . 
    .     .          .        .     .        .     . .        .     .        .     .    .     .        . 
    .     .          .        .     .        .     . .        .     .        .     .    .     .        . 
    .     .          .        .     .        .     . .        .     .        .     .    .     .        . 
    .     .        .,,,,,,,,,,,,,,. .    ,,,,,,,,,,,,,    ,,,,,,,,,,,,,      .   .,,,,,,,,,,,,'        . 
    .     .      ''oNkxdxdxxdx0N0Nc .    xx0N0N0N0Nkxd    dxON0N0N0N0xd      .   .xdN0NN0N0Nkx:        . 
    .     .    ,'kNkx:        dxONc .      dx0N0Nkx: .      cxkN0NOxd        .     .xdNN0Nxx; .        . 
    .     .  ..0N0Nc .        . xNc .        0N0Nc . .        oN0Nx .        .     .  NN0N'   .        . 
    .     .  NN0NkO; .        . lO; .        0N0Nc . .        oN0Nx .        .     .  NN0N'   .        . 
    .     ...NN0N'   .        .     .        0N0Nc . .        oN0Nx .        .     .  NN0N'   .        . 
    .     .N0NNOK'   .        .     .        0N0Nc . .        oN0Nx .        .     .  NN0N'   .        . 
    .     .N0NN      .        .     .        0N0Nc . .        oN0Nx .        .     .  NN0N'   .        . 
    .     .N0NN      .        .     .        0N0Nc . .        oN0Nx .        .     .  NN0N'   .        . 
. . . . . .X0XX. . . . . .  . . . . . . .  . OX0Xc . . .  . . oX0X0XOX0XX0X0XOX0X0XOX0XXOX' . . . .  . . 
    .     .N0NN      .      0N0N0N0No        0N0Nc . .        oN0Nx .        .     .  NN0N'   .        . 
    .     .N0NN      .      ..0N0Nl..        0N0Nc . .        oN0Nx .        .     .  NN0N'   .        . 
    .     .N0NNOK'   .        0N0Nc .        0N0Nc . .        oN0Nx .        .     .  NN0N'   .        . 
    .     ...NN0N'   .        0N0Nc .        0N0Nc . .        oN0Nx .        .     .  NN0N'   .        . 
    .     .  NN0NkO; .        0N0Nc .        0N0Nc . .        oN0Nx .        .     .  NN0N'   .        . 
    .     .  ..0N0Nc .        0N0Nc .        0N0Nc . .        oN0Nx .        .     .  NN0N'   .        . 
    .     .    ,'kNkx:      dx0Nc'. .      dx0N0Nkx: .      cxkN0NOxd        .     .xdNN0Nxx; .        . 
    .     .      ''oNkxdxdxx0N,'.   .    xx0N0N0N0Nkxd    dxON0N0N0N0xd      .   .xdN0NN0N0Nkx:        . 
    .     .        .,,,,,,,,,,.     .    ,,,,,,,,,,,,,    ,,,,,,,,,,,,,      .   .,,,,,,,,,,,,'        . 
    .     .          .        .     .        .     . .        .     .        .     .    .     .        . 
    .     .          .        .     .        .     . .        .     .        .     .    .     .        . 
    .     .          .        .     .        .     . .        .     .        .     .    .     .        . 
    .     .          .        .     .        .     . .        .     .        .     .    .     .        .