From 4bd0a060d100c7fb9ad657c939b954b081b62016 Mon Sep 17 00:00:00 2001 From: EnricoGuccii Date: Tue, 23 Dec 2025 16:59:20 +0100 Subject: eee --- .gitignore | 10 +-- firmware/include/README | 37 +++++++++ firmware/include/settings.h | 35 ++++++++ firmware/lib/README | 46 +++++++++++ firmware/lib/animations/animations.cpp | 74 +++++++++++++++++ firmware/lib/animations/animations.h | 13 +++ firmware/lib/buzzer/buzzer.cpp | 31 +++++++ firmware/lib/buzzer/buzzer.h | 15 ++++ firmware/lib/melodies/melodies.cpp | 60 ++++++++++++++ firmware/lib/melodies/melodies.h | 10 +++ firmware/lib/motors/motors.cpp | 146 +++++++++++++++++++++++++++++++++ firmware/lib/motors/motors.h | 29 +++++++ firmware/lib/oled/oled.cpp | 58 +++++++++++++ firmware/lib/oled/oled.h | 18 ++++ firmware/lib/rgb/rgb.cpp | 124 ++++++++++++++++++++++++++++ firmware/lib/rgb/rgb.h | 23 ++++++ firmware/platformio.ini | 19 +++++ firmware/src/main.cpp | 37 +++++++++ include/README | 37 --------- include/settings.h | 35 -------- lib/README | 46 ----------- lib/animations/animations.cpp | 74 ----------------- lib/animations/animations.h | 13 --- lib/buzzer/buzzer.cpp | 31 ------- lib/buzzer/buzzer.h | 15 ---- lib/melodies/melodies.cpp | 60 -------------- lib/melodies/melodies.h | 10 --- lib/motors/motors.cpp | 146 --------------------------------- lib/motors/motors.h | 29 ------- lib/oled/oled.cpp | 58 ------------- lib/oled/oled.h | 18 ---- lib/rgb/rgb.cpp | 124 ---------------------------- lib/rgb/rgb.h | 23 ------ platformio.ini | 19 ----- src/main.cpp | 37 --------- 35 files changed, 780 insertions(+), 780 deletions(-) create mode 100644 firmware/include/README create mode 100644 firmware/include/settings.h create mode 100644 firmware/lib/README create mode 100644 firmware/lib/animations/animations.cpp create mode 100644 firmware/lib/animations/animations.h create mode 100644 firmware/lib/buzzer/buzzer.cpp create mode 100644 firmware/lib/buzzer/buzzer.h create mode 100644 firmware/lib/melodies/melodies.cpp create mode 100644 firmware/lib/melodies/melodies.h create mode 100644 firmware/lib/motors/motors.cpp create mode 100644 firmware/lib/motors/motors.h create mode 100644 firmware/lib/oled/oled.cpp create mode 100644 firmware/lib/oled/oled.h create mode 100644 firmware/lib/rgb/rgb.cpp create mode 100644 firmware/lib/rgb/rgb.h create mode 100644 firmware/platformio.ini create mode 100644 firmware/src/main.cpp delete mode 100644 include/README delete mode 100644 include/settings.h delete mode 100644 lib/README delete mode 100644 lib/animations/animations.cpp delete mode 100644 lib/animations/animations.h delete mode 100644 lib/buzzer/buzzer.cpp delete mode 100644 lib/buzzer/buzzer.h delete mode 100644 lib/melodies/melodies.cpp delete mode 100644 lib/melodies/melodies.h delete mode 100644 lib/motors/motors.cpp delete mode 100644 lib/motors/motors.h delete mode 100644 lib/oled/oled.cpp delete mode 100644 lib/oled/oled.h delete mode 100644 lib/rgb/rgb.cpp delete mode 100644 lib/rgb/rgb.h delete mode 100644 platformio.ini delete mode 100644 src/main.cpp diff --git a/.gitignore b/.gitignore index 6331902..c490ddd 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,6 @@ -.pio -.cache -compile_commands.json -.clangd -.ccls +firmware/.pio +firmware/.cache +firmware/.clangd +firmware/.ccls +compile_commands.json diff --git a/firmware/include/README b/firmware/include/README new file mode 100644 index 0000000..630164d --- /dev/null +++ b/firmware/include/README @@ -0,0 +1,37 @@ + +This directory is intended for project header files. + +A header file is a file containing C declarations and macro definitions +to be shared between several project source files. You request the use of a +header file in your project source file (C, C++, etc) located in `src` folder +by including it, with the C preprocessing directive `#include'. + +```src/main.c + +#include "header.h" + +int main (void) +{ + ... +} +``` + +Including a header file produces the same results as copying the header file +into each source file that needs it. Such copying would be time-consuming +and error-prone. With a header file, the related declarations appear +in only one place. If they need to be changed, they can be changed in one +place, and programs that include the header file will automatically use the +new version when next recompiled. The header file eliminates the labor of +finding and changing all the copies as well as the risk that a failure to +find one copy will result in inconsistencies within a program. + +In C, the convention is to give header files names that end with `.h'. + +Read more about using header files in official GCC documentation: + +* Include Syntax +* Include Operation +* Once-Only Headers +* Computed Includes + +https://gcc.gnu.org/onlinedocs/cpp/Header-Files.html diff --git a/firmware/include/settings.h b/firmware/include/settings.h new file mode 100644 index 0000000..a06b8c5 --- /dev/null +++ b/firmware/include/settings.h @@ -0,0 +1,35 @@ +#pragma once + +// OLED +const int OLED_WIDTH = 128; +const int OLED_HEIGHT = 64; +const int OLED_ADDR = 0x3C; + +const int SCL_PIN = 8; +const int SDA_PIN = 10; + +// RGB LED +const int RED_PIN = 2; +const int GREEN_PIN = 4; +const int BLUE_PIN = 6; + +// MOTORS +const int EN12 = 40; +const int IN1 = 38; +const int IN2 = 36; + + +const int EN34 = 39; +const int IN3 = 37; +const int IN4 = 35; + + + + +// const int EN34 = 13; +// const int IN3 = 7; +// const int IN4 = 5; + + +// BUZZER +const int BUZZER_PIN = 13; diff --git a/firmware/lib/README b/firmware/lib/README new file mode 100644 index 0000000..8d3ee2a --- /dev/null +++ b/firmware/lib/README @@ -0,0 +1,46 @@ + +This directory is intended for project specific (private) libraries. +PlatformIO will compile them to static libraries and link into the executable file. + +The source code of each library should be placed in a separate directory +("lib/your_library_name/[Code]"). + +For example, see the structure of the following example libraries `Foo` and `Bar`: + +|--lib +| | +| |--Bar +| | |--docs +| | |--examples +| | |--src +| | |- Bar.c +| | |- Bar.h +| | |- library.json (optional. for custom build options, etc) https://docs.platformio.org/page/librarymanager/config.html +| | +| |--Foo +| | |- Foo.c +| | |- Foo.h +| | +| |- README --> THIS FILE +| +|- platformio.ini +|--src + |- main.c + +Example contents of `src/main.c` using Foo and Bar: +``` +#include +#include + +int main (void) +{ + ... +} + +``` + +The PlatformIO Library Dependency Finder will find automatically dependent +libraries by scanning project source files. + +More information about PlatformIO Library Dependency Finder +- https://docs.platformio.org/page/librarymanager/ldf.html diff --git a/firmware/lib/animations/animations.cpp b/firmware/lib/animations/animations.cpp new file mode 100644 index 0000000..cc5b971 --- /dev/null +++ b/firmware/lib/animations/animations.cpp @@ -0,0 +1,74 @@ +#include + +#include "animations.h" + +int animacja1Width = 64; +int animacja1Height = 64; +int animacja1FrameCount = 28; + +const byte PROGMEM animacja1[][512] = { + {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,248,0,0,0,0,0,1,255,255,128,0,0,0,0,15,255,255,240,0,0,0,0,63,248,31,252,0,0,0,0,255,0,0,255,0,0,0,3,252,0,0,63,192,0,0,7,248,0,0,31,224,0,0,31,184,7,224,29,248,0,0,62,112,15,240,14,124,0,0,124,112,31,248,14,62,0,1,240,96,63,252,6,15,128,3,224,96,63,252,6,7,192,7,192,96,63,252,6,3,224,15,0,96,63,252,6,0,240,30,0,96,63,252,6,0,120,60,0,96,63,252,6,0,60,120,0,112,31,248,14,0,30,120,0,112,31,248,14,0,30,60,0,48,7,224,12,0,60,30,0,56,0,0,28,0,120,15,0,28,0,0,56,0,240,7,128,28,0,0,56,1,224,3,192,14,0,0,112,3,192,0,240,7,0,0,224,15,0,0,120,3,192,3,192,30,0,0,62,1,248,31,128,124,0,0,15,0,255,255,0,240,0,0,7,192,63,252,3,224,0,0,1,240,0,0,15,128,0,0,0,126,0,0,126,0,0,0,0,31,192,3,248,0,0,0,0,7,255,255,224,0,0,0,0,0,255,255,0,0,0,0,0,0,7,224,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,248,0,0,0,0,0,1,255,255,128,0,0,0,0,15,255,255,240,0,0,0,0,63,248,31,252,0,0,0,0,255,0,0,255,0,0,0,3,252,0,0,63,192,0,0,7,248,0,0,31,224,0,0,31,184,7,224,29,248,0,0,62,112,15,240,14,124,0,0,124,112,31,248,14,62,0,1,240,96,63,252,6,15,128,3,224,96,63,252,6,7,192,7,192,96,63,252,6,3,224,15,0,96,63,252,6,0,240,30,0,96,63,252,6,0,120,60,0,96,63,252,6,0,60,120,0,112,31,248,14,0,30,120,0,112,31,248,14,0,30,60,0,48,7,224,12,0,60,30,0,56,0,0,28,0,120,15,0,28,0,0,56,0,240,7,128,28,0,0,56,1,224,3,192,14,0,0,112,3,192,0,240,7,0,0,224,15,0,0,120,3,192,3,192,30,0,0,62,1,248,31,128,124,0,0,15,0,255,255,0,240,0,0,7,192,63,252,3,224,0,0,1,240,0,0,15,128,0,0,0,126,0,0,126,0,0,0,0,31,192,3,248,0,0,0,0,7,255,255,224,0,0,0,0,0,255,255,0,0,0,0,0,0,7,224,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,248,0,0,0,0,0,1,255,255,128,0,0,0,0,15,255,255,240,0,0,0,0,63,248,31,252,0,0,0,0,255,0,0,255,0,0,0,3,252,0,0,63,192,0,0,7,248,0,0,31,224,0,0,31,184,7,224,29,248,0,0,62,112,15,240,14,124,0,0,124,112,31,248,14,62,0,1,240,96,63,252,6,15,128,3,224,96,63,252,6,7,192,7,192,96,63,252,6,3,224,15,0,96,63,252,6,0,240,30,0,96,63,252,6,0,120,60,0,96,63,252,6,0,60,120,0,112,31,248,14,0,30,120,0,112,31,248,14,0,30,60,0,48,7,224,12,0,60,30,0,56,0,0,28,0,120,15,0,28,0,0,56,0,240,7,128,28,0,0,56,1,224,3,192,14,0,0,112,3,192,0,240,7,0,0,224,15,0,0,120,3,192,3,192,30,0,0,62,1,248,31,128,124,0,0,15,0,255,255,0,240,0,0,7,192,63,252,3,224,0,0,1,240,0,0,15,128,0,0,0,126,0,0,126,0,0,0,0,31,192,3,248,0,0,0,0,7,255,255,224,0,0,0,0,0,255,255,0,0,0,0,0,0,7,224,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,248,0,0,0,0,0,1,255,255,128,0,0,0,0,15,255,255,240,0,0,0,0,63,248,31,252,0,0,0,0,255,0,0,255,0,0,0,3,252,0,0,63,192,0,0,7,248,0,0,31,224,0,0,31,184,7,224,29,248,0,0,62,112,15,240,14,124,0,0,124,112,31,248,14,62,0,1,240,96,63,252,6,15,128,3,224,96,63,252,6,7,192,7,192,96,63,252,6,3,224,15,0,96,63,252,6,0,240,30,0,96,63,252,6,0,120,60,0,96,63,252,6,0,60,120,0,112,31,248,14,0,30,120,0,112,31,248,14,0,30,60,0,48,7,224,12,0,60,30,0,56,0,0,28,0,120,15,0,28,0,0,56,0,240,7,128,28,0,0,56,1,224,3,192,14,0,0,112,3,192,0,240,7,0,0,224,15,0,0,120,3,192,3,192,30,0,0,62,1,248,31,128,124,0,0,15,0,255,255,0,240,0,0,7,192,63,252,3,224,0,0,1,240,0,0,15,128,0,0,0,126,0,0,126,0,0,0,0,31,192,3,248,0,0,0,0,7,255,255,224,0,0,0,0,0,255,255,0,0,0,0,0,0,7,224,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,248,0,0,0,0,0,1,255,255,128,0,0,0,0,15,255,255,240,0,0,0,0,63,255,255,252,0,0,0,0,255,255,255,255,0,0,0,3,255,252,63,255,192,0,0,7,254,0,0,127,224,0,0,31,248,7,224,31,248,0,0,63,240,15,240,15,252,0,0,127,112,31,248,14,254,0,1,252,96,63,252,6,63,128,3,240,96,63,252,6,15,192,7,192,96,63,252,6,7,224,15,128,96,63,252,6,1,240,30,0,96,63,252,6,0,248,60,0,96,63,252,6,0,60,120,0,112,31,248,14,0,30,120,0,112,31,248,14,0,30,60,0,48,7,224,12,0,60,30,0,56,0,0,28,0,120,15,0,28,0,0,56,0,240,7,128,28,0,0,56,1,224,3,192,14,0,0,112,3,192,0,240,7,0,0,224,15,0,0,120,3,192,3,192,30,0,0,62,1,248,31,128,124,0,0,15,0,255,255,0,240,0,0,7,192,63,252,3,224,0,0,1,240,0,0,15,128,0,0,0,126,0,0,126,0,0,0,0,31,192,3,248,0,0,0,0,7,255,255,224,0,0,0,0,0,255,255,0,0,0,0,0,0,7,224,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,248,0,0,0,0,0,1,255,255,128,0,0,0,0,15,255,255,240,0,0,0,0,63,248,31,252,0,0,0,0,255,0,0,255,0,0,0,3,248,0,0,31,192,0,0,7,224,0,0,7,224,0,0,31,128,0,0,1,248,0,0,62,0,0,0,0,124,0,0,124,3,255,255,192,62,0,1,240,255,255,255,255,15,128,3,231,255,255,255,255,231,192,7,255,240,63,252,15,255,224,15,254,96,63,252,6,127,240,31,240,96,63,252,6,15,248,63,128,96,63,252,6,1,252,124,0,112,31,248,14,0,62,120,0,112,31,248,14,0,30,60,0,48,7,224,12,0,60,30,0,56,0,0,28,0,120,15,0,28,0,0,56,0,240,7,128,28,0,0,56,1,224,3,192,14,0,0,112,3,192,0,240,7,0,0,224,15,0,0,120,3,192,3,192,30,0,0,62,1,248,31,128,124,0,0,15,0,255,255,0,240,0,0,7,192,63,252,3,224,0,0,1,240,0,0,15,128,0,0,0,126,0,0,126,0,0,0,0,31,192,3,248,0,0,0,0,7,255,255,224,0,0,0,0,0,255,255,0,0,0,0,0,0,7,224,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,248,0,0,0,0,0,1,255,255,128,0,0,0,0,15,255,255,240,0,0,0,0,63,248,31,252,0,0,0,0,255,0,0,255,0,0,0,3,248,0,0,31,192,0,0,7,224,0,0,7,224,0,0,31,128,0,0,1,248,0,0,62,0,0,0,0,124,0,0,124,0,0,0,0,62,0,1,240,0,0,0,0,15,128,3,224,0,0,0,0,7,192,7,128,0,0,0,0,1,224,15,0,0,0,0,0,0,240,30,0,0,0,0,0,0,120,60,0,0,0,0,0,0,60,127,255,255,255,255,255,255,254,127,255,255,255,255,255,255,254,60,0,120,15,240,30,0,60,30,0,56,0,0,28,0,120,15,0,28,0,0,56,0,240,7,128,28,0,0,56,1,224,3,192,14,0,0,112,3,192,0,240,7,0,0,224,15,0,0,120,3,192,3,192,30,0,0,62,1,248,31,128,124,0,0,15,0,255,255,0,240,0,0,7,192,63,252,3,224,0,0,1,240,0,0,15,128,0,0,0,126,0,0,126,0,0,0,0,31,192,3,248,0,0,0,0,7,255,255,224,0,0,0,0,0,255,255,0,0,0,0,0,0,7,224,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,248,0,0,0,0,0,1,255,255,128,0,0,0,0,15,255,255,240,0,0,0,0,63,248,31,252,0,0,0,0,255,0,0,255,0,0,0,3,248,0,0,31,192,0,0,7,224,0,0,7,224,0,0,31,128,0,0,1,248,0,0,62,0,0,0,0,124,0,0,124,0,0,0,0,62,0,1,240,0,0,0,0,15,128,3,224,0,0,0,0,7,192,7,128,0,0,0,0,1,224,15,0,0,0,0,0,0,240,30,0,0,0,0,0,0,120,60,0,0,0,0,0,0,60,120,0,0,0,0,0,0,30,124,0,0,0,0,0,0,62,63,128,0,0,0,0,1,252,31,240,0,0,0,0,15,248,15,254,0,0,0,0,127,240,7,255,224,0,0,7,255,224,3,207,255,0,0,255,243,192,0,241,255,255,255,255,143,0,0,120,15,255,255,240,30,0,0,62,1,255,255,128,124,0,0,15,0,255,255,0,240,0,0,7,192,63,252,3,224,0,0,1,240,0,0,15,128,0,0,0,126,0,0,126,0,0,0,0,31,192,3,248,0,0,0,0,7,255,255,224,0,0,0,0,0,255,255,0,0,0,0,0,0,7,224,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,248,0,0,0,0,0,1,255,255,128,0,0,0,0,15,255,255,240,0,0,0,0,63,248,31,252,0,0,0,0,255,0,0,255,0,0,0,3,248,0,0,31,192,0,0,7,224,0,0,7,224,0,0,31,128,0,0,1,248,0,0,62,0,0,0,0,124,0,0,124,0,0,0,0,62,0,1,240,0,0,0,0,15,128,3,224,0,0,0,0,7,192,7,128,0,0,0,0,1,224,15,0,0,0,0,0,0,240,30,0,0,0,0,0,0,120,60,0,0,0,0,0,0,60,120,0,0,0,0,0,0,30,120,0,0,0,0,0,0,30,60,0,0,0,0,0,0,60,31,0,0,0,0,0,0,248,15,128,0,0,0,0,1,240,7,192,0,0,0,0,3,224,3,240,0,0,0,0,15,192,0,252,0,0,0,0,63,0,0,127,0,0,0,0,254,0,0,63,192,0,0,3,252,0,0,15,240,0,0,15,240,0,0,7,254,0,0,127,224,0,0,1,255,224,7,255,128,0,0,0,127,255,255,254,0,0,0,0,31,255,255,248,0,0,0,0,7,255,255,224,0,0,0,0,0,255,255,0,0,0,0,0,0,7,224,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,248,0,0,0,0,0,1,255,255,128,0,0,0,0,15,255,255,240,0,0,0,0,63,248,31,252,0,0,0,0,255,0,0,255,0,0,0,3,248,0,0,31,192,0,0,7,224,0,0,7,224,0,0,31,128,0,0,1,248,0,0,62,0,0,0,0,124,0,0,124,0,0,0,0,62,0,1,240,0,0,0,0,15,128,3,224,0,0,0,0,7,192,7,128,0,0,0,0,1,224,15,0,0,0,0,0,0,240,30,0,0,0,0,0,0,120,60,0,0,0,0,0,0,60,120,0,0,0,0,0,0,30,120,0,0,0,0,0,0,30,60,0,0,0,0,0,0,60,30,0,0,0,0,0,0,120,15,0,0,0,0,0,0,240,7,128,0,0,0,0,1,224,3,224,0,0,0,0,7,192,1,240,0,0,0,0,15,128,0,248,0,0,0,0,31,0,0,254,0,0,0,0,127,0,0,31,128,0,0,1,248,0,0,7,224,0,0,7,224,0,0,3,248,0,0,31,192,0,0,0,255,0,0,255,0,0,0,0,127,224,7,252,0,0,0,0,127,255,255,252,0,0,0,0,1,255,255,136,0,0,0,0,0,31,248,0,0,0,0,0,0,1,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,248,0,0,0,0,0,1,255,255,128,0,0,0,0,15,255,255,240,0,0,0,0,63,248,31,252,0,0,0,0,255,0,0,255,0,0,0,3,248,0,0,31,192,0,0,7,224,0,0,7,224,0,0,31,128,0,0,1,248,0,0,62,0,0,0,0,124,0,0,124,0,0,0,0,62,0,1,240,0,0,0,0,15,128,3,224,0,0,0,0,7,192,7,128,0,0,0,0,1,224,15,0,0,0,0,0,0,240,30,0,0,0,0,0,0,120,60,0,0,0,0,0,0,60,120,0,0,0,0,0,0,30,120,0,0,0,0,0,0,30,60,0,0,0,0,0,0,60,30,0,0,0,0,0,0,120,15,0,0,0,0,0,0,240,7,128,0,0,0,0,1,224,3,224,0,0,0,0,7,192,1,240,0,0,0,0,15,128,0,248,0,0,0,0,31,0,1,254,0,0,0,0,127,128,3,223,128,0,0,1,251,192,3,135,224,0,0,7,225,192,0,3,248,0,0,31,192,0,0,0,255,0,0,255,0,0,0,0,127,224,7,252,0,0,0,0,127,255,255,252,0,0,0,0,97,255,255,156,0,0,0,0,224,31,248,12,0,0,0,0,224,1,128,12,0,0,0,0,0,1,128,0,0,0,0,0,0,1,128,0,0,0,0,0,0,1,128,0,0,0,0,0,0,1,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,248,0,0,0,0,0,1,255,255,128,0,0,0,0,15,255,255,240,0,0,0,0,63,248,31,252,0,0,0,0,255,0,0,255,0,0,0,3,248,0,0,31,192,0,0,7,224,0,0,7,224,0,0,31,128,0,0,1,248,0,0,62,0,0,0,0,124,0,0,124,0,0,0,0,62,0,1,240,0,0,0,0,15,128,3,224,0,0,0,0,7,192,7,128,0,0,0,0,1,224,15,0,0,0,0,0,0,240,30,0,0,0,0,0,0,120,60,0,0,0,0,0,0,60,120,0,0,0,0,0,0,30,120,0,0,0,0,0,0,30,60,0,0,0,0,0,0,60,30,0,0,0,0,0,0,120,15,0,0,0,0,0,0,240,7,128,0,0,0,0,1,224,3,224,0,0,0,0,7,192,1,240,0,0,0,0,15,128,0,248,0,0,0,0,31,0,1,254,0,0,0,0,127,128,3,159,128,0,0,1,249,192,7,135,224,0,0,7,225,224,7,3,248,0,0,31,192,224,14,0,255,0,0,255,0,112,12,0,127,224,7,252,0,48,0,0,127,255,255,252,0,0,0,0,97,255,255,156,0,0,0,0,224,31,248,12,0,0,0,0,224,1,128,14,0,0,0,0,224,1,128,14,0,0,0,0,192,1,128,14,0,0,0,1,192,1,128,6,0,0,0,0,128,1,128,6,0,0,0,0,0,1,128,0,0,0,0,0,0,1,128,0,0,0,0,0,0,1,128,0,0,0,0,0,0,1,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,248,0,0,0,0,0,1,255,255,128,0,0,0,0,15,255,255,240,0,0,0,0,63,248,31,252,0,0,0,0,255,0,0,255,0,0,0,3,248,0,0,31,192,0,0,7,224,0,0,7,224,0,0,31,128,0,0,1,248,0,0,62,0,0,0,0,124,0,0,124,0,0,0,0,62,0,1,240,0,0,0,0,15,128,3,224,0,0,0,0,7,192,7,128,0,0,0,0,1,224,15,0,0,0,0,0,0,240,30,0,0,0,0,0,0,120,60,0,0,0,0,0,0,60,120,0,0,0,0,0,0,30,120,0,0,0,0,0,0,30,60,0,0,0,0,0,0,60,30,0,0,0,0,0,0,120,15,0,0,0,0,0,0,240,7,128,0,0,0,0,1,224,3,224,0,0,0,0,7,192,1,240,0,0,0,0,15,128,0,248,0,0,0,0,31,0,1,254,0,0,0,0,127,128,3,159,128,0,0,1,249,192,7,135,224,0,0,7,225,224,7,3,248,0,0,31,192,224,14,0,255,0,0,255,0,112,12,0,127,224,7,252,0,48,0,0,127,255,255,252,0,0,0,0,97,255,255,156,0,0,0,0,224,31,248,12,0,0,0,0,224,1,128,14,0,0,0,0,224,1,128,14,0,0,0,0,192,1,128,14,0,0,0,1,192,1,128,6,0,0,0,0,128,1,128,6,0,0,0,0,0,1,128,0,0,0,0,0,0,1,128,0,0,0,0,0,0,1,128,0,0,0,0,0,0,1,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,248,0,0,0,0,0,1,255,255,128,0,0,0,0,15,255,255,240,0,0,0,0,63,248,31,252,0,0,0,0,255,0,0,255,0,0,0,3,248,0,0,31,192,0,0,7,224,0,0,7,224,0,0,31,128,0,0,1,248,0,0,62,0,0,0,0,124,0,0,124,0,0,0,0,62,0,1,240,0,0,0,0,15,128,3,224,0,0,0,0,7,192,7,128,0,0,0,0,1,224,15,0,0,0,0,0,0,240,30,0,0,0,0,0,0,120,60,0,0,0,0,0,0,60,120,0,0,0,0,0,0,30,120,0,0,0,0,0,0,30,60,0,0,0,0,0,0,60,30,0,0,0,0,0,0,120,15,0,0,0,0,0,0,240,7,128,0,0,0,0,1,224,3,224,0,0,0,0,7,192,1,240,0,0,0,0,15,128,0,248,0,0,0,0,31,0,1,254,0,0,0,0,127,128,3,159,128,0,0,1,249,192,7,135,224,0,0,7,225,224,7,3,248,0,0,31,192,224,14,0,255,0,0,255,0,112,12,0,127,224,7,252,0,48,0,0,127,255,255,252,0,0,0,0,97,255,255,156,0,0,0,0,224,31,248,12,0,0,0,0,224,1,128,14,0,0,0,0,224,1,128,14,0,0,0,0,192,1,128,14,0,0,0,1,192,1,128,6,0,0,0,0,128,1,128,6,0,0,0,0,0,1,128,0,0,0,0,0,0,1,128,0,0,0,0,0,0,1,128,0,0,0,0,0,0,1,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,248,0,0,0,0,0,1,255,255,128,0,0,0,0,15,255,255,240,0,0,0,0,63,248,31,252,0,0,0,0,255,0,0,255,0,0,0,3,248,0,0,31,192,0,0,7,224,0,0,7,224,0,0,31,128,0,0,1,248,0,0,62,0,0,0,0,124,0,0,124,0,0,0,0,62,0,1,240,0,0,0,0,15,128,3,224,0,0,0,0,7,192,7,128,0,0,0,0,1,224,15,0,0,0,0,0,0,240,30,0,0,0,0,0,0,120,60,0,0,0,0,0,0,60,120,0,0,0,0,0,0,30,120,0,0,0,0,0,0,30,60,0,0,0,0,0,0,60,30,0,0,0,0,0,0,120,15,0,0,0,0,0,0,240,7,128,0,0,0,0,1,224,3,224,0,0,0,0,7,192,1,240,0,0,0,0,15,128,0,248,0,0,0,0,31,0,1,254,0,0,0,0,127,128,3,159,128,0,0,1,249,192,7,135,224,0,0,7,225,224,7,3,248,0,0,31,192,224,14,0,255,0,0,255,0,112,12,0,127,224,7,252,0,48,0,0,127,255,255,252,0,0,0,0,97,255,255,156,0,0,0,0,224,31,248,12,0,0,0,0,224,1,128,14,0,0,0,0,224,1,128,14,0,0,0,0,192,1,128,14,0,0,0,1,192,1,128,6,0,0,0,0,128,1,128,6,0,0,0,0,0,1,128,0,0,0,0,0,0,1,128,0,0,0,0,0,0,1,128,0,0,0,0,0,0,1,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,248,0,0,0,0,0,1,255,255,128,0,0,0,0,15,255,255,240,0,0,0,0,63,248,31,252,0,0,0,0,255,0,0,255,0,0,0,3,248,0,0,31,192,0,0,7,224,0,0,7,224,0,0,31,128,0,0,1,248,0,0,62,0,0,0,0,124,0,0,124,0,0,0,0,62,0,1,240,0,0,0,0,15,128,3,224,0,0,0,0,7,192,7,128,0,0,0,0,1,224,15,0,0,0,0,0,0,240,30,0,0,0,0,0,0,120,60,0,0,0,0,0,0,60,120,0,0,0,0,0,0,30,120,0,0,0,0,0,0,30,60,0,0,0,0,0,0,60,30,0,0,0,0,0,0,120,15,0,0,0,0,0,0,240,7,128,0,0,0,0,1,224,3,224,0,0,0,0,7,192,1,240,0,0,0,0,15,128,0,248,0,0,0,0,31,0,1,254,0,0,0,0,127,128,3,159,128,0,0,1,249,192,7,135,224,0,0,7,225,224,7,3,248,0,0,31,192,224,14,0,255,0,0,255,0,112,12,0,127,224,7,252,0,48,0,0,127,255,255,252,0,0,0,0,97,255,255,156,0,0,0,0,224,31,248,12,0,0,0,0,224,1,128,14,0,0,0,0,224,1,128,14,0,0,0,0,192,1,128,14,0,0,0,1,192,1,128,6,0,0,0,0,128,1,128,6,0,0,0,0,0,1,128,0,0,0,0,0,0,1,128,0,0,0,0,0,0,1,128,0,0,0,0,0,0,1,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,248,0,0,0,0,0,1,255,255,128,0,0,0,0,15,255,255,240,0,0,0,0,63,248,31,252,0,0,0,0,255,0,0,255,0,0,0,3,248,0,0,31,192,0,0,7,224,0,0,7,224,0,0,31,128,0,0,1,248,0,0,62,0,0,0,0,124,0,0,124,0,0,0,0,62,0,1,240,0,0,0,0,15,128,3,224,0,0,0,0,7,192,7,128,0,0,0,0,1,224,15,0,0,0,0,0,0,240,30,0,0,0,0,0,0,120,60,0,0,0,0,0,0,60,120,0,0,0,0,0,0,30,120,0,0,0,0,0,0,30,60,0,0,0,0,0,0,60,30,0,0,0,0,0,0,120,15,0,0,0,0,0,0,240,7,128,0,0,0,0,1,224,3,224,0,0,0,0,7,192,1,240,0,0,0,0,15,128,0,248,0,0,0,0,31,0,1,254,0,0,0,0,127,128,3,159,128,0,0,1,249,192,7,135,224,0,0,7,225,224,7,3,248,0,0,31,192,224,14,0,255,0,0,255,0,112,12,0,127,224,7,252,0,48,0,0,127,255,255,252,0,0,0,0,97,255,255,156,0,0,0,0,224,31,248,12,0,0,0,0,224,1,128,14,0,0,0,0,224,1,128,14,0,0,0,0,192,1,128,14,0,0,0,1,192,1,128,6,0,0,0,0,128,1,128,6,0,0,0,0,0,1,128,0,0,0,0,0,0,1,128,0,0,0,0,0,0,1,128,0,0,0,0,0,0,1,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,248,0,0,0,0,0,1,255,255,128,0,0,0,0,15,255,255,240,0,0,0,0,63,248,31,252,0,0,0,0,255,0,0,255,0,0,0,3,248,0,0,31,192,0,0,7,224,0,0,7,224,0,0,31,128,0,0,1,248,0,0,62,0,0,0,0,124,0,0,124,0,0,0,0,62,0,1,240,0,0,0,0,15,128,3,224,0,0,0,0,7,192,7,128,0,0,0,0,1,224,15,0,0,0,0,0,0,240,30,0,0,0,0,0,0,120,60,0,0,0,0,0,0,60,120,0,0,0,0,0,0,30,120,0,0,0,0,0,0,30,60,0,0,0,0,0,0,60,30,0,0,0,0,0,0,120,15,0,0,0,0,0,0,240,7,128,0,0,0,0,1,224,3,224,0,0,0,0,7,192,1,240,0,0,0,0,15,128,0,248,0,0,0,0,31,0,1,254,0,0,0,0,127,128,3,159,128,0,0,1,249,192,7,135,224,0,0,7,225,224,7,3,248,0,0,31,192,224,14,0,255,0,0,255,0,112,12,0,127,224,7,252,0,48,0,0,127,255,255,252,0,0,0,0,97,255,255,156,0,0,0,0,224,31,248,12,0,0,0,0,224,1,128,14,0,0,0,0,224,1,128,14,0,0,0,0,192,1,128,14,0,0,0,1,192,1,128,6,0,0,0,0,128,1,128,6,0,0,0,0,0,1,128,0,0,0,0,0,0,1,128,0,0,0,0,0,0,1,128,0,0,0,0,0,0,1,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,248,0,0,0,0,0,1,255,255,128,0,0,0,0,15,255,255,240,0,0,0,0,63,248,31,252,0,0,0,0,255,0,0,255,0,0,0,3,248,0,0,31,192,0,0,7,224,0,0,7,224,0,0,31,128,0,0,1,248,0,0,62,0,0,0,0,124,0,0,124,0,0,0,0,62,0,1,240,0,0,0,0,15,128,3,224,0,0,0,0,7,192,7,128,0,0,0,0,1,224,15,0,0,0,0,0,0,240,30,0,0,0,0,0,0,120,60,0,0,0,0,0,0,60,120,0,0,0,0,0,0,30,120,0,0,0,0,0,0,30,60,0,0,0,0,0,0,60,30,0,0,0,0,0,0,120,15,0,0,0,0,0,0,240,7,128,0,0,0,0,1,224,3,224,0,0,0,0,7,192,1,240,0,0,0,0,15,128,0,248,0,0,0,0,31,0,1,254,0,0,0,0,127,128,3,223,128,0,0,1,251,192,3,135,224,0,0,7,225,192,0,3,248,0,0,31,192,0,0,0,255,0,0,255,0,0,0,0,127,224,7,252,0,0,0,0,127,255,255,252,0,0,0,0,97,255,255,156,0,0,0,0,224,31,248,12,0,0,0,0,224,1,128,12,0,0,0,0,0,1,128,0,0,0,0,0,0,1,128,0,0,0,0,0,0,1,128,0,0,0,0,0,0,1,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,248,0,0,0,0,0,1,255,255,128,0,0,0,0,15,255,255,240,0,0,0,0,63,248,31,252,0,0,0,0,255,0,0,255,0,0,0,3,248,0,0,31,192,0,0,7,224,0,0,7,224,0,0,31,128,0,0,1,248,0,0,62,0,0,0,0,124,0,0,124,0,0,0,0,62,0,1,240,0,0,0,0,15,128,3,224,0,0,0,0,7,192,7,128,0,0,0,0,1,224,15,0,0,0,0,0,0,240,30,0,0,0,0,0,0,120,60,0,0,0,0,0,0,60,120,0,0,0,0,0,0,30,120,0,0,0,0,0,0,30,60,0,0,0,0,0,0,60,30,0,0,0,0,0,0,120,15,0,0,0,0,0,0,240,7,128,0,0,0,0,1,224,3,224,0,0,0,0,7,192,1,240,0,0,0,0,15,128,0,248,0,0,0,0,31,0,0,254,0,0,0,0,127,0,0,31,128,0,0,1,248,0,0,7,224,0,0,7,224,0,0,3,248,0,0,31,192,0,0,0,255,0,0,255,0,0,0,0,127,224,7,252,0,0,0,0,127,255,255,252,0,0,0,0,1,255,255,136,0,0,0,0,0,31,248,0,0,0,0,0,0,1,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,248,0,0,0,0,0,1,255,255,128,0,0,0,0,15,255,255,240,0,0,0,0,63,248,31,252,0,0,0,0,255,0,0,255,0,0,0,3,248,0,0,31,192,0,0,7,224,0,0,7,224,0,0,31,128,0,0,1,248,0,0,62,0,0,0,0,124,0,0,124,0,0,0,0,62,0,1,240,0,0,0,0,15,128,3,224,0,0,0,0,7,192,7,128,0,0,0,0,1,224,15,0,0,0,0,0,0,240,30,0,0,0,0,0,0,120,60,0,0,0,0,0,0,60,120,0,0,0,0,0,0,30,120,0,0,0,0,0,0,30,62,0,0,0,0,0,0,124,31,0,0,0,0,0,0,248,15,192,0,0,0,0,3,240,7,240,0,0,0,0,15,224,3,252,0,0,0,0,63,192,0,255,0,0,0,0,255,0,0,127,224,0,0,7,254,0,0,63,252,0,0,63,252,0,0,15,255,224,7,255,240,0,0,7,207,255,255,243,224,0,0,1,240,255,255,15,128,0,0,0,126,0,0,126,0,0,0,0,31,192,3,248,0,0,0,0,7,255,255,224,0,0,0,0,0,255,255,0,0,0,0,0,0,7,224,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,248,0,0,0,0,0,1,255,255,128,0,0,0,0,15,255,255,240,0,0,0,0,63,248,31,252,0,0,0,0,255,0,0,255,0,0,0,3,248,0,0,31,192,0,0,7,224,0,0,7,224,0,0,31,128,0,0,1,248,0,0,62,0,0,0,0,124,0,0,124,0,0,0,0,62,0,1,240,0,0,0,0,15,128,3,224,0,0,0,0,7,192,7,128,0,0,0,0,1,224,15,0,0,0,0,0,0,240,30,0,0,0,0,0,0,120,60,0,0,0,0,0,0,60,120,0,0,0,0,0,0,62,127,128,0,0,0,0,1,254,63,252,0,0,0,0,63,252,31,255,252,0,0,63,255,248,15,63,255,255,255,255,252,240,7,128,255,255,255,255,1,224,3,192,15,255,255,240,3,192,0,240,7,0,0,224,15,0,0,120,3,192,3,192,30,0,0,62,1,248,31,128,124,0,0,15,0,255,255,0,240,0,0,7,192,63,252,3,224,0,0,1,240,0,0,15,128,0,0,0,126,0,0,126,0,0,0,0,31,192,3,248,0,0,0,0,7,255,255,224,0,0,0,0,0,255,255,0,0,0,0,0,0,7,224,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,248,0,0,0,0,0,1,255,255,128,0,0,0,0,15,255,255,240,0,0,0,0,63,248,31,252,0,0,0,0,255,0,0,255,0,0,0,3,248,0,0,31,192,0,0,7,224,0,0,7,224,0,0,31,128,0,0,1,248,0,0,62,0,0,0,0,124,0,0,124,0,0,0,0,62,0,1,240,0,0,0,0,15,128,3,224,0,0,0,0,7,192,7,128,0,0,0,0,1,224,15,0,0,255,255,0,0,240,30,127,255,255,255,255,254,120,63,255,255,255,255,255,255,252,127,252,112,31,248,14,63,254,126,0,112,31,248,14,0,126,60,0,48,7,224,12,0,60,30,0,56,0,0,28,0,120,15,0,28,0,0,56,0,240,7,128,28,0,0,56,1,224,3,192,14,0,0,112,3,192,0,240,7,0,0,224,15,0,0,120,3,192,3,192,30,0,0,62,1,248,31,128,124,0,0,15,0,255,255,0,240,0,0,7,192,63,252,3,224,0,0,1,240,0,0,15,128,0,0,0,126,0,0,126,0,0,0,0,31,192,3,248,0,0,0,0,7,255,255,224,0,0,0,0,0,255,255,0,0,0,0,0,0,7,224,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,248,0,0,0,0,0,1,255,255,128,0,0,0,0,15,255,255,240,0,0,0,0,63,248,31,252,0,0,0,0,255,0,0,255,0,0,0,3,248,0,0,31,192,0,0,7,224,0,0,7,224,0,0,31,128,31,248,1,248,0,0,62,7,255,255,224,124,0,0,124,127,255,255,254,62,0,1,243,255,63,252,255,207,128,3,255,240,63,252,15,255,192,7,255,96,63,252,6,255,224,15,248,96,63,252,6,31,240,31,224,96,63,252,6,7,248,63,0,96,63,252,6,0,252,124,0,112,31,248,14,0,62,120,0,112,31,248,14,0,30,60,0,48,7,224,12,0,60,30,0,56,0,0,28,0,120,15,0,28,0,0,56,0,240,7,128,28,0,0,56,1,224,3,192,14,0,0,112,3,192,0,240,7,0,0,224,15,0,0,120,3,192,3,192,30,0,0,62,1,248,31,128,124,0,0,15,0,255,255,0,240,0,0,7,192,63,252,3,224,0,0,1,240,0,0,15,128,0,0,0,126,0,0,126,0,0,0,0,31,192,3,248,0,0,0,0,7,255,255,224,0,0,0,0,0,255,255,0,0,0,0,0,0,7,224,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,248,0,0,0,0,0,1,255,255,128,0,0,0,0,15,255,255,240,0,0,0,0,63,255,255,252,0,0,0,0,255,255,255,255,0,0,0,3,255,224,7,255,192,0,0,7,252,0,0,63,224,0,0,31,248,7,224,31,248,0,0,63,240,15,240,15,252,0,0,126,112,31,248,14,126,0,1,252,96,63,252,6,63,128,3,240,96,63,252,6,15,192,7,192,96,63,252,6,3,224,15,128,96,63,252,6,1,240,30,0,96,63,252,6,0,120,60,0,96,63,252,6,0,60,120,0,112,31,248,14,0,30,120,0,112,31,248,14,0,30,60,0,48,7,224,12,0,60,30,0,56,0,0,28,0,120,15,0,28,0,0,56,0,240,7,128,28,0,0,56,1,224,3,192,14,0,0,112,3,192,0,240,7,0,0,224,15,0,0,120,3,192,3,192,30,0,0,62,1,248,31,128,124,0,0,15,0,255,255,0,240,0,0,7,192,63,252,3,224,0,0,1,240,0,0,15,128,0,0,0,126,0,0,126,0,0,0,0,31,192,3,248,0,0,0,0,7,255,255,224,0,0,0,0,0,255,255,0,0,0,0,0,0,7,224,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,248,0,0,0,0,0,1,255,255,128,0,0,0,0,15,255,255,240,0,0,0,0,63,248,31,252,0,0,0,0,255,0,0,255,0,0,0,3,252,0,0,63,192,0,0,7,248,0,0,31,224,0,0,31,184,7,224,29,248,0,0,62,112,15,240,14,124,0,0,124,112,31,248,14,62,0,1,240,96,63,252,6,15,128,3,224,96,63,252,6,7,192,7,192,96,63,252,6,3,224,15,0,96,63,252,6,0,240,30,0,96,63,252,6,0,120,60,0,96,63,252,6,0,60,120,0,112,31,248,14,0,30,120,0,112,31,248,14,0,30,60,0,48,7,224,12,0,60,30,0,56,0,0,28,0,120,15,0,28,0,0,56,0,240,7,128,28,0,0,56,1,224,3,192,14,0,0,112,3,192,0,240,7,0,0,224,15,0,0,120,3,192,3,192,30,0,0,62,1,248,31,128,124,0,0,15,0,255,255,0,240,0,0,7,192,63,252,3,224,0,0,1,240,0,0,15,128,0,0,0,126,0,0,126,0,0,0,0,31,192,3,248,0,0,0,0,7,255,255,224,0,0,0,0,0,255,255,0,0,0,0,0,0,7,224,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,248,0,0,0,0,0,1,255,255,128,0,0,0,0,15,255,255,240,0,0,0,0,63,248,31,252,0,0,0,0,255,0,0,255,0,0,0,3,252,0,0,63,192,0,0,7,248,0,0,31,224,0,0,31,184,7,224,29,248,0,0,62,112,15,240,14,124,0,0,124,112,31,248,14,62,0,1,240,96,63,252,6,15,128,3,224,96,63,252,6,7,192,7,192,96,63,252,6,3,224,15,0,96,63,252,6,0,240,30,0,96,63,252,6,0,120,60,0,96,63,252,6,0,60,120,0,112,31,248,14,0,30,120,0,112,31,248,14,0,30,60,0,48,7,224,12,0,60,30,0,56,0,0,28,0,120,15,0,28,0,0,56,0,240,7,128,28,0,0,56,1,224,3,192,14,0,0,112,3,192,0,240,7,0,0,224,15,0,0,120,3,192,3,192,30,0,0,62,1,248,31,128,124,0,0,15,0,255,255,0,240,0,0,7,192,63,252,3,224,0,0,1,240,0,0,15,128,0,0,0,126,0,0,126,0,0,0,0,31,192,3,248,0,0,0,0,7,255,255,224,0,0,0,0,0,255,255,0,0,0,0,0,0,7,224,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,248,0,0,0,0,0,1,255,255,128,0,0,0,0,15,255,255,240,0,0,0,0,63,248,31,252,0,0,0,0,255,0,0,255,0,0,0,3,252,0,0,63,192,0,0,7,248,0,0,31,224,0,0,31,184,7,224,29,248,0,0,62,112,15,240,14,124,0,0,124,112,31,248,14,62,0,1,240,96,63,252,6,15,128,3,224,96,63,252,6,7,192,7,192,96,63,252,6,3,224,15,0,96,63,252,6,0,240,30,0,96,63,252,6,0,120,60,0,96,63,252,6,0,60,120,0,112,31,248,14,0,30,120,0,112,31,248,14,0,30,60,0,48,7,224,12,0,60,30,0,56,0,0,28,0,120,15,0,28,0,0,56,0,240,7,128,28,0,0,56,1,224,3,192,14,0,0,112,3,192,0,240,7,0,0,224,15,0,0,120,3,192,3,192,30,0,0,62,1,248,31,128,124,0,0,15,0,255,255,0,240,0,0,7,192,63,252,3,224,0,0,1,240,0,0,15,128,0,0,0,126,0,0,126,0,0,0,0,31,192,3,248,0,0,0,0,7,255,255,224,0,0,0,0,0,255,255,0,0,0,0,0,0,7,224,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} +}; + + +int animacja2Width = 64; +int animacja2Height = 64; +int animacja2FrameCount = 28; + +const byte PROGMEM animacja2[][512] = { + {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,7,0,0,0,0,0,0,6,3,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,6,3,0,0,0,0,0,0,7,143,0,0,0,0,0,0,3,254,0,0,0,0,0,0,1,252,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,224,0,0,0,0,0,0,127,248,0,0,0,0,0,0,248,60,0,0,0,0,0,1,224,28,0,0,0,0,0,7,128,14,0,0,0,0,0,15,0,15,0,0,0,0,0,30,0,15,0,0,0,0,0,56,0,31,128,0,0,0,0,112,112,29,192,0,0,0,0,224,240,25,224,0,0,0,0,225,240,24,252,0,0,0,0,199,240,60,127,128,0,0,1,199,96,60,31,192,0,0,1,206,96,62,1,224,0,0,3,142,224,119,128,224,0,0,3,140,224,115,240,224,0,0,7,28,192,113,255,224,0,0,7,24,192,96,63,224,0,0,6,57,192,224,3,128,0,0,7,49,192,224,0,0,0,0,7,241,192,224,0,0,0,0,3,225,192,112,0,0,0,0,0,129,192,120,0,0,0,0,0,3,224,56,0,0,0,0,0,3,248,28,0,0,0,0,0,3,188,14,0,0,0,0,0,3,30,15,0,0,0,0,0,3,15,7,0,0,0,0,0,7,15,131,128,0,0,0,0,7,31,195,128,0,0,0,0,14,29,225,128,0,0,0,0,30,28,225,128,0,0,0,0,28,24,97,192,0,0,0,0,56,56,97,192,0,0,0,0,112,112,112,192,0,0,0,0,240,240,112,192,0,0,0,0,224,224,48,224,0,0,0,1,193,192,48,224,0,0,0,3,131,128,56,96,0,0,0,3,135,0,56,96,0,0,0,3,135,0,24,96,0,0,0,3,142,0,28,224,0,0,0,1,252,0,15,224,0,0,0,0,248,0,15,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,7,0,0,0,0,0,0,6,3,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,6,3,0,0,0,0,0,0,7,143,0,0,0,0,0,0,3,254,0,0,0,0,0,0,1,252,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,31,240,0,0,0,0,0,0,127,248,0,0,0,0,0,0,248,60,0,0,0,0,0,1,224,28,0,0,0,0,0,7,128,14,0,0,0,0,0,15,0,15,0,0,0,0,0,30,0,15,0,0,0,0,0,60,0,31,128,0,0,0,0,112,112,29,192,0,0,0,0,112,240,25,192,0,0,0,0,225,240,24,248,0,0,0,0,227,240,56,127,0,0,0,0,199,96,60,31,192,0,0,1,198,96,62,3,192,0,0,1,206,224,127,0,224,0,0,3,142,224,119,240,224,0,0,3,156,192,115,255,224,0,0,3,28,192,96,127,192,0,0,7,25,192,224,7,128,0,0,7,57,192,224,0,0,0,0,7,241,192,224,0,0,0,0,3,241,192,112,0,0,0,0,0,193,224,120,0,0,0,0,0,3,240,56,0,0,0,0,0,3,248,28,0,0,0,0,0,3,188,14,0,0,0,0,0,3,30,14,0,0,0,0,0,3,15,7,0,0,0,0,0,3,15,131,0,0,0,0,0,7,15,195,128,0,0,0,0,15,29,195,128,0,0,0,0,14,28,225,128,0,0,0,0,28,24,225,192,0,0,0,0,56,56,97,192,0,0,0,0,120,120,112,192,0,0,0,0,112,112,112,192,0,0,0,0,224,224,112,224,0,0,0,1,193,192,48,224,0,0,0,1,131,192,56,96,0,0,0,3,135,128,56,96,0,0,0,3,135,0,24,96,0,0,0,1,206,0,28,224,0,0,0,1,252,0,15,224,0,0,0,0,248,0,15,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,7,0,0,0,0,0,0,6,3,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,6,3,0,0,0,0,0,0,7,143,0,0,0,0,0,0,3,254,0,0,0,0,0,0,1,252,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,31,240,0,0,0,0,0,0,127,248,0,0,0,0,0,0,240,28,0,0,0,0,0,1,224,28,0,0,0,0,0,3,192,14,0,0,0,0,0,15,0,14,0,0,0,0,0,30,0,15,0,0,0,0,0,60,16,31,0,0,0,0,0,56,120,31,128,0,0,0,0,112,240,25,192,0,0,0,0,113,240,25,224,0,0,0,0,99,240,56,252,0,0,0,0,227,224,60,127,0,0,0,0,231,224,60,15,128,0,0,0,199,224,126,3,192,0,0,1,206,224,119,193,192,0,0,1,206,192,119,249,192,0,0,3,141,192,97,255,128,0,0,3,157,192,224,63,128,0,0,3,157,192,224,4,0,0,0,3,249,192,224,0,0,0,0,1,249,192,112,0,0,0,0,1,241,224,112,0,0,0,0,0,1,240,56,0,0,0,0,0,3,248,28,0,0,0,0,0,3,184,28,0,0,0,0,0,3,156,14,0,0,0,0,0,3,142,7,0,0,0,0,0,3,143,7,0,0,0,0,0,3,15,131,0,0,0,0,0,7,15,195,128,0,0,0,0,14,29,195,128,0,0,0,0,30,28,225,128,0,0,0,0,60,28,225,192,0,0,0,0,56,56,97,192,0,0,0,0,112,112,112,192,0,0,0,0,224,224,112,224,0,0,0,1,193,224,48,224,0,0,0,1,195,192,56,96,0,0,0,1,131,128,56,96,0,0,0,1,199,0,24,96,0,0,0,1,254,0,28,224,0,0,0,0,252,0,15,224,0,0,0,0,56,0,15,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,7,0,0,0,0,0,0,6,3,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,6,3,0,0,0,0,0,0,7,143,0,0,0,0,0,0,3,254,0,0,0,0,0,0,1,252,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,192,0,0,0,0,0,0,63,240,0,0,0,0,0,0,127,248,0,0,0,0,0,0,240,28,0,0,0,0,0,1,224,28,0,0,0,0,0,3,192,14,0,0,0,0,0,7,128,14,0,0,0,0,0,14,0,15,0,0,0,0,0,28,48,31,0,0,0,0,0,56,120,31,128,0,0,0,0,56,240,27,128,0,0,0,0,49,240,57,192,0,0,0,0,113,240,57,240,0,0,0,0,115,224,56,252,0,0,0,0,115,224,60,63,0,0,0,0,99,224,124,15,0,0,0,0,231,224,127,3,128,0,0,0,231,192,127,195,128,0,0,0,199,192,103,255,0,0,0,1,199,192,224,255,0,0,0,1,207,192,224,30,0,0,0,1,223,192,224,0,0,0,0,0,253,192,112,0,0,0,0,0,249,224,112,0,0,0,0,0,1,224,56,0,0,0,0,0,1,240,56,0,0,0,0,0,1,184,28,0,0,0,0,0,1,156,28,0,0,0,0,0,1,158,14,0,0,0,0,0,3,142,6,0,0,0,0,0,3,143,7,0,0,0,0,0,3,143,135,0,0,0,0,0,7,15,131,128,0,0,0,0,14,13,195,128,0,0,0,0,28,28,193,128,0,0,0,0,56,60,225,192,0,0,0,0,112,56,225,192,0,0,0,0,240,112,112,224,0,0,0,0,224,224,112,224,0,0,0,0,193,192,56,96,0,0,0,0,195,128,56,96,0,0,0,0,231,0,24,96,0,0,0,0,255,0,31,224,0,0,0,0,126,0,15,192,0,0,0,0,0,0,7,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,7,0,0,0,0,0,0,6,3,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,7,3,0,0,0,0,0,0,3,223,0,0,0,0,0,0,3,254,0,0,0,0,0,0,0,248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,192,0,0,0,0,0,0,63,240,0,0,0,0,0,0,127,248,0,0,0,0,0,0,240,28,0,0,0,0,0,1,224,12,0,0,0,0,0,3,192,14,0,0,0,0,0,7,128,14,0,0,0,0,0,15,0,30,0,0,0,0,0,30,24,31,0,0,0,0,0,28,56,31,0,0,0,0,0,24,112,31,0,0,0,0,0,56,240,59,128,0,0,0,0,57,224,59,192,0,0,0,0,57,224,57,240,0,0,0,0,49,224,56,252,0,0,0,0,51,224,120,62,0,0,0,0,115,224,124,14,0,0,0,0,115,192,127,6,0,0,0,0,115,192,111,206,0,0,0,0,103,192,227,254,0,0,0,0,103,192,224,124,0,0,0,0,231,192,224,0,0,0,0,0,127,192,112,0,0,0,0,0,127,224,112,0,0,0,0,0,57,224,48,0,0,0,0,0,1,240,56,0,0,0,0,0,1,248,24,0,0,0,0,0,1,248,28,0,0,0,0,0,1,220,12,0,0,0,0,0,1,206,14,0,0,0,0,0,1,206,14,0,0,0,0,0,3,143,7,0,0,0,0,0,7,143,135,0,0,0,0,0,15,15,131,128,0,0,0,0,30,15,195,128,0,0,0,0,60,29,193,192,0,0,0,0,120,56,225,192,0,0,0,0,112,112,224,224,0,0,0,0,224,240,112,224,0,0,0,0,225,224,56,96,0,0,0,0,227,192,56,96,0,0,0,0,127,128,28,96,0,0,0,0,127,0,31,224,0,0,0,0,30,0,15,192,0,0,0,0,0,0,7,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,7,0,0,0,0,0,0,6,3,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,7,3,0,0,0,0,0,0,3,255,0,0,0,0,0,0,3,254,0,0,0,0,0,0,0,248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,224,0,0,0,0,0,0,63,240,0,0,0,0,0,0,127,248,0,0,0,0,0,0,240,28,0,0,0,0,0,1,224,12,0,0,0,0,0,1,192,12,0,0,0,0,0,3,128,12,0,0,0,0,0,7,8,28,0,0,0,0,0,15,24,30,0,0,0,0,0,14,56,30,0,0,0,0,0,28,112,30,0,0,0,0,0,28,240,62,0,0,0,0,0,28,224,63,128,0,0,0,0,24,224,51,192,0,0,0,0,25,224,49,224,0,0,0,0,25,224,112,240,0,0,0,0,57,224,124,48,0,0,0,0,57,192,127,48,0,0,0,0,57,192,111,240,0,0,0,0,57,192,227,240,0,0,0,0,57,192,224,224,0,0,0,0,59,192,224,0,0,0,0,0,63,192,96,0,0,0,0,0,31,224,112,0,0,0,0,0,1,224,112,0,0,0,0,0,1,240,48,0,0,0,0,0,1,240,56,0,0,0,0,0,0,248,56,0,0,0,0,0,0,220,24,0,0,0,0,0,0,220,28,0,0,0,0,0,1,206,28,0,0,0,0,0,7,206,12,0,0,0,0,0,15,15,14,0,0,0,0,0,30,15,14,0,0,0,0,0,60,31,135,0,0,0,0,0,120,63,135,0,0,0,0,0,224,121,195,0,0,0,0,0,225,225,195,128,0,0,0,0,227,192,195,128,0,0,0,0,127,128,225,128,0,0,0,0,127,0,97,128,0,0,0,0,28,0,97,128,0,0,0,0,0,0,127,128,0,0,0,0,0,0,63,0,0,0,0,0,0,0,30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,248,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,7,0,0,0,0,0,0,6,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,6,3,128,0,0,0,0,0,7,7,0,0,0,0,0,0,3,254,0,0,0,0,0,0,1,252,0,0,0,0,0,0,0,248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,224,0,0,0,0,0,0,63,248,0,0,0,0,0,0,127,248,0,0,0,0,0,0,240,28,0,0,0,0,0,0,224,12,0,0,0,0,0,1,192,12,0,0,0,0,0,3,192,12,0,0,0,0,0,3,140,28,0,0,0,0,0,7,28,28,0,0,0,0,0,14,56,28,0,0,0,0,0,14,56,28,0,0,0,0,0,12,112,60,0,0,0,0,0,12,240,62,0,0,0,0,0,12,224,63,0,0,0,0,0,12,224,55,128,0,0,0,0,12,224,115,128,0,0,0,0,12,224,121,128,0,0,0,0,12,224,125,128,0,0,0,0,28,224,255,128,0,0,0,0,12,224,239,128,0,0,0,0,28,192,224,0,0,0,0,0,15,192,224,0,0,0,0,0,15,192,224,0,0,0,0,0,7,224,96,0,0,0,0,0,0,224,112,0,0,0,0,0,0,240,112,0,0,0,0,0,0,240,112,0,0,0,0,0,0,248,48,0,0,0,0,0,0,248,48,0,0,0,0,0,1,248,56,0,0,0,0,0,7,220,56,0,0,0,0,0,15,140,24,0,0,0,0,0,62,14,24,0,0,0,0,0,124,14,28,0,0,0,0,0,112,62,28,0,0,0,0,0,224,255,12,0,0,0,0,0,225,231,14,0,0,0,0,0,255,195,14,0,0,0,0,0,127,3,134,0,0,0,0,0,62,3,134,0,0,0,0,0,0,1,134,0,0,0,0,0,0,1,206,0,0,0,0,0,0,1,254,0,0,0,0,0,0,0,252,0,0,0,0,0,0,0,48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,248,0,0,0,0,0,0,3,254,0,0,0,0,0,0,3,143,0,0,0,0,0,0,7,3,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,6,3,128,0,0,0,0,0,7,7,0,0,0,0,0,0,3,254,0,0,0,0,0,0,1,252,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,224,0,0,0,0,0,0,63,248,0,0,0,0,0,0,120,56,0,0,0,0,0,0,112,28,0,0,0,0,0,0,224,12,0,0,0,0,0,1,192,12,0,0,0,0,0,1,192,12,0,0,0,0,0,3,140,28,0,0,0,0,0,3,156,28,0,0,0,0,0,7,28,24,0,0,0,0,0,6,56,24,0,0,0,0,0,14,112,56,0,0,0,0,0,14,112,56,0,0,0,0,0,6,112,56,0,0,0,0,0,6,112,60,0,0,0,0,0,6,112,124,0,0,0,0,0,6,112,124,0,0,0,0,0,6,112,124,0,0,0,0,0,6,112,252,0,0,0,0,0,6,112,248,0,0,0,0,0,7,112,224,0,0,0,0,0,7,240,224,0,0,0,0,0,3,224,224,0,0,0,0,0,1,224,224,0,0,0,0,0,0,224,96,0,0,0,0,0,0,224,96,0,0,0,0,0,0,112,96,0,0,0,0,0,0,112,96,0,0,0,0,0,0,240,112,0,0,0,0,0,7,248,112,0,0,0,0,0,31,248,112,0,0,0,0,0,126,28,112,0,0,0,0,0,120,28,48,0,0,0,0,0,224,60,48,0,0,0,0,0,224,252,56,0,0,0,0,0,227,252,56,0,0,0,0,0,127,206,56,0,0,0,0,0,63,14,24,0,0,0,0,0,24,14,24,0,0,0,0,0,0,6,28,0,0,0,0,0,0,7,28,0,0,0,0,0,0,7,24,0,0,0,0,0,0,7,248,0,0,0,0,0,0,3,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,143,0,0,0,0,0,0,7,3,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,6,3,0,0,0,0,0,0,7,143,0,0,0,0,0,0,3,254,0,0,0,0,0,0,1,252,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,224,0,0,0,0,0,0,63,248,0,0,0,0,0,0,120,60,0,0,0,0,0,0,112,28,0,0,0,0,0,0,224,12,0,0,0,0,0,0,224,12,0,0,0,0,0,1,192,12,0,0,0,0,0,1,206,28,0,0,0,0,0,3,142,28,0,0,0,0,0,3,156,24,0,0,0,0,0,7,24,24,0,0,0,0,0,7,56,56,0,0,0,0,0,7,48,56,0,0,0,0,0,7,48,48,0,0,0,0,0,7,56,112,0,0,0,0,0,3,56,112,0,0,0,0,0,3,56,112,0,0,0,0,0,3,56,96,0,0,0,0,0,3,152,224,0,0,0,0,0,3,152,224,0,0,0,0,0,3,184,224,0,0,0,0,0,1,248,224,0,0,0,0,0,1,240,224,0,0,0,0,0,0,192,224,0,0,0,0,0,0,224,224,0,0,0,0,0,0,224,224,0,0,0,0,0,0,96,224,0,0,0,0,0,0,112,224,0,0,0,0,0,7,240,224,0,0,0,0,0,63,240,224,0,0,0,0,0,126,48,224,0,0,0,0,0,240,56,224,0,0,0,0,0,192,56,96,0,0,0,0,0,192,248,96,0,0,0,0,0,231,248,96,0,0,0,0,0,127,248,96,0,0,0,0,0,126,24,96,0,0,0,0,0,0,24,96,0,0,0,0,0,0,24,112,0,0,0,0,0,0,24,112,0,0,0,0,0,0,28,112,0,0,0,0,0,0,28,224,0,0,0,0,0,0,31,224,0,0,0,0,0,0,7,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,7,0,0,0,0,0,0,6,3,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,7,3,0,0,0,0,0,0,7,223,0,0,0,0,0,0,3,254,0,0,0,0,0,0,1,252,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,224,0,0,0,0,0,0,63,248,0,0,0,0,0,0,120,56,0,0,0,0,0,0,112,28,0,0,0,0,0,0,224,12,0,0,0,0,0,0,224,12,0,0,0,0,0,0,192,12,0,0,0,0,0,1,198,28,0,0,0,0,0,1,206,28,0,0,0,0,0,1,140,24,0,0,0,0,0,3,156,24,0,0,0,0,0,3,156,56,0,0,0,0,0,3,24,56,0,0,0,0,0,3,152,48,0,0,0,0,0,3,156,48,0,0,0,0,0,3,156,112,0,0,0,0,0,1,156,112,0,0,0,0,0,1,204,96,0,0,0,0,0,1,206,224,0,0,0,0,0,1,206,224,0,0,0,0,0,1,238,224,0,0,0,0,0,1,252,192,0,0,0,0,0,1,252,192,0,0,0,0,0,1,240,192,0,0,0,0,0,0,192,192,0,0,0,0,0,0,224,192,0,0,0,0,0,0,224,192,0,0,0,0,0,0,224,192,0,0,0,0,0,0,224,192,0,0,0,0,0,3,224,192,0,0,0,0,0,7,225,192,0,0,0,0,0,15,113,192,0,0,0,0,0,28,113,192,0,0,0,0,0,24,113,192,0,0,0,0,0,28,241,192,0,0,0,0,0,31,241,192,0,0,0,0,0,15,241,192,0,0,0,0,0,0,113,192,0,0,0,0,0,0,113,192,0,0,0,0,0,0,113,192,0,0,0,0,0,0,113,192,0,0,0,0,0,0,113,192,0,0,0,0,0,0,63,128,0,0,0,0,0,0,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,7,0,0,0,0,0,0,6,3,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,6,3,0,0,0,0,0,0,7,143,0,0,0,0,0,0,3,254,0,0,0,0,0,0,1,252,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,224,0,0,0,0,0,0,63,248,0,0,0,0,0,0,63,248,0,0,0,0,0,0,112,28,0,0,0,0,0,0,96,12,0,0,0,0,0,0,224,12,0,0,0,0,0,0,224,12,0,0,0,0,0,0,198,28,0,0,0,0,0,1,198,28,0,0,0,0,0,1,206,28,0,0,0,0,0,1,206,24,0,0,0,0,0,1,204,56,0,0,0,0,0,3,156,56,0,0,0,0,0,3,156,48,0,0,0,0,0,1,206,48,0,0,0,0,0,1,206,112,0,0,0,0,0,1,198,112,0,0,0,0,0,0,231,96,0,0,0,0,0,1,231,224,0,0,0,0,0,1,227,224,0,0,0,0,0,1,243,224,0,0,0,0,0,1,255,192,0,0,0,0,0,1,255,192,0,0,0,0,0,1,220,192,0,0,0,0,0,1,193,192,0,0,0,0,0,1,193,192,0,0,0,0,0,0,193,192,0,0,0,0,0,0,193,192,0,0,0,0,0,0,193,128,0,0,0,0,0,0,193,128,0,0,0,0,0,0,225,128,0,0,0,0,0,1,227,128,0,0,0,0,0,3,227,128,0,0,0,0,0,3,227,128,0,0,0,0,0,3,195,128,0,0,0,0,0,3,195,128,0,0,0,0,0,1,195,128,0,0,0,0,0,1,195,128,0,0,0,0,0,0,195,128,0,0,0,0,0,0,195,0,0,0,0,0,0,0,195,0,0,0,0,0,0,0,199,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,126,0,0,0,0,0,0,0,56,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,248,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,143,0,0,0,0,0,0,7,3,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,6,3,0,0,0,0,0,0,7,143,0,0,0,0,0,0,3,254,0,0,0,0,0,0,1,252,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,224,0,0,0,0,0,0,63,240,0,0,0,0,0,0,63,248,0,0,0,0,0,0,112,28,0,0,0,0,0,0,96,12,0,0,0,0,0,0,96,12,0,0,0,0,0,0,224,12,0,0,0,0,0,0,231,28,0,0,0,0,0,1,231,28,0,0,0,0,0,1,198,28,0,0,0,0,0,1,198,24,0,0,0,0,0,3,206,56,0,0,0,0,0,3,206,56,0,0,0,0,0,3,206,48,0,0,0,0,0,3,199,48,0,0,0,0,0,3,231,112,0,0,0,0,0,3,227,240,0,0,0,0,0,3,243,224,0,0,0,0,0,1,241,224,0,0,0,0,0,1,241,224,0,0,0,0,0,1,249,224,0,0,0,0,0,1,223,192,0,0,0,0,0,1,223,192,0,0,0,0,0,1,207,192,0,0,0,0,0,1,193,192,0,0,0,0,0,1,193,128,0,0,0,0,0,1,195,192,0,0,0,0,0,1,195,192,0,0,0,0,0,1,195,192,0,0,0,0,0,1,195,224,0,0,0,0,0,1,195,224,0,0,0,0,0,1,135,224,0,0,0,0,0,1,135,192,0,0,0,0,0,1,135,128,0,0,0,0,0,1,135,0,0,0,0,0,0,3,135,0,0,0,0,0,0,3,134,0,0,0,0,0,0,3,134,0,0,0,0,0,0,3,142,0,0,0,0,0,0,3,142,0,0,0,0,0,0,3,142,0,0,0,0,0,0,3,142,0,0,0,0,0,0,3,252,0,0,0,0,0,0,1,252,0,0,0,0,0,0,0,112,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,248,0,0,0,0,0,0,3,254,0,0,0,0,0,0,3,255,0,0,0,0,0,0,7,7,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,6,3,128,0,0,0,0,0,7,7,0,0,0,0,0,0,3,254,0,0,0,0,0,0,1,252,0,0,0,0,0,0,0,112,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,192,0,0,0,0,0,0,63,240,0,0,0,0,0,0,63,248,0,0,0,0,0,0,112,28,0,0,0,0,0,0,112,12,0,0,0,0,0,0,96,12,0,0,0,0,0,0,224,12,0,0,0,0,0,3,227,28,0,0,0,0,0,7,227,28,0,0,0,0,0,7,231,28,0,0,0,0,0,7,231,24,0,0,0,0,0,6,231,56,0,0,0,0,0,6,199,56,0,0,0,0,0,14,199,56,0,0,0,0,0,14,199,48,0,0,0,0,0,12,227,240,0,0,0,0,0,12,241,240,0,0,0,0,0,15,241,224,0,0,0,0,0,7,248,224,0,0,0,0,0,1,220,96,0,0,0,0,0,1,220,112,0,0,0,0,0,1,206,240,0,0,0,0,0,1,207,224,0,0,0,0,0,1,135,192,0,0,0,0,0,1,129,192,0,0,0,0,0,1,131,192,0,0,0,0,0,1,131,224,0,0,0,0,0,3,131,96,0,0,0,0,0,3,135,112,0,0,0,0,0,3,135,48,0,0,0,0,0,3,14,48,0,0,0,0,0,3,14,112,0,0,0,0,0,3,14,112,0,0,0,0,0,7,14,224,0,0,0,0,0,7,12,224,0,0,0,0,0,7,13,192,0,0,0,0,0,7,29,192,0,0,0,0,0,6,31,128,0,0,0,0,0,6,31,0,0,0,0,0,0,14,24,0,0,0,0,0,0,14,24,0,0,0,0,0,0,14,56,0,0,0,0,0,0,7,248,0,0,0,0,0,0,7,240,0,0,0,0,0,0,3,224,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,7,0,0,0,0,0,0,6,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,6,3,128,0,0,0,0,0,7,7,0,0,0,0,0,0,3,254,0,0,0,0,0,0,1,252,0,0,0,0,0,0,0,248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,192,0,0,0,0,0,0,31,240,0,0,0,0,0,0,63,248,0,0,0,0,0,0,112,28,0,0,0,0,0,0,112,28,0,0,0,0,0,1,224,12,0,0,0,0,0,3,224,12,0,0,0,0,0,7,227,12,0,0,0,0,0,15,99,28,0,0,0,0,0,14,99,28,0,0,0,0,0,12,227,24,0,0,0,0,0,28,227,56,0,0,0,0,0,28,231,56,0,0,0,0,0,24,231,184,0,0,0,0,0,57,227,240,0,0,0,0,0,57,241,240,0,0,0,0,0,57,248,240,0,0,0,0,0,63,248,112,0,0,0,0,0,31,220,56,0,0,0,0,0,15,206,56,0,0,0,0,0,1,199,56,0,0,0,0,0,1,195,248,0,0,0,0,0,1,195,240,0,0,0,0,0,1,129,224,0,0,0,0,0,1,129,224,0,0,0,0,0,1,131,224,0,0,0,0,0,1,131,240,0,0,0,0,0,3,131,112,0,0,0,0,0,3,135,56,0,0,0,0,0,3,135,24,0,0,0,0,0,3,135,24,0,0,0,0,0,3,15,56,0,0,0,0,0,7,15,56,0,0,0,0,0,7,15,56,0,0,0,0,0,7,31,56,0,0,0,0,0,6,31,56,0,0,0,0,0,14,31,48,0,0,0,0,0,14,63,112,0,0,0,0,0,12,63,240,0,0,0,0,0,28,51,224,0,0,0,0,0,28,113,192,0,0,0,0,0,28,112,0,0,0,0,0,0,31,224,0,0,0,0,0,0,15,224,0,0,0,0,0,0,7,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,7,0,0,0,0,0,0,6,3,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,7,3,0,0,0,0,0,0,3,255,0,0,0,0,0,0,3,254,0,0,0,0,0,0,0,248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,31,240,0,0,0,0,0,0,63,248,0,0,0,0,0,0,120,28,0,0,0,0,0,0,240,28,0,0,0,0,0,3,224,12,0,0,0,0,0,7,224,12,0,0,0,0,0,15,99,12,0,0,0,0,0,28,99,28,0,0,0,0,0,28,99,28,0,0,0,0,0,24,227,24,0,0,0,0,0,56,227,24,0,0,0,0,0,57,227,184,0,0,0,0,0,49,227,184,0,0,0,0,0,113,241,240,0,0,0,0,0,115,240,240,0,0,0,0,0,99,248,120,0,0,0,0,0,127,222,60,0,0,0,0,0,63,207,28,0,0,0,0,0,29,199,142,0,0,0,0,0,1,195,206,0,0,0,0,0,1,193,252,0,0,0,0,0,1,193,248,0,0,0,0,0,1,129,240,0,0,0,0,0,1,129,224,0,0,0,0,0,1,131,240,0,0,0,0,0,1,131,184,0,0,0,0,0,3,131,56,0,0,0,0,0,3,135,28,0,0,0,0,0,3,135,12,0,0,0,0,0,3,135,140,0,0,0,0,0,3,15,140,0,0,0,0,0,7,15,140,0,0,0,0,0,7,15,142,0,0,0,0,0,14,29,142,0,0,0,0,0,14,25,142,0,0,0,0,0,28,57,142,0,0,0,0,0,28,57,206,0,0,0,0,0,24,113,206,0,0,0,0,0,56,113,254,0,0,0,0,0,48,224,252,0,0,0,0,0,48,224,120,0,0,0,0,0,57,192,0,0,0,0,0,0,31,128,0,0,0,0,0,0,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,7,0,0,0,0,0,0,6,3,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,6,3,0,0,0,0,0,0,7,143,0,0,0,0,0,0,3,254,0,0,0,0,0,0,1,252,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,31,240,0,0,0,0,0,0,63,248,0,0,0,0,0,0,120,60,0,0,0,0,0,1,240,28,0,0,0,0,0,3,224,12,0,0,0,0,0,15,224,12,0,0,0,0,0,31,115,12,0,0,0,0,0,28,115,156,0,0,0,0,0,24,115,156,0,0,0,0,0,56,243,152,0,0,0,0,0,57,243,152,0,0,0,0,0,113,243,184,0,0,0,0,0,113,241,248,0,0,0,0,0,115,240,240,0,0,0,0,0,99,248,120,0,0,0,0,0,227,252,60,0,0,0,0,0,127,222,30,0,0,0,0,0,127,207,135,0,0,0,0,0,61,195,199,0,0,0,0,0,1,193,231,0,0,0,0,0,1,192,254,0,0,0,0,0,1,193,254,0,0,0,0,0,1,129,240,0,0,0,0,0,1,129,240,0,0,0,0,0,1,131,184,0,0,0,0,0,1,131,188,0,0,0,0,0,3,131,28,0,0,0,0,0,3,135,14,0,0,0,0,0,3,135,14,0,0,0,0,0,3,135,134,0,0,0,0,0,3,143,134,0,0,0,0,0,7,15,135,0,0,0,0,0,7,13,199,0,0,0,0,0,14,29,195,0,0,0,0,0,28,56,195,0,0,0,0,0,28,56,195,128,0,0,0,0,56,112,227,128,0,0,0,0,120,112,227,128,0,0,0,0,112,224,99,128,0,0,0,0,96,192,119,128,0,0,0,0,97,192,127,0,0,0,0,0,115,128,30,0,0,0,0,0,127,128,0,0,0,0,0,0,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,7,0,0,0,0,0,0,6,3,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,6,3,0,0,0,0,0,0,7,143,0,0,0,0,0,0,3,254,0,0,0,0,0,0,1,252,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,224,0,0,0,0,0,0,63,248,0,0,0,0,0,0,120,60,0,0,0,0,0,0,240,28,0,0,0,0,0,3,224,12,0,0,0,0,0,7,224,12,0,0,0,0,0,15,115,12,0,0,0,0,0,30,115,156,0,0,0,0,0,28,115,156,0,0,0,0,0,24,243,152,0,0,0,0,0,56,243,152,0,0,0,0,0,49,241,184,0,0,0,0,0,113,241,248,0,0,0,0,0,115,240,240,0,0,0,0,0,99,248,124,0,0,0,0,0,227,252,30,0,0,0,0,0,127,223,15,0,0,0,0,0,127,199,135,0,0,0,0,0,61,195,227,128,0,0,0,0,1,192,247,0,0,0,0,0,1,192,255,0,0,0,0,0,1,193,254,0,0,0,0,0,1,129,240,0,0,0,0,0,1,129,240,0,0,0,0,0,1,131,184,0,0,0,0,0,1,131,156,0,0,0,0,0,3,131,14,0,0,0,0,0,3,135,14,0,0,0,0,0,3,135,134,0,0,0,0,0,3,135,135,0,0,0,0,0,3,143,135,0,0,0,0,0,7,15,195,0,0,0,0,0,15,13,195,128,0,0,0,0,14,28,195,128,0,0,0,0,28,28,225,128,0,0,0,0,60,56,225,192,0,0,0,0,56,112,97,192,0,0,0,0,112,112,113,192,0,0,0,0,240,224,112,192,0,0,0,0,225,192,49,192,0,0,0,0,225,192,63,192,0,0,0,0,227,128,31,128,0,0,0,0,127,0,14,0,0,0,0,0,62,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,143,0,0,0,0,0,0,7,3,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,6,3,0,0,0,0,0,0,7,143,0,0,0,0,0,0,3,254,0,0,0,0,0,0,1,252,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,31,240,0,0,0,0,0,0,63,248,0,0,0,0,0,0,120,60,0,0,0,0,0,0,240,28,0,0,0,0,0,1,224,12,0,0,0,0,0,3,224,12,0,0,0,0,0,7,243,12,0,0,0,0,0,15,115,156,0,0,0,0,0,14,115,156,0,0,0,0,0,28,115,152,0,0,0,0,0,28,115,152,0,0,0,0,0,56,243,184,0,0,0,0,0,113,241,248,0,0,0,0,0,113,240,240,0,0,0,0,0,99,248,120,0,0,0,0,0,231,252,60,0,0,0,0,0,127,223,14,0,0,0,0,0,127,199,134,0,0,0,0,0,29,195,199,0,0,0,0,0,1,193,230,0,0,0,0,0,1,192,254,0,0,0,0,0,1,192,252,0,0,0,0,0,1,129,240,0,0,0,0,0,1,129,240,0,0,0,0,0,1,129,184,0,0,0,0,0,1,131,188,0,0,0,0,0,1,131,156,0,0,0,0,0,1,131,14,0,0,0,0,0,3,135,14,0,0,0,0,0,3,135,134,0,0,0,0,0,3,135,135,0,0,0,0,0,7,15,135,0,0,0,0,0,7,15,195,0,0,0,0,0,14,29,195,128,0,0,0,0,28,28,195,128,0,0,0,0,60,56,225,128,0,0,0,0,56,112,225,192,0,0,0,0,112,112,97,192,0,0,0,0,112,224,113,192,0,0,0,0,225,192,113,192,0,0,0,0,227,192,63,128,0,0,0,0,119,128,63,128,0,0,0,0,127,0,14,0,0,0,0,0,62,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,7,0,0,0,0,0,0,6,3,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,6,3,0,0,0,0,0,0,7,143,0,0,0,0,0,0,3,254,0,0,0,0,0,0,1,252,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,31,240,0,0,0,0,0,0,63,248,0,0,0,0,0,0,120,28,0,0,0,0,0,0,112,28,0,0,0,0,0,0,96,12,0,0,0,0,0,0,96,12,0,0,0,0,0,0,99,12,0,0,0,0,0,0,99,28,0,0,0,0,0,0,227,28,0,0,0,0,0,1,227,24,0,0,0,0,0,1,243,184,0,0,0,0,0,3,243,184,0,0,0,0,0,3,241,248,0,0,0,0,0,7,240,240,0,0,0,0,0,7,248,112,0,0,0,0,0,14,252,56,0,0,0,0,0,14,206,28,0,0,0,0,0,7,199,28,0,0,0,0,0,7,195,156,0,0,0,0,0,3,193,252,0,0,0,0,0,1,192,248,0,0,0,0,0,1,192,240,0,0,0,0,0,1,193,224,0,0,0,0,0,1,193,240,0,0,0,0,0,1,129,248,0,0,0,0,0,1,131,184,0,0,0,0,0,1,131,156,0,0,0,0,0,1,131,156,0,0,0,0,0,1,131,12,0,0,0,0,0,1,135,14,0,0,0,0,0,3,135,14,0,0,0,0,0,7,135,134,0,0,0,0,0,7,15,135,0,0,0,0,0,14,31,135,0,0,0,0,0,28,29,195,0,0,0,0,0,28,57,195,128,0,0,0,0,56,112,195,128,0,0,0,0,112,240,225,128,0,0,0,0,112,224,225,128,0,0,0,0,113,192,97,128,0,0,0,0,123,128,127,128,0,0,0,0,63,128,63,0,0,0,0,0,31,0,30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,7,0,0,0,0,0,0,6,3,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,6,3,0,0,0,0,0,0,7,143,0,0,0,0,0,0,3,254,0,0,0,0,0,0,1,252,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,192,0,0,0,0,0,0,31,240,0,0,0,0,0,0,63,248,0,0,0,0,0,0,112,28,0,0,0,0,0,0,112,12,0,0,0,0,0,0,96,12,0,0,0,0,0,0,96,12,0,0,0,0,0,0,99,12,0,0,0,0,0,0,99,28,0,0,0,0,0,0,99,28,0,0,0,0,0,0,99,24,0,0,0,0,0,0,99,56,0,0,0,0,0,0,227,184,0,0,0,0,0,0,99,248,0,0,0,0,0,0,241,240,0,0,0,0,0,0,248,240,0,0,0,0,0,0,252,112,0,0,0,0,0,0,220,112,0,0,0,0,0,1,206,48,0,0,0,0,0,1,199,48,0,0,0,0,0,1,199,240,0,0,0,0,0,1,195,224,0,0,0,0,0,1,193,224,0,0,0,0,0,1,193,224,0,0,0,0,0,1,193,224,0,0,0,0,0,1,193,240,0,0,0,0,0,1,193,240,0,0,0,0,0,1,193,184,0,0,0,0,0,1,195,152,0,0,0,0,0,1,195,156,0,0,0,0,0,1,195,156,0,0,0,0,0,3,195,140,0,0,0,0,0,3,135,14,0,0,0,0,0,7,15,14,0,0,0,0,0,14,15,6,0,0,0,0,0,28,31,135,0,0,0,0,0,60,57,135,0,0,0,0,0,56,113,195,0,0,0,0,0,48,241,195,128,0,0,0,0,49,224,195,128,0,0,0,0,63,192,227,128,0,0,0,0,31,128,227,128,0,0,0,0,15,0,127,0,0,0,0,0,0,0,62,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,7,0,0,0,0,0,0,6,3,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,7,3,0,0,0,0,0,0,3,255,0,0,0,0,0,0,3,254,0,0,0,0,0,0,0,248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,224,0,0,0,0,0,0,63,240,0,0,0,0,0,0,63,248,0,0,0,0,0,0,112,28,0,0,0,0,0,0,96,12,0,0,0,0,0,0,96,12,0,0,0,0,0,0,96,12,0,0,0,0,0,0,227,28,0,0,0,0,0,0,231,28,0,0,0,0,0,0,231,28,0,0,0,0,0,0,231,24,0,0,0,0,0,0,198,56,0,0,0,0,0,0,199,56,0,0,0,0,0,0,231,56,0,0,0,0,0,0,227,176,0,0,0,0,0,0,241,240,0,0,0,0,0,0,241,240,0,0,0,0,0,0,248,240,0,0,0,0,0,1,216,224,0,0,0,0,0,1,220,224,0,0,0,0,0,1,207,224,0,0,0,0,0,1,207,224,0,0,0,0,0,1,195,224,0,0,0,0,0,1,192,224,0,0,0,0,0,1,192,224,0,0,0,0,0,1,193,224,0,0,0,0,0,0,193,240,0,0,0,0,0,0,193,240,0,0,0,0,0,0,193,248,0,0,0,0,0,0,225,248,0,0,0,0,0,1,225,152,0,0,0,0,0,1,195,156,0,0,0,0,0,3,135,156,0,0,0,0,0,7,15,12,0,0,0,0,0,14,15,14,0,0,0,0,0,28,31,14,0,0,0,0,0,56,59,6,0,0,0,0,0,56,115,135,0,0,0,0,0,56,227,135,0,0,0,0,0,31,193,131,0,0,0,0,0,15,129,195,0,0,0,0,0,7,0,199,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,126,0,0,0,0,0,0,0,56,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,248,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,7,0,0,0,0,0,0,6,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,6,3,128,0,0,0,0,0,7,7,0,0,0,0,0,0,3,254,0,0,0,0,0,0,1,252,0,0,0,0,0,0,0,248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,224,0,0,0,0,0,0,63,248,0,0,0,0,0,0,63,248,0,0,0,0,0,0,112,28,0,0,0,0,0,0,96,12,0,0,0,0,0,0,224,12,0,0,0,0,0,0,226,12,0,0,0,0,0,0,231,28,0,0,0,0,0,0,199,28,0,0,0,0,0,1,198,28,0,0,0,0,0,1,206,28,0,0,0,0,0,1,206,60,0,0,0,0,0,1,142,60,0,0,0,0,0,1,206,60,0,0,0,0,0,0,199,60,0,0,0,0,0,0,231,124,0,0,0,0,0,0,227,124,0,0,0,0,0,0,227,236,0,0,0,0,0,1,243,236,0,0,0,0,0,1,243,236,0,0,0,0,0,1,255,236,0,0,0,0,0,1,255,252,0,0,0,0,0,1,206,252,0,0,0,0,0,1,192,224,0,0,0,0,0,0,192,224,0,0,0,0,0,0,192,224,0,0,0,0,0,0,224,224,0,0,0,0,0,0,224,224,0,0,0,0,0,0,96,224,0,0,0,0,0,0,112,240,0,0,0,0,0,0,112,240,0,0,0,0,0,0,225,240,0,0,0,0,0,0,227,240,0,0,0,0,0,1,195,176,0,0,0,0,0,1,135,48,0,0,0,0,0,3,142,56,0,0,0,0,0,7,14,56,0,0,0,0,0,7,30,56,0,0,0,0,0,7,62,24,0,0,0,0,0,7,254,24,0,0,0,0,0,3,246,24,0,0,0,0,0,1,199,56,0,0,0,0,0,0,3,248,0,0,0,0,0,0,3,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,248,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,143,0,0,0,0,0,0,7,3,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,6,3,0,0,0,0,0,0,7,143,0,0,0,0,0,0,3,254,0,0,0,0,0,0,1,252,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,224,0,0,0,0,0,0,63,248,0,0,0,0,0,0,120,60,0,0,0,0,0,0,112,28,0,0,0,0,0,0,96,12,0,0,0,0,0,0,224,12,0,0,0,0,0,0,226,12,0,0,0,0,0,1,199,28,0,0,0,0,0,1,198,30,0,0,0,0,0,1,142,30,0,0,0,0,0,3,142,30,0,0,0,0,0,3,156,62,0,0,0,0,0,3,156,62,0,0,0,0,0,3,140,62,0,0,0,0,0,1,140,54,0,0,0,0,0,1,142,118,0,0,0,0,0,1,206,119,0,0,0,0,0,1,198,115,0,0,0,0,0,1,198,251,0,0,0,0,0,1,199,251,0,0,0,0,0,1,254,255,0,0,0,0,0,1,254,255,0,0,0,0,0,1,252,224,0,0,0,0,0,0,192,224,0,0,0,0,0,0,224,224,0,0,0,0,0,0,224,96,0,0,0,0,0,0,240,96,0,0,0,0,0,0,112,96,0,0,0,0,0,0,120,112,0,0,0,0,0,0,120,112,0,0,0,0,0,0,56,112,0,0,0,0,0,0,56,224,0,0,0,0,0,0,56,224,0,0,0,0,0,0,113,192,0,0,0,0,0,0,113,192,0,0,0,0,0,0,115,192,0,0,0,0,0,0,227,192,0,0,0,0,0,0,227,192,0,0,0,0,0,0,199,192,0,0,0,0,0,0,254,192,0,0,0,0,0,0,254,192,0,0,0,0,0,0,61,192,0,0,0,0,0,0,31,192,0,0,0,0,0,0,15,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,7,0,0,0,0,0,0,6,3,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,7,3,0,0,0,0,0,0,3,223,0,0,0,0,0,0,3,254,0,0,0,0,0,0,0,248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,224,0,0,0,0,0,0,63,248,0,0,0,0,0,0,120,60,0,0,0,0,0,0,112,28,0,0,0,0,0,0,224,12,0,0,0,0,0,0,224,12,0,0,0,0,0,1,192,12,0,0,0,0,0,1,198,30,0,0,0,0,0,3,142,30,0,0,0,0,0,3,142,30,0,0,0,0,0,7,28,30,0,0,0,0,0,7,28,62,0,0,0,0,0,7,56,63,0,0,0,0,0,7,24,55,0,0,0,0,0,7,24,119,0,0,0,0,0,7,24,115,128,0,0,0,0,3,28,121,192,0,0,0,0,3,28,124,192,0,0,0,0,3,28,254,192,0,0,0,0,3,156,239,192,0,0,0,0,3,156,231,192,0,0,0,0,1,252,225,128,0,0,0,0,1,248,96,0,0,0,0,0,0,192,96,0,0,0,0,0,0,224,112,0,0,0,0,0,0,240,112,0,0,0,0,0,0,240,48,0,0,0,0,0,0,248,48,0,0,0,0,0,0,252,56,0,0,0,0,0,0,124,56,0,0,0,0,0,0,110,56,0,0,0,0,0,0,108,48,0,0,0,0,0,0,108,112,0,0,0,0,0,0,252,112,0,0,0,0,0,0,252,112,0,0,0,0,0,0,252,96,0,0,0,0,0,0,220,224,0,0,0,0,0,0,216,224,0,0,0,0,0,0,216,192,0,0,0,0,0,0,220,192,0,0,0,0,0,0,223,192,0,0,0,0,0,0,255,128,0,0,0,0,0,0,254,0,0,0,0,0,0,0,124,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,7,0,0,0,0,0,0,6,3,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,7,3,0,0,0,0,0,0,3,223,0,0,0,0,0,0,3,254,0,0,0,0,0,0,0,248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,224,0,0,0,0,0,0,63,248,0,0,0,0,0,0,120,60,0,0,0,0,0,0,112,28,0,0,0,0,0,0,224,12,0,0,0,0,0,1,192,12,0,0,0,0,0,1,192,14,0,0,0,0,0,3,140,30,0,0,0,0,0,7,14,30,0,0,0,0,0,7,28,31,0,0,0,0,0,14,56,31,0,0,0,0,0,14,120,63,0,0,0,0,0,14,112,59,0,0,0,0,0,14,112,59,192,0,0,0,0,14,112,57,224,0,0,0,0,14,112,120,240,0,0,0,0,12,112,124,120,0,0,0,0,12,112,126,56,0,0,0,0,12,96,239,184,0,0,0,0,12,96,227,248,0,0,0,0,14,224,224,240,0,0,0,0,7,224,224,0,0,0,0,0,7,192,96,0,0,0,0,0,1,224,112,0,0,0,0,0,1,224,48,0,0,0,0,0,1,240,56,0,0,0,0,0,0,248,56,0,0,0,0,0,0,252,24,0,0,0,0,0,0,222,28,0,0,0,0,0,0,206,28,0,0,0,0,0,0,199,28,0,0,0,0,0,0,199,28,0,0,0,0,0,1,199,28,0,0,0,0,0,1,199,28,0,0,0,0,0,3,143,24,0,0,0,0,0,3,143,24,0,0,0,0,0,3,15,24,0,0,0,0,0,7,31,24,0,0,0,0,0,7,31,56,0,0,0,0,0,6,31,56,0,0,0,0,0,6,63,248,0,0,0,0,0,7,123,240,0,0,0,0,0,7,241,224,0,0,0,0,0,3,224,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,248,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,143,0,0,0,0,0,0,7,3,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,6,3,0,0,0,0,0,0,7,143,0,0,0,0,0,0,3,254,0,0,0,0,0,0,1,252,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,224,0,0,0,0,0,0,63,240,0,0,0,0,0,0,127,248,0,0,0,0,0,0,240,28,0,0,0,0,0,1,224,12,0,0,0,0,0,1,192,14,0,0,0,0,0,3,128,14,0,0,0,0,0,7,8,30,0,0,0,0,0,15,28,31,0,0,0,0,0,14,56,31,0,0,0,0,0,28,120,27,0,0,0,0,0,24,240,59,128,0,0,0,0,24,224,59,192,0,0,0,0,56,224,57,240,0,0,0,0,57,224,56,124,0,0,0,0,57,224,120,30,0,0,0,0,57,224,124,14,0,0,0,0,49,192,127,134,0,0,0,0,49,192,111,238,0,0,0,0,115,192,227,254,0,0,0,0,59,192,224,124,0,0,0,0,63,192,224,0,0,0,0,0,31,192,112,0,0,0,0,0,1,224,112,0,0,0,0,0,1,224,56,0,0,0,0,0,1,240,56,0,0,0,0,0,1,248,28,0,0,0,0,0,1,156,28,0,0,0,0,0,1,142,14,0,0,0,0,0,1,143,14,0,0,0,0,0,1,143,142,0,0,0,0,0,3,143,142,0,0,0,0,0,3,143,134,0,0,0,0,0,7,15,134,0,0,0,0,0,7,29,134,0,0,0,0,0,14,25,134,0,0,0,0,0,14,57,134,0,0,0,0,0,28,57,198,0,0,0,0,0,28,113,198,0,0,0,0,0,56,113,198,0,0,0,0,0,56,225,198,0,0,0,0,0,56,224,254,0,0,0,0,0,31,192,252,0,0,0,0,0,15,128,56,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,248,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,7,0,0,0,0,0,0,6,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,6,3,128,0,0,0,0,0,7,7,0,0,0,0,0,0,3,254,0,0,0,0,0,0,1,252,0,0,0,0,0,0,0,248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,192,0,0,0,0,0,0,63,240,0,0,0,0,0,0,127,248,0,0,0,0,0,0,240,28,0,0,0,0,0,1,224,12,0,0,0,0,0,3,192,14,0,0,0,0,0,7,128,14,0,0,0,0,0,15,0,15,0,0,0,0,0,30,24,31,0,0,0,0,0,60,56,31,128,0,0,0,0,56,240,27,128,0,0,0,0,49,240,57,192,0,0,0,0,113,240,57,248,0,0,0,0,115,224,56,126,0,0,0,0,99,224,60,31,0,0,0,0,227,224,126,7,128,0,0,0,231,224,127,3,128,0,0,0,199,192,103,227,128,0,0,1,199,192,99,255,128,0,0,1,207,192,224,127,0,0,0,1,207,192,224,6,0,0,0,0,253,192,224,0,0,0,0,0,249,192,112,0,0,0,0,0,1,224,120,0,0,0,0,0,1,240,56,0,0,0,0,0,1,248,28,0,0,0,0,0,3,188,28,0,0,0,0,0,3,158,14,0,0,0,0,0,3,143,15,0,0,0,0,0,3,143,135,0,0,0,0,0,3,143,199,0,0,0,0,0,7,13,195,0,0,0,0,0,7,29,195,0,0,0,0,0,14,28,195,0,0,0,0,0,28,56,195,128,0,0,0,0,28,56,227,128,0,0,0,0,56,112,227,128,0,0,0,0,112,96,227,128,0,0,0,0,112,224,97,128,0,0,0,0,225,192,97,128,0,0,0,0,225,192,97,128,0,0,0,0,227,128,115,128,0,0,0,0,127,0,63,128,0,0,0,0,127,0,63,0,0,0,0,0,28,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,7,0,0,0,0,0,0,6,3,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,7,3,0,0,0,0,0,0,3,223,0,0,0,0,0,0,3,254,0,0,0,0,0,0,0,248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,63,240,0,0,0,0,0,0,127,248,0,0,0,0,0,0,240,28,0,0,0,0,0,1,224,28,0,0,0,0,0,7,192,14,0,0,0,0,0,15,0,15,0,0,0,0,0,30,0,15,0,0,0,0,0,60,16,31,128,0,0,0,0,120,112,31,128,0,0,0,0,112,240,25,192,0,0,0,0,97,240,24,240,0,0,0,0,227,240,56,254,0,0,0,0,199,96,60,63,128,0,0,1,199,224,62,7,192,0,0,1,206,224,127,0,192,0,0,1,142,224,119,224,192,0,0,3,140,192,115,255,192,0,0,3,157,192,96,127,192,0,0,3,29,192,224,15,128,0,0,3,57,192,224,0,0,0,0,3,241,192,224,0,0,0,0,3,241,192,112,0,0,0,0,0,129,224,120,0,0,0,0,0,3,240,56,0,0,0,0,0,3,248,28,0,0,0,0,0,3,188,14,0,0,0,0,0,3,158,14,0,0,0,0,0,3,15,7,0,0,0,0,0,3,15,131,0,0,0,0,0,7,31,195,128,0,0,0,0,7,29,227,128,0,0,0,0,14,28,225,128,0,0,0,0,28,24,225,128,0,0,0,0,56,56,97,192,0,0,0,0,56,112,97,192,0,0,0,0,112,112,113,192,0,0,0,0,224,224,112,192,0,0,0,1,225,192,112,192,0,0,0,1,195,192,48,224,0,0,0,1,131,128,56,224,0,0,0,1,135,0,56,224,0,0,0,1,206,0,61,224,0,0,0,0,254,0,31,192,0,0,0,0,124,0,15,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} +}; \ No newline at end of file diff --git a/firmware/lib/animations/animations.h b/firmware/lib/animations/animations.h new file mode 100644 index 0000000..628829b --- /dev/null +++ b/firmware/lib/animations/animations.h @@ -0,0 +1,13 @@ +#include + +#pragma once + +extern const byte animacja1[][512]; +extern int animacja1Width; +extern int animacja1Height; +extern int animacja1FrameCount; + +extern const byte animacja2[][512]; +extern int animacja2Width; +extern int animacja2Height; +extern int animacja2FrameCount; diff --git a/firmware/lib/buzzer/buzzer.cpp b/firmware/lib/buzzer/buzzer.cpp new file mode 100644 index 0000000..089f814 --- /dev/null +++ b/firmware/lib/buzzer/buzzer.cpp @@ -0,0 +1,31 @@ +#include "buzzer.h" +#include "settings.h" +#include + +#define BUZZER_CHANNEL 3 +#define BUZZER_RESOLUTION 8 +#define BUZZER_FREQ 2000 + +BUZZER::BUZZER() {} + +void BUZZER::init() { + ledcSetup(BUZZER_CHANNEL, BUZZER_FREQ, BUZZER_RESOLUTION); + ledcAttachPin(BUZZER_PIN, BUZZER_CHANNEL); +} + +void BUZZER::playTone(uint16_t frequency, uint32_t duration) { + ledcWriteTone(BUZZER_CHANNEL, frequency); + if (duration > 0) { + delay(duration); + stop(); + } +} + +void BUZZER::playMelody(const uint16_t melody[][2], size_t length) { + for (size_t i = 0; i < length; i++) { + playTone(melody[i][0], melody[i][1]); + delay(50); + } +} + +void BUZZER::stop() { ledcWriteTone(BUZZER_CHANNEL, 0); } diff --git a/firmware/lib/buzzer/buzzer.h b/firmware/lib/buzzer/buzzer.h new file mode 100644 index 0000000..af2ae9d --- /dev/null +++ b/firmware/lib/buzzer/buzzer.h @@ -0,0 +1,15 @@ +#include +#include "settings.h" + +#pragma once + +class BUZZER +{ +public: + BUZZER(); + + void init(); + void playTone(uint16_t frequency, uint32_t duration = 0); + void stop(); + void playMelody(const uint16_t melody[][2], size_t length); +}; diff --git a/firmware/lib/melodies/melodies.cpp b/firmware/lib/melodies/melodies.cpp new file mode 100644 index 0000000..68e904e --- /dev/null +++ b/firmware/lib/melodies/melodies.cpp @@ -0,0 +1,60 @@ +#include +#include "melodies.h" + +const uint16_t melody[][2] = { + {262, 300}, // C4, + {294, 300}, // D4, + {330, 300}, // E4, + {349, 300}, // F4, + {392, 300}, // G4, + {440, 300}, // A4, + {494, 300}, // B4, + {523, 300} // C5, +}; + + +const uint16_t surprise[][2] = { + {523, 300}, // C5 + {587, 300}, // D5 + {659, 300}, // E5 + {698, 300}, // F5 + {784, 300}, // G5 + {880, 300}, // A5 + {987, 300}, // B5 + {1047, 300} // C6 +}; + +const uint16_t alaarm[][2] = { + {880, 100}, // A5 + {987, 100}, // B5 + {1047, 100}, // C6 + {880, 100}, // A5 + {987, 100}, // B5 + {1047, 100}, // C6 + {880, 100}, // A5 + {987, 100}, // B5 + {1047, 100} // C6 +}; + +const uint16_t anger[][2] = { + {440, 100}, // A4 + {523, 100}, // C5 + {587, 100}, // D5 + {659, 100}, // E5 + {698, 100}, // F5 + {784, 100}, // G5 + {880, 100}, // A5 + {987, 100}, // B5 + {1047, 100} // C6 +}; + +const uint16_t happy[][2] = { + {262, 300}, // C4 + {294, 300}, // D4 + {330, 300}, // E4 + {349, 300}, // F4 + {392, 300}, // G4 + {440, 300}, // A4 + {494, 300}, // B4 + {523, 300} // C5 +}; diff --git a/firmware/lib/melodies/melodies.h b/firmware/lib/melodies/melodies.h new file mode 100644 index 0000000..a93877d --- /dev/null +++ b/firmware/lib/melodies/melodies.h @@ -0,0 +1,10 @@ +#include + +#pragma once + +const uint16_t happy[][2]; +const uint16_t anger[][2]; +const uint16_t alaarm[][2]; +const uint16_t surprise[][2]; + + diff --git a/firmware/lib/motors/motors.cpp b/firmware/lib/motors/motors.cpp new file mode 100644 index 0000000..ba9f828 --- /dev/null +++ b/firmware/lib/motors/motors.cpp @@ -0,0 +1,146 @@ +#include +#include "settings.h" +#include "motors.h" + +#define LEFT_CHANNEL 4 +#define RIGHT_CHANNEL 5 + +#define MOTOR_FREQ 5000 +#define MOTOR_RES 10 + +int MOTORS::scaleSpeed(int speed) +{ + return map(speed, 0, 100, 0, (1 << MOTOR_RES) - 1); +} + +MOTORS::MOTORS() +{ +} + +void MOTORS::stop() +{ + ledcWrite(LEFT_CHANNEL, 0); + ledcWrite(RIGHT_CHANNEL, 0); +} + +void MOTORS::leftStop() +{ + ledcWrite(LEFT_CHANNEL, 0); +} + +void MOTORS::rightStop() +{ + ledcWrite(RIGHT_CHANNEL, 0); +} + +void MOTORS::init() +{ + ledcSetup(RIGHT_CHANNEL, MOTOR_FREQ, MOTOR_RES); + ledcAttachPin(EN34, RIGHT_CHANNEL); + + ledcSetup(LEFT_CHANNEL, MOTOR_FREQ, MOTOR_RES); + ledcAttachPin(EN12, LEFT_CHANNEL); + + pinMode(IN1, OUTPUT); + pinMode(IN2, OUTPUT); + pinMode(IN3, OUTPUT); + pinMode(IN4, OUTPUT); +} + +void MOTORS::leftForward(int speed, int duration) +{ + digitalWrite(IN1, HIGH); + digitalWrite(IN2, LOW); + ledcWrite(LEFT_CHANNEL, scaleSpeed(speed)); + + if (duration > 0) + { + delay(duration); + stop(); + } +} + +void MOTORS::leftBackward(int speed, int duration) +{ + digitalWrite(IN1, LOW); + digitalWrite(IN2, HIGH); + ledcWrite(LEFT_CHANNEL, scaleSpeed(speed)); + + if (duration > 0) + { + delay(duration); + stop(); + } +} + +void MOTORS::rightForward(int speed, int duration) +{ + digitalWrite(IN3, HIGH); + digitalWrite(IN4, LOW); + ledcWrite(RIGHT_CHANNEL, scaleSpeed(speed)); + ledcWrite(LEFT_CHANNEL, 0); + + if (duration > 0) + { + delay(duration); + stop(); + } +} + +void MOTORS::rightBackward(int speed, int duration) +{ + digitalWrite(IN3, LOW); + digitalWrite(IN4, HIGH); + ledcWrite(RIGHT_CHANNEL, scaleSpeed(speed)); + ledcWrite(LEFT_CHANNEL, 0); + + if (duration > 0) + { + delay(duration); + stop(); + } +} + +void MOTORS::forward(int speed, int duration) +{ + rightForward(speed); + leftForward(speed); + if (duration > 0) + { + delay(duration); + stop(); + } +} + +void MOTORS::backward(int speed, int duration) +{ + rightBackward(speed); + leftBackward(speed); + if (duration > 0) + { + delay(duration); + stop(); + } +} + +void MOTORS::rightTurn(int speed, int duration) +{ + rightForward(speed); + leftBackward(speed); + if (duration > 0) + { + delay(duration); + stop(); + } +} + +void MOTORS::leftTurn(int speed, int duration) +{ + rightBackward(speed); + leftForward(speed); + if (duration > 0) + { + delay(duration); + stop(); + } +} \ No newline at end of file diff --git a/firmware/lib/motors/motors.h b/firmware/lib/motors/motors.h new file mode 100644 index 0000000..b7cc7f1 --- /dev/null +++ b/firmware/lib/motors/motors.h @@ -0,0 +1,29 @@ +#include +#include "settings.h" + +#pragma once + +class MOTORS +{ +public: + MOTORS(); + void init(); + + void forward(int speed, int duration = 0); + void backward(int speed, int duration = 0); + + void leftForward(int speed, int duration = 0); + void leftBackward(int speed, int duration = 0); + void rightForward(int speed, int duration = 0); + void rightBackward(int speed, int duration = 0); + + void leftTurn(int speed, int duration = 0); + void rightTurn(int speed, int duration = 0); + + void leftStop(); + void rightStop(); + void stop(); + +private: + int scaleSpeed(int speed); +}; \ No newline at end of file diff --git a/firmware/lib/oled/oled.cpp b/firmware/lib/oled/oled.cpp new file mode 100644 index 0000000..2054b8f --- /dev/null +++ b/firmware/lib/oled/oled.cpp @@ -0,0 +1,58 @@ +#include +#include +#include +#include +#include "settings.h" +#include "oled.h" + +OLED::OLED() + : display(OLED_WIDTH, OLED_HEIGHT, &Wire, -1) {} + +void OLED::init() +{ + Wire.begin(SDA_PIN, SCL_PIN); + display.begin(SSD1306_SWITCHCAPVCC, OLED_ADDR); + display.clearDisplay(); + display.setTextSize(1); + display.setTextColor(SSD1306_WHITE); +} + +void OLED::showMessage(const String &msg, int size, int x, int y) +{ + display.clearDisplay(); + display.setCursor(x, y); + display.setTextSize(size); + display.setTextColor(SSD1306_WHITE); + display.println(msg); + display.display(); +} + +void OLED::drawFullBitmap(const uint8_t *bitmap) +{ + display.clearDisplay(); + display.drawBitmap(0, 0, bitmap, OLED_WIDTH, OLED_HEIGHT, SSD1306_WHITE); + display.display(); +} + +void OLED::showAnimation(const byte *frames, int frameCount, int frameWidth, int frameHeight, int frameDelay) +{ + int x = 64 - (frameWidth / 2); + int y = 32 - (frameHeight / 2); + + for (int i = 0; i < frameCount; i++) + { + display.clearDisplay(); + display.drawBitmap( + x, y, + frames + i * (frameWidth * frameHeight / 8), + frameWidth, frameHeight, 1); + display.display(); + delay(frameDelay); + } +} + +void OLED::clear() +{ + display.clearDisplay(); + display.display(); +} diff --git a/firmware/lib/oled/oled.h b/firmware/lib/oled/oled.h new file mode 100644 index 0000000..2d5ff14 --- /dev/null +++ b/firmware/lib/oled/oled.h @@ -0,0 +1,18 @@ +#pragma once +#include +#include "settings.h" + + +class OLED { +public: + OLED(); + + void init(); + void showMessage(const String& msg,int size = 1 ,int x = 0, int y = 0); + void drawFullBitmap(const uint8_t* bitmap); + void showAnimation(const byte* frames, int frameCount, int frameWidth, int frameHeight, int frameDelay); + void clear(); + +private: + Adafruit_SSD1306 display; +}; diff --git a/firmware/lib/rgb/rgb.cpp b/firmware/lib/rgb/rgb.cpp new file mode 100644 index 0000000..6dc3834 --- /dev/null +++ b/firmware/lib/rgb/rgb.cpp @@ -0,0 +1,124 @@ +#include +#include "settings.h" +#include "rgb.h" +#include + +#define RED_CHANNEL 0 +#define GREEN_CHANNEL 1 +#define BLUE_CHANNEL 2 + +#define PWM_FREQ 5000 +#define PWM_RES 10 + +int RGB::scaleColor(uint8_t val) +{ + return map(val, 0, 255, 0, (1 << PWM_RES) - 1); +} +RGB::RGB() + : currentR(0), currentG(0), currentB(0) +{ +} + +void RGB::init() +{ + ledcSetup(RED_CHANNEL, PWM_FREQ, PWM_RES); + ledcAttachPin(RED_PIN, RED_CHANNEL); + + ledcSetup(GREEN_CHANNEL, PWM_FREQ, PWM_RES); + ledcAttachPin(GREEN_PIN, GREEN_CHANNEL); + + ledcSetup(BLUE_CHANNEL, PWM_FREQ, PWM_RES); + ledcAttachPin(BLUE_PIN, BLUE_CHANNEL); +} + +void RGB::setColorRGB(uint8_t red, uint8_t green, uint8_t blue, bool saveColor = true) +{ + ledcWrite(RED_CHANNEL, scaleColor(red)); + ledcWrite(GREEN_CHANNEL, scaleColor(green)); + ledcWrite(BLUE_CHANNEL, scaleColor(blue)); + + if (saveColor) + { + currentR = red; + currentG = green; + currentB = blue; + } +} + +void RGB::fadeColor(uint8_t red, uint8_t green, uint8_t blue, int duration) +{ + int startR = currentR; + int startG = currentG; + int startB = currentB; + + for (int i = 0; i <= duration; i++) + { + uint8_t newR = startR + ((red - startR) * i) / duration; + uint8_t newG = startG + ((green - startG) * i) / duration; + uint8_t newB = startB + ((blue - startB) * i) / duration; + + setColorRGB(newR, newG, newB, false); + delay(1); + } + + setColorRGB(red, green, blue); +} + +void RGB::blink(int cycles, int interval) +{ + for (int i = 0; i < cycles; i++) + { + setColorRGB(0, 0, 0, false); + delay(interval); + setColorRGB(currentR, currentG, currentB, false); + delay(interval); + } +} + +void RGB::breathe(int cycles, int period) +{ + const int steps = 128; + int stepDelay = period / (steps * 2); + + uint8_t baseR = currentR; + uint8_t baseG = currentG; + uint8_t baseB = currentB; + + for (int c = 0; c < cycles; ++c) + { + for (int i = 0; i <= steps; ++i) + { + float scale = (float)i / steps; + setColorRGB(baseR * scale, baseG * scale, baseB * scale, false); + delay(stepDelay); + } + + for (int i = steps; i >= 0; --i) + { + float scale = (float)i / steps; + setColorRGB(baseR * scale, baseG * scale, baseB * scale, false); + delay(stepDelay); + } + } + + setColorRGB(baseR, baseG, baseB); +} + +void RGB::rainbowCycle(int duration, float speed) +{ + // speed (0.1 – slow, 1.0 – normal, 2.0 – fast) + const int steps = 256; + + for (int i = 0; i < steps; i++) + { + float angle = i * speed * 0.024; + int red = sin(angle) * 127 + 128; + int green = sin(angle + 2) * 127 + 128; + int blue = sin(angle + 4) * 127 + 128; + + setColorRGB(red, green, blue, false); + delay(duration / steps); + } + + setColorRGB(currentR, currentG, currentB, false); +} diff --git a/firmware/lib/rgb/rgb.h b/firmware/lib/rgb/rgb.h new file mode 100644 index 0000000..2c153f1 --- /dev/null +++ b/firmware/lib/rgb/rgb.h @@ -0,0 +1,23 @@ +#pragma once + +#include "settings.h" +#include + +class RGB +{ +public: + uint8_t currentR; + uint8_t currentG; + uint8_t currentB; + + RGB(); + void init(); + void setColorRGB(uint8_t red, uint8_t green, uint8_t blue, bool saveColor); + void fadeColor(uint8_t red, uint8_t green, uint8_t blue, int duration); + void blink(int cycles, int interval); + void breathe(int cycles, int period); + void rainbowCycle(int duration, float speed); + +private: + int scaleColor(uint8_t val); +}; diff --git a/firmware/platformio.ini b/firmware/platformio.ini new file mode 100644 index 0000000..69b4fc7 --- /dev/null +++ b/firmware/platformio.ini @@ -0,0 +1,19 @@ +; PlatformIO Project Configuration File +; +; Build options: build flags, source filter +; Upload options: custom upload port, speed and extra flags +; Library options: dependencies, extra library storages +; Advanced options: extra scripting +; +; Please visit documentation for the other options and examples +; https://docs.platformio.org/page/projectconf.html + +[env:adafruit_feather_esp32s2] +platform = espressif32 +board = adafruit_feather_esp32s2 +framework = arduino +lib_deps = + adafruit/Adafruit GFX Library@^1.12.0 + adafruit/Adafruit SSD1306@^2.5.13 + +build_flags = -Iinclude \ No newline at end of file diff --git a/firmware/src/main.cpp b/firmware/src/main.cpp new file mode 100644 index 0000000..880856f --- /dev/null +++ b/firmware/src/main.cpp @@ -0,0 +1,37 @@ +#include "buzzer.h" +#include "motors.h" +#include "oled.h" +#include "rgb.h" +#include "settings.h" +#include + +#include "animations.h" + +RGB rgb; +BUZZER buzzer; +MOTORS motors; // speed 80 is prefered, because of higher input voltage (5V + // -> 3.7V after H-bridge), motor is rated for 3V +// in practice, speed below 70 dosn't even work. +OLED oled; + +void setup() { + rgb.init(); + buzzer.init(); + motors.init(); + oled.init(); + oled.showMessage("czesc"); + delay(3000); +} + +void loop() { + oled.showAnimation(animacja1[0], animacja1FrameCount, animacja1Width, + animacja1Height, 160); + oled.showAnimation(animacja1[0], animacja1FrameCount, animacja1Width, + animacja1Height, 80); + oled.showAnimation(animacja1[0], animacja1FrameCount, animacja1Width + 20, + animacja1Height, 50); // fajny efekt + oled.showAnimation(animacja2[0], animacja2FrameCount, animacja2Width, + animacja2Height, 160); + oled.showAnimation(animacja2[0], animacja2FrameCount, animacja2Width, + animacja2Height, 80); +} diff --git a/include/README b/include/README deleted file mode 100644 index 630164d..0000000 --- a/include/README +++ /dev/null @@ -1,37 +0,0 @@ - -This directory is intended for project header files. - -A header file is a file containing C declarations and macro definitions -to be shared between several project source files. You request the use of a -header file in your project source file (C, C++, etc) located in `src` folder -by including it, with the C preprocessing directive `#include'. - -```src/main.c - -#include "header.h" - -int main (void) -{ - ... -} -``` - -Including a header file produces the same results as copying the header file -into each source file that needs it. Such copying would be time-consuming -and error-prone. With a header file, the related declarations appear -in only one place. If they need to be changed, they can be changed in one -place, and programs that include the header file will automatically use the -new version when next recompiled. The header file eliminates the labor of -finding and changing all the copies as well as the risk that a failure to -find one copy will result in inconsistencies within a program. - -In C, the convention is to give header files names that end with `.h'. - -Read more about using header files in official GCC documentation: - -* Include Syntax -* Include Operation -* Once-Only Headers -* Computed Includes - -https://gcc.gnu.org/onlinedocs/cpp/Header-Files.html diff --git a/include/settings.h b/include/settings.h deleted file mode 100644 index a06b8c5..0000000 --- a/include/settings.h +++ /dev/null @@ -1,35 +0,0 @@ -#pragma once - -// OLED -const int OLED_WIDTH = 128; -const int OLED_HEIGHT = 64; -const int OLED_ADDR = 0x3C; - -const int SCL_PIN = 8; -const int SDA_PIN = 10; - -// RGB LED -const int RED_PIN = 2; -const int GREEN_PIN = 4; -const int BLUE_PIN = 6; - -// MOTORS -const int EN12 = 40; -const int IN1 = 38; -const int IN2 = 36; - - -const int EN34 = 39; -const int IN3 = 37; -const int IN4 = 35; - - - - -// const int EN34 = 13; -// const int IN3 = 7; -// const int IN4 = 5; - - -// BUZZER -const int BUZZER_PIN = 13; diff --git a/lib/README b/lib/README deleted file mode 100644 index 8d3ee2a..0000000 --- a/lib/README +++ /dev/null @@ -1,46 +0,0 @@ - -This directory is intended for project specific (private) libraries. -PlatformIO will compile them to static libraries and link into the executable file. - -The source code of each library should be placed in a separate directory -("lib/your_library_name/[Code]"). - -For example, see the structure of the following example libraries `Foo` and `Bar`: - -|--lib -| | -| |--Bar -| | |--docs -| | |--examples -| | |--src -| | |- Bar.c -| | |- Bar.h -| | |- library.json (optional. for custom build options, etc) https://docs.platformio.org/page/librarymanager/config.html -| | -| |--Foo -| | |- Foo.c -| | |- Foo.h -| | -| |- README --> THIS FILE -| -|- platformio.ini -|--src - |- main.c - -Example contents of `src/main.c` using Foo and Bar: -``` -#include -#include - -int main (void) -{ - ... -} - -``` - -The PlatformIO Library Dependency Finder will find automatically dependent -libraries by scanning project source files. - -More information about PlatformIO Library Dependency Finder -- https://docs.platformio.org/page/librarymanager/ldf.html diff --git a/lib/animations/animations.cpp b/lib/animations/animations.cpp deleted file mode 100644 index cc5b971..0000000 --- a/lib/animations/animations.cpp +++ /dev/null @@ -1,74 +0,0 @@ -#include - -#include "animations.h" - -int animacja1Width = 64; -int animacja1Height = 64; -int animacja1FrameCount = 28; - -const byte PROGMEM animacja1[][512] = { - {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,248,0,0,0,0,0,1,255,255,128,0,0,0,0,15,255,255,240,0,0,0,0,63,248,31,252,0,0,0,0,255,0,0,255,0,0,0,3,252,0,0,63,192,0,0,7,248,0,0,31,224,0,0,31,184,7,224,29,248,0,0,62,112,15,240,14,124,0,0,124,112,31,248,14,62,0,1,240,96,63,252,6,15,128,3,224,96,63,252,6,7,192,7,192,96,63,252,6,3,224,15,0,96,63,252,6,0,240,30,0,96,63,252,6,0,120,60,0,96,63,252,6,0,60,120,0,112,31,248,14,0,30,120,0,112,31,248,14,0,30,60,0,48,7,224,12,0,60,30,0,56,0,0,28,0,120,15,0,28,0,0,56,0,240,7,128,28,0,0,56,1,224,3,192,14,0,0,112,3,192,0,240,7,0,0,224,15,0,0,120,3,192,3,192,30,0,0,62,1,248,31,128,124,0,0,15,0,255,255,0,240,0,0,7,192,63,252,3,224,0,0,1,240,0,0,15,128,0,0,0,126,0,0,126,0,0,0,0,31,192,3,248,0,0,0,0,7,255,255,224,0,0,0,0,0,255,255,0,0,0,0,0,0,7,224,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, - {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,248,0,0,0,0,0,1,255,255,128,0,0,0,0,15,255,255,240,0,0,0,0,63,248,31,252,0,0,0,0,255,0,0,255,0,0,0,3,252,0,0,63,192,0,0,7,248,0,0,31,224,0,0,31,184,7,224,29,248,0,0,62,112,15,240,14,124,0,0,124,112,31,248,14,62,0,1,240,96,63,252,6,15,128,3,224,96,63,252,6,7,192,7,192,96,63,252,6,3,224,15,0,96,63,252,6,0,240,30,0,96,63,252,6,0,120,60,0,96,63,252,6,0,60,120,0,112,31,248,14,0,30,120,0,112,31,248,14,0,30,60,0,48,7,224,12,0,60,30,0,56,0,0,28,0,120,15,0,28,0,0,56,0,240,7,128,28,0,0,56,1,224,3,192,14,0,0,112,3,192,0,240,7,0,0,224,15,0,0,120,3,192,3,192,30,0,0,62,1,248,31,128,124,0,0,15,0,255,255,0,240,0,0,7,192,63,252,3,224,0,0,1,240,0,0,15,128,0,0,0,126,0,0,126,0,0,0,0,31,192,3,248,0,0,0,0,7,255,255,224,0,0,0,0,0,255,255,0,0,0,0,0,0,7,224,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, - {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,248,0,0,0,0,0,1,255,255,128,0,0,0,0,15,255,255,240,0,0,0,0,63,248,31,252,0,0,0,0,255,0,0,255,0,0,0,3,252,0,0,63,192,0,0,7,248,0,0,31,224,0,0,31,184,7,224,29,248,0,0,62,112,15,240,14,124,0,0,124,112,31,248,14,62,0,1,240,96,63,252,6,15,128,3,224,96,63,252,6,7,192,7,192,96,63,252,6,3,224,15,0,96,63,252,6,0,240,30,0,96,63,252,6,0,120,60,0,96,63,252,6,0,60,120,0,112,31,248,14,0,30,120,0,112,31,248,14,0,30,60,0,48,7,224,12,0,60,30,0,56,0,0,28,0,120,15,0,28,0,0,56,0,240,7,128,28,0,0,56,1,224,3,192,14,0,0,112,3,192,0,240,7,0,0,224,15,0,0,120,3,192,3,192,30,0,0,62,1,248,31,128,124,0,0,15,0,255,255,0,240,0,0,7,192,63,252,3,224,0,0,1,240,0,0,15,128,0,0,0,126,0,0,126,0,0,0,0,31,192,3,248,0,0,0,0,7,255,255,224,0,0,0,0,0,255,255,0,0,0,0,0,0,7,224,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, - {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,248,0,0,0,0,0,1,255,255,128,0,0,0,0,15,255,255,240,0,0,0,0,63,248,31,252,0,0,0,0,255,0,0,255,0,0,0,3,252,0,0,63,192,0,0,7,248,0,0,31,224,0,0,31,184,7,224,29,248,0,0,62,112,15,240,14,124,0,0,124,112,31,248,14,62,0,1,240,96,63,252,6,15,128,3,224,96,63,252,6,7,192,7,192,96,63,252,6,3,224,15,0,96,63,252,6,0,240,30,0,96,63,252,6,0,120,60,0,96,63,252,6,0,60,120,0,112,31,248,14,0,30,120,0,112,31,248,14,0,30,60,0,48,7,224,12,0,60,30,0,56,0,0,28,0,120,15,0,28,0,0,56,0,240,7,128,28,0,0,56,1,224,3,192,14,0,0,112,3,192,0,240,7,0,0,224,15,0,0,120,3,192,3,192,30,0,0,62,1,248,31,128,124,0,0,15,0,255,255,0,240,0,0,7,192,63,252,3,224,0,0,1,240,0,0,15,128,0,0,0,126,0,0,126,0,0,0,0,31,192,3,248,0,0,0,0,7,255,255,224,0,0,0,0,0,255,255,0,0,0,0,0,0,7,224,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, - {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,248,0,0,0,0,0,1,255,255,128,0,0,0,0,15,255,255,240,0,0,0,0,63,255,255,252,0,0,0,0,255,255,255,255,0,0,0,3,255,252,63,255,192,0,0,7,254,0,0,127,224,0,0,31,248,7,224,31,248,0,0,63,240,15,240,15,252,0,0,127,112,31,248,14,254,0,1,252,96,63,252,6,63,128,3,240,96,63,252,6,15,192,7,192,96,63,252,6,7,224,15,128,96,63,252,6,1,240,30,0,96,63,252,6,0,248,60,0,96,63,252,6,0,60,120,0,112,31,248,14,0,30,120,0,112,31,248,14,0,30,60,0,48,7,224,12,0,60,30,0,56,0,0,28,0,120,15,0,28,0,0,56,0,240,7,128,28,0,0,56,1,224,3,192,14,0,0,112,3,192,0,240,7,0,0,224,15,0,0,120,3,192,3,192,30,0,0,62,1,248,31,128,124,0,0,15,0,255,255,0,240,0,0,7,192,63,252,3,224,0,0,1,240,0,0,15,128,0,0,0,126,0,0,126,0,0,0,0,31,192,3,248,0,0,0,0,7,255,255,224,0,0,0,0,0,255,255,0,0,0,0,0,0,7,224,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, - {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,248,0,0,0,0,0,1,255,255,128,0,0,0,0,15,255,255,240,0,0,0,0,63,248,31,252,0,0,0,0,255,0,0,255,0,0,0,3,248,0,0,31,192,0,0,7,224,0,0,7,224,0,0,31,128,0,0,1,248,0,0,62,0,0,0,0,124,0,0,124,3,255,255,192,62,0,1,240,255,255,255,255,15,128,3,231,255,255,255,255,231,192,7,255,240,63,252,15,255,224,15,254,96,63,252,6,127,240,31,240,96,63,252,6,15,248,63,128,96,63,252,6,1,252,124,0,112,31,248,14,0,62,120,0,112,31,248,14,0,30,60,0,48,7,224,12,0,60,30,0,56,0,0,28,0,120,15,0,28,0,0,56,0,240,7,128,28,0,0,56,1,224,3,192,14,0,0,112,3,192,0,240,7,0,0,224,15,0,0,120,3,192,3,192,30,0,0,62,1,248,31,128,124,0,0,15,0,255,255,0,240,0,0,7,192,63,252,3,224,0,0,1,240,0,0,15,128,0,0,0,126,0,0,126,0,0,0,0,31,192,3,248,0,0,0,0,7,255,255,224,0,0,0,0,0,255,255,0,0,0,0,0,0,7,224,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, - {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,248,0,0,0,0,0,1,255,255,128,0,0,0,0,15,255,255,240,0,0,0,0,63,248,31,252,0,0,0,0,255,0,0,255,0,0,0,3,248,0,0,31,192,0,0,7,224,0,0,7,224,0,0,31,128,0,0,1,248,0,0,62,0,0,0,0,124,0,0,124,0,0,0,0,62,0,1,240,0,0,0,0,15,128,3,224,0,0,0,0,7,192,7,128,0,0,0,0,1,224,15,0,0,0,0,0,0,240,30,0,0,0,0,0,0,120,60,0,0,0,0,0,0,60,127,255,255,255,255,255,255,254,127,255,255,255,255,255,255,254,60,0,120,15,240,30,0,60,30,0,56,0,0,28,0,120,15,0,28,0,0,56,0,240,7,128,28,0,0,56,1,224,3,192,14,0,0,112,3,192,0,240,7,0,0,224,15,0,0,120,3,192,3,192,30,0,0,62,1,248,31,128,124,0,0,15,0,255,255,0,240,0,0,7,192,63,252,3,224,0,0,1,240,0,0,15,128,0,0,0,126,0,0,126,0,0,0,0,31,192,3,248,0,0,0,0,7,255,255,224,0,0,0,0,0,255,255,0,0,0,0,0,0,7,224,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, - {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,248,0,0,0,0,0,1,255,255,128,0,0,0,0,15,255,255,240,0,0,0,0,63,248,31,252,0,0,0,0,255,0,0,255,0,0,0,3,248,0,0,31,192,0,0,7,224,0,0,7,224,0,0,31,128,0,0,1,248,0,0,62,0,0,0,0,124,0,0,124,0,0,0,0,62,0,1,240,0,0,0,0,15,128,3,224,0,0,0,0,7,192,7,128,0,0,0,0,1,224,15,0,0,0,0,0,0,240,30,0,0,0,0,0,0,120,60,0,0,0,0,0,0,60,120,0,0,0,0,0,0,30,124,0,0,0,0,0,0,62,63,128,0,0,0,0,1,252,31,240,0,0,0,0,15,248,15,254,0,0,0,0,127,240,7,255,224,0,0,7,255,224,3,207,255,0,0,255,243,192,0,241,255,255,255,255,143,0,0,120,15,255,255,240,30,0,0,62,1,255,255,128,124,0,0,15,0,255,255,0,240,0,0,7,192,63,252,3,224,0,0,1,240,0,0,15,128,0,0,0,126,0,0,126,0,0,0,0,31,192,3,248,0,0,0,0,7,255,255,224,0,0,0,0,0,255,255,0,0,0,0,0,0,7,224,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, - {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,248,0,0,0,0,0,1,255,255,128,0,0,0,0,15,255,255,240,0,0,0,0,63,248,31,252,0,0,0,0,255,0,0,255,0,0,0,3,248,0,0,31,192,0,0,7,224,0,0,7,224,0,0,31,128,0,0,1,248,0,0,62,0,0,0,0,124,0,0,124,0,0,0,0,62,0,1,240,0,0,0,0,15,128,3,224,0,0,0,0,7,192,7,128,0,0,0,0,1,224,15,0,0,0,0,0,0,240,30,0,0,0,0,0,0,120,60,0,0,0,0,0,0,60,120,0,0,0,0,0,0,30,120,0,0,0,0,0,0,30,60,0,0,0,0,0,0,60,31,0,0,0,0,0,0,248,15,128,0,0,0,0,1,240,7,192,0,0,0,0,3,224,3,240,0,0,0,0,15,192,0,252,0,0,0,0,63,0,0,127,0,0,0,0,254,0,0,63,192,0,0,3,252,0,0,15,240,0,0,15,240,0,0,7,254,0,0,127,224,0,0,1,255,224,7,255,128,0,0,0,127,255,255,254,0,0,0,0,31,255,255,248,0,0,0,0,7,255,255,224,0,0,0,0,0,255,255,0,0,0,0,0,0,7,224,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, - {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,248,0,0,0,0,0,1,255,255,128,0,0,0,0,15,255,255,240,0,0,0,0,63,248,31,252,0,0,0,0,255,0,0,255,0,0,0,3,248,0,0,31,192,0,0,7,224,0,0,7,224,0,0,31,128,0,0,1,248,0,0,62,0,0,0,0,124,0,0,124,0,0,0,0,62,0,1,240,0,0,0,0,15,128,3,224,0,0,0,0,7,192,7,128,0,0,0,0,1,224,15,0,0,0,0,0,0,240,30,0,0,0,0,0,0,120,60,0,0,0,0,0,0,60,120,0,0,0,0,0,0,30,120,0,0,0,0,0,0,30,60,0,0,0,0,0,0,60,30,0,0,0,0,0,0,120,15,0,0,0,0,0,0,240,7,128,0,0,0,0,1,224,3,224,0,0,0,0,7,192,1,240,0,0,0,0,15,128,0,248,0,0,0,0,31,0,0,254,0,0,0,0,127,0,0,31,128,0,0,1,248,0,0,7,224,0,0,7,224,0,0,3,248,0,0,31,192,0,0,0,255,0,0,255,0,0,0,0,127,224,7,252,0,0,0,0,127,255,255,252,0,0,0,0,1,255,255,136,0,0,0,0,0,31,248,0,0,0,0,0,0,1,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, - {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,248,0,0,0,0,0,1,255,255,128,0,0,0,0,15,255,255,240,0,0,0,0,63,248,31,252,0,0,0,0,255,0,0,255,0,0,0,3,248,0,0,31,192,0,0,7,224,0,0,7,224,0,0,31,128,0,0,1,248,0,0,62,0,0,0,0,124,0,0,124,0,0,0,0,62,0,1,240,0,0,0,0,15,128,3,224,0,0,0,0,7,192,7,128,0,0,0,0,1,224,15,0,0,0,0,0,0,240,30,0,0,0,0,0,0,120,60,0,0,0,0,0,0,60,120,0,0,0,0,0,0,30,120,0,0,0,0,0,0,30,60,0,0,0,0,0,0,60,30,0,0,0,0,0,0,120,15,0,0,0,0,0,0,240,7,128,0,0,0,0,1,224,3,224,0,0,0,0,7,192,1,240,0,0,0,0,15,128,0,248,0,0,0,0,31,0,1,254,0,0,0,0,127,128,3,223,128,0,0,1,251,192,3,135,224,0,0,7,225,192,0,3,248,0,0,31,192,0,0,0,255,0,0,255,0,0,0,0,127,224,7,252,0,0,0,0,127,255,255,252,0,0,0,0,97,255,255,156,0,0,0,0,224,31,248,12,0,0,0,0,224,1,128,12,0,0,0,0,0,1,128,0,0,0,0,0,0,1,128,0,0,0,0,0,0,1,128,0,0,0,0,0,0,1,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, - {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,248,0,0,0,0,0,1,255,255,128,0,0,0,0,15,255,255,240,0,0,0,0,63,248,31,252,0,0,0,0,255,0,0,255,0,0,0,3,248,0,0,31,192,0,0,7,224,0,0,7,224,0,0,31,128,0,0,1,248,0,0,62,0,0,0,0,124,0,0,124,0,0,0,0,62,0,1,240,0,0,0,0,15,128,3,224,0,0,0,0,7,192,7,128,0,0,0,0,1,224,15,0,0,0,0,0,0,240,30,0,0,0,0,0,0,120,60,0,0,0,0,0,0,60,120,0,0,0,0,0,0,30,120,0,0,0,0,0,0,30,60,0,0,0,0,0,0,60,30,0,0,0,0,0,0,120,15,0,0,0,0,0,0,240,7,128,0,0,0,0,1,224,3,224,0,0,0,0,7,192,1,240,0,0,0,0,15,128,0,248,0,0,0,0,31,0,1,254,0,0,0,0,127,128,3,159,128,0,0,1,249,192,7,135,224,0,0,7,225,224,7,3,248,0,0,31,192,224,14,0,255,0,0,255,0,112,12,0,127,224,7,252,0,48,0,0,127,255,255,252,0,0,0,0,97,255,255,156,0,0,0,0,224,31,248,12,0,0,0,0,224,1,128,14,0,0,0,0,224,1,128,14,0,0,0,0,192,1,128,14,0,0,0,1,192,1,128,6,0,0,0,0,128,1,128,6,0,0,0,0,0,1,128,0,0,0,0,0,0,1,128,0,0,0,0,0,0,1,128,0,0,0,0,0,0,1,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, - {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,248,0,0,0,0,0,1,255,255,128,0,0,0,0,15,255,255,240,0,0,0,0,63,248,31,252,0,0,0,0,255,0,0,255,0,0,0,3,248,0,0,31,192,0,0,7,224,0,0,7,224,0,0,31,128,0,0,1,248,0,0,62,0,0,0,0,124,0,0,124,0,0,0,0,62,0,1,240,0,0,0,0,15,128,3,224,0,0,0,0,7,192,7,128,0,0,0,0,1,224,15,0,0,0,0,0,0,240,30,0,0,0,0,0,0,120,60,0,0,0,0,0,0,60,120,0,0,0,0,0,0,30,120,0,0,0,0,0,0,30,60,0,0,0,0,0,0,60,30,0,0,0,0,0,0,120,15,0,0,0,0,0,0,240,7,128,0,0,0,0,1,224,3,224,0,0,0,0,7,192,1,240,0,0,0,0,15,128,0,248,0,0,0,0,31,0,1,254,0,0,0,0,127,128,3,159,128,0,0,1,249,192,7,135,224,0,0,7,225,224,7,3,248,0,0,31,192,224,14,0,255,0,0,255,0,112,12,0,127,224,7,252,0,48,0,0,127,255,255,252,0,0,0,0,97,255,255,156,0,0,0,0,224,31,248,12,0,0,0,0,224,1,128,14,0,0,0,0,224,1,128,14,0,0,0,0,192,1,128,14,0,0,0,1,192,1,128,6,0,0,0,0,128,1,128,6,0,0,0,0,0,1,128,0,0,0,0,0,0,1,128,0,0,0,0,0,0,1,128,0,0,0,0,0,0,1,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, - {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,248,0,0,0,0,0,1,255,255,128,0,0,0,0,15,255,255,240,0,0,0,0,63,248,31,252,0,0,0,0,255,0,0,255,0,0,0,3,248,0,0,31,192,0,0,7,224,0,0,7,224,0,0,31,128,0,0,1,248,0,0,62,0,0,0,0,124,0,0,124,0,0,0,0,62,0,1,240,0,0,0,0,15,128,3,224,0,0,0,0,7,192,7,128,0,0,0,0,1,224,15,0,0,0,0,0,0,240,30,0,0,0,0,0,0,120,60,0,0,0,0,0,0,60,120,0,0,0,0,0,0,30,120,0,0,0,0,0,0,30,60,0,0,0,0,0,0,60,30,0,0,0,0,0,0,120,15,0,0,0,0,0,0,240,7,128,0,0,0,0,1,224,3,224,0,0,0,0,7,192,1,240,0,0,0,0,15,128,0,248,0,0,0,0,31,0,1,254,0,0,0,0,127,128,3,159,128,0,0,1,249,192,7,135,224,0,0,7,225,224,7,3,248,0,0,31,192,224,14,0,255,0,0,255,0,112,12,0,127,224,7,252,0,48,0,0,127,255,255,252,0,0,0,0,97,255,255,156,0,0,0,0,224,31,248,12,0,0,0,0,224,1,128,14,0,0,0,0,224,1,128,14,0,0,0,0,192,1,128,14,0,0,0,1,192,1,128,6,0,0,0,0,128,1,128,6,0,0,0,0,0,1,128,0,0,0,0,0,0,1,128,0,0,0,0,0,0,1,128,0,0,0,0,0,0,1,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, - {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,248,0,0,0,0,0,1,255,255,128,0,0,0,0,15,255,255,240,0,0,0,0,63,248,31,252,0,0,0,0,255,0,0,255,0,0,0,3,248,0,0,31,192,0,0,7,224,0,0,7,224,0,0,31,128,0,0,1,248,0,0,62,0,0,0,0,124,0,0,124,0,0,0,0,62,0,1,240,0,0,0,0,15,128,3,224,0,0,0,0,7,192,7,128,0,0,0,0,1,224,15,0,0,0,0,0,0,240,30,0,0,0,0,0,0,120,60,0,0,0,0,0,0,60,120,0,0,0,0,0,0,30,120,0,0,0,0,0,0,30,60,0,0,0,0,0,0,60,30,0,0,0,0,0,0,120,15,0,0,0,0,0,0,240,7,128,0,0,0,0,1,224,3,224,0,0,0,0,7,192,1,240,0,0,0,0,15,128,0,248,0,0,0,0,31,0,1,254,0,0,0,0,127,128,3,159,128,0,0,1,249,192,7,135,224,0,0,7,225,224,7,3,248,0,0,31,192,224,14,0,255,0,0,255,0,112,12,0,127,224,7,252,0,48,0,0,127,255,255,252,0,0,0,0,97,255,255,156,0,0,0,0,224,31,248,12,0,0,0,0,224,1,128,14,0,0,0,0,224,1,128,14,0,0,0,0,192,1,128,14,0,0,0,1,192,1,128,6,0,0,0,0,128,1,128,6,0,0,0,0,0,1,128,0,0,0,0,0,0,1,128,0,0,0,0,0,0,1,128,0,0,0,0,0,0,1,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, - {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,248,0,0,0,0,0,1,255,255,128,0,0,0,0,15,255,255,240,0,0,0,0,63,248,31,252,0,0,0,0,255,0,0,255,0,0,0,3,248,0,0,31,192,0,0,7,224,0,0,7,224,0,0,31,128,0,0,1,248,0,0,62,0,0,0,0,124,0,0,124,0,0,0,0,62,0,1,240,0,0,0,0,15,128,3,224,0,0,0,0,7,192,7,128,0,0,0,0,1,224,15,0,0,0,0,0,0,240,30,0,0,0,0,0,0,120,60,0,0,0,0,0,0,60,120,0,0,0,0,0,0,30,120,0,0,0,0,0,0,30,60,0,0,0,0,0,0,60,30,0,0,0,0,0,0,120,15,0,0,0,0,0,0,240,7,128,0,0,0,0,1,224,3,224,0,0,0,0,7,192,1,240,0,0,0,0,15,128,0,248,0,0,0,0,31,0,1,254,0,0,0,0,127,128,3,159,128,0,0,1,249,192,7,135,224,0,0,7,225,224,7,3,248,0,0,31,192,224,14,0,255,0,0,255,0,112,12,0,127,224,7,252,0,48,0,0,127,255,255,252,0,0,0,0,97,255,255,156,0,0,0,0,224,31,248,12,0,0,0,0,224,1,128,14,0,0,0,0,224,1,128,14,0,0,0,0,192,1,128,14,0,0,0,1,192,1,128,6,0,0,0,0,128,1,128,6,0,0,0,0,0,1,128,0,0,0,0,0,0,1,128,0,0,0,0,0,0,1,128,0,0,0,0,0,0,1,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, - {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,248,0,0,0,0,0,1,255,255,128,0,0,0,0,15,255,255,240,0,0,0,0,63,248,31,252,0,0,0,0,255,0,0,255,0,0,0,3,248,0,0,31,192,0,0,7,224,0,0,7,224,0,0,31,128,0,0,1,248,0,0,62,0,0,0,0,124,0,0,124,0,0,0,0,62,0,1,240,0,0,0,0,15,128,3,224,0,0,0,0,7,192,7,128,0,0,0,0,1,224,15,0,0,0,0,0,0,240,30,0,0,0,0,0,0,120,60,0,0,0,0,0,0,60,120,0,0,0,0,0,0,30,120,0,0,0,0,0,0,30,60,0,0,0,0,0,0,60,30,0,0,0,0,0,0,120,15,0,0,0,0,0,0,240,7,128,0,0,0,0,1,224,3,224,0,0,0,0,7,192,1,240,0,0,0,0,15,128,0,248,0,0,0,0,31,0,1,254,0,0,0,0,127,128,3,159,128,0,0,1,249,192,7,135,224,0,0,7,225,224,7,3,248,0,0,31,192,224,14,0,255,0,0,255,0,112,12,0,127,224,7,252,0,48,0,0,127,255,255,252,0,0,0,0,97,255,255,156,0,0,0,0,224,31,248,12,0,0,0,0,224,1,128,14,0,0,0,0,224,1,128,14,0,0,0,0,192,1,128,14,0,0,0,1,192,1,128,6,0,0,0,0,128,1,128,6,0,0,0,0,0,1,128,0,0,0,0,0,0,1,128,0,0,0,0,0,0,1,128,0,0,0,0,0,0,1,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, - {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,248,0,0,0,0,0,1,255,255,128,0,0,0,0,15,255,255,240,0,0,0,0,63,248,31,252,0,0,0,0,255,0,0,255,0,0,0,3,248,0,0,31,192,0,0,7,224,0,0,7,224,0,0,31,128,0,0,1,248,0,0,62,0,0,0,0,124,0,0,124,0,0,0,0,62,0,1,240,0,0,0,0,15,128,3,224,0,0,0,0,7,192,7,128,0,0,0,0,1,224,15,0,0,0,0,0,0,240,30,0,0,0,0,0,0,120,60,0,0,0,0,0,0,60,120,0,0,0,0,0,0,30,120,0,0,0,0,0,0,30,60,0,0,0,0,0,0,60,30,0,0,0,0,0,0,120,15,0,0,0,0,0,0,240,7,128,0,0,0,0,1,224,3,224,0,0,0,0,7,192,1,240,0,0,0,0,15,128,0,248,0,0,0,0,31,0,1,254,0,0,0,0,127,128,3,159,128,0,0,1,249,192,7,135,224,0,0,7,225,224,7,3,248,0,0,31,192,224,14,0,255,0,0,255,0,112,12,0,127,224,7,252,0,48,0,0,127,255,255,252,0,0,0,0,97,255,255,156,0,0,0,0,224,31,248,12,0,0,0,0,224,1,128,14,0,0,0,0,224,1,128,14,0,0,0,0,192,1,128,14,0,0,0,1,192,1,128,6,0,0,0,0,128,1,128,6,0,0,0,0,0,1,128,0,0,0,0,0,0,1,128,0,0,0,0,0,0,1,128,0,0,0,0,0,0,1,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, - {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,248,0,0,0,0,0,1,255,255,128,0,0,0,0,15,255,255,240,0,0,0,0,63,248,31,252,0,0,0,0,255,0,0,255,0,0,0,3,248,0,0,31,192,0,0,7,224,0,0,7,224,0,0,31,128,0,0,1,248,0,0,62,0,0,0,0,124,0,0,124,0,0,0,0,62,0,1,240,0,0,0,0,15,128,3,224,0,0,0,0,7,192,7,128,0,0,0,0,1,224,15,0,0,0,0,0,0,240,30,0,0,0,0,0,0,120,60,0,0,0,0,0,0,60,120,0,0,0,0,0,0,30,120,0,0,0,0,0,0,30,60,0,0,0,0,0,0,60,30,0,0,0,0,0,0,120,15,0,0,0,0,0,0,240,7,128,0,0,0,0,1,224,3,224,0,0,0,0,7,192,1,240,0,0,0,0,15,128,0,248,0,0,0,0,31,0,1,254,0,0,0,0,127,128,3,223,128,0,0,1,251,192,3,135,224,0,0,7,225,192,0,3,248,0,0,31,192,0,0,0,255,0,0,255,0,0,0,0,127,224,7,252,0,0,0,0,127,255,255,252,0,0,0,0,97,255,255,156,0,0,0,0,224,31,248,12,0,0,0,0,224,1,128,12,0,0,0,0,0,1,128,0,0,0,0,0,0,1,128,0,0,0,0,0,0,1,128,0,0,0,0,0,0,1,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, - {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,248,0,0,0,0,0,1,255,255,128,0,0,0,0,15,255,255,240,0,0,0,0,63,248,31,252,0,0,0,0,255,0,0,255,0,0,0,3,248,0,0,31,192,0,0,7,224,0,0,7,224,0,0,31,128,0,0,1,248,0,0,62,0,0,0,0,124,0,0,124,0,0,0,0,62,0,1,240,0,0,0,0,15,128,3,224,0,0,0,0,7,192,7,128,0,0,0,0,1,224,15,0,0,0,0,0,0,240,30,0,0,0,0,0,0,120,60,0,0,0,0,0,0,60,120,0,0,0,0,0,0,30,120,0,0,0,0,0,0,30,60,0,0,0,0,0,0,60,30,0,0,0,0,0,0,120,15,0,0,0,0,0,0,240,7,128,0,0,0,0,1,224,3,224,0,0,0,0,7,192,1,240,0,0,0,0,15,128,0,248,0,0,0,0,31,0,0,254,0,0,0,0,127,0,0,31,128,0,0,1,248,0,0,7,224,0,0,7,224,0,0,3,248,0,0,31,192,0,0,0,255,0,0,255,0,0,0,0,127,224,7,252,0,0,0,0,127,255,255,252,0,0,0,0,1,255,255,136,0,0,0,0,0,31,248,0,0,0,0,0,0,1,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, - {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,248,0,0,0,0,0,1,255,255,128,0,0,0,0,15,255,255,240,0,0,0,0,63,248,31,252,0,0,0,0,255,0,0,255,0,0,0,3,248,0,0,31,192,0,0,7,224,0,0,7,224,0,0,31,128,0,0,1,248,0,0,62,0,0,0,0,124,0,0,124,0,0,0,0,62,0,1,240,0,0,0,0,15,128,3,224,0,0,0,0,7,192,7,128,0,0,0,0,1,224,15,0,0,0,0,0,0,240,30,0,0,0,0,0,0,120,60,0,0,0,0,0,0,60,120,0,0,0,0,0,0,30,120,0,0,0,0,0,0,30,62,0,0,0,0,0,0,124,31,0,0,0,0,0,0,248,15,192,0,0,0,0,3,240,7,240,0,0,0,0,15,224,3,252,0,0,0,0,63,192,0,255,0,0,0,0,255,0,0,127,224,0,0,7,254,0,0,63,252,0,0,63,252,0,0,15,255,224,7,255,240,0,0,7,207,255,255,243,224,0,0,1,240,255,255,15,128,0,0,0,126,0,0,126,0,0,0,0,31,192,3,248,0,0,0,0,7,255,255,224,0,0,0,0,0,255,255,0,0,0,0,0,0,7,224,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, - {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,248,0,0,0,0,0,1,255,255,128,0,0,0,0,15,255,255,240,0,0,0,0,63,248,31,252,0,0,0,0,255,0,0,255,0,0,0,3,248,0,0,31,192,0,0,7,224,0,0,7,224,0,0,31,128,0,0,1,248,0,0,62,0,0,0,0,124,0,0,124,0,0,0,0,62,0,1,240,0,0,0,0,15,128,3,224,0,0,0,0,7,192,7,128,0,0,0,0,1,224,15,0,0,0,0,0,0,240,30,0,0,0,0,0,0,120,60,0,0,0,0,0,0,60,120,0,0,0,0,0,0,62,127,128,0,0,0,0,1,254,63,252,0,0,0,0,63,252,31,255,252,0,0,63,255,248,15,63,255,255,255,255,252,240,7,128,255,255,255,255,1,224,3,192,15,255,255,240,3,192,0,240,7,0,0,224,15,0,0,120,3,192,3,192,30,0,0,62,1,248,31,128,124,0,0,15,0,255,255,0,240,0,0,7,192,63,252,3,224,0,0,1,240,0,0,15,128,0,0,0,126,0,0,126,0,0,0,0,31,192,3,248,0,0,0,0,7,255,255,224,0,0,0,0,0,255,255,0,0,0,0,0,0,7,224,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, - {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,248,0,0,0,0,0,1,255,255,128,0,0,0,0,15,255,255,240,0,0,0,0,63,248,31,252,0,0,0,0,255,0,0,255,0,0,0,3,248,0,0,31,192,0,0,7,224,0,0,7,224,0,0,31,128,0,0,1,248,0,0,62,0,0,0,0,124,0,0,124,0,0,0,0,62,0,1,240,0,0,0,0,15,128,3,224,0,0,0,0,7,192,7,128,0,0,0,0,1,224,15,0,0,255,255,0,0,240,30,127,255,255,255,255,254,120,63,255,255,255,255,255,255,252,127,252,112,31,248,14,63,254,126,0,112,31,248,14,0,126,60,0,48,7,224,12,0,60,30,0,56,0,0,28,0,120,15,0,28,0,0,56,0,240,7,128,28,0,0,56,1,224,3,192,14,0,0,112,3,192,0,240,7,0,0,224,15,0,0,120,3,192,3,192,30,0,0,62,1,248,31,128,124,0,0,15,0,255,255,0,240,0,0,7,192,63,252,3,224,0,0,1,240,0,0,15,128,0,0,0,126,0,0,126,0,0,0,0,31,192,3,248,0,0,0,0,7,255,255,224,0,0,0,0,0,255,255,0,0,0,0,0,0,7,224,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, - {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,248,0,0,0,0,0,1,255,255,128,0,0,0,0,15,255,255,240,0,0,0,0,63,248,31,252,0,0,0,0,255,0,0,255,0,0,0,3,248,0,0,31,192,0,0,7,224,0,0,7,224,0,0,31,128,31,248,1,248,0,0,62,7,255,255,224,124,0,0,124,127,255,255,254,62,0,1,243,255,63,252,255,207,128,3,255,240,63,252,15,255,192,7,255,96,63,252,6,255,224,15,248,96,63,252,6,31,240,31,224,96,63,252,6,7,248,63,0,96,63,252,6,0,252,124,0,112,31,248,14,0,62,120,0,112,31,248,14,0,30,60,0,48,7,224,12,0,60,30,0,56,0,0,28,0,120,15,0,28,0,0,56,0,240,7,128,28,0,0,56,1,224,3,192,14,0,0,112,3,192,0,240,7,0,0,224,15,0,0,120,3,192,3,192,30,0,0,62,1,248,31,128,124,0,0,15,0,255,255,0,240,0,0,7,192,63,252,3,224,0,0,1,240,0,0,15,128,0,0,0,126,0,0,126,0,0,0,0,31,192,3,248,0,0,0,0,7,255,255,224,0,0,0,0,0,255,255,0,0,0,0,0,0,7,224,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, - {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,248,0,0,0,0,0,1,255,255,128,0,0,0,0,15,255,255,240,0,0,0,0,63,255,255,252,0,0,0,0,255,255,255,255,0,0,0,3,255,224,7,255,192,0,0,7,252,0,0,63,224,0,0,31,248,7,224,31,248,0,0,63,240,15,240,15,252,0,0,126,112,31,248,14,126,0,1,252,96,63,252,6,63,128,3,240,96,63,252,6,15,192,7,192,96,63,252,6,3,224,15,128,96,63,252,6,1,240,30,0,96,63,252,6,0,120,60,0,96,63,252,6,0,60,120,0,112,31,248,14,0,30,120,0,112,31,248,14,0,30,60,0,48,7,224,12,0,60,30,0,56,0,0,28,0,120,15,0,28,0,0,56,0,240,7,128,28,0,0,56,1,224,3,192,14,0,0,112,3,192,0,240,7,0,0,224,15,0,0,120,3,192,3,192,30,0,0,62,1,248,31,128,124,0,0,15,0,255,255,0,240,0,0,7,192,63,252,3,224,0,0,1,240,0,0,15,128,0,0,0,126,0,0,126,0,0,0,0,31,192,3,248,0,0,0,0,7,255,255,224,0,0,0,0,0,255,255,0,0,0,0,0,0,7,224,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, - {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,248,0,0,0,0,0,1,255,255,128,0,0,0,0,15,255,255,240,0,0,0,0,63,248,31,252,0,0,0,0,255,0,0,255,0,0,0,3,252,0,0,63,192,0,0,7,248,0,0,31,224,0,0,31,184,7,224,29,248,0,0,62,112,15,240,14,124,0,0,124,112,31,248,14,62,0,1,240,96,63,252,6,15,128,3,224,96,63,252,6,7,192,7,192,96,63,252,6,3,224,15,0,96,63,252,6,0,240,30,0,96,63,252,6,0,120,60,0,96,63,252,6,0,60,120,0,112,31,248,14,0,30,120,0,112,31,248,14,0,30,60,0,48,7,224,12,0,60,30,0,56,0,0,28,0,120,15,0,28,0,0,56,0,240,7,128,28,0,0,56,1,224,3,192,14,0,0,112,3,192,0,240,7,0,0,224,15,0,0,120,3,192,3,192,30,0,0,62,1,248,31,128,124,0,0,15,0,255,255,0,240,0,0,7,192,63,252,3,224,0,0,1,240,0,0,15,128,0,0,0,126,0,0,126,0,0,0,0,31,192,3,248,0,0,0,0,7,255,255,224,0,0,0,0,0,255,255,0,0,0,0,0,0,7,224,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, - {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,248,0,0,0,0,0,1,255,255,128,0,0,0,0,15,255,255,240,0,0,0,0,63,248,31,252,0,0,0,0,255,0,0,255,0,0,0,3,252,0,0,63,192,0,0,7,248,0,0,31,224,0,0,31,184,7,224,29,248,0,0,62,112,15,240,14,124,0,0,124,112,31,248,14,62,0,1,240,96,63,252,6,15,128,3,224,96,63,252,6,7,192,7,192,96,63,252,6,3,224,15,0,96,63,252,6,0,240,30,0,96,63,252,6,0,120,60,0,96,63,252,6,0,60,120,0,112,31,248,14,0,30,120,0,112,31,248,14,0,30,60,0,48,7,224,12,0,60,30,0,56,0,0,28,0,120,15,0,28,0,0,56,0,240,7,128,28,0,0,56,1,224,3,192,14,0,0,112,3,192,0,240,7,0,0,224,15,0,0,120,3,192,3,192,30,0,0,62,1,248,31,128,124,0,0,15,0,255,255,0,240,0,0,7,192,63,252,3,224,0,0,1,240,0,0,15,128,0,0,0,126,0,0,126,0,0,0,0,31,192,3,248,0,0,0,0,7,255,255,224,0,0,0,0,0,255,255,0,0,0,0,0,0,7,224,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, - {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,248,0,0,0,0,0,1,255,255,128,0,0,0,0,15,255,255,240,0,0,0,0,63,248,31,252,0,0,0,0,255,0,0,255,0,0,0,3,252,0,0,63,192,0,0,7,248,0,0,31,224,0,0,31,184,7,224,29,248,0,0,62,112,15,240,14,124,0,0,124,112,31,248,14,62,0,1,240,96,63,252,6,15,128,3,224,96,63,252,6,7,192,7,192,96,63,252,6,3,224,15,0,96,63,252,6,0,240,30,0,96,63,252,6,0,120,60,0,96,63,252,6,0,60,120,0,112,31,248,14,0,30,120,0,112,31,248,14,0,30,60,0,48,7,224,12,0,60,30,0,56,0,0,28,0,120,15,0,28,0,0,56,0,240,7,128,28,0,0,56,1,224,3,192,14,0,0,112,3,192,0,240,7,0,0,224,15,0,0,120,3,192,3,192,30,0,0,62,1,248,31,128,124,0,0,15,0,255,255,0,240,0,0,7,192,63,252,3,224,0,0,1,240,0,0,15,128,0,0,0,126,0,0,126,0,0,0,0,31,192,3,248,0,0,0,0,7,255,255,224,0,0,0,0,0,255,255,0,0,0,0,0,0,7,224,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} -}; - - -int animacja2Width = 64; -int animacja2Height = 64; -int animacja2FrameCount = 28; - -const byte PROGMEM animacja2[][512] = { - {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,7,0,0,0,0,0,0,6,3,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,6,3,0,0,0,0,0,0,7,143,0,0,0,0,0,0,3,254,0,0,0,0,0,0,1,252,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,224,0,0,0,0,0,0,127,248,0,0,0,0,0,0,248,60,0,0,0,0,0,1,224,28,0,0,0,0,0,7,128,14,0,0,0,0,0,15,0,15,0,0,0,0,0,30,0,15,0,0,0,0,0,56,0,31,128,0,0,0,0,112,112,29,192,0,0,0,0,224,240,25,224,0,0,0,0,225,240,24,252,0,0,0,0,199,240,60,127,128,0,0,1,199,96,60,31,192,0,0,1,206,96,62,1,224,0,0,3,142,224,119,128,224,0,0,3,140,224,115,240,224,0,0,7,28,192,113,255,224,0,0,7,24,192,96,63,224,0,0,6,57,192,224,3,128,0,0,7,49,192,224,0,0,0,0,7,241,192,224,0,0,0,0,3,225,192,112,0,0,0,0,0,129,192,120,0,0,0,0,0,3,224,56,0,0,0,0,0,3,248,28,0,0,0,0,0,3,188,14,0,0,0,0,0,3,30,15,0,0,0,0,0,3,15,7,0,0,0,0,0,7,15,131,128,0,0,0,0,7,31,195,128,0,0,0,0,14,29,225,128,0,0,0,0,30,28,225,128,0,0,0,0,28,24,97,192,0,0,0,0,56,56,97,192,0,0,0,0,112,112,112,192,0,0,0,0,240,240,112,192,0,0,0,0,224,224,48,224,0,0,0,1,193,192,48,224,0,0,0,3,131,128,56,96,0,0,0,3,135,0,56,96,0,0,0,3,135,0,24,96,0,0,0,3,142,0,28,224,0,0,0,1,252,0,15,224,0,0,0,0,248,0,15,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, - {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,7,0,0,0,0,0,0,6,3,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,6,3,0,0,0,0,0,0,7,143,0,0,0,0,0,0,3,254,0,0,0,0,0,0,1,252,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,31,240,0,0,0,0,0,0,127,248,0,0,0,0,0,0,248,60,0,0,0,0,0,1,224,28,0,0,0,0,0,7,128,14,0,0,0,0,0,15,0,15,0,0,0,0,0,30,0,15,0,0,0,0,0,60,0,31,128,0,0,0,0,112,112,29,192,0,0,0,0,112,240,25,192,0,0,0,0,225,240,24,248,0,0,0,0,227,240,56,127,0,0,0,0,199,96,60,31,192,0,0,1,198,96,62,3,192,0,0,1,206,224,127,0,224,0,0,3,142,224,119,240,224,0,0,3,156,192,115,255,224,0,0,3,28,192,96,127,192,0,0,7,25,192,224,7,128,0,0,7,57,192,224,0,0,0,0,7,241,192,224,0,0,0,0,3,241,192,112,0,0,0,0,0,193,224,120,0,0,0,0,0,3,240,56,0,0,0,0,0,3,248,28,0,0,0,0,0,3,188,14,0,0,0,0,0,3,30,14,0,0,0,0,0,3,15,7,0,0,0,0,0,3,15,131,0,0,0,0,0,7,15,195,128,0,0,0,0,15,29,195,128,0,0,0,0,14,28,225,128,0,0,0,0,28,24,225,192,0,0,0,0,56,56,97,192,0,0,0,0,120,120,112,192,0,0,0,0,112,112,112,192,0,0,0,0,224,224,112,224,0,0,0,1,193,192,48,224,0,0,0,1,131,192,56,96,0,0,0,3,135,128,56,96,0,0,0,3,135,0,24,96,0,0,0,1,206,0,28,224,0,0,0,1,252,0,15,224,0,0,0,0,248,0,15,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, - {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,7,0,0,0,0,0,0,6,3,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,6,3,0,0,0,0,0,0,7,143,0,0,0,0,0,0,3,254,0,0,0,0,0,0,1,252,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,31,240,0,0,0,0,0,0,127,248,0,0,0,0,0,0,240,28,0,0,0,0,0,1,224,28,0,0,0,0,0,3,192,14,0,0,0,0,0,15,0,14,0,0,0,0,0,30,0,15,0,0,0,0,0,60,16,31,0,0,0,0,0,56,120,31,128,0,0,0,0,112,240,25,192,0,0,0,0,113,240,25,224,0,0,0,0,99,240,56,252,0,0,0,0,227,224,60,127,0,0,0,0,231,224,60,15,128,0,0,0,199,224,126,3,192,0,0,1,206,224,119,193,192,0,0,1,206,192,119,249,192,0,0,3,141,192,97,255,128,0,0,3,157,192,224,63,128,0,0,3,157,192,224,4,0,0,0,3,249,192,224,0,0,0,0,1,249,192,112,0,0,0,0,1,241,224,112,0,0,0,0,0,1,240,56,0,0,0,0,0,3,248,28,0,0,0,0,0,3,184,28,0,0,0,0,0,3,156,14,0,0,0,0,0,3,142,7,0,0,0,0,0,3,143,7,0,0,0,0,0,3,15,131,0,0,0,0,0,7,15,195,128,0,0,0,0,14,29,195,128,0,0,0,0,30,28,225,128,0,0,0,0,60,28,225,192,0,0,0,0,56,56,97,192,0,0,0,0,112,112,112,192,0,0,0,0,224,224,112,224,0,0,0,1,193,224,48,224,0,0,0,1,195,192,56,96,0,0,0,1,131,128,56,96,0,0,0,1,199,0,24,96,0,0,0,1,254,0,28,224,0,0,0,0,252,0,15,224,0,0,0,0,56,0,15,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, - {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,7,0,0,0,0,0,0,6,3,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,6,3,0,0,0,0,0,0,7,143,0,0,0,0,0,0,3,254,0,0,0,0,0,0,1,252,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,192,0,0,0,0,0,0,63,240,0,0,0,0,0,0,127,248,0,0,0,0,0,0,240,28,0,0,0,0,0,1,224,28,0,0,0,0,0,3,192,14,0,0,0,0,0,7,128,14,0,0,0,0,0,14,0,15,0,0,0,0,0,28,48,31,0,0,0,0,0,56,120,31,128,0,0,0,0,56,240,27,128,0,0,0,0,49,240,57,192,0,0,0,0,113,240,57,240,0,0,0,0,115,224,56,252,0,0,0,0,115,224,60,63,0,0,0,0,99,224,124,15,0,0,0,0,231,224,127,3,128,0,0,0,231,192,127,195,128,0,0,0,199,192,103,255,0,0,0,1,199,192,224,255,0,0,0,1,207,192,224,30,0,0,0,1,223,192,224,0,0,0,0,0,253,192,112,0,0,0,0,0,249,224,112,0,0,0,0,0,1,224,56,0,0,0,0,0,1,240,56,0,0,0,0,0,1,184,28,0,0,0,0,0,1,156,28,0,0,0,0,0,1,158,14,0,0,0,0,0,3,142,6,0,0,0,0,0,3,143,7,0,0,0,0,0,3,143,135,0,0,0,0,0,7,15,131,128,0,0,0,0,14,13,195,128,0,0,0,0,28,28,193,128,0,0,0,0,56,60,225,192,0,0,0,0,112,56,225,192,0,0,0,0,240,112,112,224,0,0,0,0,224,224,112,224,0,0,0,0,193,192,56,96,0,0,0,0,195,128,56,96,0,0,0,0,231,0,24,96,0,0,0,0,255,0,31,224,0,0,0,0,126,0,15,192,0,0,0,0,0,0,7,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, - {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,7,0,0,0,0,0,0,6,3,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,7,3,0,0,0,0,0,0,3,223,0,0,0,0,0,0,3,254,0,0,0,0,0,0,0,248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,192,0,0,0,0,0,0,63,240,0,0,0,0,0,0,127,248,0,0,0,0,0,0,240,28,0,0,0,0,0,1,224,12,0,0,0,0,0,3,192,14,0,0,0,0,0,7,128,14,0,0,0,0,0,15,0,30,0,0,0,0,0,30,24,31,0,0,0,0,0,28,56,31,0,0,0,0,0,24,112,31,0,0,0,0,0,56,240,59,128,0,0,0,0,57,224,59,192,0,0,0,0,57,224,57,240,0,0,0,0,49,224,56,252,0,0,0,0,51,224,120,62,0,0,0,0,115,224,124,14,0,0,0,0,115,192,127,6,0,0,0,0,115,192,111,206,0,0,0,0,103,192,227,254,0,0,0,0,103,192,224,124,0,0,0,0,231,192,224,0,0,0,0,0,127,192,112,0,0,0,0,0,127,224,112,0,0,0,0,0,57,224,48,0,0,0,0,0,1,240,56,0,0,0,0,0,1,248,24,0,0,0,0,0,1,248,28,0,0,0,0,0,1,220,12,0,0,0,0,0,1,206,14,0,0,0,0,0,1,206,14,0,0,0,0,0,3,143,7,0,0,0,0,0,7,143,135,0,0,0,0,0,15,15,131,128,0,0,0,0,30,15,195,128,0,0,0,0,60,29,193,192,0,0,0,0,120,56,225,192,0,0,0,0,112,112,224,224,0,0,0,0,224,240,112,224,0,0,0,0,225,224,56,96,0,0,0,0,227,192,56,96,0,0,0,0,127,128,28,96,0,0,0,0,127,0,31,224,0,0,0,0,30,0,15,192,0,0,0,0,0,0,7,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, - {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,7,0,0,0,0,0,0,6,3,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,7,3,0,0,0,0,0,0,3,255,0,0,0,0,0,0,3,254,0,0,0,0,0,0,0,248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,224,0,0,0,0,0,0,63,240,0,0,0,0,0,0,127,248,0,0,0,0,0,0,240,28,0,0,0,0,0,1,224,12,0,0,0,0,0,1,192,12,0,0,0,0,0,3,128,12,0,0,0,0,0,7,8,28,0,0,0,0,0,15,24,30,0,0,0,0,0,14,56,30,0,0,0,0,0,28,112,30,0,0,0,0,0,28,240,62,0,0,0,0,0,28,224,63,128,0,0,0,0,24,224,51,192,0,0,0,0,25,224,49,224,0,0,0,0,25,224,112,240,0,0,0,0,57,224,124,48,0,0,0,0,57,192,127,48,0,0,0,0,57,192,111,240,0,0,0,0,57,192,227,240,0,0,0,0,57,192,224,224,0,0,0,0,59,192,224,0,0,0,0,0,63,192,96,0,0,0,0,0,31,224,112,0,0,0,0,0,1,224,112,0,0,0,0,0,1,240,48,0,0,0,0,0,1,240,56,0,0,0,0,0,0,248,56,0,0,0,0,0,0,220,24,0,0,0,0,0,0,220,28,0,0,0,0,0,1,206,28,0,0,0,0,0,7,206,12,0,0,0,0,0,15,15,14,0,0,0,0,0,30,15,14,0,0,0,0,0,60,31,135,0,0,0,0,0,120,63,135,0,0,0,0,0,224,121,195,0,0,0,0,0,225,225,195,128,0,0,0,0,227,192,195,128,0,0,0,0,127,128,225,128,0,0,0,0,127,0,97,128,0,0,0,0,28,0,97,128,0,0,0,0,0,0,127,128,0,0,0,0,0,0,63,0,0,0,0,0,0,0,30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, - {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,248,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,7,0,0,0,0,0,0,6,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,6,3,128,0,0,0,0,0,7,7,0,0,0,0,0,0,3,254,0,0,0,0,0,0,1,252,0,0,0,0,0,0,0,248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,224,0,0,0,0,0,0,63,248,0,0,0,0,0,0,127,248,0,0,0,0,0,0,240,28,0,0,0,0,0,0,224,12,0,0,0,0,0,1,192,12,0,0,0,0,0,3,192,12,0,0,0,0,0,3,140,28,0,0,0,0,0,7,28,28,0,0,0,0,0,14,56,28,0,0,0,0,0,14,56,28,0,0,0,0,0,12,112,60,0,0,0,0,0,12,240,62,0,0,0,0,0,12,224,63,0,0,0,0,0,12,224,55,128,0,0,0,0,12,224,115,128,0,0,0,0,12,224,121,128,0,0,0,0,12,224,125,128,0,0,0,0,28,224,255,128,0,0,0,0,12,224,239,128,0,0,0,0,28,192,224,0,0,0,0,0,15,192,224,0,0,0,0,0,15,192,224,0,0,0,0,0,7,224,96,0,0,0,0,0,0,224,112,0,0,0,0,0,0,240,112,0,0,0,0,0,0,240,112,0,0,0,0,0,0,248,48,0,0,0,0,0,0,248,48,0,0,0,0,0,1,248,56,0,0,0,0,0,7,220,56,0,0,0,0,0,15,140,24,0,0,0,0,0,62,14,24,0,0,0,0,0,124,14,28,0,0,0,0,0,112,62,28,0,0,0,0,0,224,255,12,0,0,0,0,0,225,231,14,0,0,0,0,0,255,195,14,0,0,0,0,0,127,3,134,0,0,0,0,0,62,3,134,0,0,0,0,0,0,1,134,0,0,0,0,0,0,1,206,0,0,0,0,0,0,1,254,0,0,0,0,0,0,0,252,0,0,0,0,0,0,0,48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, - {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,248,0,0,0,0,0,0,3,254,0,0,0,0,0,0,3,143,0,0,0,0,0,0,7,3,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,6,3,128,0,0,0,0,0,7,7,0,0,0,0,0,0,3,254,0,0,0,0,0,0,1,252,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,224,0,0,0,0,0,0,63,248,0,0,0,0,0,0,120,56,0,0,0,0,0,0,112,28,0,0,0,0,0,0,224,12,0,0,0,0,0,1,192,12,0,0,0,0,0,1,192,12,0,0,0,0,0,3,140,28,0,0,0,0,0,3,156,28,0,0,0,0,0,7,28,24,0,0,0,0,0,6,56,24,0,0,0,0,0,14,112,56,0,0,0,0,0,14,112,56,0,0,0,0,0,6,112,56,0,0,0,0,0,6,112,60,0,0,0,0,0,6,112,124,0,0,0,0,0,6,112,124,0,0,0,0,0,6,112,124,0,0,0,0,0,6,112,252,0,0,0,0,0,6,112,248,0,0,0,0,0,7,112,224,0,0,0,0,0,7,240,224,0,0,0,0,0,3,224,224,0,0,0,0,0,1,224,224,0,0,0,0,0,0,224,96,0,0,0,0,0,0,224,96,0,0,0,0,0,0,112,96,0,0,0,0,0,0,112,96,0,0,0,0,0,0,240,112,0,0,0,0,0,7,248,112,0,0,0,0,0,31,248,112,0,0,0,0,0,126,28,112,0,0,0,0,0,120,28,48,0,0,0,0,0,224,60,48,0,0,0,0,0,224,252,56,0,0,0,0,0,227,252,56,0,0,0,0,0,127,206,56,0,0,0,0,0,63,14,24,0,0,0,0,0,24,14,24,0,0,0,0,0,0,6,28,0,0,0,0,0,0,7,28,0,0,0,0,0,0,7,24,0,0,0,0,0,0,7,248,0,0,0,0,0,0,3,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, - {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,143,0,0,0,0,0,0,7,3,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,6,3,0,0,0,0,0,0,7,143,0,0,0,0,0,0,3,254,0,0,0,0,0,0,1,252,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,224,0,0,0,0,0,0,63,248,0,0,0,0,0,0,120,60,0,0,0,0,0,0,112,28,0,0,0,0,0,0,224,12,0,0,0,0,0,0,224,12,0,0,0,0,0,1,192,12,0,0,0,0,0,1,206,28,0,0,0,0,0,3,142,28,0,0,0,0,0,3,156,24,0,0,0,0,0,7,24,24,0,0,0,0,0,7,56,56,0,0,0,0,0,7,48,56,0,0,0,0,0,7,48,48,0,0,0,0,0,7,56,112,0,0,0,0,0,3,56,112,0,0,0,0,0,3,56,112,0,0,0,0,0,3,56,96,0,0,0,0,0,3,152,224,0,0,0,0,0,3,152,224,0,0,0,0,0,3,184,224,0,0,0,0,0,1,248,224,0,0,0,0,0,1,240,224,0,0,0,0,0,0,192,224,0,0,0,0,0,0,224,224,0,0,0,0,0,0,224,224,0,0,0,0,0,0,96,224,0,0,0,0,0,0,112,224,0,0,0,0,0,7,240,224,0,0,0,0,0,63,240,224,0,0,0,0,0,126,48,224,0,0,0,0,0,240,56,224,0,0,0,0,0,192,56,96,0,0,0,0,0,192,248,96,0,0,0,0,0,231,248,96,0,0,0,0,0,127,248,96,0,0,0,0,0,126,24,96,0,0,0,0,0,0,24,96,0,0,0,0,0,0,24,112,0,0,0,0,0,0,24,112,0,0,0,0,0,0,28,112,0,0,0,0,0,0,28,224,0,0,0,0,0,0,31,224,0,0,0,0,0,0,7,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, - {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,7,0,0,0,0,0,0,6,3,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,7,3,0,0,0,0,0,0,7,223,0,0,0,0,0,0,3,254,0,0,0,0,0,0,1,252,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,224,0,0,0,0,0,0,63,248,0,0,0,0,0,0,120,56,0,0,0,0,0,0,112,28,0,0,0,0,0,0,224,12,0,0,0,0,0,0,224,12,0,0,0,0,0,0,192,12,0,0,0,0,0,1,198,28,0,0,0,0,0,1,206,28,0,0,0,0,0,1,140,24,0,0,0,0,0,3,156,24,0,0,0,0,0,3,156,56,0,0,0,0,0,3,24,56,0,0,0,0,0,3,152,48,0,0,0,0,0,3,156,48,0,0,0,0,0,3,156,112,0,0,0,0,0,1,156,112,0,0,0,0,0,1,204,96,0,0,0,0,0,1,206,224,0,0,0,0,0,1,206,224,0,0,0,0,0,1,238,224,0,0,0,0,0,1,252,192,0,0,0,0,0,1,252,192,0,0,0,0,0,1,240,192,0,0,0,0,0,0,192,192,0,0,0,0,0,0,224,192,0,0,0,0,0,0,224,192,0,0,0,0,0,0,224,192,0,0,0,0,0,0,224,192,0,0,0,0,0,3,224,192,0,0,0,0,0,7,225,192,0,0,0,0,0,15,113,192,0,0,0,0,0,28,113,192,0,0,0,0,0,24,113,192,0,0,0,0,0,28,241,192,0,0,0,0,0,31,241,192,0,0,0,0,0,15,241,192,0,0,0,0,0,0,113,192,0,0,0,0,0,0,113,192,0,0,0,0,0,0,113,192,0,0,0,0,0,0,113,192,0,0,0,0,0,0,113,192,0,0,0,0,0,0,63,128,0,0,0,0,0,0,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, - {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,7,0,0,0,0,0,0,6,3,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,6,3,0,0,0,0,0,0,7,143,0,0,0,0,0,0,3,254,0,0,0,0,0,0,1,252,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,224,0,0,0,0,0,0,63,248,0,0,0,0,0,0,63,248,0,0,0,0,0,0,112,28,0,0,0,0,0,0,96,12,0,0,0,0,0,0,224,12,0,0,0,0,0,0,224,12,0,0,0,0,0,0,198,28,0,0,0,0,0,1,198,28,0,0,0,0,0,1,206,28,0,0,0,0,0,1,206,24,0,0,0,0,0,1,204,56,0,0,0,0,0,3,156,56,0,0,0,0,0,3,156,48,0,0,0,0,0,1,206,48,0,0,0,0,0,1,206,112,0,0,0,0,0,1,198,112,0,0,0,0,0,0,231,96,0,0,0,0,0,1,231,224,0,0,0,0,0,1,227,224,0,0,0,0,0,1,243,224,0,0,0,0,0,1,255,192,0,0,0,0,0,1,255,192,0,0,0,0,0,1,220,192,0,0,0,0,0,1,193,192,0,0,0,0,0,1,193,192,0,0,0,0,0,0,193,192,0,0,0,0,0,0,193,192,0,0,0,0,0,0,193,128,0,0,0,0,0,0,193,128,0,0,0,0,0,0,225,128,0,0,0,0,0,1,227,128,0,0,0,0,0,3,227,128,0,0,0,0,0,3,227,128,0,0,0,0,0,3,195,128,0,0,0,0,0,3,195,128,0,0,0,0,0,1,195,128,0,0,0,0,0,1,195,128,0,0,0,0,0,0,195,128,0,0,0,0,0,0,195,0,0,0,0,0,0,0,195,0,0,0,0,0,0,0,199,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,126,0,0,0,0,0,0,0,56,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, - {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,248,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,143,0,0,0,0,0,0,7,3,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,6,3,0,0,0,0,0,0,7,143,0,0,0,0,0,0,3,254,0,0,0,0,0,0,1,252,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,224,0,0,0,0,0,0,63,240,0,0,0,0,0,0,63,248,0,0,0,0,0,0,112,28,0,0,0,0,0,0,96,12,0,0,0,0,0,0,96,12,0,0,0,0,0,0,224,12,0,0,0,0,0,0,231,28,0,0,0,0,0,1,231,28,0,0,0,0,0,1,198,28,0,0,0,0,0,1,198,24,0,0,0,0,0,3,206,56,0,0,0,0,0,3,206,56,0,0,0,0,0,3,206,48,0,0,0,0,0,3,199,48,0,0,0,0,0,3,231,112,0,0,0,0,0,3,227,240,0,0,0,0,0,3,243,224,0,0,0,0,0,1,241,224,0,0,0,0,0,1,241,224,0,0,0,0,0,1,249,224,0,0,0,0,0,1,223,192,0,0,0,0,0,1,223,192,0,0,0,0,0,1,207,192,0,0,0,0,0,1,193,192,0,0,0,0,0,1,193,128,0,0,0,0,0,1,195,192,0,0,0,0,0,1,195,192,0,0,0,0,0,1,195,192,0,0,0,0,0,1,195,224,0,0,0,0,0,1,195,224,0,0,0,0,0,1,135,224,0,0,0,0,0,1,135,192,0,0,0,0,0,1,135,128,0,0,0,0,0,1,135,0,0,0,0,0,0,3,135,0,0,0,0,0,0,3,134,0,0,0,0,0,0,3,134,0,0,0,0,0,0,3,142,0,0,0,0,0,0,3,142,0,0,0,0,0,0,3,142,0,0,0,0,0,0,3,142,0,0,0,0,0,0,3,252,0,0,0,0,0,0,1,252,0,0,0,0,0,0,0,112,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, - {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,248,0,0,0,0,0,0,3,254,0,0,0,0,0,0,3,255,0,0,0,0,0,0,7,7,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,6,3,128,0,0,0,0,0,7,7,0,0,0,0,0,0,3,254,0,0,0,0,0,0,1,252,0,0,0,0,0,0,0,112,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,192,0,0,0,0,0,0,63,240,0,0,0,0,0,0,63,248,0,0,0,0,0,0,112,28,0,0,0,0,0,0,112,12,0,0,0,0,0,0,96,12,0,0,0,0,0,0,224,12,0,0,0,0,0,3,227,28,0,0,0,0,0,7,227,28,0,0,0,0,0,7,231,28,0,0,0,0,0,7,231,24,0,0,0,0,0,6,231,56,0,0,0,0,0,6,199,56,0,0,0,0,0,14,199,56,0,0,0,0,0,14,199,48,0,0,0,0,0,12,227,240,0,0,0,0,0,12,241,240,0,0,0,0,0,15,241,224,0,0,0,0,0,7,248,224,0,0,0,0,0,1,220,96,0,0,0,0,0,1,220,112,0,0,0,0,0,1,206,240,0,0,0,0,0,1,207,224,0,0,0,0,0,1,135,192,0,0,0,0,0,1,129,192,0,0,0,0,0,1,131,192,0,0,0,0,0,1,131,224,0,0,0,0,0,3,131,96,0,0,0,0,0,3,135,112,0,0,0,0,0,3,135,48,0,0,0,0,0,3,14,48,0,0,0,0,0,3,14,112,0,0,0,0,0,3,14,112,0,0,0,0,0,7,14,224,0,0,0,0,0,7,12,224,0,0,0,0,0,7,13,192,0,0,0,0,0,7,29,192,0,0,0,0,0,6,31,128,0,0,0,0,0,6,31,0,0,0,0,0,0,14,24,0,0,0,0,0,0,14,24,0,0,0,0,0,0,14,56,0,0,0,0,0,0,7,248,0,0,0,0,0,0,7,240,0,0,0,0,0,0,3,224,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, - {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,7,0,0,0,0,0,0,6,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,6,3,128,0,0,0,0,0,7,7,0,0,0,0,0,0,3,254,0,0,0,0,0,0,1,252,0,0,0,0,0,0,0,248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,192,0,0,0,0,0,0,31,240,0,0,0,0,0,0,63,248,0,0,0,0,0,0,112,28,0,0,0,0,0,0,112,28,0,0,0,0,0,1,224,12,0,0,0,0,0,3,224,12,0,0,0,0,0,7,227,12,0,0,0,0,0,15,99,28,0,0,0,0,0,14,99,28,0,0,0,0,0,12,227,24,0,0,0,0,0,28,227,56,0,0,0,0,0,28,231,56,0,0,0,0,0,24,231,184,0,0,0,0,0,57,227,240,0,0,0,0,0,57,241,240,0,0,0,0,0,57,248,240,0,0,0,0,0,63,248,112,0,0,0,0,0,31,220,56,0,0,0,0,0,15,206,56,0,0,0,0,0,1,199,56,0,0,0,0,0,1,195,248,0,0,0,0,0,1,195,240,0,0,0,0,0,1,129,224,0,0,0,0,0,1,129,224,0,0,0,0,0,1,131,224,0,0,0,0,0,1,131,240,0,0,0,0,0,3,131,112,0,0,0,0,0,3,135,56,0,0,0,0,0,3,135,24,0,0,0,0,0,3,135,24,0,0,0,0,0,3,15,56,0,0,0,0,0,7,15,56,0,0,0,0,0,7,15,56,0,0,0,0,0,7,31,56,0,0,0,0,0,6,31,56,0,0,0,0,0,14,31,48,0,0,0,0,0,14,63,112,0,0,0,0,0,12,63,240,0,0,0,0,0,28,51,224,0,0,0,0,0,28,113,192,0,0,0,0,0,28,112,0,0,0,0,0,0,31,224,0,0,0,0,0,0,15,224,0,0,0,0,0,0,7,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, - {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,7,0,0,0,0,0,0,6,3,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,7,3,0,0,0,0,0,0,3,255,0,0,0,0,0,0,3,254,0,0,0,0,0,0,0,248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,31,240,0,0,0,0,0,0,63,248,0,0,0,0,0,0,120,28,0,0,0,0,0,0,240,28,0,0,0,0,0,3,224,12,0,0,0,0,0,7,224,12,0,0,0,0,0,15,99,12,0,0,0,0,0,28,99,28,0,0,0,0,0,28,99,28,0,0,0,0,0,24,227,24,0,0,0,0,0,56,227,24,0,0,0,0,0,57,227,184,0,0,0,0,0,49,227,184,0,0,0,0,0,113,241,240,0,0,0,0,0,115,240,240,0,0,0,0,0,99,248,120,0,0,0,0,0,127,222,60,0,0,0,0,0,63,207,28,0,0,0,0,0,29,199,142,0,0,0,0,0,1,195,206,0,0,0,0,0,1,193,252,0,0,0,0,0,1,193,248,0,0,0,0,0,1,129,240,0,0,0,0,0,1,129,224,0,0,0,0,0,1,131,240,0,0,0,0,0,1,131,184,0,0,0,0,0,3,131,56,0,0,0,0,0,3,135,28,0,0,0,0,0,3,135,12,0,0,0,0,0,3,135,140,0,0,0,0,0,3,15,140,0,0,0,0,0,7,15,140,0,0,0,0,0,7,15,142,0,0,0,0,0,14,29,142,0,0,0,0,0,14,25,142,0,0,0,0,0,28,57,142,0,0,0,0,0,28,57,206,0,0,0,0,0,24,113,206,0,0,0,0,0,56,113,254,0,0,0,0,0,48,224,252,0,0,0,0,0,48,224,120,0,0,0,0,0,57,192,0,0,0,0,0,0,31,128,0,0,0,0,0,0,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, - {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,7,0,0,0,0,0,0,6,3,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,6,3,0,0,0,0,0,0,7,143,0,0,0,0,0,0,3,254,0,0,0,0,0,0,1,252,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,31,240,0,0,0,0,0,0,63,248,0,0,0,0,0,0,120,60,0,0,0,0,0,1,240,28,0,0,0,0,0,3,224,12,0,0,0,0,0,15,224,12,0,0,0,0,0,31,115,12,0,0,0,0,0,28,115,156,0,0,0,0,0,24,115,156,0,0,0,0,0,56,243,152,0,0,0,0,0,57,243,152,0,0,0,0,0,113,243,184,0,0,0,0,0,113,241,248,0,0,0,0,0,115,240,240,0,0,0,0,0,99,248,120,0,0,0,0,0,227,252,60,0,0,0,0,0,127,222,30,0,0,0,0,0,127,207,135,0,0,0,0,0,61,195,199,0,0,0,0,0,1,193,231,0,0,0,0,0,1,192,254,0,0,0,0,0,1,193,254,0,0,0,0,0,1,129,240,0,0,0,0,0,1,129,240,0,0,0,0,0,1,131,184,0,0,0,0,0,1,131,188,0,0,0,0,0,3,131,28,0,0,0,0,0,3,135,14,0,0,0,0,0,3,135,14,0,0,0,0,0,3,135,134,0,0,0,0,0,3,143,134,0,0,0,0,0,7,15,135,0,0,0,0,0,7,13,199,0,0,0,0,0,14,29,195,0,0,0,0,0,28,56,195,0,0,0,0,0,28,56,195,128,0,0,0,0,56,112,227,128,0,0,0,0,120,112,227,128,0,0,0,0,112,224,99,128,0,0,0,0,96,192,119,128,0,0,0,0,97,192,127,0,0,0,0,0,115,128,30,0,0,0,0,0,127,128,0,0,0,0,0,0,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, - {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,7,0,0,0,0,0,0,6,3,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,6,3,0,0,0,0,0,0,7,143,0,0,0,0,0,0,3,254,0,0,0,0,0,0,1,252,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,224,0,0,0,0,0,0,63,248,0,0,0,0,0,0,120,60,0,0,0,0,0,0,240,28,0,0,0,0,0,3,224,12,0,0,0,0,0,7,224,12,0,0,0,0,0,15,115,12,0,0,0,0,0,30,115,156,0,0,0,0,0,28,115,156,0,0,0,0,0,24,243,152,0,0,0,0,0,56,243,152,0,0,0,0,0,49,241,184,0,0,0,0,0,113,241,248,0,0,0,0,0,115,240,240,0,0,0,0,0,99,248,124,0,0,0,0,0,227,252,30,0,0,0,0,0,127,223,15,0,0,0,0,0,127,199,135,0,0,0,0,0,61,195,227,128,0,0,0,0,1,192,247,0,0,0,0,0,1,192,255,0,0,0,0,0,1,193,254,0,0,0,0,0,1,129,240,0,0,0,0,0,1,129,240,0,0,0,0,0,1,131,184,0,0,0,0,0,1,131,156,0,0,0,0,0,3,131,14,0,0,0,0,0,3,135,14,0,0,0,0,0,3,135,134,0,0,0,0,0,3,135,135,0,0,0,0,0,3,143,135,0,0,0,0,0,7,15,195,0,0,0,0,0,15,13,195,128,0,0,0,0,14,28,195,128,0,0,0,0,28,28,225,128,0,0,0,0,60,56,225,192,0,0,0,0,56,112,97,192,0,0,0,0,112,112,113,192,0,0,0,0,240,224,112,192,0,0,0,0,225,192,49,192,0,0,0,0,225,192,63,192,0,0,0,0,227,128,31,128,0,0,0,0,127,0,14,0,0,0,0,0,62,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, - {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,143,0,0,0,0,0,0,7,3,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,6,3,0,0,0,0,0,0,7,143,0,0,0,0,0,0,3,254,0,0,0,0,0,0,1,252,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,31,240,0,0,0,0,0,0,63,248,0,0,0,0,0,0,120,60,0,0,0,0,0,0,240,28,0,0,0,0,0,1,224,12,0,0,0,0,0,3,224,12,0,0,0,0,0,7,243,12,0,0,0,0,0,15,115,156,0,0,0,0,0,14,115,156,0,0,0,0,0,28,115,152,0,0,0,0,0,28,115,152,0,0,0,0,0,56,243,184,0,0,0,0,0,113,241,248,0,0,0,0,0,113,240,240,0,0,0,0,0,99,248,120,0,0,0,0,0,231,252,60,0,0,0,0,0,127,223,14,0,0,0,0,0,127,199,134,0,0,0,0,0,29,195,199,0,0,0,0,0,1,193,230,0,0,0,0,0,1,192,254,0,0,0,0,0,1,192,252,0,0,0,0,0,1,129,240,0,0,0,0,0,1,129,240,0,0,0,0,0,1,129,184,0,0,0,0,0,1,131,188,0,0,0,0,0,1,131,156,0,0,0,0,0,1,131,14,0,0,0,0,0,3,135,14,0,0,0,0,0,3,135,134,0,0,0,0,0,3,135,135,0,0,0,0,0,7,15,135,0,0,0,0,0,7,15,195,0,0,0,0,0,14,29,195,128,0,0,0,0,28,28,195,128,0,0,0,0,60,56,225,128,0,0,0,0,56,112,225,192,0,0,0,0,112,112,97,192,0,0,0,0,112,224,113,192,0,0,0,0,225,192,113,192,0,0,0,0,227,192,63,128,0,0,0,0,119,128,63,128,0,0,0,0,127,0,14,0,0,0,0,0,62,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, - {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,7,0,0,0,0,0,0,6,3,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,6,3,0,0,0,0,0,0,7,143,0,0,0,0,0,0,3,254,0,0,0,0,0,0,1,252,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,31,240,0,0,0,0,0,0,63,248,0,0,0,0,0,0,120,28,0,0,0,0,0,0,112,28,0,0,0,0,0,0,96,12,0,0,0,0,0,0,96,12,0,0,0,0,0,0,99,12,0,0,0,0,0,0,99,28,0,0,0,0,0,0,227,28,0,0,0,0,0,1,227,24,0,0,0,0,0,1,243,184,0,0,0,0,0,3,243,184,0,0,0,0,0,3,241,248,0,0,0,0,0,7,240,240,0,0,0,0,0,7,248,112,0,0,0,0,0,14,252,56,0,0,0,0,0,14,206,28,0,0,0,0,0,7,199,28,0,0,0,0,0,7,195,156,0,0,0,0,0,3,193,252,0,0,0,0,0,1,192,248,0,0,0,0,0,1,192,240,0,0,0,0,0,1,193,224,0,0,0,0,0,1,193,240,0,0,0,0,0,1,129,248,0,0,0,0,0,1,131,184,0,0,0,0,0,1,131,156,0,0,0,0,0,1,131,156,0,0,0,0,0,1,131,12,0,0,0,0,0,1,135,14,0,0,0,0,0,3,135,14,0,0,0,0,0,7,135,134,0,0,0,0,0,7,15,135,0,0,0,0,0,14,31,135,0,0,0,0,0,28,29,195,0,0,0,0,0,28,57,195,128,0,0,0,0,56,112,195,128,0,0,0,0,112,240,225,128,0,0,0,0,112,224,225,128,0,0,0,0,113,192,97,128,0,0,0,0,123,128,127,128,0,0,0,0,63,128,63,0,0,0,0,0,31,0,30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, - {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,7,0,0,0,0,0,0,6,3,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,6,3,0,0,0,0,0,0,7,143,0,0,0,0,0,0,3,254,0,0,0,0,0,0,1,252,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,192,0,0,0,0,0,0,31,240,0,0,0,0,0,0,63,248,0,0,0,0,0,0,112,28,0,0,0,0,0,0,112,12,0,0,0,0,0,0,96,12,0,0,0,0,0,0,96,12,0,0,0,0,0,0,99,12,0,0,0,0,0,0,99,28,0,0,0,0,0,0,99,28,0,0,0,0,0,0,99,24,0,0,0,0,0,0,99,56,0,0,0,0,0,0,227,184,0,0,0,0,0,0,99,248,0,0,0,0,0,0,241,240,0,0,0,0,0,0,248,240,0,0,0,0,0,0,252,112,0,0,0,0,0,0,220,112,0,0,0,0,0,1,206,48,0,0,0,0,0,1,199,48,0,0,0,0,0,1,199,240,0,0,0,0,0,1,195,224,0,0,0,0,0,1,193,224,0,0,0,0,0,1,193,224,0,0,0,0,0,1,193,224,0,0,0,0,0,1,193,240,0,0,0,0,0,1,193,240,0,0,0,0,0,1,193,184,0,0,0,0,0,1,195,152,0,0,0,0,0,1,195,156,0,0,0,0,0,1,195,156,0,0,0,0,0,3,195,140,0,0,0,0,0,3,135,14,0,0,0,0,0,7,15,14,0,0,0,0,0,14,15,6,0,0,0,0,0,28,31,135,0,0,0,0,0,60,57,135,0,0,0,0,0,56,113,195,0,0,0,0,0,48,241,195,128,0,0,0,0,49,224,195,128,0,0,0,0,63,192,227,128,0,0,0,0,31,128,227,128,0,0,0,0,15,0,127,0,0,0,0,0,0,0,62,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, - {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,7,0,0,0,0,0,0,6,3,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,7,3,0,0,0,0,0,0,3,255,0,0,0,0,0,0,3,254,0,0,0,0,0,0,0,248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,224,0,0,0,0,0,0,63,240,0,0,0,0,0,0,63,248,0,0,0,0,0,0,112,28,0,0,0,0,0,0,96,12,0,0,0,0,0,0,96,12,0,0,0,0,0,0,96,12,0,0,0,0,0,0,227,28,0,0,0,0,0,0,231,28,0,0,0,0,0,0,231,28,0,0,0,0,0,0,231,24,0,0,0,0,0,0,198,56,0,0,0,0,0,0,199,56,0,0,0,0,0,0,231,56,0,0,0,0,0,0,227,176,0,0,0,0,0,0,241,240,0,0,0,0,0,0,241,240,0,0,0,0,0,0,248,240,0,0,0,0,0,1,216,224,0,0,0,0,0,1,220,224,0,0,0,0,0,1,207,224,0,0,0,0,0,1,207,224,0,0,0,0,0,1,195,224,0,0,0,0,0,1,192,224,0,0,0,0,0,1,192,224,0,0,0,0,0,1,193,224,0,0,0,0,0,0,193,240,0,0,0,0,0,0,193,240,0,0,0,0,0,0,193,248,0,0,0,0,0,0,225,248,0,0,0,0,0,1,225,152,0,0,0,0,0,1,195,156,0,0,0,0,0,3,135,156,0,0,0,0,0,7,15,12,0,0,0,0,0,14,15,14,0,0,0,0,0,28,31,14,0,0,0,0,0,56,59,6,0,0,0,0,0,56,115,135,0,0,0,0,0,56,227,135,0,0,0,0,0,31,193,131,0,0,0,0,0,15,129,195,0,0,0,0,0,7,0,199,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,126,0,0,0,0,0,0,0,56,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, - {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,248,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,7,0,0,0,0,0,0,6,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,6,3,128,0,0,0,0,0,7,7,0,0,0,0,0,0,3,254,0,0,0,0,0,0,1,252,0,0,0,0,0,0,0,248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,224,0,0,0,0,0,0,63,248,0,0,0,0,0,0,63,248,0,0,0,0,0,0,112,28,0,0,0,0,0,0,96,12,0,0,0,0,0,0,224,12,0,0,0,0,0,0,226,12,0,0,0,0,0,0,231,28,0,0,0,0,0,0,199,28,0,0,0,0,0,1,198,28,0,0,0,0,0,1,206,28,0,0,0,0,0,1,206,60,0,0,0,0,0,1,142,60,0,0,0,0,0,1,206,60,0,0,0,0,0,0,199,60,0,0,0,0,0,0,231,124,0,0,0,0,0,0,227,124,0,0,0,0,0,0,227,236,0,0,0,0,0,1,243,236,0,0,0,0,0,1,243,236,0,0,0,0,0,1,255,236,0,0,0,0,0,1,255,252,0,0,0,0,0,1,206,252,0,0,0,0,0,1,192,224,0,0,0,0,0,0,192,224,0,0,0,0,0,0,192,224,0,0,0,0,0,0,224,224,0,0,0,0,0,0,224,224,0,0,0,0,0,0,96,224,0,0,0,0,0,0,112,240,0,0,0,0,0,0,112,240,0,0,0,0,0,0,225,240,0,0,0,0,0,0,227,240,0,0,0,0,0,1,195,176,0,0,0,0,0,1,135,48,0,0,0,0,0,3,142,56,0,0,0,0,0,7,14,56,0,0,0,0,0,7,30,56,0,0,0,0,0,7,62,24,0,0,0,0,0,7,254,24,0,0,0,0,0,3,246,24,0,0,0,0,0,1,199,56,0,0,0,0,0,0,3,248,0,0,0,0,0,0,3,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, - {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,248,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,143,0,0,0,0,0,0,7,3,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,6,3,0,0,0,0,0,0,7,143,0,0,0,0,0,0,3,254,0,0,0,0,0,0,1,252,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,224,0,0,0,0,0,0,63,248,0,0,0,0,0,0,120,60,0,0,0,0,0,0,112,28,0,0,0,0,0,0,96,12,0,0,0,0,0,0,224,12,0,0,0,0,0,0,226,12,0,0,0,0,0,1,199,28,0,0,0,0,0,1,198,30,0,0,0,0,0,1,142,30,0,0,0,0,0,3,142,30,0,0,0,0,0,3,156,62,0,0,0,0,0,3,156,62,0,0,0,0,0,3,140,62,0,0,0,0,0,1,140,54,0,0,0,0,0,1,142,118,0,0,0,0,0,1,206,119,0,0,0,0,0,1,198,115,0,0,0,0,0,1,198,251,0,0,0,0,0,1,199,251,0,0,0,0,0,1,254,255,0,0,0,0,0,1,254,255,0,0,0,0,0,1,252,224,0,0,0,0,0,0,192,224,0,0,0,0,0,0,224,224,0,0,0,0,0,0,224,96,0,0,0,0,0,0,240,96,0,0,0,0,0,0,112,96,0,0,0,0,0,0,120,112,0,0,0,0,0,0,120,112,0,0,0,0,0,0,56,112,0,0,0,0,0,0,56,224,0,0,0,0,0,0,56,224,0,0,0,0,0,0,113,192,0,0,0,0,0,0,113,192,0,0,0,0,0,0,115,192,0,0,0,0,0,0,227,192,0,0,0,0,0,0,227,192,0,0,0,0,0,0,199,192,0,0,0,0,0,0,254,192,0,0,0,0,0,0,254,192,0,0,0,0,0,0,61,192,0,0,0,0,0,0,31,192,0,0,0,0,0,0,15,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, - {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,7,0,0,0,0,0,0,6,3,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,7,3,0,0,0,0,0,0,3,223,0,0,0,0,0,0,3,254,0,0,0,0,0,0,0,248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,224,0,0,0,0,0,0,63,248,0,0,0,0,0,0,120,60,0,0,0,0,0,0,112,28,0,0,0,0,0,0,224,12,0,0,0,0,0,0,224,12,0,0,0,0,0,1,192,12,0,0,0,0,0,1,198,30,0,0,0,0,0,3,142,30,0,0,0,0,0,3,142,30,0,0,0,0,0,7,28,30,0,0,0,0,0,7,28,62,0,0,0,0,0,7,56,63,0,0,0,0,0,7,24,55,0,0,0,0,0,7,24,119,0,0,0,0,0,7,24,115,128,0,0,0,0,3,28,121,192,0,0,0,0,3,28,124,192,0,0,0,0,3,28,254,192,0,0,0,0,3,156,239,192,0,0,0,0,3,156,231,192,0,0,0,0,1,252,225,128,0,0,0,0,1,248,96,0,0,0,0,0,0,192,96,0,0,0,0,0,0,224,112,0,0,0,0,0,0,240,112,0,0,0,0,0,0,240,48,0,0,0,0,0,0,248,48,0,0,0,0,0,0,252,56,0,0,0,0,0,0,124,56,0,0,0,0,0,0,110,56,0,0,0,0,0,0,108,48,0,0,0,0,0,0,108,112,0,0,0,0,0,0,252,112,0,0,0,0,0,0,252,112,0,0,0,0,0,0,252,96,0,0,0,0,0,0,220,224,0,0,0,0,0,0,216,224,0,0,0,0,0,0,216,192,0,0,0,0,0,0,220,192,0,0,0,0,0,0,223,192,0,0,0,0,0,0,255,128,0,0,0,0,0,0,254,0,0,0,0,0,0,0,124,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, - {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,7,0,0,0,0,0,0,6,3,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,7,3,0,0,0,0,0,0,3,223,0,0,0,0,0,0,3,254,0,0,0,0,0,0,0,248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,224,0,0,0,0,0,0,63,248,0,0,0,0,0,0,120,60,0,0,0,0,0,0,112,28,0,0,0,0,0,0,224,12,0,0,0,0,0,1,192,12,0,0,0,0,0,1,192,14,0,0,0,0,0,3,140,30,0,0,0,0,0,7,14,30,0,0,0,0,0,7,28,31,0,0,0,0,0,14,56,31,0,0,0,0,0,14,120,63,0,0,0,0,0,14,112,59,0,0,0,0,0,14,112,59,192,0,0,0,0,14,112,57,224,0,0,0,0,14,112,120,240,0,0,0,0,12,112,124,120,0,0,0,0,12,112,126,56,0,0,0,0,12,96,239,184,0,0,0,0,12,96,227,248,0,0,0,0,14,224,224,240,0,0,0,0,7,224,224,0,0,0,0,0,7,192,96,0,0,0,0,0,1,224,112,0,0,0,0,0,1,224,48,0,0,0,0,0,1,240,56,0,0,0,0,0,0,248,56,0,0,0,0,0,0,252,24,0,0,0,0,0,0,222,28,0,0,0,0,0,0,206,28,0,0,0,0,0,0,199,28,0,0,0,0,0,0,199,28,0,0,0,0,0,1,199,28,0,0,0,0,0,1,199,28,0,0,0,0,0,3,143,24,0,0,0,0,0,3,143,24,0,0,0,0,0,3,15,24,0,0,0,0,0,7,31,24,0,0,0,0,0,7,31,56,0,0,0,0,0,6,31,56,0,0,0,0,0,6,63,248,0,0,0,0,0,7,123,240,0,0,0,0,0,7,241,224,0,0,0,0,0,3,224,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, - {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,248,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,143,0,0,0,0,0,0,7,3,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,6,3,0,0,0,0,0,0,7,143,0,0,0,0,0,0,3,254,0,0,0,0,0,0,1,252,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,224,0,0,0,0,0,0,63,240,0,0,0,0,0,0,127,248,0,0,0,0,0,0,240,28,0,0,0,0,0,1,224,12,0,0,0,0,0,1,192,14,0,0,0,0,0,3,128,14,0,0,0,0,0,7,8,30,0,0,0,0,0,15,28,31,0,0,0,0,0,14,56,31,0,0,0,0,0,28,120,27,0,0,0,0,0,24,240,59,128,0,0,0,0,24,224,59,192,0,0,0,0,56,224,57,240,0,0,0,0,57,224,56,124,0,0,0,0,57,224,120,30,0,0,0,0,57,224,124,14,0,0,0,0,49,192,127,134,0,0,0,0,49,192,111,238,0,0,0,0,115,192,227,254,0,0,0,0,59,192,224,124,0,0,0,0,63,192,224,0,0,0,0,0,31,192,112,0,0,0,0,0,1,224,112,0,0,0,0,0,1,224,56,0,0,0,0,0,1,240,56,0,0,0,0,0,1,248,28,0,0,0,0,0,1,156,28,0,0,0,0,0,1,142,14,0,0,0,0,0,1,143,14,0,0,0,0,0,1,143,142,0,0,0,0,0,3,143,142,0,0,0,0,0,3,143,134,0,0,0,0,0,7,15,134,0,0,0,0,0,7,29,134,0,0,0,0,0,14,25,134,0,0,0,0,0,14,57,134,0,0,0,0,0,28,57,198,0,0,0,0,0,28,113,198,0,0,0,0,0,56,113,198,0,0,0,0,0,56,225,198,0,0,0,0,0,56,224,254,0,0,0,0,0,31,192,252,0,0,0,0,0,15,128,56,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, - {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,248,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,7,0,0,0,0,0,0,6,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,6,3,128,0,0,0,0,0,7,7,0,0,0,0,0,0,3,254,0,0,0,0,0,0,1,252,0,0,0,0,0,0,0,248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,192,0,0,0,0,0,0,63,240,0,0,0,0,0,0,127,248,0,0,0,0,0,0,240,28,0,0,0,0,0,1,224,12,0,0,0,0,0,3,192,14,0,0,0,0,0,7,128,14,0,0,0,0,0,15,0,15,0,0,0,0,0,30,24,31,0,0,0,0,0,60,56,31,128,0,0,0,0,56,240,27,128,0,0,0,0,49,240,57,192,0,0,0,0,113,240,57,248,0,0,0,0,115,224,56,126,0,0,0,0,99,224,60,31,0,0,0,0,227,224,126,7,128,0,0,0,231,224,127,3,128,0,0,0,199,192,103,227,128,0,0,1,199,192,99,255,128,0,0,1,207,192,224,127,0,0,0,1,207,192,224,6,0,0,0,0,253,192,224,0,0,0,0,0,249,192,112,0,0,0,0,0,1,224,120,0,0,0,0,0,1,240,56,0,0,0,0,0,1,248,28,0,0,0,0,0,3,188,28,0,0,0,0,0,3,158,14,0,0,0,0,0,3,143,15,0,0,0,0,0,3,143,135,0,0,0,0,0,3,143,199,0,0,0,0,0,7,13,195,0,0,0,0,0,7,29,195,0,0,0,0,0,14,28,195,0,0,0,0,0,28,56,195,128,0,0,0,0,28,56,227,128,0,0,0,0,56,112,227,128,0,0,0,0,112,96,227,128,0,0,0,0,112,224,97,128,0,0,0,0,225,192,97,128,0,0,0,0,225,192,97,128,0,0,0,0,227,128,115,128,0,0,0,0,127,0,63,128,0,0,0,0,127,0,63,0,0,0,0,0,28,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, - {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,252,0,0,0,0,0,0,3,254,0,0,0,0,0,0,7,7,0,0,0,0,0,0,6,3,0,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,14,3,128,0,0,0,0,0,7,3,0,0,0,0,0,0,3,223,0,0,0,0,0,0,3,254,0,0,0,0,0,0,0,248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,63,240,0,0,0,0,0,0,127,248,0,0,0,0,0,0,240,28,0,0,0,0,0,1,224,28,0,0,0,0,0,7,192,14,0,0,0,0,0,15,0,15,0,0,0,0,0,30,0,15,0,0,0,0,0,60,16,31,128,0,0,0,0,120,112,31,128,0,0,0,0,112,240,25,192,0,0,0,0,97,240,24,240,0,0,0,0,227,240,56,254,0,0,0,0,199,96,60,63,128,0,0,1,199,224,62,7,192,0,0,1,206,224,127,0,192,0,0,1,142,224,119,224,192,0,0,3,140,192,115,255,192,0,0,3,157,192,96,127,192,0,0,3,29,192,224,15,128,0,0,3,57,192,224,0,0,0,0,3,241,192,224,0,0,0,0,3,241,192,112,0,0,0,0,0,129,224,120,0,0,0,0,0,3,240,56,0,0,0,0,0,3,248,28,0,0,0,0,0,3,188,14,0,0,0,0,0,3,158,14,0,0,0,0,0,3,15,7,0,0,0,0,0,3,15,131,0,0,0,0,0,7,31,195,128,0,0,0,0,7,29,227,128,0,0,0,0,14,28,225,128,0,0,0,0,28,24,225,128,0,0,0,0,56,56,97,192,0,0,0,0,56,112,97,192,0,0,0,0,112,112,113,192,0,0,0,0,224,224,112,192,0,0,0,1,225,192,112,192,0,0,0,1,195,192,48,224,0,0,0,1,131,128,56,224,0,0,0,1,135,0,56,224,0,0,0,1,206,0,61,224,0,0,0,0,254,0,31,192,0,0,0,0,124,0,15,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} -}; \ No newline at end of file diff --git a/lib/animations/animations.h b/lib/animations/animations.h deleted file mode 100644 index 628829b..0000000 --- a/lib/animations/animations.h +++ /dev/null @@ -1,13 +0,0 @@ -#include - -#pragma once - -extern const byte animacja1[][512]; -extern int animacja1Width; -extern int animacja1Height; -extern int animacja1FrameCount; - -extern const byte animacja2[][512]; -extern int animacja2Width; -extern int animacja2Height; -extern int animacja2FrameCount; diff --git a/lib/buzzer/buzzer.cpp b/lib/buzzer/buzzer.cpp deleted file mode 100644 index 089f814..0000000 --- a/lib/buzzer/buzzer.cpp +++ /dev/null @@ -1,31 +0,0 @@ -#include "buzzer.h" -#include "settings.h" -#include - -#define BUZZER_CHANNEL 3 -#define BUZZER_RESOLUTION 8 -#define BUZZER_FREQ 2000 - -BUZZER::BUZZER() {} - -void BUZZER::init() { - ledcSetup(BUZZER_CHANNEL, BUZZER_FREQ, BUZZER_RESOLUTION); - ledcAttachPin(BUZZER_PIN, BUZZER_CHANNEL); -} - -void BUZZER::playTone(uint16_t frequency, uint32_t duration) { - ledcWriteTone(BUZZER_CHANNEL, frequency); - if (duration > 0) { - delay(duration); - stop(); - } -} - -void BUZZER::playMelody(const uint16_t melody[][2], size_t length) { - for (size_t i = 0; i < length; i++) { - playTone(melody[i][0], melody[i][1]); - delay(50); - } -} - -void BUZZER::stop() { ledcWriteTone(BUZZER_CHANNEL, 0); } diff --git a/lib/buzzer/buzzer.h b/lib/buzzer/buzzer.h deleted file mode 100644 index af2ae9d..0000000 --- a/lib/buzzer/buzzer.h +++ /dev/null @@ -1,15 +0,0 @@ -#include -#include "settings.h" - -#pragma once - -class BUZZER -{ -public: - BUZZER(); - - void init(); - void playTone(uint16_t frequency, uint32_t duration = 0); - void stop(); - void playMelody(const uint16_t melody[][2], size_t length); -}; diff --git a/lib/melodies/melodies.cpp b/lib/melodies/melodies.cpp deleted file mode 100644 index 68e904e..0000000 --- a/lib/melodies/melodies.cpp +++ /dev/null @@ -1,60 +0,0 @@ -#include -#include "melodies.h" - -const uint16_t melody[][2] = { - {262, 300}, // C4, - {294, 300}, // D4, - {330, 300}, // E4, - {349, 300}, // F4, - {392, 300}, // G4, - {440, 300}, // A4, - {494, 300}, // B4, - {523, 300} // C5, -}; - - -const uint16_t surprise[][2] = { - {523, 300}, // C5 - {587, 300}, // D5 - {659, 300}, // E5 - {698, 300}, // F5 - {784, 300}, // G5 - {880, 300}, // A5 - {987, 300}, // B5 - {1047, 300} // C6 -}; - -const uint16_t alaarm[][2] = { - {880, 100}, // A5 - {987, 100}, // B5 - {1047, 100}, // C6 - {880, 100}, // A5 - {987, 100}, // B5 - {1047, 100}, // C6 - {880, 100}, // A5 - {987, 100}, // B5 - {1047, 100} // C6 -}; - -const uint16_t anger[][2] = { - {440, 100}, // A4 - {523, 100}, // C5 - {587, 100}, // D5 - {659, 100}, // E5 - {698, 100}, // F5 - {784, 100}, // G5 - {880, 100}, // A5 - {987, 100}, // B5 - {1047, 100} // C6 -}; - -const uint16_t happy[][2] = { - {262, 300}, // C4 - {294, 300}, // D4 - {330, 300}, // E4 - {349, 300}, // F4 - {392, 300}, // G4 - {440, 300}, // A4 - {494, 300}, // B4 - {523, 300} // C5 -}; diff --git a/lib/melodies/melodies.h b/lib/melodies/melodies.h deleted file mode 100644 index a93877d..0000000 --- a/lib/melodies/melodies.h +++ /dev/null @@ -1,10 +0,0 @@ -#include - -#pragma once - -const uint16_t happy[][2]; -const uint16_t anger[][2]; -const uint16_t alaarm[][2]; -const uint16_t surprise[][2]; - - diff --git a/lib/motors/motors.cpp b/lib/motors/motors.cpp deleted file mode 100644 index ba9f828..0000000 --- a/lib/motors/motors.cpp +++ /dev/null @@ -1,146 +0,0 @@ -#include -#include "settings.h" -#include "motors.h" - -#define LEFT_CHANNEL 4 -#define RIGHT_CHANNEL 5 - -#define MOTOR_FREQ 5000 -#define MOTOR_RES 10 - -int MOTORS::scaleSpeed(int speed) -{ - return map(speed, 0, 100, 0, (1 << MOTOR_RES) - 1); -} - -MOTORS::MOTORS() -{ -} - -void MOTORS::stop() -{ - ledcWrite(LEFT_CHANNEL, 0); - ledcWrite(RIGHT_CHANNEL, 0); -} - -void MOTORS::leftStop() -{ - ledcWrite(LEFT_CHANNEL, 0); -} - -void MOTORS::rightStop() -{ - ledcWrite(RIGHT_CHANNEL, 0); -} - -void MOTORS::init() -{ - ledcSetup(RIGHT_CHANNEL, MOTOR_FREQ, MOTOR_RES); - ledcAttachPin(EN34, RIGHT_CHANNEL); - - ledcSetup(LEFT_CHANNEL, MOTOR_FREQ, MOTOR_RES); - ledcAttachPin(EN12, LEFT_CHANNEL); - - pinMode(IN1, OUTPUT); - pinMode(IN2, OUTPUT); - pinMode(IN3, OUTPUT); - pinMode(IN4, OUTPUT); -} - -void MOTORS::leftForward(int speed, int duration) -{ - digitalWrite(IN1, HIGH); - digitalWrite(IN2, LOW); - ledcWrite(LEFT_CHANNEL, scaleSpeed(speed)); - - if (duration > 0) - { - delay(duration); - stop(); - } -} - -void MOTORS::leftBackward(int speed, int duration) -{ - digitalWrite(IN1, LOW); - digitalWrite(IN2, HIGH); - ledcWrite(LEFT_CHANNEL, scaleSpeed(speed)); - - if (duration > 0) - { - delay(duration); - stop(); - } -} - -void MOTORS::rightForward(int speed, int duration) -{ - digitalWrite(IN3, HIGH); - digitalWrite(IN4, LOW); - ledcWrite(RIGHT_CHANNEL, scaleSpeed(speed)); - ledcWrite(LEFT_CHANNEL, 0); - - if (duration > 0) - { - delay(duration); - stop(); - } -} - -void MOTORS::rightBackward(int speed, int duration) -{ - digitalWrite(IN3, LOW); - digitalWrite(IN4, HIGH); - ledcWrite(RIGHT_CHANNEL, scaleSpeed(speed)); - ledcWrite(LEFT_CHANNEL, 0); - - if (duration > 0) - { - delay(duration); - stop(); - } -} - -void MOTORS::forward(int speed, int duration) -{ - rightForward(speed); - leftForward(speed); - if (duration > 0) - { - delay(duration); - stop(); - } -} - -void MOTORS::backward(int speed, int duration) -{ - rightBackward(speed); - leftBackward(speed); - if (duration > 0) - { - delay(duration); - stop(); - } -} - -void MOTORS::rightTurn(int speed, int duration) -{ - rightForward(speed); - leftBackward(speed); - if (duration > 0) - { - delay(duration); - stop(); - } -} - -void MOTORS::leftTurn(int speed, int duration) -{ - rightBackward(speed); - leftForward(speed); - if (duration > 0) - { - delay(duration); - stop(); - } -} \ No newline at end of file diff --git a/lib/motors/motors.h b/lib/motors/motors.h deleted file mode 100644 index b7cc7f1..0000000 --- a/lib/motors/motors.h +++ /dev/null @@ -1,29 +0,0 @@ -#include -#include "settings.h" - -#pragma once - -class MOTORS -{ -public: - MOTORS(); - void init(); - - void forward(int speed, int duration = 0); - void backward(int speed, int duration = 0); - - void leftForward(int speed, int duration = 0); - void leftBackward(int speed, int duration = 0); - void rightForward(int speed, int duration = 0); - void rightBackward(int speed, int duration = 0); - - void leftTurn(int speed, int duration = 0); - void rightTurn(int speed, int duration = 0); - - void leftStop(); - void rightStop(); - void stop(); - -private: - int scaleSpeed(int speed); -}; \ No newline at end of file diff --git a/lib/oled/oled.cpp b/lib/oled/oled.cpp deleted file mode 100644 index 2054b8f..0000000 --- a/lib/oled/oled.cpp +++ /dev/null @@ -1,58 +0,0 @@ -#include -#include -#include -#include -#include "settings.h" -#include "oled.h" - -OLED::OLED() - : display(OLED_WIDTH, OLED_HEIGHT, &Wire, -1) {} - -void OLED::init() -{ - Wire.begin(SDA_PIN, SCL_PIN); - display.begin(SSD1306_SWITCHCAPVCC, OLED_ADDR); - display.clearDisplay(); - display.setTextSize(1); - display.setTextColor(SSD1306_WHITE); -} - -void OLED::showMessage(const String &msg, int size, int x, int y) -{ - display.clearDisplay(); - display.setCursor(x, y); - display.setTextSize(size); - display.setTextColor(SSD1306_WHITE); - display.println(msg); - display.display(); -} - -void OLED::drawFullBitmap(const uint8_t *bitmap) -{ - display.clearDisplay(); - display.drawBitmap(0, 0, bitmap, OLED_WIDTH, OLED_HEIGHT, SSD1306_WHITE); - display.display(); -} - -void OLED::showAnimation(const byte *frames, int frameCount, int frameWidth, int frameHeight, int frameDelay) -{ - int x = 64 - (frameWidth / 2); - int y = 32 - (frameHeight / 2); - - for (int i = 0; i < frameCount; i++) - { - display.clearDisplay(); - display.drawBitmap( - x, y, - frames + i * (frameWidth * frameHeight / 8), - frameWidth, frameHeight, 1); - display.display(); - delay(frameDelay); - } -} - -void OLED::clear() -{ - display.clearDisplay(); - display.display(); -} diff --git a/lib/oled/oled.h b/lib/oled/oled.h deleted file mode 100644 index 2d5ff14..0000000 --- a/lib/oled/oled.h +++ /dev/null @@ -1,18 +0,0 @@ -#pragma once -#include -#include "settings.h" - - -class OLED { -public: - OLED(); - - void init(); - void showMessage(const String& msg,int size = 1 ,int x = 0, int y = 0); - void drawFullBitmap(const uint8_t* bitmap); - void showAnimation(const byte* frames, int frameCount, int frameWidth, int frameHeight, int frameDelay); - void clear(); - -private: - Adafruit_SSD1306 display; -}; diff --git a/lib/rgb/rgb.cpp b/lib/rgb/rgb.cpp deleted file mode 100644 index 6dc3834..0000000 --- a/lib/rgb/rgb.cpp +++ /dev/null @@ -1,124 +0,0 @@ -#include -#include "settings.h" -#include "rgb.h" -#include - -#define RED_CHANNEL 0 -#define GREEN_CHANNEL 1 -#define BLUE_CHANNEL 2 - -#define PWM_FREQ 5000 -#define PWM_RES 10 - -int RGB::scaleColor(uint8_t val) -{ - return map(val, 0, 255, 0, (1 << PWM_RES) - 1); -} -RGB::RGB() - : currentR(0), currentG(0), currentB(0) -{ -} - -void RGB::init() -{ - ledcSetup(RED_CHANNEL, PWM_FREQ, PWM_RES); - ledcAttachPin(RED_PIN, RED_CHANNEL); - - ledcSetup(GREEN_CHANNEL, PWM_FREQ, PWM_RES); - ledcAttachPin(GREEN_PIN, GREEN_CHANNEL); - - ledcSetup(BLUE_CHANNEL, PWM_FREQ, PWM_RES); - ledcAttachPin(BLUE_PIN, BLUE_CHANNEL); -} - -void RGB::setColorRGB(uint8_t red, uint8_t green, uint8_t blue, bool saveColor = true) -{ - ledcWrite(RED_CHANNEL, scaleColor(red)); - ledcWrite(GREEN_CHANNEL, scaleColor(green)); - ledcWrite(BLUE_CHANNEL, scaleColor(blue)); - - if (saveColor) - { - currentR = red; - currentG = green; - currentB = blue; - } -} - -void RGB::fadeColor(uint8_t red, uint8_t green, uint8_t blue, int duration) -{ - int startR = currentR; - int startG = currentG; - int startB = currentB; - - for (int i = 0; i <= duration; i++) - { - uint8_t newR = startR + ((red - startR) * i) / duration; - uint8_t newG = startG + ((green - startG) * i) / duration; - uint8_t newB = startB + ((blue - startB) * i) / duration; - - setColorRGB(newR, newG, newB, false); - delay(1); - } - - setColorRGB(red, green, blue); -} - -void RGB::blink(int cycles, int interval) -{ - for (int i = 0; i < cycles; i++) - { - setColorRGB(0, 0, 0, false); - delay(interval); - setColorRGB(currentR, currentG, currentB, false); - delay(interval); - } -} - -void RGB::breathe(int cycles, int period) -{ - const int steps = 128; - int stepDelay = period / (steps * 2); - - uint8_t baseR = currentR; - uint8_t baseG = currentG; - uint8_t baseB = currentB; - - for (int c = 0; c < cycles; ++c) - { - for (int i = 0; i <= steps; ++i) - { - float scale = (float)i / steps; - setColorRGB(baseR * scale, baseG * scale, baseB * scale, false); - delay(stepDelay); - } - - for (int i = steps; i >= 0; --i) - { - float scale = (float)i / steps; - setColorRGB(baseR * scale, baseG * scale, baseB * scale, false); - delay(stepDelay); - } - } - - setColorRGB(baseR, baseG, baseB); -} - -void RGB::rainbowCycle(int duration, float speed) -{ - // speed (0.1 – slow, 1.0 – normal, 2.0 – fast) - const int steps = 256; - - for (int i = 0; i < steps; i++) - { - float angle = i * speed * 0.024; - int red = sin(angle) * 127 + 128; - int green = sin(angle + 2) * 127 + 128; - int blue = sin(angle + 4) * 127 + 128; - - setColorRGB(red, green, blue, false); - delay(duration / steps); - } - - setColorRGB(currentR, currentG, currentB, false); -} diff --git a/lib/rgb/rgb.h b/lib/rgb/rgb.h deleted file mode 100644 index 2c153f1..0000000 --- a/lib/rgb/rgb.h +++ /dev/null @@ -1,23 +0,0 @@ -#pragma once - -#include "settings.h" -#include - -class RGB -{ -public: - uint8_t currentR; - uint8_t currentG; - uint8_t currentB; - - RGB(); - void init(); - void setColorRGB(uint8_t red, uint8_t green, uint8_t blue, bool saveColor); - void fadeColor(uint8_t red, uint8_t green, uint8_t blue, int duration); - void blink(int cycles, int interval); - void breathe(int cycles, int period); - void rainbowCycle(int duration, float speed); - -private: - int scaleColor(uint8_t val); -}; diff --git a/platformio.ini b/platformio.ini deleted file mode 100644 index 69b4fc7..0000000 --- a/platformio.ini +++ /dev/null @@ -1,19 +0,0 @@ -; PlatformIO Project Configuration File -; -; Build options: build flags, source filter -; Upload options: custom upload port, speed and extra flags -; Library options: dependencies, extra library storages -; Advanced options: extra scripting -; -; Please visit documentation for the other options and examples -; https://docs.platformio.org/page/projectconf.html - -[env:adafruit_feather_esp32s2] -platform = espressif32 -board = adafruit_feather_esp32s2 -framework = arduino -lib_deps = - adafruit/Adafruit GFX Library@^1.12.0 - adafruit/Adafruit SSD1306@^2.5.13 - -build_flags = -Iinclude \ No newline at end of file diff --git a/src/main.cpp b/src/main.cpp deleted file mode 100644 index 880856f..0000000 --- a/src/main.cpp +++ /dev/null @@ -1,37 +0,0 @@ -#include "buzzer.h" -#include "motors.h" -#include "oled.h" -#include "rgb.h" -#include "settings.h" -#include - -#include "animations.h" - -RGB rgb; -BUZZER buzzer; -MOTORS motors; // speed 80 is prefered, because of higher input voltage (5V - // -> 3.7V after H-bridge), motor is rated for 3V -// in practice, speed below 70 dosn't even work. -OLED oled; - -void setup() { - rgb.init(); - buzzer.init(); - motors.init(); - oled.init(); - oled.showMessage("czesc"); - delay(3000); -} - -void loop() { - oled.showAnimation(animacja1[0], animacja1FrameCount, animacja1Width, - animacja1Height, 160); - oled.showAnimation(animacja1[0], animacja1FrameCount, animacja1Width, - animacja1Height, 80); - oled.showAnimation(animacja1[0], animacja1FrameCount, animacja1Width + 20, - animacja1Height, 50); // fajny efekt - oled.showAnimation(animacja2[0], animacja2FrameCount, animacja2Width, - animacja2Height, 160); - oled.showAnimation(animacja2[0], animacja2FrameCount, animacja2Width, - animacja2Height, 80); -} -- cgit v1.2.3