ZMa@j<9nIz7)
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
diff --git a/MicroPython_BUILD/components/internalfs_image/image_go/fonts/OCR_A_Extended_M.c b/MicroPython_BUILD/components/internalfs_image/image_go/fonts/OCR_A_Extended_M.c
deleted file mode 100644
index 1104238..0000000
--- a/MicroPython_BUILD/components/internalfs_image/image_go/fonts/OCR_A_Extended_M.c
+++ /dev/null
@@ -1,119 +0,0 @@
-// OCR_A_Extended_M.c
-// Font type : Full (95 characters)
-// Font size : 16x24 pixels
-// Memory usage : 4564 bytes
-
-#if defined(__AVR__)
- #include
- #define fontdatatype const uint8_t
-#elif defined(__PIC32MX__)
- #define PROGMEM
- #define fontdatatype const unsigned char
-#elif defined(__arm__)
- #define PROGMEM
- #define fontdatatype const unsigned char
-#endif
-
-fontdatatype OCR_A_Extended_M[4564] PROGMEM={
-0x10,0x18,0x20,0x5F,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //
-0x00,0x00,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x80,0x03,0x80,0x03,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // !
-0x00,0x00,0x1F,0xF8,0x1F,0xF8,0x1E,0x78,0x1E,0x78,0x0E,0x70,0x0C,0x30,0x0C,0x30,0x0C,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // "
-0x00,0x00,0x06,0x60,0x06,0x60,0x06,0x60,0x06,0x60,0x1F,0xF8,0x1F,0xF8,0x06,0x60,0x06,0x60,0x06,0x60,0x1F,0xF8,0x1F,0xF8,0x06,0x60,0x06,0x60,0x06,0x60,0x06,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // #
-0x00,0x00,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x1F,0xF8,0x1F,0xF8,0x18,0x00,0x18,0x00,0x1F,0xF8,0x1F,0xF8,0x00,0x18,0x00,0x18,0x1F,0xF8,0x1F,0xF8,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // $
-0x00,0x00,0x1C,0x00,0x1C,0x18,0x1C,0x18,0x00,0x30,0x00,0x30,0x00,0x60,0x00,0xE0,0x00,0xC0,0x01,0x80,0x01,0x80,0x03,0x00,0x07,0x00,0x06,0x00,0x0C,0x00,0x0C,0x00,0x18,0x38,0x18,0x38,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // %
-0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xC0,0x0F,0xC0,0x18,0x60,0x18,0x60,0x18,0x60,0x18,0x60,0x0C,0xC0,0x07,0x80,0x07,0x00,0x0F,0x80,0x1D,0xC8,0x18,0xF8,0x18,0x70,0x18,0xF0,0x0F,0xD8,0x0F,0x98,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // &
-0x00,0x00,0x03,0xC0,0x03,0xC0,0x03,0xC0,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x00,0x03,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // '
-0x00,0x00,0x00,0x30,0x00,0x60,0x00,0xC0,0x01,0x80,0x03,0x80,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x80,0x01,0x80,0x00,0xC0,0x00,0x60,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // (
-0x00,0x00,0x0C,0x00,0x06,0x00,0x03,0x00,0x01,0x80,0x01,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x01,0xC0,0x01,0x80,0x03,0x00,0x06,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // )
-0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x01,0x80,0x19,0x88,0x19,0x98,0x0F,0xF0,0x07,0xE0,0x03,0xC0,0x03,0xC0,0x07,0xE0,0x0F,0xF0,0x1D,0xB8,0x11,0x98,0x01,0x80,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // *
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x1F,0xF8,0x1F,0xF8,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // +
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xE0,0x07,0xE0,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xF8,0x1F,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // -
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x80,0x03,0x80,0x03,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // .
-0x00,0x00,0x00,0x18,0x00,0x18,0x00,0x30,0x00,0x30,0x00,0x60,0x00,0x60,0x00,0xC0,0x00,0xC0,0x01,0x80,0x01,0x80,0x03,0x00,0x03,0x00,0x06,0x00,0x06,0x00,0x0C,0x00,0x0C,0x00,0x18,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // /
-
-0x00,0x00,0x0F,0xF0,0x1F,0xF8,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x1F,0xF8,0x0F,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0
-0x00,0x00,0x1F,0x80,0x1F,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x98,0x01,0x98,0x01,0x98,0x01,0x98,0x01,0x98,0x01,0x98,0x1F,0xF8,0x1F,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 1
-0x00,0x00,0x1F,0xF0,0x1F,0xF8,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x0F,0xF8,0x1F,0xF0,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x1F,0xF8,0x1F,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 2
-0x00,0x00,0x1F,0xF8,0x1F,0xFC,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x07,0xF8,0x07,0xF8,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x1F,0xFC,0x1F,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 3
-0x00,0x00,0x18,0x00,0x18,0x00,0x18,0x30,0x18,0x30,0x18,0x30,0x18,0x30,0x18,0x30,0x18,0x30,0x18,0x30,0x18,0x30,0x1F,0xF8,0x1F,0xF8,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 4
-0x00,0x00,0x07,0xF8,0x07,0xF8,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x07,0xF0,0x07,0xF8,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x18,0x18,0x1F,0xF8,0x07,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 5
-0x00,0x00,0x1C,0x00,0x1C,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x1F,0xF8,0x1F,0xF8,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x1F,0xF8,0x1F,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 6
-0x00,0x00,0x1F,0xF8,0x1F,0xF8,0x18,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x30,0x00,0x60,0x00,0xC0,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 7
-0x00,0x00,0x07,0xE0,0x07,0xE0,0x06,0x60,0x06,0x60,0x06,0x60,0x06,0x60,0x06,0x60,0x06,0x60,0x0F,0xF0,0x1F,0xF8,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x1F,0xF8,0x0F,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 8
-0x00,0x00,0x1F,0xF8,0x1F,0xF8,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x1F,0xF8,0x1F,0xF8,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x38,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 9
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x80,0x03,0x80,0x03,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x80,0x03,0x80,0x03,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // :
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xE0,0x07,0xE0,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ;
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x78,0x00,0xE0,0x01,0xC0,0x07,0x00,0x0E,0x00,0x1C,0x00,0x0E,0x00,0x07,0x00,0x01,0xC0,0x00,0xE0,0x00,0x78,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // <
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xF8,0x1F,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xF8,0x1F,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // =
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x1E,0x00,0x07,0x00,0x03,0x80,0x00,0xE0,0x00,0x70,0x00,0x38,0x00,0x70,0x00,0xE0,0x03,0x80,0x07,0x00,0x1E,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // >
-0x00,0x00,0x00,0x20,0x00,0x60,0x01,0xF0,0x03,0x98,0x07,0x18,0x0E,0x18,0x18,0x70,0x10,0xE0,0x01,0xC0,0x03,0x80,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ?
-
-0x00,0x00,0x07,0xE0,0x0F,0xF0,0x18,0x18,0x18,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x0F,0x98,0x0F,0x98,0x19,0x98,0x19,0x98,0x19,0x98,0x19,0x98,0x19,0x98,0x19,0x98,0x19,0x98,0x0F,0xF0,0x0F,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // @
-0x00,0x00,0x01,0x80,0x01,0x80,0x01,0x80,0x03,0xC0,0x03,0xC0,0x03,0xC0,0x03,0xC0,0x06,0x60,0x06,0x60,0x06,0x60,0x06,0x60,0x0C,0x30,0x0F,0xF0,0x0F,0xF0,0x0C,0x30,0x18,0x18,0x18,0x18,0x18,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // A
-0x00,0x00,0x1F,0xF0,0x1F,0xF8,0x18,0x1C,0x18,0x0C,0x18,0x0C,0x18,0x0C,0x18,0x0C,0x18,0x1C,0x1F,0xF8,0x1F,0xF8,0x18,0x1C,0x18,0x0C,0x18,0x0C,0x18,0x0C,0x18,0x0C,0x18,0x1C,0x1F,0xF8,0x1F,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // B
-0x00,0x00,0x01,0xFC,0x03,0xFC,0x03,0x00,0x06,0x00,0x06,0x00,0x0C,0x00,0x0C,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x1C,0x00,0x0C,0x00,0x0E,0x00,0x06,0x00,0x07,0x00,0x03,0xFC,0x01,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // C
-0x00,0x00,0x1F,0xC0,0x1F,0xE0,0x06,0x70,0x06,0x30,0x06,0x30,0x06,0x18,0x06,0x18,0x06,0x0C,0x06,0x0C,0x06,0x0C,0x06,0x0C,0x06,0x1C,0x06,0x18,0x06,0x38,0x06,0x30,0x06,0x70,0x1F,0xE0,0x1F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // D
-0x00,0x00,0x1F,0xFC,0x1F,0xFC,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x1F,0xC0,0x1F,0xC0,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x1F,0xFC,0x1F,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // E
-0x00,0x00,0x1F,0xFC,0x1F,0xFC,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x1F,0xF0,0x1F,0xF0,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // F
-0x00,0x00,0x01,0xF8,0x03,0xF8,0x03,0x00,0x06,0x00,0x0E,0x00,0x0C,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0xF8,0x18,0xF8,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x0F,0xF8,0x0F,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // G
-0x00,0x00,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x1F,0xF8,0x1F,0xF8,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // H
-0x00,0x00,0x1F,0xF8,0x1F,0xF8,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x1F,0xF8,0x1F,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // I
-0x00,0x00,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x0C,0x18,0x0C,0x18,0x0C,0x18,0x0C,0x18,0x0C,0x18,0x0C,0x18,0x07,0xF0,0x03,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // J
-0x00,0x00,0x18,0x0C,0x18,0x18,0x18,0x30,0x18,0x60,0x18,0xC0,0x19,0x80,0x1B,0x00,0x1E,0x00,0x1C,0x00,0x1E,0x00,0x1F,0x00,0x1B,0x80,0x19,0xC0,0x18,0xE0,0x18,0x70,0x18,0x30,0x18,0x18,0x18,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // K
-0x00,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x1F,0xF8,0x1F,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // L
-0x00,0x00,0x1C,0x38,0x1C,0x38,0x1E,0x78,0x1E,0xF8,0x1B,0xD8,0x19,0x98,0x19,0x98,0x19,0x98,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // M
-0x00,0x00,0x1C,0x18,0x1C,0x18,0x1E,0x18,0x1E,0x18,0x1E,0x18,0x1B,0x18,0x1B,0x18,0x1B,0x18,0x19,0x98,0x19,0x98,0x18,0xD8,0x18,0xD8,0x18,0xD8,0x18,0x78,0x18,0x78,0x18,0x78,0x18,0x38,0x18,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // N
-0x00,0x00,0x03,0xC0,0x03,0xC0,0x06,0x60,0x06,0x60,0x0E,0x70,0x0C,0x30,0x0C,0x30,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x0C,0x30,0x0C,0x30,0x0E,0x70,0x06,0x60,0x06,0x60,0x03,0xC0,0x01,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // O
-
-0x00,0x00,0x1F,0xF0,0x1F,0xF0,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x1F,0xF0,0x1F,0xF0,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // P
-0x00,0x00,0x00,0x70,0x00,0xF8,0x01,0xD8,0x03,0x98,0x07,0x18,0x0C,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x19,0x98,0x19,0x98,0x19,0xF0,0x18,0xE0,0x19,0xC0,0x1B,0xE0,0x1F,0x78,0x0E,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Q
-0x00,0x00,0x1F,0xF0,0x1F,0xF8,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x1F,0xF8,0x1F,0xF0,0x19,0x80,0x19,0x80,0x18,0xC0,0x18,0xC0,0x18,0x60,0x18,0x60,0x18,0x30,0x18,0x30,0x18,0x18,0x18,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // R
-0x00,0x00,0x0F,0xF0,0x1F,0xF8,0x18,0x18,0x18,0x18,0x0C,0x00,0x06,0x00,0x06,0x00,0x03,0x00,0x01,0x80,0x01,0x80,0x00,0xC0,0x00,0x60,0x00,0x60,0x00,0x30,0x18,0x18,0x18,0x18,0x1F,0xF8,0x0F,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // S
-0x00,0x00,0x1F,0xF8,0x1F,0xF8,0x19,0x98,0x19,0x98,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // T
-0x00,0x00,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x0F,0xF0,0x0F,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // U
-0x00,0x00,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x0C,0x30,0x0C,0x30,0x0E,0x70,0x06,0x60,0x06,0x60,0x07,0xE0,0x03,0xC0,0x03,0xC0,0x03,0xC0,0x01,0x80,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // V
-0x00,0x00,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x19,0x98,0x19,0x98,0x19,0x98,0x19,0x98,0x19,0x98,0x19,0x98,0x19,0x98,0x19,0x98,0x19,0x98,0x19,0x98,0x0F,0xF0,0x0F,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // W
-0x00,0x00,0x18,0x18,0x18,0x18,0x0C,0x30,0x0C,0x30,0x06,0x60,0x06,0x60,0x03,0xC0,0x03,0xC0,0x01,0x80,0x01,0x80,0x03,0xC0,0x03,0xC0,0x06,0x60,0x06,0x60,0x0C,0x30,0x0C,0x30,0x18,0x18,0x18,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // X
-0x00,0x00,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x0C,0x30,0x0E,0x60,0x07,0xE0,0x03,0xC0,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Y
-0x00,0x00,0x1F,0xF8,0x1F,0xF8,0x00,0x30,0x00,0x30,0x00,0x60,0x00,0x60,0x00,0xC0,0x00,0xC0,0x01,0x80,0x01,0x80,0x03,0x00,0x03,0x00,0x06,0x00,0x06,0x00,0x0C,0x00,0x0C,0x00,0x1F,0xF8,0x1F,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Z
-0x00,0x00,0x1F,0xF8,0x1F,0xF8,0x1B,0x00,0x1B,0x00,0x1B,0x00,0x1B,0x00,0x1B,0x00,0x1B,0x00,0x1B,0x00,0x1B,0x00,0x1B,0x00,0x1B,0x00,0x1B,0x00,0x1B,0x00,0x1B,0x00,0x1B,0x00,0x1F,0xF8,0x1F,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // [
-0x00,0x00,0x18,0x00,0x18,0x00,0x0C,0x00,0x0C,0x00,0x06,0x00,0x07,0x00,0x03,0x00,0x01,0x80,0x01,0x80,0x00,0xC0,0x00,0xC0,0x00,0x60,0x00,0x70,0x00,0x30,0x00,0x18,0x00,0x18,0x00,0x0C,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //
-0x00,0x00,0x1F,0xF8,0x1F,0xF8,0x00,0xD8,0x00,0xD8,0x00,0xD8,0x00,0xD8,0x00,0xD8,0x00,0xD8,0x00,0xD8,0x00,0xD8,0x00,0xD8,0x00,0xD8,0x00,0xD8,0x00,0xD8,0x00,0xD8,0x00,0xD8,0x1F,0xF8,0x1F,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ]
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x01,0x80,0x03,0xC0,0x03,0xC0,0x07,0xE0,0x07,0xE0,0x0E,0x70,0x0E,0x70,0x1C,0x30,0x1C,0x38,0x18,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ^
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00, // _
-
-0x00,0x00,0x06,0x00,0x07,0xC0,0x03,0xE0,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // `
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xF0,0x07,0xF0,0x00,0x18,0x00,0x18,0x00,0x18,0x0F,0xF8,0x0F,0xF8,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x38,0x1F,0xF8,0x0F,0xD8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // a
-0x00,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x1B,0xE0,0x1F,0xF0,0x1E,0x38,0x1C,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x1C,0x18,0x1E,0x38,0x1F,0xF0,0x1B,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // b
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xFC,0x07,0xFC,0x0E,0x00,0x1C,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x1C,0x00,0x0E,0x00,0x07,0xFC,0x03,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // c
-0x00,0x00,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x07,0xD8,0x0F,0xF8,0x1C,0x78,0x18,0x38,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x38,0x1C,0x78,0x0F,0xF8,0x07,0xD8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // d
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xE0,0x0F,0xF0,0x1C,0x38,0x18,0x18,0x18,0x18,0x18,0x18,0x1F,0xF8,0x1F,0xF8,0x18,0x00,0x18,0x00,0x1C,0x00,0x0F,0xF8,0x07,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // e
-0x00,0x00,0x00,0xFC,0x01,0xFC,0x03,0x80,0x03,0x00,0x03,0x00,0x0F,0xF0,0x0F,0xF0,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // f
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xD8,0x0F,0xF8,0x1C,0x78,0x18,0x38,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x38,0x1C,0x78,0x0F,0xF8,0x07,0xD8,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x38,0x0F,0xF0,0x0F,0xE0, // g
-0x00,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x19,0xF0,0x1B,0xF0,0x1F,0x18,0x1C,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // h
-0x03,0x80,0x03,0x80,0x03,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x80,0x0F,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x0F,0xF0,0x0F,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // i
-0x00,0x38,0x00,0x38,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xF8,0x03,0xF8,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x0C,0x18,0x0C,0x18,0x07,0xF0,0x03,0xE0, // j
-0x00,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x30,0x18,0x60,0x18,0xC0,0x19,0x80,0x1B,0x80,0x1F,0x00,0x1E,0x00,0x1F,0x00,0x19,0x80,0x18,0xC0,0x18,0x60,0x18,0x30,0x18,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // k
-0x00,0x00,0x0F,0x80,0x0F,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x0F,0xF0,0x0F,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // l
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x78,0x3F,0xFC,0x39,0xCC,0x31,0x8C,0x31,0x8C,0x31,0x8C,0x31,0x8C,0x31,0x8C,0x31,0x8C,0x31,0x8C,0x31,0x8C,0x31,0x8C,0x31,0x8C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // m
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0xF0,0x1B,0xF0,0x1F,0x18,0x1C,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // n
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xE0,0x0F,0xF0,0x1C,0x38,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x1C,0x38,0x0F,0xF0,0x07,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // o
-
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1B,0xC0,0x1F,0xE0,0x1E,0x70,0x1C,0x38,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x1C,0x38,0x1E,0x70,0x1F,0xE0,0x1B,0xC0,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00, // p
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xD8,0x0F,0xF8,0x1C,0x78,0x18,0x38,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x38,0x1C,0x78,0x0F,0xF8,0x07,0xD8,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18, // q
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0xF0,0x1B,0xF8,0x1F,0x0C,0x1C,0x0C,0x18,0x0C,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // r
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xF0,0x1F,0xF8,0x18,0x18,0x18,0x00,0x1E,0x00,0x07,0x80,0x01,0xF0,0x00,0x70,0x00,0x18,0x00,0x18,0x18,0x18,0x1F,0xF0,0x0F,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // s
-0x00,0x00,0x00,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x1F,0xF8,0x1F,0xF8,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x0C,0x06,0x1C,0x03,0xF8,0x01,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // t
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x38,0x18,0xF8,0x0F,0xD8,0x07,0x98,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // u
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x18,0x30,0x18,0x30,0x18,0x30,0x18,0x38,0x38,0x18,0x30,0x18,0x30,0x0C,0x60,0x0C,0x60,0x06,0xC0,0x06,0xC0,0x03,0x80,0x03,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // v
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x0C,0x30,0x0C,0x30,0x0C,0x30,0x0C,0x31,0x8C,0x31,0x8C,0x31,0x8C,0x31,0x8C,0x31,0x8C,0x33,0xCC,0x1F,0xF8,0x1E,0x78,0x1C,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // w
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x1C,0x38,0x0C,0x30,0x06,0x60,0x03,0xC0,0x03,0xC0,0x01,0x80,0x03,0xC0,0x06,0xE0,0x0E,0x70,0x0C,0x30,0x18,0x18,0x18,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // x
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x18,0x30,0x18,0x30,0x18,0x30,0x18,0x38,0x38,0x18,0x30,0x18,0x30,0x0C,0x60,0x0C,0x60,0x06,0xC0,0x07,0xC0,0x07,0x80,0x01,0x80,0x03,0x80,0x03,0x00,0x03,0x00,0x3E,0x00,0x3E,0x00, // y
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xF8,0x1F,0xF8,0x00,0x38,0x00,0x30,0x00,0x60,0x00,0xC0,0x01,0x80,0x03,0x00,0x06,0x00,0x0C,0x00,0x1C,0x00,0x1F,0xF8,0x1F,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // z
-0x00,0x00,0x00,0xF8,0x01,0xF8,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x1F,0x00,0x1F,0x00,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0xF8,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // {
-0x00,0x00,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // |
-0x00,0x00,0x1F,0x00,0x1F,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x00,0xF8,0x00,0xF8,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x1F,0x80,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // }
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x8C,0x1F,0xFC,0x18,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ~
-};
diff --git a/MicroPython_BUILD/components/internalfs_image/image_go/fonts/arial_bold.fon b/MicroPython_BUILD/components/internalfs_image/image_go/fonts/arial_bold.fon
deleted file mode 100644
index 9cf4ee62d4586b0ef8983799306f88f400e740e0..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 3052
zcmWd-P>5$B0x&b6Lk6%2Oe<9QB$P}bv__&@M}fXhE%|G;O!V8Hl*@c}~tg8`2L
zs`(&Y3=bF|fYV6=PXbsk$jwj#*dMSzU}NB6;0MJs7X8c**gvot@G$Tm;D`Ey%>dc`
zQ1cEjKz+{)j&WwF=?n}Y|3mx^vI)jQ_#Z5v021dbVE@3pfx&<$f&T$JJbV}!Kp_G*
z4vhyA$0Far08if_6$}at510?|GsrOTGcX@uc)*|l7KIb?ALPN|38Uc>PzDDB9|L;>
zD0~?ous85Aa6rXD6v+L2p!g{O#SX+R5E3NIet^e7xI+Ae&Iu6Izo7O&fP+JT9VwN8
z(l*-x5Cr8i{s;0OBn%`B3?x9hL0BFtB4Ge#Nq~U-2YI*&%n$fK@L0$QNH9R4i~x@X
z{|7`mmOlVC5u^=<4dg$_!^4;V2mcQq1`tGLf$RohQ2c^qc^LQ~@IQdCKqN>GgxNvv
zv#<~VB~XJO20tt$BrN2AAbbe3R6;`jhx`u&52P1_L1BdrgXF*%Y%l|yL{Hxm5)uXy
z2@(e+8>A1&9gsQ5;8FNgYqYz1&;(j1N#HU4-6JO5_}fy
z$npO}{s+GB1%(wVma*XffQUZ>Q1}{17=ThI-vdxO1*KSKX!*^+V0a7!rE_4A&jJEr
z?vpT(Dd0(9I{>P4Ky?w@0iFbz0to}Syo8Jej{&HTV}_O>5ZA)w!DTwQ>;siBpwfkn
z0hCf9^2`UA4}i*J4154q!hmETCNeg_%4r68`3KSu7X{ZL5FS{Z0aW&YSRmK2CGf!A
z46z#@`Tzg_{}6ewtq>+o5>m%9K45>q2P&Z-uy24Vg``?U*$Ybj{115Hxfh}iTm~gT
z)bb@Dm(GxU!@Pn01FQ~$ma-6yP!bd`pi&olzG7afIUGXLH+?h*o_c3@jl@H04gIvr91?~%m;-qs4W1CAs9_ap0R%6L=2rHt;v_AK*K{a{!c5Vfta_q0=yV2yJd*|Htx-VGjaA#9<^p_k+}c!yj75
zqt(73X{5Rn7Jra%0ZW3~9hmV0Des^Pm`CtgZ+pe>*##u24+N_FJLHu;4|Y5932
E0Kq-+S^xk5
diff --git a/MicroPython_BUILD/components/internalfs_image/image_go/fonts/swiss721_outline.fon b/MicroPython_BUILD/components/internalfs_image/image_go/fonts/swiss721_outline.fon
deleted file mode 100644
index 2ece05ef63436c997aee354d7abc0ae837e566ea..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 3052
zcmWd-P>5$B0x&l)K_N2(GXo<70|Q8exdEn?$pHpoBB(Uu1V#l$1ttgiA50D`4fY>c
z8aNp^83YlE9xyN9QQ-c-wSZNDc>==*whx>aSOl0iFf3qr08(UOa4cb0!mb0y8>||b
zE!d86?c&)ba!kSkBnQIm4Lk?99k?Ah8(0}QEyON}Du@S2oZzXv6`=
z2BrpP239y^W?*VyY+yJ5QOCo;1(tz@0aF7=B^Lt^M4Ewtf$;#N1E+_036BJm0_y}W
z4>kk16oTQv0EPVjU@Qg)gfxuBd;k=d%npdqg~@s^?kdK+6+L;fqDDZCJ3P3>K4J-=G2opfM9QYhK9QYj=
z5fCm9($77CFMuI{VF9B9D110Sa0u{!fEv%he1OG(`vOk@;{!$o#tRGqd;#1OP|UYs
zP+**?a}o
z2V4x?54aRKFMxc(ief%L$Tb%j7Jys_az7*{kwW+bGY``jrYTHc7$ulen5HmIVM;+a
zpA#HDoD*0Am@hB{urGkQAM7UuMtF=6$zQ+-4?UPK88{dUm>YN)BpBEk7!EMNQ#V|m
zLH-Ab4Ix1+RLlX=_kclyfrp`hv4Ias5*$Al_yQOvFeWfHfc%Y`e;F80^Bb|G(;q1;PE5>KtMqJgouWShWG^m
z1MwFk8saYmB;?^?!u)_mg7b-x3@B1X7(`@*OgLY#NFdCYKOkTrenG?oWC9pxfXtDH
zhY3
zMVu(XLu7)ef|!FugP?=Bg2)7s01*vD`0+7-+>4As{zT*-8ygiDqY$kSttnbl
zbie3^=z`gnbD*{}$XEzz2x&-ah-!$f5L+RdA+kcGL&O8&e)b0(0>UR$R5U=|644M*
zQ4v1DA;1ogAN~g%0^BFKG`KXlPjCouKY+LdDg03NKT+urKEa{FeuIGn;sTWTR}jAe
zu?As3^8*$E?iXAZTnwxam?apV@QH9gVUb{l=U-6#@mGLyCJKhfKO%l0CW~cA-{3Jo
zxZlD;BS0lUBtT?=&;o7+ZUO6>
zwa^bPc=`mF*$-g4;PeAnInKlYs#PI%4r2qO1E`b+m)8jl;Ch7p0E+`VqSS@5*d16L
z*dZZwfKh=-fQ5sD1>##$$p8Nt7#Ke=OEA4)TEX;!S%MKBC+McIKVTDJyuf~eCxH6`
z_XM5*c6jcCrrrnK0-WG9#HGP|f=hrOp1L3=fyyAx3tRc8E48
z$^L;OKp2$k0z?9YCvXI?UtkE}pTMC23PGs*KX6O%LfsF_35e7I%Kf0Y2GQ`?LrPts
z+83uGfq1&Fq{
z(Ku#qrRfEOmghjC2+W7m{SY;vJO~fp6Ue1IM4tZvmjKNFoF};8r2s^hfr0r4iw5Tl
zP{?p;aGqe%V15CLH3kj1`~#*1%nHm2xZKZvfJXsTvamj2n!ta711a}H+E2_0ObW~i
zpm1Y!U`$|CfVBKzrZX_`SwQRtk(@7hG!W?zqK40c%YZY0HGp*i%K|0^CI?WAKx81K
z<;#)*l2zqdNAmSGy&u76Iz`B4*fzg3Ufpr0A0H!?D`~;Q-ObeL6@yy=9
z(g4xTz`*{4g@gSAv;_FU$^m!Z0Y(NGWM<$2x1V8ra0?UGGQ~kNGr-%fpcbhC!vO>z
b)_!AP;Ny^-A&>xb3o;!P;1QpepH~6^qXNd2
diff --git a/MicroPython_BUILD/components/internalfs_image/image_go/lib/LoRaReceiver.py b/MicroPython_BUILD/components/internalfs_image/image_go/lib/LoRaReceiver.py
deleted file mode 100644
index 981e7fa..0000000
--- a/MicroPython_BUILD/components/internalfs_image/image_go/lib/LoRaReceiver.py
+++ /dev/null
@@ -1,13 +0,0 @@
-def receive(lora):
- print("LoRa Receiver")
-
- while True:
- if lora.receivedPacket():
- lora.blink_led()
- payload = lora.read_payload()
-
- try:
- print("*** Received message ***\n{}".format(payload.decode()))
- except Exception as e:
- print(e)
- print("with RSSI: {}\n".format(lora.packetRssi()))
\ No newline at end of file
diff --git a/MicroPython_BUILD/components/internalfs_image/image_go/lib/LoRaSender.py b/MicroPython_BUILD/components/internalfs_image/image_go/lib/LoRaSender.py
deleted file mode 100644
index 028ec76..0000000
--- a/MicroPython_BUILD/components/internalfs_image/image_go/lib/LoRaSender.py
+++ /dev/null
@@ -1,14 +0,0 @@
-from time import sleep
-
-
-def send(lora):
- counter = 0
- print("LoRa Sender")
-
- while True:
- payload = 'Hello ({0})'.format(counter)
- print("Sending packet: \n{}\n".format(payload))
- lora.println(payload)
-
- counter += 1
- sleep(5)
\ No newline at end of file
diff --git a/MicroPython_BUILD/components/internalfs_image/image_go/lib/bme280.py b/MicroPython_BUILD/components/internalfs_image/image_go/lib/bme280.py
deleted file mode 100644
index c8d67ba..0000000
--- a/MicroPython_BUILD/components/internalfs_image/image_go/lib/bme280.py
+++ /dev/null
@@ -1,206 +0,0 @@
-# Authors: Paul Cunnane 2016, Peter Dahlebrg 2016
-#
-# This module borrows from the Adafruit BME280 Python library. Original
-# Copyright notices are reproduced below.
-#
-# Those libraries were written for the Raspberry Pi. This modification is
-# intended for the MicroPython and esp8266 boards.
-#
-# Copyright (c) 2014 Adafruit Industries
-# Author: Tony DiCola
-#
-# Based on the BMP280 driver with BME280 changes provided by
-# David J Taylor, Edinburgh (www.satsignal.eu)
-#
-# Based on Adafruit_I2C.py created by Kevin Townsend.
-#
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-# THE SOFTWARE.
-
-import time
-from ustruct import unpack, unpack_from
-from array import array
-
-# BME280 default address.
-BME280_I2CADDR = 0x76
-
-# Operating Modes
-BME280_OSAMPLE_1 = 1
-BME280_OSAMPLE_2 = 2
-BME280_OSAMPLE_4 = 3
-BME280_OSAMPLE_8 = 4
-BME280_OSAMPLE_16 = 5
-
-BME280_REGISTER_CONTROL_HUM = 0xF2
-BME280_REGISTER_CONTROL = 0xF4
-
-
-class BME280:
-
- def __init__(self,
- mode=BME280_OSAMPLE_1,
- address=BME280_I2CADDR,
- i2c=None,
- **kwargs):
- # Check that mode is valid.
- if mode not in [BME280_OSAMPLE_1, BME280_OSAMPLE_2, BME280_OSAMPLE_4,
- BME280_OSAMPLE_8, BME280_OSAMPLE_16]:
- raise ValueError(
- 'Unexpected mode value {0}. Set mode to one of '
- 'BME280_ULTRALOWPOWER, BME280_STANDARD, BME280_HIGHRES, or '
- 'BME280_ULTRAHIGHRES'.format(mode))
- self._mode = mode
- self.address = address
- if i2c is None:
- raise ValueError('An I2C object is required.')
- self.i2c = i2c
-
- # load calibration data
- dig_88_a1 = self.i2c.readfrom_mem(self.address, 0x88, 26)
- dig_e1_e7 = self.i2c.readfrom_mem(self.address, 0xE1, 7)
- self.dig_T1, self.dig_T2, self.dig_T3, self.dig_P1, \
- self.dig_P2, self.dig_P3, self.dig_P4, self.dig_P5, \
- self.dig_P6, self.dig_P7, self.dig_P8, self.dig_P9, \
- _, self.dig_H1 = unpack("> 4)
-
- self.dig_H6 = unpack_from("> 4
- raw_press = ((readout[0] << 16) | (readout[1] << 8) | readout[2]) >> 4
- # temperature(0xFA): ((msb << 16) | (lsb << 8) | xlsb) >> 4
- raw_temp = ((readout[3] << 16) | (readout[4] << 8) | readout[5]) >> 4
- # humidity(0xFD): (msb << 8) | lsb
- raw_hum = (readout[6] << 8) | readout[7]
-
- result[0] = raw_temp
- result[1] = raw_press
- result[2] = raw_hum
-
- def read_compensated_data(self, result=None):
- """ Reads the data from the sensor and returns the compensated data.
-
- Args:
- result: array of length 3 or alike where the result will be
- stored, in temperature, pressure, humidity order. You may use
- this to read out the sensor without allocating heap memory
-
- Returns:
- array with temperature, pressure, humidity. Will be the one from
- the result parameter if not None
- """
- self.read_raw_data(self._l3_resultarray)
- raw_temp, raw_press, raw_hum = self._l3_resultarray
- # temperature
- var1 = ((raw_temp >> 3) - (self.dig_T1 << 1)) * (self.dig_T2 >> 11)
- var2 = (((((raw_temp >> 4) - self.dig_T1) *
- ((raw_temp >> 4) - self.dig_T1)) >> 12) * self.dig_T3) >> 14
- self.t_fine = var1 + var2
- temp = (self.t_fine * 5 + 128) >> 8
-
- # pressure
- var1 = self.t_fine - 128000
- var2 = var1 * var1 * self.dig_P6
- var2 = var2 + ((var1 * self.dig_P5) << 17)
- var2 = var2 + (self.dig_P4 << 35)
- var1 = (((var1 * var1 * self.dig_P3) >> 8) +
- ((var1 * self.dig_P2) << 12))
- var1 = (((1 << 47) + var1) * self.dig_P1) >> 33
- if var1 == 0:
- pressure = 0
- else:
- p = 1048576 - raw_press
- p = (((p << 31) - var2) * 3125) // var1
- var1 = (self.dig_P9 * (p >> 13) * (p >> 13)) >> 25
- var2 = (self.dig_P8 * p) >> 19
- pressure = ((p + var1 + var2) >> 8) + (self.dig_P7 << 4)
-
- # humidity
- h = self.t_fine - 76800
- h = (((((raw_hum << 14) - (self.dig_H4 << 20) -
- (self.dig_H5 * h)) + 16384)
- >> 15) * (((((((h * self.dig_H6) >> 10) *
- (((h * self.dig_H3) >> 11) + 32768)) >> 10) +
- 2097152) * self.dig_H2 + 8192) >> 14))
- h = h - (((((h >> 15) * (h >> 15)) >> 7) * self.dig_H1) >> 4)
- h = 0 if h < 0 else h
- h = 419430400 if h > 419430400 else h
- humidity = h >> 12
-
- if result:
- result[0] = temp
- result[1] = pressure
- result[2] = humidity
- return result
-
- return array("i", (temp, pressure, humidity))
-
- @property
- def values(self):
- """ human readable values """
-
- t, p, h = self.read_compensated_data()
-
- p = p // 256
- pi = p // 100
- pd = p - pi * 100
-
- hi = h // 1024
- hd = h * 100 // 1024 - hi * 100
- return ("{}C".format(t / 100), "{}.{:02d}hPa".format(pi, pd),
- "{}.{:02d}%".format(hi, hd))
diff --git a/MicroPython_BUILD/components/internalfs_image/image_go/lib/config_lora.py b/MicroPython_BUILD/components/internalfs_image/image_go/lib/config_lora.py
deleted file mode 100644
index 6102814..0000000
--- a/MicroPython_BUILD/components/internalfs_image/image_go/lib/config_lora.py
+++ /dev/null
@@ -1,30 +0,0 @@
-import sys
-import os
-import time
-
-
-def mac2eui(mac):
- mac = mac[0:6] + 'fffe' + mac[6:]
- return hex(int(mac[0:2], 16) ^ 2)[2:] + mac[2:]
-
-
-# Node Name
-from machine import unique_id
-import ubinascii
-unique_id = ubinascii.hexlify(unique_id()).decode()
-
-NODE_NAME = 'ESP32_'
-
-NODE_EUI = mac2eui(unique_id)
-NODE_NAME = NODE_NAME + unique_id
-# NODE_NAME = NODE_NAME + NODE_EUI
-
-# millisecond
-millisecond = time.ticks_ms
-# microsecond = time.ticks_us
-
-
-# Controller
-from controller_esp import Controller
-
-
diff --git a/MicroPython_BUILD/components/internalfs_image/image_go/lib/controller.py b/MicroPython_BUILD/components/internalfs_image/image_go/lib/controller.py
deleted file mode 100644
index 27537d9..0000000
--- a/MicroPython_BUILD/components/internalfs_image/image_go/lib/controller.py
+++ /dev/null
@@ -1,122 +0,0 @@
-from time import sleep
-
-
-class Controller:
-
- class Mock:
- pass
-
-
- ON_BOARD_LED_PIN_NO = None
- ON_BOARD_LED_HIGH_IS_ON = True
- GPIO_PINS = []
-
- PIN_ID_FOR_LORA_RESET = None
-
- PIN_ID_SCK = None
- PIN_ID_MOSI = None
- PIN_ID_MISO = None
-
- PIN_ID_FOR_LORA_SS = None
- PIN_ID_FOR_LORA_DIO0 = None
- PIN_ID_FOR_LORA_DIO1 = None
- PIN_ID_FOR_LORA_DIO2 = None
- PIN_ID_FOR_LORA_DIO3 = None
- PIN_ID_FOR_LORA_DIO4 = None
- PIN_ID_FOR_LORA_DIO5 = None
-
- spi = None
-
- def __init__(self,
- spi = spi,
- pin_id_led = ON_BOARD_LED_PIN_NO,
- on_board_led_high_is_on = ON_BOARD_LED_HIGH_IS_ON,
- pin_id_reset = PIN_ID_FOR_LORA_RESET,
- blink_on_start = (2, 0.5, 0.5)):
-
- self.pin_led = self.prepare_pin(pin_id_led)
- self.on_board_led_high_is_on = on_board_led_high_is_on
- self.pin_reset = self.prepare_pin(pin_id_reset)
- self.spi = self.prepare_spi(spi)
- self.reset_transceivers()
- self.transceivers = {}
- self.blink_led(*blink_on_start)
-
-
- def add_transceiver(self,
- transceiver,
- pin_id_ss = PIN_ID_FOR_LORA_SS,
- pin_id_RxDone = PIN_ID_FOR_LORA_DIO0,
- pin_id_RxTimeout = PIN_ID_FOR_LORA_DIO1,
- pin_id_ValidHeader = PIN_ID_FOR_LORA_DIO2,
- pin_id_CadDone = PIN_ID_FOR_LORA_DIO3,
- pin_id_CadDetected = PIN_ID_FOR_LORA_DIO4,
- pin_id_PayloadCrcError = PIN_ID_FOR_LORA_DIO5):
-
- transceiver.transfer = self.spi.transfer
- transceiver.blink_led = self.blink_led
-
- transceiver.pin_ss = self.prepare_pin(pin_id_ss)
- transceiver.pin_RxDone = self.prepare_irq_pin(pin_id_RxDone)
- transceiver.pin_RxTimeout = self.prepare_irq_pin(pin_id_RxTimeout)
- transceiver.pin_ValidHeader = self.prepare_irq_pin(pin_id_ValidHeader)
- transceiver.pin_CadDone = self.prepare_irq_pin(pin_id_CadDone)
- transceiver.pin_CadDetected = self.prepare_irq_pin(pin_id_CadDetected)
- transceiver.pin_PayloadCrcError = self.prepare_irq_pin(pin_id_PayloadCrcError)
-
- transceiver.init()
-
- self.transceivers[transceiver.name] = transceiver
- return transceiver
-
-
- def prepare_pin(self, pin_id, in_out = None):
- reason = '''
- # a pin should provide:
- # .low()
- # .high()
- # .value() # read input.
- # .irq() # ref to the irq function of real pin object.
- '''
- raise NotImplementedError('reason')
-
-
- def prepare_irq_pin(self, pin_id):
- reason = '''
- # a irq_pin should provide:
- # .set_handler_for_irq_on_rising_edge() # to set trigger and handler.
- # .detach_irq()
- '''
- raise NotImplementedError('reason')
-
-
- def prepare_spi(self, spi):
- reason = '''
- # a spi should provide:
- # .close()
- # .transfer(address, value = 0x00)
- '''
- raise NotImplementedError('reason')
-
-
- def led_on(self, on = True):
- self.pin_led.high() if self.on_board_led_high_is_on == on else self.pin_led.low()
-
-
- def blink_led(self, times = 1, on_seconds = 0.1, off_seconds = 0.1):
- for i in range(times):
- self.led_on(True)
- sleep(on_seconds)
- self.led_on(False)
- sleep(off_seconds)
-
-
- def reset_transceivers(self, duration_low = 0.01, duration_high = 0.01):
- self.pin_reset.low()
- sleep(duration_low)
- self.pin_reset.high()
- sleep(duration_high)
-
-
- def __exit__(self):
- self.spi.close()
diff --git a/MicroPython_BUILD/components/internalfs_image/image_go/lib/controller_esp.py b/MicroPython_BUILD/components/internalfs_image/image_go/lib/controller_esp.py
deleted file mode 100644
index cd868c6..0000000
--- a/MicroPython_BUILD/components/internalfs_image/image_go/lib/controller_esp.py
+++ /dev/null
@@ -1,163 +0,0 @@
-from machine import Pin, SPI, reset
-import config_lora
-import controller
-
-
-'''
-import time
-PIN_ID_FOR_LORA_RESET = 18
-PIN_ID_FOR_LORA_SS = 26
-PIN_ID_SCK = 19
-PIN_ID_MOSI = 23
-PIN_ID_MISO = 25
-PIN_ID_FOR_LORA_DIO0 = 5
-ON_BOARD_LED_PIN_NO = 2
-
-#spi = machine.SPI(1, baudrate = 8000000, sck = machine.Pin(PIN_ID_SCK, machine.Pin.OUT), mosi = machine.Pin(PIN_ID_MOSI, machine.Pin.OUT), miso = machine.Pin(PIN_ID_MISO, machine.Pin.IN), cs = machine.Pin(PIN_ID_FOR_LORA_SS, machine.Pin.OUT), duplex=False)
-#spi = machine.SPI(1, baudrate = 8000000, sck = machine.Pin(PIN_ID_SCK, machine.Pin.OUT), mosi = machine.Pin(PIN_ID_MOSI, machine.Pin.OUT), miso = machine.Pin(PIN_ID_MISO, machine.Pin.IN), duplex=False)
-spi = machine.SPI(1, baudrate = 8000000, sck = machine.Pin(PIN_ID_SCK, machine.Pin.OUT), mosi = machine.Pin(PIN_ID_MOSI, machine.Pin.OUT), miso = machine.Pin(PIN_ID_MISO, machine.Pin.IN))
-
-dio=machine.Pin(PIN_ID_FOR_LORA_DIO0, machine.Pin.IN)
-cs=machine.Pin(PIN_ID_FOR_LORA_SS, machine.Pin.OUT)
-rst=machine.Pin(PIN_ID_FOR_LORA_RESET, machine.Pin.OUT)
-rst.value(0)
-response = bytearray(4)
-
-def xrst():
- rst.value(0)
- time.sleep_ms(100)
- rst.value(1)
-
-xrst()
-
-def xrd(reg):
- cs.value(0)
- spi.write_readinto(bytes([reg]), response);
- cs.value(1)
- print(response)
-
-def yrd(reg):
- cs.value(0)
- spi.write(bytes([reg]));
- spi.readinto(response)
- cs.value(1)
- print(response)
-
-def zrd(reg):
- cs.value(0)
- spi.write(bytes([reg]));
- spi.write_readinto(bytes([0]),response)
- cs.value(1)
- print(response)
-
-def wrd(reg):
- cs.value(0)
- res = spi.readfrom_mem(reg,4)
- cs.value(1)
- print(res)
-
-'''
-
-class Controller(controller.Controller):
-
- PIN_ID_FOR_LORA_RESET = 18
-
- PIN_ID_FOR_LORA_SS = 26
- PIN_ID_SCK = 19
- PIN_ID_MOSI = 23
- PIN_ID_MISO = 25
-
- PIN_ID_FOR_LORA_DIO0 = 5
- PIN_ID_FOR_LORA_DIO1 = None
- PIN_ID_FOR_LORA_DIO2 = None
- PIN_ID_FOR_LORA_DIO3 = None
- PIN_ID_FOR_LORA_DIO4 = None
- PIN_ID_FOR_LORA_DIO5 = None
-
- spi = None
-
- ON_BOARD_LED_PIN_NO = 2
- ON_BOARD_LED_HIGH_IS_ON = True
- GPIO_PINS = (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
- 12, 13, 14, 15, 16, 17, 18, 19, 21, 22,
- 23, 25, 26, 27, 32, 34, 35, 36, 37, 38, 39)
- try:
- if not spi:
- spi = SPI(1, baudrate = 5000000, polarity = 0, phase = 0, bits = 8, firstbit = SPI.MSB,
- sck = Pin(PIN_ID_SCK, Pin.OUT),
- mosi = Pin(PIN_ID_MOSI, Pin.OUT),
- miso = Pin(PIN_ID_MISO, Pin.IN))
- #spi.init()
- print(spi)
-
- except Exception as e:
- print(e)
- if spi:
- spi.deinit()
- spi = None
- reset() # in case SPI is already in use, need to reset.
-
-
- def __init__(self,
- spi = spi,
- pin_id_led = ON_BOARD_LED_PIN_NO,
- on_board_led_high_is_on = ON_BOARD_LED_HIGH_IS_ON,
- pin_id_reset = PIN_ID_FOR_LORA_RESET,
- blink_on_start = (2, 0.5, 0.5)):
-
- super().__init__(spi,
- pin_id_led,
- on_board_led_high_is_on,
- pin_id_reset,
- blink_on_start)
-
-
- def prepare_pin(self, pin_id, in_out = Pin.OUT):
- if pin_id is not None:
- pin = Pin(pin_id, in_out)
- new_pin = Controller.Mock()
- new_pin.pin_id = pin_id
- new_pin.value = pin.value
-
- if in_out == Pin.OUT:
- new_pin.low = lambda : pin.value(0)
- new_pin.high = lambda : pin.value(1)
- else:
- new_pin.irq = pin.irq
-
- return new_pin
-
-
- def prepare_irq_pin(self, pin_id):
- pin = self.prepare_pin(pin_id, Pin.IN)
- if pin:
- pin.set_handler_for_irq_on_rising_edge = lambda handler: pin.irq(handler = handler, trigger = Pin.IRQ_RISING)
- pin.detach_irq = lambda : pin.irq(handler = None, trigger = 0)
- return pin
-
-
- def prepare_spi(self, spi):
- if spi:
- new_spi = Controller.Mock()
-
- def transfer(pin_ss, address, value = 0x00):
- response = bytearray(1)
-
- pin_ss.low()
-
- spi.write(bytes([address])) # write register address
- spi.write_readinto(bytes([value]), response) # write or read register walue
- #spi.write_readinto(bytes([address]), response)
-
- pin_ss.high()
-
- return response
-
- new_spi.transfer = transfer
- new_spi.close = spi.deinit
- return new_spi
-
-
- def __exit__(self):
- self.spi.close()
-
diff --git a/MicroPython_BUILD/components/internalfs_image/image_go/lib/led.py b/MicroPython_BUILD/components/internalfs_image/image_go/lib/led.py
deleted file mode 100644
index 17e7b61..0000000
--- a/MicroPython_BUILD/components/internalfs_image/image_go/lib/led.py
+++ /dev/null
@@ -1,11 +0,0 @@
-# coding: utf-8
-
-import time
-
-
-def blink(pin, times = 1, on_seconds = 0.1, off_seconds = 0.1, high_is_on = True):
- for i in range(times):
- pin.high() if high_is_on else pin.low()
- time.sleep(on_seconds)
- pin.low() if high_is_on else pin.high()
- time.sleep(off_seconds)
\ No newline at end of file
diff --git a/MicroPython_BUILD/components/internalfs_image/image_go/lib/sx127x.py b/MicroPython_BUILD/components/internalfs_image/image_go/lib/sx127x.py
deleted file mode 100644
index 4b4aa22..0000000
--- a/MicroPython_BUILD/components/internalfs_image/image_go/lib/sx127x.py
+++ /dev/null
@@ -1,389 +0,0 @@
-from time import sleep
-import time
-import gc
-import config_lora
-
-
-PA_OUTPUT_RFO_PIN = 0
-PA_OUTPUT_PA_BOOST_PIN = 1
-
-
-# registers
-REG_FIFO = 0x00
-REG_OP_MODE = 0x01
-REG_FRF_MSB = 0x06
-REG_FRF_MID = 0x07
-REG_FRF_LSB = 0x08
-REG_PA_CONFIG = 0x09
-REG_LNA = 0x0c
-REG_FIFO_ADDR_PTR = 0x0d
-
-REG_FIFO_TX_BASE_ADDR = 0x0e
-FifoTxBaseAddr = 0x00
-# FifoTxBaseAddr = 0x80
-
-REG_FIFO_RX_BASE_ADDR = 0x0f
-FifoRxBaseAddr = 0x00
-REG_FIFO_RX_CURRENT_ADDR = 0x10
-REG_IRQ_FLAGS_MASK = 0x11
-REG_IRQ_FLAGS = 0x12
-REG_RX_NB_BYTES = 0x13
-REG_PKT_RSSI_VALUE = 0x1a
-REG_PKT_SNR_VALUE = 0x1b
-REG_MODEM_CONFIG_1 = 0x1d
-REG_MODEM_CONFIG_2 = 0x1e
-REG_PREAMBLE_MSB = 0x20
-REG_PREAMBLE_LSB = 0x21
-REG_PAYLOAD_LENGTH = 0x22
-REG_FIFO_RX_BYTE_ADDR = 0x25
-REG_MODEM_CONFIG_3 = 0x26
-REG_RSSI_WIDEBAND = 0x2c
-REG_DETECTION_OPTIMIZE = 0x31
-REG_DETECTION_THRESHOLD = 0x37
-REG_SYNC_WORD = 0x39
-REG_DIO_MAPPING_1 = 0x40
-REG_VERSION = 0x42
-
-# modes
-MODE_LONG_RANGE_MODE = 0x80 # bit 7: 1 => LoRa mode
-MODE_SLEEP = 0x00
-MODE_STDBY = 0x01
-MODE_TX = 0x03
-MODE_RX_CONTINUOUS = 0x05
-MODE_RX_SINGLE = 0x06
-
-# PA config
-PA_BOOST = 0x80
-
-# IRQ masks
-IRQ_TX_DONE_MASK = 0x08
-IRQ_PAYLOAD_CRC_ERROR_MASK = 0x20
-IRQ_RX_DONE_MASK = 0x40
-IRQ_RX_TIME_OUT_MASK = 0x80
-
-# Buffer size
-MAX_PKT_LENGTH = 255
-
-
-class SX127x:
-
- # The controller needs to provide an interface consisted of:
- # 1. a SPI, with transfer function.
- # 2. a reset pin, with low(), high() functions.
- # 3. IRQ pinS , to be triggered by RFM96W's DIO0~5 pins. These pins each has two functions:
- # 3.1 set_handler_for_irq_on_rising_edge()
- # 3.2 detach_irq()
- # 4. a function to blink on-board LED.
-
- def __init__(self,
- name = 'SX127x',
- parameters = {'frequency': 868E6, 'tx_power_level': 2, 'signal_bandwidth': 125E3,
- 'spreading_factor': 8, 'coding_rate': 5, 'preamble_length': 8,
- 'implicitHeader': False, 'sync_word': 0x12, 'enable_CRC': False},
- onReceive = None):
-
- self.name = name
- self.parameters = parameters
- self._onReceive = onReceive
- self._lock = False
-
-
- def init(self):
- # check version
- version = self.readRegister(REG_VERSION)
- if version != 0x12:
- print("Detected version:", version)
- raise Exception('Invalid version.')
-
-
- # put in LoRa and sleep mode
- self.sleep()
-
-
- # config
- self.setFrequency(self.parameters['frequency'])
- self.setSignalBandwidth(self.parameters['signal_bandwidth'])
-
- # set LNA boost
- self.writeRegister(REG_LNA, self.readRegister(REG_LNA) | 0x03)
-
- # set auto AGC
- self.writeRegister(REG_MODEM_CONFIG_3, 0x04)
-
- self.setTxPower(self.parameters['tx_power_level'])
- self._implicitHeaderMode = None
- self.implicitHeaderMode(self.parameters['implicitHeader'])
- self.setSpreadingFactor(self.parameters['spreading_factor'])
- self.setCodingRate(self.parameters['coding_rate'])
- self.setPreambleLength(self.parameters['preamble_length'])
- self.setSyncWord(self.parameters['sync_word'])
- self.enableCRC(self.parameters['enable_CRC'])
-
- # set base addresses
- self.writeRegister(REG_FIFO_TX_BASE_ADDR, FifoTxBaseAddr)
- self.writeRegister(REG_FIFO_RX_BASE_ADDR, FifoRxBaseAddr)
-
- self.standby()
-
-
- def beginPacket(self, implicitHeaderMode = False):
- self.standby()
- self.implicitHeaderMode(implicitHeaderMode)
-
- # reset FIFO address and paload length
- self.writeRegister(REG_FIFO_ADDR_PTR, FifoTxBaseAddr)
- self.writeRegister(REG_PAYLOAD_LENGTH, 0)
-
-
- def endPacket(self):
- # put in TX mode
- self.writeRegister(REG_OP_MODE, MODE_LONG_RANGE_MODE | MODE_TX)
-
- # wait for TX done, standby automatically on TX_DONE
- tmo = 0
- freg = self.readRegister(REG_IRQ_FLAGS)
- while (freg & IRQ_TX_DONE_MASK) == 0:
- time.sleep_ms(10)
- tmo += 1
- if tmo > 20:
- break
- freg = self.readRegister(REG_IRQ_FLAGS)
- pass
-
- # clear IRQ's
- self.writeRegister(REG_IRQ_FLAGS, IRQ_TX_DONE_MASK)
-
- if tmo >= 20:
- print("Send timeout.")
-
- self.collect_garbage()
-
-
- def write(self, buffer):
- currentLength = self.readRegister(REG_PAYLOAD_LENGTH)
- size = len(buffer)
-
- # check size
- size = min(size, (MAX_PKT_LENGTH - FifoTxBaseAddr - currentLength))
-
- # write data
- for i in range(size):
- self.writeRegister(REG_FIFO, buffer[i])
-
- # update length
- self.writeRegister(REG_PAYLOAD_LENGTH, currentLength + size)
- return size
-
-
- def aquire_lock(self, lock = False):
- pass
-
-
- def println(self, string, implicitHeader = False):
- self.aquire_lock(True) # wait until RX_Done, lock and begin writing.
-
- self.beginPacket(implicitHeader)
- self.write(string.encode())
- self.endPacket()
-
- self.aquire_lock(False) # unlock when done writing
-
-
- def getIrqFlags(self):
- irqFlags = self.readRegister(REG_IRQ_FLAGS)
- self.writeRegister(REG_IRQ_FLAGS, irqFlags)
- return irqFlags
-
-
- def packetRssi(self):
- return (self.readRegister(REG_PKT_RSSI_VALUE) - (164 if self._frequency < 868E6 else 157))
-
-
- def packetSnr(self):
- return (self.readRegister(REG_PKT_SNR_VALUE)) * 0.25
-
-
- def standby(self):
- self.writeRegister(REG_OP_MODE, MODE_LONG_RANGE_MODE | MODE_STDBY)
-
-
- def sleep(self):
- self.writeRegister(REG_OP_MODE, MODE_LONG_RANGE_MODE | MODE_SLEEP)
-
-
- def setTxPower(self, level, outputPin = PA_OUTPUT_PA_BOOST_PIN):
- if (outputPin == PA_OUTPUT_RFO_PIN):
- # RFO
- level = min(max(level, 0), 14)
- self.writeRegister(REG_PA_CONFIG, 0x70 | level)
-
- else:
- # PA BOOST
- level = min(max(level, 2), 17)
- self.writeRegister(REG_PA_CONFIG, PA_BOOST | (level - 2))
-
-
- def setFrequency(self, frequency):
- self._frequency = frequency
-
- frfs = {169E6: (42, 64, 0),
- 433E6: (108, 64, 0),
- 434E6: (108, 128, 0),
- 866E6: (216, 128, 0),
- 868E6: (217, 0, 0),
- 915E6: (228, 192, 0)}
-
- self.writeRegister(REG_FRF_MSB, frfs[frequency][0])
- self.writeRegister(REG_FRF_MID, frfs[frequency][1])
- self.writeRegister(REG_FRF_LSB, frfs[frequency][2])
-
-
- def setSpreadingFactor(self, sf):
- sf = min(max(sf, 6), 12)
- self.writeRegister(REG_DETECTION_OPTIMIZE, 0xc5 if sf == 6 else 0xc3)
- self.writeRegister(REG_DETECTION_THRESHOLD, 0x0c if sf == 6 else 0x0a)
- self.writeRegister(REG_MODEM_CONFIG_2, (self.readRegister(REG_MODEM_CONFIG_2) & 0x0f) | ((sf << 4) & 0xf0))
-
-
- def setSignalBandwidth(self, sbw):
- bins = (7.8E3, 10.4E3, 15.6E3, 20.8E3, 31.25E3, 41.7E3, 62.5E3, 125E3, 250E3)
-
- bw = 9
- for i in range(len(bins)):
- if sbw <= bins[i]:
- bw = i
- break
-
- self.writeRegister(REG_MODEM_CONFIG_1, (self.readRegister(REG_MODEM_CONFIG_1) & 0x0f) | (bw << 4))
-
-
- def setCodingRate(self, denominator):
- denominator = min(max(denominator, 5), 8)
- cr = denominator - 4
- self.writeRegister(REG_MODEM_CONFIG_1, (self.readRegister(REG_MODEM_CONFIG_1) & 0xf1) | (cr << 1))
-
-
- def setPreambleLength(self, length):
- self.writeRegister(REG_PREAMBLE_MSB, (length >> 8) & 0xff)
- self.writeRegister(REG_PREAMBLE_LSB, (length >> 0) & 0xff)
-
-
- def enableCRC(self, enable_CRC = False):
- modem_config_2 = self.readRegister(REG_MODEM_CONFIG_2)
- config = modem_config_2 | 0x04 if enable_CRC else modem_config_2 & 0xfb
- self.writeRegister(REG_MODEM_CONFIG_2, config)
-
-
- def setSyncWord(self, sw):
- self.writeRegister(REG_SYNC_WORD, sw)
-
-
- # def enable_Rx_Done_IRQ(self, enable = True):
- # if enable:
- # self.writeRegister(REG_IRQ_FLAGS_MASK, self.readRegister(REG_IRQ_FLAGS_MASK) & ~IRQ_RX_DONE_MASK)
- # else:
- # self.writeRegister(REG_IRQ_FLAGS_MASK, self.readRegister(REG_IRQ_FLAGS_MASK) | IRQ_RX_DONE_MASK)
-
-
- def dumpRegisters(self):
- for i in range(128):
- print("0x{0:02x}: {1:02x}".format(i, self.readRegister(i)))
-
-
- def implicitHeaderMode(self, implicitHeaderMode = False):
- if self._implicitHeaderMode != implicitHeaderMode: # set value only if different.
- self._implicitHeaderMode = implicitHeaderMode
- modem_config_1 = self.readRegister(REG_MODEM_CONFIG_1)
- config = modem_config_1 | 0x01 if implicitHeaderMode else modem_config_1 & 0xfe
- self.writeRegister(REG_MODEM_CONFIG_1, config)
-
-
- def onReceive(self, callback):
- self._onReceive = callback
-
- if self.pin_RxDone:
- if callback:
- self.writeRegister(REG_DIO_MAPPING_1, 0x00)
- self.pin_RxDone.set_handler_for_irq_on_rising_edge(handler = self.handleOnReceive)
- else:
- self.pin_RxDone.detach_irq()
-
-
- def receive(self, size = 0):
- self.implicitHeaderMode(size > 0)
- if size > 0: self.writeRegister(REG_PAYLOAD_LENGTH, size & 0xff)
-
- # The last packet always starts at FIFO_RX_CURRENT_ADDR
- # no need to reset FIFO_ADDR_PTR
- self.writeRegister(REG_OP_MODE, MODE_LONG_RANGE_MODE | MODE_RX_CONTINUOUS)
-
-
- # on RPi, interrupt callback is threaded and racing with main thread,
- # Needs a lock for accessing FIFO.
- # https://sourceforge.net/p/raspberry-gpio-python/wiki/Inputs/
- # http://raspi.tv/2013/how-to-use-interrupts-with-python-on-the-raspberry-pi-and-rpi-gpio-part-2
- def handleOnReceive(self, event_source):
- self.aquire_lock(True) # lock until TX_Done
-
- # irqFlags = self.getIrqFlags() should be 0x50
- if (self.getIrqFlags() & IRQ_PAYLOAD_CRC_ERROR_MASK) == 0:
- if self._onReceive:
- payload = self.read_payload()
- self.aquire_lock(False) # unlock when done reading
-
- self._onReceive(self, payload)
-
- self.aquire_lock(False) # unlock in any case.
-
-
- def receivedPacket(self, size = 0):
- irqFlags = self.getIrqFlags()
-
- self.implicitHeaderMode(size > 0)
- if size > 0: self.writeRegister(REG_PAYLOAD_LENGTH, size & 0xff)
-
- # if (irqFlags & IRQ_RX_DONE_MASK) and \
- # (irqFlags & IRQ_RX_TIME_OUT_MASK == 0) and \
- # (irqFlags & IRQ_PAYLOAD_CRC_ERROR_MASK == 0):
-
- if (irqFlags == IRQ_RX_DONE_MASK): # RX_DONE only, irqFlags should be 0x40
- # automatically standby when RX_DONE
- return True
-
- elif self.readRegister(REG_OP_MODE) != (MODE_LONG_RANGE_MODE | MODE_RX_SINGLE):
- # no packet received.
- # reset FIFO address / # enter single RX mode
- self.writeRegister(REG_FIFO_ADDR_PTR, FifoRxBaseAddr)
- self.writeRegister(REG_OP_MODE, MODE_LONG_RANGE_MODE | MODE_RX_SINGLE)
-
-
- def read_payload(self):
- # set FIFO address to current RX address
- # fifo_rx_current_addr = self.readRegister(REG_FIFO_RX_CURRENT_ADDR)
- self.writeRegister(REG_FIFO_ADDR_PTR, self.readRegister(REG_FIFO_RX_CURRENT_ADDR))
-
- # read packet length
- packetLength = self.readRegister(REG_PAYLOAD_LENGTH) if self._implicitHeaderMode else \
- self.readRegister(REG_RX_NB_BYTES)
-
- payload = bytearray()
- for i in range(packetLength):
- payload.append(self.readRegister(REG_FIFO))
-
- self.collect_garbage()
- return bytes(payload)
-
-
- def readRegister(self, address, byteorder = 'big', signed = False):
- response = self.transfer(self.pin_ss, address & 0x7f)
- return int.from_bytes(response, byteorder)
-
-
- def writeRegister(self, address, value):
- self.transfer(self.pin_ss, address | 0x80, value)
-
-
- def collect_garbage(self):
- gc.collect()
- print('[Memory - free: {} allocated: {}]'.format(gc.mem_free(), gc.mem_alloc()))
-
diff --git a/MicroPython_BUILD/components/internalfs_image/image_go/main.py b/MicroPython_BUILD/components/internalfs_image/image_go/main.py
deleted file mode 100644
index bdd7fd5..0000000
--- a/MicroPython_BUILD/components/internalfs_image/image_go/main.py
+++ /dev/null
@@ -1,34 +0,0 @@
-import machine, network, utime
-
-print("")
-print("Starting WiFi ...")
-sta_if = network.WLAN(network.STA_IF); sta_if.active(True)
-sta_if.connect("mySSID", "wifi_password")
-tmo = 50
-while not sta_if.isconnected():
- utime.sleep_ms(100)
- tmo -= 1
- if tmo == 0:
- sta_if.disconnect()
- break
-
-if tmo > 0:
- print("WiFi started")
- utime.sleep_ms(500)
-
- rtc = machine.RTC()
- print("Synchronize time from NTP server ...")
- rtc.ntp_sync(server="hr.pool.ntp.org")
- tmo = 100
- while not rtc.synced():
- utime.sleep_ms(100)
- tmo -= 1
- if tmo == 0:
- break
-
- if tmo > 0:
- print("Time set")
- utime.sleep_ms(500)
- t = rtc.now()
- utime.strftime("%c")
- print("")
diff --git a/MicroPython_BUILD/components/internalfs_image/image_go/spiffs.info b/MicroPython_BUILD/components/internalfs_image/image_go/spiffs.info
deleted file mode 100644
index 68946a2..0000000
--- a/MicroPython_BUILD/components/internalfs_image/image_go/spiffs.info
+++ /dev/null
@@ -1,11 +0,0 @@
-INTRODUCTION
-
-Spiffs is a file system intended for SPI NOR flash devices on embedded targets.
-Spiffs is designed with following characteristics in mind:
-
- * Small (embedded) targets, sparse RAM without heap
- * Only big areas of data (blocks) can be erased
- * An erase will reset all bits in block to ones
- * Writing pulls one to zeroes
- * Zeroes can only be pulled to ones by erase
- * Wear leveling
diff --git a/MicroPython_BUILD/components/internalfs_image/image_go/www/favicon.ico b/MicroPython_BUILD/components/internalfs_image/image_go/www/favicon.ico
deleted file mode 100644
index 169f21ce9ce4c9d252e175d16f68368cfa7f6c4f..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 7902
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
-
-
-
-
-
- MicroWebSrv test page
-
-
-
-
- MicroWebSrv test page
- Hello from MicroPython !
-
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis eget ligula quis libero mollis dapibus. Suspendisse potenti. Nullam facilisis neque et sem. Proin placerat adipiscing urna. Aenean sollicitudin. Mauris lorem erat, fringilla quis, sagittis a, varius sed, nunc. Pellentesque ligula. Nullam egestas eleifend turpis. Vivamus ac sapien. Sed venenatis, ligula ut scelerisque vehicula, erat tellus euismod ipsum, eget faucibus tortor arcu et lectus. Vivamus vel purus. Fusce dignissim tortor quis diam elementum fermentum. Mauris eleifend lorem vel arcu. Vivamus tempus faucibus lectus. Curabitur volutpat ornare mi. Curabitur ac libero. Sed eu elit ac metus egestas iaculis.
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/MicroPython_BUILD/components/internalfs_image/image_go/www/pdf-sample.pdf b/MicroPython_BUILD/components/internalfs_image/image_go/www/pdf-sample.pdf
deleted file mode 100644
index f698ff53d41575b222e6778f87f9e9fd8da4f2b1..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 7945
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
Z0S3#ENH3PVYs5iAE1s@?F6*2Ung9(Q3(x=n
diff --git a/MicroPython_BUILD/components/internalfs_image/image_go/www/style.css b/MicroPython_BUILD/components/internalfs_image/image_go/www/style.css
deleted file mode 100644
index 9a7852e..0000000
--- a/MicroPython_BUILD/components/internalfs_image/image_go/www/style.css
+++ /dev/null
@@ -1,36 +0,0 @@
-html, body {
- margin: 0;
- padding: 0;
- }
-body {
- background-color: white;
- font-family: Verdana, sans-serif;
- font-size: 100%;
- }
-h1 {
- font-size: 200%;
- color: navy;
- text-align: center;
- }
-h2 {
- font-size: 150%;
- color: red;
- padding-left: 15px;
- }
-p,ul,li,td {
- color: black;
- }
-a:link {
- color: green;
- text-decoration: underline;
- }
-a:visited {
- color: gray;
- }
-a:hover {
- color: red;
- text-decoration: none;
-}
-a:active, a:focus {
- color: red;
-}
\ No newline at end of file
diff --git a/MicroPython_BUILD/components/internalfs_image/image_go/www/test.pyhtml b/MicroPython_BUILD/components/internalfs_image/image_go/www/test.pyhtml
deleted file mode 100644
index bb98d2c..0000000
--- a/MicroPython_BUILD/components/internalfs_image/image_go/www/test.pyhtml
+++ /dev/null
@@ -1,34 +0,0 @@
-
-
- TEST
-
-
- BEGIN
- {{ py }}
- def _testFunction(x) :
- return "IN TEST FUNCTION %s" % x
- {{ end }}
-
- {{ for toto in range(3) }}
- This is an HTML test...
- TOTO = {{ toto + 1 }} !
- {{ for toto2 in range(3) }}
- TOTO2 = {{ _testFunction(toto2) }}
- {{ end }}
- Ok good.
- {{ end }}
-
- {{ _testFunction(100) }}
-
- {{ if 2+5 < 3 }}
- IN IF (1)
- {{ elif 10+15 != 25 }}
- IN ELIF (2)
- {{ elif 10+15 == 25 }}
- IN ELIF (3)
- {{ else }}
- IN ELSE (4)
- {{ end }}
- JC :')
-
-
diff --git a/MicroPython_BUILD/components/internalfs_image/spiffs_image.img b/MicroPython_BUILD/components/internalfs_image/spiffs_image.img
deleted file mode 100644
index 0c612e7f37cb478700fadb277df53f1aa5b57d08..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 1048576
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