Merge branch 'implicit-header' of https://github.com/wphilips/gr-lora into wphilips-implicit-header

gr3.7^2
Pieter Robyns 2018-09-19 10:00:27 +02:00
commit 33e1e956f4
4 zmienionych plików z 51 dodań i 13 usunięć

Wyświetl plik

@ -102,7 +102,6 @@
<name>Reduced rate</name>
<key>reduced_rate</key>
<type>enum</type>
<hide>$implicit.hide_imp</hide>
<option>
<name>No</name>
<key>False</key>

Wyświetl plik

@ -16,6 +16,7 @@
* along with this software; see the file COPYING. If not, write to
* the Free Software Foundation, Inc., 51 Franklin Street,
* Boston, MA 02110-1301, USA.
* 2018: patches by wilfried.philips@wphilipe.eu for low data rate and implicit header decoding
*/
#ifdef HAVE_CONFIG_H
@ -85,7 +86,6 @@ namespace gr {
d_number_of_bins_hdr = (uint32_t)(1u << (d_sf-2));
d_decim_factor = d_samples_per_symbol / d_number_of_bins;
d_energy_threshold = 0.0f;
d_whitening_sequence = gr::lora::prng_payload;
d_fine_sync = 0;
d_enable_fine_sync = !disable_drift_correction;
set_output_multiple(2 * d_samples_per_symbol);
@ -480,7 +480,7 @@ namespace gr {
bool decoder_impl::demodulate(const gr_complex *samples, const bool reduced_rate) {
// DBGR_TIME_MEASUREMENT_TO_FILE("SFxx_method");
bool is_first = d_implicit && (d_demodulated.size()==0);
// DBGR_START_TIME_MEASUREMENT(false, "only");
uint32_t bin_idx = max_frequency_gradient_idx(samples);
@ -504,9 +504,10 @@ namespace gr {
d_words.push_back(word);
// Look for 4+cr symbols and stop
if (d_words.size() == (4u + d_phdr.cr)) {
// Deinterleave
deinterleave((reduced_rate || d_sf > 10) ? d_sf - 2u : d_sf);
if (d_words.size() == (4u + (is_first ? 4 : d_phdr.cr))) {
// Deinterleave
deinterleave((reduced_rate||is_first || d_sf > 10) ? d_sf - 2u : d_sf);
return true; // Signal that a block is ready for decoding
}
@ -562,8 +563,17 @@ namespace gr {
// For determining whitening sequence
//if (!is_header)
// values_to_file("/tmp/after_deshuffle", &d_words_deshuffled[0], d_words_deshuffled.size(), 8);
if (d_implicit && ! d_reduced_rate)
dewhiten(is_header ? gr::lora::prng_header :
(d_phdr.cr ==4) ? gr::lora::prng_payload_cr8_implicit_fullrate:
(d_phdr.cr ==3) ? gr::lora::prng_payload_cr7_implicit_fullrate:
(d_phdr.cr ==2) ? gr::lora::prng_payload_cr6_implicit_fullrate :
gr::lora::prng_payload_cr5_implicit_fullrate);
else
dewhiten(is_header ? gr::lora::prng_header : d_whitening_sequence);
dewhiten(is_header ? gr::lora::prng_header :
(d_phdr.cr <=2) ? gr::lora::prng_payload_cr56 : gr::lora::prng_payload_cr78);
//if (!is_header)
// values_to_file("/tmp/after_dewhiten", &d_words_dewhitened[0], d_words_dewhitened.size(), 8);
@ -828,7 +838,7 @@ namespace gr {
//d_phy_crc = SM(decoded[1], 4, 0xf0) | MS(decoded[2], 0xf0, 4);
// Calculate number of payload symbols needed
uint8_t redundancy = (d_sf > 10 ? 2 : 0);
uint8_t redundancy = ((d_sf > 10 || d_reduced_rate) ? 2 : 0);
const int symbols_per_block = d_phdr.cr + 4u;
const float bits_needed = float(d_payload_length) * 8.0f;
const float symbols_needed = bits_needed * (symbols_per_block / 4.0f) / float(d_sf - redundancy);
@ -851,7 +861,7 @@ namespace gr {
d_payload_symbols = 0;
//d_demodulated.erase(d_demodulated.begin(), d_demodulated.begin() + 7u); // Test for SF 8 with header
d_payload_length = (int32_t)(d_demodulated.size() / 2);
} else if (demodulate(input, d_implicit && d_reduced_rate)) {
} else if (demodulate(input, d_implicit || d_reduced_rate)) {
if(!d_implicit)
d_payload_symbols -= (4u + d_phdr.cr);
}

Wyświetl plik

@ -100,7 +100,6 @@ namespace gr {
uint32_t d_payload_length; ///< The number of words after decoding the HDR or payload. Calculated from an indicator in the HDR.
uint32_t d_corr_fails; ///< Indicates how many times the correlation failed. After some tries, the state will revert to `DecoderState::DETECT`.
float d_energy_threshold; ///< The absolute threshold to distinguish signal from noise.
const uint8_t* d_whitening_sequence; ///< A pointer to the whitening sequence to be used in decoding. Determined by the SF in the ctor.
float d_snr; ///< Signal to noise ratio
boost::circular_buffer<float> d_pwr_queue; ///< Queue holding symbol power values
@ -298,7 +297,7 @@ namespace gr {
* \param is_header
* Whether the demodulated words were from the HDR.
*/
bool demodulate(const gr_complex *samples, const bool is_header);
bool demodulate(const gr_complex *samples, const bool reduced_rate);
/**
* \brief Deinterleave the raw demodulated words by reversing the interleave pattern.

Wyświetl plik

@ -34,10 +34,40 @@ namespace gr {
/**
* Whitening sequence
*/
const uint8_t prng_payload[] = {
0xff, 0xff, 0x2d, 0xff, 0x78, 0xff, 0xe1, 0xff, 0x00, 0xff, 0xd2, 0x2d, 0x55, 0x78, 0x4b, 0xe1, 0x66, 0x00, 0x1e, 0xd2, 0xff, 0x55, 0x2d, 0x4b, 0x78, 0x66, 0xe1, 0x1e, 0xd2, 0xff, 0x87, 0x2d, 0xcc, 0x78, 0xaa, 0xe1, 0xb4, 0xd2, 0x99, 0x87, 0xe1, 0xcc, 0x00, 0xaa, 0x00, 0xb4, 0x00, 0x99, 0x00, 0xe1, 0xd2, 0x00, 0x55, 0x00, 0x99, 0x00, 0xe1, 0x00, 0xd2, 0xd2, 0x87, 0x55, 0x1e, 0x99, 0x2d, 0xe1, 0x78, 0xd2, 0xe1, 0x87, 0xd2, 0x1e, 0x55, 0x2d, 0x99, 0x78, 0x33, 0xe1, 0x55, 0xd2, 0x4b, 0x55, 0x66, 0x99, 0x1e, 0x33, 0x2d, 0x55, 0x78, 0x4b, 0xe1, 0x66, 0x00, 0x1e, 0x00, 0x2d, 0x00, 0x78, 0xd2, 0xe1, 0x87, 0x00, 0xcc, 0x00, 0x78, 0x00, 0x33, 0xd2, 0x55, 0x87, 0x99, 0xcc, 0x33, 0x78, 0x55, 0x33, 0x99, 0x55, 0x33, 0x99, 0x87, 0x33, 0xcc, 0x55, 0xaa, 0x99, 0x66, 0x33, 0x1e, 0x87, 0x2d, 0xcc, 0x78, 0xaa, 0x33, 0x66, 0x55, 0x1e, 0x99, 0x2d, 0xe1, 0x78, 0x00, 0x33, 0x00, 0x55, 0xd2, 0x99, 0x55, 0xe1, 0x4b, 0x00, 0xb4, 0x00, 0x4b, 0xd2, 0x66, 0x55, 0xcc, 0x4b, 0xaa, 0xb4, 0x66, 0x4b, 0xcc, 0x66, 0xaa, 0xcc, 0xb4, 0xaa, 0x4b, 0x66, 0x66, 0xcc, 0xcc, 0xaa, 0x78, 0xb4, 0x33, 0x4b, 0x55, 0x66, 0x4b, 0xcc, 0x66, 0x78, 0xcc, 0x33, 0x78, 0x55, 0xe1, 0x4b, 0x00, 0x66, 0xd2, 0xcc, 0x87, 0x78, 0x1e, 0xe1, 0xff, 0x00, 0xff, 0xd2, 0x2d, 0x87, 0xaa, 0x1e, 0x66, 0xff, 0xcc, 0xff, 0xaa, 0x2d, 0x66, 0xaa, 0x1e, 0x66, 0xff, 0xcc, 0x2d, 0xaa, 0xaa, 0x66, 0xb4, 0x1e, 0x4b, 0xff, 0x66, 0x2d, 0x1e, 0xaa, 0x2d, 0xb4, 0xaa, 0x4b, 0xb4, 0x66, 0x99, 0x1e, 0xe1, 0x2d, 0xd2, 0xaa, 0x55, 0xb4, 0x99, 0x99, 0xe1, 0xe1, 0x00, 0xd2, 0xd2, 0x55, 0x87, 0x99, 0xcc, 0xe1, 0xaa, 0x00, 0x66, 0xd2, 0xcc, 0x87, 0x78, 0xcc, 0xe1, 0xaa, 0xd2, 0x66, 0x87, 0xcc, 0x1e, 0x78, 0xff, 0xe1, 0x2d, 0xd2, 0x78, 0x87, 0x33, 0x1e, 0x87, 0xff, 0x1e, 0x2d, 0x2d, 0x78, 0x78, 0x33, 0x33, 0x87, 0x87, 0x1e, 0xcc, 0x2d, 0x78, 0x78, 0xe1, 0x33, 0xd2, 0x87, 0x55, 0xcc, 0x4b, 0x78, 0x66, 0xe1, 0xcc, 0xd2, 0xaa, 0x55, 0xb4, 0x4b, 0x99, 0x66, 0x33, 0xcc, 0x55, 0xaa, 0x99, 0xb4, 0xe1, 0x99, 0xd2, 0x33, 0x55, 0x55, 0x4b, 0x99, 0xb4, 0xe1, 0x99, 0xd2, 0x33, 0x55, 0x55, 0x4b, 0x4b, 0xb4, 0xb4, 0x99, 0x4b, 0x33, 0xb4, 0x55, 0x99, 0x4b, 0x33, 0xb4, 0x87, 0x4b, 0x1e, 0xb4, 0x2d, 0x99, 0xaa, 0x33, 0x66, 0xc7, 0x1e, 0x1e, 0x2d, 0x2d, 0xaa, 0xaa, 0x66, 0x66, 0xcc, 0x1e, 0x78, 0x2d, 0x33, 0xaa, 0x87, 0x66, 0x1e, 0xcc, 0xff, 0x78, 0x2d, 0x33, 0xaa, 0x87, 0x66, 0x1e, 0x1e, 0xff, 0xff, 0x2d, 0xff, 0xaa, 0xff, 0x66, 0x2d, 0x1e, 0xaa, 0xff, 0xb4, 0xff, 0x99, 0xff, 0x33, 0x2d, 0x87, 0xaa, 0xcc, 0xb4, 0x78, 0x99, 0x33, 0x33, 0x87, 0x87, 0xcc, 0xcc, 0xaa, 0x78, 0xb4, 0x33, 0x4b, 0x87, 0xb4, 0xcc, 0x99, 0xaa, 0xe1, 0xb4, 0xd2, 0x4b, 0x87, 0xb4, 0xcc, 0x99, 0x78, 0xe1, 0xe1, 0xd2, 0x00, 0x87, 0x00, 0xcc, 0xd2, 0x78, 0x87, 0xe1, 0x1e, 0x00, 0x2d, 0x00, 0xaa, 0xd2, 0xb4, 0x87, 0x4b, 0x1e, 0xb4, 0x2d, 0x4b, 0xaa, 0xb4, 0xb4, 0x4b, 0x4b, 0x66, 0xb4, 0x1e, 0x4b, 0xff, 0xb4, 0xff, 0x4b, 0x2d, 0x66, 0x78, 0x1e, 0x33, 0xff, 0x55, 0xff, 0x4b, 0x2d, 0xb4, 0x78, 0x99, 0x33, 0xe1, 0x55, 0x00, 0x4b, 0xd2, 0xb4, 0x55, 0x99, 0x99, 0xe1, 0x33, 0x00, 0x87, 0xd2, 0x1e, 0x55, 0xff, 0x99, 0xff, 0x33, 0xff, 0x87, 0xff, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x87, 0xe1, 0xaa, 0xcc,
const uint8_t prng_payload_cr56[] = {
0xff, 0xff, 0x2d, 0xff, 0x78, 0xff, 0x30, 0x2e, 0x0, 0x2e, 0x12, 0x3c, 0x14, 0x28, 0xa, 0x30, 0x36, 0x0, 0x1e, 0x12, 0x2e, 0x14, 0x3c, 0xa, 0x28, 0x36, 0x30, 0x1e, 0x12, 0x2e, 0x6, 0x3c, 0xc, 0x28, 0x3a, 0x30, 0x24, 0x12, 0x18, 0x6, 0x30, 0xc, 0x0, 0x3a, 0x0, 0x24, 0x0, 0x18, 0x0, 0x30, 0x12, 0x0, 0x14, 0x0, 0x18, 0x0, 0x30, 0x0, 0x12, 0x12, 0x6, 0x14, 0x1e, 0x18, 0x3c, 0x30, 0x28, 0x12, 0x30, 0x6, 0x12, 0x1e, 0x14, 0x3c, 0x18, 0x28, 0x22, 0x30, 0x14, 0x12, 0xa, 0x14, 0x36, 0x18, 0x1e, 0x22, 0x3c, 0x14, 0x28, 0xa, 0x30, 0x36, 0x0, 0x1e, 0x0, 0x3c, 0x0, 0x28, 0x12, 0x30, 0x6, 0x0, 0xc, 0x0, 0x28, 0x0, 0x22, 0x12, 0x14, 0x6, 0x18, 0xc, 0x22, 0x28, 0x14, 0x22, 0x18, 0x14, 0x22, 0x18, 0x6, 0x22, 0xc, 0x14, 0x3a, 0x18, 0x36, 0x22, 0x1e, 0x6, 0x3c, 0xc, 0x28, 0x3a, 0x22, 0x36, 0x14, 0x1e, 0x18, 0x3c, 0x30, 0x28, 0x0, 0x22, 0x0, 0x14, 0x12, 0x18, 0x14, 0x30, 0xa, 0x0, 0x24, 0x0, 0xa, 0x12, 0x36, 0x14, 0xc, 0xa, 0x3a, 0x24, 0x36, 0xa, 0xc, 0x36, 0x3a, 0xc, 0x24, 0x3a, 0xa, 0x36, 0x36, 0xc, 0xc, 0x3a, 0x28, 0x24, 0x22, 0xa, 0x14, 0x36, 0xa, 0xc, 0x36, 0x28, 0xc, 0x22, 0x28, 0x14, 0x30, 0xa, 0x0, 0x36, 0x12, 0xc, 0x6, 0x28, 0x1e, 0x30, 0x2e, 0x0, 0x2e, 0x12, 0x3c, 0x6, 0x3a, 0x1e, 0x36, 0x2e, 0xc, 0x2e, 0x3a, 0x3c, 0x36, 0x3a, 0x1e, 0x36, 0x2e, 0xc, 0x3c, 0x3a, 0x3a, 0x36, 0x24, 0x1e, 0xa, 0x2e, 0x36, 0x3c, 0x1e, 0x3a, 0x3c, 0x24, 0x3a, 0xa, 0x24, 0x36, 0x18, 0x1e, 0x30, 0x3c, 0x12, 0x3a, 0x14, 0x24, 0x18, 0x18, 0x30, 0x30, 0x0, 0x12, 0x12, 0x14, 0x6, 0x18, 0xc, 0x30, 0x3a, 0x0, 0x36, 0x12, 0xc, 0x6, 0x28, 0xc, 0x30, 0x3a, 0x12, 0x36, 0x6, 0xc, 0x1e, 0x28, 0x2e, 0x30, 0x3c, 0x12, 0x28, 0x6, 0x22, 0x1e, 0x6, 0x2e, 0x1e, 0x3c, 0x3c, 0x28, 0x28, 0x22, 0x22, 0x6, 0x6, 0x1e, 0xc, 0x3c, 0x28, 0x28, 0x30, 0x22, 0x12, 0x6, 0x14, 0xc, 0xa, 0x28, 0x36, 0x30, 0xc, 0x12, 0x3a, 0x14, 0x24, 0xa, 0x18, 0x36, 0x22, 0xc, 0x14, 0x3a, 0x18, 0x24, 0x30, 0x18, 0x12, 0x22, 0x14, 0x14, 0xa, 0x18, 0x24, 0x30, 0x18, 0x12, 0x22, 0x14, 0x14, 0xa, 0xa, 0x24, 0x24, 0x18, 0xa, 0x22, 0x24, 0x14, 0x18, 0xa, 0x22, 0x24, 0x6, 0xa, 0x1e, 0x24, 0x3c, 0x18, 0x3a, 0x22, 0x36, 0x6, 0x1e, 0x1e, 0x3c, 0x3c, 0x3a, 0x3a, 0x36, 0x36, 0xc, 0x1e, 0x28, 0x3c, 0x22, 0x3a, 0x6, 0x36, 0x1e, 0xc, 0x2e, 0x28, 0x3c, 0x22, 0x3a, 0x6, 0x36, 0x1e, 0x1e, 0x2e, 0x2e, 0x3c, 0x2e, 0x3a, 0x2e, 0x36, 0x3c, 0x1e, 0x3a, 0x2e, 0x24, 0x2e, 0x18, 0x2e, 0x22, 0x3c, 0x6, 0x3a, 0xc, 0x24, 0x28, 0x18, 0x22, 0x22, 0x6, 0x6, 0xc, 0xc, 0x3a, 0x28, 0x24, 0x22, 0xa, 0x6, 0x24, 0xc, 0x18, 0x3a, 0x30, 0x24, 0x12, 0xa, 0x6, 0x24, 0xc, 0x18, 0x28, 0x30, 0x30, 0x12, 0x0, 0x6, 0x0, 0xc, 0x12, 0x28, 0x6, 0x30, 0x1e, 0x0, 0x3c, 0x0, 0x3a, 0x12, 0x24, 0x6, 0xa, 0x1e, 0x24, 0x3c, 0xa, 0x3a, 0x24, 0x24, 0xa, 0xa, 0x36, 0x24, 0x1e, 0xa, 0x2e, 0x24, 0x2e, 0xa, 0x3c, 0x36, 0x28, 0x1e, 0x22, 0x2e, 0x14, 0x2e, 0xa, 0x3c, 0x24, 0x28, 0x18, 0x22, 0x30, 0x14, 0x0, 0xa, 0x12, 0x24, 0x14, 0x18, 0x18, 0x30, 0x22, 0x0, 0x6, 0x12, 0x1e, 0x14, 0x2e, 0x18, 0x2e, 0x22, 0x2e, 0x6, 0x2e, 0x1e, 0x0, 0x0, 0x0, 0x0, 0x24, 0x6
};
const uint8_t prng_payload_cr78[] = {
0xff, 0xff, 0x2d, 0xff, 0x78, 0xff, 0xe1, 0xff,
0x00, 0xff, 0xd2, 0x2d, 0x55, 0x78, 0x4b, 0xe1,
0x66, 0x00, 0x1e, 0xd2, 0xff, 0x55, 0x2d, 0x4b, 0x78,
0x66, 0xe1, 0x1e, 0xd2, 0xff, 0x87, 0x2d, 0xcc, 0x78, 0xaa, 0xe1, 0xb4, 0xd2, 0x99, 0x87, 0xe1, 0xcc, 0x00, 0xaa, 0x00, 0xb4, 0x00, 0x99, 0x00, 0xe1, 0xd2, 0x00, 0x55, 0x00, 0x99, 0x00, 0xe1, 0x00, 0xd2, 0xd2, 0x87, 0x55, 0x1e, 0x99, 0x2d, 0xe1, 0x78, 0xd2, 0xe1, 0x87, 0xd2, 0x1e, 0x55, 0x2d, 0x99, 0x78, 0x33, 0xe1, 0x55, 0xd2, 0x4b, 0x55, 0x66, 0x99, 0x1e, 0x33, 0x2d, 0x55, 0x78, 0x4b, 0xe1, 0x66, 0x00, 0x1e, 0x00, 0x2d, 0x00, 0x78, 0xd2, 0xe1, 0x87, 0x00, 0xcc, 0x00, 0x78, 0x00, 0x33, 0xd2, 0x55, 0x87, 0x99, 0xcc, 0x33, 0x78, 0x55, 0x33, 0x99, 0x55, 0x33, 0x99, 0x87, 0x33, 0xcc, 0x55, 0xaa, 0x99, 0x66, 0x33, 0x1e, 0x87, 0x2d, 0xcc, 0x78, 0xaa, 0x33, 0x66, 0x55, 0x1e, 0x99, 0x2d, 0xe1, 0x78, 0x00, 0x33, 0x00, 0x55, 0xd2, 0x99, 0x55, 0xe1, 0x4b, 0x00, 0xb4, 0x00, 0x4b, 0xd2, 0x66, 0x55, 0xcc, 0x4b, 0xaa, 0xb4, 0x66, 0x4b, 0xcc, 0x66, 0xaa, 0xcc, 0xb4, 0xaa, 0x4b, 0x66, 0x66, 0xcc, 0xcc, 0xaa, 0x78, 0xb4, 0x33, 0x4b, 0x55, 0x66, 0x4b, 0xcc, 0x66, 0x78, 0xcc, 0x33, 0x78, 0x55, 0xe1, 0x4b, 0x00, 0x66, 0xd2, 0xcc, 0x87, 0x78, 0x1e, 0xe1, 0xff, 0x00, 0xff, 0xd2, 0x2d, 0x87, 0xaa, 0x1e, 0x66, 0xff, 0xcc, 0xff, 0xaa, 0x2d, 0x66, 0xaa, 0x1e, 0x66, 0xff, 0xcc, 0x2d, 0xaa, 0xaa, 0x66, 0xb4, 0x1e, 0x4b, 0xff, 0x66, 0x2d, 0x1e, 0xaa, 0x2d, 0xb4, 0xaa, 0x4b, 0xb4, 0x66, 0x99, 0x1e, 0xe1, 0x2d, 0xd2, 0xaa, 0x55, 0xb4, 0x99, 0x99, 0xe1, 0xe1, 0x00, 0xd2, 0xd2, 0x55, 0x87, 0x99, 0xcc, 0xe1, 0xaa, 0x00, 0x66, 0xd2, 0xcc, 0x87, 0x78, 0xcc, 0xe1, 0xaa, 0xd2, 0x66, 0x87, 0xcc, 0x1e, 0x78, 0xff, 0xe1, 0x2d, 0xd2, 0x78, 0x87, 0x33, 0x1e, 0x87, 0xff, 0x1e, 0x2d, 0x2d, 0x78, 0x78, 0x33, 0x33, 0x87, 0x87, 0x1e, 0xcc, 0x2d, 0x78, 0x78, 0xe1, 0x33, 0xd2, 0x87, 0x55, 0xcc, 0x4b, 0x78, 0x66, 0xe1, 0xcc, 0xd2, 0xaa, 0x55, 0xb4, 0x4b, 0x99, 0x66, 0x33, 0xcc, 0x55, 0xaa, 0x99, 0xb4, 0xe1, 0x99, 0xd2, 0x33, 0x55, 0x55, 0x4b, 0x99, 0xb4, 0xe1, 0x99, 0xd2, 0x33, 0x55, 0x55, 0x4b, 0x4b, 0xb4, 0xb4, 0x99, 0x4b, 0x33, 0xb4, 0x55, 0x99, 0x4b, 0x33, 0xb4, 0x87, 0x4b, 0x1e, 0xb4, 0x2d, 0x99, 0xaa, 0x33, 0x66, 0xc7, 0x1e, 0x1e, 0x2d, 0x2d, 0xaa, 0xaa, 0x66, 0x66, 0xcc, 0x1e, 0x78, 0x2d, 0x33, 0xaa, 0x87, 0x66, 0x1e, 0xcc, 0xff, 0x78, 0x2d, 0x33, 0xaa, 0x87, 0x66, 0x1e, 0x1e, 0xff, 0xff, 0x2d, 0xff, 0xaa, 0xff, 0x66, 0x2d, 0x1e, 0xaa, 0xff, 0xb4, 0xff, 0x99, 0xff, 0x33, 0x2d, 0x87, 0xaa, 0xcc, 0xb4, 0x78, 0x99, 0x33, 0x33, 0x87, 0x87, 0xcc, 0xcc, 0xaa, 0x78, 0xb4, 0x33, 0x4b, 0x87, 0xb4, 0xcc, 0x99, 0xaa, 0xe1, 0xb4, 0xd2, 0x4b, 0x87, 0xb4, 0xcc, 0x99, 0x78, 0xe1, 0xe1, 0xd2, 0x00, 0x87, 0x00, 0xcc, 0xd2, 0x78, 0x87, 0xe1, 0x1e, 0x00, 0x2d, 0x00, 0xaa, 0xd2, 0xb4, 0x87, 0x4b, 0x1e, 0xb4, 0x2d, 0x4b, 0xaa, 0xb4, 0xb4, 0x4b, 0x4b, 0x66, 0xb4, 0x1e, 0x4b, 0xff, 0xb4, 0xff, 0x4b, 0x2d, 0x66, 0x78, 0x1e, 0x33, 0xff, 0x55, 0xff, 0x4b, 0x2d, 0xb4, 0x78, 0x99, 0x33, 0xe1, 0x55, 0x00, 0x4b, 0xd2, 0xb4, 0x55, 0x99, 0x99, 0xe1, 0x33, 0x00, 0x87, 0xd2, 0x1e, 0x55, 0xff, 0x99, 0xff, 0x33, 0xff, 0x87, 0xff, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x87, 0xe1, 0xaa, 0xcc,
};
const uint8_t prng_payload_cr5_implicit_fullrate[] = {
0xff, 0xff, 0xff, 0xff, 0x2d, 0xff, 0x36, 0x2e, 0x18, 0x2e, 0x18, 0x3c, 0x18, 0x28, 0x14, 0x30, 0x6, 0x0, 0x3c, 0x12, 0xa, 0x14, 0xa, 0xa, 0x0, 0x36, 0xa, 0x1e, 0x2e, 0x2e, 0x28, 0x3c, 0xc, 0x3a, 0x28, 0x22, 0x30, 0x0, 0x1e, 0x14, 0x28, 0x1e, 0xa, 0x28, 0xc, 0x36, 0x1a, 0xa, 0x30, 0x22, 0x30, 0x12, 0x30, 0x12, 0x2e, 0x12, 0x18, 0x12, 0x28, 0x0, 0x3a, 0x6, 0x30, 0xa, 0x3c, 0x24, 0x3a, 0x6, 0x24, 0x12, 0x14, 0xa, 0xc, 0x28, 0x12, 0x3c, 0x2e, 0x24, 0xa, 0x6, 0x3a, 0x0, 0x14, 0xc, 0x3a, 0x36, 0xa, 0x0, 0x0, 0x1e, 0xa, 0x22, 0x3c, 0xa, 0x2e, 0x28, 0x0, 0x2e, 0x0, 0x36, 0x12, 0x6, 0xa, 0x6, 0x30, 0x6, 0x28, 0x14, 0x18, 0x0, 0x6, 0xa, 0x12, 0x2e, 0x36, 0x24, 0x3c, 0x12, 0x14, 0x1e, 0x2e, 0x24, 0x36, 0x12, 0x6, 0x1e, 0x18, 0x24, 0x1e, 0x1e, 0x2e, 0x14, 0x3c, 0x22, 0x24, 0x2e, 0xc, 0x6, 0x12, 0x24, 0x3c, 0x30, 0x1e, 0x3a, 0x30, 0xc, 0x30, 0x0, 0x30, 0x28, 0x3c, 0x18, 0xc, 0x18, 0x30, 0xa, 0xa, 0xc, 0x22, 0x12, 0x3a, 0x2e, 0x24, 0x0, 0x18, 0x3c, 0x3c, 0x6, 0x3c, 0x30, 0x0, 0x3c, 0x3a, 0x6, 0x12, 0x30, 0x18, 0x2e, 0x0, 0x0, 0x30, 0x3c, 0x3c, 0x6, 0x1e, 0x22, 0x36, 0x28, 0x14, 0x1e, 0x1e, 0x0, 0x0, 0x3a, 0x0, 0x0, 0x12, 0x24, 0x18, 0x3c, 0x36, 0xc, 0x24, 0x1e, 0x30, 0xa, 0x24, 0x12, 0x6, 0x22, 0x2e, 0x22, 0x1e, 0x30, 0x0, 0x36, 0x36, 0x3a, 0x14, 0x0, 0x0, 0x36, 0x14, 0x3a, 0x24, 0x0, 0x18, 0x30, 0x22, 0x22, 0x18, 0x24, 0x24, 0x3a, 0x30, 0x14, 0x28, 0x28, 0x6, 0x0, 0x0, 0x22, 0x30, 0x24, 0x30, 0x3a, 0x2e, 0x6, 0x18, 0x2e, 0x3a, 0xc, 0x2e, 0xa, 0x28, 0x6, 0xc, 0x0, 0x28, 0x30, 0x22, 0x22, 0xa, 0x36, 0x30, 0x3c, 0x3a, 0xa, 0x1e, 0x6, 0x18, 0x3c, 0x2e, 0x18, 0xc, 0x0, 0x18, 0x22, 0x1e, 0x36, 0xa, 0x2e, 0x3c, 0x1e, 0x22, 0xc, 0x12, 0x18, 0x28, 0x0, 0x30, 0x24, 0x12, 0x3c, 0xa, 0x1e, 0x30, 0xa, 0x3a, 0x0, 0x1e, 0x24, 0xa, 0x2e, 0x3a, 0xa, 0x14, 0x12, 0x28, 0x30, 0xc, 0x36, 0xc, 0x28, 0x22, 0x14, 0x1e, 0x2e, 0x3a, 0x18, 0x18, 0x0, 0x22, 0x3c, 0x6, 0x6, 0x12, 0x30, 0x12, 0x3c, 0x2e, 0x14, 0x14, 0x36, 0x3c, 0x30, 0x24, 0x2e, 0x28, 0x0, 0x0, 0x3c, 0x3c, 0x6, 0xc, 0x30, 0x22, 0x2e, 0x1e, 0x0, 0x28, 0x2e, 0x1e, 0x12, 0x2e, 0x2e, 0x2e, 0x14, 0x30, 0x30, 0x6, 0x28, 0x36, 0xa, 0x36, 0xc, 0x28, 0x0, 0x3c, 0x28, 0xa, 0xa, 0x6, 0xc, 0x30, 0x0, 0x36, 0x3a, 0x14, 0x1e, 0x0, 0x14, 0x14, 0x30, 0x36, 0x36, 0xc, 0x6, 0x3a, 0x14, 0x28, 0x12, 0x36, 0x1e, 0x36, 0x36, 0x36, 0x6, 0x3a, 0x6, 0x28, 0x6, 0x0, 0x14, 0x22, 0x12, 0x3a, 0xc, 0x0, 0x30, 0x18, 0xa, 0x3a, 0x2e, 0x22, 0x24, 0x3a, 0x12, 0x36, 0x18, 0x1e, 0x3c, 0x22, 0x36, 0x0, 0x0, 0x3a, 0x1e, 0x1e, 0x30, 0x18, 0x1e, 0x3c, 0x22, 0xa, 0xa, 0x14, 0x28, 0x36, 0x3c, 0x28, 0x36, 0x28, 0x12, 0x3a, 0xa, 0x30, 0x3a, 0x3c, 0x3c, 0x28, 0x2e, 0x30, 0x3a, 0xc, 0x22, 0x3c, 0x0, 0x0, 0x6, 0x28, 0x18, 0x14, 0x36, 0x6, 0x18, 0x3c, 0x36, 0xa, 0x18, 0x18, 0x36, 0x14, 0xa, 0x12, 0x22, 0x1e, 0x12, 0x3a, 0x12, 0xa, 0x12, 0x36, 0x6, 0xc, 0xc, 0x36, 0x3a, 0x18, 0x24, 0x18, 0xa, 0x18, 0x36, 0x6, 0x1e, 0x12, 0x2e, 0x24, 0x3c, 0x3a, 0x3a, 0x18, 0x36, 0x6, 0xc, 0x14, 0x28, 0x12, 0x30, 0x2e, 0x0, 0xa, 0xc, 0xc, 0x1e, 0x3c, 0x1e
};
const uint8_t prng_payload_cr6_implicit_fullrate[] = {
0xff, 0xff, 0xff, 0xff, 0x2d, 0xff, 0x26, 0x3f, 0x19, 0x3f, 0x19, 0x2d, 0x19, 0x38, 0x15, 0x21, 0x7, 0x0, 0x2d, 0x12, 0xb, 0x15, 0xb, 0xb, 0x0, 0x26, 0xb, 0x1e, 0x3f, 0x3f, 0x38, 0x2d, 0xc, 0x2a, 0x38, 0x33, 0x21, 0x0, 0x1e, 0x15, 0x38, 0x1e, 0xb, 0x38, 0xc, 0x26, 0x1a, 0xb, 0x21, 0x33, 0x21, 0x12, 0x21, 0x12, 0x3f, 0x12, 0x19, 0x12, 0x38, 0x0, 0x2a, 0x7, 0x21, 0xb, 0x2d, 0x34, 0x2a, 0x7, 0x34, 0x12, 0x15, 0xb, 0xc, 0x38, 0x12, 0x2d, 0x3f, 0x34, 0xb, 0x7, 0x2a, 0x0, 0x15, 0xc, 0x2a, 0x26, 0xb, 0x0, 0x0, 0x1e, 0xb, 0x33, 0x2d, 0xb, 0x3f, 0x38, 0x0, 0x3f, 0x0, 0x26, 0x12, 0x7, 0xb, 0x7, 0x21, 0x7, 0x38, 0x15, 0x19, 0x0, 0x7, 0xb, 0x12, 0x3f, 0x26, 0x34, 0x2d, 0x12, 0x15, 0x1e, 0x3f, 0x34, 0x26, 0x12, 0x7, 0x1e, 0x19, 0x34, 0x1e, 0x1e, 0x3f, 0x15, 0x2d, 0x33, 0x34, 0x3f, 0xc, 0x7, 0x12, 0x34, 0x2d, 0x21, 0x1e, 0x2a, 0x21, 0xc, 0x21, 0x0, 0x21, 0x38, 0x2d, 0x19, 0xc, 0x19, 0x21, 0xb, 0xb, 0xc, 0x33, 0x12, 0x2a, 0x3f, 0x34, 0x0, 0x19, 0x2d, 0x2d, 0x7, 0x2d, 0x21, 0x0, 0x2d, 0x2a, 0x7, 0x12, 0x21, 0x19, 0x3f, 0x0, 0x0, 0x21, 0x2d, 0x2d, 0x7, 0x1e, 0x33, 0x26, 0x38, 0x15, 0x1e, 0x1e, 0x0, 0x0, 0x2a, 0x0, 0x0, 0x12, 0x34, 0x19, 0x2d, 0x26, 0xc, 0x34, 0x1e, 0x21, 0xb, 0x34, 0x12, 0x7, 0x33, 0x3f, 0x33, 0x1e, 0x21, 0x0, 0x26, 0x26, 0x2a, 0x14, 0x0, 0x0, 0x26, 0x15, 0x2a, 0x34, 0x0, 0x19, 0x21, 0x33, 0x33, 0x19, 0x34, 0x34, 0x2a, 0x21, 0x15, 0x38, 0x38, 0x7, 0x0, 0x0, 0x33, 0x21, 0x34, 0x21, 0x2a, 0x3f, 0x7, 0x19, 0x3f, 0x2a, 0xc, 0x3f, 0xb, 0x38, 0x7, 0xc, 0x0, 0x38, 0x21, 0x33, 0x33, 0xb, 0x26, 0x21, 0x2d, 0x2a, 0xb, 0x1e, 0x7, 0x19, 0x2d, 0x3f, 0x19, 0xc, 0x0, 0x19, 0x33, 0x1e, 0x26, 0xb, 0x3f, 0x2d, 0x1e, 0x33, 0xc, 0x12, 0x19, 0x38, 0x0, 0x21, 0x34, 0x12, 0x2d, 0xb, 0x1e, 0x21, 0xb, 0x2a, 0x0, 0x1e, 0x34, 0xb, 0x3f, 0x2a, 0xb, 0x15, 0x12, 0x38, 0x21, 0xc, 0x26, 0xc, 0x38, 0x33, 0x15, 0x1e, 0x3f, 0x2a, 0x19, 0x19, 0x0, 0x33, 0x2d, 0x7, 0x7, 0x12, 0x21, 0x12, 0x2d, 0x3f, 0x15, 0x15, 0x26, 0x2d, 0x21, 0x34, 0x3f, 0x38, 0x0, 0x0, 0x2d, 0x2d, 0x7, 0xc, 0x21, 0x33, 0x3f, 0x1e, 0x0, 0x38, 0x3f, 0x1e, 0x12, 0x3f, 0x3f, 0x3f, 0x15, 0x21, 0x21, 0x7, 0x28, 0x26, 0xb, 0x26, 0xc, 0x38, 0x0, 0x2d, 0x38, 0xb, 0xb, 0x7, 0xc, 0x21, 0x0, 0x26, 0x2a, 0x15, 0x1e, 0x0, 0x15, 0x15, 0x21, 0x26, 0x26, 0xc, 0x7, 0x2a, 0x15, 0x38, 0x12, 0x26, 0x1e, 0x26, 0x26, 0x26, 0x7, 0x2a, 0x7, 0x38, 0x7, 0x0, 0x15, 0x33, 0x12, 0x2a, 0xc, 0x0, 0x21, 0x19, 0xb, 0x2a, 0x3f, 0x33, 0x34, 0x2a, 0x12, 0x26, 0x19, 0x1e, 0x2d, 0x33, 0x26, 0x0, 0x0, 0x2a, 0x1e, 0x1e, 0x21, 0x19, 0x1e, 0x2d, 0x33, 0xb, 0xb, 0x15, 0x38, 0x26, 0x2d, 0x38, 0x26, 0x38, 0x12, 0x2a, 0xb, 0x21, 0x2a, 0x2d, 0x2d, 0x38, 0x3f, 0x21, 0x2a, 0xc, 0x33, 0x2d, 0x0, 0x0, 0x7, 0x38, 0x19, 0x15, 0x26, 0x7, 0x19, 0x2d, 0x26, 0xb, 0x19, 0x19, 0x26, 0x15, 0xb, 0x12, 0x33, 0x1e, 0x12, 0x2a, 0x12, 0xb, 0x12, 0x26, 0x7, 0xc, 0xc, 0x26, 0x2a, 0x19, 0x34, 0x19, 0xb, 0x19, 0x26, 0x7, 0x1e, 0x12, 0x3f, 0x34, 0x2d, 0x2a, 0x2a, 0x19, 0x26, 0x7, 0xc, 0x15, 0x38, 0x12, 0x21, 0x3f, 0x0, 0xb, 0xc, 0xc, 0x1e, 0x2d, 0x1e
};
const uint8_t prng_payload_cr7_implicit_fullrate[] = {
0xff, 0xff, 0xff, 0xff, 0x2d, 0xff, 0x66, 0x7f, 0x19, 0x7f, 0x19, 0x2d, 0x19, 0x78, 0x55, 0x61, 0x7, 0x0, 0x2d, 0x52, 0x4b, 0x55, 0x4b, 0x4b, 0x0, 0x66, 0x4b, 0x1e, 0x7f, 0x7f, 0x78, 0x2d, 0x4c, 0x2a, 0x78, 0x33, 0x61, 0x0, 0x1e, 0x55, 0x78, 0x1e, 0x4b, 0x78, 0x4c, 0x66, 0x1a, 0x4b, 0x61, 0x33, 0x61, 0x52, 0x61, 0x52, 0x7f, 0x52, 0x19, 0x52, 0x78, 0x0, 0x2a, 0x7, 0x61, 0x4b, 0x2d, 0x34, 0x2a, 0x7, 0x34, 0x52, 0x55, 0x4b, 0x4c, 0x78, 0x52, 0x2d, 0x7f, 0x34, 0x4b, 0x7, 0x2a, 0x0, 0x55, 0x4c, 0x2a, 0x66, 0x4b, 0x0, 0x0, 0x1e, 0x4b, 0x33, 0x2d, 0x4b, 0x7f, 0x78, 0x0, 0x7f, 0x0, 0x66, 0x52, 0x7, 0x4b, 0x7, 0x61, 0x7, 0x78, 0x55, 0x19, 0x0, 0x7, 0x4b, 0x52, 0x7f, 0x66, 0x34, 0x2d, 0x52, 0x55, 0x1e, 0x7f, 0x34, 0x66, 0x52, 0x7, 0x1e, 0x19, 0x34, 0x1e, 0x1e, 0x7f, 0x55, 0x2d, 0x33, 0x34, 0x7f, 0x4c, 0x7, 0x52, 0x34, 0x2d, 0x61, 0x1e, 0x2a, 0x61, 0x4c, 0x61, 0x0, 0x61, 0x78, 0x2d, 0x19, 0x4c, 0x19, 0x61, 0x4b, 0x4b, 0x4c, 0x33, 0x52, 0x2a, 0x7f, 0x34, 0x0, 0x19, 0x2d, 0x2d, 0x7, 0x2d, 0x61, 0x0, 0x2d, 0x2a, 0x7, 0x52, 0x61, 0x19, 0x7f, 0x0, 0x0, 0x61, 0x2d, 0x2d, 0x7, 0x1e, 0x33, 0x66, 0x78, 0x55, 0x1e, 0x1e, 0x0, 0x0, 0x2a, 0x0, 0x0, 0x52, 0x34, 0x19, 0x2d, 0x66, 0x4c, 0x34, 0x1e, 0x61, 0x4b, 0x34, 0x52, 0x7, 0x33, 0x7f, 0x33, 0x1e, 0x61, 0x0, 0x66, 0x66, 0x2a, 0x54, 0x0, 0x0, 0x66, 0x55, 0x2a, 0x34, 0x0, 0x19, 0x61, 0x33, 0x33, 0x19, 0x34, 0x34, 0x2a, 0x61, 0x55, 0x78, 0x78, 0x7, 0x0, 0x0, 0x33, 0x61, 0x34, 0x61, 0x2a, 0x7f, 0x7, 0x19, 0x7f, 0x2a, 0x4c, 0x7f, 0x4b, 0x78, 0x7, 0x4c, 0x0, 0x78, 0x61, 0x33, 0x33, 0x4b, 0x66, 0x61, 0x2d, 0x2a, 0x4b, 0x1e, 0x7, 0x19, 0x2d, 0x7f, 0x19, 0x4c, 0x0, 0x19, 0x33, 0x1e, 0x66, 0x4b, 0x7f, 0x2d, 0x1e, 0x33, 0x4c, 0x52, 0x19, 0x78, 0x0, 0x61, 0x34, 0x52, 0x2d, 0x4b, 0x1e, 0x61, 0x4b, 0x2a, 0x0, 0x1e, 0x34, 0x4b, 0x7f, 0x2a, 0x4b, 0x55, 0x52, 0x78, 0x61, 0x4c, 0x66, 0x4c, 0x78, 0x33, 0x55, 0x1e, 0x7f, 0x2a, 0x19, 0x19, 0x0, 0x33, 0x2d, 0x7, 0x7, 0x52, 0x61, 0x52, 0x2d, 0x7f, 0x55, 0x55, 0x66, 0x2d, 0x61, 0x34, 0x7f, 0x78, 0x0, 0x0, 0x2d, 0x2d, 0x7, 0x4c, 0x61, 0x33, 0x7f, 0x1e, 0x0, 0x78, 0x7f, 0x1e, 0x52, 0x7f, 0x7f, 0x7f, 0x55, 0x61, 0x61, 0x7, 0x68, 0x66, 0x4b, 0x66, 0x4c, 0x78, 0x0, 0x2d, 0x78, 0x4b, 0x4b, 0x7, 0x4c, 0x61, 0x0, 0x66, 0x2a, 0x55, 0x1e, 0x0, 0x55, 0x55, 0x61, 0x66, 0x66, 0x4c, 0x7, 0x2a, 0x55, 0x78, 0x52, 0x66, 0x1e, 0x66, 0x66, 0x66, 0x7, 0x2a, 0x7, 0x78, 0x7, 0x0, 0x55, 0x33, 0x52, 0x2a, 0x4c, 0x0, 0x61, 0x19, 0x4b, 0x2a, 0x7f, 0x33, 0x34, 0x2a, 0x52, 0x66, 0x19, 0x1e, 0x2d, 0x33, 0x66, 0x0, 0x0, 0x2a, 0x1e, 0x1e, 0x61, 0x19, 0x1e, 0x2d, 0x33, 0x4b, 0x4b, 0x55, 0x78, 0x66, 0x2d, 0x78, 0x66, 0x78, 0x52, 0x2a, 0x4b, 0x61, 0x2a, 0x2d, 0x2d, 0x78, 0x7f, 0x61, 0x2a, 0x4c, 0x33, 0x2d, 0x0, 0x0, 0x7, 0x78, 0x19, 0x55, 0x66, 0x7, 0x19, 0x2d, 0x66, 0x4b, 0x19, 0x19, 0x66, 0x55, 0x4b, 0x52, 0x33, 0x1e, 0x52, 0x2a, 0x52, 0x4b, 0x52, 0x66, 0x7, 0x4c, 0x4c, 0x66, 0x2a, 0x19, 0x34, 0x19, 0x4b, 0x19, 0x66, 0x7, 0x1e, 0x52, 0x7f, 0x34, 0x2d, 0x2a, 0x2a, 0x19, 0x66, 0x7, 0x4c, 0x55, 0x78, 0x52, 0x61, 0x7f, 0x0, 0x4b, 0x4c, 0x4c, 0x1e, 0x2d, 0x1e
};
const uint8_t prng_payload_cr8_implicit_fullrate[] = {
0xff, 0xff, 0xff, 0xff, 0x2d, 0xff, 0x66, 0xff, 0x99, 0xff, 0x99, 0x2d, 0x99, 0x78, 0x55, 0xe1, 0x87, 0x0, 0x2d, 0xd2, 0x4b, 0x55, 0x4b, 0x4b, 0x0, 0x66, 0x4b, 0x1e, 0xff, 0xff, 0x78, 0x2d, 0xcc, 0xaa, 0x78, 0x33, 0xe1, 0x0, 0x1e, 0x55, 0x78, 0x1e, 0x4b, 0x78, 0xcc, 0xe6, 0x1a, 0x4b, 0xe1, 0x33, 0xe1, 0xd2, 0xe1, 0xd2, 0xff, 0xd2, 0x99, 0xd2, 0x78, 0x0, 0xaa, 0x87, 0xe1, 0x4b, 0x2d, 0xb4, 0xaa, 0x87, 0xb4, 0xd2, 0x55, 0x4b, 0xcc, 0x78, 0xd2, 0x2d, 0xff, 0xb4, 0x4b, 0x87, 0xaa, 0x0, 0x55, 0xcc, 0xaa, 0x66, 0x4b, 0x0, 0x0, 0x1e, 0x4b, 0x33, 0x2d, 0x4b, 0xff, 0x78, 0x0, 0xff, 0x0, 0x66, 0xd2, 0x87, 0x4b, 0x87, 0xe1, 0x87, 0x78, 0x55, 0x99, 0x0, 0x87, 0x4b, 0xd2, 0xff, 0x66, 0xb4, 0x2d, 0xd2, 0x55, 0x1e, 0xff, 0xb4, 0x66, 0xd2, 0x87, 0x1e, 0x99, 0xb4, 0x1e, 0x1e, 0xff, 0x55, 0x2d, 0x33, 0xb4, 0xff, 0xcc, 0x87, 0xd2, 0xb4, 0x2d, 0xe1, 0x1e, 0xaa, 0xe1, 0xcc, 0xe1, 0x0, 0xe1, 0x78, 0x2d, 0x99, 0xcc, 0x99, 0xe1, 0x4b, 0x4b, 0xcc, 0x33, 0xd2, 0xaa, 0xff, 0xb4, 0x0, 0x99, 0x2d, 0x2d, 0x87, 0x2d, 0xe1, 0x0, 0x2d, 0xaa, 0x87, 0xd2, 0xe1, 0x99, 0xff, 0x0, 0x0, 0xe1, 0x2d, 0x2d, 0x87, 0x1e, 0x33, 0x66, 0x78, 0x55, 0x1e, 0x1e, 0x0, 0x0, 0xaa, 0x0, 0x0, 0xd2, 0xb4, 0x99, 0x2d, 0x66, 0xcc, 0xb4, 0x1e, 0xe1, 0x4b, 0xb4, 0xd2, 0x87, 0x33, 0xff, 0x33, 0x1e, 0xe1, 0x0, 0x66, 0x66, 0xaa, 0x54, 0x0, 0x0, 0x66, 0x55, 0xaa, 0xb4, 0x0, 0x99, 0xe1, 0x33, 0x33, 0x99, 0xb4, 0xb4, 0xaa, 0xe1, 0x55, 0x78, 0x78, 0x87, 0x0, 0x0, 0x33, 0xe1, 0xb4, 0xe1, 0xaa, 0xff, 0x87, 0x99, 0xff, 0xaa, 0xcc, 0xff, 0x4b, 0x78, 0x87, 0xcc, 0x0, 0x78, 0xe1, 0x33, 0x33, 0x4b, 0x66, 0xe1, 0x2d, 0xaa, 0x4b, 0x1e, 0x87, 0x99, 0x2d, 0xff, 0x99, 0xcc, 0x0, 0x99, 0x33, 0x1e, 0x66, 0x4b, 0xff, 0x2d, 0x1e, 0x33, 0xcc, 0xd2, 0x99, 0x78, 0x0, 0xe1, 0xb4, 0xd2, 0x2d, 0x4b, 0x1e, 0xe1, 0x4b, 0xaa, 0x0, 0x1e, 0xb4, 0x4b, 0xff, 0xaa, 0x4b, 0x55, 0xd2, 0x78, 0xe1, 0xcc, 0x66, 0xcc, 0x78, 0x33, 0x55, 0x1e, 0xff, 0xaa, 0x99, 0x99, 0x0, 0x33, 0x2d, 0x87, 0x87, 0xd2, 0xe1, 0xd2, 0x2d, 0xff, 0x55, 0x55, 0x66, 0x2d, 0xe1, 0xb4, 0xff, 0x78, 0x0, 0x0, 0x2d, 0x2d, 0x87, 0xcc, 0xe1, 0x33, 0xff, 0x1e, 0x0, 0x78, 0xff, 0x1e, 0xd2, 0xff, 0xff, 0xff, 0x55, 0xe1, 0xe1, 0x87, 0x68, 0x66, 0x4b, 0x66, 0xcc, 0x78, 0x0, 0x2d, 0x78, 0x4b, 0x4b, 0x87, 0xcc, 0xe1, 0x0, 0x66, 0xaa, 0x55, 0x1e, 0x0, 0x55, 0x55, 0xe1, 0x66, 0x66, 0xcc, 0x87, 0xaa, 0x55, 0x78, 0xd2, 0x66, 0x1e, 0x66, 0x66, 0x66, 0x87, 0xaa, 0x87, 0x78, 0x87, 0x0, 0x55, 0x33, 0xd2, 0xaa, 0xcc, 0x0, 0xe1, 0x99, 0x4b, 0xaa, 0xff, 0x33, 0xb4, 0xaa, 0xd2, 0x66, 0x99, 0x1e, 0x2d, 0x33, 0x66, 0x0, 0x0, 0xaa, 0x1e, 0x1e, 0xe1, 0x99, 0x1e, 0x2d, 0x33, 0x4b, 0x4b, 0x55, 0x78, 0x66, 0x2d, 0x78, 0x66, 0x78, 0xd2, 0xaa, 0x4b, 0xe1, 0xaa, 0x2d, 0x2d, 0x78, 0xff, 0xe1, 0xaa, 0xcc, 0x33, 0x2d, 0x0, 0x0, 0x87, 0x78, 0x99, 0x55, 0x66, 0x87, 0x99, 0x2d, 0x66, 0x4b, 0x99, 0x99, 0x66, 0x55, 0x4b, 0xd2, 0x33, 0x1e, 0xd2, 0xaa, 0xd2, 0x4b, 0xd2, 0x66, 0x87, 0xcc, 0xcc, 0x66, 0xaa, 0x99, 0xb4, 0x99, 0x4b, 0x99, 0x66, 0x87, 0x1e, 0xd2, 0xff, 0xb4, 0x2d, 0xaa, 0xaa, 0x99, 0x66, 0x87, 0xcc, 0x55, 0x78, 0xd2, 0xe1, 0xff, 0x0, 0x4b, 0xcc, 0xcc, 0x1e, 0x2d, 0x1e
};
}
}
#endif /* TABLES_H */