mirror of
https://github.com/libretro/opera-libretro.git
synced 2026-11-07 04:25:58 -10:00
Embed Opera Boot as the default BIOS
Store the ROM as a compressed static blob and load it directly into ROM memory. Keep Opera Boot first and default in BIOS settings while preserving external BIOS selection and load errors.
This commit is contained in:
1 parent
5a09dc47c1
commit
684926fe20
9 files changed
+871
-62
No files matched your search
@@ -644,6 +644,9 @@ else
|
||||
$(LD) $(fpic) $(LINKOUT) $@ $^ $(LDFLAGS) $(LIBS)
|
||||
endif
|
||||
|
||||
$(CORE_DIR)/libopera/opera_bios.o: $(CORE_DIR)/libopera/opera_bios.h \
|
||||
$(CORE_DIR)/opera_boot.h
|
||||
|
||||
%.o: %.c
|
||||
$(CC) -c $(OBJOUT)$@ $< $(CFLAGS)
|
||||
|
||||
|
||||
@@ -6,12 +6,11 @@ FreeDO, to libretro. The fork/rename occurred due to the original 4DO
|
||||
project being dormant and to differenciate the project due to new
|
||||
development and focus.
|
||||
|
||||
One of several BIOS ROMs must be placed into your RetroArch / libretro
|
||||
"System Directory" folder. "norsa" versions have the RSA encryption
|
||||
check disabled which should allow unsigned software to run.
|
||||
## ROMS
|
||||
|
||||
| Filename | Hash |
|
||||
| ------------------------- | ------------------------------------ |
|
||||
| opera-boot.bin | Build-dependent (external ROM) |
|
||||
| panafz1.bin | md5:f47264dd47fe30f73ab3c010015c155b |
|
||||
| panafz1j.bin | md5:a496cfdded3da562759be3561317b605 |
|
||||
| panafz1j-norsa.bin | md5:f6c71de7470d16abe4f71b1444883dc8 |
|
||||
@@ -30,3 +29,19 @@ For certain Japanese games a second "Kanji" ROM is necessary.
|
||||
| panafz1-kanji.bin | md5:b8dc97f778a6245c58e064b0312e8281 |
|
||||
| panafz1j-kanji.bin | md5:c23fb5d5e6bb1c240d02cf968972be37 |
|
||||
| panafz10ja-anvil-kanji.bin | md5:428577250f43edc902ea239c50d2240d |
|
||||
|
||||
|
||||
### opera-boot.bin
|
||||
|
||||
Opera includes **Opera Boot (Built-in)** as its first BIOS setting and default
|
||||
(`opera-boot-internal`). Its compressed ROM is embedded in the core, so no
|
||||
external BIOS file is required.
|
||||
|
||||
Supported BIOS ROMs placed in the RetroArch / libretro **System Directory**
|
||||
appear after the built-in option and can be selected normally. This includes
|
||||
`opera-boot.bin`, shown separately as **Opera Boot (System)**. "norsa" versions
|
||||
have the RSA encryption check disabled, allowing unsigned software to run.
|
||||
|
||||
|
||||
More details about the opera-boot boot ROM can be found at:
|
||||
https://github.com/trapexit/opera-boot
|
||||
@@ -1,7 +1,35 @@
|
||||
// Owns the BIOS registry and direct decompression of embedded Opera Boot.
|
||||
|
||||
#include "opera_bios.h"
|
||||
|
||||
#include <zlib.h>
|
||||
|
||||
#include "opera_boot.h"
|
||||
|
||||
static const opera_bios_t BIOSES[] =
|
||||
{
|
||||
{
|
||||
NULL,
|
||||
"Opera Boot (Built-in)",
|
||||
OPERA_BOOT_ROM_BYTES,
|
||||
'X',
|
||||
NULL,
|
||||
NULL,
|
||||
{0},
|
||||
{0},
|
||||
{0}
|
||||
},
|
||||
{
|
||||
"opera-boot.bin",
|
||||
"Opera Boot (System)",
|
||||
OPERA_BOOT_ROM_BYTES,
|
||||
'X',
|
||||
NULL,
|
||||
NULL,
|
||||
{0},
|
||||
{0},
|
||||
{0}
|
||||
},
|
||||
{
|
||||
"panafz1.bin",
|
||||
"Panasonic FZ-1 (U)",
|
||||
@@ -194,6 +222,51 @@ opera_bios_end(void)
|
||||
return &BIOSES[sizeof(BIOSES) / sizeof(BIOSES[0]) - 1];
|
||||
}
|
||||
|
||||
|
||||
const
|
||||
opera_bios_t *
|
||||
opera_bios_builtin(void)
|
||||
{
|
||||
return &BIOSES[0];
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
opera_bios_load_builtin(uint8_t *data_,
|
||||
size_t capacity_)
|
||||
{
|
||||
int rv;
|
||||
int end_rv;
|
||||
z_stream stream = {0};
|
||||
|
||||
if((data_ == NULL) || (capacity_ < OPERA_BOOT_ROM_BYTES))
|
||||
return -1;
|
||||
|
||||
// zlib's input type is mutable for compatibility; inflate does not write it.
|
||||
stream.next_in = (Bytef *)OPERA_BOOT_ZLIB;
|
||||
stream.avail_in = sizeof(OPERA_BOOT_ZLIB);
|
||||
stream.next_out = data_;
|
||||
stream.avail_out = OPERA_BOOT_ROM_BYTES;
|
||||
rv = inflateInit(&stream);
|
||||
if(rv != Z_OK)
|
||||
return -1;
|
||||
|
||||
rv = inflate(&stream,Z_FINISH);
|
||||
if((rv != Z_STREAM_END) ||
|
||||
(stream.total_in != sizeof(OPERA_BOOT_ZLIB)) ||
|
||||
(stream.total_out != OPERA_BOOT_ROM_BYTES))
|
||||
rv = -1;
|
||||
else
|
||||
rv = OPERA_BOOT_ROM_BYTES;
|
||||
|
||||
end_rv = inflateEnd(&stream);
|
||||
if(end_rv != Z_OK)
|
||||
return -1;
|
||||
|
||||
return rv;
|
||||
}
|
||||
|
||||
|
||||
const
|
||||
opera_bios_t*
|
||||
opera_bios_font_begin(void)
|
||||
|
||||
+14
-4
@@ -1,10 +1,13 @@
|
||||
#ifndef LIBOPERA_BIOS_H_INCLUDED
|
||||
#define LIBOPERA_BIOS_H_INCLUDED
|
||||
#pragma once
|
||||
|
||||
#include <stddef.h>
|
||||
#include <stdint.h>
|
||||
|
||||
#define OPERA_BIOS_BUILTIN_ID "opera-boot-internal"
|
||||
|
||||
struct opera_bios_s
|
||||
{
|
||||
// External file basename; NULL for the built-in Opera Boot descriptor.
|
||||
const char *filename;
|
||||
const char *name;
|
||||
uint32_t size;
|
||||
@@ -21,7 +24,14 @@ typedef struct opera_bios_s opera_bios_t;
|
||||
const opera_bios_t *opera_bios_begin(void);
|
||||
const opera_bios_t *opera_bios_end(void);
|
||||
|
||||
// Returns the immutable embedded Opera Boot descriptor, also the first BIOS entry.
|
||||
const opera_bios_t *opera_bios_builtin(void);
|
||||
|
||||
// Writes original on-disk bytes to caller-owned, non-NULL data_.
|
||||
// capacity_ must cover opera_bios_builtin()->size. Returns bytes written or -1;
|
||||
// on failure output may be partial. Bytes beyond that size are left untouched.
|
||||
// The caller owns zero padding and host byte-order conversion.
|
||||
int opera_bios_load_builtin(uint8_t *data_, size_t capacity_);
|
||||
|
||||
const opera_bios_t *opera_bios_font_begin(void);
|
||||
const opera_bios_t *opera_bios_font_end(void);
|
||||
|
||||
#endif /* LIBOPERA_BIOS_H_INCLUDED */
|
||||
+28
-31
@@ -41,9 +41,10 @@ static struct retro_core_option_v2_definition option_defs_us_v2[] =
|
||||
"opera_bios",
|
||||
"BIOS (rom1)",
|
||||
NULL,
|
||||
"Select system BIOS."
|
||||
" Only ROMS present in the system directory are listed."
|
||||
" Changes take affect at core start/restart.",
|
||||
"Select system BIOS. Embedded Opera Boot is always available and is the default."
|
||||
" Opera Boot in the system directory is available as a separate file-backed option."
|
||||
" Other ROMs are listed only when present in the system directory and load from those files."
|
||||
" Changes take effect at core start/restart.",
|
||||
NULL,
|
||||
"system",
|
||||
{
|
||||
@@ -366,9 +367,10 @@ static struct retro_core_option_definition option_defs_us[] =
|
||||
{
|
||||
"opera_bios",
|
||||
"BIOS (rom1)",
|
||||
"Select system BIOS."
|
||||
" Only ROMS present in the system directory are listed."
|
||||
" Changes take affect at core start/restart.",
|
||||
"Select system BIOS. Embedded Opera Boot is always available and is the default."
|
||||
" Opera Boot in the system directory is available as a separate file-backed option."
|
||||
" Other ROMs are listed only when present in the system directory and load from those files."
|
||||
" Changes take effect at core start/restart.",
|
||||
{
|
||||
{ NULL, NULL }, /* This is set dynamically */
|
||||
},
|
||||
@@ -745,43 +747,38 @@ file_exists_in_system_directory(const char *filename)
|
||||
}
|
||||
|
||||
static
|
||||
const char *
|
||||
set_bios_values(struct retro_core_option_value *values)
|
||||
const
|
||||
char *
|
||||
set_bios_values(struct retro_core_option_value *values_)
|
||||
{
|
||||
size_t i = 0;
|
||||
const opera_bios_t *bios = NULL;
|
||||
size_t i = 1;
|
||||
const opera_bios_t *bios;
|
||||
|
||||
if(!values)
|
||||
if(values_ == NULL)
|
||||
return NULL;
|
||||
|
||||
/* Loop through all recognised bios files */
|
||||
bios = opera_bios_builtin();
|
||||
values_[0].value = OPERA_BIOS_BUILTIN_ID;
|
||||
values_[0].label = bios->name;
|
||||
|
||||
for(bios = opera_bios_begin(); bios != opera_bios_end(); bios++)
|
||||
{
|
||||
/* Sanity check */
|
||||
if(i >= RETRO_NUM_CORE_OPTION_VALUES_MAX - 1)
|
||||
if(bios == opera_bios_builtin())
|
||||
continue;
|
||||
if(i >= (RETRO_NUM_CORE_OPTION_VALUES_MAX - 1))
|
||||
break;
|
||||
if(!file_exists_in_system_directory(bios->filename))
|
||||
continue;
|
||||
|
||||
if(file_exists_in_system_directory(bios->filename))
|
||||
{
|
||||
values[i].value = bios->filename;
|
||||
values[i].label = bios->name;
|
||||
i++;
|
||||
}
|
||||
}
|
||||
|
||||
/* Handle 'no files found' condition */
|
||||
if(i == 0)
|
||||
{
|
||||
values[i].value = bios_disabled_str;
|
||||
values[i].label = NULL;
|
||||
values_[i].value = bios->filename;
|
||||
values_[i].label = bios->name;
|
||||
i++;
|
||||
}
|
||||
|
||||
/* Add proper null termination */
|
||||
values[i].value = NULL;
|
||||
values[i].label = NULL;
|
||||
values_[i].value = NULL;
|
||||
values_[i].label = NULL;
|
||||
|
||||
return values[0].value;
|
||||
return values_[0].value;
|
||||
}
|
||||
|
||||
static
|
||||
|
||||
+622
@@ -0,0 +1,622 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
// Generated by tools/embed_boot_rom.py; do not edit by hand.
|
||||
// Source: opera-boot project: https://github.com/trapexit/opera-boot
|
||||
// Source license: GPL-2.0-only.
|
||||
// Source bytes: 131072; CRC32: dacb21ad.
|
||||
// Source SHA256: 6cbd0664c36e64c315b699b43dfc27c176597ef8f393279f199986fa5b6ba3bb.
|
||||
// Compression: zlib wrapper, level 9; compressed bytes: 7270.
|
||||
|
||||
enum { OPERA_BOOT_ROM_BYTES = 131072 };
|
||||
|
||||
static const uint8_t OPERA_BOOT_ZLIB[] =
|
||||
{
|
||||
0x78, 0xda, 0xed, 0x9c, 0x7b, 0x70, 0x1c, 0xc5, 0x9d, 0xc7, 0x7b, 0x66,
|
||||
0x77, 0xa5, 0x95, 0xbc, 0xf2, 0x8e, 0x5e, 0x41, 0xd8, 0x06, 0x8d, 0x1e,
|
||||
0x18, 0x61, 0xac, 0x64, 0x6d, 0x0c, 0x38, 0x0e, 0x86, 0x95, 0xb1, 0x09,
|
||||
0x10, 0x03, 0x6b, 0x03, 0x89, 0xc3, 0xe9, 0x12, 0xbd, 0xd6, 0xb6, 0x0a,
|
||||
0xd9, 0x12, 0x5a, 0x99, 0x98, 0xe3, 0x2a, 0x37, 0xab, 0x07, 0x7e, 0x63,
|
||||
0xc9, 0x0f, 0xb8, 0x80, 0x41, 0x8b, 0xc1, 0x75, 0x1c, 0x07, 0x57, 0x0e,
|
||||
0x09, 0x55, 0x94, 0x83, 0xef, 0xd6, 0x3c, 0x0a, 0x92, 0x00, 0xb1, 0x89,
|
||||
0x8f, 0x3c, 0xce, 0x70, 0xb3, 0xb3, 0x1a, 0x24, 0x6c, 0x02, 0x4a, 0x80,
|
||||
0x60, 0x8c, 0xed, 0xbd, 0xef, 0xaf, 0x67, 0x56, 0x96, 0x8d, 0x49, 0x8a,
|
||||
0x3f, 0xae, 0xea, 0xae, 0xee, 0xf7, 0xa9, 0x1a, 0x4d, 0xcf, 0x74, 0x4f,
|
||||
0xf7, 0xaf, 0xdf, 0xbf, 0xee, 0xfe, 0xad, 0xec, 0xf2, 0x51, 0xaf, 0x47,
|
||||
0x08, 0x7f, 0x3a, 0xa1, 0xfd, 0x3a, 0x55, 0x31, 0xaa, 0xa4, 0x13, 0xe2,
|
||||
0x0a, 0xb8, 0x85, 0x6d, 0x68, 0x02, 0xee, 0x59, 0x76, 0xbf, 0x2e, 0xec,
|
||||
0xc1, 0x99, 0x5d, 0xa9, 0xc5, 0xc2, 0x33, 0x49, 0x88, 0x42, 0x7b, 0x50,
|
||||
0x6d, 0xb3, 0xfb, 0xe1, 0x57, 0x28, 0xc2, 0xf9, 0x42, 0x78, 0x11, 0x26,
|
||||
0x4c, 0x61, 0xd2, 0x8b, 0x85, 0xc0, 0xb3, 0x48, 0xed, 0x1e, 0x55, 0xf1,
|
||||
0xae, 0xc6, 0xee, 0x0f, 0xd3, 0x77, 0xf3, 0x53, 0xb7, 0x08, 0x0f, 0xde,
|
||||
0x7b, 0x8e, 0x08, 0xf1, 0xdd, 0x54, 0x62, 0x7f, 0x9e, 0x75, 0xc3, 0x7e,
|
||||
0x2d, 0x95, 0x18, 0xf5, 0xda, 0x83, 0x45, 0xd5, 0xf6, 0x80, 0x40, 0x1a,
|
||||
0x53, 0x2f, 0xb1, 0xbb, 0xe9, 0x2e, 0x74, 0x3b, 0x2e, 0xef, 0x82, 0xd2,
|
||||
0x4f, 0x27, 0x10, 0x67, 0x22, 0x84, 0x2b, 0x89, 0xeb, 0x5a, 0x65, 0x24,
|
||||
0xa1, 0x4d, 0x4c, 0x45, 0x84, 0x77, 0x4f, 0x26, 0x73, 0x9c, 0xc2, 0xd8,
|
||||
0x83, 0x85, 0xef, 0xd9, 0x83, 0x15, 0xb8, 0x66, 0xbc, 0x37, 0x64, 0x68,
|
||||
0x5e, 0xe7, 0xd2, 0xbd, 0xa7, 0xdc, 0x74, 0x85, 0xe4, 0x95, 0x4e, 0x4c,
|
||||
0x51, 0x11, 0xf6, 0x15, 0x84, 0x7d, 0x65, 0x68, 0x8b, 0xf0, 0x0e, 0xc5,
|
||||
0x85, 0xd7, 0xba, 0x39, 0xe4, 0xfd, 0x45, 0x26, 0xf3, 0x99, 0x94, 0x75,
|
||||
0xb0, 0x70, 0x87, 0x9b, 0xdf, 0xe9, 0x70, 0x3f, 0xee, 0xba, 0x43, 0x70,
|
||||
0x27, 0xc6, 0xca, 0x61, 0xb0, 0xb0, 0x83, 0xdc, 0xc8, 0xc7, 0x2c, 0x3c,
|
||||
0xcf, 0x76, 0xdd, 0xd5, 0x63, 0x79, 0x0a, 0x6a, 0x22, 0x95, 0x88, 0xe4,
|
||||
0x59, 0x0b, 0x96, 0x28, 0xe9, 0x7d, 0x22, 0x98, 0x36, 0x44, 0x21, 0xca,
|
||||
0x13, 0xef, 0xf6, 0xfb, 0xdc, 0xe7, 0x22, 0x7a, 0xb6, 0x16, 0xdc, 0xa6,
|
||||
0x8c, 0x7b, 0x57, 0x7c, 0x96, 0x77, 0xe7, 0x9c, 0xe5, 0xdd, 0xe4, 0xf1,
|
||||
0xef, 0xa8, 0x9e, 0xb2, 0xe9, 0x42, 0x86, 0xa9, 0xa9, 0x84, 0x19, 0x4c,
|
||||
0x27, 0x8e, 0xab, 0xe4, 0x3e, 0x8c, 0x3c, 0xd9, 0x83, 0xe2, 0x3d, 0xbb,
|
||||
0x1f, 0x75, 0x91, 0x28, 0xd2, 0x2d, 0x45, 0xcb, 0x41, 0x59, 0x22, 0x7c,
|
||||
0x61, 0x51, 0x2a, 0x31, 0x50, 0x81, 0xbb, 0x7c, 0x47, 0xcf, 0xe6, 0x3a,
|
||||
0x7a, 0x7e, 0x20, 0x0f, 0xf5, 0x31, 0x11, 0xdf, 0x3c, 0x67, 0x0f, 0x86,
|
||||
0x9e, 0x43, 0x7d, 0x28, 0x54, 0xbf, 0xa6, 0xa2, 0x79, 0xd2, 0x89, 0xb0,
|
||||
0x6a, 0xf7, 0x27, 0x85, 0x19, 0x48, 0x7a, 0xd2, 0xf5, 0xc1, 0x79, 0xd3,
|
||||
0x84, 0xc8, 0x4d, 0xd5, 0x0b, 0x05, 0x77, 0xc5, 0xba, 0x25, 0xac, 0xa0,
|
||||
0x5e, 0x7d, 0xa9, 0x84, 0x16, 0xb0, 0x16, 0xeb, 0xca, 0xa4, 0x4c, 0xe6,
|
||||
0xa3, 0xc3, 0x78, 0x8f, 0xba, 0x53, 0x28, 0x3e, 0xaa, 0x43, 0xba, 0xbf,
|
||||
0x5b, 0x1b, 0x56, 0x20, 0xd7, 0xf2, 0x91, 0xbd, 0x86, 0x82, 0x34, 0x96,
|
||||
0x20, 0x8d, 0x25, 0xd9, 0xf8, 0xed, 0x41, 0x3d, 0x92, 0x8d, 0x9f, 0xe2,
|
||||
0xcd, 0x87, 0xec, 0xe3, 0xe2, 0x3b, 0x4a, 0xdf, 0xef, 0xce, 0xd5, 0x9e,
|
||||
0xf2, 0x84, 0x45, 0x8d, 0x47, 0x19, 0x15, 0xc8, 0xdb, 0x49, 0xb4, 0xaf,
|
||||
0x89, 0xd6, 0x8d, 0xd4, 0x66, 0x75, 0xb4, 0xb6, 0xb9, 0x6b, 0x3d, 0x42,
|
||||
0x13, 0xd4, 0x7e, 0x3d, 0x21, 0xe1, 0x45, 0xb8, 0x59, 0x10, 0x31, 0x23,
|
||||
0x44, 0xe0, 0xc6, 0x74, 0x22, 0xe7, 0x12, 0x94, 0x01, 0xea, 0x5e, 0xcf,
|
||||
0x31, 0xd5, 0x99, 0x3a, 0xc9, 0x65, 0xaa, 0x8a, 0x9e, 0x4a, 0xa0, 0x5e,
|
||||
0x12, 0x97, 0xe0, 0x2a, 0xac, 0x32, 0xe3, 0xf4, 0x9c, 0x2f, 0xe5, 0xb4,
|
||||
0x6b, 0x4d, 0xef, 0x91, 0x4c, 0xe6, 0x8f, 0x96, 0x91, 0xeb, 0x19, 0x7a,
|
||||
0x68, 0xd4, 0x9b, 0x4a, 0xcc, 0xaa, 0xa3, 0xfc, 0xd8, 0x49, 0x4d, 0x19,
|
||||
0x4a, 0x86, 0x54, 0x92, 0x69, 0x9a, 0x94, 0xcf, 0x09, 0x6b, 0xa9, 0x26,
|
||||
0xf2, 0xa9, 0xef, 0x34, 0xbb, 0x2b, 0x54, 0xf3, 0xde, 0xaa, 0x6e, 0xfb,
|
||||
0xa1, 0xa4, 0xd7, 0xec, 0xd6, 0xe2, 0xa9, 0x44, 0xf5, 0x42, 0x7c, 0xe7,
|
||||
0x31, 0x0d, 0x33, 0x6e, 0xbf, 0x9e, 0x54, 0xec, 0xd7, 0x75, 0x61, 0xc5,
|
||||
0x35, 0x15, 0x75, 0xe4, 0x49, 0x7f, 0x4f, 0x08, 0xeb, 0xea, 0x90, 0xb2,
|
||||
0x3e, 0x93, 0xf9, 0x84, 0xd2, 0x78, 0xb7, 0xf6, 0x6a, 0xe4, 0x31, 0x82,
|
||||
0xf6, 0x75, 0x97, 0x6a, 0x7d, 0xb3, 0x83, 0xfa, 0x1e, 0x64, 0x69, 0x40,
|
||||
0xbc, 0x61, 0xf4, 0x21, 0x03, 0xef, 0xfb, 0x8d, 0xe1, 0x37, 0x2b, 0x1e,
|
||||
0xb7, 0xfc, 0x5a, 0x6e, 0xaa, 0x48, 0xf9, 0x7a, 0x91, 0x21, 0x14, 0xf4,
|
||||
0xc1, 0xbc, 0x74, 0x44, 0xf6, 0xb5, 0x5c, 0x6b, 0xad, 0x56, 0x6f, 0xd6,
|
||||
0x51, 0x39, 0x87, 0x70, 0x51, 0x5d, 0xe8, 0x5e, 0x7b, 0x53, 0x87, 0x40,
|
||||
0x3e, 0xde, 0xa4, 0xb8, 0xac, 0xb5, 0x86, 0x92, 0x5e, 0x22, 0xd6, 0xce,
|
||||
0xc9, 0x64, 0xfe, 0xe0, 0x7e, 0xe3, 0xb3, 0x1a, 0xb4, 0xa1, 0xb3, 0x84,
|
||||
0xff, 0xc5, 0xc8, 0xde, 0x9e, 0xa3, 0xef, 0xd6, 0xde, 0x74, 0x1c, 0xee,
|
||||
0xe7, 0x52, 0x48, 0xdb, 0x1e, 0xac, 0x43, 0x3b, 0xbf, 0xf8, 0x5b, 0x54,
|
||||
0x8f, 0x78, 0xf7, 0x33, 0x7b, 0xf0, 0x8e, 0x9a, 0x34, 0x64, 0x1d, 0x3a,
|
||||
0xd8, 0xa0, 0x58, 0x7d, 0xfd, 0xd3, 0x91, 0xc7, 0x80, 0x7d, 0x50, 0x20,
|
||||
0x5f, 0x7a, 0x9e, 0xb9, 0x26, 0x69, 0xd8, 0x87, 0x42, 0xc2, 0x3e, 0x94,
|
||||
0x54, 0x52, 0x1b, 0x67, 0x79, 0xec, 0x4d, 0x70, 0x1f, 0x0c, 0x29, 0xf0,
|
||||
0x17, 0x96, 0xa1, 0xf5, 0x23, 0x2d, 0x3f, 0xe2, 0xf8, 0xb1, 0xd5, 0x1b,
|
||||
0xf6, 0xc0, 0x9d, 0x43, 0xb2, 0x58, 0xd7, 0x34, 0x28, 0xe8, 0x7f, 0xef,
|
||||
0x5b, 0x7d, 0x11, 0x25, 0x7d, 0xab, 0x68, 0x40, 0xbf, 0x1e, 0x41, 0x5a,
|
||||
0xbd, 0xf6, 0x26, 0x0d, 0x75, 0xd6, 0xbf, 0x23, 0x9d, 0x68, 0x80, 0x0c,
|
||||
0xda, 0xb3, 0xe6, 0x52, 0xe5, 0x1e, 0xd3, 0x48, 0x28, 0x69, 0x59, 0x4e,
|
||||
0x61, 0x31, 0xfc, 0x7b, 0x92, 0xdb, 0xab, 0xa5, 0x35, 0x61, 0x20, 0x3f,
|
||||
0x9a, 0x79, 0x8f, 0x92, 0x63, 0x3f, 0xa4, 0x79, 0x4d, 0x43, 0x78, 0xcd,
|
||||
0xf8, 0x8f, 0x11, 0xa6, 0x03, 0xd7, 0xd7, 0x55, 0x2a, 0x67, 0x73, 0x8d,
|
||||
0xe2, 0x33, 0x0d, 0x3d, 0x8f, 0xe4, 0xc1, 0x58, 0xe2, 0x25, 0x39, 0xd0,
|
||||
0xbe, 0x26, 0x40, 0x96, 0x7b, 0xad, 0x35, 0x28, 0xef, 0xef, 0xc8, 0xf1,
|
||||
0xe4, 0x43, 0xc8, 0xa5, 0xa4, 0x6f, 0x91, 0xee, 0x61, 0x57, 0x9e, 0x5c,
|
||||
0xb8, 0xd3, 0xd6, 0x3d, 0x0d, 0x4a, 0xfa, 0xdb, 0xc2, 0x03, 0xf7, 0x21,
|
||||
0x7b, 0x30, 0x12, 0xa2, 0xf4, 0xcd, 0x5e, 0x15, 0x69, 0x69, 0x3e, 0x8a,
|
||||
0xcb, 0xea, 0xd5, 0x9f, 0x47, 0x5c, 0x9b, 0xdc, 0xef, 0xe9, 0x9b, 0x4f,
|
||||
0x46, 0xf6, 0x6e, 0x3e, 0xee, 0x11, 0xbe, 0x21, 0x5c, 0x87, 0x3c, 0x22,
|
||||
0x77, 0x3e, 0xee, 0x2d, 0x1d, 0x68, 0xa9, 0x41, 0xa1, 0x08, 0xef, 0x1d,
|
||||
0x2f, 0x07, 0xc4, 0x1a, 0x51, 0xf1, 0xe2, 0x5a, 0xbc, 0xf0, 0x1b, 0x8a,
|
||||
0xf0, 0xaf, 0xaf, 0xe9, 0x57, 0xd6, 0x1a, 0x4d, 0x95, 0x1b, 0x5e, 0x9e,
|
||||
0xde, 0xe1, 0xdf, 0x11, 0x33, 0xb4, 0xfc, 0x86, 0x84, 0x58, 0x67, 0xe8,
|
||||
0x15, 0xeb, 0x6b, 0x9e, 0xf6, 0x07, 0x2b, 0xd7, 0x09, 0xad, 0xe8, 0x91,
|
||||
0x2b, 0x8e, 0xae, 0xff, 0x37, 0xbd, 0x6e, 0xc3, 0xaf, 0x12, 0xab, 0xfd,
|
||||
0x3b, 0xf1, 0xa2, 0xaa, 0xb2, 0x52, 0x6c, 0x34, 0xf4, 0xf8, 0x7a, 0xbf,
|
||||
0xbe, 0x16, 0x2f, 0x74, 0xff, 0xbc, 0xea, 0x4a, 0xb1, 0xd6, 0xa8, 0x50,
|
||||
0x3b, 0x73, 0xf5, 0xd5, 0xc1, 0x29, 0x1d, 0x49, 0xef, 0xa7, 0xbf, 0xda,
|
||||
0xa1, 0xbc, 0x2c, 0x62, 0x43, 0xa2, 0xed, 0x9a, 0x12, 0xed, 0x1f, 0x2a,
|
||||
0xae, 0x5f, 0xac, 0x04, 0x15, 0xa1, 0x4c, 0xf4, 0x08, 0xa5, 0xc0, 0x27,
|
||||
0x94, 0x40, 0xae, 0x50, 0x26, 0xe4, 0xa1, 0xb3, 0x4d, 0x10, 0x4a, 0x5e,
|
||||
0x81, 0x50, 0xfc, 0x90, 0x2c, 0xb7, 0x50, 0x28, 0x39, 0xc5, 0x42, 0xf1,
|
||||
0x95, 0x0a, 0xc5, 0x7b, 0x8e, 0x50, 0x3c, 0xe7, 0x0a, 0x45, 0x9d, 0x2c,
|
||||
0x14, 0xe5, 0x3c, 0x48, 0x5d, 0xee, 0xdc, 0xe9, 0x99, 0xde, 0x93, 0x3f,
|
||||
0x85, 0xa3, 0xf0, 0xf4, 0x1d, 0x7d, 0x4f, 0xf1, 0x50, 0x7c, 0x14, 0x2f,
|
||||
0xc5, 0x4f, 0xe9, 0x50, 0x7a, 0x48, 0x97, 0x02, 0x2b, 0xf8, 0xf8, 0xd4,
|
||||
0xa5, 0x9c, 0xf7, 0xe5, 0xaf, 0xf1, 0xdf, 0x23, 0x3e, 0x41, 0x49, 0xa8,
|
||||
0x48, 0x52, 0x45, 0xf2, 0x2a, 0xc4, 0x50, 0x21, 0x8e, 0x0a, 0x1f, 0x15,
|
||||
0xe2, 0x39, 0x97, 0xe7, 0xdc, 0xd3, 0x2f, 0x75, 0xb2, 0x73, 0x9d, 0xf9,
|
||||
0x3e, 0x1b, 0x9e, 0xbe, 0xa5, 0x38, 0x28, 0x2e, 0x8a, 0x93, 0xe2, 0x46,
|
||||
0x1a, 0xc2, 0x05, 0xd9, 0xf2, 0x20, 0xbc, 0x07, 0xd2, 0x78, 0x50, 0x24,
|
||||
0xce, 0x9d, 0x9e, 0xf1, 0x5e, 0x8c, 0x6a, 0x5a, 0x87, 0xa6, 0x8d, 0x9a,
|
||||
0xfd, 0x84, 0xd9, 0x20, 0x6f, 0x0d, 0x82, 0x61, 0x18, 0x86, 0x61, 0x18,
|
||||
0xe6, 0x7f, 0x27, 0x9a, 0x3e, 0xe6, 0x92, 0xeb, 0x29, 0x21, 0xd4, 0xd3,
|
||||
0xfd, 0x67, 0x64, 0x35, 0x20, 0x93, 0xfe, 0x70, 0x81, 0x31, 0x0c, 0xc3,
|
||||
0x30, 0x0c, 0xc3, 0x30, 0x0c, 0xc3, 0x30, 0xcc, 0xff, 0x41, 0x70, 0x8e,
|
||||
0x97, 0x77, 0x58, 0xe4, 0x5c, 0x8b, 0xeb, 0x9b, 0xb8, 0x70, 0x76, 0x99,
|
||||
0x73, 0x1d, 0xae, 0x6b, 0xe0, 0x35, 0x01, 0xf7, 0xf9, 0xb8, 0xae, 0xc6,
|
||||
0x35, 0x0f, 0xd7, 0xf7, 0x71, 0x7e, 0x2e, 0x46, 0x7a, 0xe8, 0x5c, 0x6e,
|
||||
0x3f, 0xce, 0xe0, 0x77, 0xe3, 0xfc, 0xdb, 0x5f, 0x8a, 0xf3, 0xdc, 0xf7,
|
||||
0x46, 0xb6, 0x36, 0xb8, 0x67, 0xbd, 0x91, 0xab, 0x70, 0xa6, 0x3b, 0x62,
|
||||
0x6f, 0x09, 0x89, 0x77, 0x6b, 0x61, 0x53, 0xf0, 0x42, 0xc8, 0x6b, 0x77,
|
||||
0x87, 0x84, 0xb5, 0x59, 0x68, 0x38, 0xdb, 0x0b, 0xd3, 0xf9, 0x3e, 0xce,
|
||||
0x80, 0x5f, 0x85, 0x3b, 0xe4, 0x9e, 0xab, 0x87, 0xb3, 0xb6, 0x06, 0x23,
|
||||
0x7b, 0x85, 0x1f, 0xdf, 0x3e, 0x49, 0xe1, 0x47, 0xf6, 0x46, 0xae, 0xa2,
|
||||
0xf8, 0x9c, 0xb3, 0xd0, 0x0e, 0x9c, 0x31, 0x1a, 0x38, 0x37, 0x1c, 0x15,
|
||||
0x23, 0x46, 0xfb, 0x28, 0xce, 0x04, 0xfb, 0xb3, 0x76, 0x02, 0x14, 0x66,
|
||||
0xa4, 0xbf, 0x7d, 0x14, 0x67, 0x71, 0x8a, 0x73, 0x86, 0xad, 0x77, 0xd9,
|
||||
0x5b, 0xc6, 0x6c, 0x11, 0x34, 0xe7, 0x0c, 0x58, 0xd3, 0xdd, 0x34, 0xf4,
|
||||
0x54, 0x10, 0xdf, 0x25, 0x45, 0x2e, 0xce, 0xd3, 0x3d, 0xce, 0xd9, 0xbc,
|
||||
0x50, 0xe9, 0x5c, 0xf8, 0x30, 0x9d, 0x8f, 0x22, 0x0e, 0x94, 0x85, 0x0f,
|
||||
0x77, 0x95, 0xce, 0x6f, 0x71, 0xf7, 0x38, 0xe7, 0xd9, 0xc2, 0x0b, 0xff,
|
||||
0x0c, 0xce, 0x0d, 0x27, 0x1e, 0x11, 0x39, 0x17, 0xd0, 0x19, 0xb4, 0x10,
|
||||
0x97, 0x1b, 0x42, 0x5c, 0x45, 0xa7, 0x78, 0x02, 0x67, 0xce, 0xbd, 0x74,
|
||||
0x3e, 0x8d, 0xa3, 0x77, 0x9c, 0x9b, 0x26, 0x95, 0x53, 0xf6, 0x0b, 0x21,
|
||||
0x3d, 0xb5, 0x1b, 0xe7, 0xc1, 0xf1, 0xf2, 0x9d, 0xa9, 0xdd, 0x7a, 0x77,
|
||||
0x6a, 0x91, 0x08, 0xe8, 0x75, 0x5a, 0xc0, 0x84, 0x3f, 0x6c, 0x0f, 0xe8,
|
||||
0x7c, 0xfb, 0x13, 0x27, 0x8f, 0x74, 0x36, 0x8f, 0xf0, 0x8b, 0x1c, 0xfb,
|
||||
0x09, 0x57, 0x16, 0xc8, 0x46, 0x67, 0xc6, 0xf2, 0xfc, 0x5c, 0x3b, 0x23,
|
||||
0x4c, 0xc0, 0xac, 0x0c, 0x0b, 0xcb, 0x5b, 0xa7, 0xa6, 0x7a, 0x6f, 0xda,
|
||||
0x99, 0x9e, 0x29, 0xc4, 0xbc, 0x26, 0xe4, 0x19, 0xfb, 0x34, 0xf3, 0x1a,
|
||||
0xe5, 0x59, 0xed, 0x5b, 0x69, 0x9c, 0x82, 0xcf, 0x6b, 0x80, 0x1c, 0x25,
|
||||
0x42, 0x29, 0x6a, 0xa4, 0xb2, 0x35, 0xb4, 0x6c, 0x9c, 0xe4, 0x4e, 0x49,
|
||||
0xdb, 0x0a, 0x2d, 0x1f, 0x69, 0xbd, 0xe1, 0xc6, 0x2f, 0x2c, 0xb5, 0x4e,
|
||||
0x1d, 0x8b, 0x0b, 0x7e, 0x88, 0xe7, 0x97, 0xe9, 0x12, 0x45, 0x2d, 0x42,
|
||||
0x3c, 0x63, 0x71, 0x20, 0x7d, 0x8f, 0xcc, 0x9f, 0x63, 0x9b, 0xa1, 0xc8,
|
||||
0x73, 0xfe, 0x24, 0x9d, 0x3f, 0xf7, 0xa4, 0x7a, 0xae, 0x4a, 0xa0, 0x3c,
|
||||
0x0d, 0xc4, 0xd5, 0x9d, 0xba, 0x59, 0x28, 0x3a, 0xce, 0x5f, 0xab, 0xba,
|
||||
0x75, 0xc5, 0xda, 0x88, 0x32, 0xa9, 0x17, 0x3a, 0xce, 0x46, 0x3f, 0xa6,
|
||||
0xf2, 0xce, 0xda, 0x06, 0xa4, 0x13, 0xbe, 0x02, 0xdb, 0x28, 0x15, 0x76,
|
||||
0xbf, 0x2f, 0x6c, 0x09, 0x91, 0x71, 0xde, 0x5f, 0x5a, 0x60, 0x6f, 0xd5,
|
||||
0x66, 0xa5, 0x12, 0xd3, 0x70, 0x8e, 0x3e, 0x6d, 0x27, 0xd5, 0x87, 0xf3,
|
||||
0x3c, 0x09, 0xcf, 0x93, 0x1e, 0x41, 0x19, 0xaa, 0xb0, 0x11, 0x38, 0x46,
|
||||
0xe5, 0x61, 0x45, 0x04, 0x9d, 0xc7, 0x7f, 0xe2, 0xd6, 0x7b, 0x0d, 0xc9,
|
||||
0xf3, 0xee, 0x16, 0xe1, 0x41, 0xfb, 0xf1, 0x53, 0x3c, 0xf2, 0xec, 0x7e,
|
||||
0xeb, 0x4b, 0xc9, 0xa1, 0x64, 0x52, 0xb1, 0x16, 0x69, 0xf2, 0xec, 0x1e,
|
||||
0x76, 0x26, 0x5e, 0x0a, 0x8f, 0xba, 0xda, 0x81, 0x7c, 0x8f, 0xda, 0xe5,
|
||||
0x11, 0x94, 0xcb, 0xc2, 0x3c, 0x3a, 0x33, 0xb6, 0xfb, 0x3a, 0x84, 0xd5,
|
||||
0x7b, 0xed, 0xdc, 0xb4, 0xd9, 0xe0, 0x9c, 0x9f, 0x6b, 0x42, 0x83, 0x5c,
|
||||
0x3a, 0xce, 0xdb, 0xe5, 0x79, 0x75, 0xe9, 0x76, 0xe1, 0x2f, 0xc6, 0x7d,
|
||||
0x32, 0x9d, 0x0b, 0xc3, 0xf6, 0x01, 0xf5, 0xf7, 0x31, 0xd2, 0x98, 0x78,
|
||||
0x86, 0x1f, 0xce, 0x89, 0x43, 0xb0, 0x9f, 0xb9, 0xa0, 0xc0, 0xde, 0x8e,
|
||||
0x72, 0x8a, 0x08, 0xed, 0xd2, 0x2d, 0xa5, 0xc6, 0xe5, 0x2f, 0x68, 0x38,
|
||||
0x07, 0x87, 0x3c, 0x7d, 0x82, 0xe2, 0xfe, 0x77, 0xf9, 0xbd, 0xa0, 0x36,
|
||||
0x2b, 0x72, 0x50, 0xae, 0xa3, 0x94, 0x16, 0xe2, 0xfb, 0x13, 0x9e, 0x73,
|
||||
0xe9, 0x19, 0xf2, 0x1d, 0x84, 0x7c, 0x21, 0x6b, 0x93, 0x19, 0x18, 0x79,
|
||||
0x38, 0xac, 0xc1, 0xb6, 0xa0, 0x24, 0x9d, 0xb8, 0xb5, 0xc0, 0xee, 0xf3,
|
||||
0x19, 0x76, 0x5f, 0x29, 0xae, 0x0b, 0x70, 0x5d, 0x8a, 0x6b, 0x01, 0x2e,
|
||||
0x1b, 0xd7, 0x4b, 0xc6, 0xc8, 0xde, 0x70, 0x08, 0xf5, 0xf9, 0x73, 0xbb,
|
||||
0x5c, 0x0c, 0x91, 0xed, 0x87, 0x7b, 0xde, 0xef, 0x25, 0x19, 0xb6, 0x97,
|
||||
0x6b, 0x4b, 0xfa, 0xd1, 0x67, 0xb6, 0xa3, 0xcc, 0x06, 0xa8, 0x9c, 0x4d,
|
||||
0xe1, 0xf6, 0xd7, 0x3a, 0x94, 0x41, 0x21, 0xe2, 0x6e, 0xcb, 0x23, 0x7b,
|
||||
0x03, 0x3b, 0x6e, 0xf8, 0xad, 0x7b, 0x96, 0xcf, 0x75, 0xd2, 0xea, 0x13,
|
||||
0xf2, 0xac, 0xde, 0xec, 0xa0, 0x31, 0x42, 0x96, 0x77, 0x3e, 0xd9, 0xff,
|
||||
0x6c, 0x2f, 0x21, 0xdb, 0x1f, 0x83, 0xea, 0xc1, 0xde, 0x4e, 0x75, 0x17,
|
||||
0xce, 0xa4, 0x7b, 0x05, 0x64, 0xf0, 0x85, 0xed, 0xed, 0x5e, 0x0d, 0xfe,
|
||||
0x25, 0x29, 0xe4, 0x35, 0xad, 0xe5, 0xa9, 0x93, 0x33, 0x27, 0x8f, 0xe1,
|
||||
0xdb, 0x1c, 0x84, 0x33, 0x90, 0x6f, 0xd4, 0x21, 0xda, 0xed, 0xb7, 0x1b,
|
||||
0xb2, 0x79, 0x47, 0x5e, 0xe3, 0xa3, 0x68, 0xa3, 0x94, 0xf7, 0x3f, 0xd3,
|
||||
0x79, 0x3a, 0x3d, 0x23, 0xdf, 0x13, 0x1d, 0xbb, 0x1f, 0xd9, 0x0e, 0xc5,
|
||||
0xc8, 0x26, 0x94, 0x71, 0x42, 0x74, 0xe3, 0xfb, 0x3d, 0x94, 0x27, 0x75,
|
||||
0xd3, 0xfe, 0x80, 0xf7, 0x21, 0xd3, 0x8b, 0xf4, 0x5f, 0x2c, 0x46, 0x3e,
|
||||
0x50, 0x5e, 0x13, 0xbf, 0xe0, 0x1b, 0x15, 0xdf, 0x3c, 0xe5, 0xfa, 0x9f,
|
||||
0x7f, 0xa6, 0x3f, 0xc9, 0x82, 0x30, 0x1b, 0x10, 0xe6, 0xb1, 0xb4, 0xa9,
|
||||
0xcb, 0xf2, 0x82, 0x5c, 0xf4, 0xcd, 0xbf, 0x52, 0x7d, 0xe4, 0x3b, 0x32,
|
||||
0x52, 0x7f, 0x39, 0xdf, 0x2e, 0xaf, 0x9c, 0x8d, 0x72, 0xda, 0x21, 0xed,
|
||||
0x8e, 0x30, 0xb6, 0xc1, 0x0e, 0xc9, 0x73, 0xf9, 0x81, 0x90, 0xa8, 0x42,
|
||||
0x9c, 0xc3, 0x2f, 0x86, 0x64, 0xdd, 0xe2, 0x7b, 0x3f, 0xec, 0x2c, 0x3e,
|
||||
0xa1, 0x30, 0xa8, 0x87, 0x3f, 0xfe, 0x85, 0x34, 0x37, 0x21, 0x8d, 0x35,
|
||||
0x67, 0xa4, 0x39, 0xf0, 0xf9, 0x34, 0xd5, 0x27, 0xdd, 0x7a, 0x54, 0xfa,
|
||||
0xca, 0xd5, 0xb2, 0xbe, 0xfd, 0x42, 0xd9, 0x4a, 0xe9, 0xbf, 0xe8, 0x8c,
|
||||
0x7d, 0x48, 0xe3, 0x63, 0x4a, 0x03, 0x71, 0x2a, 0xee, 0x78, 0x23, 0xd3,
|
||||
0x72, 0xd2, 0xa1, 0x34, 0xc5, 0x46, 0xc4, 0xbb, 0xe2, 0x8c, 0x74, 0x7e,
|
||||
0xf0, 0xf9, 0x74, 0xaa, 0x4a, 0xec, 0xf2, 0xa2, 0xd5, 0x7f, 0x25, 0x6f,
|
||||
0x81, 0x33, 0xf2, 0xf6, 0x43, 0xd8, 0xad, 0x20, 0xdd, 0xf2, 0xa8, 0x15,
|
||||
0x9f, 0x44, 0xf6, 0x2a, 0x68, 0xd7, 0x27, 0xd1, 0x17, 0x1b, 0x84, 0xd9,
|
||||
0xa0, 0x0a, 0x13, 0xa6, 0x0d, 0xf2, 0x3e, 0xbf, 0x8e, 0xda, 0x10, 0xec,
|
||||
0x39, 0xb4, 0x6f, 0xc1, 0xff, 0x03, 0xb3, 0xa1, 0x48, 0x98, 0xf1, 0x42,
|
||||
0xc5, 0x9c, 0x0f, 0xbb, 0x98, 0xf2, 0xe2, 0x8d, 0xb0, 0x2f, 0x51, 0xed,
|
||||
0xb8, 0xee, 0xb7, 0xe3, 0x11, 0xef, 0x38, 0x9b, 0x2f, 0x85, 0xf2, 0x60,
|
||||
0x09, 0x3d, 0x83, 0xf4, 0x34, 0x2b, 0x10, 0xca, 0x58, 0x39, 0x5a, 0x06,
|
||||
0xb2, 0xcf, 0x19, 0x97, 0x17, 0x0f, 0x9e, 0xe7, 0x53, 0x5e, 0x68, 0x3c,
|
||||
0x92, 0x76, 0x67, 0x4e, 0x7e, 0x7e, 0x78, 0x38, 0x73, 0xf2, 0x0f, 0x64,
|
||||
0x9f, 0x63, 0xef, 0x77, 0xe3, 0x5b, 0x24, 0x6d, 0x66, 0x72, 0xd0, 0x2f,
|
||||
0x43, 0x94, 0x86, 0x69, 0x20, 0x6d, 0xd8, 0xa9, 0x0c, 0xff, 0x1a, 0xf6,
|
||||
0x3b, 0xf5, 0x62, 0x62, 0xb6, 0x2c, 0xc8, 0x1e, 0x07, 0x76, 0x3a, 0x0a,
|
||||
0xc2, 0xfb, 0x90, 0xd7, 0x8f, 0x69, 0x3e, 0xa0, 0x77, 0x42, 0x5c, 0xa0,
|
||||
0xc3, 0x4e, 0x07, 0xf3, 0x4e, 0xff, 0x2d, 0x94, 0x4f, 0x67, 0x4e, 0x8a,
|
||||
0xa8, 0x34, 0x66, 0x0c, 0xff, 0x48, 0xc9, 0xc5, 0x98, 0x0a, 0x7b, 0x10,
|
||||
0x23, 0xc7, 0xb5, 0x71, 0x79, 0x96, 0xe4, 0xdb, 0x23, 0xed, 0xa2, 0x04,
|
||||
0xd9, 0x13, 0x1d, 0xa2, 0xe7, 0x62, 0xc8, 0x58, 0xda, 0x67, 0x88, 0xb2,
|
||||
0xbd, 0x3d, 0xa3, 0x59, 0xbb, 0x13, 0xa4, 0xf1, 0x41, 0x5a, 0xb6, 0xdf,
|
||||
0x1e, 0xf4, 0xf7, 0x0b, 0x6a, 0x9c, 0x71, 0x98, 0xe2, 0x27, 0x79, 0x34,
|
||||
0xfa, 0x76, 0x17, 0x7d, 0xfb, 0x28, 0x8d, 0xb7, 0xa6, 0x26, 0x9e, 0x70,
|
||||
0xe6, 0x6a, 0xdf, 0xf0, 0xc1, 0x4a, 0x83, 0xe6, 0x37, 0x3f, 0xc6, 0x63,
|
||||
0xb7, 0x6e, 0xc2, 0x88, 0xeb, 0x53, 0xfa, 0xce, 0x19, 0xe7, 0x51, 0x6f,
|
||||
0xfb, 0x9f, 0xef, 0xc1, 0x98, 0x4b, 0xe5, 0xe2, 0x27, 0xbb, 0x2a, 0x61,
|
||||
0x3c, 0xdf, 0xe3, 0x43, 0x9e, 0x95, 0x7a, 0x6c, 0xee, 0x1b, 0x6a, 0x0f,
|
||||
0x8d, 0xdb, 0x56, 0x4f, 0x48, 0x49, 0xdf, 0x2c, 0xbf, 0xfd, 0x30, 0x3b,
|
||||
0x97, 0xa6, 0x12, 0x15, 0x95, 0xd4, 0xd7, 0x87, 0x06, 0x1c, 0xbb, 0xb9,
|
||||
0xf1, 0x36, 0x4f, 0xb0, 0x97, 0xaa, 0xa0, 0xb8, 0xe1, 0x2f, 0xa4, 0x9f,
|
||||
0x33, 0xa6, 0x1e, 0x27, 0x3f, 0x2b, 0x8c, 0xf1, 0xc1, 0x98, 0x80, 0xb1,
|
||||
0xdd, 0x97, 0x70, 0xc6, 0xf1, 0x2f, 0x67, 0x7b, 0x45, 0xe3, 0x10, 0xd9,
|
||||
0x41, 0x39, 0xf3, 0xe7, 0x6a, 0x9a, 0x7b, 0xde, 0xb7, 0xc2, 0x65, 0xf9,
|
||||
0x69, 0x18, 0xf5, 0xb8, 0xf9, 0xf0, 0x51, 0x3e, 0xd6, 0xa3, 0xde, 0x11,
|
||||
0x47, 0x00, 0xfe, 0x56, 0x6a, 0x91, 0xcf, 0x80, 0x1d, 0x9a, 0x6a, 0x6d,
|
||||
0x0e, 0x9e, 0x73, 0x04, 0x53, 0x37, 0xe4, 0x2a, 0x80, 0x6e, 0xb1, 0xdc,
|
||||
0x36, 0x92, 0x7e, 0x37, 0xcc, 0xef, 0x9c, 0xfe, 0xd6, 0x40, 0x32, 0xe7,
|
||||
0x53, 0x7d, 0x52, 0xfb, 0x37, 0xfb, 0x04, 0xea, 0x4a, 0xcb, 0x85, 0xfb,
|
||||
0x06, 0x2a, 0xdf, 0x27, 0x9c, 0xfa, 0x97, 0x63, 0x8f, 0xb5, 0xe6, 0x6e,
|
||||
0x95, 0x6c, 0x7e, 0x52, 0xdf, 0x96, 0xf5, 0xf3, 0x27, 0x2a, 0x17, 0x7a,
|
||||
0xdf, 0xde, 0x11, 0xed, 0x6c, 0xac, 0x6d, 0x6a, 0x6f, 0xef, 0x9a, 0xa3,
|
||||
0x37, 0x35, 0xb6, 0xc4, 0x5a, 0xff, 0x2e, 0x5a, 0x90, 0x2f, 0xb5, 0xa7,
|
||||
0xa9, 0x8f, 0xdb, 0xe5, 0xa1, 0x80, 0x3d, 0x98, 0x2c, 0xb3, 0xb7, 0xea,
|
||||
0x62, 0x78, 0xa3, 0xd2, 0x6d, 0x6e, 0xdc, 0xd7, 0x6d, 0x6f, 0xd4, 0xbc,
|
||||
0x56, 0xb7, 0xa6, 0xd8, 0x3d, 0x8e, 0x0d, 0x1c, 0xc2, 0x0d, 0xc1, 0xb6,
|
||||
0x0a, 0x63, 0x6d, 0x72, 0x36, 0xe4, 0xa1, 0x31, 0x36, 0xdf, 0xde, 0x91,
|
||||
0xa0, 0xb9, 0xe0, 0xa7, 0xd2, 0xd6, 0x6a, 0x07, 0x6c, 0x89, 0x8c, 0x25,
|
||||
0x94, 0xef, 0x27, 0xd3, 0x89, 0xb2, 0x7c, 0x33, 0xbe, 0xdd, 0xa0, 0x77,
|
||||
0xd4, 0xef, 0x66, 0x6e, 0x0e, 0x5e, 0x39, 0x47, 0x88, 0x0b, 0x53, 0x89,
|
||||
0xdd, 0x01, 0xc8, 0xe5, 0x43, 0x19, 0xa8, 0xe6, 0x02, 0xd8, 0xf4, 0x2d,
|
||||
0x12, 0x5e, 0x69, 0x87, 0xb7, 0x39, 0x78, 0x19, 0xf2, 0x57, 0x6e, 0xdf,
|
||||
0x27, 0xb2, 0x7d, 0xc3, 0x67, 0x3f, 0x28, 0xa8, 0x1f, 0xe7, 0xab, 0x9b,
|
||||
0x83, 0x5f, 0x83, 0x9c, 0x65, 0x4e, 0x3e, 0x36, 0x8f, 0xe2, 0x1b, 0x3f,
|
||||
0xe2, 0x9b, 0x86, 0xf8, 0x8a, 0xad, 0x7b, 0x34, 0xaf, 0x3d, 0x80, 0xf1,
|
||||
0x38, 0xde, 0xe1, 0x85, 0xed, 0x92, 0x51, 0x15, 0xf1, 0x2b, 0x78, 0x1f,
|
||||
0xc0, 0x77, 0x7e, 0xc4, 0x9b, 0x6f, 0x5e, 0x0b, 0xd9, 0x91, 0xc6, 0x1c,
|
||||
0xb2, 0xf9, 0x8b, 0x88, 0x3c, 0x2a, 0x6b, 0xd8, 0x3d, 0x79, 0xd3, 0x8b,
|
||||
0xfc, 0xf9, 0x52, 0x86, 0x35, 0x0d, 0x5e, 0x92, 0xe7, 0x01, 0xa7, 0x0e,
|
||||
0x4a, 0x51, 0x07, 0xeb, 0x48, 0x6f, 0xb2, 0x37, 0x08, 0xaf, 0xfd, 0xa0,
|
||||
0xd4, 0x55, 0xfc, 0x73, 0x48, 0x7f, 0x32, 0x9d, 0xb4, 0xdd, 0x36, 0xfd,
|
||||
0x93, 0x94, 0xd4, 0x17, 0x74, 0xaf, 0x5b, 0x07, 0x4d, 0xc8, 0x67, 0x99,
|
||||
0xbd, 0x43, 0x2b, 0x31, 0xe3, 0x1a, 0x95, 0x83, 0x4e, 0x77, 0x73, 0x23,
|
||||
0xe6, 0xca, 0x0d, 0x52, 0xef, 0x7a, 0xfe, 0x8c, 0xb2, 0xef, 0x8c, 0x36,
|
||||
0x3b, 0x45, 0x2f, 0xfb, 0x78, 0xb9, 0xb2, 0xd6, 0x1d, 0x23, 0xfd, 0x95,
|
||||
0x9b, 0x83, 0x39, 0xd5, 0x98, 0x17, 0xa6, 0x09, 0x65, 0x59, 0x3a, 0x31,
|
||||
0x19, 0xfa, 0x5b, 0x1e, 0x8d, 0x11, 0xf7, 0x0f, 0xe1, 0xdd, 0x61, 0xe1,
|
||||
0x3b, 0x31, 0x3e, 0x9e, 0x15, 0xad, 0xb1, 0xe6, 0xa5, 0xab, 0xda, 0xda,
|
||||
0x28, 0x26, 0x9a, 0x67, 0xa5, 0x7e, 0x58, 0xbe, 0xe8, 0x49, 0xbb, 0xbc,
|
||||
0xee, 0xb7, 0xa4, 0x0f, 0x0f, 0x6f, 0x57, 0xe2, 0x66, 0x5f, 0x61, 0xdc,
|
||||
0x1e, 0x80, 0x7d, 0xdc, 0x80, 0xe6, 0x47, 0x33, 0x54, 0x51, 0x16, 0x62,
|
||||
0xf6, 0x5e, 0x23, 0x44, 0xf6, 0x76, 0x88, 0xf7, 0x1b, 0x64, 0xa7, 0x68,
|
||||
0x6f, 0x83, 0x2e, 0x17, 0x4f, 0xd2, 0x38, 0x22, 0xd0, 0x5e, 0xfe, 0x88,
|
||||
0xfe, 0x07, 0x9b, 0x51, 0x51, 0x23, 0xe3, 0x1b, 0x08, 0xa1, 0x3f, 0x57,
|
||||
0xe8, 0x18, 0xc7, 0xa7, 0xa7, 0x9f, 0xaf, 0xce, 0xa4, 0xbb, 0xab, 0x0f,
|
||||
0xdb, 0x06, 0xda, 0x4a, 0x5c, 0x27, 0x5d, 0x58, 0x81, 0x3e, 0xaa, 0x39,
|
||||
0x6d, 0x43, 0xfd, 0x29, 0x74, 0x5a, 0x5d, 0x8e, 0xbf, 0xa4, 0x1f, 0x97,
|
||||
0x17, 0xd5, 0x23, 0x5d, 0x8d, 0xfa, 0x78, 0xe9, 0x80, 0x1e, 0x28, 0x35,
|
||||
0x74, 0xad, 0x34, 0x2e, 0xdc, 0xb0, 0x53, 0x9f, 0x83, 0xbc, 0x41, 0x84,
|
||||
0x0f, 0xa3, 0xcd, 0x16, 0x8c, 0x0c, 0x44, 0x02, 0x23, 0x46, 0x04, 0xed,
|
||||
0x2f, 0x44, 0x36, 0xa9, 0x62, 0xf8, 0xd7, 0x9a, 0x18, 0x7e, 0xa8, 0x42,
|
||||
0x98, 0xf3, 0xa0, 0x1f, 0xcd, 0xd3, 0xfd, 0xd4, 0x9f, 0xc7, 0xd2, 0x8e,
|
||||
0xeb, 0xd9, 0xb1, 0x9c, 0xda, 0xf6, 0x47, 0x90, 0x15, 0xda, 0xf0, 0x05,
|
||||
0x57, 0xe0, 0x9a, 0x4d, 0xba, 0x90, 0x33, 0xf6, 0x74, 0xa0, 0x2f, 0x34,
|
||||
0xa0, 0x1f, 0x47, 0xa8, 0xec, 0x86, 0xa0, 0x4b, 0xac, 0xa6, 0x31, 0xd4,
|
||||
0x36, 0x70, 0x95, 0xab, 0x1f, 0xd1, 0x38, 0x04, 0xb7, 0xe6, 0xe8, 0x6e,
|
||||
0xda, 0x42, 0x5c, 0x6d, 0xb8, 0xe6, 0xe3, 0x6a, 0xb1, 0xbb, 0xc3, 0x35,
|
||||
0xd0, 0x03, 0xc9, 0xa6, 0x50, 0xf6, 0x2f, 0x1a, 0xff, 0xa0, 0x93, 0x8c,
|
||||
0x1e, 0xce, 0x9c, 0x28, 0xa0, 0xb1, 0x0d, 0x36, 0xa0, 0x93, 0x2c, 0xa3,
|
||||
0x6c, 0x82, 0x15, 0xbe, 0x0c, 0xb6, 0xb8, 0xfa, 0x2d, 0xce, 0x98, 0x13,
|
||||
0x56, 0x86, 0xb7, 0xec, 0x13, 0xc3, 0xf1, 0x7d, 0x59, 0xd9, 0xbe, 0x0a,
|
||||
0x3d, 0xf1, 0x18, 0xc6, 0x25, 0xea, 0xf3, 0x79, 0xe8, 0x57, 0x21, 0x99,
|
||||
0xaf, 0x43, 0x3a, 0xe6, 0x8d, 0x0a, 0xd5, 0xde, 0x62, 0x0a, 0xf3, 0x5e,
|
||||
0x13, 0x3a, 0x9e, 0x99, 0x0d, 0x9f, 0xb7, 0x47, 0xce, 0x4b, 0x18, 0x6f,
|
||||
0x8c, 0x05, 0x06, 0x8d, 0x7f, 0xc8, 0xcf, 0x42, 0x94, 0x93, 0xf7, 0x7f,
|
||||
0xda, 0xfe, 0x93, 0xe6, 0xa9, 0x54, 0x62, 0x66, 0xb1, 0xa9, 0x28, 0x5b,
|
||||
0x50, 0x57, 0xfe, 0x2d, 0x4d, 0x49, 0xff, 0xfd, 0xfb, 0x95, 0x47, 0xb6,
|
||||
0x28, 0x7a, 0x6e, 0xff, 0x42, 0x5d, 0x1d, 0x48, 0xa8, 0x21, 0xb2, 0x41,
|
||||
0x44, 0xff, 0x80, 0x7d, 0xed, 0xf3, 0x15, 0xb0, 0xb9, 0x0d, 0x5a, 0x4d,
|
||||
0xba, 0x66, 0xce, 0x23, 0xfb, 0x58, 0x3d, 0x80, 0x79, 0xa8, 0xdb, 0x3e,
|
||||
0x24, 0x5c, 0x9b, 0x49, 0x2f, 0x64, 0x50, 0x42, 0xe8, 0x2a, 0x32, 0x6d,
|
||||
0xea, 0xc7, 0x4f, 0x37, 0xc8, 0x39, 0x2d, 0xe9, 0xdc, 0x69, 0x8c, 0xbc,
|
||||
0x09, 0x63, 0x6d, 0x87, 0x3b, 0xff, 0x18, 0xaa, 0x33, 0xe7, 0x66, 0x0e,
|
||||
0x38, 0xf6, 0xa3, 0x63, 0x76, 0x9a, 0x78, 0x0e, 0xe7, 0x62, 0x7e, 0x11,
|
||||
0xc5, 0x4b, 0x1c, 0x3d, 0x01, 0xe5, 0x38, 0x0d, 0x36, 0x8c, 0x65, 0x55,
|
||||
0xe7, 0x08, 0x8f, 0x07, 0x61, 0xf2, 0x9d, 0x79, 0xe4, 0x02, 0xb3, 0x57,
|
||||
0x57, 0xec, 0x37, 0x74, 0x65, 0xf8, 0xb7, 0xc8, 0x87, 0x63, 0xdb, 0xad,
|
||||
0xbb, 0xf3, 0x5f, 0x2e, 0xcd, 0xf5, 0xf6, 0x41, 0x4d, 0x73, 0xd7, 0x1b,
|
||||
0x93, 0x70, 0xd7, 0xde, 0xa8, 0xd3, 0x95, 0x03, 0x85, 0x42, 0x45, 0xb8,
|
||||
0xaf, 0xd8, 0x07, 0x93, 0x41, 0xfb, 0xa0, 0x3e, 0x31, 0xb5, 0xb1, 0x5a,
|
||||
0x95, 0xed, 0x74, 0x5b, 0x28, 0x50, 0x98, 0x98, 0x5d, 0x55, 0xec, 0xd4,
|
||||
0xdb, 0x44, 0x53, 0x55, 0x07, 0x52, 0x89, 0xd4, 0x4e, 0xab, 0x5b, 0xf7,
|
||||
0xd0, 0x3c, 0x83, 0x76, 0xf1, 0x28, 0xb5, 0x45, 0xeb, 0x9a, 0x64, 0x19,
|
||||
0xd2, 0x0a, 0xd8, 0x9b, 0x4c, 0xb1, 0xfd, 0x21, 0x53, 0x6c, 0x41, 0xf9,
|
||||
0xf4, 0x7b, 0x3c, 0x0f, 0xcb, 0xf2, 0xba, 0x59, 0xec, 0x44, 0x59, 0xd1,
|
||||
0x58, 0x41, 0xf6, 0xdd, 0xf8, 0x46, 0xd1, 0xac, 0x30, 0xe4, 0x49, 0xf8,
|
||||
0x15, 0xcc, 0x99, 0x65, 0x47, 0x32, 0xc7, 0xff, 0x2b, 0x95, 0x48, 0x08,
|
||||
0x27, 0x6d, 0xe8, 0x38, 0x28, 0x33, 0xab, 0xa1, 0xc0, 0x47, 0x63, 0x8a,
|
||||
0xbd, 0x09, 0x63, 0xce, 0x36, 0x8c, 0x5d, 0x09, 0xbf, 0x6e, 0x35, 0x88,
|
||||
0x51, 0x57, 0x87, 0x53, 0x8a, 0x9c, 0x36, 0x22, 0x9e, 0x41, 0x5a, 0x54,
|
||||
0x8e, 0xbb, 0x2f, 0xec, 0x78, 0x98, 0xe6, 0x66, 0x7b, 0x5b, 0x43, 0x80,
|
||||
0x74, 0x94, 0x54, 0x62, 0xf9, 0x54, 0x94, 0xcd, 0xa8, 0xd9, 0x77, 0xb3,
|
||||
0xf1, 0x7b, 0x41, 0x6b, 0xd1, 0x86, 0x51, 0x27, 0x7e, 0x6d, 0xa2, 0x4c,
|
||||
0x17, 0xf3, 0x5a, 0x6a, 0x63, 0x09, 0xca, 0xa4, 0x00, 0xeb, 0xc2, 0x7e,
|
||||
0x81, 0x30, 0xa5, 0x28, 0xbb, 0x49, 0xf6, 0x43, 0xd4, 0xae, 0x0c, 0x61,
|
||||
0xae, 0xdb, 0x0d, 0x79, 0x50, 0xa7, 0x6b, 0xb5, 0x75, 0xa4, 0xcf, 0x22,
|
||||
0xdd, 0xd5, 0xa8, 0xc3, 0x07, 0x30, 0x86, 0x2b, 0x56, 0x1d, 0xea, 0x19,
|
||||
0xba, 0x5b, 0x1c, 0x79, 0x81, 0xff, 0x06, 0xb3, 0x4f, 0x8b, 0xdb, 0xfb,
|
||||
0x28, 0x5f, 0x5e, 0xdd, 0xb5, 0xcb, 0x55, 0xf1, 0x4c, 0xe3, 0xc6, 0xfb,
|
||||
0xd6, 0xba, 0x7e, 0x65, 0x7c, 0xbe, 0x68, 0xbc, 0x85, 0x8d, 0xb0, 0x8d,
|
||||
0xb4, 0xce, 0xc9, 0xa6, 0x85, 0x7c, 0x8d, 0x4f, 0x6f, 0x83, 0x9b, 0x5e,
|
||||
0xfd, 0x17, 0xa4, 0xb7, 0xee, 0xaf, 0xa5, 0x97, 0xfe, 0x6e, 0x01, 0xe9,
|
||||
0x39, 0xc3, 0x36, 0xca, 0xc6, 0xea, 0xab, 0xf7, 0xc1, 0x1e, 0x17, 0x63,
|
||||
0x7a, 0xc7, 0xbd, 0x28, 0x0f, 0x01, 0xbb, 0xdc, 0xbd, 0x72, 0x3d, 0x9c,
|
||||
0xc9, 0x3c, 0x28, 0xc7, 0xd9, 0x41, 0x3d, 0x6c, 0x19, 0x21, 0x39, 0xae,
|
||||
0x0d, 0x6f, 0xdd, 0x87, 0x3e, 0x9b, 0x92, 0xba, 0x13, 0xda, 0x82, 0xdf,
|
||||
0x6d, 0x33, 0x7e, 0xf4, 0xc3, 0xa3, 0x18, 0x97, 0xa6, 0xa0, 0xcf, 0x45,
|
||||
0x68, 0xcc, 0x24, 0x59, 0xa0, 0x9b, 0x29, 0x5e, 0x6a, 0xcf, 0x68, 0x87,
|
||||
0x8e, 0x2e, 0x75, 0x61, 0x03, 0x8d, 0x61, 0x64, 0xf3, 0x2f, 0xd7, 0x14,
|
||||
0xb4, 0x26, 0xea, 0xc6, 0x98, 0xb2, 0xdf, 0x59, 0xdb, 0x4e, 0x92, 0x6b,
|
||||
0x3b, 0xb9, 0x9e, 0xab, 0x46, 0x5a, 0x53, 0xd2, 0x89, 0xcb, 0x2e, 0x49,
|
||||
0x25, 0xf6, 0x85, 0xac, 0x40, 0x32, 0x38, 0xfc, 0x46, 0x32, 0x60, 0xf7,
|
||||
0x24, 0x05, 0xf2, 0xe9, 0xa5, 0xb0, 0x4f, 0xb8, 0xf6, 0xe1, 0x88, 0x4f,
|
||||
0xc3, 0xf8, 0x72, 0xa5, 0xab, 0x5b, 0x0b, 0xfb, 0x35, 0x9a, 0xeb, 0x23,
|
||||
0xf9, 0xae, 0xde, 0x89, 0x39, 0xf5, 0xf8, 0x22, 0xd3, 0x28, 0x84, 0x2e,
|
||||
0xaa, 0x39, 0xeb, 0x8f, 0x05, 0x11, 0xd9, 0x26, 0x20, 0x77, 0x68, 0xf8,
|
||||
0x35, 0xcd, 0x57, 0x7c, 0xab, 0x4c, 0xf7, 0x43, 0x73, 0x93, 0xa0, 0xb6,
|
||||
0xf4, 0x5b, 0x8c, 0x21, 0x57, 0x52, 0x9e, 0xd1, 0x66, 0x49, 0x5f, 0x38,
|
||||
0x88, 0x78, 0x3c, 0x72, 0x0e, 0x41, 0x7d, 0x8c, 0x7b, 0xff, 0x3a, 0xe6,
|
||||
0x3c, 0x1a, 0x23, 0x5f, 0x1d, 0xe7, 0x7f, 0x20, 0xb4, 0x5a, 0xce, 0x27,
|
||||
0xa4, 0xc7, 0x51, 0x98, 0xdf, 0xb9, 0x61, 0x5e, 0x70, 0xc7, 0x42, 0x0d,
|
||||
0x61, 0x0e, 0x7e, 0x55, 0xc8, 0x30, 0x18, 0xb3, 0xb5, 0x08, 0xc6, 0x01,
|
||||
0x8c, 0xe1, 0x9a, 0x7f, 0xa4, 0x5b, 0xf3, 0xa3, 0xad, 0xeb, 0xc8, 0xd7,
|
||||
0xf7, 0xd6, 0xd3, 0x1e, 0x44, 0x44, 0x54, 0x62, 0x3d, 0x59, 0x5f, 0xfa,
|
||||
0x9a, 0xab, 0x3b, 0xbe, 0x26, 0x75, 0x58, 0x1f, 0xcd, 0x13, 0xc3, 0x07,
|
||||
0x2a, 0x69, 0xbd, 0x1c, 0xb4, 0x5f, 0xd3, 0xd5, 0xe1, 0x03, 0x32, 0xbf,
|
||||
0xa4, 0x13, 0x15, 0x20, 0x9d, 0x7f, 0x86, 0xec, 0x01, 0x94, 0xc7, 0x6c,
|
||||
0x5c, 0xd5, 0x48, 0xa3, 0xc3, 0x59, 0x1b, 0x44, 0x74, 0x59, 0xd6, 0xb7,
|
||||
0x46, 0x68, 0xfd, 0xe6, 0x31, 0x7b, 0x35, 0x9f, 0xbd, 0x48, 0xd6, 0x99,
|
||||
0xc0, 0x1a, 0xea, 0x53, 0x7c, 0xf7, 0x20, 0xe4, 0x24, 0xdd, 0xe3, 0x47,
|
||||
0xae, 0xae, 0xa4, 0x0e, 0x1f, 0x14, 0x39, 0x78, 0xfe, 0x0f, 0x57, 0x17,
|
||||
0xa2, 0x76, 0x72, 0x0c, 0x61, 0xa0, 0x5f, 0x87, 0x3b, 0x90, 0x87, 0xcd,
|
||||
0x95, 0xc8, 0x43, 0x25, 0x26, 0x4f, 0xb9, 0x86, 0x1e, 0xec, 0xd8, 0x46,
|
||||
0x7a, 0x3f, 0xad, 0x07, 0xac, 0x35, 0x5a, 0x0d, 0xf6, 0x7a, 0xd6, 0x92,
|
||||
0xfd, 0x3a, 0xbe, 0x7f, 0x1b, 0xcf, 0x7e, 0x7c, 0x37, 0x15, 0xee, 0xff,
|
||||
0xb4, 0xef, 0xd7, 0xae, 0x85, 0xfb, 0x62, 0x5a, 0x93, 0xd9, 0xbf, 0xd1,
|
||||
0x72, 0xe0, 0xfe, 0x1a, 0xad, 0xbd, 0xe0, 0xce, 0x85, 0x7b, 0x06, 0xdc,
|
||||
0xff, 0x84, 0x30, 0x11, 0xb8, 0x43, 0x70, 0x3f, 0x0c, 0xf7, 0x42, 0xf7,
|
||||
0x3d, 0xc9, 0x77, 0x09, 0xee, 0x77, 0x60, 0x5e, 0xc9, 0x71, 0xdf, 0xdd,
|
||||
0x07, 0xb7, 0x0f, 0xee, 0xcb, 0xe1, 0xde, 0x4a, 0xba, 0x05, 0xdc, 0xb3,
|
||||
0xe1, 0xee, 0xc7, 0xbd, 0xc6, 0x99, 0x77, 0x32, 0x51, 0xb4, 0x37, 0x63,
|
||||
0xfc, 0xbc, 0xdf, 0x82, 0x79, 0x5f, 0x6f, 0x6d, 0x89, 0xae, 0xec, 0x6a,
|
||||
0x5d, 0xda, 0x1a, 0xed, 0x9c, 0x4b, 0x7a, 0xc4, 0xe7, 0xfc, 0x9b, 0xdb,
|
||||
0x57, 0xac, 0x40, 0x88, 0xc6, 0xce, 0xbb, 0xce, 0xee, 0xbf, 0x6a, 0x65,
|
||||
0xeb, 0x1d, 0xab, 0xa2, 0xb5, 0xad, 0x2d, 0x73, 0x85, 0x1e, 0xeb, 0xea,
|
||||
0x5c, 0xd5, 0xdc, 0xb5, 0xaa, 0x33, 0x5a, 0x7b, 0x67, 0xb4, 0x33, 0xd6,
|
||||
0xda, 0xbe, 0x12, 0xef, 0x96, 0xb6, 0x35, 0x2e, 0x8b, 0xe1, 0xde, 0xd4,
|
||||
0xd6, 0xde, 0x7c, 0x7b, 0x6d, 0x73, 0xfb, 0xaa, 0x95, 0x5d, 0x14, 0x91,
|
||||
0xfb, 0x4c, 0xba, 0xa3, 0x8c, 0x97, 0x74, 0x8f, 0xcf, 0xc5, 0xdd, 0xd5,
|
||||
0xd9, 0x88, 0x30, 0x4b, 0x5b, 0x3b, 0x63, 0x5d, 0xb5, 0x32, 0x3c, 0xe2,
|
||||
0x69, 0x6b, 0x6c, 0x8a, 0xb6, 0x65, 0x9f, 0x10, 0x4f, 0x57, 0x63, 0x53,
|
||||
0x5b, 0xf4, 0xd4, 0x33, 0xe9, 0x2f, 0x64, 0xcf, 0xef, 0x96, 0xbb, 0x5c,
|
||||
0x9b, 0xa0, 0x1c, 0xa6, 0x52, 0xbb, 0xc4, 0xbd, 0x1a, 0xba, 0x9d, 0x80,
|
||||
0x1e, 0xa8, 0x93, 0x1e, 0x88, 0x71, 0x0d, 0xe1, 0x82, 0x55, 0x78, 0xbf,
|
||||
0x10, 0x6e, 0xc5, 0x75, 0x5f, 0xe7, 0xde, 0xcf, 0xc5, 0x3b, 0x0f, 0xd9,
|
||||
0xf4, 0x93, 0x6e, 0x0c, 0xb7, 0xd7, 0xba, 0x29, 0x78, 0x29, 0xdc, 0x75,
|
||||
0x70, 0x53, 0x59, 0x9f, 0x07, 0xf7, 0x95, 0x18, 0x67, 0xfd, 0x64, 0xff,
|
||||
0xee, 0x3e, 0xcf, 0xb2, 0xb7, 0xe1, 0xf7, 0x1a, 0x9b, 0x83, 0xe5, 0x70,
|
||||
0xcf, 0x40, 0xf8, 0xcb, 0xdd, 0x7d, 0x88, 0x9c, 0xf1, 0x79, 0xeb, 0x6a,
|
||||
0x5c, 0xa6, 0x53, 0x9e, 0x49, 0xf1, 0x8a, 0xb5, 0xae, 0x5c, 0xa6, 0xd7,
|
||||
0xb4, 0x77, 0x74, 0xa1, 0xb4, 0x1a, 0xdb, 0x2e, 0x92, 0xca, 0x9c, 0x1e,
|
||||
0x5b, 0xd5, 0x14, 0xbb, 0x2b, 0xd6, 0x15, 0x5d, 0x81, 0xfc, 0x76, 0xdd,
|
||||
0xd5, 0x41, 0x25, 0xa4, 0x8f, 0x95, 0xa8, 0x70, 0xde, 0xd5, 0xc6, 0x3a,
|
||||
0xa2, 0xcd, 0xa8, 0xb7, 0x66, 0x84, 0x69, 0x6c, 0x8a, 0xb5, 0xb7, 0xad,
|
||||
0xea, 0xc2, 0xbb, 0x68, 0x73, 0x57, 0xbb, 0xac, 0x48, 0x9d, 0x4a, 0xb6,
|
||||
0xb6, 0xe9, 0xae, 0xae, 0x68, 0x4c, 0x96, 0x6f, 0x56, 0xa7, 0xa1, 0x76,
|
||||
0x5e, 0xb4, 0x39, 0x38, 0x19, 0x7b, 0x11, 0x29, 0xfa, 0x0d, 0x81, 0x3d,
|
||||
0xd8, 0xf0, 0x18, 0xda, 0xec, 0x63, 0x68, 0xe7, 0x45, 0x6e, 0x1b, 0xba,
|
||||
0x10, 0xb2, 0xab, 0xa9, 0x5b, 0x85, 0x17, 0xe5, 0x74, 0x31, 0xad, 0x07,
|
||||
0xa1, 0x4b, 0xd6, 0xce, 0x94, 0xed, 0xec, 0xe4, 0xc1, 0xe1, 0xfb, 0x0a,
|
||||
0xfb, 0x9c, 0x36, 0x77, 0x32, 0x83, 0xdf, 0x1a, 0xf4, 0x61, 0x3f, 0x91,
|
||||
0xca, 0x05, 0x79, 0x3f, 0xf9, 0x31, 0xee, 0x31, 0xdc, 0x7f, 0x49, 0xbf,
|
||||
0x19, 0xb0, 0xef, 0xc7, 0x3c, 0x7d, 0xab, 0x1c, 0x5f, 0xdf, 0xa5, 0x3d,
|
||||
0x9c, 0x33, 0xf5, 0x4d, 0x3d, 0xd6, 0xbe, 0xaa, 0xb3, 0x39, 0x3a, 0xb7,
|
||||
0x33, 0x1a, 0x93, 0x2d, 0x50, 0xef, 0x8c, 0x76, 0xb4, 0x35, 0x36, 0x47,
|
||||
0xa9, 0xad, 0xe9, 0x35, 0x6d, 0xd1, 0x65, 0x8d, 0xcd, 0x77, 0x39, 0x01,
|
||||
0x51, 0x5a, 0x17, 0xb9, 0xcb, 0x0b, 0xac, 0x1b, 0x68, 0x8d, 0x31, 0x3e,
|
||||
0xae, 0xd6, 0x15, 0x8d, 0xcb, 0xa2, 0x7a, 0xeb, 0xca, 0x96, 0xe8, 0x6a,
|
||||
0x99, 0x4f, 0xbd, 0xb3, 0xbd, 0x2d, 0x3a, 0xf7, 0xf6, 0x68, 0xe7, 0xca,
|
||||
0x68, 0xdb, 0xa9, 0xe7, 0x9b, 0x6e, 0xd6, 0xa3, 0xab, 0xa3, 0xcd, 0xab,
|
||||
0x64, 0x63, 0x71, 0xdf, 0x51, 0xe4, 0xf0, 0x6f, 0x89, 0xc6, 0xba, 0x5a,
|
||||
0x57, 0x36, 0x76, 0xb9, 0x65, 0x4b, 0xe3, 0x95, 0xfc, 0xad, 0x56, 0xbf,
|
||||
0xdc, 0x2b, 0x32, 0x90, 0xef, 0xc0, 0x1c, 0xd2, 0xbd, 0xb6, 0x69, 0x25,
|
||||
0xc8, 0x37, 0xe6, 0xdd, 0x93, 0x3f, 0x83, 0xbb, 0x0c, 0xee, 0xf3, 0xe1,
|
||||
0x7e, 0x16, 0x6e, 0xdd, 0x75, 0x3f, 0x83, 0xfc, 0xff, 0xc4, 0x19, 0xd7,
|
||||
0x4e, 0xae, 0x1f, 0x2f, 0xa3, 0x23, 0x8d, 0x5e, 0x77, 0xdd, 0x35, 0xfa,
|
||||
0x8a, 0x68, 0x57, 0x63, 0x4b, 0x63, 0x57, 0x23, 0xba, 0x4d, 0xe3, 0x9d,
|
||||
0x8d, 0xad, 0x6d, 0x24, 0x8f, 0x5e, 0x13, 0x5b, 0xde, 0xde, 0xd9, 0xe5,
|
||||
0x64, 0x85, 0xb2, 0xfa, 0x05, 0xdf, 0x2e, 0xbe, 0x69, 0x5c, 0x7d, 0xea,
|
||||
0x8b, 0xbf, 0x33, 0xf6, 0xa4, 0xdf, 0x76, 0xdd, 0x98, 0xdb, 0x91, 0x5f,
|
||||
0xce, 0x09, 0xbb, 0xb1, 0x46, 0xf1, 0x40, 0xb6, 0x42, 0xc8, 0xb6, 0x94,
|
||||
0xda, 0xa4, 0xfc, 0x8d, 0x4a, 0x3f, 0xfd, 0x06, 0x25, 0x6c, 0x38, 0x63,
|
||||
0xcf, 0xc9, 0x06, 0xb4, 0xe5, 0x52, 0xb4, 0xf1, 0x12, 0xb8, 0xb7, 0x41,
|
||||
0xfe, 0x34, 0xee, 0x7f, 0x43, 0xcf, 0xc8, 0x7b, 0xd9, 0xd3, 0x9b, 0x83,
|
||||
0x17, 0xed, 0xdc, 0x1c, 0xbc, 0xd4, 0xcd, 0xd3, 0xad, 0x67, 0x91, 0xcb,
|
||||
0x6d, 0x95, 0x5f, 0x3e, 0x5f, 0xf4, 0xb7, 0xb6, 0xb1, 0x73, 0x59, 0x4c,
|
||||
0xaf, 0x9b, 0x77, 0xdd, 0xd9, 0xbe, 0x72, 0x13, 0x58, 0x1e, 0x6d, 0x6c,
|
||||
0x89, 0x76, 0x3a, 0x0d, 0xe0, 0x8b, 0xd3, 0x9f, 0xfb, 0xc5, 0x71, 0xcf,
|
||||
0x9d, 0x8f, 0x7a, 0x5e, 0x48, 0x83, 0x86, 0xde, 0x79, 0xd9, 0xdc, 0xd0,
|
||||
0xea, 0x10, 0x31, 0x23, 0x14, 0xfa, 0x4b, 0xf2, 0xcc, 0x9d, 0x87, 0xa7,
|
||||
0xf9, 0x94, 0x9d, 0xf1, 0x9f, 0xcc, 0x20, 0x21, 0xd2, 0x89, 0xd2, 0x02,
|
||||
0xfc, 0x4e, 0x0f, 0x7b, 0xb0, 0xf9, 0xd8, 0xdb, 0xcd, 0x4f, 0xa0, 0x9c,
|
||||
0xf2, 0x69, 0x3e, 0xc0, 0xbd, 0x60, 0x9a, 0x3b, 0x07, 0x9f, 0x25, 0x4c,
|
||||
0xc1, 0x03, 0xee, 0x5c, 0x2e, 0xd7, 0x0a, 0xfd, 0x95, 0x58, 0x07, 0x95,
|
||||
0x09, 0x5a, 0xfb, 0xe0, 0xb7, 0x82, 0xbd, 0xb8, 0x07, 0xe8, 0x37, 0x69,
|
||||
0xb8, 0x63, 0xef, 0x51, 0x9f, 0x6b, 0x1b, 0x15, 0xf8, 0x6d, 0x5d, 0x45,
|
||||
0x57, 0x3a, 0x51, 0x9d, 0xb1, 0x8d, 0x4a, 0xf8, 0x55, 0xc7, 0x70, 0xc7,
|
||||
0x3e, 0xee, 0x57, 0x4b, 0x71, 0xd7, 0xa1, 0x4f, 0x04, 0xd2, 0xfb, 0x50,
|
||||
0xc7, 0x71, 0x9c, 0x21, 0x18, 0x5a, 0xaf, 0xd4, 0x11, 0xca, 0xfd, 0xf8,
|
||||
0xed, 0x98, 0x56, 0x42, 0xfd, 0x9b, 0xf6, 0x33, 0xe0, 0x0e, 0xa4, 0xe3,
|
||||
0x7a, 0x58, 0xca, 0x12, 0x47, 0x1a, 0xfd, 0x48, 0x2b, 0x5e, 0x99, 0xdd,
|
||||
0xfb, 0x2f, 0x39, 0xa5, 0xb7, 0x4f, 0xa5, 0xb9, 0xe4, 0xe7, 0xf6, 0x16,
|
||||
0xac, 0xaf, 0xb5, 0x3c, 0x9a, 0x57, 0xbd, 0xd2, 0x6d, 0xe4, 0x41, 0x17,
|
||||
0x91, 0x7b, 0x38, 0xbf, 0xc4, 0xf8, 0xf5, 0x67, 0xdc, 0x93, 0xce, 0xfb,
|
||||
0x7c, 0x95, 0xde, 0x0f, 0x39, 0x7a, 0x8c, 0xfb, 0xdb, 0x36, 0x47, 0x27,
|
||||
0xc7, 0xda, 0xd6, 0x7d, 0x0e, 0x29, 0x56, 0xcf, 0x6c, 0xd2, 0xbf, 0x3c,
|
||||
0x45, 0xe1, 0x57, 0xd4, 0xe2, 0x7a, 0xf4, 0x25, 0x53, 0x97, 0x71, 0x3b,
|
||||
0x6b, 0x41, 0x6d, 0x36, 0xc9, 0x59, 0xbc, 0x48, 0xee, 0xa1, 0x2a, 0xd9,
|
||||
0x7d, 0x70, 0x0a, 0x4f, 0x7b, 0x59, 0xb4, 0x47, 0x85, 0x79, 0xfe, 0x0a,
|
||||
0xe8, 0x4b, 0x33, 0x65, 0x7c, 0x78, 0x2e, 0x1d, 0x14, 0x5e, 0xdf, 0xa0,
|
||||
0xbb, 0x5f, 0x8d, 0x1f, 0xc1, 0x08, 0x55, 0x55, 0xa5, 0x7e, 0xd3, 0x2f,
|
||||
0x6a, 0xa0, 0x37, 0x19, 0xd0, 0x99, 0x4a, 0xed, 0xfd, 0xa2, 0x24, 0x15,
|
||||
0xf7, 0x8e, 0xad, 0x5f, 0xdc, 0x79, 0x60, 0x3a, 0xed, 0xa3, 0x1c, 0xc9,
|
||||
0x9c, 0xd8, 0x85, 0x75, 0x94, 0xef, 0xd2, 0x41, 0x2d, 0x14, 0xea, 0x51,
|
||||
0x3c, 0x21, 0xe8, 0x5a, 0xdf, 0xc8, 0x9c, 0x48, 0xa0, 0x1f, 0xe4, 0xc1,
|
||||
0xef, 0x61, 0x67, 0x8f, 0xe4, 0xc4, 0x63, 0x74, 0x9e, 0x51, 0x90, 0x3f,
|
||||
0xbe, 0x65, 0xdc, 0xb2, 0xb8, 0x2e, 0x42, 0xc3, 0xf5, 0xd4, 0xb0, 0xde,
|
||||
0xd6, 0x39, 0x36, 0x96, 0xd2, 0x3e, 0xb0, 0xb5, 0xe6, 0xfb, 0x2f, 0x65,
|
||||
0xf7, 0x54, 0x8e, 0x64, 0x8e, 0x6d, 0x73, 0xf7, 0xba, 0x02, 0x96, 0xd0,
|
||||
0x0c, 0x99, 0x3f, 0x0d, 0xbf, 0x05, 0xed, 0x75, 0x7e, 0x9b, 0x46, 0xfa,
|
||||
0x37, 0xe9, 0x2e, 0x65, 0x18, 0x0b, 0xe9, 0xb7, 0x66, 0x47, 0x32, 0x9f,
|
||||
0x95, 0xb9, 0xbf, 0xa7, 0x8a, 0xd0, 0xde, 0x57, 0x76, 0xaf, 0x5b, 0xee,
|
||||
0x73, 0xdf, 0xb0, 0xbf, 0x4c, 0xea, 0x66, 0x9b, 0x84, 0x86, 0x78, 0xb7,
|
||||
0x52, 0xbc, 0xbb, 0xde, 0x12, 0x85, 0x69, 0x33, 0x22, 0x1e, 0x85, 0xdb,
|
||||
0xf7, 0x96, 0x28, 0xf2, 0x44, 0xc6, 0xca, 0xce, 0x87, 0x7e, 0x7d, 0xbe,
|
||||
0xfd, 0x96, 0x28, 0xa6, 0xbd, 0xd1, 0x3d, 0xb2, 0x9d, 0x91, 0xfe, 0x73,
|
||||
0x6c, 0xa7, 0xfb, 0x9d, 0x78, 0x14, 0xbf, 0x0d, 0xa3, 0xdf, 0x23, 0x5a,
|
||||
0xf2, 0xb7, 0x64, 0xb4, 0xef, 0x73, 0xec, 0xa7, 0xae, 0x5f, 0x0e, 0xfc,
|
||||
0xf2, 0xe0, 0xf7, 0x07, 0x7c, 0x9f, 0x03, 0x19, 0x69, 0x1f, 0xf9, 0x30,
|
||||
0xdc, 0xf9, 0xf6, 0x5b, 0xda, 0x84, 0xb1, 0xbd, 0x4b, 0xda, 0x8b, 0x78,
|
||||
0x4b, 0xe4, 0x9d, 0xb6, 0x97, 0x19, 0x57, 0x04, 0xe5, 0x8d, 0xea, 0xc0,
|
||||
0xda, 0xb4, 0xbf, 0x8c, 0xd6, 0xfa, 0x34, 0xf6, 0xe0, 0x19, 0xed, 0x74,
|
||||
0x41, 0x81, 0xdd, 0xeb, 0x43, 0xdb, 0x13, 0x17, 0x5a, 0x46, 0x00, 0xba,
|
||||
0xd3, 0xb1, 0xb7, 0x64, 0x5d, 0x39, 0xef, 0x0e, 0x63, 0x6f, 0x2c, 0xcf,
|
||||
0x19, 0x53, 0x8e, 0xfd, 0x86, 0xf6, 0x81, 0x90, 0x5f, 0xec, 0xb9, 0xee,
|
||||
0x32, 0x9d, 0xf9, 0x68, 0xcb, 0x12, 0x7b, 0x3d, 0xad, 0xe1, 0xfc, 0x8a,
|
||||
0xbd, 0x8e, 0xce, 0xc7, 0x9e, 0x5e, 0x48, 0x32, 0x63, 0xff, 0x03, 0x6b,
|
||||
0xee, 0x6b, 0x5f, 0xb1, 0x37, 0x44, 0xfc, 0xf6, 0x86, 0x30, 0xd6, 0xa6,
|
||||
0xc7, 0x8a, 0xe5, 0xba, 0x70, 0x73, 0x70, 0x23, 0xca, 0x7c, 0x0d, 0xce,
|
||||
0x17, 0xd0, 0x0e, 0x5e, 0x3c, 0x91, 0xae, 0xcf, 0x2f, 0xb7, 0x07, 0x9b,
|
||||
0x66, 0xd1, 0xba, 0x0b, 0xe5, 0x47, 0x6b, 0xd8, 0xad, 0xee, 0x3e, 0x50,
|
||||
0xbe, 0x5d, 0x3e, 0xa1, 0x8b, 0x74, 0x4c, 0x1a, 0x1f, 0x69, 0x2f, 0x1f,
|
||||
0x71, 0xbc, 0x9a, 0xdd, 0x3f, 0x75, 0x9e, 0x4f, 0xe4, 0x3a, 0xcf, 0x0a,
|
||||
0xe9, 0xab, 0xa4, 0x4b, 0x15, 0x43, 0x5f, 0x2e, 0x46, 0x3c, 0xd4, 0x0f,
|
||||
0xe2, 0x6e, 0x7a, 0x3f, 0x40, 0x7a, 0xb7, 0x63, 0x1d, 0x82, 0xfe, 0x22,
|
||||
0xf4, 0x09, 0x99, 0x63, 0x55, 0x4e, 0x3d, 0x65, 0xfa, 0x5d, 0xff, 0x55,
|
||||
0xf0, 0x6f, 0xb6, 0x36, 0xe9, 0x01, 0xfc, 0x0e, 0x4f, 0xb3, 0xcb, 0xf3,
|
||||
0xfe, 0x1e, 0xe9, 0x3c, 0xed, 0xfa, 0x75, 0xc1, 0xaf, 0x1e, 0xdf, 0x06,
|
||||
0x2c, 0xc3, 0xa0, 0x7d, 0x4d, 0xbf, 0x2b, 0xc7, 0x0b, 0xf0, 0x57, 0xe1,
|
||||
0xdf, 0x09, 0xff, 0x5b, 0xe4, 0x39, 0x43, 0x42, 0xcf, 0x45, 0x5f, 0x09,
|
||||
0xc2, 0xef, 0xf5, 0xd4, 0xee, 0x08, 0xe9, 0x2c, 0x1d, 0xc8, 0xd3, 0x0d,
|
||||
0xae, 0x9f, 0xe6, 0xfa, 0xbd, 0x9c, 0xda, 0x1d, 0x26, 0xf9, 0x73, 0xdc,
|
||||
0xf7, 0x41, 0xf7, 0xfd, 0x3e, 0x7a, 0x8f, 0x6f, 0x96, 0xe3, 0x9b, 0xb0,
|
||||
0xeb, 0x77, 0x8e, 0xeb, 0xb7, 0x27, 0xb5, 0xbb, 0x43, 0x94, 0xde, 0x2f,
|
||||
0xb4, 0xd2, 0x0d, 0x38, 0x63, 0x3c, 0x28, 0xd7, 0x84, 0x41, 0xb9, 0x76,
|
||||
0xe9, 0x83, 0xee, 0x3d, 0x40, 0xbf, 0xd5, 0xa4, 0xfc, 0xa2, 0xce, 0x1c,
|
||||
0x99, 0xff, 0x16, 0x32, 0x41, 0x37, 0xfd, 0x6c, 0x29, 0xed, 0x1b, 0x5a,
|
||||
0xbd, 0xa7, 0x85, 0x39, 0xe8, 0x86, 0xb9, 0x0d, 0x61, 0xa0, 0xd7, 0x7e,
|
||||
0x96, 0xe7, 0x3e, 0xd7, 0xe3, 0xb9, 0xd2, 0x4d, 0xb7, 0xc4, 0x4d, 0x77,
|
||||
0x07, 0xe9, 0xc5, 0xf2, 0x7c, 0xe8, 0x3e, 0x2d, 0x50, 0xec, 0xac, 0xa5,
|
||||
0x73, 0xb1, 0x4f, 0xe7, 0x77, 0xe3, 0xda, 0x47, 0x7e, 0x3e, 0xf8, 0xf9,
|
||||
0x06, 0x2b, 0xae, 0xf5, 0x24, 0xfc, 0xf9, 0x13, 0x32, 0xc7, 0x7d, 0x67,
|
||||
0xc8, 0xf4, 0xac, 0x1b, 0xff, 0xec, 0x3d, 0x54, 0x9f, 0x3f, 0x42, 0xdb,
|
||||
0x73, 0xf6, 0x5a, 0x51, 0x96, 0x3e, 0xec, 0x5d, 0xf8, 0x84, 0x6c, 0x33,
|
||||
0x0f, 0xd0, 0x5e, 0xe2, 0xb1, 0x77, 0xdc, 0xfd, 0xcc, 0x05, 0xe8, 0xe3,
|
||||
0x57, 0xa1, 0x1e, 0x77, 0x41, 0x7e, 0xb4, 0xa2, 0xa9, 0x4f, 0x42, 0x0f,
|
||||
0xae, 0x1e, 0xdf, 0xc3, 0x57, 0xb6, 0xaf, 0x6e, 0x5a, 0x15, 0xcb, 0xea,
|
||||
0x18, 0x5f, 0x33, 0x4e, 0xf7, 0x23, 0x4d, 0xd4, 0xf1, 0x3b, 0xfd, 0x7d,
|
||||
0xd7, 0x25, 0x2d, 0xed, 0x67, 0x7b, 0x2f, 0x15, 0xd4, 0xcf, 0xcd, 0x57,
|
||||
0x2b, 0x31, 0xa7, 0x75, 0x9d, 0x31, 0xe7, 0xac, 0x6c, 0x6f, 0x8f, 0x9d,
|
||||
0xa9, 0xf7, 0xae, 0x6c, 0x5f, 0x71, 0xd6, 0xf4, 0xda, 0x63, 0x9d, 0x98,
|
||||
0x09, 0x3f, 0xff, 0x9e, 0x42, 0x67, 0x7d, 0x3e, 0xb7, 0xa7, 0xd7, 0xda,
|
||||
0x95, 0xdd, 0x97, 0xad, 0x3f, 0x3d, 0x2e, 0xc7, 0x07, 0x6d, 0x73, 0x09,
|
||||
0xfa, 0x83, 0x7f, 0xb8, 0x7f, 0x60, 0x3d, 0xda, 0x24, 0xce, 0xd5, 0x34,
|
||||
0x8c, 0x81, 0xc7, 0x5f, 0xa3, 0x77, 0xae, 0x2e, 0x58, 0x87, 0x3e, 0x31,
|
||||
0xcd, 0x7d, 0xa6, 0x35, 0xc5, 0x95, 0x78, 0x9e, 0xea, 0x3e, 0xd3, 0xda,
|
||||
0xe3, 0x0a, 0x3c, 0x57, 0xba, 0xcf, 0xb4, 0x6e, 0x99, 0x83, 0xe7, 0xf3,
|
||||
0xb1, 0xdf, 0xe9, 0x77, 0xdc, 0xc7, 0xef, 0x84, 0x4e, 0x41, 0xf7, 0x6b,
|
||||
0xb2, 0xed, 0xac, 0x18, 0xe3, 0xbf, 0x47, 0xfe, 0x26, 0x5a, 0x60, 0x8d,
|
||||
0x75, 0xe2, 0xbb, 0x76, 0xf9, 0x75, 0x87, 0xcc, 0x5e, 0x65, 0x3d, 0xed,
|
||||
0xdb, 0xe0, 0x79, 0xd0, 0x19, 0x1b, 0x4f, 0xbc, 0x86, 0xef, 0x67, 0xe2,
|
||||
0xbb, 0xd9, 0xb8, 0x7f, 0x03, 0xf7, 0xcb, 0xf0, 0x1e, 0xe3, 0xf4, 0xf1,
|
||||
0x2b, 0x10, 0xdf, 0x8d, 0xb8, 0xcf, 0xa4, 0xb6, 0x07, 0x5d, 0xa5, 0xce,
|
||||
0xe9, 0x63, 0xc1, 0x85, 0x76, 0xf9, 0xf4, 0x21, 0xcc, 0x6b, 0x98, 0xbb,
|
||||
0xb0, 0x66, 0xea, 0x0e, 0xd5, 0xc0, 0xed, 0xb7, 0xcb, 0xcb, 0x97, 0xcb,
|
||||
0xfd, 0xb2, 0xad, 0xa7, 0xed, 0xa9, 0xd1, 0xda, 0xfc, 0x98, 0xb5, 0x8e,
|
||||
0xe6, 0x0c, 0x51, 0x62, 0x6f, 0x0b, 0x51, 0x9b, 0x2c, 0x7b, 0x14, 0x32,
|
||||
0xed, 0x8c, 0x4f, 0x51, 0x1e, 0x49, 0xe8, 0x13, 0x28, 0xad, 0x9f, 0x24,
|
||||
0xa6, 0xd0, 0x38, 0x79, 0x1c, 0x63, 0x5b, 0x09, 0xed, 0xd7, 0xde, 0x84,
|
||||
0xbd, 0x1c, 0x47, 0x63, 0x14, 0x22, 0x06, 0x4d, 0x35, 0xb6, 0x5c, 0x08,
|
||||
0x14, 0xa9, 0xd4, 0xe0, 0xdb, 0x57, 0xc6, 0x4e, 0x5f, 0xbb, 0x44, 0xef,
|
||||
0x6c, 0x6d, 0x8e, 0xea, 0xe3, 0xbc, 0x4f, 0xd7, 0x4f, 0x96, 0x37, 0xae,
|
||||
0x6c, 0x69, 0x5f, 0xba, 0x14, 0x9a, 0x6d, 0xe7, 0xb2, 0x68, 0xd7, 0x5c,
|
||||
0xb9, 0xd4, 0x81, 0x86, 0xea, 0xa8, 0x34, 0x67, 0xd1, 0x4b, 0x74, 0x77,
|
||||
0x7f, 0x17, 0xf2, 0xfc, 0x0b, 0xed, 0xa7, 0x1e, 0xc9, 0x1c, 0xcd, 0x9e,
|
||||
0x67, 0x92, 0x7e, 0x87, 0x7d, 0x8f, 0xcf, 0xde, 0x47, 0x59, 0x0c, 0xd2,
|
||||
0x59, 0x04, 0xee, 0x4f, 0xa0, 0xfc, 0x3e, 0x73, 0xd6, 0xe0, 0xc7, 0xa8,
|
||||
0xad, 0x87, 0x4e, 0x93, 0xad, 0xb1, 0x49, 0x36, 0x0a, 0x39, 0x37, 0x0a,
|
||||
0xfa, 0x1d, 0x3b, 0xd6, 0x43, 0x4a, 0xd2, 0xe3, 0xc1, 0xdd, 0x53, 0x24,
|
||||
0x3c, 0x0a, 0xf6, 0xa5, 0xe0, 0x4d, 0x67, 0xfe, 0x39, 0x43, 0x03, 0x49,
|
||||
0xef, 0x50, 0x4f, 0xf2, 0xb4, 0x73, 0x8f, 0xa1, 0x03, 0x49, 0x65, 0xe8,
|
||||
0x05, 0x9c, 0x21, 0x9f, 0xf9, 0xfb, 0x6f, 0x45, 0xc3, 0x99, 0xf5, 0xab,
|
||||
0xd8, 0x1f, 0x7a, 0x05, 0xd7, 0x8b, 0xb8, 0x92, 0x8a, 0x93, 0x86, 0xf3,
|
||||
0x3b, 0x6f, 0x27, 0xee, 0x42, 0x8a, 0x9b, 0xec, 0x0a, 0x9c, 0x78, 0xdd,
|
||||
0x33, 0x13, 0xd2, 0x25, 0x86, 0x5e, 0xd0, 0xb2, 0x71, 0xca, 0x67, 0xe8,
|
||||
0x2b, 0x25, 0xd8, 0x63, 0x29, 0x19, 0x89, 0x43, 0x67, 0xed, 0x46, 0xbd,
|
||||
0x66, 0x75, 0x96, 0x7e, 0x7d, 0x0a, 0xde, 0x97, 0x41, 0xa7, 0xf1, 0xda,
|
||||
0x71, 0xfc, 0xae, 0xba, 0x5b, 0xea, 0x33, 0x53, 0x9c, 0x33, 0x19, 0x8d,
|
||||
0xf4, 0x81, 0x12, 0x2b, 0xae, 0xd3, 0xbe, 0x9a, 0x28, 0xc5, 0xff, 0x61,
|
||||
0xa0, 0xf3, 0xb0, 0xd2, 0x47, 0xf4, 0x92, 0xd2, 0x6e, 0xcd, 0x3b, 0x2e,
|
||||
0xcc, 0x14, 0x84, 0x29, 0x71, 0xc3, 0x78, 0x65, 0x98, 0xb8, 0x3e, 0xa5,
|
||||
0x28, 0xae, 0x95, 0x21, 0x9c, 0x6b, 0x47, 0x81, 0x33, 0x32, 0xb8, 0x71,
|
||||
0xf7, 0x50, 0xbb, 0x92, 0x69, 0xef, 0x26, 0x99, 0xb0, 0x0f, 0x4f, 0xf5,
|
||||
0x01, 0xbb, 0x0a, 0xe8, 0x2b, 0x6a, 0xe9, 0x1b, 0xc9, 0xfc, 0xd2, 0x03,
|
||||
0xa1, 0xfc, 0xc2, 0x7a, 0xe1, 0xc1, 0x3e, 0xd1, 0xa7, 0xd0, 0x91, 0x20,
|
||||
0x17, 0x5d, 0xba, 0xb4, 0xe3, 0xb0, 0xdd, 0x74, 0x1d, 0xb9, 0x45, 0x89,
|
||||
0xfb, 0xad, 0xf7, 0xcc, 0x6f, 0xf7, 0x38, 0xdf, 0x0a, 0xe4, 0xd7, 0x27,
|
||||
0xdb, 0xb1, 0x2b, 0xc7, 0xd8, 0x7e, 0x33, 0xfe, 0x97, 0x03, 0xe9, 0x55,
|
||||
0x76, 0x92, 0xce, 0xf3, 0x43, 0x2a, 0xee, 0x79, 0x76, 0x52, 0xc7, 0xde,
|
||||
0x4e, 0xc8, 0x80, 0x7b, 0x02, 0xed, 0x9f, 0x93, 0x8d, 0x05, 0xed, 0xa9,
|
||||
0xe3, 0x37, 0xe6, 0x65, 0x94, 0xd6, 0x88, 0x21, 0x72, 0x30, 0x3e, 0x42,
|
||||
0x66, 0xad, 0x24, 0x5b, 0x46, 0xe9, 0xc4, 0x57, 0x26, 0x59, 0xf1, 0xa2,
|
||||
0x93, 0xf4, 0xff, 0x20, 0xb0, 0x7f, 0x52, 0x4d, 0x7b, 0x4b, 0x24, 0xa7,
|
||||
0x65, 0x48, 0xdd, 0x40, 0x0c, 0x6f, 0x99, 0x91, 0xed, 0x27, 0x13, 0x87,
|
||||
0xe2, 0x21, 0xda, 0x1b, 0x3f, 0xe6, 0x94, 0xdb, 0xa8, 0x1f, 0xe3, 0x48,
|
||||
0xcb, 0x6d, 0xc4, 0x29, 0x73, 0x99, 0x94, 0x73, 0x33, 0x3e, 0xf4, 0x06,
|
||||
0xb4, 0x12, 0xd4, 0x32, 0xc2, 0x78, 0xca, 0x70, 0xa1, 0xc9, 0x7a, 0xb0,
|
||||
0xf7, 0x3c, 0x5f, 0x13, 0xd3, 0xe1, 0x4d, 0xd7, 0xc5, 0xe2, 0x1f, 0x29,
|
||||
0xa4, 0xe2, 0xf7, 0xfb, 0x55, 0x4d, 0xd3, 0x3c, 0xe7, 0x9e, 0x7b, 0xae,
|
||||
0xb7, 0xa2, 0xa2, 0xc2, 0x77, 0xd1, 0x45, 0x17, 0xe5, 0xcc, 0x98, 0x31,
|
||||
0x23, 0x77, 0xce, 0x9c, 0x39, 0xfe, 0x79, 0xf3, 0xe6, 0xe5, 0x5d, 0x7f,
|
||||
0xfd, 0xf5, 0xf9, 0x8b, 0x17, 0x2f, 0x9e, 0x80, 0x64, 0x02, 0xcd, 0xcd,
|
||||
0xcd, 0x05, 0xb7, 0xdf, 0x7e, 0xfb, 0xc4, 0x58, 0x2c, 0x16, 0xbc, 0xfb,
|
||||
0xee, 0xbb, 0xb5, 0xde, 0xde, 0xde, 0xc2, 0x8d, 0x1b, 0x37, 0x16, 0x6d,
|
||||
0xdb, 0xb6, 0xad, 0x78, 0xc7, 0x8e, 0x1d, 0x25, 0xbb, 0x76, 0xed, 0x2a,
|
||||
0x7d, 0xea, 0xa9, 0xa7, 0xbe, 0xf2, 0xcc, 0x33, 0xcf, 0x9c, 0xb3, 0x77,
|
||||
0xef, 0xde, 0xb2, 0x97, 0x5e, 0x7a, 0xe9, 0xdc, 0xd7, 0x5f, 0x7f, 0x7d,
|
||||
0xd2, 0x9b, 0x6f, 0xbe, 0x39, 0xf9, 0xed, 0xb7, 0xdf, 0x9e, 0xf2, 0xce,
|
||||
0x3b, 0xef, 0x9c, 0xf7, 0xc1, 0x07, 0x1f, 0x9c, 0x7f, 0xf4, 0xe8, 0xd1,
|
||||
0x72, 0xd8, 0xac, 0x60, 0x6f, 0x5a, 0x49, 0x2a, 0x90, 0xa6, 0xc2, 0xf8,
|
||||
0x60, 0x9c, 0x5c, 0x8f, 0xcb, 0x2c, 0x9c, 0x7a, 0xc6, 0x6f, 0xbb, 0x3d,
|
||||
0x17, 0xd6, 0x5c, 0x74, 0xf1, 0xf4, 0x5a, 0x3c, 0x86, 0x66, 0xcc, 0xbc,
|
||||
0x64, 0xd6, 0xa5, 0x97, 0x5d, 0x3e, 0xfb, 0xeb, 0x75, 0xf3, 0xae, 0x9e,
|
||||
0xbf, 0x80, 0xec, 0x80, 0xce, 0xfa, 0xae, 0x1e, 0xab, 0x84, 0xb1, 0x52,
|
||||
0x59, 0xb5, 0xb2, 0x65, 0xa9, 0x68, 0x6c, 0x69, 0xe9, 0x14, 0x1d, 0xe8,
|
||||
0x6e, 0x82, 0xfa, 0x1c, 0xbd, 0xae, 0x8b, 0x44, 0x6e, 0xbe, 0x7a, 0xf1,
|
||||
0x8d, 0xb4, 0x5b, 0x34, 0x22, 0x44, 0x15, 0xac, 0x52, 0xaa, 0x51, 0x5e,
|
||||
0xd5, 0xd8, 0x99, 0xae, 0x42, 0xc9, 0x57, 0x61, 0xeb, 0xb2, 0x0a, 0x36,
|
||||
0x34, 0x55, 0xcf, 0xe1, 0xdd, 0x14, 0x5c, 0xfd, 0x8e, 0x75, 0x89, 0x07,
|
||||
0xb6, 0x35, 0x5e, 0xb2, 0xac, 0xf9, 0x88, 0xad, 0xb3, 0x18, 0x86, 0x61,
|
||||
0x18, 0x86, 0x61, 0x18, 0x86, 0x61, 0x18, 0x86, 0x61, 0x18, 0x86, 0x61,
|
||||
0x18, 0x86, 0x61, 0x18, 0x86, 0x61, 0x18, 0x86, 0x61, 0x18, 0x86, 0x61,
|
||||
0x18, 0x86, 0x61, 0x18, 0x86, 0x61, 0x18, 0x86, 0x61, 0x18, 0x86, 0x61,
|
||||
0x18, 0x86, 0x61, 0x18, 0x86, 0x61, 0x18, 0x86, 0x61, 0x18, 0x86, 0x61,
|
||||
0x18, 0x86, 0x61, 0x18, 0x86, 0x61, 0x18, 0x86, 0x61, 0x18, 0x86, 0x61,
|
||||
0x18, 0x86, 0x61, 0x18, 0x86, 0x61, 0x18, 0x86, 0x61, 0x18, 0x86, 0x61,
|
||||
0x18, 0x86, 0x61, 0x18, 0x86, 0x61, 0x18, 0x86, 0x61, 0x18, 0x86, 0x61,
|
||||
0x18, 0x86, 0x61, 0x18, 0x86, 0x61, 0x18, 0x86, 0x61, 0x18, 0x86, 0x61,
|
||||
0x18, 0x86, 0x61, 0x18, 0x86, 0x61, 0x18, 0x86, 0x61, 0x18, 0x86, 0x61,
|
||||
0x18, 0x86, 0x61, 0x18, 0x86, 0x61, 0x18, 0x86, 0x61, 0x18, 0x86, 0x61,
|
||||
0x18, 0x86, 0x61, 0x18, 0x86, 0x61, 0x18, 0x86, 0x61, 0x18, 0x86, 0x61,
|
||||
0x18, 0x86, 0x61, 0x18, 0x86, 0x61, 0x18, 0x86, 0x61, 0x18, 0x86, 0x61,
|
||||
0x18, 0x86, 0x61, 0x18, 0x86, 0x61, 0x18, 0x86, 0x61, 0x18, 0x86, 0x61,
|
||||
0x18, 0x86, 0x61, 0x18, 0x86, 0x61, 0x18, 0x86, 0x61, 0x18, 0x86, 0x61,
|
||||
0x18, 0x86, 0x61, 0x18, 0x86, 0x61, 0x18, 0x86, 0x61, 0x18, 0x86, 0x61,
|
||||
0x18, 0x86, 0x61, 0x18, 0x86, 0x61, 0x18, 0x86, 0x61, 0x18, 0x86, 0x61,
|
||||
0x18, 0x86, 0x61, 0x18, 0x86, 0x61, 0x18, 0x86, 0x61, 0x18, 0x86, 0x61,
|
||||
0x18, 0x86, 0x61, 0x18, 0x86, 0x61, 0x18, 0x86, 0x61, 0x18, 0x86, 0x61,
|
||||
0x18, 0x86, 0x61, 0x18, 0x86, 0x61, 0x18, 0x86, 0x61, 0x18, 0x86, 0x61,
|
||||
0x18, 0x86, 0x61, 0x18, 0x86, 0x61, 0x18, 0x86, 0x61, 0x18, 0x86, 0x61,
|
||||
0x18, 0x86, 0x61, 0x18, 0x86, 0x61, 0x18, 0x86, 0x61, 0x18, 0x86, 0x61,
|
||||
0x18, 0x86, 0x61, 0x18, 0x86, 0x61, 0x18, 0x86, 0x61, 0x18, 0x86, 0x61,
|
||||
0x18, 0x86, 0x61, 0x18, 0x86, 0x61, 0x18, 0x86, 0x61, 0x18, 0x86, 0x61,
|
||||
0x18, 0x86, 0x61, 0x18, 0x86, 0x61, 0x18, 0x86, 0x61, 0x18, 0x86, 0x61,
|
||||
0x18, 0x86, 0x61, 0x18, 0x86, 0x61, 0x18, 0x86, 0x61, 0x18, 0x86, 0x61,
|
||||
0x18, 0x86, 0x61, 0x18, 0x86, 0x61, 0x18, 0x86, 0x61, 0x18, 0x86, 0x61,
|
||||
0x18, 0x86, 0x61, 0x18, 0x86, 0x61, 0x18, 0x86, 0x61, 0x18, 0x86, 0x61,
|
||||
0x18, 0xe6, 0xff, 0x27, 0xff, 0x0d, 0xb8, 0x1e, 0xba, 0x41,
|
||||
};
|
||||
+51
-21
@@ -36,6 +36,7 @@
|
||||
#include "retro_miscellaneous.h"
|
||||
#include "streams/file_stream.h"
|
||||
|
||||
#include <assert.h>
|
||||
#include <ctype.h>
|
||||
#include <errno.h>
|
||||
#include <stdint.h>
|
||||
@@ -279,14 +280,19 @@ opera_lr_opts_get_bios(opera_lr_opts_t *opts_)
|
||||
const char *val;
|
||||
const opera_bios_t *bios;
|
||||
|
||||
opts_->bios = NULL;
|
||||
opts_->bios = opera_bios_builtin();
|
||||
|
||||
val = getval("bios");
|
||||
if(val == NULL)
|
||||
return;
|
||||
|
||||
if(strcmp(val,OPERA_BIOS_BUILTIN_ID) == 0)
|
||||
return;
|
||||
|
||||
for(bios = opera_bios_begin(); bios != opera_bios_end(); bios++)
|
||||
{
|
||||
if(bios == opera_bios_builtin())
|
||||
continue;
|
||||
if(strcmp(bios->filename,val))
|
||||
continue;
|
||||
|
||||
@@ -295,37 +301,61 @@ opera_lr_opts_get_bios(opera_lr_opts_t *opts_)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static
|
||||
int64_t
|
||||
_load_bios_rom(const opera_bios_t *bios_)
|
||||
{
|
||||
int64_t rv;
|
||||
|
||||
assert(bios_ != NULL);
|
||||
|
||||
if(bios_ == opera_bios_builtin())
|
||||
{
|
||||
// Memory initialization provides fresh zeroed ROM1, including its unused tail.
|
||||
rv = opera_bios_load_builtin(ROM1,ROM1_SIZE);
|
||||
if(rv < 0)
|
||||
retro_log_printf_cb(RETRO_LOG_ERROR,
|
||||
"[Opera]: unable to decompress built-in BIOS ROM - %s\n",
|
||||
bios_->name);
|
||||
else
|
||||
retro_log_printf_cb(RETRO_LOG_INFO,
|
||||
"[Opera]: loaded built-in BIOS ROM - %s\n",
|
||||
bios_->name);
|
||||
|
||||
return rv;
|
||||
}
|
||||
|
||||
rv = read_file_from_system_directory(bios_->filename,ROM1,ROM1_SIZE);
|
||||
if(rv < 0)
|
||||
retro_log_printf_cb(RETRO_LOG_ERROR,
|
||||
"[Opera]: unable to find or load BIOS ROM - %s\n",
|
||||
bios_->filename);
|
||||
else
|
||||
retro_log_printf_cb(RETRO_LOG_INFO,
|
||||
"[Opera]: loaded BIOS ROM - %s\n",
|
||||
bios_->filename);
|
||||
|
||||
return rv;
|
||||
}
|
||||
|
||||
|
||||
static
|
||||
void
|
||||
opera_lr_opts_set_bios(opera_lr_opts_t const *opts_)
|
||||
{
|
||||
int64_t rv;
|
||||
const opera_bios_t *bios;
|
||||
|
||||
if(g_OPTS.initialized_opera)
|
||||
return;
|
||||
|
||||
if(opts_->bios == NULL)
|
||||
{
|
||||
retro_log_printf_cb(RETRO_LOG_ERROR,"[Opera]: no BIOS ROM found\n");
|
||||
return;
|
||||
}
|
||||
|
||||
rv = read_file_from_system_directory(opts_->bios->filename,ROM1,ROM1_SIZE);
|
||||
if(rv < 0)
|
||||
{
|
||||
retro_log_printf_cb(RETRO_LOG_ERROR,
|
||||
"[Opera]: unable to find or load BIOS ROM - %s\n",
|
||||
opts_->bios->filename);
|
||||
return;
|
||||
}
|
||||
|
||||
retro_log_printf_cb(RETRO_LOG_INFO,
|
||||
"[Opera]: loaded BIOS ROM - %s\n",
|
||||
opts_->bios->filename);
|
||||
bios = (opts_->bios == NULL) ? opera_bios_builtin() : opts_->bios;
|
||||
if(_load_bios_rom(bios) < 0)
|
||||
return;
|
||||
|
||||
opera_mem_rom1_byteswap32_if_le();
|
||||
|
||||
g_OPTS.bios = opts_->bios;
|
||||
g_OPTS.bios = bios;
|
||||
}
|
||||
|
||||
static
|
||||
|
||||
Executable
+51
@@ -0,0 +1,51 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Regenerate the private Opera Boot header; not required for normal builds."""
|
||||
|
||||
import argparse
|
||||
import hashlib
|
||||
from pathlib import Path
|
||||
import zlib
|
||||
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser(description=__doc__)
|
||||
parser.add_argument(
|
||||
"rom", nargs="?", type=Path, default=Path("opera-boot.bin"),
|
||||
help="source ROM (default: opera-boot.bin)",
|
||||
)
|
||||
parser.add_argument(
|
||||
"output", nargs="?", type=Path, default=Path("opera_boot.h"),
|
||||
help="destination header (default: opera_boot.h)",
|
||||
)
|
||||
args = parser.parse_args()
|
||||
source = args.rom.read_bytes()
|
||||
compressed = zlib.compress(source, level=9)
|
||||
rows = [
|
||||
"#pragma once",
|
||||
"",
|
||||
"#include <stdint.h>",
|
||||
"",
|
||||
"// Generated by tools/embed_boot_rom.py; do not edit by hand.",
|
||||
"// Source: opera-boot project: https://github.com/trapexit/opera-boot",
|
||||
"// Source license: GPL-2.0-only.",
|
||||
f"// Source bytes: {len(source)}; CRC32: {zlib.crc32(source):08x}.",
|
||||
f"// Source SHA256: {hashlib.sha256(source).hexdigest()}.",
|
||||
f"// Compression: zlib wrapper, level 9; compressed bytes: {len(compressed)}.",
|
||||
"",
|
||||
f"enum {{ OPERA_BOOT_ROM_BYTES = {len(source)} }};",
|
||||
"",
|
||||
"static const uint8_t OPERA_BOOT_ZLIB[] =",
|
||||
" {",
|
||||
]
|
||||
|
||||
for offset in range(0, len(compressed), 12):
|
||||
row = ", ".join(f"0x{byte:02x}" for byte in compressed[offset:offset + 12])
|
||||
rows.append(f" {row},")
|
||||
rows.extend([" };", ""])
|
||||
args.output.write_text("\n".join(rows), encoding="utf-8", newline="\n")
|
||||
print(f"{len(source)} source bytes -> {len(compressed)} compressed bytes")
|
||||
print(f"SHA256 {hashlib.sha256(source).hexdigest()}")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
+11
-3
@@ -430,6 +430,8 @@ struct core_api_t
|
||||
|
||||
static const rom_entry_t BIOS_ROMS[] =
|
||||
{
|
||||
// Opera Boot is build-dependent: zero CRC permits only a basename+size match.
|
||||
{ "opera-boot.bin", "Opera Boot (System)", 131072, 0 },
|
||||
{ "panafz1.bin", "Panasonic FZ-1 (U)", 1048576, 0xc8c8ff89 },
|
||||
{ "panafz1j.bin", "Panasonic FZ-1 (J)", 1048576, 0xd9493adc },
|
||||
{ "panafz1j-norsa.bin", "Panasonic FZ-1 (J) [No RSA]", 1048576, 0x82ce67c6 },
|
||||
@@ -1181,6 +1183,8 @@ _print_bios_list(FILE *f_)
|
||||
BIOS_ROMS[i].size,
|
||||
BIOS_ROMS[i].crc32,
|
||||
BIOS_ROMS[i].name);
|
||||
if(BIOS_ROMS[i].crc32 == 0)
|
||||
fprintf(f_, " build-dependent CRC; requires this filename and size\n");
|
||||
|
||||
resolved = _resolve_rom_request(BIOS_ROMS[i].filename);
|
||||
if(resolved != NULL)
|
||||
@@ -2358,7 +2362,9 @@ _find_rom_by_hash(const rom_entry_t *entries_,
|
||||
{
|
||||
while(entries_->filename != NULL)
|
||||
{
|
||||
if((entries_->size == size_) && (entries_->crc32 == crc_))
|
||||
if((entries_->crc32 != 0) &&
|
||||
(entries_->size == size_) &&
|
||||
(entries_->crc32 == crc_))
|
||||
return entries_;
|
||||
entries_++;
|
||||
}
|
||||
@@ -2405,6 +2411,8 @@ _stage_rom(const char *source_path_,
|
||||
|
||||
by_base = _find_rom_by_basename(entries_, source_path_);
|
||||
by_hash = _find_rom_by_hash(entries_, size, crc);
|
||||
if((by_base != NULL) && (by_base->crc32 == 0) && (by_base->size == size))
|
||||
by_hash = by_base;
|
||||
|
||||
if((by_base != NULL) && (by_hash != by_base))
|
||||
{
|
||||
@@ -2446,8 +2454,8 @@ _stage_rom(const char *source_path_,
|
||||
uint64_t target_size;
|
||||
|
||||
if((_file_crc32_and_size(target, &target_crc, &target_size) != 0) ||
|
||||
(target_size != entry->size) ||
|
||||
(target_crc != entry->crc32))
|
||||
(target_size != size) ||
|
||||
(target_crc != crc))
|
||||
{
|
||||
_report_error("staged %s ROM already exists with different content: %s\n",
|
||||
kind_, target);
|
||||
|
||||
Reference in new issue
Block a user