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