^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) // SPDX-License-Identifier: GPL-2.0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) * Procedures for drawing on the screen early on in the boot process.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) * Benjamin Herrenschmidt <benh@kernel.crashing.org>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) #include <linux/kernel.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) #include <linux/string.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) #include <linux/init.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) #include <linux/console.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) #include <asm/btext.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) #include <asm/oplib.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) #include <asm/io.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) #define NO_SCROLL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) #ifndef NO_SCROLL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) static void scrollscreen(void);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) static void draw_byte(unsigned char c, long locX, long locY);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) static void draw_byte_32(unsigned char *bits, unsigned int *base, int rb);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) static void draw_byte_16(unsigned char *bits, unsigned int *base, int rb);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) static void draw_byte_8(unsigned char *bits, unsigned int *base, int rb);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) #define __force_data __section(".data")
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) static int g_loc_X __force_data;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) static int g_loc_Y __force_data;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) static int g_max_loc_X __force_data;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) static int g_max_loc_Y __force_data;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) static int dispDeviceRowBytes __force_data;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) static int dispDeviceDepth __force_data;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) static int dispDeviceRect[4] __force_data;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) static unsigned char *dispDeviceBase __force_data;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) #define cmapsz (16*256)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) static unsigned char vga_font[cmapsz];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) static int __init btext_initialize(phandle node)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) unsigned int width, height, depth, pitch;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) unsigned long address = 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) u32 prop;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) if (prom_getproperty(node, "width", (char *)&width, 4) < 0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) return -EINVAL;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) if (prom_getproperty(node, "height", (char *)&height, 4) < 0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) return -EINVAL;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) if (prom_getproperty(node, "depth", (char *)&depth, 4) < 0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) return -EINVAL;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) pitch = width * ((depth + 7) / 8);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) if (prom_getproperty(node, "linebytes", (char *)&prop, 4) >= 0 &&
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) prop != 0xffffffffu)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) pitch = prop;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) if (pitch == 1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) pitch = 0x1000;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) if (prom_getproperty(node, "address", (char *)&prop, 4) >= 0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) address = prop;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) /* FIXME: Add support for PCI reg properties. Right now, only
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) * reliable on macs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) if (address == 0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) return -EINVAL;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) g_loc_X = 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) g_loc_Y = 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) g_max_loc_X = width / 8;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) g_max_loc_Y = height / 16;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) dispDeviceBase = (unsigned char *)address;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) dispDeviceRowBytes = pitch;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79) dispDeviceDepth = depth == 15 ? 16 : depth;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) dispDeviceRect[0] = dispDeviceRect[1] = 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81) dispDeviceRect[2] = width;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82) dispDeviceRect[3] = height;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84) return 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87) /* Calc the base address of a given point (x,y) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88) static unsigned char * calc_base(int x, int y)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90) unsigned char *base = dispDeviceBase;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92) base += (x + dispDeviceRect[0]) * (dispDeviceDepth >> 3);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93) base += (y + dispDeviceRect[1]) * dispDeviceRowBytes;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 94) return base;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 95) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 96)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 97) static void btext_clearscreen(void)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 98) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 99) unsigned int *base = (unsigned int *)calc_base(0, 0);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) unsigned long width = ((dispDeviceRect[2] - dispDeviceRect[0]) *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) (dispDeviceDepth >> 3)) >> 2;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) int i,j;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) for (i=0; i<(dispDeviceRect[3] - dispDeviceRect[1]); i++)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) unsigned int *ptr = base;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) for(j=width; j; --j)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) *(ptr++) = 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) base += (dispDeviceRowBytes >> 2);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) #ifndef NO_SCROLL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) static void scrollscreen(void)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) unsigned int *src = (unsigned int *)calc_base(0,16);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) unsigned int *dst = (unsigned int *)calc_base(0,0);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) unsigned long width = ((dispDeviceRect[2] - dispDeviceRect[0]) *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) (dispDeviceDepth >> 3)) >> 2;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) int i,j;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) for (i=0; i<(dispDeviceRect[3] - dispDeviceRect[1] - 16); i++)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) unsigned int *src_ptr = src;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) unsigned int *dst_ptr = dst;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) for(j=width; j; --j)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) *(dst_ptr++) = *(src_ptr++);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) src += (dispDeviceRowBytes >> 2);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) dst += (dispDeviceRowBytes >> 2);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) for (i=0; i<16; i++)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) unsigned int *dst_ptr = dst;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) for(j=width; j; --j)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135) *(dst_ptr++) = 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) dst += (dispDeviceRowBytes >> 2);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) #endif /* ndef NO_SCROLL */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141) static void btext_drawchar(char c)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143) int cline = 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144) #ifdef NO_SCROLL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145) int x;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147) switch (c) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148) case '\b':
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149) if (g_loc_X > 0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) --g_loc_X;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151) break;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152) case '\t':
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153) g_loc_X = (g_loc_X & -8) + 8;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154) break;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155) case '\r':
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156) g_loc_X = 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157) break;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158) case '\n':
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159) g_loc_X = 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160) g_loc_Y++;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161) cline = 1;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162) break;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163) default:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164) draw_byte(c, g_loc_X++, g_loc_Y);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166) if (g_loc_X >= g_max_loc_X) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167) g_loc_X = 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168) g_loc_Y++;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169) cline = 1;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171) #ifndef NO_SCROLL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172) while (g_loc_Y >= g_max_loc_Y) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173) scrollscreen();
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174) g_loc_Y--;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176) #else
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177) /* wrap around from bottom to top of screen so we don't
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178) waste time scrolling each line. -- paulus. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179) if (g_loc_Y >= g_max_loc_Y)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 180) g_loc_Y = 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 181) if (cline) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 182) for (x = 0; x < g_max_loc_X; ++x)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 183) draw_byte(' ', x, g_loc_Y);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 184) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 185) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 186) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 187)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 188) static void btext_drawtext(const char *c, unsigned int len)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 189) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 190) while (len--)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 191) btext_drawchar(*c++);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 192) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 193)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 194) static void draw_byte(unsigned char c, long locX, long locY)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 195) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 196) unsigned char *base = calc_base(locX << 3, locY << 4);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 197) unsigned char *font = &vga_font[((unsigned int)c) * 16];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 198) int rb = dispDeviceRowBytes;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 199)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 200) switch(dispDeviceDepth) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 201) case 24:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 202) case 32:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 203) draw_byte_32(font, (unsigned int *)base, rb);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 204) break;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 205) case 15:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 206) case 16:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 207) draw_byte_16(font, (unsigned int *)base, rb);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 208) break;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 209) case 8:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 210) draw_byte_8(font, (unsigned int *)base, rb);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 211) break;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 212) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 213) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 214)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 215) static unsigned int expand_bits_8[16] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 216) 0x00000000,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 217) 0x000000ff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 218) 0x0000ff00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 219) 0x0000ffff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 220) 0x00ff0000,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 221) 0x00ff00ff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 222) 0x00ffff00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 223) 0x00ffffff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 224) 0xff000000,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 225) 0xff0000ff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 226) 0xff00ff00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 227) 0xff00ffff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 228) 0xffff0000,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 229) 0xffff00ff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 230) 0xffffff00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 231) 0xffffffff
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 232) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 233)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 234) static unsigned int expand_bits_16[4] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 235) 0x00000000,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 236) 0x0000ffff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 237) 0xffff0000,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 238) 0xffffffff
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 239) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 240)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 241)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 242) static void draw_byte_32(unsigned char *font, unsigned int *base, int rb)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 243) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 244) int l, bits;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 245) int fg = 0xFFFFFFFFUL;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 246) int bg = 0x00000000UL;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 247)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 248) for (l = 0; l < 16; ++l)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 249) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 250) bits = *font++;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 251) base[0] = (-(bits >> 7) & fg) ^ bg;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 252) base[1] = (-((bits >> 6) & 1) & fg) ^ bg;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 253) base[2] = (-((bits >> 5) & 1) & fg) ^ bg;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 254) base[3] = (-((bits >> 4) & 1) & fg) ^ bg;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 255) base[4] = (-((bits >> 3) & 1) & fg) ^ bg;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 256) base[5] = (-((bits >> 2) & 1) & fg) ^ bg;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 257) base[6] = (-((bits >> 1) & 1) & fg) ^ bg;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 258) base[7] = (-(bits & 1) & fg) ^ bg;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 259) base = (unsigned int *) ((char *)base + rb);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 260) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 261) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 262)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 263) static void draw_byte_16(unsigned char *font, unsigned int *base, int rb)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 264) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 265) int l, bits;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 266) int fg = 0xFFFFFFFFUL;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 267) int bg = 0x00000000UL;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 268) unsigned int *eb = (int *)expand_bits_16;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 269)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 270) for (l = 0; l < 16; ++l)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 271) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 272) bits = *font++;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 273) base[0] = (eb[bits >> 6] & fg) ^ bg;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 274) base[1] = (eb[(bits >> 4) & 3] & fg) ^ bg;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 275) base[2] = (eb[(bits >> 2) & 3] & fg) ^ bg;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 276) base[3] = (eb[bits & 3] & fg) ^ bg;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 277) base = (unsigned int *) ((char *)base + rb);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 278) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 279) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 280)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 281) static void draw_byte_8(unsigned char *font, unsigned int *base, int rb)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 282) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 283) int l, bits;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 284) int fg = 0x0F0F0F0FUL;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 285) int bg = 0x00000000UL;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 286) unsigned int *eb = (int *)expand_bits_8;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 287)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 288) for (l = 0; l < 16; ++l)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 289) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 290) bits = *font++;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 291) base[0] = (eb[bits >> 4] & fg) ^ bg;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 292) base[1] = (eb[bits & 0xf] & fg) ^ bg;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 293) base = (unsigned int *) ((char *)base + rb);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 294) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 295) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 296)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 297) static void btext_console_write(struct console *con, const char *s,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 298) unsigned int n)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 299) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 300) btext_drawtext(s, n);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 301) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 302)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 303) static struct console btext_console = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 304) .name = "btext",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 305) .write = btext_console_write,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 306) .flags = CON_PRINTBUFFER | CON_ENABLED | CON_BOOT | CON_ANYTIME,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 307) .index = 0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 308) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 309)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 310) int __init btext_find_display(void)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 311) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 312) phandle node;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 313) char type[32];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 314) int ret;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 315)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 316) node = prom_inst2pkg(prom_stdout);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 317) if (prom_getproperty(node, "device_type", type, 32) < 0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 318) return -ENODEV;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 319) if (strcmp(type, "display"))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 320) return -ENODEV;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 321)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 322) ret = btext_initialize(node);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 323) if (!ret) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 324) btext_clearscreen();
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 325) register_console(&btext_console);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 326) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 327) return ret;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 328) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 329)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 330) static unsigned char vga_font[cmapsz] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 331) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 332) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x81, 0xa5, 0x81, 0x81, 0xbd,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 333) 0x99, 0x81, 0x81, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 334) 0xdb, 0xff, 0xff, 0xc3, 0xe7, 0xff, 0xff, 0x7e, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 335) 0x00, 0x00, 0x00, 0x00, 0x6c, 0xfe, 0xfe, 0xfe, 0xfe, 0x7c, 0x38, 0x10,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 336) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x38, 0x7c, 0xfe,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 337) 0x7c, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 338) 0x3c, 0x3c, 0xe7, 0xe7, 0xe7, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 339) 0x00, 0x00, 0x00, 0x18, 0x3c, 0x7e, 0xff, 0xff, 0x7e, 0x18, 0x18, 0x3c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 340) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x3c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 341) 0x3c, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 342) 0xff, 0xff, 0xe7, 0xc3, 0xc3, 0xe7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 343) 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x66, 0x42, 0x42, 0x66, 0x3c, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 344) 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc3, 0x99, 0xbd,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 345) 0xbd, 0x99, 0xc3, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x1e, 0x0e,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 346) 0x1a, 0x32, 0x78, 0xcc, 0xcc, 0xcc, 0xcc, 0x78, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 347) 0x00, 0x00, 0x3c, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x18, 0x7e, 0x18, 0x18,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 348) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x33, 0x3f, 0x30, 0x30, 0x30,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 349) 0x30, 0x70, 0xf0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x63,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 350) 0x7f, 0x63, 0x63, 0x63, 0x63, 0x67, 0xe7, 0xe6, 0xc0, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 351) 0x00, 0x00, 0x00, 0x18, 0x18, 0xdb, 0x3c, 0xe7, 0x3c, 0xdb, 0x18, 0x18,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 352) 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0xfe, 0xf8,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 353) 0xf0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x06, 0x0e,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 354) 0x1e, 0x3e, 0xfe, 0x3e, 0x1e, 0x0e, 0x06, 0x02, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 355) 0x00, 0x00, 0x18, 0x3c, 0x7e, 0x18, 0x18, 0x18, 0x7e, 0x3c, 0x18, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 356) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 357) 0x66, 0x00, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xdb,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 358) 0xdb, 0xdb, 0x7b, 0x1b, 0x1b, 0x1b, 0x1b, 0x1b, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 359) 0x00, 0x7c, 0xc6, 0x60, 0x38, 0x6c, 0xc6, 0xc6, 0x6c, 0x38, 0x0c, 0xc6,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 360) 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 361) 0xfe, 0xfe, 0xfe, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x3c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 362) 0x7e, 0x18, 0x18, 0x18, 0x7e, 0x3c, 0x18, 0x7e, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 363) 0x00, 0x00, 0x18, 0x3c, 0x7e, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 364) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 365) 0x18, 0x7e, 0x3c, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 366) 0x00, 0x18, 0x0c, 0xfe, 0x0c, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 367) 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x60, 0xfe, 0x60, 0x30, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 368) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 369) 0xc0, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 370) 0x00, 0x24, 0x66, 0xff, 0x66, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 371) 0x00, 0x00, 0x00, 0x00, 0x10, 0x38, 0x38, 0x7c, 0x7c, 0xfe, 0xfe, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 372) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0x7c, 0x7c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 373) 0x38, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 374) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 375) 0x00, 0x00, 0x18, 0x3c, 0x3c, 0x3c, 0x18, 0x18, 0x18, 0x00, 0x18, 0x18,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 376) 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x24, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 377) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 378) 0x6c, 0xfe, 0x6c, 0x6c, 0x6c, 0xfe, 0x6c, 0x6c, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 379) 0x18, 0x18, 0x7c, 0xc6, 0xc2, 0xc0, 0x7c, 0x06, 0x06, 0x86, 0xc6, 0x7c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 380) 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc2, 0xc6, 0x0c, 0x18,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 381) 0x30, 0x60, 0xc6, 0x86, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x6c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 382) 0x6c, 0x38, 0x76, 0xdc, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 383) 0x00, 0x30, 0x30, 0x30, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 384) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x18, 0x30, 0x30, 0x30, 0x30,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 385) 0x30, 0x30, 0x18, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x18,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 386) 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x18, 0x30, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 387) 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x3c, 0xff, 0x3c, 0x66, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 388) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x7e,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 389) 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 390) 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x30, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 391) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 392) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 393) 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 394) 0x02, 0x06, 0x0c, 0x18, 0x30, 0x60, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 395) 0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xce, 0xde, 0xf6, 0xe6, 0xc6, 0xc6, 0x7c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 396) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x38, 0x78, 0x18, 0x18, 0x18,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 397) 0x18, 0x18, 0x18, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xc6,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 398) 0x06, 0x0c, 0x18, 0x30, 0x60, 0xc0, 0xc6, 0xfe, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 399) 0x00, 0x00, 0x7c, 0xc6, 0x06, 0x06, 0x3c, 0x06, 0x06, 0x06, 0xc6, 0x7c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 400) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x1c, 0x3c, 0x6c, 0xcc, 0xfe,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 401) 0x0c, 0x0c, 0x0c, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xc0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 402) 0xc0, 0xc0, 0xfc, 0x06, 0x06, 0x06, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 403) 0x00, 0x00, 0x38, 0x60, 0xc0, 0xc0, 0xfc, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 404) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xc6, 0x06, 0x06, 0x0c, 0x18,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 405) 0x30, 0x30, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xc6,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 406) 0xc6, 0xc6, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 407) 0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0x7e, 0x06, 0x06, 0x06, 0x0c, 0x78,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 408) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 409) 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 410) 0x18, 0x18, 0x00, 0x00, 0x00, 0x18, 0x18, 0x30, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 411) 0x00, 0x00, 0x00, 0x06, 0x0c, 0x18, 0x30, 0x60, 0x30, 0x18, 0x0c, 0x06,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 412) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 413) 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 414) 0x30, 0x18, 0x0c, 0x06, 0x0c, 0x18, 0x30, 0x60, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 415) 0x00, 0x00, 0x7c, 0xc6, 0xc6, 0x0c, 0x18, 0x18, 0x18, 0x00, 0x18, 0x18,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 416) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xde, 0xde,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 417) 0xde, 0xdc, 0xc0, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x38,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 418) 0x6c, 0xc6, 0xc6, 0xfe, 0xc6, 0xc6, 0xc6, 0xc6, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 419) 0x00, 0x00, 0xfc, 0x66, 0x66, 0x66, 0x7c, 0x66, 0x66, 0x66, 0x66, 0xfc,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 420) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x66, 0xc2, 0xc0, 0xc0, 0xc0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 421) 0xc0, 0xc2, 0x66, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x6c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 422) 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x6c, 0xf8, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 423) 0x00, 0x00, 0xfe, 0x66, 0x62, 0x68, 0x78, 0x68, 0x60, 0x62, 0x66, 0xfe,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 424) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x66, 0x62, 0x68, 0x78, 0x68,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 425) 0x60, 0x60, 0x60, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x66,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 426) 0xc2, 0xc0, 0xc0, 0xde, 0xc6, 0xc6, 0x66, 0x3a, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 427) 0x00, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xfe, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 428) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x18, 0x18, 0x18, 0x18, 0x18,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 429) 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x0c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 430) 0x0c, 0x0c, 0x0c, 0x0c, 0xcc, 0xcc, 0xcc, 0x78, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 431) 0x00, 0x00, 0xe6, 0x66, 0x66, 0x6c, 0x78, 0x78, 0x6c, 0x66, 0x66, 0xe6,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 432) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x60, 0x60, 0x60, 0x60, 0x60,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 433) 0x60, 0x62, 0x66, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc3, 0xe7,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 434) 0xff, 0xff, 0xdb, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 435) 0x00, 0x00, 0xc6, 0xe6, 0xf6, 0xfe, 0xde, 0xce, 0xc6, 0xc6, 0xc6, 0xc6,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 436) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 437) 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x66,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 438) 0x66, 0x66, 0x7c, 0x60, 0x60, 0x60, 0x60, 0xf0, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 439) 0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xd6, 0xde, 0x7c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 440) 0x0c, 0x0e, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x66, 0x66, 0x66, 0x7c, 0x6c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 441) 0x66, 0x66, 0x66, 0xe6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xc6,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 442) 0xc6, 0x60, 0x38, 0x0c, 0x06, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 443) 0x00, 0x00, 0xff, 0xdb, 0x99, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 444) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 445) 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc3, 0xc3,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 446) 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0x66, 0x3c, 0x18, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 447) 0x00, 0x00, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xdb, 0xdb, 0xff, 0x66, 0x66,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 448) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc3, 0xc3, 0x66, 0x3c, 0x18, 0x18,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 449) 0x3c, 0x66, 0xc3, 0xc3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc3, 0xc3,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 450) 0xc3, 0x66, 0x3c, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 451) 0x00, 0x00, 0xff, 0xc3, 0x86, 0x0c, 0x18, 0x30, 0x60, 0xc1, 0xc3, 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 452) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x30, 0x30, 0x30, 0x30, 0x30,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 453) 0x30, 0x30, 0x30, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 454) 0xc0, 0xe0, 0x70, 0x38, 0x1c, 0x0e, 0x06, 0x02, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 455) 0x00, 0x00, 0x3c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x3c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 456) 0x00, 0x00, 0x00, 0x00, 0x10, 0x38, 0x6c, 0xc6, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 457) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 458) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 459) 0x30, 0x30, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 460) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x0c, 0x7c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 461) 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x60,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 462) 0x60, 0x78, 0x6c, 0x66, 0x66, 0x66, 0x66, 0x7c, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 463) 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xc6, 0xc0, 0xc0, 0xc0, 0xc6, 0x7c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 464) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x0c, 0x0c, 0x3c, 0x6c, 0xcc,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 465) 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 466) 0x00, 0x7c, 0xc6, 0xfe, 0xc0, 0xc0, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 467) 0x00, 0x00, 0x38, 0x6c, 0x64, 0x60, 0xf0, 0x60, 0x60, 0x60, 0x60, 0xf0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 468) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xcc, 0xcc,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 469) 0xcc, 0xcc, 0xcc, 0x7c, 0x0c, 0xcc, 0x78, 0x00, 0x00, 0x00, 0xe0, 0x60,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 470) 0x60, 0x6c, 0x76, 0x66, 0x66, 0x66, 0x66, 0xe6, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 471) 0x00, 0x00, 0x18, 0x18, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 472) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x06, 0x00, 0x0e, 0x06, 0x06,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 473) 0x06, 0x06, 0x06, 0x06, 0x66, 0x66, 0x3c, 0x00, 0x00, 0x00, 0xe0, 0x60,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 474) 0x60, 0x66, 0x6c, 0x78, 0x78, 0x6c, 0x66, 0xe6, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 475) 0x00, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 476) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe6, 0xff, 0xdb,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 477) 0xdb, 0xdb, 0xdb, 0xdb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 478) 0x00, 0xdc, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 479) 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 480) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x66, 0x66,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 481) 0x66, 0x66, 0x66, 0x7c, 0x60, 0x60, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 482) 0x00, 0x76, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x7c, 0x0c, 0x0c, 0x1e, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 483) 0x00, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x76, 0x66, 0x60, 0x60, 0x60, 0xf0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 484) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xc6, 0x60,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 485) 0x38, 0x0c, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x30,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 486) 0x30, 0xfc, 0x30, 0x30, 0x30, 0x30, 0x36, 0x1c, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 487) 0x00, 0x00, 0x00, 0x00, 0x00, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x76,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 488) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc3, 0xc3, 0xc3,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 489) 0xc3, 0x66, 0x3c, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 490) 0x00, 0xc3, 0xc3, 0xc3, 0xdb, 0xdb, 0xff, 0x66, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 491) 0x00, 0x00, 0x00, 0x00, 0x00, 0xc3, 0x66, 0x3c, 0x18, 0x3c, 0x66, 0xc3,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 492) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0xc6, 0xc6,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 493) 0xc6, 0xc6, 0xc6, 0x7e, 0x06, 0x0c, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 494) 0x00, 0xfe, 0xcc, 0x18, 0x30, 0x60, 0xc6, 0xfe, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 495) 0x00, 0x00, 0x0e, 0x18, 0x18, 0x18, 0x70, 0x18, 0x18, 0x18, 0x18, 0x0e,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 496) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x00, 0x18,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 497) 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x18,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 498) 0x18, 0x18, 0x0e, 0x18, 0x18, 0x18, 0x18, 0x70, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 499) 0x00, 0x00, 0x76, 0xdc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 500) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x38, 0x6c, 0xc6,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 501) 0xc6, 0xc6, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x66,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 502) 0xc2, 0xc0, 0xc0, 0xc0, 0xc2, 0x66, 0x3c, 0x0c, 0x06, 0x7c, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 503) 0x00, 0x00, 0xcc, 0x00, 0x00, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x76,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 504) 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x18, 0x30, 0x00, 0x7c, 0xc6, 0xfe,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 505) 0xc0, 0xc0, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x38, 0x6c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 506) 0x00, 0x78, 0x0c, 0x7c, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 507) 0x00, 0x00, 0xcc, 0x00, 0x00, 0x78, 0x0c, 0x7c, 0xcc, 0xcc, 0xcc, 0x76,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 508) 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x30, 0x18, 0x00, 0x78, 0x0c, 0x7c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 509) 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x6c, 0x38,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 510) 0x00, 0x78, 0x0c, 0x7c, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 511) 0x00, 0x00, 0x00, 0x00, 0x3c, 0x66, 0x60, 0x60, 0x66, 0x3c, 0x0c, 0x06,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 512) 0x3c, 0x00, 0x00, 0x00, 0x00, 0x10, 0x38, 0x6c, 0x00, 0x7c, 0xc6, 0xfe,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 513) 0xc0, 0xc0, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 514) 0x00, 0x7c, 0xc6, 0xfe, 0xc0, 0xc0, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 515) 0x00, 0x60, 0x30, 0x18, 0x00, 0x7c, 0xc6, 0xfe, 0xc0, 0xc0, 0xc6, 0x7c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 516) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x38, 0x18, 0x18,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 517) 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x3c, 0x66,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 518) 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 519) 0x00, 0x60, 0x30, 0x18, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 520) 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0x00, 0x10, 0x38, 0x6c, 0xc6, 0xc6,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 521) 0xfe, 0xc6, 0xc6, 0xc6, 0x00, 0x00, 0x00, 0x00, 0x38, 0x6c, 0x38, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 522) 0x38, 0x6c, 0xc6, 0xc6, 0xfe, 0xc6, 0xc6, 0xc6, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 523) 0x18, 0x30, 0x60, 0x00, 0xfe, 0x66, 0x60, 0x7c, 0x60, 0x60, 0x66, 0xfe,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 524) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x3b, 0x1b,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 525) 0x7e, 0xd8, 0xdc, 0x77, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x6c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 526) 0xcc, 0xcc, 0xfe, 0xcc, 0xcc, 0xcc, 0xcc, 0xce, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 527) 0x00, 0x10, 0x38, 0x6c, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 528) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0x00, 0x00, 0x7c, 0xc6, 0xc6,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 529) 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x30, 0x18,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 530) 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 531) 0x00, 0x30, 0x78, 0xcc, 0x00, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x76,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 532) 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x30, 0x18, 0x00, 0xcc, 0xcc, 0xcc,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 533) 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 534) 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7e, 0x06, 0x0c, 0x78, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 535) 0x00, 0xc6, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 536) 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 537) 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x7e,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 538) 0xc3, 0xc0, 0xc0, 0xc0, 0xc3, 0x7e, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 539) 0x00, 0x38, 0x6c, 0x64, 0x60, 0xf0, 0x60, 0x60, 0x60, 0x60, 0xe6, 0xfc,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 540) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc3, 0x66, 0x3c, 0x18, 0xff, 0x18,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 541) 0xff, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x66, 0x66,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 542) 0x7c, 0x62, 0x66, 0x6f, 0x66, 0x66, 0x66, 0xf3, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 543) 0x00, 0x0e, 0x1b, 0x18, 0x18, 0x18, 0x7e, 0x18, 0x18, 0x18, 0x18, 0x18,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 544) 0xd8, 0x70, 0x00, 0x00, 0x00, 0x18, 0x30, 0x60, 0x00, 0x78, 0x0c, 0x7c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 545) 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x18, 0x30,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 546) 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 547) 0x00, 0x18, 0x30, 0x60, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 548) 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x30, 0x60, 0x00, 0xcc, 0xcc, 0xcc,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 549) 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xdc,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 550) 0x00, 0xdc, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 551) 0x76, 0xdc, 0x00, 0xc6, 0xe6, 0xf6, 0xfe, 0xde, 0xce, 0xc6, 0xc6, 0xc6,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 552) 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x6c, 0x6c, 0x3e, 0x00, 0x7e, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 553) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x6c, 0x6c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 554) 0x38, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 555) 0x00, 0x00, 0x30, 0x30, 0x00, 0x30, 0x30, 0x60, 0xc0, 0xc6, 0xc6, 0x7c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 556) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xc0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 557) 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 558) 0x00, 0x00, 0xfe, 0x06, 0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 559) 0x00, 0xc0, 0xc0, 0xc2, 0xc6, 0xcc, 0x18, 0x30, 0x60, 0xce, 0x9b, 0x06,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 560) 0x0c, 0x1f, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc2, 0xc6, 0xcc, 0x18, 0x30,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 561) 0x66, 0xce, 0x96, 0x3e, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 562) 0x00, 0x18, 0x18, 0x18, 0x3c, 0x3c, 0x3c, 0x18, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 563) 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x6c, 0xd8, 0x6c, 0x36, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 564) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd8, 0x6c, 0x36,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 565) 0x6c, 0xd8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x44, 0x11, 0x44,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 566) 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 567) 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 568) 0x55, 0xaa, 0x55, 0xaa, 0xdd, 0x77, 0xdd, 0x77, 0xdd, 0x77, 0xdd, 0x77,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 569) 0xdd, 0x77, 0xdd, 0x77, 0xdd, 0x77, 0xdd, 0x77, 0x18, 0x18, 0x18, 0x18,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 570) 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 571) 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xf8, 0x18, 0x18, 0x18, 0x18,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 572) 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xf8, 0x18, 0xf8,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 573) 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x36, 0x36, 0x36, 0x36,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 574) 0x36, 0x36, 0x36, 0xf6, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 575) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x36, 0x36, 0x36, 0x36,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 576) 0x36, 0x36, 0x36, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x18, 0xf8,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 577) 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x36, 0x36, 0x36, 0x36,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 578) 0x36, 0xf6, 0x06, 0xf6, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 579) 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 580) 0x36, 0x36, 0x36, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x06, 0xf6,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 581) 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 582) 0x36, 0xf6, 0x06, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 583) 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0xfe, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 584) 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0xf8, 0x18, 0xf8,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 585) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 586) 0x00, 0x00, 0x00, 0xf8, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 587) 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1f, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 588) 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 589) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 590) 0x00, 0x00, 0x00, 0xff, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 591) 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1f, 0x18, 0x18, 0x18, 0x18,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 592) 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 593) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 594) 0x18, 0x18, 0x18, 0xff, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 595) 0x18, 0x18, 0x18, 0x18, 0x18, 0x1f, 0x18, 0x1f, 0x18, 0x18, 0x18, 0x18,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 596) 0x18, 0x18, 0x18, 0x18, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x37,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 597) 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 598) 0x36, 0x37, 0x30, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 599) 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x30, 0x37, 0x36, 0x36, 0x36, 0x36,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 600) 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0xf7, 0x00, 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 601) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 602) 0x00, 0xff, 0x00, 0xf7, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 603) 0x36, 0x36, 0x36, 0x36, 0x36, 0x37, 0x30, 0x37, 0x36, 0x36, 0x36, 0x36,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 604) 0x36, 0x36, 0x36, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 605) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x36, 0x36, 0x36,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 606) 0x36, 0xf7, 0x00, 0xf7, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 607) 0x18, 0x18, 0x18, 0x18, 0x18, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 608) 0x00, 0x00, 0x00, 0x00, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 609) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 610) 0x00, 0xff, 0x00, 0xff, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 611) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x36, 0x36, 0x36, 0x36,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 612) 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x3f,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 613) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 614) 0x18, 0x1f, 0x18, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 615) 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x18, 0x1f, 0x18, 0x18, 0x18, 0x18,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 616) 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 617) 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 618) 0x36, 0x36, 0x36, 0xff, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 619) 0x18, 0x18, 0x18, 0x18, 0x18, 0xff, 0x18, 0xff, 0x18, 0x18, 0x18, 0x18,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 620) 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xf8,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 621) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 622) 0x00, 0x00, 0x00, 0x1f, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 623) 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 624) 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 625) 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xf0, 0xf0, 0xf0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 626) 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 627) 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 628) 0x0f, 0x0f, 0x0f, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 629) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 630) 0x00, 0x76, 0xdc, 0xd8, 0xd8, 0xd8, 0xdc, 0x76, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 631) 0x00, 0x00, 0x78, 0xcc, 0xcc, 0xcc, 0xd8, 0xcc, 0xc6, 0xc6, 0xc6, 0xcc,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 632) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xc6, 0xc6, 0xc0, 0xc0, 0xc0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 633) 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 634) 0xfe, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 635) 0x00, 0x00, 0x00, 0xfe, 0xc6, 0x60, 0x30, 0x18, 0x30, 0x60, 0xc6, 0xfe,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 636) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0xd8, 0xd8,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 637) 0xd8, 0xd8, 0xd8, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 638) 0x66, 0x66, 0x66, 0x66, 0x66, 0x7c, 0x60, 0x60, 0xc0, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 639) 0x00, 0x00, 0x00, 0x00, 0x76, 0xdc, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 640) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x18, 0x3c, 0x66, 0x66,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 641) 0x66, 0x3c, 0x18, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 642) 0x6c, 0xc6, 0xc6, 0xfe, 0xc6, 0xc6, 0x6c, 0x38, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 643) 0x00, 0x00, 0x38, 0x6c, 0xc6, 0xc6, 0xc6, 0x6c, 0x6c, 0x6c, 0x6c, 0xee,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 644) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x30, 0x18, 0x0c, 0x3e, 0x66,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 645) 0x66, 0x66, 0x66, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 646) 0x00, 0x7e, 0xdb, 0xdb, 0xdb, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 647) 0x00, 0x00, 0x00, 0x03, 0x06, 0x7e, 0xdb, 0xdb, 0xf3, 0x7e, 0x60, 0xc0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 648) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x30, 0x60, 0x60, 0x7c, 0x60,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 649) 0x60, 0x60, 0x30, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 650) 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 651) 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0xfe, 0x00, 0x00, 0xfe, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 652) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x7e, 0x18,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 653) 0x18, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 654) 0x18, 0x0c, 0x06, 0x0c, 0x18, 0x30, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 655) 0x00, 0x00, 0x00, 0x0c, 0x18, 0x30, 0x60, 0x30, 0x18, 0x0c, 0x00, 0x7e,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 656) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x1b, 0x1b, 0x1b, 0x18, 0x18,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 657) 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 658) 0x18, 0x18, 0x18, 0x18, 0xd8, 0xd8, 0xd8, 0x70, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 659) 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x7e, 0x00, 0x18, 0x18, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 660) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xdc, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 661) 0x76, 0xdc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x6c, 0x6c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 662) 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 663) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 664) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 665) 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0c, 0x0c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 666) 0x0c, 0x0c, 0x0c, 0xec, 0x6c, 0x6c, 0x3c, 0x1c, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 667) 0x00, 0xd8, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 668) 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0xd8, 0x30, 0x60, 0xc8, 0xf8, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 669) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 670) 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 671) 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 672) 0x00, 0x00, 0x00, 0x00,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 673) };