#include <FastLED.h>

const size_t ledsCount = 32 * 8;
CRGB leds[ledsCount];

//---------------------------------------------------------------------------

const uint32_t frames[][32] PROGMEM =
{
  // frame 000
  {
    0x00100000, 0x00010000, 0x00001000, 0x00022200,
    0x02002200, 0x10000000, 0x01000000, 0x00100000,
    0x10000000, 0x10000000, 0x01000000, 0x02222002,
    0x10222222, 0x00000000, 0x00000000, 0x00000000,
    0x00100000, 0x00010000, 0x00001000, 0x11111100,
    0x00303303, 0x00000000, 0x01000000, 0x00100000,
    0x10000000, 0x10000000, 0x01000000, 0x33333300,
    0x11132231, 0x11111111, 0x11111111, 0x11111111
  },
  
  // frame 001
  {
    0x00000000, 0x00000000, 0x00000000, 0x00222000,
    0x00200220, 0x00010000, 0x00001000, 0x00000100,
    0x00000100, 0x00000010, 0x00000000, 0x22222020,
    0x01022222, 0x20000010, 0x00000001, 0x00000001,
    0x00000000, 0x00000000, 0x00000001, 0x11111000,
    0x00030330, 0x30010000, 0x00001000, 0x00000100,
    0x00000100, 0x00000010, 0x00000003, 0x33333000,
    0x11113223, 0x11111111, 0x11111111, 0x11111111
  },
  
  // frame 002
  {
    0x10000000, 0x10000000, 0x01000000, 0x02220000,
    0x40020022, 0x00000000, 0x00000000, 0x00000000,
    0x00100000, 0x00010000, 0x00001002, 0x22220204,
    0x40102222, 0x22000000, 0x01000000, 0x00100000,
    0x10000000, 0x10000000, 0x01000011, 0x11110004,
    0x40003033, 0x03000000, 0x00000000, 0x00000000,
    0x00100000, 0x00010000, 0x00001033, 0x33330000,
    0x11111322, 0x31111111, 0x11111111, 0x11111111
  },
  
  // frame 003
  {
    0x00000100, 0x00000010, 0x00000000, 0x22200000,
    0x04002002, 0x20000010, 0x00000001, 0x00000001,
    0x00000000, 0x00000000, 0x00000022, 0x22202040,
    0x04010222, 0x22200000, 0x00001000, 0x00000100,
    0x00000100, 0x00000010, 0x00000111, 0x11100040,
    0x04000303, 0x30300010, 0x00000001, 0x00000001,
    0x00000000, 0x00000000, 0x00000333, 0x33300000,
    0x11111132, 0x23111111, 0x11111111, 0x11111111
  },
  
  // frame 004
  {
    0x00100000, 0x00010000, 0x00001002, 0x22000000,
    0x40400200, 0x22000000, 0x01000000, 0x00100000,
    0x10000000, 0x10000000, 0x01000222, 0x22020400,
    0x00401022, 0x22220000, 0x00000000, 0x00000000,
    0x00100000, 0x00010000, 0x00001111, 0x11000400,
    0x00400030, 0x33030000, 0x01000000, 0x00100000,
    0x10000000, 0x10000000, 0x01003333, 0x33000000,
    0x11111113, 0x22311111, 0x11111111, 0x11111111
  },
  
  // frame 005
  {
    0x00000000, 0x00000000, 0x00000022, 0x20000000,
    0x44040020, 0x02200000, 0x00001000, 0x00000100,
    0x00000100, 0x00000010, 0x00002222, 0x20204000,
    0x00040102, 0x22222010, 0x00000001, 0x00000001,
    0x00000000, 0x00000000, 0x00011111, 0x10004000,
    0x00040003, 0x03303000, 0x00001000, 0x00000100,
    0x00000100, 0x00000010, 0x00033333, 0x30000000,
    0x11111111, 0x32231111, 0x11111111, 0x11111111
  },
  
  // frame 006
  {
    0x10000000, 0x10000000, 0x01000222, 0x00000000,
    0x44404002, 0x00220000, 0x00000000, 0x00000000,
    0x00100000, 0x00010000, 0x00022222, 0x02040004,
    0x40004010, 0x22222200, 0x01000000, 0x00100000,
    0x10000000, 0x10000000, 0x00111111, 0x00040004,
    0x40004000, 0x30330300, 0x00000000, 0x00000000,
    0x00100000, 0x00010000, 0x00333333, 0x00000000,
    0x11111111, 0x13223111, 0x11111111, 0x11111111
  },
  
  // frame 007
  {
    0x00000100, 0x00000010, 0x00002220, 0x00000000,
    0x44440400, 0x20022000, 0x00000001, 0x00000001,
    0x00000000, 0x00000000, 0x00222220, 0x20400040,
    0x04000401, 0x02222220, 0x00001000, 0x00000100,
    0x00000100, 0x00000010, 0x01111110, 0x00400040,
    0x04000400, 0x03033030, 0x00000001, 0x00000001,
    0x00000000, 0x00000000, 0x03333330, 0x00000000,
    0x11111111, 0x11322311, 0x11111111, 0x11111111
  },
  
  // frame 008
  {
    0x00100000, 0x00010000, 0x00022200, 0x00000000,
    0x44444040, 0x02002200, 0x01000000, 0x00100000,
    0x10000000, 0x10000000, 0x02222202, 0x04000400,
    0x00400040, 0x10222222, 0x00000000, 0x00000000,
    0x00100000, 0x00010000, 0x11111100, 0x04000400,
    0x00400040, 0x00303303, 0x01000000, 0x00100000,
    0x10000000, 0x10000000, 0x33333300, 0x00000000,
    0x11111111, 0x11132231, 0x11111111, 0x11111111
  },
  
  // frame 009
  {
    0x00000000, 0x00000000, 0x00222000, 0x00000000,
    0x04444404, 0x00200220, 0x00001000, 0x00000100,
    0x00000100, 0x00000000, 0x22222020, 0x40004000,
    0x00040004, 0x01022222, 0x20000001, 0x00000001,
    0x00000000, 0x00000001, 0x11111000, 0x40004000,
    0x00040004, 0x00030330, 0x30001000, 0x00000100,
    0x00000100, 0x00000003, 0x33333000, 0x00000000,
    0x11111111, 0x11113223, 0x11111111, 0x11111111
  },
  
  // frame 010
  {
    0x10000000, 0x10000000, 0x02220000, 0x00000000,
    0x00444440, 0x40020022, 0x00000000, 0x00000000,
    0x00100000, 0x00010002, 0x22220204, 0x00040000,
    0x00004000, 0x40102222, 0x22000000, 0x00100000,
    0x10000000, 0x10000011, 0x11110004, 0x00040000,
    0x00004000, 0x40003033, 0x03000000, 0x00000000,
    0x00100000, 0x00010033, 0x33330000, 0x00000000,
    0x11111111, 0x11111322, 0x31111111, 0x11111111
  },
  
  // frame 011
  {
    0x00000100, 0x00000000, 0x22200000, 0x00000000,
    0x20044444, 0x04002002, 0x20000001, 0x00000001,
    0x00000000, 0x00000022, 0x22202040, 0x00400002,
    0x20000400, 0x04010222, 0x22201000, 0x00000100,
    0x00000100, 0x00000111, 0x11100040, 0x00400002,
    0x20000400, 0x04000303, 0x30300001, 0x00000001,
    0x00000000, 0x00000333, 0x33300000, 0x00000000,
    0x11111111, 0x11111132, 0x23111111, 0x11111111
  },
  
  // frame 012
  {
    0x00100000, 0x00010002, 0x22000000, 0x00000000,
    0x02004444, 0x40400200, 0x22000000, 0x00100000,
    0x10000000, 0x10000222, 0x22020400, 0x04000020,
    0x02000040, 0x00401022, 0x22220000, 0x00000000,
    0x00100000, 0x00001111, 0x11000400, 0x04000020,
    0x02000040, 0x00400030, 0x33030000, 0x00100000,
    0x10000000, 0x10003333, 0x33000000, 0x00000000,
    0x11111111, 0x11111113, 0x22311111, 0x11111111
  },
  
  // frame 013
  {
    0x00000000, 0x00000022, 0x20000000, 0x00000000,
    0x20200444, 0x44040020, 0x02200000, 0x00000100,
    0x00000100, 0x00002222, 0x20204000, 0x40000202,
    0x20200004, 0x00040102, 0x22222001, 0x00000001,
    0x00000000, 0x00011111, 0x10004000, 0x40000200,
    0x20200004, 0x00040003, 0x03303000, 0x00000100,
    0x00000100, 0x00033333, 0x30000000, 0x00000000,
    0x11111111, 0x11111111, 0x32231111, 0x11111111
  },
  
  // frame 014
  {
    0x10000000, 0x10000222, 0x00000000, 0x00000000,
    0x22020044, 0x44404002, 0x00220000, 0x00000000,
    0x00100000, 0x00022222, 0x02040004, 0x00002020,
    0x22020000, 0x40004010, 0x22222200, 0x00100000,
    0x10000000, 0x10111111, 0x00040004, 0x00002000,
    0x22020000, 0x40004000, 0x30330300, 0x00000000,
    0x00100000, 0x00333333, 0x00000000, 0x00000000,
    0x11111111, 0x11111111, 0x13223111, 0x11111111
  },
  
  // frame 015
  {
    0x00000100, 0x00002220, 0x00000000, 0x00000000,
    0x22202004, 0x44440400, 0x20022000, 0x00000001,
    0x00000000, 0x00222220, 0x20400040, 0x00020200,
    0x22202000, 0x04000401, 0x02222220, 0x00000100,
    0x00000100, 0x01111110, 0x00400040, 0x00020002,
    0x22202000, 0x04000400, 0x03033030, 0x00000001,
    0x00000000, 0x03333330, 0x00000000, 0x00000000,
    0x11111111, 0x11111111, 0x11322311, 0x11111111
  },
  
  // frame 016
  {
    0x00100000, 0x00022200, 0x00000000, 0x00000000,
    0x02220200, 0x44444040, 0x02002200, 0x00100000,
    0x10000000, 0x02222202, 0x04000400, 0x00202000,
    0x02220200, 0x00400040, 0x10222222, 0x00000000,
    0x00100000, 0x11111100, 0x04000400, 0x00200020,
    0x02220200, 0x00400040, 0x00303303, 0x00100000,
    0x10000000, 0x33333300, 0x00000000, 0x00000000,
    0x11111111, 0x11111111, 0x11132231, 0x11111111
  },
  
  // frame 017
  {
    0x00000000, 0x00222000, 0x00000000, 0x00000000,
    0x00222020, 0x04444404, 0x00200220, 0x00000100,
    0x00000100, 0x22222020, 0x40004000, 0x02020000,
    0x00222020, 0x00040004, 0x01022222, 0x20000001,
    0x00000001, 0x11111000, 0x40004000, 0x02000200,
    0x00222020, 0x00040004, 0x00030330, 0x30000100,
    0x00000103, 0x33333000, 0x00000000, 0x00000000,
    0x11111111, 0x11111111, 0x11113223, 0x11111111
  },
  
  // frame 018
  {
    0x10000000, 0x02220000, 0x00000000, 0x00000000,
    0x40022202, 0x00444440, 0x40020022, 0x00000000,
    0x00100002, 0x22220204, 0x00040000, 0x20200000,
    0x00022202, 0x00004000, 0x40102222, 0x22000000,
    0x10000011, 0x11110004, 0x00040000, 0x20002000,
    0x40022202, 0x00004000, 0x40003033, 0x03000000,
    0x00100033, 0x33330000, 0x00000000, 0x00000000,
    0x11111111, 0x11111111, 0x11111322, 0x31111111
  },
  
  // frame 019
  {
    0x00000100, 0x22200000, 0x00000000, 0x00000000,
    0x04002220, 0x20044444, 0x04002002, 0x20000001,
    0x00000022, 0x22202040, 0x00400002, 0x02000004,
    0x00002220, 0x20000400, 0x04010222, 0x22200100,
    0x00000111, 0x11100040, 0x00400002, 0x00020004,
    0x04002220, 0x20000400, 0x04000303, 0x30300001,
    0x00000333, 0x33300000, 0x00000000, 0x00000000,
    0x11111111, 0x11111111, 0x11111132, 0x23111111
  },
  
  // frame 020
  {
    0x00100002, 0x22000000, 0x00000000, 0x00000000,
    0x00400222, 0x02004444, 0x40400200, 0x22000000,
    0x10000222, 0x22020400, 0x04000020, 0x20000040,
    0x40000222, 0x02000040, 0x00401022, 0x22220000,
    0x00101111, 0x11000400, 0x04000020, 0x00200040,
    0x00400222, 0x02000040, 0x00400030, 0x33030000,
    0x10003333, 0x33000000, 0x00000000, 0x00000000,
    0x11111111, 0x11111111, 0x11111113, 0x22311111
  },
  
  // frame 021
  {
    0x00000022, 0x20000000, 0x00000000, 0x00000000,
    0x00040022, 0x20200444, 0x44040020, 0x02200100,
    0x00002222, 0x20204000, 0x40000202, 0x00000404,
    0x04000022, 0x20200004, 0x00040102, 0x22222001,
    0x00011111, 0x10004000, 0x40000200, 0x02000404,
    0x00040022, 0x20200004, 0x00040003, 0x03303000,
    0x00033333, 0x30000000, 0x00000000, 0x00000000,
    0x11111111, 0x11111111, 0x11111111, 0x32231111
  },
  
  // frame 022
  {
    0x10000222, 0x00000000, 0x00000000, 0x00000000,
    0x40004002, 0x22020044, 0x44404002, 0x00220000,
    0x00022222, 0x02040004, 0x00002020, 0x00004040,
    0x00400002, 0x22020000, 0x40004010, 0x22222200,
    0x10111111, 0x00040004, 0x00002000, 0x20004040,
    0x40004002, 0x22020000, 0x40004000, 0x30330300,
    0x00333333, 0x00000000, 0x00000000, 0x00000000,
    0x11111111, 0x11111111, 0x11111111, 0x13223111
  },
  
  // frame 023
  {
    0x00002220, 0x00000000, 0x00000000, 0x00000000,
    0x04000400, 0x22202004, 0x44440400, 0x20022001,
    0x00222220, 0x20400040, 0x00020200, 0x00040400,
    0x00040000, 0x22202000, 0x04000401, 0x02222220,
    0x01111110, 0x00400040, 0x00020002, 0x00040400,
    0x04000400, 0x22202000, 0x04000400, 0x03033030,
    0x03333330, 0x00000000, 0x00000000, 0x00000000,
    0x11111111, 0x11111111, 0x11111111, 0x11322311
  },
  
  // frame 024
  {
    0x00022200, 0x00000000, 0x00000000, 0x00000000,
    0x40400040, 0x02220200, 0x44444040, 0x02002200,
    0x02222202, 0x04000400, 0x00202000, 0x00404004,
    0x40004000, 0x02220200, 0x00400040, 0x10222222,
    0x11111100, 0x04000400, 0x00200020, 0x00404004,
    0x40400040, 0x02220200, 0x00400040, 0x00303303,
    0x33333300, 0x00000000, 0x00000000, 0x00000000,
    0x11111111, 0x11111111, 0x11111111, 0x11132231
  },
  
  // frame 025
  {
    0x00222000, 0x00000000, 0x00000000, 0x00000000,
    0x04040004, 0x00222020, 0x04444404, 0x00200220,
    0x22222020, 0x40004000, 0x02020000, 0x04040044,
    0x04000400, 0x00222020, 0x00040004, 0x01022222,
    0x11111000, 0x40004000, 0x02000200, 0x04040040,
    0x04040004, 0x00222020, 0x00040004, 0x00030330,
    0x33333000, 0x00000000, 0x00000000, 0x00000000,
    0x11111111, 0x11111111, 0x11111111, 0x11113223
  },
  
  // frame 026
  {
    0x02220000, 0x00000000, 0x00000000, 0x00000000,
    0x00404000, 0x40022202, 0x00444440, 0x40020022,
    0x22220204, 0x00040000, 0x20200000, 0x40400440,
    0x40400040, 0x00022202, 0x00004000, 0x40102222,
    0x11110004, 0x00040000, 0x20002000, 0x40400400,
    0x00404000, 0x40022202, 0x00004000, 0x40003033,
    0x33330000, 0x00000000, 0x00000000, 0x00000000,
    0x11111111, 0x11111111, 0x11111111, 0x11111322
  },
  
  // frame 027
  {
    0x22200000, 0x00000000, 0x00000000, 0x00000000,
    0x00040400, 0x04002220, 0x20044444, 0x04002002,
    0x22202040, 0x00400002, 0x02000004, 0x04004404,
    0x04040004, 0x00002220, 0x20000400, 0x04010222,
    0x11100040, 0x00400002, 0x00020004, 0x04004000,
    0x00040400, 0x04002220, 0x20000400, 0x04000303,
    0x33300000, 0x00000000, 0x00000000, 0x00000000,
    0x11111111, 0x11111111, 0x11111111, 0x11111132
  },
  
  // frame 028
  {
    0x22000000, 0x00000000, 0x00000000, 0x00000000,
    0x40004040, 0x00400222, 0x02004444, 0x40400200,
    0x22020400, 0x04000020, 0x20000040, 0x40044044,
    0x40404000, 0x40000222, 0x02000040, 0x00401022,
    0x11000400, 0x04000020, 0x00200040, 0x40040004,
    0x40004040, 0x00400222, 0x02000040, 0x00400030,
    0x33000000, 0x00000000, 0x00000000, 0x00000000,
    0x11111111, 0x11111111, 0x11111111, 0x11111113
  },
  
  // frame 029
  {
    0x20000000, 0x00000000, 0x00000000, 0x00000000,
    0x04000404, 0x00040022, 0x20200444, 0x44040020,
    0x20204000, 0x40000202, 0x00000404, 0x00440440,
    0x04040400, 0x04000022, 0x20200004, 0x00040102,
    0x10004000, 0x40000200, 0x02000404, 0x00400040,
    0x04000404, 0x00040022, 0x20200004, 0x00040003,
    0x30000000, 0x00000000, 0x00000000, 0x00000000,
    0x11111111, 0x11111111, 0x11111111, 0x11111111
  },
  
  // frame 030
  {
    0x00000000, 0x00000000, 0x00000000, 0x00000000,
    0x40400040, 0x40004002, 0x22020044, 0x44404002,
    0x02040004, 0x00002020, 0x00004040, 0x04404404,
    0x40404040, 0x00400002, 0x22020000, 0x40004010,
    0x00040004, 0x00002000, 0x20004040, 0x04000404,
    0x40400040, 0x40004002, 0x22020000, 0x40004000,
    0x00000000, 0x00000000, 0x00000000, 0x00000000,
    0x11111111, 0x11111111, 0x11111111, 0x11111111
  },
  
  // frame 031
  {
    0x00000000, 0x00000000, 0x00000000, 0x00000000,
    0x44040004, 0x04000400, 0x22202004, 0x44440400,
    0x20400040, 0x00020200, 0x00040400, 0x44044040,
    0x44040404, 0x00040000, 0x22202000, 0x04000401,
    0x00400040, 0x00020002, 0x00040400, 0x40004040,
    0x04040004, 0x04000400, 0x22202000, 0x04000400,
    0x00000000, 0x00000000, 0x00000000, 0x00000000,
    0x11111111, 0x11111111, 0x11111111, 0x11111111
  },
  
  // frame 032
  {
    0x00000000, 0x00000000, 0x00000000, 0x00000000,
    0x44404000, 0x40400040, 0x02220200, 0x44444040,
    0x04000400, 0x00202000, 0x00404004, 0x40440400,
    0x44404040, 0x40004000, 0x02220200, 0x00400040,
    0x04000400, 0x00200020, 0x00404004, 0x00040400,
    0x00404000, 0x40400040, 0x02220200, 0x00400040,
    0x00000000, 0x00000000, 0x00000000, 0x00000000,
    0x11111111, 0x11111111, 0x11111111, 0x11111111
  },
  
  // frame 033
  {
    0x00000000, 0x00000000, 0x00000000, 0x00000000,
    0x44440400, 0x04040004, 0x00222020, 0x04444404,
    0x40004000, 0x02020000, 0x04040044, 0x04404004,
    0x44440404, 0x04000400, 0x00222020, 0x00040004,
    0x40004000, 0x02000200, 0x04040040, 0x00404004,
    0x40040400, 0x04040004, 0x00222020, 0x00040004,
    0x00000000, 0x00000000, 0x00000000, 0x00000000,
    0x11111111, 0x11111111, 0x11111111, 0x11111111
  },
  
  // frame 034
  {
    0x00000000, 0x00000000, 0x00000000, 0x00000000,
    0x04444040, 0x00404000, 0x40022202, 0x00444440,
    0x00040000, 0x20200000, 0x40400440, 0x44040040,
    0x04444040, 0x40400040, 0x00022202, 0x00004000,
    0x00040000, 0x20002000, 0x40400400, 0x04040040,
    0x04004040, 0x00404000, 0x40022202, 0x00004000,
    0x00000000, 0x00000000, 0x00000000, 0x00000000,
    0x11111111, 0x11111111, 0x11111111, 0x11111111
  },
  
  // frame 035
  {
    0x00000000, 0x00000000, 0x00000000, 0x00000000,
    0x40444404, 0x00040400, 0x04002220, 0x20044444,
    0x00400002, 0x02000004, 0x04004404, 0x40400404,
    0x40444404, 0x04040004, 0x00002220, 0x20000400,
    0x00400002, 0x00020004, 0x04004000, 0x40400400,
    0x40400404, 0x00040400, 0x04002220, 0x20000400,
    0x00000000, 0x00000000, 0x00000000, 0x00000000,
    0x11111111, 0x11111111, 0x11111111, 0x11111111
  },
  
  // frame 036
  {
    0x00000000, 0x00000000, 0x00000000, 0x00000000,
    0x44044440, 0x40004040, 0x00400222, 0x02004444,
    0x04000020, 0x20000040, 0x40044044, 0x04004040,
    0x44044440, 0x40404000, 0x40000222, 0x02000040,
    0x04000020, 0x00200040, 0x40040004, 0x04004000,
    0x44040040, 0x40004040, 0x00400222, 0x02000040,
    0x00000000, 0x00000000, 0x00000000, 0x00000000,
    0x11111111, 0x11111111, 0x11111111, 0x11111111
  },
  
  // frame 037
  {
    0x00000000, 0x00000000, 0x00000000, 0x00000000,
    0x44404444, 0x04000404, 0x00040022, 0x20200444,
    0x40000202, 0x00000404, 0x00440440, 0x40040400,
    0x44404444, 0x04040400, 0x04000022, 0x20200004,
    0x40000200, 0x02000404, 0x00400040, 0x40040004,
    0x44404004, 0x04000404, 0x00040022, 0x20200004,
    0x00000000, 0x00000000, 0x00000000, 0x00000000,
    0x11111111, 0x11111111, 0x11111111, 0x11111111
  },
  
  // frame 038
  {
    0x00000000, 0x00000000, 0x00000000, 0x00000000,
    0x04440444, 0x40400040, 0x40004002, 0x22020044,
    0x00002020, 0x00004040, 0x04404404, 0x00404000,
    0x04440444, 0x40404040, 0x00400002, 0x22020000,
    0x00002000, 0x20004040, 0x04000404, 0x00400040,
    0x04440400, 0x40400040, 0x40004002, 0x22020000,
    0x00000000, 0x00000000, 0x00000000, 0x00000000,
    0x11111111, 0x11111111, 0x11111111, 0x11111111
  },
  
  // frame 039
  {
    0x00000000, 0x00000000, 0x00000000, 0x00000001,
    0x00444044, 0x44040004, 0x04000400, 0x22202004,
    0x00020200, 0x00040400, 0x44044040, 0x04040000,
    0x00444044, 0x44040404, 0x00040000, 0x22202000,
    0x00020002, 0x00040400, 0x40004040, 0x04000401,
    0x00444040, 0x04040004, 0x04000400, 0x22202000,
    0x00000000, 0x00000000, 0x00000000, 0x00000000,
    0x11111111, 0x11111111, 0x11111111, 0x11111111
  },
  
  // frame 040
  {
    0x00000000, 0x00000000, 0x00000000, 0x00000000,
    0x01044404, 0x44404000, 0x40400040, 0x02220200,
    0x00202000, 0x00404004, 0x40440400, 0x40400000,
    0x00044404, 0x44404040, 0x40004000, 0x02220200,
    0x00200020, 0x00404004, 0x00040400, 0x40004000,
    0x01044404, 0x00404000, 0x40400040, 0x02220200,
    0x00000000, 0x00000000, 0x00000000, 0x00000000,
    0x11111111, 0x11111111, 0x11111111, 0x11111111
  },
  
  // frame 041
  {
    0x00000000, 0x00000000, 0x00000000, 0x00000001,
    0x00004440, 0x44440400, 0x04040004, 0x00222020,
    0x02020000, 0x04040044, 0x04404004, 0x04000100,
    0x00004440, 0x44440404, 0x04000400, 0x00222020,
    0x02000200, 0x04040040, 0x00404004, 0x00040001,
    0x00004440, 0x40040400, 0x04040004, 0x00222020,
    0x00000000, 0x00000000, 0x00000000, 0x00000100,
    0x11111111, 0x11111111, 0x11111111, 0x11111111
  },
  
  // frame 042
  {
    0x00000000, 0x00000000, 0x00000000, 0x00000000,
    0x01000444, 0x04444040, 0x00404000, 0x40022202,
    0x20200000, 0x40400440, 0x44040040, 0x40000000,
    0x00010444, 0x04444040, 0x40400040, 0x00022202,
    0x20002000, 0x40400400, 0x04040040, 0x00400000,
    0x01000444, 0x04004040, 0x00404000, 0x40022202,
    0x00000000, 0x00000000, 0x00000000, 0x00000000,
    0x11111111, 0x11111111, 0x11111111, 0x11111111
  },
  
  // frame 043
  {
    0x00000000, 0x00000000, 0x00000000, 0x00010000,
    0x00000044, 0x40444404, 0x00040400, 0x04002220,
    0x02000004, 0x04004404, 0x40400404, 0x00000100,
    0x00000044, 0x40444404, 0x04040004, 0x00002220,
    0x00020004, 0x04004000, 0x40400400, 0x04010000,
    0x00000044, 0x40400404, 0x00040400, 0x04002220,
    0x00000000, 0x00000000, 0x00000000, 0x00000100,
    0x11111111, 0x11111111, 0x11111111, 0x11111111
  },
  
  // frame 044
  {
    0x00000000, 0x00000000, 0x00000000, 0x00100001,
    0x00000004, 0x44044440, 0x40004040, 0x00400222,
    0x20000040, 0x40044044, 0x04004040, 0x00001000,
    0x00000004, 0x44044440, 0x40404000, 0x40000222,
    0x00200040, 0x40040004, 0x04004000, 0x40100001,
    0x00000004, 0x44040040, 0x40004040, 0x00400222,
    0x00000000, 0x00000000, 0x00000000, 0x00001000,
    0x11111111, 0x11111111, 0x11111111, 0x11111111
  },
  
  // frame 045
  {
    0x00000000, 0x00000000, 0x00000000, 0x00000000,
    0x01000010, 0x44404444, 0x04000404, 0x00040022,
    0x00000404, 0x00440440, 0x40040400, 0x00000000,
    0x00001000, 0x44404444, 0x04040400, 0x04000022,
    0x02000404, 0x00400040, 0x40040004, 0x00000000,
    0x01000010, 0x44404004, 0x04000404, 0x00040022,
    0x00000000, 0x00000000, 0x00000000, 0x00000000,
    0x11111111, 0x11111111, 0x11111111, 0x11111111
  },
  
  // frame 046
  {
    0x00000000, 0x00000000, 0x00000000, 0x00100001,
    0x00000000, 0x04440444, 0x40400040, 0x40004002,
    0x00004040, 0x04404404, 0x00404000, 0x10000100,
    0x00000000, 0x04440444, 0x40404040, 0x00400002,
    0x20004040, 0x04000404, 0x00400040, 0x00100001,
    0x00000000, 0x04440400, 0x40400040, 0x40004002,
    0x00000000, 0x00000000, 0x00000000, 0x10000100,
    0x11111111, 0x11111111, 0x11111111, 0x11111111
  },
  
  // frame 047
  {
    0x00000000, 0x00000000, 0x00000000, 0x00000000,
    0x01000010, 0x00444044, 0x44040004, 0x04000400,
    0x00040400, 0x44044040, 0x04040000, 0x00000000,
    0x00010000, 0x10444044, 0x44040404, 0x00040000,
    0x00040400, 0x40004040, 0x04000400, 0x00000000,
    0x01000010, 0x00444040, 0x04040004, 0x04000400,
    0x00000000, 0x00000000, 0x00000000, 0x00000000,
    0x11111111, 0x11111111, 0x11111111, 0x11111111
  },
  
  // frame 048
  {
    0x00000000, 0x00000000, 0x00000010, 0x00010000,
    0x00000000, 0x00044404, 0x44404000, 0x40400040,
    0x00404004, 0x40440400, 0x40400000, 0x10000100,
    0x00000000, 0x00044404, 0x44404040, 0x40004000,
    0x00404004, 0x00040400, 0x40004010, 0x00010000,
    0x00000000, 0x00044404, 0x00404000, 0x40400040,
    0x00000000, 0x00000000, 0x00000000, 0x10000100,
    0x11111111, 0x11111111, 0x11111111, 0x11111111
  },
  
  // frame 049
  {
    0x00000000, 0x00000000, 0x00000000, 0x00000001,
    0x00000100, 0x00104440, 0x44440400, 0x04040004,
    0x04040044, 0x04404004, 0x04000000, 0x00000000,
    0x00010000, 0x10004440, 0x44440404, 0x04000400,
    0x04040040, 0x00404004, 0x00040000, 0x00000000,
    0x10000100, 0x00104440, 0x40040400, 0x04040004,
    0x00000000, 0x00000000, 0x00000000, 0x00000000,
    0x11111111, 0x11111111, 0x11111111, 0x11111111
  },
  
  // frame 050
  {
    0x00000000, 0x00000000, 0x00000010, 0x00010000,
    0x01000000, 0x00000444, 0x04444040, 0x00404000,
    0x40400440, 0x44040040, 0x40001000, 0x01000000,
    0x00000000, 0x00000444, 0x04444040, 0x40400040,
    0x40400400, 0x04040040, 0x00400010, 0x00010000,
    0x00000000, 0x00000444, 0x04004040, 0x00404000,
    0x00000000, 0x00000000, 0x00001000, 0x01000010,
    0x11111111, 0x11111111, 0x11111111, 0x11111111
  },
  
  // frame 051
  {
    0x00000000, 0x00000000, 0x00000000, 0x00000001,
    0x00000100, 0x00100044, 0x40444404, 0x00040400,
    0x04004404, 0x40400404, 0x00000000, 0x00000100,
    0x00000001, 0x00001044, 0x40444404, 0x04040004,
    0x04004000, 0x40400400, 0x04000000, 0x00000000,
    0x10000100, 0x00100044, 0x40400404, 0x00040400,
    0x00000000, 0x00000000, 0x00000000, 0x00000000,
    0x11111111, 0x11111111, 0x11111111, 0x11111111
  },
  
  // frame 052
  {
    0x00000000, 0x00000000, 0x00100001, 0x00001000,
    0x01000000, 0x00000004, 0x44044440, 0x40004040,
    0x40044044, 0x04004040, 0x00001000, 0x01000000,
    0x00010000, 0x00000004, 0x44044440, 0x40404000,
    0x40040004, 0x04004000, 0x40100001, 0x00000001,
    0x00000000, 0x00000004, 0x44040040, 0x40004040,
    0x00000000, 0x00000000, 0x00001000, 0x01000010,
    0x11111111, 0x11111111, 0x11111111, 0x11111111
  },
  
  // frame 053
  {
    0x00000000, 0x00000000, 0x00000000, 0x00000000,
    0x00001000, 0x01000010, 0x44404444, 0x04000404,
    0x00440440, 0x40040400, 0x00000000, 0x00000100,
    0x00000001, 0x00001000, 0x44404444, 0x04040400,
    0x00400040, 0x40040004, 0x00000000, 0x00010000,
    0x01000000, 0x01000010, 0x44404004, 0x04000404,
    0x00000000, 0x00000000, 0x00000000, 0x00000000,
    0x11111111, 0x11111111, 0x11111111, 0x11111111
  },
  
  // frame 054
  {
    0x00000000, 0x00000000, 0x00100001, 0x00001001,
    0x00000000, 0x00000000, 0x04440444, 0x40400040,
    0x04404404, 0x00404000, 0x10000100, 0x00100000,
    0x00010000, 0x00000000, 0x04440444, 0x40404040,
    0x04000404, 0x00400040, 0x00100001, 0x00000000,
    0x00000100, 0x00000000, 0x04440400, 0x40400040,
    0x00000000, 0x00000000, 0x10000100, 0x00000100,
    0x11111111, 0x11111111, 0x11111111, 0x11111111
  },
  
  // frame 055
  {
    0x00000000, 0x00000000, 0x00000000, 0x00000000,
    0x01001000, 0x01000010, 0x00444044, 0x44040004,
    0x44044040, 0x04040000, 0x00000000, 0x00000000,
    0x10000010, 0x00010000, 0x10444044, 0x44040404,
    0x40004040, 0x04000400, 0x00000000, 0x00010000,
    0x00000000, 0x01000010, 0x00444040, 0x04040004,
    0x00000000, 0x00000000, 0x00000000, 0x01000001,
    0x11111111, 0x11111111, 0x11111111, 0x11111111
  },
  
  // frame 056
  {
    0x00000000, 0x00000010, 0x00010000, 0x00010000,
    0x00000000, 0x00000000, 0x00044404, 0x44404000,
    0x40440400, 0x40400000, 0x10000100, 0x00100100,
    0x00000000, 0x00000000, 0x00044404, 0x44404040,
    0x00040400, 0x40004010, 0x00010000, 0x10000010,
    0x00000100, 0x00000000, 0x00044404, 0x00404000,
    0x00000000, 0x00000000, 0x10000100, 0x00000000,
    0x11111111, 0x11111111, 0x11111111, 0x11111111
  },
  
  // frame 057
  {
    0x00000000, 0x00000000, 0x00000001, 0x00000100,
    0x00000100, 0x00000100, 0x00104440, 0x44440400,
    0x04404004, 0x04000000, 0x00000000, 0x00000000,
    0x00010010, 0x00010000, 0x10004440, 0x44440404,
    0x00404004, 0x00040000, 0x00000000, 0x00000000,
    0x00100000, 0x10000100, 0x00104440, 0x40040400,
    0x00000000, 0x00000000, 0x00000000, 0x01000000,
    0x11111111, 0x11111111, 0x11111111, 0x11111111
  },
  
  // frame 058
  {
    0x00000000, 0x00000010, 0x00010000, 0x00000001,
    0x00010000, 0x01000000, 0x00000444, 0x04444040,
    0x44040040, 0x40001000, 0x01000000, 0x00000000,
    0x00000000, 0x00000000, 0x00000444, 0x04444040,
    0x04040040, 0x00400010, 0x00010000, 0x10010000,
    0x00000000, 0x00000000, 0x00000444, 0x04004040,
    0x00000000, 0x00001000, 0x01000010, 0x00001000,
    0x11111111, 0x11111111, 0x11111111, 0x11111111
  },
  
  // frame 059
  {
    0x00000000, 0x00000000, 0x00000001, 0x00000000,
    0x01000000, 0x00000100, 0x00100044, 0x40444404,
    0x40400404, 0x00000000, 0x00000100, 0x00010000,
    0x10000001, 0x00000001, 0x00001044, 0x40444404,
    0x40400400, 0x04000000, 0x00000000, 0x00000000,
    0x01000100, 0x10000100, 0x00100044, 0x40400404,
    0x00000000, 0x00000000, 0x00000000, 0x00000000,
    0x11111111, 0x11111111, 0x11111111, 0x11111111
  },
  
  // frame 060
  {
    0x00000000, 0x00100001, 0x00001000, 0x00100001,
    0x00000000, 0x01000000, 0x00000004, 0x44044440,
    0x04004040, 0x00001000, 0x01000000, 0x00000100,
    0x00000100, 0x00010000, 0x00000004, 0x44044440,
    0x04004000, 0x40100001, 0x00000001, 0x00000010,
    0x00000000, 0x00000000, 0x00000004, 0x44040040,
    0x00000000, 0x00001000, 0x01000010, 0x01000100,
    0x11111111, 0x11111111, 0x11111111, 0x11111111
  },
  
  // frame 061
  {
    0x00000000, 0x01000010, 0x00010000, 0x01000010,
    0x00000000, 0x00100000, 0x00000000, 0x44404444,
    0x40040400, 0x00010000, 0x10000000, 0x00001000,
    0x00000010, 0x00001000, 0x00000000, 0x44404444,
    0x40040004, 0x01000010, 0x00000010, 0x00000100,
    0x10000000, 0x00000000, 0x00000000, 0x44404004,
    0x00000000, 0x00010000, 0x10000100, 0x10001000,
    0x11111111, 0x11111111, 0x11111111, 0x11111111
  },
  
  // frame 062
  {
    0x00000000, 0x01000010, 0x00010000, 0x01000010,
    0x00000000, 0x00100000, 0x00000000, 0x04440444,
    0x00404000, 0x00010000, 0x10000000, 0x00001000,
    0x00000010, 0x00001000, 0x00000000, 0x04440444,
    0x00400040, 0x01000010, 0x00000010, 0x00000100,
    0x00000000, 0x00000000, 0x00000000, 0x04440400,
    0x00000000, 0x00010000, 0x10000100, 0x10001000,
    0x11111111, 0x11111111, 0x11111111, 0x11111111
  },
  
  // frame 063
  {
    0x00000000, 0x00000000, 0x00000000, 0x00000001,
    0x00100001, 0x00000100, 0x00100001, 0x00444044,
    0x04040000, 0x00000000, 0x00001000, 0x00000000,
    0x00001000, 0x00000000, 0x10000100, 0x00444044,
    0x04000400, 0x00000000, 0x00100000, 0x10000001,
    0x00010000, 0x00100000, 0x00100001, 0x00444040,
    0x00000000, 0x00000000, 0x00000000, 0x00000000,
    0x11111111, 0x11111111, 0x11111111, 0x11111111
  },
  
  // frame 064
  {
    0x00000000, 0x01000010, 0x00010010, 0x00100000,
    0x01000000, 0x00000000, 0x00000000, 0x00044404,
    0x40400001, 0x00001000, 0x01000001, 0x00001000,
    0x00000000, 0x00001000, 0x00000000, 0x00044404,
    0x40004000, 0x01000010, 0x00000000, 0x00100000,
    0x01000000, 0x10000010, 0x00000000, 0x00044404,
    0x00000001, 0x00001000, 0x00001000, 0x00010000,
    0x11111111, 0x11111111, 0x11111111, 0x11111111
  },
  
  // frame 065
  {
    0x00000000, 0x00000000, 0x00000000, 0x00000001,
    0x00000010, 0x00100100, 0x00100001, 0x00004440,
    0x04000000, 0x00000000, 0x00000000, 0x00000100,
    0x00001000, 0x01000001, 0x00001000, 0x01004440,
    0x00040000, 0x00000000, 0x00100000, 0x00000001,
    0x00000010, 0x00000000, 0x00100001, 0x00004440,
    0x00000000, 0x00000000, 0x10000010, 0x00000100,
    0x11111111, 0x11111111, 0x11111111, 0x11111111
  },
  
  // frame 066
  {
    0x00000100, 0x00100000, 0x00100000, 0x01000000,
    0x01000000, 0x00000000, 0x00000000, 0x00000444,
    0x40000001, 0x00001000, 0x01001000, 0x10000000,
    0x00010000, 0x00000000, 0x00000000, 0x00000444,
    0x00400100, 0x00100001, 0x00000100, 0x00100000,
    0x01000000, 0x00000010, 0x00000000, 0x00000444,
    0x00000001, 0x00001000, 0x00000000, 0x10000000,
    0x11111111, 0x11111111, 0x11111111, 0x11111111
  },
  
  // frame 067
  {
    0x00000000, 0x00000010, 0x50001000, 0x00010001,
    0x00000001, 0x00000016, 0x00000010, 0x00010044,
    0x00000000, 0x00000006, 0x66000000, 0x00000100,
    0x00000000, 0x10001666, 0x66001000, 0x01000044,
    0x04000000, 0x00000666, 0x66660000, 0x00010001,
    0x00000010, 0x00010007, 0x01000010, 0x00010044,
    0x00000000, 0x00000000, 0x70000000, 0x00000100,
    0x11111111, 0x11111111, 0x11111111, 0x11111111
  },
  
  // frame 068
  {
    0x00000010, 0x00010000, 0x60000001, 0x00000000,
    0x10001000, 0x00010005, 0x01000000, 0x00000004,
    0x00001000, 0x01000006, 0x66000000, 0x10000000,
    0x00100000, 0x00000656, 0x56000000, 0x00000004,
    0x40000010, 0x00010566, 0x66650001, 0x00000000,
    0x10001000, 0x00000007, 0x00000000, 0x00000004,
    0x00001000, 0x01000010, 0x70001000, 0x01000000,
    0x11111111, 0x11111111, 0x11111111, 0x11111111
  },
  
  // frame 069
  {
    0x00000000, 0x00000010, 0x50000000, 0x00010001,
    0x00000000, 0x00100006, 0x00000010, 0x00010000,
    0x00000000, 0x00001006, 0x66100000, 0x01000100,
    0x00000000, 0x01000666, 0x66000000, 0x10000100,
    0x00000000, 0x00000666, 0x66660000, 0x00010000,
    0x00000000, 0x00100017, 0x01000010, 0x00010000,
    0x00000000, 0x00000000, 0x70000000, 0x01000100,
    0x11111111, 0x11111111, 0x11111111, 0x11111111
  },
  
  // frame 070
  {
    0x01000010, 0x00010000, 0x61000010, 0x00000000,
    0x01000100, 0x00000005, 0x00100000, 0x00000000,
    0x00010000, 0x10000006, 0x66001000, 0x00000000,
    0x20010001, 0x00000656, 0x56001000, 0x00000000,
    0x01000010, 0x00000566, 0x66650100, 0x00000001,
    0x30000100, 0x00000007, 0x00000000, 0x00000000,
    0x00010000, 0x10000100, 0x70001000, 0x00000003,
    0x11111111, 0x11111111, 0x11111111, 0x11111111
  },
  
  // frame 071
  {
    0x00000000, 0x00000000, 0x00000001, 0x00010000,
    0x00000000, 0x00100001, 0x00000100, 0x00100001,
    0x00000000, 0x00001000, 0x00000000, 0x01000002,
    0x22000000, 0x00001000, 0x00000000, 0x10000100,
    0x00000000, 0x00100000, 0x10000001, 0x00010011,
    0x03000000, 0x00010000, 0x00100000, 0x00100001,
    0x00000000, 0x00000000, 0x00000000, 0x01000033,
    0x31111111, 0x11111111, 0x11111111, 0x11111111
  },
  
  // frame 072
  {
    0x01000010, 0x00010010, 0x00100000, 0x00000000,
    0x20000100, 0x01000000, 0x00000000, 0x00000000,
    0x00001000, 0x01000001, 0x00001000, 0x00000022,
    0x22200001, 0x00000000, 0x00001000, 0x00000000,
    0x01000010, 0x00000000, 0x00100000, 0x00000111,
    0x30300100, 0x01000000, 0x10000010, 0x00000000,
    0x00001000, 0x00001000, 0x00010000, 0x00000333,
    0x23111111, 0x11111111, 0x11111111, 0x11111111
  },
  
  // frame 073
  {
    0x00000000, 0x00000000, 0x00000001, 0x00000002,
    0x22000000, 0x00000010, 0x00100100, 0x00100001,
    0x00000000, 0x00000000, 0x00000100, 0x01000222,
    0x22220000, 0x00001000, 0x01000001, 0x00001000,
    0x00000000, 0x00100000, 0x00000001, 0x00001111,
    0x33030000, 0x00000010, 0x00000000, 0x00100001,
    0x00000000, 0x10000010, 0x00000100, 0x01003333,
    0x22311111, 0x11111111, 0x11111111, 0x11111111
  },
  
  // frame 074
  {
    0x00100000, 0x00100000, 0x01000000, 0x00000022,
    0x02200000, 0x01000000, 0x00000000, 0x00000000,
    0x00001000, 0x01001000, 0x10000000, 0x00002222,
    0x22222001, 0x00010000, 0x00000000, 0x00000000,
    0x00100001, 0x00000100, 0x00100000, 0x00011111,
    0x03303000, 0x01000000, 0x00000010, 0x00000000,
    0x00001000, 0x00000000, 0x10000000, 0x00033333,
    0x32231111, 0x11111111, 0x11111111, 0x11111111
  },
  
  // frame 075
  {
    0x00000010, 0x00001000, 0x00010001, 0x00000222,
    0x00220000, 0x00000001, 0x00000010, 0x00000010,
    0x00000000, 0x00000000, 0x00000100, 0x00022220,
    0x22222200, 0x00000000, 0x10001001, 0x00001000,
    0x00000000, 0x00000000, 0x00010001, 0x00111111,
    0x30330300, 0x00000010, 0x00010000, 0x01000010,
    0x00000000, 0x10000000, 0x00000100, 0x00333333,
    0x13223111, 0x11111111, 0x11111111, 0x11111111
  },
  
  // frame 076
  {
    0x00100000, 0x00100000, 0x01000000, 0x00002220,
    0x20022000, 0x01000000, 0x00000000, 0x00000000,
    0x00001000, 0x01001000, 0x10000000, 0x00222200,
    0x02222220, 0x00010000, 0x00000000, 0x00000000,
    0x00100001, 0x00000100, 0x00100000, 0x01111110,
    0x03033030, 0x01000000, 0x00000010, 0x00000000,
    0x00001000, 0x00000000, 0x10000000, 0x03333330,
    0x11322311, 0x11111111, 0x11111111, 0x11111111
  }
};

const size_t framesCount = sizeof(frames) / sizeof(frames[0]);

const CRGB colorsList[] =
{
  0x000000,
  0xFFFFFF,
  0xFF0000,
  0xFF99CC,
  0x099C1C,
  0x0000FF,
  0x308404,
  0x660000
};

//---------------------------------------------------------------------------

void showFrame( uint8_t id )
{
  for ( uint8_t i = 0; i < 32; i++ )
  {
    uint32_t data = pgm_read_dword( &(frames[id][i]) );
    for ( int8_t j = 7; j >= 0; j-- )
    {
      leds[ ( 8 * i ) + j ] = colorsList[ data & 0xF ];
      data >>= 4;
    }
  }
  
  FastLED.show();
}

void setup()
{
  FastLED.addLeds<NEOPIXEL, 10>(leds, ledsCount);
}

void loop()
{
  uint32_t now = millis();
  static uint32_t past = now;
  
  if ( now - past >= 200 )
  {
    past = now;
    static uint8_t id = 0;    
    showFrame( id );
    
    if ( ++id == framesCount )
    {
      id = 0;
    }
  }
}