Skip to main content

lox_ephem/spk/
parser.rs

1// SPDX-FileCopyrightText: 2023 Andrei Zisu <matzipan@gmail.com>
2// SPDX-FileCopyrightText: 2023 Helge Eichhorn <git@helgeeichhorn.de>
3// SPDX-FileCopyrightText: 2024 Angus Morrison <github@angus-morrison.com>
4//
5// SPDX-License-Identifier: MPL-2.0
6
7use std::collections::HashMap;
8use std::iter::zip;
9
10use glam::DVec3;
11use nom::Parser;
12use nom::bytes::complete as nb;
13use nom::error::ErrorKind;
14use nom::number::complete as nn;
15use thiserror::Error;
16
17type BodyId = i32;
18
19const RECORD_SIZE: u32 = 1024;
20
21/// The file record at the beginning of every DAF file.
22#[derive(Debug, PartialEq)]
23#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
24pub struct DafFileRecord {
25    /// Identification word (e.g. `"DAF/SPK"`).
26    pub locidw: String,
27    /// Number of double-precision components per summary.
28    pub nd: u32,
29    /// Number of integer components per summary.
30    pub ni: u32,
31    /// Internal file name.
32    pub locifn: String,
33    /// Record number of the first summary record.
34    pub fward: u32,
35    /// Record number of the last summary record.
36    pub bward: u32,
37    /// First free address in the file.
38    pub free: u32,
39    /// Numeric binary format (`"LTL-IEEE"` or `"BIG-IEEE"`).
40    pub locfmt: String,
41    /// Pre-null bytes.
42    pub prenul: Vec<u8>,
43    /// FTP validation string.
44    pub ftpstr: Vec<u8>,
45    /// Post-null bytes.
46    pub pstnul: Vec<u8>,
47}
48
49/// Double-precision and integer components of a DAF array summary.
50#[derive(Debug, PartialEq)]
51#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
52pub struct DafComponents {
53    /// Double-precision summary components.
54    pub double_precision_components: Vec<f64>,
55    /// Integer summary components.
56    pub integer_components: Vec<i32>,
57}
58
59/// A named DAF array summary with its data address range.
60#[derive(Debug, PartialEq)]
61#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
62pub struct DafSummary {
63    /// Segment name.
64    pub name: String,
65    /// Summary components.
66    pub components: DafComponents,
67    /// First word address of the segment data.
68    pub initial_address: usize,
69    /// Last word address of the segment data.
70    pub final_address: usize,
71}
72
73/// Errors from DAF/SPK parsing and lookup.
74#[derive(Debug, Error)]
75pub enum DafSpkError {
76    /// The segment data type integer is invalid.
77    #[error("the data type integer value does not match the ones in the spec")]
78    InvalidSpkSegmentDataType,
79    /// The number of DAF components is unexpected.
80    #[error("the number of DAF components does not match the SPK specification")]
81    UnexpectedNumberOfComponents,
82    /// Generic parse failure.
83    #[error("unable to parse")]
84    UnableToParse,
85    /// Unsupported SPK segment data type.
86    #[error("unsupported SPK type {data_type}")]
87    UnsupportedSpkArrayType {
88        /// The unsupported data type identifier.
89        data_type: i32,
90    },
91    /// No segment matches the requested body pair.
92    #[error("unable to find the segment for a given center body and target body")]
93    UnableToFindMatchingSegment,
94    /// No record matches the requested epoch.
95    #[error("unable to find record for a given date")]
96    UnableToFindMatchingRecord,
97    /// I/O error reading the file.
98    #[error("I/O error: {0}")]
99    Io(#[from] std::io::Error),
100}
101
102/// Chebyshev coefficients for a single record in an SPK Type 2 segment.
103#[derive(Debug, PartialEq)]
104#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
105pub struct SpkType2Coefficients {
106    /// X-axis coefficient.
107    pub x: f64,
108    /// Y-axis coefficient.
109    pub y: f64,
110    /// Z-axis coefficient.
111    pub z: f64,
112}
113
114impl SpkType2Coefficients {
115    /// Converts to a `DVec3`.
116    pub fn to_dvec3(&self) -> DVec3 {
117        DVec3::new(self.x, self.y, self.z)
118    }
119}
120
121/// Data array for an SPK Type 2 (Chebyshev position) segment.
122#[derive(Debug, PartialEq)]
123#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
124pub struct SpkType2Array {
125    /// Chebyshev coefficient records.
126    pub records: Vec<Vec<SpkType2Coefficients>>,
127    /// Initial epoch (integer days).
128    pub init: u32,
129    /// Interval length (seconds).
130    pub intlen: u32,
131    /// Record size.
132    pub rsize: u32,
133    /// Number of records.
134    pub n: u32,
135}
136
137impl SpkType2Array {
138    /// Returns the degree of the Chebyshev polynomial.
139    pub fn degree_of_polynomial(&self) -> u32 {
140        degree_of_chebyshev_polynomial(self.rsize)
141    }
142}
143
144/// SPK segment data, tagged by type.
145#[derive(Debug, PartialEq)]
146#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
147pub enum SpkArray {
148    /// Type 2: Chebyshev polynomials for position.
149    Type2(SpkType2Array),
150}
151
152/// A single SPK ephemeris segment.
153#[derive(Debug, PartialEq)]
154#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
155pub struct SpkSegment {
156    /// Segment name.
157    pub name: String,
158    /// Initial epoch in seconds since J2000.
159    pub initial_epoch: f64,
160    /// Final epoch in seconds since J2000.
161    pub final_epoch: f64,
162    /// NAIF ID of the target body.
163    pub target_id: BodyId,
164    /// NAIF ID of the center body.
165    pub center_id: BodyId,
166    /// NAIF ID of the reference frame.
167    pub reference_frame_id: BodyId,
168    /// SPK data type identifier.
169    pub data_type: i32,
170    /// First word address.
171    pub initial_address: usize,
172    /// Last word address.
173    pub final_address: usize,
174    /// Segment data array.
175    pub data: SpkArray,
176}
177
178/// A DAF summary record containing multiple summaries.
179#[derive(Debug, PartialEq)]
180#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
181pub struct DafSummaryRecord {
182    /// Record number of the next summary record (0 if last).
183    pub next: u32,
184    /// Number of summaries in this record.
185    pub count: u32,
186    /// The summaries.
187    pub summaries: Vec<DafSummary>,
188}
189
190/// A parsed SPICE SPK (Spacecraft and Planet Kernel) file.
191#[derive(Debug, PartialEq)]
192#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
193pub struct Spk {
194    /// The DAF file record header.
195    pub file_record: DafFileRecord,
196    /// The comment area text.
197    pub comment: String,
198    /// Segments indexed by center body ID and target body ID.
199    pub segments: HashMap<BodyId, HashMap<BodyId, Vec<SpkSegment>>>,
200}
201
202/// Detects the byte order of a DAF file from the `LOCFMT` field.
203pub fn parse_daf_file_record_endianness(
204    input: &[u8],
205) -> nom::IResult<&[u8], nom::number::Endianness> {
206    // 8. LOCFMT ( 8 charactersu8, 8 bytes): The character string that indicates the
207    // numeric binary format of the DAF. The string has value either "LTL-IEEE"
208    // or "BIG-IEEE." [Address 88]
209    let (_, locfmt) =
210        nom::branch::alt((nb::tag("LTL-IEEE"), nb::tag("BIG-IEEE"))).parse(&input[88..])?;
211
212    // We know the loc strings are ASCII in the spec, so parsing them as utf-8
213    // should be safe.
214    let locfmt = String::from_utf8_lossy(locfmt).trim().to_string();
215
216    let endianness = match locfmt.as_str() {
217        "LTL-IEEE" => nom::number::Endianness::Little,
218        "BIG-IEEE" => nom::number::Endianness::Big,
219        _ => unreachable!(),
220    };
221
222    Ok((input, endianness))
223}
224
225/// Parses the file record of a DAF file, returning the endianness and record.
226pub fn parse_daf_file_record(
227    input: &[u8],
228) -> nom::IResult<&[u8], (nom::number::Endianness, DafFileRecord)> {
229    let (_, endianness) = parse_daf_file_record_endianness(input)?;
230
231    // 1. LOCIDW (8 charactersu8, 8 bytes): An identification word (`DAF/xxxx').
232    // The 'xxxx' substring is a string of four characters or less indicating the
233    // type of data stored in the DAF file. This is used by the SPICELIB
234    // subroutines to verify that a particular file is in fact a DAF and not
235    // merely a direct access file with the same record length. When
236    // a DAF is openedu8, an error signals if this keyword is not present. [Address
237    // 0]
238    let (input, locidw) = nb::take(8u32)(input)?;
239
240    // 2. ND ( 1 integeru8, 4 bytes): The number of double precision components in
241    // each array summary. [Address 8]
242    let (input, nd) = nn::u32(endianness)(input)?;
243
244    // 3. NI ( 1 integeru8, 4 bytes): The number of integer components in each array
245    // summary. [Address 12]
246    let (input, ni) = nn::u32(endianness)(input)?;
247
248    // 4. LOCIFN (60 charactersu8, 60 bytes): The internal name or description of
249    // the array file. [Address 16]
250    let (input, locifn) = nb::take(60u32)(input)?;
251
252    // 5. FWARD ( 1 integeru8, 4 bytes): The record number of the initial summary
253    // record in the file. [Address 76]
254    let (input, fward) = nn::u32(endianness)(input)?;
255
256    // 6. BWARD ( 1 integeru8, 4 bytes): The record number of the final summary
257    // record in the file. [Address 80]
258    let (input, bward) = nn::u32(endianness)(input)?;
259
260    // 7. FREE ( 1 integeru8, 4 bytes): The first free address in the file. This is
261    // the address at which the first element of the next array to be added to
262    // the file will be stored. [Address 84]
263    let (input, free) = nn::u32(endianness)(input)?;
264
265    // 8. LOCFMT ( 8 charactersu8, 8 bytes): The character string that indicates the
266    // numeric binary format of the DAF. The string has value either "LTL-IEEE"
267    // or "BIG-IEEE." [Address 88]
268    let (input, locfmt) = nb::take(8u32)(input)?;
269
270    // 9. PRENUL ( 603 charactersu8, 603 bytes): A block of nulls to pad between the
271    // last character of LOCFMT and the first character of FTPSTR to keep FTPSTR
272    // at character 700 (address 699) in a 1024 byte record. [Address 96]
273    let (input, prenul) = nb::take(603u32)(input)?;
274
275    // 10. FTPSTR ( 28 charactersu8, 28 bytes): The FTP validation string.
276    // This string is assembled using components returned from the SPICELIB private
277    // routine ZZFTPSTR. [Address 699]
278    let (input, ftpstr) = nb::take(28u32)(input)?;
279
280    // 11. PSTNUL ( 297 charactersu8, 297 bytes): A block of nulls to pad from the
281    // last character of FTPSTR to the end of the file record. Note: this value
282    // enforces the length of the file record as 1024 bytes. [Address 727]
283    let (input, pstnul) = nb::take(297u32)(input)?;
284
285    // We know the loc strings are ASCII in the spec, so parsing them as utf-8
286    // should be safe.
287    Ok((
288        input,
289        (
290            endianness,
291            DafFileRecord {
292                locidw: String::from_utf8_lossy(locidw).trim().to_string(),
293                nd,
294                ni,
295                locifn: String::from_utf8_lossy(locifn).trim().to_string(),
296                fward,
297                bward,
298                free,
299                locfmt: String::from_utf8_lossy(locfmt).trim().to_string(),
300                prenul: prenul.to_owned(),
301                ftpstr: ftpstr.to_owned(),
302                pstnul: pstnul.to_owned(),
303            },
304        ),
305    ))
306}
307
308/// Parses the comment area of a DAF file.
309pub fn parse_daf_comment_area(
310    input: &[u8],
311    comment_areas_count: u32,
312) -> nom::IResult<&[u8], String> {
313    let record_size = 1000;
314
315    let mut comment_area = String::with_capacity((comment_areas_count * record_size) as usize);
316
317    let mut input_cursor = input;
318    for _ in 0..comment_areas_count {
319        let comment_areas;
320        (input_cursor, comment_areas) = nb::take(RECORD_SIZE)(input_cursor)?;
321
322        let (_, comment_record_content) = nb::take(record_size)(comment_areas)?;
323
324        let comment_record_content = match nb::take_until("\x04")(comment_record_content) {
325            Ok((_, content_to_end_of_transmission_char)) => content_to_end_of_transmission_char,
326            Err(error) => match error {
327                // This is one ugly error type. What we're saying here is, if we can't
328                // find the end of transmission character, just return the whole thing.
329                nom::Err::Error(nom::error::Error {
330                    input: _,
331                    code: ErrorKind::TakeUntil,
332                }) => comment_record_content,
333                _ => Err(error)?,
334            },
335        };
336
337        let comment_record_content =
338            String::from_utf8_lossy(comment_record_content).replace('\0', "\n");
339
340        comment_area.push_str(&comment_record_content)
341    }
342
343    let comment_area = comment_area.trim().to_string();
344
345    Ok((input_cursor, comment_area))
346}
347
348/// Parses a single DAF summary/name record pair.
349pub fn parse_daf_summary_and_name_record_pair(
350    input: &[u8],
351    endianness: nom::number::Endianness,
352    nd: u32,
353    ni: u32,
354) -> nom::IResult<&[u8], DafSummaryRecord> {
355    let summary_record_input = input;
356    let mut name_record_input = &input[RECORD_SIZE as usize..];
357
358    let nc = 8 * (nd + ni.div_ceil(2));
359
360    // 1. The record number of the next summary record in the file. (Zero if this is
361    // the final summary record.)
362    let (summary_record_input, next) = nn::f64(endianness)(summary_record_input)?;
363    let next = next as u32;
364
365    // 2. The record number of the previous summary record in the file. (Zero if
366    // this is the initial summary record.)
367    let (summary_record_input, _) = nn::f64(endianness)(summary_record_input)?;
368
369    // 3. The number of summaries stored in this record.
370    let (mut summary_record_input, nsum) = nn::f64(endianness)(summary_record_input)?;
371    let nsum = nsum as u32;
372
373    let mut summaries = Vec::with_capacity(nsum as usize);
374
375    for _ in 0..nsum {
376        let double_precision_components;
377        (summary_record_input, double_precision_components) =
378            nom::multi::many_m_n(nd as usize, nd as usize, nn::f64(endianness))
379                .parse(summary_record_input)?;
380
381        // The initial and final addresses of an array are always the values of the
382        // final two integer components of the summary for the array.
383        assert!(ni >= 2, "A correct DAF file has NI >= 2");
384        let component_count_without_addresses = ni - 2;
385
386        let integer_components;
387        (summary_record_input, integer_components) = nom::multi::many_m_n(
388            component_count_without_addresses as usize,
389            component_count_without_addresses as usize,
390            nn::i32(endianness),
391        )
392        .parse(summary_record_input)?;
393
394        let initial_address;
395        (summary_record_input, initial_address) = nn::u32(endianness)(summary_record_input)?;
396
397        let final_address;
398        (summary_record_input, final_address) = nn::u32(endianness)(summary_record_input)?;
399
400        let name;
401        (name_record_input, name) = nb::take(nc)(name_record_input)?;
402
403        summaries.push(DafSummary {
404            name: String::from_utf8_lossy(name).trim().to_string(),
405            components: DafComponents {
406                double_precision_components,
407                integer_components,
408            },
409            initial_address: initial_address as usize,
410            final_address: final_address as usize,
411        });
412    }
413
414    Ok((
415        &[],
416        DafSummaryRecord {
417            next,
418            count: nsum,
419            summaries,
420        },
421    ))
422}
423
424/// Parses all summary/name record pairs from a DAF file.
425pub fn parse_all_summary_and_name_record_pairs(
426    input: &[u8],
427    endianness: nom::number::Endianness,
428    nd: u32,
429    ni: u32,
430    fward: u32,
431) -> nom::IResult<&[u8], Vec<DafSummaryRecord>> {
432    let mut all_summary_records = Vec::new();
433
434    let mut next = fward;
435    loop {
436        let start = ((next - 1) * RECORD_SIZE) as usize;
437        let end = ((next + 1) * RECORD_SIZE) as usize;
438
439        let summary_and_name_record_pair = &input[start..end];
440
441        let (_, summaries_record) = parse_daf_summary_and_name_record_pair(
442            summary_and_name_record_pair,
443            endianness,
444            nd,
445            ni,
446        )?;
447
448        next = summaries_record.next;
449
450        all_summary_records.push(summaries_record);
451
452        if next == 0 {
453            break;
454        }
455    }
456
457    Ok((&[], all_summary_records))
458}
459
460impl Spk {
461    /// Reads and parses an SPK file from the given path.
462    pub fn from_file(path: impl AsRef<std::path::Path>) -> Result<Self, DafSpkError> {
463        let data = std::fs::read(path)?;
464        Self::from_bytes(&data)
465    }
466
467    /// Parses an SPK file from a byte slice.
468    pub fn from_bytes(full_input: &[u8]) -> Result<Self, DafSpkError> {
469        // - https://naif.jpl.nasa.gov/pub/naif/toolkit_docs/C/req/daf.html
470        // - https://naif.jpl.nasa.gov/pub/naif/toolkit_docs/C/req/spk.html
471        // - https://naif.jpl.nasa.gov/pub/naif/toolkit_docs/Tutorials/office/individual_docs/42_making_an_spk.pptx
472
473        let input_cursor = full_input;
474
475        let (input_cursor, (endianness, file_record)) = parse_daf_file_record(input_cursor)?;
476
477        let (_, comment) = parse_daf_comment_area(input_cursor, file_record.fward - 2)?;
478
479        let (_, all_summaries) = parse_all_summary_and_name_record_pairs(
480            full_input,
481            endianness,
482            file_record.nd,
483            file_record.ni,
484            file_record.fward,
485        )?;
486
487        let segments: HashMap<BodyId, HashMap<BodyId, Vec<SpkSegment>>> = all_summaries
488            .iter()
489            .map(|summary_record| {
490                summary_record
491                    .summaries
492                    .iter()
493                    .map(|summary| parse_spk_segment(summary, full_input, endianness))
494                    .collect::<Result<Vec<SpkSegment>, DafSpkError>>()
495            })
496            .collect::<Result<Vec<_>, DafSpkError>>()?
497            .into_iter()
498            .flatten()
499            .fold(HashMap::new(), |mut map, segment| {
500                map.entry(segment.center_id)
501                    .or_default()
502                    .entry(segment.target_id)
503                    .or_default()
504                    .push(segment);
505
506                map
507            });
508
509        Ok(Spk {
510            file_record,
511            comment,
512            segments,
513        })
514    }
515}
516
517/// Parses a complete DAF/SPK file from a byte slice.
518#[deprecated(note = "use Spk::from_bytes instead")]
519pub fn parse_daf_spk(full_input: &[u8]) -> Result<Spk, DafSpkError> {
520    Spk::from_bytes(full_input)
521}
522
523impl<I> From<nom::error::Error<I>> for DafSpkError {
524    fn from(_: nom::error::Error<I>) -> Self {
525        DafSpkError::UnableToParse
526    }
527}
528
529impl<I> From<nom::Err<I>> for DafSpkError {
530    fn from(_: nom::Err<I>) -> Self {
531        DafSpkError::UnableToParse
532    }
533}
534
535fn degree_of_chebyshev_polynomial(rsize: u32) -> u32 {
536    (rsize - 2) / 3
537}
538
539/// Parses a single SPK segment from a DAF summary and the full file data.
540pub fn parse_spk_segment(
541    summary: &DafSummary,
542    full_input: &[u8],
543    endianness: nom::number::Endianness,
544) -> Result<SpkSegment, DafSpkError> {
545    let double_precision_components = &summary.components.double_precision_components;
546    let integer_components = &summary.components.integer_components;
547
548    if double_precision_components.len() != 2 {
549        return Err(DafSpkError::UnexpectedNumberOfComponents);
550    }
551
552    // The 2 is for initial address and final address
553    if integer_components.len() + 2 != 6 {
554        return Err(DafSpkError::UnexpectedNumberOfComponents);
555    }
556
557    let data_type = summary.components.integer_components[3];
558    let initial_address = summary.initial_address;
559    let final_address = summary.final_address;
560
561    let data = match data_type {
562        2 => {
563            let size_of_f64 = std::mem::size_of::<f64>();
564
565            // Words are 1-indexed
566            let start_word = initial_address - 1;
567            let initial_byte_address = start_word * size_of_f64;
568
569            let final_word = final_address;
570            let final_byte_address = final_word * size_of_f64;
571
572            let directory_initial_address = final_byte_address - 4 * size_of_f64;
573            let directory_data = &full_input[directory_initial_address..final_byte_address];
574
575            let f64_parser = nn::f64::<&[u8], nom::error::Error<_>>(endianness);
576
577            let (directory_data, init) = f64_parser(directory_data)?;
578            let (directory_data, intlen) = f64_parser(directory_data)?;
579            let (directory_data, rsize) = f64_parser(directory_data)?;
580            let (_, n) = f64_parser(directory_data)?;
581
582            let init = init as u32;
583            let intlen = intlen as u32;
584            let rsize = rsize as u32;
585            let n = n as u32;
586
587            let degree_of_polynomial = degree_of_chebyshev_polynomial(rsize);
588
589            let mut segment_data = &full_input[initial_byte_address..final_byte_address];
590
591            let mut records: Vec<Vec<SpkType2Coefficients>> = Vec::with_capacity(n as usize);
592
593            for _ in 0..n {
594                // MID and RADIUS seem to be generally ignored in the industry
595                (segment_data, _) = f64_parser(segment_data)?;
596                (segment_data, _) = f64_parser(segment_data)?;
597
598                // Possibly not the most efficient way of parsing since this can likely trigger
599                // tons of allocations
600                let x_coeff;
601                (segment_data, x_coeff) = nom::multi::many_m_n(
602                    degree_of_polynomial as usize,
603                    degree_of_polynomial as usize,
604                    f64_parser,
605                )
606                .parse(segment_data)?;
607
608                let y_coeff;
609                (segment_data, y_coeff) = nom::multi::many_m_n(
610                    degree_of_polynomial as usize,
611                    degree_of_polynomial as usize,
612                    f64_parser,
613                )
614                .parse(segment_data)?;
615
616                let z_coeff;
617                (segment_data, z_coeff) = nom::multi::many_m_n(
618                    degree_of_polynomial as usize,
619                    degree_of_polynomial as usize,
620                    f64_parser,
621                )
622                .parse(segment_data)?;
623
624                let zipped_coefficients: Vec<_> = zip(x_coeff, y_coeff)
625                    .zip(z_coeff)
626                    .map(|((x, y), z)| SpkType2Coefficients { x, y, z })
627                    .collect();
628
629                records.push(zipped_coefficients);
630            }
631
632            SpkArray::Type2(SpkType2Array {
633                records,
634                init,
635                intlen,
636                rsize,
637                n,
638            })
639        }
640        _ => return Err(DafSpkError::UnsupportedSpkArrayType { data_type }),
641    };
642
643    Ok(SpkSegment {
644        name: summary.name.clone(),
645        initial_epoch: double_precision_components[0],
646        final_epoch: double_precision_components[1],
647        target_id: integer_components[0],
648        center_id: integer_components[1],
649        reference_frame_id: integer_components[2],
650        data_type: integer_components[3],
651        initial_address: summary.initial_address,
652        final_address: summary.final_address,
653        data,
654    })
655}
656
657#[cfg(test)]
658pub mod test {
659    use super::*;
660
661    #[test]
662    fn test_parse_all_summary_and_name_record_pairs() {
663        let (_, all_summary_records) = parse_all_summary_and_name_record_pairs(
664            &FILE_CONTENTS,
665            nom::number::Endianness::Little,
666            2,
667            6,
668            4,
669        )
670        .expect("DafSummary record parsing should succeed");
671
672        assert_eq!(all_summary_records, vec![get_expected_summary_record()]);
673    }
674
675    #[test]
676    fn test_parse_daf_summary_and_name_record_pair() {
677        let (_, summary_record) = parse_daf_summary_and_name_record_pair(
678            &FILE_CONTENTS[3072..5120],
679            nom::number::Endianness::Little,
680            2,
681            6,
682        )
683        .expect("DafSummary record parsing should succeed");
684
685        assert_eq!(summary_record, get_expected_summary_record());
686    }
687
688    #[test]
689    fn test_parse_daf_comment_area() {
690        let (unparsed_string, comment) = parse_daf_comment_area(&FILE_CONTENTS[1024..3072], 2)
691            .expect("Comment area parsing should succeed");
692
693        assert_eq!(unparsed_string.len(), 0);
694
695        assert_eq!(get_expected_comment_string(), comment);
696    }
697
698    #[test]
699    fn test_parse_daf_file_record() {
700        let (unparsed_string, (endianness, file_record)) =
701            parse_daf_file_record(&FILE_CONTENTS[..1024])
702                .expect("File record parsing should succeed");
703
704        assert_eq!(unparsed_string.len(), 0);
705
706        assert_eq!(endianness, nom::number::Endianness::Little);
707        assert_eq!(file_record.locidw, "DAF/SPK");
708        assert_eq!(file_record.nd, 2);
709        assert_eq!(file_record.ni, 6);
710        assert_eq!(file_record.locifn, "NIO2SPK");
711        assert_eq!(file_record.fward, 4);
712        assert_eq!(file_record.bward, 4);
713        assert_eq!(file_record.free, 14967465);
714        assert_eq!(file_record.locfmt, "LTL-IEEE");
715        assert_eq!(
716            file_record.ftpstr,
717            b"FTPSTR:\r:\n:\r\n:\r\x00:\x81:\x10\xce:ENDFTP"
718        );
719    }
720
721    #[test]
722    fn test_parse_daf_spk() {
723        let spk = Spk::from_bytes(&FILE_CONTENTS);
724
725        assert!(spk.is_ok());
726
727        if let Ok(spk) = spk {
728            assert_eq!(spk, get_expected_spk());
729        }
730    }
731
732    #[ignore]
733    #[test]
734    fn test_parse_daf_spk_file_is_ok() {
735        let contents = std::fs::read("de430.bsp").unwrap();
736
737        assert!(Spk::from_bytes(&contents).is_ok());
738    }
739
740    fn get_expected_comment_string() -> String {
741        r#"September 03, 2013
742C. Acton
743
744JPL's Solar System Dynamics Group has released two new planetary/lunar ephemerides,
745named DE430 and DE431.
746
747DE430 is now considered the official export lunar/planetary ephemeris, suitable for
748all users/uses. It's approximate time span is 1550 JAN 01 to 2650 JAN 22.
749
750If a longer time span is needed, DE431 may be used, except that the lunar ephemeris
751portion is of relatively poor accuracy outside of the time span covered by DE430.
752The time span covered by DE431 is approximately 13202 B.C. to 17191 A.D. Because de431
753is so long, leading to a huge file, it has been split into two parts having the
754approximagte time spans of:
755
756   13202 B.C. to     0
757       0      to 17191 A.D.
758
759More details about these ephemeris files are contained in accompanying documentation
760available on the NAIF server:  http://naif.jpl.nasa.gov/pub/naif/generic_kernels/spk/planets/
761
762
763Special note regarding Mars:  starting with this DE file the location of Mars' mass center
764(NAIF ID = 499) is *NOT* included; only the Mars system barycenter (ID = 4) is present.
765The offset between Mars' mass center and the Mars' system barycenter in DE403 is quite small
766--about 20 cm.--so most SPICE users could use the Mars system barycenter in place of the
767Mars mass center. However, if you wish/need to have the Mars mass center available to your
768program, you'll need to load a Mars satellite ephemeris file such as "mar097.bsp" in addition
769to DE430. Satellite ephemeris files are available from the NAIF server here:
770http://naif.jpl.nasa.gov/pub/naif/generic_kernels/spk/satellites/
771
772
773Details about SPICE planet and satellite ephemeris files, known as SPK files, including
774how to read them using SPICE Toolkit software, may be found in the SPK tutorial (PDF file
775name is "19_spk") available from the NAIF website (http://naif.jpl.nasa.gov/tutorials.html)."#
776            .to_string()
777    }
778
779    pub fn get_expected_segments() -> HashMap<i32, HashMap<i32, Vec<SpkSegment>>> {
780        let mut segments: HashMap<i32, HashMap<i32, Vec<SpkSegment>>> = HashMap::new();
781
782        segments
783            .entry(0)
784            .or_default()
785            .entry(1)
786            .or_default()
787            .push(SpkSegment {
788                name: "DE-0430LE-0430".to_string(),
789                initial_epoch: -14200747200.0,
790                final_epoch: 20514081600.0,
791                target_id: 1,
792                center_id: 0,
793                reference_frame_id: 1,
794                data_type: 2,
795                initial_address: 641,
796                final_address: 1280,
797                data: SpkArray::Type2(SpkType2Array {
798                    records: vec![
799                        vec![
800                            SpkType2Coefficients {
801                                x: -45337598.32712886,
802                                y: 19369938.44656301,
803                                z: 15085572.533729337,
804                            },
805                            SpkType2Coefficients {
806                                x: -11420944.697258519,
807                                y: -12637982.109486885,
808                                z: -5541486.962461706,
809                            },
810                            SpkType2Coefficients {
811                                x: 1231640.8337434675,
812                                y: -560491.1149804397,
813                                z: -428280.81049458525,
814                            },
815                            SpkType2Coefficients {
816                                x: 13474.686621275972,
817                                y: 75269.27662838619,
818                                z: 38734.16963615925,
819                            },
820                            SpkType2Coefficients {
821                                x: -4516.487838379613,
822                                y: -1778.1593562220773,
823                                z: -474.28100346732754,
824                            },
825                            SpkType2Coefficients {
826                                x: 255.92773698003953,
827                                y: -139.11079477516455,
828                                z: -101.07262002208887,
829                            },
830                            SpkType2Coefficients {
831                                x: -0.6852704163869968,
832                                y: 18.589407873398255,
833                                z: 9.987607796726845,
834                            },
835                            SpkType2Coefficients {
836                                x: -1.186289041290495,
837                                y: -0.8470749615056106,
838                                z: -0.32728192683015445,
839                            },
840                            SpkType2Coefficients {
841                                x: 0.10359080691773931,
842                                y: -0.025136377951734054,
843                                z: -0.024284067540919708,
844                            },
845                            SpkType2Coefficients {
846                                x: -0.0024450355914312806,
847                                y: 0.006832845296274551,
848                                z: 0.003901376147416767,
849                            },
850                            SpkType2Coefficients {
851                                x: -0.00037984826619000424,
852                                y: -0.0004590535913385917,
853                                z: -0.00020497975331372796,
854                            },
855                            SpkType2Coefficients {
856                                x: 4.866121203130994e-5,
857                                y: 5.317851604321568e-7,
858                                z: -4.825361414826083e-6,
859                            },
860                            SpkType2Coefficients {
861                                x: -2.0940028772635746e-6,
862                                y: 2.763684192830889e-6,
863                                z: 1.693948385546482e-6,
864                            },
865                            SpkType2Coefficients {
866                                x: -1.1128208160400393e-7,
867                                y: -2.5800884045558593e-7,
868                                z: -1.2582686566933554e-7,
869                            },
870                        ],
871                        vec![
872                            SpkType2Coefficients {
873                                x: -58449569.351693176,
874                                y: -7935720.979204208,
875                                z: 1898385.1942239169,
876                            },
877                            SpkType2Coefficients {
878                                x: -1800097.6887639922,
879                                y: -14086536.219809037,
880                                z: -7324265.976069875,
881                            },
882                            SpkType2Coefficients {
883                                x: 1107930.6023072726,
884                                y: 136926.39656623837,
885                                z: -43287.182419830104,
886                            },
887                            SpkType2Coefficients {
888                                x: -24766.34259255632,
889                                y: 40936.67997869476,
890                                z: 24436.04346304577,
891                            },
892                            SpkType2Coefficients {
893                                x: -809.5258644486346,
894                                y: -1916.2731958592562,
895                                z: -937.1533465759844,
896                            },
897                            SpkType2Coefficients {
898                                x: 99.12917700968808,
899                                y: 54.90763068538223,
900                                z: 18.88014753122729,
901                            },
902                            SpkType2Coefficients {
903                                x: -6.248044618744813,
904                                y: 0.9048995628056529,
905                                z: 1.1386722295041676,
906                            },
907                            SpkType2Coefficients {
908                                x: 0.21641713799729656,
909                                y: -0.2509084134758946,
910                                z: -0.15655757537582016,
911                            },
912                            SpkType2Coefficients {
913                                x: 0.0016499751844322543,
914                                y: 0.019117773815199555,
915                                z: 0.010024257990951446,
916                            },
917                            SpkType2Coefficients {
918                                x: -0.0009274510372131162,
919                                y: -0.0008500801852717656,
920                                z: -0.0003560607620357178,
921                            },
922                            SpkType2Coefficients {
923                                x: 8.000372257212273e-5,
924                                y: 7.62770401533323e-6,
925                                z: -4.331049116694897e-6,
926                            },
927                            SpkType2Coefficients {
928                                x: -3.9756072002001035e-6,
929                                y: 2.5586829899051993e-6,
930                                z: 1.7821740868686663e-6,
931                            },
932                            SpkType2Coefficients {
933                                x: 6.145431105172551e-8,
934                                y: -2.753091189940317e-7,
935                                z: -1.5334346647775201e-7,
936                            },
937                            SpkType2Coefficients {
938                                x: 1.0008661455878206e-8,
939                                y: 1.6453893506401273e-8,
940                                z: 7.655421689274075e-9,
941                            },
942                        ],
943                        vec![
944                            SpkType2Coefficients {
945                                x: -54210897.94074123,
946                                y: -33770751.31370555,
947                                z: -12326047.807205081,
948                            },
949                            SpkType2Coefficients {
950                                x: 5761909.474302993,
951                                y: -11464200.40064359,
952                                z: -6719455.6659584055,
953                            },
954                            SpkType2Coefficients {
955                                x: 777406.6366812486,
956                                y: 480029.461654695,
957                                z: 174427.62741919362,
958                            },
959                            SpkType2Coefficients {
960                                x: -28073.762491013582,
961                                y: 18778.161983893195,
962                                z: 12963.860927714393,
963                            },
964                            SpkType2Coefficients {
965                                x: 121.63964967772013,
966                                y: -916.1483800707576,
967                                z: -501.4481801676182,
968                            },
969                            SpkType2Coefficients {
970                                x: 12.083715502838807,
971                                y: 37.85101299123708,
972                                z: 18.921171942332254,
973                            },
974                            SpkType2Coefficients {
975                                x: -1.653002384389899,
976                                y: -1.1948239135585854,
977                                z: -0.46377127345030145,
978                            },
979                            SpkType2Coefficients {
980                                x: 0.09122771149628371,
981                                y: 0.009935203283866965,
982                                z: -0.004278716845379022,
983                            },
984                            SpkType2Coefficients {
985                                x: -0.0039806132479455955,
986                                y: 0.0016042528603672538,
987                                z: 0.0012736474960823164,
988                            },
989                            SpkType2Coefficients {
990                                x: 0.00011090320124970714,
991                                y: -0.00016422253688236636,
992                                z: -9.924063032619023e-5,
993                            },
994                            SpkType2Coefficients {
995                                x: 3.208770532420429e-7,
996                                y: 9.711085809982569e-6,
997                                z: 5.146289420109514e-6,
998                            },
999                            SpkType2Coefficients {
1000                                x: -3.086111778410841e-7,
1001                                y: -4.246183965796327e-7,
1002                                z: -1.9415079840488192e-7,
1003                            },
1004                            SpkType2Coefficients {
1005                                x: 2.5750271455539576e-8,
1006                                y: 1.1851050800781965e-8,
1007                                z: 3.450896117737893e-9,
1008                            },
1009                            SpkType2Coefficients {
1010                                x: -1.1242975305362077e-9,
1011                                y: 3.905894854894403e-10,
1012                                z: 1.819059570466293e-10,
1013                            },
1014                        ],
1015                        vec![
1016                            SpkType2Coefficients {
1017                                x: -37505891.58733246,
1018                                y: -52289262.29241685,
1019                                z: -23956693.94508471,
1020                            },
1021                            SpkType2Coefficients {
1022                                x: 10674488.54339679,
1023                                y: -6923680.138903326,
1024                                z: -4813309.998691719,
1025                            },
1026                            SpkType2Coefficients {
1027                                x: 455040.0736010689,
1028                                y: 637750.5106004501,
1029                                z: 292402.5132673988,
1030                            },
1031                            SpkType2Coefficients {
1032                                x: -25695.24376738423,
1033                                y: 8767.195085224153,
1034                                z: 7374.247209604691,
1035                            },
1036                            SpkType2Coefficients {
1037                                x: 113.81703928594601,
1038                                y: -409.200548600714,
1039                                z: -230.21909153218752,
1040                            },
1041                            SpkType2Coefficients {
1042                                x: -7.925717470323576,
1043                                y: 14.79991761561071,
1044                                z: 8.726464815796334,
1045                            },
1046                            SpkType2Coefficients {
1047                                x: -0.34514522809375564,
1048                                y: -0.7183818860227476,
1049                                z: -0.3469500588730363,
1050                            },
1051                            SpkType2Coefficients {
1052                                x: 0.0176780815965851,
1053                                y: 0.014210457550526053,
1054                                z: 0.005723849852140356,
1055                            },
1056                            SpkType2Coefficients {
1057                                x: -0.0010531956678777052,
1058                                y: -0.00046859577877625294,
1059                                z: -0.00013937389776502555,
1060                            },
1061                            SpkType2Coefficients {
1062                                x: 4.514322215422244e-5,
1063                                y: -7.592577392189398e-6,
1064                                z: -8.79098050520026e-6,
1065                            },
1066                            SpkType2Coefficients {
1067                                x: -1.4448248877522545e-6,
1068                                y: 7.777434254709131e-7,
1069                                z: 5.661431511840274e-7,
1070                            },
1071                            SpkType2Coefficients {
1072                                x: 4.147204966378829e-8,
1073                                y: -6.121607354123216e-8,
1074                                z: -3.7012971681646134e-8,
1075                            },
1076                            SpkType2Coefficients {
1077                                x: 6.312482379064945e-10,
1078                                y: 2.661451379451677e-9,
1079                                z: 1.7275326074056334e-9,
1080                            },
1081                            SpkType2Coefficients {
1082                                x: 8.266830416632963e-11,
1083                                y: -9.745279166627787e-10,
1084                                z: 2.647744718956467e-12,
1085                            },
1086                        ],
1087                        vec![
1088                            SpkType2Coefficients {
1089                                x: -13480566.556582376,
1090                                y: -60768703.66295594,
1091                                z: -31001044.578021735,
1092                            },
1093                            SpkType2Coefficients {
1094                                x: 13098038.480735628,
1095                                y: -1495202.6867775493,
1096                                z: -2172196.746889192,
1097                            },
1098                            SpkType2Coefficients {
1099                                x: 151264.9806054996,
1100                                y: 710699.0281462192,
1101                                z: 363207.4374640283,
1102                            },
1103                            SpkType2Coefficients {
1104                                x: -25476.58030891933,
1105                                y: 3754.081219384137,
1106                                z: 4677.273311438741,
1107                            },
1108                            SpkType2Coefficients {
1109                                x: -101.92493293828662,
1110                                y: -262.7478808422509,
1111                                z: -129.4495768022601,
1112                            },
1113                            SpkType2Coefficients {
1114                                x: -12.889820450709234,
1115                                y: 0.5057165515555004,
1116                                z: 1.6230758048764975,
1117                            },
1118                            SpkType2Coefficients {
1119                                x: -0.13746956986424033,
1120                                y: -0.5501353335248234,
1121                                z: -0.2790110353336393,
1122                            },
1123                            SpkType2Coefficients {
1124                                x: 0.0021899860484605447,
1125                                y: -0.0026423962154335386,
1126                                z: -0.0016393935905534595,
1127                            },
1128                            SpkType2Coefficients {
1129                                x: -6.102771135850726e-5,
1130                                y: -0.0005747023559221212,
1131                                z: -0.0003001401197731395,
1132                            },
1133                            SpkType2Coefficients {
1134                                x: 2.0203914290812262e-5,
1135                                y: -4.427521182666183e-6,
1136                                z: -4.483326811276608e-6,
1137                            },
1138                            SpkType2Coefficients {
1139                                x: 1.2401306222838308e-7,
1140                                y: -2.2608106711907944e-7,
1141                                z: -1.3281815174391787e-7,
1142                            },
1143                            SpkType2Coefficients {
1144                                x: 3.414370315475422e-8,
1145                                y: -2.077889269902425e-9,
1146                                z: -4.685709180488663e-9,
1147                            },
1148                            SpkType2Coefficients {
1149                                x: 6.113933096711511e-11,
1150                                y: 1.9965534065395228e-9,
1151                                z: 2.0915798921278826e-10,
1152                            },
1153                            SpkType2Coefficients {
1154                                x: -6.847536309069575e-11,
1155                                y: -1.7723130627533263e-10,
1156                                z: 1.0123566576788687e-10,
1157                            },
1158                        ],
1159                        vec![
1160                            SpkType2Coefficients {
1161                                x: 12924374.015098413,
1162                                y: -57983909.45103208,
1163                                z: -32286857.994901855,
1164                            },
1165                            SpkType2Coefficients {
1166                                x: 13036921.776594413,
1167                                y: 4294940.852419956,
1168                                z: 922700.2004467127,
1169                            },
1170                            SpkType2Coefficients {
1171                                x: -173258.67460110967,
1172                                y: 728370.1715333756,
1173                                z: 406705.6026941626,
1174                            },
1175                            SpkType2Coefficients {
1176                                x: -29322.559968570153,
1177                                y: -1151.356513103967,
1178                                z: 2464.488245095452,
1179                            },
1180                            SpkType2Coefficients {
1181                                x: -385.65279580845936,
1182                                y: -402.2354970834203,
1183                                z: -174.0636949697199,
1184                            },
1185                            SpkType2Coefficients {
1186                                x: -14.886368014428252,
1187                                y: -15.867069239763726,
1188                                z: -6.900606389564812,
1189                            },
1190                            SpkType2Coefficients {
1191                                x: 0.032080021355132285,
1192                                y: -0.9161278285877755,
1193                                z: -0.4920339971160255,
1194                            },
1195                            SpkType2Coefficients {
1196                                x: 0.016287548681964924,
1197                                y: -0.02488481245885575,
1198                                z: -0.01498370326892611,
1199                            },
1200                            SpkType2Coefficients {
1201                                x: 0.0012033591743594745,
1202                                y: -0.0008160331389670967,
1203                                z: -0.00056161731076134,
1204                            },
1205                            SpkType2Coefficients {
1206                                x: 6.5773094877564e-5,
1207                                y: -2.3656137324417096e-6,
1208                                z: -8.1665411304901e-6,
1209                            },
1210                            SpkType2Coefficients {
1211                                x: 2.552075542282858e-6,
1212                                y: 9.062712071296104e-7,
1213                                z: 2.1587896504329588e-7,
1214                            },
1215                            SpkType2Coefficients {
1216                                x: 8.678130515258873e-8,
1217                                y: 8.465577138535719e-8,
1218                                z: 3.615726588487529e-8,
1219                            },
1220                            SpkType2Coefficients {
1221                                x: 1.4424526593101816e-9,
1222                                y: 4.27633127160829e-9,
1223                                z: 1.8867080135302315e-9,
1224                            },
1225                            SpkType2Coefficients {
1226                                x: 8.481561628175781e-11,
1227                                y: 6.586099007446288e-10,
1228                                z: 6.753822366729298e-11,
1229                            },
1230                        ],
1231                        vec![
1232                            SpkType2Coefficients {
1233                                x: 36409830.50565798,
1234                                y: -43709674.23762289,
1235                                z: -27137646.95744377,
1236                            },
1237                            SpkType2Coefficients {
1238                                x: 10117327.079638528,
1239                                y: 9923967.547431879,
1240                                z: 4231773.3597003305,
1241                            },
1242                            SpkType2Coefficients {
1243                                x: -571151.4194038364,
1244                                y: 660828.826202368,
1245                                z: 412454.2316412725,
1246                            },
1247                            SpkType2Coefficients {
1248                                x: -37563.17926341247,
1249                                y: -11606.941139804172,
1250                                z: -2247.364291950567,
1251                            },
1252                            SpkType2Coefficients {
1253                                x: -603.7807025768652,
1254                                y: -1009.6836691174926,
1255                                z: -475.17709608369734,
1256                            },
1257                            SpkType2Coefficients {
1258                                x: -1.2081752304636253,
1259                                y: -48.710551192440604,
1260                                z: -25.85553272787237,
1261                            },
1262                            SpkType2Coefficients {
1263                                x: 1.568028009732732,
1264                                y: -1.870529516169376,
1265                                z: -1.1623769344020758,
1266                            },
1267                            SpkType2Coefficients {
1268                                x: 0.11981831128613148,
1269                                y: -0.031933651917395375,
1270                                z: -0.029613442794534588,
1271                            },
1272                            SpkType2Coefficients {
1273                                x: 0.006256803697846111,
1274                                y: 0.0016547091763384166,
1275                                z: 0.00022571479137512476,
1276                            },
1277                            SpkType2Coefficients {
1278                                x: 0.0002222552080839927,
1279                                y: 0.00023129741041829377,
1280                                z: 0.000100040492847673,
1281                            },
1282                            SpkType2Coefficients {
1283                                x: 2.371661165742397e-6,
1284                                y: 1.544835685314219e-5,
1285                                z: 7.990148218873311e-6,
1286                            },
1287                            SpkType2Coefficients {
1288                                x: -4.1003984878706727e-7,
1289                                y: 7.233327555162387e-7,
1290                                z: 4.2883476302382474e-7,
1291                            },
1292                            SpkType2Coefficients {
1293                                x: -4.246271385183673e-8,
1294                                y: 1.9237101443426504e-8,
1295                                z: 1.5763466794390723e-8,
1296                            },
1297                            SpkType2Coefficients {
1298                                x: -2.140884834622074e-9,
1299                                y: -4.723400496382733e-10,
1300                                z: -2.856720293690054e-10,
1301                            },
1302                        ],
1303                        vec![
1304                            SpkType2Coefficients {
1305                                x: 50543722.086727604,
1306                                y: -19269185.716454018,
1307                                z: -15583889.594508631,
1308                            },
1309                            SpkType2Coefficients {
1310                                x: 3599931.8894646326,
1311                                y: 14288380.206906335,
1312                                z: 7244035.831173811,
1313                            },
1314                            SpkType2Coefficients {
1315                                x: -1069755.3628819815,
1316                                y: 384319.4620373969,
1317                                z: 317312.37891250395,
1318                            },
1319                            SpkType2Coefficients {
1320                                x: -43737.09886475732,
1321                                y: -38037.15054279719,
1322                                z: -15697.124584282366,
1323                            },
1324                            SpkType2Coefficients {
1325                                x: 164.97450012878275,
1326                                y: -2420.636919948095,
1327                                z: -1308.4974377707993,
1328                            },
1329                            SpkType2Coefficients {
1330                                x: 105.40651375456635,
1331                                y: -84.68688187104273,
1332                                z: -56.23908543773916,
1333                            },
1334                            SpkType2Coefficients {
1335                                x: 8.55469813080309,
1336                                y: 0.4731449232651164,
1337                                z: -0.645794473447411,
1338                            },
1339                            SpkType2Coefficients {
1340                                x: 0.36590467785850955,
1341                                y: 0.33945733423292934,
1342                                z: 0.14265082540796215,
1343                            },
1344                            SpkType2Coefficients {
1345                                x: 0.0007971678655988924,
1346                                y: 0.02848960090423228,
1347                                z: 0.01511275828687557,
1348                            },
1349                            SpkType2Coefficients {
1350                                x: -0.0013822344209006461,
1351                                y: 0.0012747729527165339,
1352                                z: 0.0008250912189995393,
1353                            },
1354                            SpkType2Coefficients {
1355                                x: -0.00013287000051370035,
1356                                y: 1.2336704218421914e-6,
1357                                z: 1.4607793651668574e-5,
1358                            },
1359                            SpkType2Coefficients {
1360                                x: -6.7162339643467585e-6,
1361                                y: -5.356377894611242e-6,
1362                                z: -2.1519526344664532e-6,
1363                            },
1364                            SpkType2Coefficients {
1365                                x: -5.9391362124116395e-8,
1366                                y: -5.226237790409592e-7,
1367                                z: -2.720837114530803e-7,
1368                            },
1369                            SpkType2Coefficients {
1370                                x: 2.4000988068303212e-8,
1371                                y: -2.723298390425405e-8,
1372                                z: -1.6915798221638822e-8,
1373                            },
1374                        ],
1375                        vec![
1376                            SpkType2Coefficients {
1377                                x: 47715161.385413,
1378                                y: 10404753.329928415,
1379                                z: 542318.7750979952,
1380                            },
1381                            SpkType2Coefficients {
1382                                x: -6765836.899970185,
1383                                y: 14779071.692198437,
1384                                z: 8594088.428959873,
1385                            },
1386                            SpkType2Coefficients {
1387                                x: -1465606.5161023152,
1388                                y: -344210.7030515934,
1389                                z: -29727.188744053525,
1390                            },
1391                            SpkType2Coefficients {
1392                                x: -10581.87372964701,
1393                                y: -84226.8052209682,
1394                                z: -43815.874113158745,
1395                            },
1396                            SpkType2Coefficients {
1397                                x: 4807.211552791774,
1398                                y: -2583.8778640813425,
1399                                z: -1882.9667458416272,
1400                            },
1401                            SpkType2Coefficients {
1402                                x: 343.9710037358144,
1403                                y: 164.8115854848478,
1404                                z: 51.797012526487116,
1405                            },
1406                            SpkType2Coefficients {
1407                                x: 2.4246758636389076,
1408                                y: 24.30539430978275,
1409                                z: 12.710013263635187,
1410                            },
1411                            SpkType2Coefficients {
1412                                x: -1.648672697688401,
1413                                y: 0.9842641323600833,
1414                                z: 0.6981068201687447,
1415                            },
1416                            SpkType2Coefficients {
1417                                x: -0.14393165092324786,
1418                                y: -0.061475986403702304,
1419                                z: -0.017679892337270447,
1420                            },
1421                            SpkType2Coefficients {
1422                                x: -0.0016606957917306442,
1423                                y: -0.010940818407565325,
1424                                z: -0.005661512737256319,
1425                            },
1426                            SpkType2Coefficients {
1427                                x: 0.0007746124393387002,
1428                                y: -0.0005148133372302519,
1429                                z: -0.0003559310741837079,
1430                            },
1431                            SpkType2Coefficients {
1432                                x: 7.591369608267796e-5,
1433                                y: 2.851152275335745e-5,
1434                                z: 7.237817810727936e-6,
1435                            },
1436                            SpkType2Coefficients {
1437                                x: 1.2175945888890173e-6,
1438                                y: 5.894372589974007e-6,
1439                                z: 3.016221773585502e-6,
1440                            },
1441                            SpkType2Coefficients {
1442                                x: -4.1804046500567263e-7,
1443                                y: 3.1205490724883324e-7,
1444                                z: 2.105018407145734e-7,
1445                            },
1446                        ],
1447                        vec![
1448                            SpkType2Coefficients {
1449                                x: 23270918.979379125,
1450                                y: 33815823.653189495,
1451                                z: 15597350.020431643,
1452                            },
1453                            SpkType2Coefficients {
1454                                x: -17256716.368954264,
1455                                y: 7748953.55497174,
1456                                z: 5945649.545798879,
1457                            },
1458                            SpkType2Coefficients {
1459                                x: -954598.9755969029,
1460                                y: -1386443.8244291213,
1461                                z: -639309.6247786926,
1462                            },
1463                            SpkType2Coefficients {
1464                                x: 101869.74273592202,
1465                                y: -67045.26641936596,
1466                                z: -46457.66020202247,
1467                            },
1468                            SpkType2Coefficients {
1469                                x: 6770.864790225536,
1470                                y: 6049.759734071041,
1471                                z: 2516.0791556047075,
1472                            },
1473                            SpkType2Coefficients {
1474                                x: -404.3473796217518,
1475                                y: 507.3469545124919,
1476                                z: 313.07375838137585,
1477                            },
1478                            SpkType2Coefficients {
1479                                x: -52.99753919509793,
1480                                y: -24.538365698424087,
1481                                z: -7.524554482312445,
1482                            },
1483                            SpkType2Coefficients {
1484                                x: 1.3691602972264172,
1485                                y: -4.219212112047788,
1486                                z: -2.394293188546936,
1487                            },
1488                            SpkType2Coefficients {
1489                                x: 0.43925632684682697,
1490                                y: 0.06532388690975224,
1491                                z: -0.011274242477285907,
1492                            },
1493                            SpkType2Coefficients {
1494                                x: 0.0018346172940959047,
1495                                y: 0.03561010180824766,
1496                                z: 0.018801936763089475,
1497                            },
1498                            SpkType2Coefficients {
1499                                x: -0.0036142809423915173,
1500                                y: 0.0005128648992871837,
1501                                z: 0.0006530328448389293,
1502                            },
1503                            SpkType2Coefficients {
1504                                x: -0.00012491773418058397,
1505                                y: -0.000292314096541678,
1506                                z: -0.00014280604054292342,
1507                            },
1508                            SpkType2Coefficients {
1509                                x: 2.828142086444596e-5,
1510                                y: -1.34486238229468e-5,
1511                                z: -1.0142372145929214e-5,
1512                            },
1513                            SpkType2Coefficients {
1514                                x: 2.02650433691657e-6,
1515                                y: 2.252218889725443e-6,
1516                                z: 9.883364952693398e-7,
1517                            },
1518                        ],
1519                        vec![
1520                            SpkType2Coefficients {
1521                                x: -14302112.478480183,
1522                                y: 37127769.12752547,
1523                                z: 21309842.14818654,
1524                            },
1525                            SpkType2Coefficients {
1526                                x: -19069919.56448197,
1527                                y: -4490458.993168776,
1528                                z: -392529.49609443726,
1529                            },
1530                            SpkType2Coefficients {
1531                                x: 515204.77798256016,
1532                                y: -1451652.0030301881,
1533                                z: -828409.079766861,
1534                            },
1535                            SpkType2Coefficients {
1536                                x: 110060.69037873248,
1537                                y: 54873.151509303076,
1538                                z: 17714.073679264868,
1539                            },
1540                            SpkType2Coefficients {
1541                                x: -5580.825240276621,
1542                                y: 5639.915091025177,
1543                                z: 3594.2903651668257,
1544                            },
1545                            SpkType2Coefficients {
1546                                x: -370.2192777295126,
1547                                y: -490.94873651444885,
1548                                z: -223.0038885814632,
1549                            },
1550                            SpkType2Coefficients {
1551                                x: 48.86063157915018,
1552                                y: -13.34508901391277,
1553                                z: -12.24827254781346,
1554                            },
1555                            SpkType2Coefficients {
1556                                x: 0.3433868526053941,
1557                                y: 3.8672966862522746,
1558                                z: 2.0267775252913185,
1559                            },
1560                            SpkType2Coefficients {
1561                                x: -0.3689733210882523,
1562                                y: -0.07771483028641848,
1563                                z: -0.002714236959790189,
1564                            },
1565                            SpkType2Coefficients {
1566                                x: 0.014424822977178191,
1567                                y: -0.025988013547959172,
1568                                z: -0.015376585582127298,
1569                            },
1570                            SpkType2Coefficients {
1571                                x: 0.0022704585183469296,
1572                                y: 0.0018455519765964191,
1573                                z: 0.0007460432824687185,
1574                            },
1575                            SpkType2Coefficients {
1576                                x: -0.00022821024420895437,
1577                                y: 0.00012668340451298506,
1578                                z: 9.15335244786352e-5,
1579                            },
1580                            SpkType2Coefficients {
1581                                x: -8.276206806577387e-6,
1582                                y: -2.1807579234944036e-5,
1583                                z: -1.0761861493761696e-5,
1584                            },
1585                            SpkType2Coefficients {
1586                                x: 2.406031793142807e-6,
1587                                y: -2.723247702600162e-8,
1588                                z: -2.6722360449168746e-7,
1589                            },
1590                        ],
1591                        vec![
1592                            SpkType2Coefficients {
1593                                x: -45350344.168980576,
1594                                y: 19224804.86125569,
1595                                z: 15021167.722862277,
1596                            },
1597                            SpkType2Coefficients {
1598                                x: -11383349.691344053,
1599                                y: -12654718.156929357,
1600                                z: -5554404.770343297,
1601                            },
1602                            SpkType2Coefficients {
1603                                x: 1232277.6392773716,
1604                                y: -557057.1528215639,
1605                                z: -426515.7808066775,
1606                            },
1607                            SpkType2Coefficients {
1608                                x: 13199.32536501195,
1609                                y: 75163.12522116388,
1610                                z: 38706.450957135254,
1611                            },
1612                            SpkType2Coefficients {
1613                                x: -4497.195208447304,
1614                                y: -1788.8134345085332,
1615                                z: -481.9905832453785,
1616                            },
1617                            SpkType2Coefficients {
1618                                x: 255.87672676675095,
1619                                y: -137.42397399685794,
1620                                z: -100.1671973654519,
1621                            },
1622                            SpkType2Coefficients {
1623                                x: -0.8110886216898764,
1624                                y: 18.500243622033917,
1625                                z: 9.95325478448965,
1626                            },
1627                            SpkType2Coefficients {
1628                                x: -1.1737944602604822,
1629                                y: -0.8501479177967093,
1630                                z: -0.33023485740428854,
1631                            },
1632                            SpkType2Coefficients {
1633                                x: 0.10326061177793994,
1634                                y: -0.0242070325118841,
1635                                z: -0.023753716920769462,
1636                            },
1637                            SpkType2Coefficients {
1638                                x: -0.0025024315740898176,
1639                                y: 0.006763728015186381,
1640                                z: 0.003870542044050555,
1641                            },
1642                            SpkType2Coefficients {
1643                                x: -0.0003717686519532686,
1644                                y: -0.00045897874910957024,
1645                                z: -0.000205785685419332,
1646                            },
1647                            SpkType2Coefficients {
1648                                x: 4.828213004613172e-5,
1649                                y: 1.0308151299535684e-6,
1650                                z: -4.519405769857414e-6,
1651                            },
1652                            SpkType2Coefficients {
1653                                x: -2.1153006377942852e-6,
1654                                y: 2.714271798917107e-6,
1655                                z: 1.6694911193365625e-6,
1656                            },
1657                            SpkType2Coefficients {
1658                                x: -1.0663734226988474e-7,
1659                                y: -2.567848133727514e-7,
1660                                z: -1.2542045425680128e-7,
1661                            },
1662                        ],
1663                        vec![
1664                            SpkType2Coefficients {
1665                                x: -58389226.22256667,
1666                                y: -8091714.337427627,
1667                                z: 1820428.2065686637,
1668                            },
1669                            SpkType2Coefficients {
1670                                x: -1766054.6052030046,
1671                                y: -14081973.652760211,
1672                                z: -7325448.793696021,
1673                            },
1674                            SpkType2Coefficients {
1675                                x: 1106801.4567413135,
1676                                y: 138810.8374249616,
1677                                z: -42163.3093941699,
1678                            },
1679                            SpkType2Coefficients {
1680                                x: -24817.014284937664,
1681                                y: 40820.06424547664,
1682                                z: 24379.16666021187,
1683                            },
1684                            SpkType2Coefficients {
1685                                x: -801.9509565938666,
1686                                y: -1912.170569517239,
1687                                z: -935.7589059008715,
1688                            },
1689                            SpkType2Coefficients {
1690                                x: 98.56190425937514,
1691                                y: 54.99316570351528,
1692                                z: 18.985238953105736,
1693                            },
1694                            SpkType2Coefficients {
1695                                x: -6.225307809265943,
1696                                y: 0.8782851315752163,
1697                                z: 1.1220799638909078,
1698                            },
1699                            SpkType2Coefficients {
1700                                x: 0.2166308405314536,
1701                                y: -0.248596524127064,
1702                                z: -0.1553450736857643,
1703                            },
1704                            SpkType2Coefficients {
1705                                x: 0.0015235918031991618,
1706                                y: 0.019001665693900285,
1707                                z: 0.009975562024603925,
1708                            },
1709                            SpkType2Coefficients {
1710                                x: -0.0009154264174046048,
1711                                y: -0.000848901463675118,
1712                                z: -0.0003567131372449493,
1713                            },
1714                            SpkType2Coefficients {
1715                                x: 7.934582987812358e-5,
1716                                y: 8.060030376793692e-6,
1717                                z: -4.030172364414252e-6,
1718                            },
1719                            SpkType2Coefficients {
1720                                x: -3.963710165920319e-6,
1721                                y: 2.5078948861037383e-6,
1722                                z: 1.7540449870050126e-6,
1723                            },
1724                            SpkType2Coefficients {
1725                                x: 6.36383573374082e-8,
1726                                y: -2.7242476898255323e-7,
1727                                z: -1.5196790376014343e-7,
1728                            },
1729                            SpkType2Coefficients {
1730                                x: 9.61362055440764e-9,
1731                                y: 1.594140293923078e-8,
1732                                z: 7.630701672941777e-9,
1733                            },
1734                        ],
1735                        vec![
1736                            SpkType2Coefficients {
1737                                x: -54092426.04345092,
1738                                y: -33906193.5251241,
1739                                z: -12399228.667557947,
1740                            },
1741                            SpkType2Coefficients {
1742                                x: 5785867.736703381,
1743                                y: -11449057.168716598,
1744                                z: -6713934.131973944,
1745                            },
1746                            SpkType2Coefficients {
1747                                x: 776112.1568083934,
1748                                y: 480896.6728461073,
1749                                z: 175026.40877961094,
1750                            },
1751                            SpkType2Coefficients {
1752                                x: -28066.908030287876,
1753                                y: 18721.70710881851,
1754                                z: 12933.041421377007,
1755                            },
1756                            SpkType2Coefficients {
1757                                x: 122.603506733156,
1758                                y: -913.2813372009165,
1759                                z: -500.02031568076006,
1760                            },
1761                            SpkType2Coefficients {
1762                                x: 11.932401912329652,
1763                                y: 37.743845357251814,
1764                                z: 18.87986386969098,
1765                            },
1766                            SpkType2Coefficients {
1767                                x: -1.6433261659736709,
1768                                y: -1.193841007569472,
1769                                z: -0.46425983354010003,
1770                            },
1771                            SpkType2Coefficients {
1772                                x: 0.09074605157091184,
1773                                y: 0.010130659052011168,
1774                                z: -0.004124182287322653,
1775                            },
1776                            SpkType2Coefficients {
1777                                x: -0.003965601544184511,
1778                                y: 0.0015820668574517652,
1779                                z: 0.0012602487340585295,
1780                            },
1781                            SpkType2Coefficients {
1782                                x: 0.00011096505553262233,
1783                                y: -0.00016276915666452104,
1784                                z: -9.846948384070477e-5,
1785                            },
1786                            SpkType2Coefficients {
1787                                x: 2.6781404333806733e-7,
1788                                y: 9.640528130514774e-6,
1789                                z: 5.11380993449563e-6,
1790                            },
1791                            SpkType2Coefficients {
1792                                x: -3.037968216179319e-7,
1793                                y: -4.225407856969625e-7,
1794                                z: -1.9349486950740913e-7,
1795                            },
1796                            SpkType2Coefficients {
1797                                x: 2.6331227830238215e-8,
1798                                y: 1.1030750057785568e-8,
1799                                z: 3.218807864676213e-9,
1800                            },
1801                            SpkType2Coefficients {
1802                                x: -1.1234198172382371e-9,
1803                                y: 5.757999958318061e-10,
1804                                z: 1.9331843287510842e-10,
1805                            },
1806                        ],
1807                    ],
1808                    init: 0,
1809                    intlen: 691200,
1810                    rsize: 44,
1811                    n: 14,
1812                }),
1813            });
1814
1815        segments
1816    }
1817
1818    fn get_expected_spk() -> Spk {
1819        // Values confirmed with JPLEphem.jp and python-jplephem
1820
1821        Spk {
1822            file_record: DafFileRecord {
1823                locidw: "DAF/SPK".to_string(),
1824                nd: 2,
1825                ni: 6,
1826                locifn: "NIO2SPK".to_string(),
1827                fward: 4,
1828                bward: 4,
1829                free: 14967465,
1830                locfmt: "LTL-IEEE".to_string(),
1831                prenul: vec![
1832                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1833                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1834                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1835                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1836                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1837                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1838                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1839                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1840                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1841                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1842                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1843                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1844                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1845                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1846                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1847                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1848                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1849                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1850                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1851                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1852                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1853                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1854                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1855                    0, 0, 0, 0, 0,
1856                ],
1857                ftpstr: vec![
1858                    70, 84, 80, 83, 84, 82, 58, 13, 58, 10, 58, 13, 10, 58, 13, 0, 58, 129, 58, 16,
1859                    206, 58, 69, 78, 68, 70, 84, 80,
1860                ],
1861                pstnul: vec![
1862                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1863                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1864                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1865                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1866                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1867                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1868                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1869                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1870                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1871                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1872                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1873                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1874                ],
1875            },
1876            comment: get_expected_comment_string(),
1877            segments: get_expected_segments(),
1878        }
1879    }
1880
1881    fn get_expected_summary_record() -> DafSummaryRecord {
1882        DafSummaryRecord {
1883            next: 0,
1884            count: 1,
1885            summaries: vec![DafSummary {
1886                name: "DE-0430LE-0430".to_string(),
1887                components: DafComponents {
1888                    double_precision_components: vec![-14200747200.0, 20514081600.0],
1889                    integer_components: vec![1, 0, 1, 2],
1890                },
1891                initial_address: 641,
1892                final_address: 1280,
1893            }],
1894        }
1895    }
1896
1897    #[ignore]
1898    #[test]
1899    fn create_file_contents_array() {
1900        // Use this function to generate the FILE_CONTENTS array below
1901
1902        let mut contents = std::fs::read("de430.bsp").unwrap();
1903
1904        let size_of_u32: usize = std::mem::size_of::<u32>();
1905        let size_of_f64 = std::mem::size_of::<f64>();
1906
1907        // Override the segment count to just 1 to simplify testing
1908        contents[3088..(3088 + size_of_f64)].copy_from_slice(&1f64.to_le_bytes());
1909
1910        // Override the final address so we can test with less data
1911        let final_address = 1280usize;
1912        contents[3132..(3132 + size_of_u32)].copy_from_slice(&(final_address as u32).to_le_bytes());
1913
1914        let final_index = final_address * size_of_f64;
1915        let directory_data = &mut contents[final_index - 4 * size_of_f64..];
1916
1917        // Override the directory data so that the segment parser can find it
1918        // We override n to be 14 instead of the original value
1919        directory_data[..size_of_f64].copy_from_slice(&0f64.to_le_bytes()); // init
1920        directory_data[size_of_f64..size_of_f64 * 2].copy_from_slice(&691200f64.to_le_bytes()); // intlen
1921        directory_data[size_of_f64 * 2..size_of_f64 * 3].copy_from_slice(&44f64.to_le_bytes()); // rsize
1922        directory_data[size_of_f64 * 3..size_of_f64 * 4].copy_from_slice(&14f64.to_le_bytes()); // n
1923
1924        for item in contents.iter().take(10240) {
1925            print!("0x{item:02X}u8, ");
1926        }
1927    }
1928
1929    pub const FILE_CONTENTS: [u8; 10240] = [
1930        0x44u8, 0x41u8, 0x46u8, 0x2Fu8, 0x53u8, 0x50u8, 0x4Bu8, 0x20u8, 0x02u8, 0x00u8, 0x00u8,
1931        0x00u8, 0x06u8, 0x00u8, 0x00u8, 0x00u8, 0x4Eu8, 0x49u8, 0x4Fu8, 0x32u8, 0x53u8, 0x50u8,
1932        0x4Bu8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
1933        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
1934        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
1935        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
1936        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x04u8,
1937        0x00u8, 0x00u8, 0x00u8, 0x04u8, 0x00u8, 0x00u8, 0x00u8, 0xA9u8, 0x62u8, 0xE4u8, 0x00u8,
1938        0x4Cu8, 0x54u8, 0x4Cu8, 0x2Du8, 0x49u8, 0x45u8, 0x45u8, 0x45u8, 0x00u8, 0x00u8, 0x00u8,
1939        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
1940        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
1941        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
1942        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
1943        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
1944        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
1945        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
1946        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
1947        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
1948        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
1949        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
1950        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
1951        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
1952        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
1953        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
1954        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
1955        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
1956        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
1957        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
1958        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
1959        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
1960        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
1961        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
1962        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
1963        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
1964        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
1965        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
1966        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
1967        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
1968        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
1969        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
1970        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
1971        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
1972        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
1973        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
1974        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
1975        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
1976        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
1977        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
1978        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
1979        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
1980        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
1981        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
1982        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
1983        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
1984        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
1985        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
1986        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
1987        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
1988        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
1989        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
1990        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
1991        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
1992        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
1993        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x46u8, 0x54u8, 0x50u8, 0x53u8, 0x54u8,
1994        0x52u8, 0x3Au8, 0x0Du8, 0x3Au8, 0x0Au8, 0x3Au8, 0x0Du8, 0x0Au8, 0x3Au8, 0x0Du8, 0x00u8,
1995        0x3Au8, 0x81u8, 0x3Au8, 0x10u8, 0xCEu8, 0x3Au8, 0x45u8, 0x4Eu8, 0x44u8, 0x46u8, 0x54u8,
1996        0x50u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
1997        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
1998        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
1999        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
2000        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
2001        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
2002        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
2003        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
2004        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
2005        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
2006        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
2007        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
2008        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
2009        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
2010        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
2011        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
2012        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
2013        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
2014        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
2015        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
2016        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
2017        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
2018        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
2019        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
2020        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
2021        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
2022        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
2023        0x00u8, 0x00u8, 0x00u8, 0x53u8, 0x65u8, 0x70u8, 0x74u8, 0x65u8, 0x6Du8, 0x62u8, 0x65u8,
2024        0x72u8, 0x20u8, 0x30u8, 0x33u8, 0x2Cu8, 0x20u8, 0x32u8, 0x30u8, 0x31u8, 0x33u8, 0x00u8,
2025        0x43u8, 0x2Eu8, 0x20u8, 0x41u8, 0x63u8, 0x74u8, 0x6Fu8, 0x6Eu8, 0x00u8, 0x00u8, 0x4Au8,
2026        0x50u8, 0x4Cu8, 0x27u8, 0x73u8, 0x20u8, 0x53u8, 0x6Fu8, 0x6Cu8, 0x61u8, 0x72u8, 0x20u8,
2027        0x53u8, 0x79u8, 0x73u8, 0x74u8, 0x65u8, 0x6Du8, 0x20u8, 0x44u8, 0x79u8, 0x6Eu8, 0x61u8,
2028        0x6Du8, 0x69u8, 0x63u8, 0x73u8, 0x20u8, 0x47u8, 0x72u8, 0x6Fu8, 0x75u8, 0x70u8, 0x20u8,
2029        0x68u8, 0x61u8, 0x73u8, 0x20u8, 0x72u8, 0x65u8, 0x6Cu8, 0x65u8, 0x61u8, 0x73u8, 0x65u8,
2030        0x64u8, 0x20u8, 0x74u8, 0x77u8, 0x6Fu8, 0x20u8, 0x6Eu8, 0x65u8, 0x77u8, 0x20u8, 0x70u8,
2031        0x6Cu8, 0x61u8, 0x6Eu8, 0x65u8, 0x74u8, 0x61u8, 0x72u8, 0x79u8, 0x2Fu8, 0x6Cu8, 0x75u8,
2032        0x6Eu8, 0x61u8, 0x72u8, 0x20u8, 0x65u8, 0x70u8, 0x68u8, 0x65u8, 0x6Du8, 0x65u8, 0x72u8,
2033        0x69u8, 0x64u8, 0x65u8, 0x73u8, 0x2Cu8, 0x00u8, 0x6Eu8, 0x61u8, 0x6Du8, 0x65u8, 0x64u8,
2034        0x20u8, 0x44u8, 0x45u8, 0x34u8, 0x33u8, 0x30u8, 0x20u8, 0x61u8, 0x6Eu8, 0x64u8, 0x20u8,
2035        0x44u8, 0x45u8, 0x34u8, 0x33u8, 0x31u8, 0x2Eu8, 0x00u8, 0x00u8, 0x44u8, 0x45u8, 0x34u8,
2036        0x33u8, 0x30u8, 0x20u8, 0x69u8, 0x73u8, 0x20u8, 0x6Eu8, 0x6Fu8, 0x77u8, 0x20u8, 0x63u8,
2037        0x6Fu8, 0x6Eu8, 0x73u8, 0x69u8, 0x64u8, 0x65u8, 0x72u8, 0x65u8, 0x64u8, 0x20u8, 0x74u8,
2038        0x68u8, 0x65u8, 0x20u8, 0x6Fu8, 0x66u8, 0x66u8, 0x69u8, 0x63u8, 0x69u8, 0x61u8, 0x6Cu8,
2039        0x20u8, 0x65u8, 0x78u8, 0x70u8, 0x6Fu8, 0x72u8, 0x74u8, 0x20u8, 0x6Cu8, 0x75u8, 0x6Eu8,
2040        0x61u8, 0x72u8, 0x2Fu8, 0x70u8, 0x6Cu8, 0x61u8, 0x6Eu8, 0x65u8, 0x74u8, 0x61u8, 0x72u8,
2041        0x79u8, 0x20u8, 0x65u8, 0x70u8, 0x68u8, 0x65u8, 0x6Du8, 0x65u8, 0x72u8, 0x69u8, 0x73u8,
2042        0x2Cu8, 0x20u8, 0x73u8, 0x75u8, 0x69u8, 0x74u8, 0x61u8, 0x62u8, 0x6Cu8, 0x65u8, 0x20u8,
2043        0x66u8, 0x6Fu8, 0x72u8, 0x00u8, 0x61u8, 0x6Cu8, 0x6Cu8, 0x20u8, 0x75u8, 0x73u8, 0x65u8,
2044        0x72u8, 0x73u8, 0x2Fu8, 0x75u8, 0x73u8, 0x65u8, 0x73u8, 0x2Eu8, 0x20u8, 0x49u8, 0x74u8,
2045        0x27u8, 0x73u8, 0x20u8, 0x61u8, 0x70u8, 0x70u8, 0x72u8, 0x6Fu8, 0x78u8, 0x69u8, 0x6Du8,
2046        0x61u8, 0x74u8, 0x65u8, 0x20u8, 0x74u8, 0x69u8, 0x6Du8, 0x65u8, 0x20u8, 0x73u8, 0x70u8,
2047        0x61u8, 0x6Eu8, 0x20u8, 0x69u8, 0x73u8, 0x20u8, 0x31u8, 0x35u8, 0x35u8, 0x30u8, 0x20u8,
2048        0x4Au8, 0x41u8, 0x4Eu8, 0x20u8, 0x30u8, 0x31u8, 0x20u8, 0x74u8, 0x6Fu8, 0x20u8, 0x32u8,
2049        0x36u8, 0x35u8, 0x30u8, 0x20u8, 0x4Au8, 0x41u8, 0x4Eu8, 0x20u8, 0x32u8, 0x32u8, 0x2Eu8,
2050        0x00u8, 0x00u8, 0x49u8, 0x66u8, 0x20u8, 0x61u8, 0x20u8, 0x6Cu8, 0x6Fu8, 0x6Eu8, 0x67u8,
2051        0x65u8, 0x72u8, 0x20u8, 0x74u8, 0x69u8, 0x6Du8, 0x65u8, 0x20u8, 0x73u8, 0x70u8, 0x61u8,
2052        0x6Eu8, 0x20u8, 0x69u8, 0x73u8, 0x20u8, 0x6Eu8, 0x65u8, 0x65u8, 0x64u8, 0x65u8, 0x64u8,
2053        0x2Cu8, 0x20u8, 0x44u8, 0x45u8, 0x34u8, 0x33u8, 0x31u8, 0x20u8, 0x6Du8, 0x61u8, 0x79u8,
2054        0x20u8, 0x62u8, 0x65u8, 0x20u8, 0x75u8, 0x73u8, 0x65u8, 0x64u8, 0x2Cu8, 0x20u8, 0x65u8,
2055        0x78u8, 0x63u8, 0x65u8, 0x70u8, 0x74u8, 0x20u8, 0x74u8, 0x68u8, 0x61u8, 0x74u8, 0x20u8,
2056        0x74u8, 0x68u8, 0x65u8, 0x20u8, 0x6Cu8, 0x75u8, 0x6Eu8, 0x61u8, 0x72u8, 0x20u8, 0x65u8,
2057        0x70u8, 0x68u8, 0x65u8, 0x6Du8, 0x65u8, 0x72u8, 0x69u8, 0x73u8, 0x00u8, 0x70u8, 0x6Fu8,
2058        0x72u8, 0x74u8, 0x69u8, 0x6Fu8, 0x6Eu8, 0x20u8, 0x69u8, 0x73u8, 0x20u8, 0x6Fu8, 0x66u8,
2059        0x20u8, 0x72u8, 0x65u8, 0x6Cu8, 0x61u8, 0x74u8, 0x69u8, 0x76u8, 0x65u8, 0x6Cu8, 0x79u8,
2060        0x20u8, 0x70u8, 0x6Fu8, 0x6Fu8, 0x72u8, 0x20u8, 0x61u8, 0x63u8, 0x63u8, 0x75u8, 0x72u8,
2061        0x61u8, 0x63u8, 0x79u8, 0x20u8, 0x6Fu8, 0x75u8, 0x74u8, 0x73u8, 0x69u8, 0x64u8, 0x65u8,
2062        0x20u8, 0x6Fu8, 0x66u8, 0x20u8, 0x74u8, 0x68u8, 0x65u8, 0x20u8, 0x74u8, 0x69u8, 0x6Du8,
2063        0x65u8, 0x20u8, 0x73u8, 0x70u8, 0x61u8, 0x6Eu8, 0x20u8, 0x63u8, 0x6Fu8, 0x76u8, 0x65u8,
2064        0x72u8, 0x65u8, 0x64u8, 0x20u8, 0x62u8, 0x79u8, 0x20u8, 0x44u8, 0x45u8, 0x34u8, 0x33u8,
2065        0x30u8, 0x2Eu8, 0x00u8, 0x54u8, 0x68u8, 0x65u8, 0x20u8, 0x74u8, 0x69u8, 0x6Du8, 0x65u8,
2066        0x20u8, 0x73u8, 0x70u8, 0x61u8, 0x6Eu8, 0x20u8, 0x63u8, 0x6Fu8, 0x76u8, 0x65u8, 0x72u8,
2067        0x65u8, 0x64u8, 0x20u8, 0x62u8, 0x79u8, 0x20u8, 0x44u8, 0x45u8, 0x34u8, 0x33u8, 0x31u8,
2068        0x20u8, 0x69u8, 0x73u8, 0x20u8, 0x61u8, 0x70u8, 0x70u8, 0x72u8, 0x6Fu8, 0x78u8, 0x69u8,
2069        0x6Du8, 0x61u8, 0x74u8, 0x65u8, 0x6Cu8, 0x79u8, 0x20u8, 0x31u8, 0x33u8, 0x32u8, 0x30u8,
2070        0x32u8, 0x20u8, 0x42u8, 0x2Eu8, 0x43u8, 0x2Eu8, 0x20u8, 0x74u8, 0x6Fu8, 0x20u8, 0x31u8,
2071        0x37u8, 0x31u8, 0x39u8, 0x31u8, 0x20u8, 0x41u8, 0x2Eu8, 0x44u8, 0x2Eu8, 0x20u8, 0x42u8,
2072        0x65u8, 0x63u8, 0x61u8, 0x75u8, 0x73u8, 0x65u8, 0x20u8, 0x64u8, 0x65u8, 0x34u8, 0x33u8,
2073        0x31u8, 0x00u8, 0x69u8, 0x73u8, 0x20u8, 0x73u8, 0x6Fu8, 0x20u8, 0x6Cu8, 0x6Fu8, 0x6Eu8,
2074        0x67u8, 0x2Cu8, 0x20u8, 0x6Cu8, 0x65u8, 0x61u8, 0x64u8, 0x69u8, 0x6Eu8, 0x67u8, 0x20u8,
2075        0x74u8, 0x6Fu8, 0x20u8, 0x61u8, 0x20u8, 0x68u8, 0x75u8, 0x67u8, 0x65u8, 0x20u8, 0x66u8,
2076        0x69u8, 0x6Cu8, 0x65u8, 0x2Cu8, 0x20u8, 0x69u8, 0x74u8, 0x20u8, 0x68u8, 0x61u8, 0x73u8,
2077        0x20u8, 0x62u8, 0x65u8, 0x65u8, 0x6Eu8, 0x20u8, 0x73u8, 0x70u8, 0x6Cu8, 0x69u8, 0x74u8,
2078        0x20u8, 0x69u8, 0x6Eu8, 0x74u8, 0x6Fu8, 0x20u8, 0x74u8, 0x77u8, 0x6Fu8, 0x20u8, 0x70u8,
2079        0x61u8, 0x72u8, 0x74u8, 0x73u8, 0x20u8, 0x68u8, 0x61u8, 0x76u8, 0x69u8, 0x6Eu8, 0x67u8,
2080        0x20u8, 0x74u8, 0x68u8, 0x65u8, 0x00u8, 0x61u8, 0x70u8, 0x70u8, 0x72u8, 0x6Fu8, 0x78u8,
2081        0x69u8, 0x6Du8, 0x61u8, 0x67u8, 0x74u8, 0x65u8, 0x20u8, 0x74u8, 0x69u8, 0x6Du8, 0x65u8,
2082        0x20u8, 0x73u8, 0x70u8, 0x61u8, 0x6Eu8, 0x73u8, 0x20u8, 0x6Fu8, 0x66u8, 0x3Au8, 0x00u8,
2083        0x00u8, 0x20u8, 0x20u8, 0x20u8, 0x31u8, 0x33u8, 0x32u8, 0x30u8, 0x32u8, 0x20u8, 0x42u8,
2084        0x2Eu8, 0x43u8, 0x2Eu8, 0x20u8, 0x74u8, 0x6Fu8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2085        0x30u8, 0x00u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x30u8, 0x20u8,
2086        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x74u8, 0x6Fu8, 0x20u8, 0x31u8, 0x37u8, 0x31u8,
2087        0x39u8, 0x31u8, 0x20u8, 0x41u8, 0x2Eu8, 0x44u8, 0x2Eu8, 0x00u8, 0x00u8, 0x4Du8, 0x6Fu8,
2088        0x72u8, 0x65u8, 0x20u8, 0x64u8, 0x65u8, 0x74u8, 0x61u8, 0x69u8, 0x6Cu8, 0x73u8, 0x20u8,
2089        0x61u8, 0x62u8, 0x6Fu8, 0x75u8, 0x74u8, 0x20u8, 0x74u8, 0x68u8, 0x65u8, 0x73u8, 0x65u8,
2090        0x20u8, 0x65u8, 0x70u8, 0x68u8, 0x65u8, 0x6Du8, 0x65u8, 0x72u8, 0x69u8, 0x73u8, 0x20u8,
2091        0x66u8, 0x69u8, 0x6Cu8, 0x65u8, 0x73u8, 0x20u8, 0x61u8, 0x72u8, 0x65u8, 0x20u8, 0x63u8,
2092        0x6Fu8, 0x6Eu8, 0x74u8, 0x61u8, 0x69u8, 0x6Eu8, 0x65u8, 0x64u8, 0x20u8, 0x69u8, 0x6Eu8,
2093        0x20u8, 0x61u8, 0x63u8, 0x63u8, 0x6Fu8, 0x6Du8, 0x70u8, 0x61u8, 0x6Eu8, 0x79u8, 0x69u8,
2094        0x6Eu8, 0x67u8, 0x20u8, 0x64u8, 0x6Fu8, 0x63u8, 0x75u8, 0x6Du8, 0x65u8, 0x6Eu8, 0x74u8,
2095        0x61u8, 0x74u8, 0x69u8, 0x6Fu8, 0x6Eu8, 0x00u8, 0x61u8, 0x76u8, 0x61u8, 0x69u8, 0x6Cu8,
2096        0x61u8, 0x62u8, 0x6Cu8, 0x65u8, 0x20u8, 0x6Fu8, 0x6Eu8, 0x20u8, 0x74u8, 0x68u8, 0x65u8,
2097        0x20u8, 0x4Eu8, 0x41u8, 0x49u8, 0x46u8, 0x20u8, 0x73u8, 0x65u8, 0x72u8, 0x76u8, 0x65u8,
2098        0x72u8, 0x3Au8, 0x20u8, 0x20u8, 0x68u8, 0x74u8, 0x74u8, 0x70u8, 0x3Au8, 0x2Fu8, 0x2Fu8,
2099        0x6Eu8, 0x61u8, 0x69u8, 0x66u8, 0x2Eu8, 0x6Au8, 0x70u8, 0x6Cu8, 0x2Eu8, 0x6Eu8, 0x61u8,
2100        0x73u8, 0x61u8, 0x2Eu8, 0x67u8, 0x6Fu8, 0x76u8, 0x2Fu8, 0x70u8, 0x75u8, 0x62u8, 0x2Fu8,
2101        0x6Eu8, 0x61u8, 0x69u8, 0x66u8, 0x2Fu8, 0x67u8, 0x65u8, 0x6Eu8, 0x65u8, 0x72u8, 0x69u8,
2102        0x63u8, 0x5Fu8, 0x6Bu8, 0x65u8, 0x72u8, 0x6Eu8, 0x65u8, 0x6Cu8, 0x73u8, 0x2Fu8, 0x73u8,
2103        0x70u8, 0x6Bu8, 0x2Fu8, 0x70u8, 0x6Cu8, 0x61u8, 0x6Eu8, 0x65u8, 0x74u8, 0x73u8, 0x2Fu8,
2104        0x00u8, 0x00u8, 0x00u8, 0x53u8, 0x70u8, 0x65u8, 0x63u8, 0x69u8, 0x61u8, 0x6Cu8, 0x20u8,
2105        0x6Eu8, 0x6Fu8, 0x74u8, 0x65u8, 0x20u8, 0x72u8, 0x65u8, 0x67u8, 0x61u8, 0x72u8, 0x64u8,
2106        0x69u8, 0x6Eu8, 0x67u8, 0x20u8, 0x4Du8, 0x61u8, 0x72u8, 0x73u8, 0x3Au8, 0x20u8, 0x20u8,
2107        0x73u8, 0x74u8, 0x61u8, 0x72u8, 0x74u8, 0x69u8, 0x6Eu8, 0x67u8, 0x20u8, 0x77u8, 0x69u8,
2108        0x74u8, 0x68u8, 0x20u8, 0x74u8, 0x68u8, 0x69u8, 0x73u8, 0x20u8, 0x44u8, 0x45u8, 0x20u8,
2109        0x66u8, 0x69u8, 0x6Cu8, 0x65u8, 0x20u8, 0x74u8, 0x68u8, 0x65u8, 0x20u8, 0x6Cu8, 0x6Fu8,
2110        0x63u8, 0x61u8, 0x74u8, 0x69u8, 0x6Fu8, 0x6Eu8, 0x20u8, 0x6Fu8, 0x66u8, 0x20u8, 0x4Du8,
2111        0x61u8, 0x72u8, 0x73u8, 0x27u8, 0x20u8, 0x6Du8, 0x61u8, 0x73u8, 0x73u8, 0x20u8, 0x63u8,
2112        0x65u8, 0x6Eu8, 0x74u8, 0x65u8, 0x72u8, 0x00u8, 0x28u8, 0x4Eu8, 0x41u8, 0x49u8, 0x46u8,
2113        0x20u8, 0x49u8, 0x44u8, 0x20u8, 0x3Du8, 0x20u8, 0x34u8, 0x39u8, 0x39u8, 0x29u8, 0x20u8,
2114        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
2115        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
2116        0x00u8, 0x00u8, 0x69u8, 0x73u8, 0x20u8, 0x2Au8, 0x4Eu8, 0x4Fu8, 0x54u8, 0x2Au8, 0x20u8,
2117        0x69u8, 0x6Eu8, 0x63u8, 0x6Cu8, 0x75u8, 0x64u8, 0x65u8, 0x64u8, 0x3Bu8, 0x20u8, 0x6Fu8,
2118        0x6Eu8, 0x6Cu8, 0x79u8, 0x20u8, 0x74u8, 0x68u8, 0x65u8, 0x20u8, 0x4Du8, 0x61u8, 0x72u8,
2119        0x73u8, 0x20u8, 0x73u8, 0x79u8, 0x73u8, 0x74u8, 0x65u8, 0x6Du8, 0x20u8, 0x62u8, 0x61u8,
2120        0x72u8, 0x79u8, 0x63u8, 0x65u8, 0x6Eu8, 0x74u8, 0x65u8, 0x72u8, 0x20u8, 0x28u8, 0x49u8,
2121        0x44u8, 0x20u8, 0x3Du8, 0x20u8, 0x34u8, 0x29u8, 0x20u8, 0x69u8, 0x73u8, 0x20u8, 0x70u8,
2122        0x72u8, 0x65u8, 0x73u8, 0x65u8, 0x6Eu8, 0x74u8, 0x2Eu8, 0x00u8, 0x54u8, 0x68u8, 0x65u8,
2123        0x20u8, 0x6Fu8, 0x66u8, 0x66u8, 0x73u8, 0x65u8, 0x74u8, 0x20u8, 0x62u8, 0x65u8, 0x74u8,
2124        0x77u8, 0x65u8, 0x65u8, 0x6Eu8, 0x20u8, 0x4Du8, 0x61u8, 0x72u8, 0x73u8, 0x27u8, 0x20u8,
2125        0x6Du8, 0x61u8, 0x73u8, 0x73u8, 0x20u8, 0x63u8, 0x65u8, 0x6Eu8, 0x74u8, 0x65u8, 0x72u8,
2126        0x20u8, 0x61u8, 0x6Eu8, 0x64u8, 0x20u8, 0x74u8, 0x68u8, 0x65u8, 0x20u8, 0x4Du8, 0x61u8,
2127        0x72u8, 0x73u8, 0x27u8, 0x20u8, 0x73u8, 0x79u8, 0x73u8, 0x74u8, 0x65u8, 0x6Du8, 0x20u8,
2128        0x62u8, 0x61u8, 0x72u8, 0x79u8, 0x63u8, 0x65u8, 0x6Eu8, 0x74u8, 0x65u8, 0x72u8, 0x20u8,
2129        0x69u8, 0x6Eu8, 0x20u8, 0x44u8, 0x45u8, 0x34u8, 0x30u8, 0x33u8, 0x20u8, 0x69u8, 0x73u8,
2130        0x20u8, 0x71u8, 0x75u8, 0x69u8, 0x74u8, 0x65u8, 0x20u8, 0x73u8, 0x6Du8, 0x61u8, 0x6Cu8,
2131        0x6Cu8, 0x00u8, 0x2Du8, 0x2Du8, 0x61u8, 0x62u8, 0x6Fu8, 0x75u8, 0x74u8, 0x20u8, 0x32u8,
2132        0x30u8, 0x20u8, 0x63u8, 0x6Du8, 0x2Eu8, 0x2Du8, 0x2Du8, 0x73u8, 0x6Fu8, 0x20u8, 0x6Du8,
2133        0x6Fu8, 0x73u8, 0x74u8, 0x20u8, 0x53u8, 0x50u8, 0x49u8, 0x43u8, 0x45u8, 0x20u8, 0x75u8,
2134        0x73u8, 0x65u8, 0x72u8, 0x73u8, 0x20u8, 0x63u8, 0x6Fu8, 0x75u8, 0x6Cu8, 0x64u8, 0x20u8,
2135        0x75u8, 0x73u8, 0x65u8, 0x20u8, 0x74u8, 0x68u8, 0x65u8, 0x20u8, 0x4Du8, 0x61u8, 0x72u8,
2136        0x73u8, 0x20u8, 0x73u8, 0x79u8, 0x73u8, 0x74u8, 0x65u8, 0x6Du8, 0x20u8, 0x62u8, 0x61u8,
2137        0x72u8, 0x79u8, 0x63u8, 0x65u8, 0x6Eu8, 0x74u8, 0x65u8, 0x72u8, 0x20u8, 0x69u8, 0x6Eu8,
2138        0x20u8, 0x70u8, 0x6Cu8, 0x61u8, 0x63u8, 0x65u8, 0x20u8, 0x6Fu8, 0x66u8, 0x20u8, 0x74u8,
2139        0x68u8, 0x65u8, 0x00u8, 0x4Du8, 0x61u8, 0x72u8, 0x73u8, 0x20u8, 0x6Du8, 0x61u8, 0x73u8,
2140        0x73u8, 0x20u8, 0x63u8, 0x65u8, 0x6Eu8, 0x74u8, 0x65u8, 0x72u8, 0x2Eu8, 0x20u8, 0x48u8,
2141        0x6Fu8, 0x77u8, 0x65u8, 0x76u8, 0x65u8, 0x72u8, 0x2Cu8, 0x20u8, 0x69u8, 0x66u8, 0x20u8,
2142        0x79u8, 0x6Fu8, 0x75u8, 0x20u8, 0x77u8, 0x69u8, 0x73u8, 0x68u8, 0x2Fu8, 0x6Eu8, 0x65u8,
2143        0x65u8, 0x64u8, 0x20u8, 0x74u8, 0x6Fu8, 0x20u8, 0x68u8, 0x61u8, 0x76u8, 0x65u8, 0x20u8,
2144        0x74u8, 0x68u8, 0x65u8, 0x20u8, 0x4Du8, 0x61u8, 0x72u8, 0x73u8, 0x20u8, 0x6Du8, 0x61u8,
2145        0x73u8, 0x73u8, 0x20u8, 0x63u8, 0x65u8, 0x6Eu8, 0x74u8, 0x65u8, 0x72u8, 0x20u8, 0x61u8,
2146        0x76u8, 0x61u8, 0x69u8, 0x6Cu8, 0x61u8, 0x62u8, 0x6Cu8, 0x65u8, 0x20u8, 0x74u8, 0x6Fu8,
2147        0x20u8, 0x79u8, 0x6Fu8, 0x75u8, 0x72u8, 0x00u8, 0x70u8, 0x72u8, 0x6Fu8, 0x67u8, 0x72u8,
2148        0x61u8, 0x6Du8, 0x2Cu8, 0x20u8, 0x79u8, 0x6Fu8, 0x75u8, 0x27u8, 0x6Cu8, 0x6Cu8, 0x20u8,
2149        0x6Eu8, 0x65u8, 0x65u8, 0x64u8, 0x20u8, 0x74u8, 0x6Fu8, 0x20u8, 0x6Cu8, 0x6Fu8, 0x61u8,
2150        0x64u8, 0x20u8, 0x61u8, 0x20u8, 0x4Du8, 0x61u8, 0x72u8, 0x73u8, 0x20u8, 0x73u8, 0x61u8,
2151        0x74u8, 0x65u8, 0x6Cu8, 0x6Cu8, 0x69u8, 0x74u8, 0x65u8, 0x20u8, 0x65u8, 0x70u8, 0x68u8,
2152        0x65u8, 0x6Du8, 0x65u8, 0x72u8, 0x69u8, 0x73u8, 0x20u8, 0x66u8, 0x69u8, 0x6Cu8, 0x65u8,
2153        0x20u8, 0x73u8, 0x75u8, 0x63u8, 0x68u8, 0x20u8, 0x61u8, 0x73u8, 0x20u8, 0x22u8, 0x6Du8,
2154        0x61u8, 0x72u8, 0x30u8, 0x39u8, 0x37u8, 0x2Eu8, 0x62u8, 0x73u8, 0x70u8, 0x22u8, 0x20u8,
2155        0x69u8, 0x6Eu8, 0x20u8, 0x61u8, 0x64u8, 0x64u8, 0x69u8, 0x74u8, 0x69u8, 0x6Fu8, 0x6Eu8,
2156        0x00u8, 0x74u8, 0x6Fu8, 0x20u8, 0x44u8, 0x45u8, 0x34u8, 0x33u8, 0x30u8, 0x2Eu8, 0x20u8,
2157        0x53u8, 0x61u8, 0x74u8, 0x65u8, 0x6Cu8, 0x6Cu8, 0x69u8, 0x74u8, 0x65u8, 0x20u8, 0x65u8,
2158        0x70u8, 0x68u8, 0x65u8, 0x6Du8, 0x65u8, 0x72u8, 0x69u8, 0x73u8, 0x20u8, 0x66u8, 0x69u8,
2159        0x6Cu8, 0x65u8, 0x73u8, 0x20u8, 0x61u8, 0x72u8, 0x65u8, 0x20u8, 0x61u8, 0x76u8, 0x61u8,
2160        0x69u8, 0x6Cu8, 0x61u8, 0x62u8, 0x6Cu8, 0x65u8, 0x20u8, 0x66u8, 0x72u8, 0x6Fu8, 0x6Du8,
2161        0x20u8, 0x74u8, 0x68u8, 0x65u8, 0x20u8, 0x4Eu8, 0x41u8, 0x49u8, 0x46u8, 0x20u8, 0x73u8,
2162        0x65u8, 0x72u8, 0x76u8, 0x65u8, 0x72u8, 0x20u8, 0x68u8, 0x65u8, 0x72u8, 0x65u8, 0x3Au8,
2163        0x00u8, 0x68u8, 0x74u8, 0x74u8, 0x70u8, 0x3Au8, 0x2Fu8, 0x2Fu8, 0x6Eu8, 0x61u8, 0x69u8,
2164        0x66u8, 0x2Eu8, 0x6Au8, 0x70u8, 0x6Cu8, 0x2Eu8, 0x6Eu8, 0x61u8, 0x73u8, 0x61u8, 0x2Eu8,
2165        0x67u8, 0x6Fu8, 0x76u8, 0x2Fu8, 0x70u8, 0x75u8, 0x62u8, 0x2Fu8, 0x6Eu8, 0x61u8, 0x69u8,
2166        0x66u8, 0x2Fu8, 0x67u8, 0x65u8, 0x6Eu8, 0x65u8, 0x72u8, 0x69u8, 0x63u8, 0x5Fu8, 0x6Bu8,
2167        0x65u8, 0x72u8, 0x6Eu8, 0x65u8, 0x6Cu8, 0x73u8, 0x2Fu8, 0x73u8, 0x70u8, 0x6Bu8, 0x2Fu8,
2168        0x73u8, 0x61u8, 0x74u8, 0x65u8, 0x6Cu8, 0x6Cu8, 0x69u8, 0x74u8, 0x65u8, 0x73u8, 0x2Fu8,
2169        0x00u8, 0x00u8, 0x00u8, 0x44u8, 0x65u8, 0x74u8, 0x61u8, 0x69u8, 0x6Cu8, 0x73u8, 0x20u8,
2170        0x61u8, 0x62u8, 0x6Fu8, 0x75u8, 0x74u8, 0x20u8, 0x53u8, 0x50u8, 0x49u8, 0x43u8, 0x45u8,
2171        0x20u8, 0x70u8, 0x6Cu8, 0x61u8, 0x6Eu8, 0x65u8, 0x74u8, 0x20u8, 0x61u8, 0x6Eu8, 0x64u8,
2172        0x20u8, 0x73u8, 0x61u8, 0x74u8, 0x65u8, 0x6Cu8, 0x6Cu8, 0x69u8, 0x74u8, 0x65u8, 0x20u8,
2173        0x65u8, 0x70u8, 0x68u8, 0x65u8, 0x6Du8, 0x65u8, 0x72u8, 0x69u8, 0x73u8, 0x20u8, 0x66u8,
2174        0x69u8, 0x6Cu8, 0x65u8, 0x73u8, 0x2Cu8, 0x20u8, 0x6Bu8, 0x6Eu8, 0x6Fu8, 0x77u8, 0x6Eu8,
2175        0x20u8, 0x61u8, 0x73u8, 0x20u8, 0x53u8, 0x50u8, 0x4Bu8, 0x20u8, 0x66u8, 0x69u8, 0x6Cu8,
2176        0x65u8, 0x73u8, 0x2Cu8, 0x20u8, 0x69u8, 0x6Eu8, 0x63u8, 0x6Cu8, 0x75u8, 0x64u8, 0x69u8,
2177        0x6Eu8, 0x67u8, 0x00u8, 0x68u8, 0x6Fu8, 0x77u8, 0x20u8, 0x74u8, 0x6Fu8, 0x20u8, 0x72u8,
2178        0x65u8, 0x61u8, 0x64u8, 0x20u8, 0x74u8, 0x68u8, 0x65u8, 0x6Du8, 0x20u8, 0x75u8, 0x73u8,
2179        0x69u8, 0x6Eu8, 0x67u8, 0x20u8, 0x53u8, 0x50u8, 0x49u8, 0x43u8, 0x45u8, 0x20u8, 0x54u8,
2180        0x6Fu8, 0x6Fu8, 0x6Cu8, 0x6Bu8, 0x69u8, 0x74u8, 0x20u8, 0x73u8, 0x6Fu8, 0x66u8, 0x74u8,
2181        0x77u8, 0x61u8, 0x72u8, 0x65u8, 0x2Cu8, 0x20u8, 0x6Du8, 0x61u8, 0x79u8, 0x20u8, 0x62u8,
2182        0x65u8, 0x20u8, 0x66u8, 0x6Fu8, 0x75u8, 0x6Eu8, 0x64u8, 0x20u8, 0x69u8, 0x6Eu8, 0x20u8,
2183        0x74u8, 0x68u8, 0x65u8, 0x20u8, 0x53u8, 0x50u8, 0x4Bu8, 0x20u8, 0x74u8, 0x75u8, 0x74u8,
2184        0x6Fu8, 0x72u8, 0x69u8, 0x61u8, 0x6Cu8, 0x20u8, 0x28u8, 0x50u8, 0x44u8, 0x46u8, 0x20u8,
2185        0x66u8, 0x69u8, 0x6Cu8, 0x65u8, 0x00u8, 0x6Eu8, 0x61u8, 0x6Du8, 0x65u8, 0x20u8, 0x69u8,
2186        0x73u8, 0x20u8, 0x22u8, 0x31u8, 0x39u8, 0x5Fu8, 0x73u8, 0x70u8, 0x6Bu8, 0x22u8, 0x29u8,
2187        0x20u8, 0x61u8, 0x76u8, 0x61u8, 0x69u8, 0x6Cu8, 0x61u8, 0x62u8, 0x6Cu8, 0x65u8, 0x20u8,
2188        0x66u8, 0x72u8, 0x6Fu8, 0x6Du8, 0x20u8, 0x74u8, 0x68u8, 0x65u8, 0x20u8, 0x4Eu8, 0x41u8,
2189        0x49u8, 0x46u8, 0x20u8, 0x77u8, 0x65u8, 0x62u8, 0x73u8, 0x69u8, 0x74u8, 0x65u8, 0x20u8,
2190        0x28u8, 0x68u8, 0x74u8, 0x74u8, 0x70u8, 0x3Au8, 0x2Fu8, 0x2Fu8, 0x6Eu8, 0x61u8, 0x69u8,
2191        0x66u8, 0x2Eu8, 0x6Au8, 0x70u8, 0x6Cu8, 0x2Eu8, 0x6Eu8, 0x61u8, 0x73u8, 0x61u8, 0x2Eu8,
2192        0x67u8, 0x6Fu8, 0x76u8, 0x2Fu8, 0x74u8, 0x75u8, 0x74u8, 0x6Fu8, 0x72u8, 0x69u8, 0x61u8,
2193        0x6Cu8, 0x73u8, 0x2Eu8, 0x68u8, 0x74u8, 0x6Du8, 0x6Cu8, 0x29u8, 0x2Eu8, 0x00u8, 0x00u8,
2194        0x00u8, 0x04u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2195        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2196        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2197        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2198        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2199        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2200        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2201        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2202        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2203        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2204        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2205        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2206        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2207        0x20u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
2208        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
2209        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
2210        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
2211        0x00u8, 0x00u8, 0x00u8, 0xF0u8, 0x3Fu8, 0x00u8, 0x00u8, 0x00u8, 0xA6u8, 0x71u8, 0x73u8,
2212        0x0Au8, 0xC2u8, 0x00u8, 0x00u8, 0x00u8, 0x2Du8, 0xF0u8, 0x1Au8, 0x13u8, 0x42u8, 0x01u8,
2213        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x01u8, 0x00u8, 0x00u8, 0x00u8,
2214        0x02u8, 0x00u8, 0x00u8, 0x00u8, 0x81u8, 0x02u8, 0x00u8, 0x00u8, 0x00u8, 0x05u8, 0x00u8,
2215        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0xA6u8, 0x71u8, 0x73u8, 0x0Au8, 0xC2u8, 0x00u8, 0x00u8,
2216        0x00u8, 0x2Du8, 0xF0u8, 0x1Au8, 0x13u8, 0x42u8, 0x02u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
2217        0x00u8, 0x00u8, 0x00u8, 0x01u8, 0x00u8, 0x00u8, 0x00u8, 0x02u8, 0x00u8, 0x00u8, 0x00u8,
2218        0xC5u8, 0xBAu8, 0x21u8, 0x00u8, 0xC8u8, 0xFDu8, 0x2Du8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
2219        0xA6u8, 0x71u8, 0x73u8, 0x0Au8, 0xC2u8, 0x00u8, 0x00u8, 0x00u8, 0x2Du8, 0xF0u8, 0x1Au8,
2220        0x13u8, 0x42u8, 0x03u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x01u8,
2221        0x00u8, 0x00u8, 0x00u8, 0x02u8, 0x00u8, 0x00u8, 0x00u8, 0xC9u8, 0xFDu8, 0x2Du8, 0x00u8,
2222        0xA4u8, 0xB3u8, 0x3Du8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0xA6u8, 0x71u8, 0x73u8, 0x0Au8,
2223        0xC2u8, 0x00u8, 0x00u8, 0x00u8, 0x2Du8, 0xF0u8, 0x1Au8, 0x13u8, 0x42u8, 0x04u8, 0x00u8,
2224        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x01u8, 0x00u8, 0x00u8, 0x00u8, 0x02u8,
2225        0x00u8, 0x00u8, 0x00u8, 0xA5u8, 0xB3u8, 0x3Du8, 0x00u8, 0x4Cu8, 0x68u8, 0x44u8, 0x00u8,
2226        0x00u8, 0x00u8, 0x00u8, 0xA6u8, 0x71u8, 0x73u8, 0x0Au8, 0xC2u8, 0x00u8, 0x00u8, 0x00u8,
2227        0x2Du8, 0xF0u8, 0x1Au8, 0x13u8, 0x42u8, 0x05u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
2228        0x00u8, 0x00u8, 0x01u8, 0x00u8, 0x00u8, 0x00u8, 0x02u8, 0x00u8, 0x00u8, 0x00u8, 0x4Du8,
2229        0x68u8, 0x44u8, 0x00u8, 0x88u8, 0x63u8, 0x49u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0xA6u8,
2230        0x71u8, 0x73u8, 0x0Au8, 0xC2u8, 0x00u8, 0x00u8, 0x00u8, 0x2Du8, 0xF0u8, 0x1Au8, 0x13u8,
2231        0x42u8, 0x06u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x01u8, 0x00u8,
2232        0x00u8, 0x00u8, 0x02u8, 0x00u8, 0x00u8, 0x00u8, 0x89u8, 0x63u8, 0x49u8, 0x00u8, 0xA0u8,
2233        0xCBu8, 0x4Du8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0xA6u8, 0x71u8, 0x73u8, 0x0Au8, 0xC2u8,
2234        0x00u8, 0x00u8, 0x00u8, 0x2Du8, 0xF0u8, 0x1Au8, 0x13u8, 0x42u8, 0x07u8, 0x00u8, 0x00u8,
2235        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x01u8, 0x00u8, 0x00u8, 0x00u8, 0x02u8, 0x00u8,
2236        0x00u8, 0x00u8, 0xA1u8, 0xCBu8, 0x4Du8, 0x00u8, 0x94u8, 0xA0u8, 0x51u8, 0x00u8, 0x00u8,
2237        0x00u8, 0x00u8, 0xA6u8, 0x71u8, 0x73u8, 0x0Au8, 0xC2u8, 0x00u8, 0x00u8, 0x00u8, 0x2Du8,
2238        0xF0u8, 0x1Au8, 0x13u8, 0x42u8, 0x08u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
2239        0x00u8, 0x01u8, 0x00u8, 0x00u8, 0x00u8, 0x02u8, 0x00u8, 0x00u8, 0x00u8, 0x95u8, 0xA0u8,
2240        0x51u8, 0x00u8, 0x88u8, 0x75u8, 0x55u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0xA6u8, 0x71u8,
2241        0x73u8, 0x0Au8, 0xC2u8, 0x00u8, 0x00u8, 0x00u8, 0x2Du8, 0xF0u8, 0x1Au8, 0x13u8, 0x42u8,
2242        0x09u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x01u8, 0x00u8, 0x00u8,
2243        0x00u8, 0x02u8, 0x00u8, 0x00u8, 0x00u8, 0x89u8, 0x75u8, 0x55u8, 0x00u8, 0x7Cu8, 0x4Au8,
2244        0x59u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0xA6u8, 0x71u8, 0x73u8, 0x0Au8, 0xC2u8, 0x00u8,
2245        0x00u8, 0x00u8, 0x2Du8, 0xF0u8, 0x1Au8, 0x13u8, 0x42u8, 0x0Au8, 0x00u8, 0x00u8, 0x00u8,
2246        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x01u8, 0x00u8, 0x00u8, 0x00u8, 0x02u8, 0x00u8, 0x00u8,
2247        0x00u8, 0x7Du8, 0x4Au8, 0x59u8, 0x00u8, 0xC8u8, 0xB3u8, 0x66u8, 0x00u8, 0x00u8, 0x00u8,
2248        0x00u8, 0xA6u8, 0x71u8, 0x73u8, 0x0Au8, 0xC2u8, 0x00u8, 0x00u8, 0x00u8, 0x2Du8, 0xF0u8,
2249        0x1Au8, 0x13u8, 0x42u8, 0x2Du8, 0x01u8, 0x00u8, 0x00u8, 0x03u8, 0x00u8, 0x00u8, 0x00u8,
2250        0x01u8, 0x00u8, 0x00u8, 0x00u8, 0x02u8, 0x00u8, 0x00u8, 0x00u8, 0xC9u8, 0xB3u8, 0x66u8,
2251        0x00u8, 0x2Cu8, 0x8Bu8, 0xA5u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0xA6u8, 0x71u8, 0x73u8,
2252        0x0Au8, 0xC2u8, 0x00u8, 0x00u8, 0x00u8, 0x2Du8, 0xF0u8, 0x1Au8, 0x13u8, 0x42u8, 0x8Fu8,
2253        0x01u8, 0x00u8, 0x00u8, 0x03u8, 0x00u8, 0x00u8, 0x00u8, 0x01u8, 0x00u8, 0x00u8, 0x00u8,
2254        0x02u8, 0x00u8, 0x00u8, 0x00u8, 0x2Du8, 0x8Bu8, 0xA5u8, 0x00u8, 0x90u8, 0x62u8, 0xE4u8,
2255        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0xA6u8, 0x71u8, 0x73u8, 0x0Au8, 0xC2u8, 0x00u8, 0x00u8,
2256        0x00u8, 0x2Du8, 0xF0u8, 0x1Au8, 0x13u8, 0x42u8, 0xC7u8, 0x00u8, 0x00u8, 0x00u8, 0x01u8,
2257        0x00u8, 0x00u8, 0x00u8, 0x01u8, 0x00u8, 0x00u8, 0x00u8, 0x02u8, 0x00u8, 0x00u8, 0x00u8,
2258        0x91u8, 0x62u8, 0xE4u8, 0x00u8, 0x9Cu8, 0x62u8, 0xE4u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
2259        0xA6u8, 0x71u8, 0x73u8, 0x0Au8, 0xC2u8, 0x00u8, 0x00u8, 0x00u8, 0x2Du8, 0xF0u8, 0x1Au8,
2260        0x13u8, 0x42u8, 0x2Bu8, 0x01u8, 0x00u8, 0x00u8, 0x02u8, 0x00u8, 0x00u8, 0x00u8, 0x01u8,
2261        0x00u8, 0x00u8, 0x00u8, 0x02u8, 0x00u8, 0x00u8, 0x00u8, 0x9Du8, 0x62u8, 0xE4u8, 0x00u8,
2262        0xA8u8, 0x62u8, 0xE4u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
2263        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
2264        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
2265        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
2266        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
2267        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
2268        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
2269        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
2270        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
2271        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
2272        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
2273        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
2274        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
2275        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
2276        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
2277        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
2278        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
2279        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
2280        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
2281        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
2282        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
2283        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
2284        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
2285        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
2286        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
2287        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
2288        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
2289        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
2290        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
2291        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
2292        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
2293        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
2294        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
2295        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
2296        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
2297        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
2298        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
2299        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
2300        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
2301        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
2302        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x44u8, 0x45u8, 0x2Du8, 0x30u8, 0x34u8, 0x33u8, 0x30u8,
2303        0x4Cu8, 0x45u8, 0x2Du8, 0x30u8, 0x34u8, 0x33u8, 0x30u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2304        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2305        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2306        0x44u8, 0x45u8, 0x2Du8, 0x30u8, 0x34u8, 0x33u8, 0x30u8, 0x4Cu8, 0x45u8, 0x2Du8, 0x30u8,
2307        0x34u8, 0x33u8, 0x30u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2308        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2309        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x44u8, 0x45u8, 0x2Du8, 0x30u8,
2310        0x34u8, 0x33u8, 0x30u8, 0x4Cu8, 0x45u8, 0x2Du8, 0x30u8, 0x34u8, 0x33u8, 0x30u8, 0x20u8,
2311        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2312        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2313        0x20u8, 0x20u8, 0x20u8, 0x44u8, 0x45u8, 0x2Du8, 0x30u8, 0x34u8, 0x33u8, 0x30u8, 0x4Cu8,
2314        0x45u8, 0x2Du8, 0x30u8, 0x34u8, 0x33u8, 0x30u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2315        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2316        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x44u8,
2317        0x45u8, 0x2Du8, 0x30u8, 0x34u8, 0x33u8, 0x30u8, 0x4Cu8, 0x45u8, 0x2Du8, 0x30u8, 0x34u8,
2318        0x33u8, 0x30u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2319        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2320        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x44u8, 0x45u8, 0x2Du8, 0x30u8, 0x34u8,
2321        0x33u8, 0x30u8, 0x4Cu8, 0x45u8, 0x2Du8, 0x30u8, 0x34u8, 0x33u8, 0x30u8, 0x20u8, 0x20u8,
2322        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2323        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2324        0x20u8, 0x20u8, 0x44u8, 0x45u8, 0x2Du8, 0x30u8, 0x34u8, 0x33u8, 0x30u8, 0x4Cu8, 0x45u8,
2325        0x2Du8, 0x30u8, 0x34u8, 0x33u8, 0x30u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2326        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2327        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x44u8, 0x45u8,
2328        0x2Du8, 0x30u8, 0x34u8, 0x33u8, 0x30u8, 0x4Cu8, 0x45u8, 0x2Du8, 0x30u8, 0x34u8, 0x33u8,
2329        0x30u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2330        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2331        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x44u8, 0x45u8, 0x2Du8, 0x30u8, 0x34u8, 0x33u8,
2332        0x30u8, 0x4Cu8, 0x45u8, 0x2Du8, 0x30u8, 0x34u8, 0x33u8, 0x30u8, 0x20u8, 0x20u8, 0x20u8,
2333        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2334        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2335        0x20u8, 0x44u8, 0x45u8, 0x2Du8, 0x30u8, 0x34u8, 0x33u8, 0x30u8, 0x4Cu8, 0x45u8, 0x2Du8,
2336        0x30u8, 0x34u8, 0x33u8, 0x30u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2337        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2338        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x44u8, 0x45u8, 0x2Du8,
2339        0x30u8, 0x34u8, 0x33u8, 0x30u8, 0x4Cu8, 0x45u8, 0x2Du8, 0x30u8, 0x34u8, 0x33u8, 0x30u8,
2340        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2341        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2342        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x44u8, 0x45u8, 0x2Du8, 0x30u8, 0x34u8, 0x33u8, 0x30u8,
2343        0x4Cu8, 0x45u8, 0x2Du8, 0x30u8, 0x34u8, 0x33u8, 0x30u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2344        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2345        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2346        0x44u8, 0x45u8, 0x2Du8, 0x30u8, 0x34u8, 0x33u8, 0x30u8, 0x4Cu8, 0x45u8, 0x2Du8, 0x30u8,
2347        0x34u8, 0x33u8, 0x30u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2348        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2349        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x44u8, 0x45u8, 0x2Du8, 0x30u8,
2350        0x34u8, 0x33u8, 0x30u8, 0x4Cu8, 0x45u8, 0x2Du8, 0x30u8, 0x34u8, 0x33u8, 0x30u8, 0x20u8,
2351        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2352        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2353        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2354        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2355        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2356        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2357        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2358        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2359        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2360        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2361        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2362        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2363        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2364        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2365        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2366        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2367        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2368        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2369        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2370        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2371        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2372        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2373        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2374        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2375        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2376        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2377        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2378        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2379        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2380        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2381        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2382        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2383        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2384        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2385        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2386        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2387        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2388        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2389        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2390        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2391        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2392        0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8, 0x20u8,
2393        0x20u8, 0x20u8, 0x20u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
2394        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
2395        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x76u8, 0x47u8, 0x73u8,
2396        0x0Au8, 0xC2u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x18u8, 0x15u8, 0x41u8, 0xBCu8,
2397        0xF5u8, 0x9Du8, 0xF2u8, 0x5Fu8, 0x9Eu8, 0x85u8, 0xC1u8, 0x19u8, 0xF1u8, 0x4Fu8, 0x16u8,
2398        0xA2u8, 0xC8u8, 0x65u8, 0xC1u8, 0x3Eu8, 0x36u8, 0x70u8, 0xD5u8, 0x18u8, 0xCBu8, 0x32u8,
2399        0x41u8, 0x85u8, 0xBAu8, 0x34u8, 0xE3u8, 0x57u8, 0x51u8, 0xCAu8, 0x40u8, 0x2Cu8, 0xDEu8,
2400        0xF9u8, 0xE2u8, 0x7Cu8, 0xA4u8, 0xB1u8, 0xC0u8, 0xE8u8, 0x91u8, 0x76u8, 0x05u8, 0xB0u8,
2401        0xFDu8, 0x6Fu8, 0x40u8, 0xEFu8, 0x8Cu8, 0x69u8, 0x39u8, 0xBCu8, 0xEDu8, 0xE5u8, 0xBFu8,
2402        0x48u8, 0x22u8, 0xBFu8, 0x37u8, 0x0Au8, 0xFBu8, 0xF2u8, 0xBFu8, 0xBCu8, 0xC0u8, 0xE0u8,
2403        0x57u8, 0xEDu8, 0x84u8, 0xBAu8, 0x3Fu8, 0x08u8, 0x5Bu8, 0xE3u8, 0x7Cu8, 0x9Cu8, 0x07u8,
2404        0x64u8, 0xBFu8, 0x1Du8, 0x6Au8, 0x77u8, 0xE1u8, 0xCBu8, 0xE4u8, 0x38u8, 0xBFu8, 0x55u8,
2405        0xCDu8, 0x99u8, 0x83u8, 0x32u8, 0x83u8, 0x09u8, 0x3Fu8, 0x4Cu8, 0x0Eu8, 0x8Eu8, 0x41u8,
2406        0xD6u8, 0x90u8, 0xC1u8, 0xBEu8, 0x8Eu8, 0xABu8, 0x3Eu8, 0x15u8, 0x3Fu8, 0xDFu8, 0x7Du8,
2407        0xBEu8, 0x41u8, 0x1Fu8, 0x25u8, 0x27u8, 0xFDu8, 0x78u8, 0x72u8, 0x41u8, 0xA4u8, 0xEAu8,
2408        0x80u8, 0xC3u8, 0xE3u8, 0x1Au8, 0x68u8, 0xC1u8, 0x58u8, 0xB7u8, 0xDEu8, 0x3Au8, 0xD6u8,
2409        0x1Au8, 0x21u8, 0xC1u8, 0xFDu8, 0xE2u8, 0x11u8, 0x6Du8, 0x54u8, 0x60u8, 0xF2u8, 0x40u8,
2410        0xF2u8, 0x08u8, 0x47u8, 0x2Eu8, 0xA3u8, 0xC8u8, 0x9Bu8, 0xC0u8, 0xC8u8, 0xFCu8, 0x7Bu8,
2411        0xA1u8, 0x8Bu8, 0x63u8, 0x61u8, 0xC0u8, 0x1Bu8, 0x40u8, 0x34u8, 0x6Fu8, 0xE3u8, 0x96u8,
2412        0x32u8, 0x40u8, 0x72u8, 0xAAu8, 0x1Du8, 0xF3u8, 0x3Cu8, 0x1Bu8, 0xEBu8, 0xBFu8, 0x5Cu8,
2413        0x6Au8, 0xF8u8, 0xC4u8, 0x59u8, 0xBDu8, 0x99u8, 0xBFu8, 0x50u8, 0xC6u8, 0x60u8, 0xF1u8,
2414        0xC1u8, 0xFCu8, 0x7Bu8, 0x3Fu8, 0x1Du8, 0xF9u8, 0x72u8, 0x29u8, 0xA4u8, 0x15u8, 0x3Eu8,
2415        0xBFu8, 0x25u8, 0xA1u8, 0x4Bu8, 0xEFu8, 0xFFu8, 0xD7u8, 0xA1u8, 0x3Eu8, 0xFCu8, 0x05u8,
2416        0xE8u8, 0x73u8, 0xF7u8, 0x2Eu8, 0xC7u8, 0x3Eu8, 0x03u8, 0xFBu8, 0x6Eu8, 0xE1u8, 0x8Eu8,
2417        0x50u8, 0x91u8, 0xBEu8, 0x8Cu8, 0x4Fu8, 0x14u8, 0x91u8, 0x00u8, 0xC6u8, 0x6Cu8, 0x41u8,
2418        0xFCu8, 0xF8u8, 0x98u8, 0xBDu8, 0x9Bu8, 0x23u8, 0x55u8, 0xC1u8, 0xE5u8, 0x4Au8, 0xF2u8,
2419        0x3Du8, 0xE3u8, 0x23u8, 0x1Au8, 0xC1u8, 0x86u8, 0xCFu8, 0xA8u8, 0x6Du8, 0xC5u8, 0xE9u8,
2420        0xE2u8, 0x40u8, 0xC0u8, 0xE3u8, 0x7Du8, 0xFDu8, 0x7Eu8, 0xA4u8, 0x7Du8, 0xC0u8, 0x04u8,
2421        0xFAu8, 0x72u8, 0xCEu8, 0xA5u8, 0x44u8, 0x59u8, 0xC0u8, 0xCEu8, 0x6Eu8, 0xA8u8, 0xBAu8,
2422        0xA7u8, 0xF9u8, 0x23u8, 0x40u8, 0x16u8, 0xACu8, 0x13u8, 0xE5u8, 0x2Fu8, 0xF2u8, 0xD4u8,
2423        0xBFu8, 0x7Du8, 0xC1u8, 0x9Bu8, 0x2Fu8, 0xECu8, 0xDDu8, 0x98u8, 0xBFu8, 0x96u8, 0x34u8,
2424        0xCDu8, 0x5Eu8, 0xC7u8, 0xF5u8, 0x6Fu8, 0x3Fu8, 0x72u8, 0x46u8, 0x74u8, 0xACu8, 0xFAu8,
2425        0xDDu8, 0x2Au8, 0xBFu8, 0x72u8, 0xF4u8, 0xF6u8, 0x3Eu8, 0x31u8, 0x3Du8, 0xD4u8, 0xBEu8,
2426        0x6Eu8, 0xE9u8, 0x5Eu8, 0xF2u8, 0x73u8, 0x6Bu8, 0xBCu8, 0x3Eu8, 0x1Bu8, 0xBAu8, 0xABu8,
2427        0xD0u8, 0x60u8, 0xE3u8, 0x80u8, 0xBEu8, 0x00u8, 0x00u8, 0x00u8, 0x16u8, 0xF3u8, 0x72u8,
2428        0x0Au8, 0xC2u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x18u8, 0x15u8, 0x41u8, 0x83u8,
2429        0x44u8, 0xD0u8, 0x0Au8, 0xF5u8, 0xDEu8, 0x8Bu8, 0xC1u8, 0x45u8, 0xD6u8, 0x52u8, 0xB0u8,
2430        0xA1u8, 0x77u8, 0x3Bu8, 0xC1u8, 0x36u8, 0xCFu8, 0x30u8, 0x9Au8, 0xDAu8, 0xE7u8, 0x30u8,
2431        0x41u8, 0x50u8, 0x54u8, 0x09u8, 0xEDu8, 0x95u8, 0x2Fu8, 0xD8u8, 0xC0u8, 0x1Eu8, 0x88u8,
2432        0x6Bu8, 0xF8u8, 0x34u8, 0x4Cu8, 0x89u8, 0xC0u8, 0x58u8, 0x00u8, 0xA6u8, 0x6Fu8, 0x44u8,
2433        0xC8u8, 0x58u8, 0x40u8, 0xBFu8, 0xD4u8, 0x95u8, 0x68u8, 0xFFu8, 0xFDu8, 0x18u8, 0xC0u8,
2434        0xF0u8, 0x03u8, 0xFFu8, 0x88u8, 0x8Eu8, 0xB3u8, 0xCBu8, 0x3Fu8, 0xAAu8, 0xCEu8, 0x34u8,
2435        0x5Du8, 0x7Fu8, 0x08u8, 0x5Bu8, 0x3Fu8, 0xF6u8, 0xEAu8, 0xCDu8, 0xEFu8, 0x05u8, 0x64u8,
2436        0x4Eu8, 0xBFu8, 0x20u8, 0x04u8, 0xEFu8, 0x7Cu8, 0xF5u8, 0xF8u8, 0x14u8, 0x3Fu8, 0x12u8,
2437        0x92u8, 0x05u8, 0x96u8, 0xC6u8, 0xACu8, 0xD0u8, 0xBEu8, 0x23u8, 0x55u8, 0x5Au8, 0xACu8,
2438        0x1Bu8, 0x7Fu8, 0x70u8, 0x3Eu8, 0x46u8, 0x7Eu8, 0x06u8, 0xE0u8, 0x51u8, 0x7Eu8, 0x45u8,
2439        0x3Eu8, 0x20u8, 0x48u8, 0xABu8, 0x3Eu8, 0xBAu8, 0x45u8, 0x5Eu8, 0xC1u8, 0xF6u8, 0xACu8,
2440        0x08u8, 0x07u8, 0x31u8, 0xDEu8, 0x6Au8, 0xC1u8, 0x84u8, 0xEBu8, 0x2Au8, 0x2Cu8, 0xF3u8,
2441        0xB6u8, 0x00u8, 0x41u8, 0xFFu8, 0xADu8, 0x62u8, 0xC2u8, 0x15u8, 0xFDu8, 0xE3u8, 0x40u8,
2442        0xA2u8, 0xC3u8, 0xA7u8, 0xC0u8, 0x17u8, 0xF1u8, 0x9Du8, 0xC0u8, 0x08u8, 0x48u8, 0x07u8,
2443        0x3Eu8, 0x2Du8, 0x74u8, 0x4Bu8, 0x40u8, 0x7Eu8, 0x47u8, 0x8Du8, 0xEDu8, 0xEFu8, 0xF4u8,
2444        0xECu8, 0x3Fu8, 0xC5u8, 0xE4u8, 0x8Au8, 0x29u8, 0xE2u8, 0x0Eu8, 0xD0u8, 0xBFu8, 0x89u8,
2445        0x03u8, 0x3Cu8, 0x15u8, 0x9Cu8, 0x93u8, 0x93u8, 0x3Fu8, 0xBAu8, 0xC7u8, 0x1Fu8, 0x4Cu8,
2446        0xFDu8, 0xDAu8, 0x4Bu8, 0xBFu8, 0xB4u8, 0x96u8, 0x84u8, 0x50u8, 0x2Fu8, 0xFEu8, 0xDFu8,
2447        0x3Eu8, 0x96u8, 0x2Bu8, 0x7Fu8, 0xD9u8, 0xBAu8, 0x76u8, 0xC5u8, 0x3Eu8, 0x68u8, 0xA5u8,
2448        0x6Du8, 0x4Fu8, 0xC6u8, 0x79u8, 0x92u8, 0xBEu8, 0xF8u8, 0x29u8, 0xA8u8, 0xD2u8, 0xCFu8,
2449        0xAAu8, 0x51u8, 0x3Eu8, 0x9Bu8, 0xA8u8, 0xB8u8, 0x31u8, 0x91u8, 0xF7u8, 0x3Cu8, 0x41u8,
2450        0xC8u8, 0xEDu8, 0x77u8, 0x7Eu8, 0x9Au8, 0xF0u8, 0x5Bu8, 0xC1u8, 0x8Eu8, 0x1Cu8, 0x62u8,
2451        0xD6u8, 0xE5u8, 0x22u8, 0xE5u8, 0xC0u8, 0x0Bu8, 0x3Au8, 0x19u8, 0xC8u8, 0x02u8, 0xDDu8,
2452        0xD7u8, 0x40u8, 0x74u8, 0x06u8, 0xC5u8, 0x0Du8, 0x3Au8, 0x49u8, 0x8Du8, 0xC0u8, 0xBFu8,
2453        0x46u8, 0x3Eu8, 0x59u8, 0x51u8, 0xE1u8, 0x32u8, 0x40u8, 0x45u8, 0x57u8, 0x29u8, 0x5Fu8,
2454        0x00u8, 0x38u8, 0xF2u8, 0x3Fu8, 0xE0u8, 0x10u8, 0x17u8, 0x21u8, 0x14u8, 0x0Au8, 0xC4u8,
2455        0xBFu8, 0x53u8, 0x05u8, 0xE7u8, 0x21u8, 0x99u8, 0x87u8, 0x84u8, 0x3Fu8, 0x04u8, 0x95u8,
2456        0x0Du8, 0x54u8, 0xB5u8, 0x55u8, 0x37u8, 0xBFu8, 0x25u8, 0x48u8, 0x50u8, 0xB7u8, 0x6Du8,
2457        0x2Au8, 0xD2u8, 0xBEu8, 0x4Du8, 0x7Fu8, 0x98u8, 0x21u8, 0x61u8, 0xE6u8, 0xBDu8, 0x3Eu8,
2458        0x69u8, 0x94u8, 0x3Eu8, 0x65u8, 0xD7u8, 0x94u8, 0x84u8, 0xBEu8, 0x9Bu8, 0x2Eu8, 0x23u8,
2459        0xD2u8, 0x9Cu8, 0x70u8, 0x40u8, 0x3Eu8, 0x00u8, 0x00u8, 0x00u8, 0xB6u8, 0x9Eu8, 0x72u8,
2460        0x0Au8, 0xC2u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x18u8, 0x15u8, 0x41u8, 0x57u8,
2461        0xA3u8, 0x86u8, 0x8Fu8, 0x8Au8, 0xD9u8, 0x89u8, 0xC1u8, 0xF1u8, 0xFAu8, 0x5Au8, 0x5Eu8,
2462        0xDDu8, 0xFAu8, 0x55u8, 0x41u8, 0xA9u8, 0x15u8, 0xFBu8, 0x45u8, 0x7Du8, 0xB9u8, 0x27u8,
2463        0x41u8, 0xB5u8, 0x1Bu8, 0xA7u8, 0xCCu8, 0x70u8, 0x6Au8, 0xDBu8, 0xC0u8, 0x1Du8, 0xADu8,
2464        0x33u8, 0x05u8, 0xF0u8, 0x68u8, 0x5Eu8, 0x40u8, 0xC4u8, 0xB8u8, 0x25u8, 0xC2u8, 0xDCu8,
2465        0x2Au8, 0x28u8, 0x40u8, 0x5Bu8, 0xA2u8, 0xD2u8, 0xA0u8, 0xB2u8, 0x72u8, 0xFAu8, 0xBFu8,
2466        0xE7u8, 0x8Eu8, 0x5Du8, 0x05u8, 0xB3u8, 0x5Au8, 0xB7u8, 0x3Fu8, 0xD8u8, 0xB9u8, 0x7Cu8,
2467        0xBBu8, 0xF9u8, 0x4Du8, 0x70u8, 0xBFu8, 0x14u8, 0x98u8, 0x53u8, 0x7Du8, 0x96u8, 0x12u8,
2468        0x1Du8, 0x3Fu8, 0x28u8, 0x68u8, 0x5Au8, 0x34u8, 0xA0u8, 0x88u8, 0x95u8, 0x3Eu8, 0x2Cu8,
2469        0xC2u8, 0x61u8, 0x50u8, 0xE6u8, 0xB5u8, 0x94u8, 0xBEu8, 0xC3u8, 0x38u8, 0xBAu8, 0x43u8,
2470        0x2Eu8, 0xA6u8, 0x5Bu8, 0x3Eu8, 0x32u8, 0x05u8, 0x22u8, 0x7Cu8, 0xB6u8, 0x50u8, 0x13u8,
2471        0xBEu8, 0x0Eu8, 0x78u8, 0x82u8, 0xFAu8, 0x67u8, 0x1Au8, 0x80u8, 0xC1u8, 0x82u8, 0x12u8,
2472        0xD2u8, 0x0Cu8, 0xC1u8, 0xDDu8, 0x65u8, 0xC1u8, 0x24u8, 0x02u8, 0xBCu8, 0xD8u8, 0x75u8,
2473        0x4Cu8, 0x1Du8, 0x41u8, 0xF0u8, 0xB0u8, 0xF1u8, 0x5Du8, 0x8Au8, 0x56u8, 0xD2u8, 0x40u8,
2474        0x42u8, 0xFAu8, 0xE3u8, 0xE1u8, 0x2Fu8, 0xA1u8, 0x8Cu8, 0xC0u8, 0xCDu8, 0xEAu8, 0x62u8,
2475        0xFEu8, 0xEDu8, 0xECu8, 0x42u8, 0x40u8, 0xDBu8, 0x67u8, 0x13u8, 0xAEu8, 0xFFu8, 0x1Du8,
2476        0xF3u8, 0xBFu8, 0xB2u8, 0x70u8, 0x77u8, 0x69u8, 0xE8u8, 0x58u8, 0x84u8, 0x3Fu8, 0x11u8,
2477        0x78u8, 0x77u8, 0x64u8, 0xB9u8, 0x48u8, 0x5Au8, 0x3Fu8, 0x68u8, 0xA8u8, 0xB0u8, 0xD9u8,
2478        0x64u8, 0x86u8, 0x25u8, 0xBFu8, 0x9Cu8, 0x66u8, 0x86u8, 0x78u8, 0x99u8, 0x5Du8, 0xE4u8,
2479        0x3Eu8, 0x91u8, 0x15u8, 0x27u8, 0x75u8, 0xE3u8, 0x7Eu8, 0x9Cu8, 0xBEu8, 0x1Cu8, 0x47u8,
2480        0xC3u8, 0x1Fu8, 0x2Fu8, 0x73u8, 0x49u8, 0x3Eu8, 0x1Fu8, 0x4Au8, 0x4Bu8, 0xA9u8, 0x52u8,
2481        0xD7u8, 0xFAu8, 0x3Du8, 0xC0u8, 0x9Fu8, 0xD4u8, 0xF9u8, 0x93u8, 0x82u8, 0x67u8, 0xC1u8,
2482        0x01u8, 0x10u8, 0x9Fu8, 0xEAu8, 0xF7u8, 0xA1u8, 0x59u8, 0xC1u8, 0xACu8, 0x5Au8, 0xF4u8,
2483        0x04u8, 0xDDu8, 0x4Au8, 0x05u8, 0x41u8, 0xC5u8, 0x1Cu8, 0xE1u8, 0x32u8, 0xEEu8, 0x51u8,
2484        0xC9u8, 0x40u8, 0x2Du8, 0xAAu8, 0xF7u8, 0xBEu8, 0x2Bu8, 0x57u8, 0x7Fu8, 0xC0u8, 0x51u8,
2485        0x4Fu8, 0xA6u8, 0xECu8, 0xD1u8, 0xEBu8, 0x32u8, 0x40u8, 0xB8u8, 0xC5u8, 0x12u8, 0xB5u8,
2486        0x6Du8, 0xAEu8, 0xDDu8, 0xBFu8, 0xD4u8, 0x48u8, 0xB7u8, 0x4Eu8, 0x8Fu8, 0x86u8, 0x71u8,
2487        0xBFu8, 0xBEu8, 0x56u8, 0xE8u8, 0x95u8, 0x10u8, 0xDEu8, 0x54u8, 0x3Fu8, 0xC8u8, 0x42u8,
2488        0xF7u8, 0x0Bu8, 0xEDu8, 0x03u8, 0x1Au8, 0xBFu8, 0xD6u8, 0xFBu8, 0xAAu8, 0x43u8, 0xC9u8,
2489        0x95u8, 0xD5u8, 0x3Eu8, 0xDEu8, 0xC9u8, 0xACu8, 0x7Bu8, 0xF8u8, 0x0Eu8, 0x8Au8, 0xBEu8,
2490        0xD0u8, 0xBCu8, 0x09u8, 0xCFu8, 0x99u8, 0xA4u8, 0x2Du8, 0x3Eu8, 0x7Bu8, 0xEAu8, 0x63u8,
2491        0x33u8, 0x3Fu8, 0x00u8, 0xE9u8, 0x3Du8, 0x00u8, 0x00u8, 0x00u8, 0x56u8, 0x4Au8, 0x72u8,
2492        0x0Au8, 0xC2u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x18u8, 0x15u8, 0x41u8, 0x5Cu8,
2493        0xDBu8, 0xB2u8, 0x1Cu8, 0x5Bu8, 0xE2u8, 0x81u8, 0xC1u8, 0xAAu8, 0x81u8, 0x63u8, 0x11u8,
2494        0x27u8, 0x5Cu8, 0x64u8, 0x41u8, 0x20u8, 0x14u8, 0x5Eu8, 0x4Bu8, 0x00u8, 0xC6u8, 0x1Bu8,
2495        0x41u8, 0xC6u8, 0x83u8, 0xE2u8, 0x99u8, 0xCFu8, 0x17u8, 0xD9u8, 0xC0u8, 0xDCu8, 0x2Bu8,
2496        0x25u8, 0x5Fu8, 0x4Au8, 0x74u8, 0x5Cu8, 0x40u8, 0xA0u8, 0x80u8, 0xD1u8, 0x47u8, 0xEFu8,
2497        0xB3u8, 0x1Fu8, 0xC0u8, 0xFBu8, 0x1Eu8, 0xC2u8, 0x02u8, 0xDCu8, 0x16u8, 0xD6u8, 0xBFu8,
2498        0x78u8, 0xDFu8, 0x40u8, 0xF9u8, 0x33u8, 0x1Au8, 0x92u8, 0x3Fu8, 0x04u8, 0xE9u8, 0xC9u8,
2499        0x3Cu8, 0x6Cu8, 0x41u8, 0x51u8, 0xBFu8, 0xA4u8, 0x07u8, 0x64u8, 0x4Du8, 0x05u8, 0xABu8,
2500        0x07u8, 0x3Fu8, 0xF8u8, 0x8Bu8, 0xA1u8, 0xC3u8, 0x79u8, 0x3Du8, 0xB8u8, 0xBEu8, 0x65u8,
2501        0x02u8, 0xD3u8, 0x06u8, 0xE0u8, 0x43u8, 0x66u8, 0x3Eu8, 0x3Au8, 0x21u8, 0x1Du8, 0xAAu8,
2502        0x84u8, 0xB0u8, 0x05u8, 0x3Eu8, 0xE1u8, 0xAFu8, 0x7Du8, 0xC6u8, 0x43u8, 0xB9u8, 0xD6u8,
2503        0x3Du8, 0xA5u8, 0xDEu8, 0x56u8, 0x72u8, 0xF7u8, 0xEEu8, 0x88u8, 0xC1u8, 0xC7u8, 0xCAu8,
2504        0xE3u8, 0x08u8, 0x68u8, 0x69u8, 0x5Au8, 0xC1u8, 0x15u8, 0x6Cu8, 0x6Du8, 0x05u8, 0x6Du8,
2505        0x76u8, 0x23u8, 0x41u8, 0xD6u8, 0x78u8, 0x8Du8, 0xF8u8, 0x98u8, 0x1Fu8, 0xC1u8, 0x40u8,
2506        0x34u8, 0x15u8, 0x73u8, 0x72u8, 0x35u8, 0x93u8, 0x79u8, 0xC0u8, 0xA8u8, 0x15u8, 0x3Du8,
2507        0xCDu8, 0x8Eu8, 0x99u8, 0x2Du8, 0x40u8, 0x40u8, 0x35u8, 0x50u8, 0x02u8, 0xFCu8, 0xFCu8,
2508        0xE6u8, 0xBFu8, 0xB1u8, 0x90u8, 0x86u8, 0x53u8, 0x5Fu8, 0x1Au8, 0x8Du8, 0x3Fu8, 0xECu8,
2509        0xC1u8, 0x7Du8, 0x8Bu8, 0xBBu8, 0xB5u8, 0x3Eu8, 0xBFu8, 0xBAu8, 0xFBu8, 0x28u8, 0xC8u8,
2510        0x77u8, 0xD8u8, 0xDFu8, 0xBEu8, 0x44u8, 0x80u8, 0x24u8, 0xE1u8, 0xC3u8, 0x18u8, 0xAAu8,
2511        0x3Eu8, 0xE1u8, 0x47u8, 0xFDu8, 0x8Du8, 0xBCu8, 0x6Eu8, 0x70u8, 0xBEu8, 0x90u8, 0xBBu8,
2512        0x1Au8, 0xEEu8, 0x97u8, 0xDCu8, 0x26u8, 0x3Eu8, 0x5Bu8, 0x74u8, 0xFDu8, 0xE3u8, 0x04u8,
2513        0xBEu8, 0x10u8, 0xBEu8, 0x25u8, 0x11u8, 0x1Fu8, 0x5Fu8, 0xCDu8, 0xD8u8, 0x76u8, 0xC1u8,
2514        0xACu8, 0x90u8, 0xEAu8, 0x7Fu8, 0x7Fu8, 0x5Cu8, 0x52u8, 0xC1u8, 0x10u8, 0xF8u8, 0x95u8,
2515        0x0Du8, 0xCAu8, 0xD8u8, 0x11u8, 0x41u8, 0x68u8, 0xEFu8, 0x20u8, 0x49u8, 0x3Fu8, 0xCEu8,
2516        0xBCu8, 0x40u8, 0x6Eu8, 0xB2u8, 0x3Eu8, 0xCCu8, 0x02u8, 0xC7u8, 0x6Cu8, 0xC0u8, 0x70u8,
2517        0x14u8, 0x43u8, 0x32u8, 0xF3u8, 0x73u8, 0x21u8, 0x40u8, 0x28u8, 0x1Eu8, 0x0Du8, 0x05u8,
2518        0x6Eu8, 0x34u8, 0xD6u8, 0xBFu8, 0xFAu8, 0x27u8, 0xC1u8, 0x3Eu8, 0xE4u8, 0x71u8, 0x77u8,
2519        0x3Fu8, 0xC4u8, 0xF7u8, 0x66u8, 0xAAu8, 0x9Cu8, 0x44u8, 0x22u8, 0xBFu8, 0xE3u8, 0xE1u8,
2520        0x1Eu8, 0x29u8, 0x9Fu8, 0x6Fu8, 0xE2u8, 0xBEu8, 0x6Bu8, 0xBEu8, 0x96u8, 0xF4u8, 0x21u8,
2521        0xFFu8, 0xA2u8, 0x3Eu8, 0x21u8, 0x59u8, 0xF2u8, 0x2Au8, 0x06u8, 0xDFu8, 0x63u8, 0xBEu8,
2522        0x13u8, 0x33u8, 0x3Fu8, 0xCDu8, 0xC4u8, 0xADu8, 0x1Du8, 0x3Eu8, 0x06u8, 0xF6u8, 0x9Fu8,
2523        0xE9u8, 0x30u8, 0x4Au8, 0x87u8, 0x3Du8, 0x00u8, 0x00u8, 0x00u8, 0xF6u8, 0xF5u8, 0x71u8,
2524        0x0Au8, 0xC2u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x18u8, 0x15u8, 0x41u8, 0xD8u8,
2525        0x85u8, 0xCFu8, 0xD1u8, 0x4Eu8, 0xB6u8, 0x69u8, 0xC1u8, 0xAFu8, 0x2Fu8, 0x62u8, 0xCFu8,
2526        0x86u8, 0xFBu8, 0x68u8, 0x41u8, 0x38u8, 0xB2u8, 0x47u8, 0xD8u8, 0x07u8, 0x77u8, 0x02u8,
2527        0x41u8, 0x86u8, 0x05u8, 0xC8u8, 0x23u8, 0x25u8, 0xE1u8, 0xD8u8, 0xC0u8, 0xCAu8, 0x3Bu8,
2528        0xECu8, 0x19u8, 0x32u8, 0x7Bu8, 0x59u8, 0xC0u8, 0x5Eu8, 0x37u8, 0xCEu8, 0x8Bu8, 0x96u8,
2529        0xC7u8, 0x29u8, 0xC0u8, 0x79u8, 0x8Cu8, 0x61u8, 0x55u8, 0x9Au8, 0x98u8, 0xC1u8, 0xBFu8,
2530        0xFDu8, 0x62u8, 0x9Eu8, 0xCEu8, 0xBBu8, 0xF0u8, 0x61u8, 0x3Fu8, 0x47u8, 0xB9u8, 0x0Au8,
2531        0x32u8, 0x00u8, 0xFFu8, 0x0Fu8, 0xBFu8, 0x0Du8, 0x87u8, 0x07u8, 0x6Bu8, 0x72u8, 0x2Fu8,
2532        0xF5u8, 0x3Eu8, 0xFFu8, 0x9Fu8, 0x6Bu8, 0x6Eu8, 0x0Eu8, 0xA5u8, 0x80u8, 0x3Eu8, 0xBDu8,
2533        0x0Eu8, 0x9Cu8, 0xC1u8, 0xACu8, 0x54u8, 0x62u8, 0x3Eu8, 0x6Eu8, 0x0Bu8, 0xCCu8, 0x45u8,
2534        0x4Cu8, 0xCEu8, 0xD0u8, 0x3Du8, 0x2Cu8, 0x75u8, 0x92u8, 0x7Au8, 0x86u8, 0xD2u8, 0xD2u8,
2535        0xBDu8, 0xD8u8, 0xBBu8, 0x4Du8, 0xFDu8, 0x0Du8, 0xFAu8, 0x8Cu8, 0xC1u8, 0x4Au8, 0xA7u8,
2536        0xD0u8, 0xAFu8, 0xA2u8, 0xD0u8, 0x36u8, 0xC1u8, 0x66u8, 0x2Eu8, 0x69u8, 0x0Eu8, 0x56u8,
2537        0xB0u8, 0x25u8, 0x41u8, 0x57u8, 0x4Du8, 0x96u8, 0x95u8, 0x29u8, 0x54u8, 0xADu8, 0x40u8,
2538        0x5Cu8, 0xECu8, 0xE6u8, 0x51u8, 0xF7u8, 0x6Bu8, 0x70u8, 0xC0u8, 0xB8u8, 0x41u8, 0x3Fu8,
2539        0x7Au8, 0xD4u8, 0x2Eu8, 0xE0u8, 0x3Fu8, 0x14u8, 0x9Fu8, 0x3Bu8, 0x6Au8, 0xB5u8, 0x9Au8,
2540        0xE1u8, 0xBFu8, 0x63u8, 0xEFu8, 0x81u8, 0xAAu8, 0x81u8, 0xA5u8, 0x65u8, 0xBFu8, 0x7Du8,
2541        0x5Eu8, 0x6Cu8, 0xE9u8, 0xF3u8, 0xD4u8, 0x42u8, 0xBFu8, 0xBBu8, 0xB8u8, 0x71u8, 0xC1u8,
2542        0x03u8, 0x92u8, 0xD2u8, 0xBEu8, 0x7Bu8, 0x06u8, 0xD1u8, 0x18u8, 0x16u8, 0x58u8, 0x8Eu8,
2543        0xBEu8, 0x61u8, 0xCBu8, 0xEEu8, 0xAAu8, 0x53u8, 0xD9u8, 0x21u8, 0xBEu8, 0xE9u8, 0xDAu8,
2544        0xAFu8, 0xA5u8, 0x77u8, 0x26u8, 0x21u8, 0x3Eu8, 0xBCu8, 0xBAu8, 0x96u8, 0xB0u8, 0xC5u8,
2545        0x5Bu8, 0xE8u8, 0xBDu8, 0xB8u8, 0x93u8, 0x3Fu8, 0x49u8, 0x9Du8, 0x90u8, 0x7Du8, 0xC1u8,
2546        0xA7u8, 0x10u8, 0x9Au8, 0x5Fu8, 0x92u8, 0x92u8, 0x40u8, 0xC1u8, 0xFBu8, 0x91u8, 0xF6u8,
2547        0xBFu8, 0x1Du8, 0x2Bu8, 0x16u8, 0x41u8, 0x04u8, 0x0Bu8, 0xBDu8, 0xF7u8, 0x45u8, 0x45u8,
2548        0xB2u8, 0x40u8, 0xEBu8, 0xD7u8, 0xE3u8, 0xEEu8, 0x62u8, 0x2Eu8, 0x60u8, 0xC0u8, 0x96u8,
2549        0xF9u8, 0xCDu8, 0x55u8, 0x1Eu8, 0xF8u8, 0xF9u8, 0x3Fu8, 0x09u8, 0xCAu8, 0xFEu8, 0x19u8,
2550        0x51u8, 0xDBu8, 0xD1u8, 0xBFu8, 0x8Fu8, 0x28u8, 0xD4u8, 0x76u8, 0x1Du8, 0xDCu8, 0x5Au8,
2551        0xBFu8, 0xF4u8, 0x13u8, 0xA7u8, 0xFFu8, 0x83u8, 0xABu8, 0x33u8, 0xBFu8, 0xFAu8, 0x94u8,
2552        0x72u8, 0x7Du8, 0xEFu8, 0xCDu8, 0xD2u8, 0xBEu8, 0x62u8, 0xD9u8, 0x59u8, 0xD1u8, 0x98u8,
2553        0xD3u8, 0x81u8, 0xBEu8, 0x41u8, 0x4Eu8, 0xE8u8, 0xE1u8, 0xFDu8, 0x1Fu8, 0x34u8, 0xBEu8,
2554        0x3Au8, 0x5Cu8, 0x3Fu8, 0xAFu8, 0x17u8, 0xBFu8, 0xECu8, 0x3Du8, 0xD3u8, 0x50u8, 0x63u8,
2555        0xA0u8, 0xD3u8, 0xD3u8, 0xDBu8, 0x3Du8, 0x00u8, 0x00u8, 0x00u8, 0x96u8, 0xA1u8, 0x71u8,
2556        0x0Au8, 0xC2u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x18u8, 0x15u8, 0x41u8, 0xABu8,
2557        0xAFu8, 0x7Bu8, 0xC0u8, 0xBAu8, 0xA6u8, 0x68u8, 0x41u8, 0x87u8, 0xDCu8, 0xD9u8, 0x38u8,
2558        0xAFu8, 0xDDu8, 0x68u8, 0x41u8, 0x3Fu8, 0x44u8, 0x95u8, 0x65u8, 0x55u8, 0x26u8, 0x05u8,
2559        0xC1u8, 0xE6u8, 0x69u8, 0x86u8, 0xD6u8, 0xA3u8, 0xA2u8, 0xDCu8, 0xC0u8, 0xC8u8, 0x84u8,
2560        0x04u8, 0xDAu8, 0x71u8, 0x1Au8, 0x78u8, 0xC0u8, 0x2Du8, 0x61u8, 0x44u8, 0x07u8, 0xD2u8,
2561        0xC5u8, 0x2Du8, 0xC0u8, 0x6Au8, 0x8Au8, 0x26u8, 0xE5u8, 0xCAu8, 0x6Cu8, 0xA0u8, 0x3Fu8,
2562        0x03u8, 0x27u8, 0xAFu8, 0xE3u8, 0xAEu8, 0xADu8, 0x90u8, 0x3Fu8, 0xCAu8, 0x58u8, 0x26u8,
2563        0x13u8, 0x41u8, 0xB7u8, 0x53u8, 0x3Fu8, 0x7Fu8, 0x66u8, 0x73u8, 0x2Au8, 0xF5u8, 0x3Du8,
2564        0x11u8, 0x3Fu8, 0xB3u8, 0xF8u8, 0xE9u8, 0x5Du8, 0x8Au8, 0x68u8, 0xC5u8, 0x3Eu8, 0xBEu8,
2565        0x44u8, 0x8Cu8, 0xDDu8, 0x90u8, 0x4Bu8, 0x77u8, 0x3Eu8, 0x5Bu8, 0xF2u8, 0x92u8, 0x50u8,
2566        0xF9u8, 0xC7u8, 0x18u8, 0x3Eu8, 0xFDu8, 0x39u8, 0xC0u8, 0x4Fu8, 0x5Eu8, 0x50u8, 0xD7u8,
2567        0x3Du8, 0xB5u8, 0xB6u8, 0x9Bu8, 0x2Bu8, 0x1Du8, 0xA6u8, 0x8Bu8, 0xC1u8, 0x6Eu8, 0x0Cu8,
2568        0x8Eu8, 0x36u8, 0x47u8, 0x62u8, 0x50u8, 0x41u8, 0xFDu8, 0x38u8, 0xD3u8, 0x57u8, 0x64u8,
2569        0x3Au8, 0x26u8, 0x41u8, 0x89u8, 0x68u8, 0xC5u8, 0x11u8, 0x6Du8, 0xFDu8, 0x91u8, 0xC0u8,
2570        0x7Fu8, 0xF9u8, 0x96u8, 0x98u8, 0xC4u8, 0x23u8, 0x79u8, 0xC0u8, 0x3Au8, 0x4Eu8, 0xD8u8,
2571        0x7Fu8, 0xF0u8, 0xBBu8, 0x2Fu8, 0xC0u8, 0xFFu8, 0xADu8, 0xD7u8, 0x4Eu8, 0xEBu8, 0x50u8,
2572        0xEDu8, 0xBFu8, 0xDCu8, 0x25u8, 0xB6u8, 0x7Eu8, 0x67u8, 0x7Bu8, 0x99u8, 0xBFu8, 0x8Bu8,
2573        0xF1u8, 0x78u8, 0xD2u8, 0x61u8, 0xBDu8, 0x4Au8, 0xBFu8, 0x85u8, 0x6Au8, 0x1Fu8, 0xE7u8,
2574        0x1Du8, 0xD8u8, 0xC3u8, 0xBEu8, 0x7Cu8, 0x37u8, 0xD7u8, 0x75u8, 0xCFu8, 0x68u8, 0xAEu8,
2575        0x3Eu8, 0x60u8, 0x42u8, 0x77u8, 0x14u8, 0x80u8, 0xB9u8, 0x76u8, 0x3Eu8, 0x51u8, 0xC2u8,
2576        0xBDu8, 0x3Eu8, 0xE0u8, 0x5Du8, 0x32u8, 0x3Eu8, 0x50u8, 0x94u8, 0xDBu8, 0xA6u8, 0x31u8,
2577        0xA1u8, 0x06u8, 0x3Eu8, 0x35u8, 0x1Eu8, 0xEBu8, 0x9Fu8, 0x88u8, 0xCAu8, 0x7Eu8, 0xC1u8,
2578        0x97u8, 0xF3u8, 0xA0u8, 0x66u8, 0x98u8, 0x28u8, 0x2Cu8, 0x41u8, 0x97u8, 0xA8u8, 0x28u8,
2579        0x69u8, 0xC6u8, 0xD2u8, 0x18u8, 0x41u8, 0xCCu8, 0xDAu8, 0x42u8, 0xFBu8, 0xF9u8, 0x40u8,
2580        0xA3u8, 0x40u8, 0xBCu8, 0x7Bu8, 0x08u8, 0xCAu8, 0x09u8, 0xC2u8, 0x65u8, 0xC0u8, 0x7Eu8,
2581        0xFFu8, 0xB6u8, 0x8Fu8, 0x38u8, 0x9Au8, 0x1Bu8, 0xC0u8, 0x11u8, 0x8Bu8, 0x88u8, 0x29u8,
2582        0x7Cu8, 0x7Du8, 0xDFu8, 0xBFu8, 0xDBu8, 0xA2u8, 0x1Au8, 0x9Cu8, 0xC6u8, 0xAFu8, 0x8Eu8,
2583        0xBFu8, 0xBAu8, 0x6Cu8, 0xC5u8, 0xFDu8, 0x2Fu8, 0x67u8, 0x42u8, 0xBFu8, 0xB2u8, 0x5Cu8,
2584        0xD0u8, 0xDDu8, 0x60u8, 0x20u8, 0xE1u8, 0xBEu8, 0xC2u8, 0x57u8, 0x43u8, 0x75u8, 0x8Bu8,
2585        0xF9u8, 0x8Cu8, 0x3Eu8, 0xA4u8, 0xEBu8, 0x54u8, 0xB2u8, 0x6Au8, 0x69u8, 0x63u8, 0x3Eu8,
2586        0x78u8, 0xD1u8, 0x36u8, 0x30u8, 0xEAu8, 0x34u8, 0x20u8, 0x3Eu8, 0x94u8, 0xBEu8, 0xCBu8,
2587        0x79u8, 0x94u8, 0x90u8, 0xD2u8, 0x3Du8, 0x00u8, 0x00u8, 0x00u8, 0x36u8, 0x4Du8, 0x71u8,
2588        0x0Au8, 0xC2u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x18u8, 0x15u8, 0x41u8, 0x69u8,
2589        0x96u8, 0x0Bu8, 0x34u8, 0x8Fu8, 0x5Cu8, 0x81u8, 0x41u8, 0x19u8, 0x66u8, 0x8Cu8, 0xE2u8,
2590        0x19u8, 0x4Cu8, 0x63u8, 0x41u8, 0x82u8, 0x19u8, 0xBCu8, 0xD6u8, 0x1Eu8, 0x6Eu8, 0x21u8,
2591        0xC1u8, 0xBEu8, 0x9Fu8, 0x86u8, 0xBCu8, 0x65u8, 0x57u8, 0xE2u8, 0xC0u8, 0x50u8, 0x1Cu8,
2592        0xFEu8, 0xE0u8, 0x3Eu8, 0xDEu8, 0x82u8, 0xC0u8, 0x46u8, 0xDBu8, 0xEAu8, 0x8Cu8, 0xAFu8,
2593        0x54u8, 0xF3u8, 0xBFu8, 0x90u8, 0x39u8, 0xD0u8, 0x89u8, 0xA4u8, 0x16u8, 0xF9u8, 0x3Fu8,
2594        0xFDu8, 0x95u8, 0x6Fu8, 0xB0u8, 0x69u8, 0xACu8, 0xBEu8, 0x3Fu8, 0x16u8, 0xE6u8, 0x27u8,
2595        0xF4u8, 0xBBu8, 0xA0u8, 0x79u8, 0x3Fu8, 0x17u8, 0x87u8, 0x3Eu8, 0xB3u8, 0xA5u8, 0x21u8,
2596        0x2Du8, 0x3Fu8, 0xD3u8, 0x4Au8, 0xB2u8, 0x83u8, 0x1Au8, 0xE5u8, 0xC3u8, 0x3Eu8, 0x60u8,
2597        0x16u8, 0x8Du8, 0x53u8, 0x6Eu8, 0x84u8, 0x9Bu8, 0xBEu8, 0xCCu8, 0x7Fu8, 0x8Fu8, 0xECu8,
2598        0x07u8, 0xCCu8, 0x66u8, 0xBEu8, 0x69u8, 0x1Eu8, 0x97u8, 0x04u8, 0xDBu8, 0x63u8, 0x22u8,
2599        0xBEu8, 0xD4u8, 0xA6u8, 0xE6u8, 0x51u8, 0xA7u8, 0xD7u8, 0x84u8, 0xC1u8, 0xDCu8, 0x8Fu8,
2600        0x84u8, 0xF1u8, 0xAFu8, 0xEDu8, 0x62u8, 0x41u8, 0x2Du8, 0xFFu8, 0x03u8, 0xA7u8, 0xB9u8,
2601        0x2Au8, 0x24u8, 0x41u8, 0xF1u8, 0xE3u8, 0x44u8, 0x77u8, 0x78u8, 0xABu8, 0xC6u8, 0xC0u8,
2602        0x54u8, 0xA7u8, 0x83u8, 0x27u8, 0x78u8, 0x8Du8, 0x8Fu8, 0xC0u8, 0x46u8, 0xD5u8, 0x6Au8,
2603        0x57u8, 0xF3u8, 0x5Au8, 0x48u8, 0xC0u8, 0x1Cu8, 0x67u8, 0xA2u8, 0x5Bu8, 0xB0u8, 0xEDu8,
2604        0xFDu8, 0xBFu8, 0x1Eu8, 0x0Eu8, 0x41u8, 0x8Du8, 0x9Bu8, 0x59u8, 0xA0u8, 0xBFu8, 0xEFu8,
2605        0x30u8, 0xFEu8, 0x72u8, 0x5Au8, 0x1Cu8, 0x5Bu8, 0x3Fu8, 0xD5u8, 0x72u8, 0x75u8, 0xA0u8,
2606        0x0Du8, 0x51u8, 0x2Eu8, 0x3Fu8, 0x31u8, 0x4Cu8, 0xD7u8, 0xFFu8, 0xE2u8, 0x32u8, 0xF0u8,
2607        0x3Eu8, 0x5Au8, 0xA6u8, 0x06u8, 0x8Du8, 0x61u8, 0x45u8, 0xA8u8, 0x3Eu8, 0x26u8, 0xB8u8,
2608        0x91u8, 0xABu8, 0xDAu8, 0xA7u8, 0x54u8, 0x3Eu8, 0x21u8, 0x86u8, 0x5Bu8, 0x3Cu8, 0xBFu8,
2609        0x3Au8, 0x00u8, 0xBEu8, 0x8Fu8, 0xB0u8, 0x51u8, 0xEFu8, 0x66u8, 0xE1u8, 0x79u8, 0xC1u8,
2610        0x89u8, 0x54u8, 0x05u8, 0x57u8, 0x97u8, 0x24u8, 0x50u8, 0x41u8, 0xA7u8, 0x5Eu8, 0x33u8,
2611        0xEDu8, 0x98u8, 0x2Cu8, 0x19u8, 0x41u8, 0xC3u8, 0x7Bu8, 0x79u8, 0x84u8, 0xBAu8, 0x8Eu8,
2612        0xA1u8, 0xC0u8, 0xADu8, 0xFBu8, 0xB3u8, 0x62u8, 0xD5u8, 0xB2u8, 0x7Du8, 0xC0u8, 0x97u8,
2613        0xDEu8, 0x5Eu8, 0x31u8, 0x04u8, 0xDBu8, 0x39u8, 0xC0u8, 0x40u8, 0x1Bu8, 0x6Eu8, 0x8Eu8,
2614        0x18u8, 0x99u8, 0xF2u8, 0xBFu8, 0xDEu8, 0x47u8, 0x4Cu8, 0x81u8, 0xFCu8, 0x52u8, 0x9Eu8,
2615        0xBFu8, 0xADu8, 0x20u8, 0x5Bu8, 0x4Bu8, 0xBBu8, 0x95u8, 0x2Du8, 0x3Fu8, 0x6Bu8, 0xAFu8,
2616        0x89u8, 0x94u8, 0x9Au8, 0x39u8, 0x1Au8, 0x3Fu8, 0x46u8, 0x4Eu8, 0xFAu8, 0x9Bu8, 0xADu8,
2617        0xC1u8, 0xE0u8, 0x3Eu8, 0x84u8, 0x49u8, 0xBDu8, 0x3Bu8, 0x53u8, 0xC7u8, 0x9Cu8, 0x3Eu8,
2618        0xD7u8, 0xA2u8, 0xB9u8, 0x5Cu8, 0x07u8, 0xEDu8, 0x50u8, 0x3Eu8, 0xB4u8, 0x98u8, 0xECu8,
2619        0x71u8, 0x98u8, 0xA1u8, 0xF3u8, 0xBDu8, 0x00u8, 0x00u8, 0x00u8, 0xD6u8, 0xF8u8, 0x70u8,
2620        0x0Au8, 0xC2u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x18u8, 0x15u8, 0x41u8, 0x3Eu8,
2621        0x9Eu8, 0xB1u8, 0x50u8, 0xE3u8, 0x19u8, 0x88u8, 0x41u8, 0x22u8, 0xFAu8, 0xD9u8, 0xF1u8,
2622        0x1Du8, 0x77u8, 0x4Bu8, 0x41u8, 0x63u8, 0xD5u8, 0xE5u8, 0x5Cu8, 0xBBu8, 0x52u8, 0x30u8,
2623        0xC1u8, 0x6Du8, 0x6Cu8, 0xE6u8, 0x29u8, 0x23u8, 0x5Bu8, 0xE5u8, 0xC0u8, 0x3Bu8, 0xE2u8,
2624        0xE4u8, 0x1Au8, 0x2Fu8, 0x9Fu8, 0x64u8, 0x40u8, 0x25u8, 0x4Fu8, 0x44u8, 0x52u8, 0x04u8,
2625        0x5Au8, 0x5Au8, 0x40u8, 0x38u8, 0xE7u8, 0xB5u8, 0x64u8, 0x01u8, 0x1Cu8, 0x21u8, 0x40u8,
2626        0x04u8, 0xC4u8, 0x36u8, 0x74u8, 0xFBu8, 0x6Au8, 0xD7u8, 0x3Fu8, 0x3Eu8, 0xF7u8, 0xC1u8,
2627        0xF4u8, 0x20u8, 0x1Fu8, 0x4Au8, 0x3Fu8, 0x4Bu8, 0xEBu8, 0x85u8, 0xE8u8, 0x82u8, 0xA5u8,
2628        0x56u8, 0xBFu8, 0xFEu8, 0x46u8, 0x18u8, 0x9Du8, 0x60u8, 0x6Au8, 0x21u8, 0xBFu8, 0x18u8,
2629        0xA9u8, 0xACu8, 0x55u8, 0x80u8, 0x2Bu8, 0xDCu8, 0xBEu8, 0xA0u8, 0x92u8, 0xA9u8, 0xC8u8,
2630        0xAFu8, 0xE2u8, 0x6Fu8, 0xBEu8, 0x57u8, 0x09u8, 0xAFu8, 0x63u8, 0x57u8, 0xC5u8, 0x59u8,
2631        0x3Eu8, 0x7Du8, 0x98u8, 0x76u8, 0x1Bu8, 0x64u8, 0x60u8, 0x72u8, 0xC1u8, 0x09u8, 0xFAu8,
2632        0x9Eu8, 0x86u8, 0xBFu8, 0x40u8, 0x6Bu8, 0x41u8, 0xD5u8, 0x54u8, 0x20u8, 0xD9u8, 0xFDu8,
2633        0x74u8, 0x17u8, 0x41u8, 0xD3u8, 0x20u8, 0x3Fu8, 0xD1u8, 0xA4u8, 0x92u8, 0xE2u8, 0xC0u8,
2634        0x7Au8, 0x16u8, 0x5Fu8, 0x1Au8, 0x46u8, 0xE9u8, 0xA2u8, 0xC0u8, 0x01u8, 0x16u8, 0x61u8,
2635        0xDFu8, 0xF5u8, 0x2Bu8, 0x55u8, 0xC0u8, 0x71u8, 0x4Bu8, 0xECu8, 0xA4u8, 0x01u8, 0x48u8,
2636        0xDEu8, 0x3Fu8, 0xCAu8, 0xBCu8, 0x3Au8, 0x41u8, 0xABu8, 0xB9u8, 0xD5u8, 0x3Fu8, 0xA9u8,
2637        0x9Au8, 0xA3u8, 0xC0u8, 0x60u8, 0x2Cu8, 0x9Du8, 0x3Fu8, 0xADu8, 0x50u8, 0x12u8, 0x09u8,
2638        0xC9u8, 0xE2u8, 0x54u8, 0x3Fu8, 0x35u8, 0xB4u8, 0x41u8, 0xF9u8, 0x92u8, 0xB2u8, 0xB4u8,
2639        0x3Eu8, 0x32u8, 0xE8u8, 0xC8u8, 0xF1u8, 0x5Du8, 0x77u8, 0xD6u8, 0xBEu8, 0x02u8, 0x67u8,
2640        0x11u8, 0xD8u8, 0x4Du8, 0x89u8, 0xA1u8, 0xBEu8, 0x77u8, 0x4Eu8, 0xA7u8, 0xE0u8, 0xBEu8,
2641        0x3Du8, 0x5Du8, 0xBEu8, 0xF7u8, 0x36u8, 0x06u8, 0x33u8, 0x52u8, 0xB9u8, 0x6Du8, 0xC1u8,
2642        0xA4u8, 0xF3u8, 0x31u8, 0xF5u8, 0x40u8, 0xA2u8, 0x5Bu8, 0x41u8, 0xB2u8, 0xA3u8, 0x01u8,
2643        0x84u8, 0x01u8, 0x5Eu8, 0x13u8, 0x41u8, 0x2Eu8, 0xB5u8, 0x60u8, 0xF2u8, 0x8Fu8, 0xA8u8,
2644        0xCEu8, 0xC0u8, 0x83u8, 0xB5u8, 0x53u8, 0x60u8, 0xFDu8, 0x71u8, 0x94u8, 0xC0u8, 0x10u8,
2645        0x05u8, 0x04u8, 0x5Au8, 0x9Au8, 0x1Eu8, 0x4Cu8, 0xC0u8, 0x0Cu8, 0x9Du8, 0xECu8, 0x2Bu8,
2646        0x59u8, 0xAAu8, 0xE4u8, 0xBFu8, 0x00u8, 0xF3u8, 0xEFu8, 0xDAu8, 0x61u8, 0x42u8, 0xC2u8,
2647        0x3Fu8, 0x99u8, 0x80u8, 0xC1u8, 0x14u8, 0x70u8, 0xF3u8, 0x8Eu8, 0x3Fu8, 0xF3u8, 0x07u8,
2648        0xA2u8, 0xE6u8, 0x5Du8, 0x09u8, 0x4Bu8, 0x3Fu8, 0x29u8, 0xB8u8, 0x3Cu8, 0xDFu8, 0x7Fu8,
2649        0xA2u8, 0xEEu8, 0x3Eu8, 0xDAu8, 0x9Du8, 0xD5u8, 0x78u8, 0x48u8, 0x0Du8, 0xC2u8, 0xBEu8,
2650        0x09u8, 0xE0u8, 0x60u8, 0xD1u8, 0x5Cu8, 0x42u8, 0x92u8, 0xBEu8, 0x48u8, 0x45u8, 0x45u8,
2651        0x7Au8, 0xC7u8, 0x29u8, 0x52u8, 0xBEu8, 0x00u8, 0x00u8, 0x00u8, 0x76u8, 0xA4u8, 0x70u8,
2652        0x0Au8, 0xC2u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x18u8, 0x15u8, 0x41u8, 0x69u8,
2653        0x53u8, 0x15u8, 0xCBu8, 0x9Au8, 0xC0u8, 0x86u8, 0x41u8, 0x8Cu8, 0x1Cu8, 0x99u8, 0x39u8,
2654        0x43u8, 0xCFu8, 0x59u8, 0xC1u8, 0x05u8, 0x48u8, 0x1Fu8, 0x84u8, 0x06u8, 0x5Du8, 0x36u8,
2655        0xC1u8, 0xBAu8, 0x81u8, 0x5Fu8, 0xD6u8, 0xEFu8, 0xAAu8, 0xC4u8, 0xC0u8, 0x0Cu8, 0xE2u8,
2656        0x52u8, 0x28u8, 0x36u8, 0xC7u8, 0xB2u8, 0x40u8, 0xDEu8, 0x99u8, 0x36u8, 0x3Bu8, 0x89u8,
2657        0x7Fu8, 0x75u8, 0x40u8, 0x5Au8, 0xD6u8, 0x8Du8, 0x75u8, 0xBCu8, 0x65u8, 0x03u8, 0x40u8,
2658        0x91u8, 0x13u8, 0x66u8, 0x9Fu8, 0xF6u8, 0x60u8, 0xFAu8, 0xBFu8, 0xBBu8, 0x8Du8, 0xC9u8,
2659        0x32u8, 0x5Au8, 0x6Cu8, 0xC2u8, 0xBFu8, 0x85u8, 0x37u8, 0x4Du8, 0x87u8, 0x76u8, 0x35u8,
2660        0x5Bu8, 0xBFu8, 0x92u8, 0x52u8, 0x09u8, 0x8Cu8, 0xEBu8, 0x61u8, 0x49u8, 0x3Fu8, 0xFFu8,
2661        0x90u8, 0x33u8, 0x5Eu8, 0x7Bu8, 0xE6u8, 0x13u8, 0x3Fu8, 0x4Cu8, 0xF1u8, 0x8Cu8, 0x68u8,
2662        0x87u8, 0x6Du8, 0xB4u8, 0x3Eu8, 0xB5u8, 0x38u8, 0x9Bu8, 0x68u8, 0xE1u8, 0x0Du8, 0x9Cu8,
2663        0xBEu8, 0x09u8, 0xC6u8, 0x8Eu8, 0x2Au8, 0x72u8, 0xD8u8, 0x63u8, 0x41u8, 0x56u8, 0x7Du8,
2664        0x26u8, 0xF6u8, 0x57u8, 0x30u8, 0x6Cu8, 0x41u8, 0xC4u8, 0xC1u8, 0xECu8, 0xCFu8, 0x4Au8,
2665        0x02u8, 0x15u8, 0xC1u8, 0xC8u8, 0x61u8, 0x2Fu8, 0xE2u8, 0x2Cu8, 0x90u8, 0xF4u8, 0xC0u8,
2666        0x66u8, 0x9Fu8, 0x66u8, 0x77u8, 0xC1u8, 0x2Fu8, 0xA4u8, 0xC0u8, 0x8Cu8, 0x6Au8, 0x1Fu8,
2667        0x82u8, 0xF8u8, 0x99u8, 0x64u8, 0x40u8, 0xC2u8, 0xE6u8, 0x4Cu8, 0x52u8, 0x2Eu8, 0x4Eu8,
2668        0x38u8, 0x40u8, 0x8Fu8, 0x98u8, 0x63u8, 0x7Eu8, 0x17u8, 0x7Fu8, 0xEFu8, 0x3Fu8, 0x6Cu8,
2669        0xBDu8, 0x2Fu8, 0xCEu8, 0xC7u8, 0x79u8, 0xAFu8, 0xBFu8, 0xBBu8, 0x07u8, 0x04u8, 0xCAu8,
2670        0x23u8, 0x68u8, 0x86u8, 0xBFu8, 0x31u8, 0x9Cu8, 0x35u8, 0x39u8, 0x91u8, 0xDEu8, 0x40u8,
2671        0xBFu8, 0x39u8, 0xC9u8, 0xAFu8, 0xECu8, 0x80u8, 0xE5u8, 0xFDu8, 0x3Eu8, 0xC2u8, 0x28u8,
2672        0xDFu8, 0xCCu8, 0x08u8, 0xB9u8, 0xD8u8, 0x3Eu8, 0x98u8, 0x51u8, 0x00u8, 0xFFu8, 0x0Fu8,
2673        0xF1u8, 0x94u8, 0x3Eu8, 0xF9u8, 0xA4u8, 0xD9u8, 0x8Cu8, 0xDDu8, 0x8Cu8, 0x20u8, 0x41u8,
2674        0x0Eu8, 0x0Au8, 0xBAu8, 0x0Du8, 0x55u8, 0x64u8, 0x60u8, 0x41u8, 0x4Du8, 0xF0u8, 0x61u8,
2675        0x14u8, 0xCCu8, 0x07u8, 0xDDu8, 0xC0u8, 0xBAu8, 0x28u8, 0xBCu8, 0xF8u8, 0xFBu8, 0x64u8,
2676        0xE5u8, 0xC0u8, 0x55u8, 0x35u8, 0x9Fu8, 0xF2u8, 0xDDu8, 0x6Bu8, 0x9Du8, 0xC0u8, 0xDBu8,
2677        0xE1u8, 0xA7u8, 0x81u8, 0x04u8, 0xE6u8, 0x49u8, 0x40u8, 0x26u8, 0x14u8, 0xC6u8, 0xDBu8,
2678        0x86u8, 0x6Bu8, 0x29u8, 0x40u8, 0x71u8, 0xA8u8, 0x37u8, 0x1Du8, 0xE4u8, 0x56u8, 0xE6u8,
2679        0x3Fu8, 0x6Bu8, 0xA0u8, 0x8Au8, 0x7Du8, 0xADu8, 0x1Au8, 0x92u8, 0xBFu8, 0xE0u8, 0xA4u8,
2680        0xD6u8, 0xC0u8, 0x86u8, 0x30u8, 0x77u8, 0xBFu8, 0x3Cu8, 0x75u8, 0xC0u8, 0x52u8, 0x88u8,
2681        0x53u8, 0x37u8, 0xBFu8, 0xC0u8, 0x7Au8, 0xEDu8, 0x35u8, 0x8Cu8, 0x5Bu8, 0xDEu8, 0x3Eu8,
2682        0x09u8, 0xB1u8, 0xBCu8, 0x74u8, 0x49u8, 0x4Du8, 0xC9u8, 0x3Eu8, 0x12u8, 0x94u8, 0xB3u8,
2683        0xC5u8, 0xC9u8, 0x40u8, 0x8Cu8, 0x3Eu8, 0x00u8, 0x00u8, 0x00u8, 0x16u8, 0x50u8, 0x70u8,
2684        0x0Au8, 0xC2u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x18u8, 0x15u8, 0x41u8, 0x72u8,
2685        0x89u8, 0xABu8, 0x6Fu8, 0x60u8, 0x31u8, 0x76u8, 0x41u8, 0x96u8, 0x3Cu8, 0xE7u8, 0xC5u8,
2686        0x10u8, 0x75u8, 0x70u8, 0xC1u8, 0xF0u8, 0x6Fu8, 0x81u8, 0xF3u8, 0xCDu8, 0x21u8, 0x2Du8,
2687        0xC1u8, 0xEAu8, 0x0Fu8, 0x3Fu8, 0xE2u8, 0xDBu8, 0xDEu8, 0xF8u8, 0x40u8, 0x94u8, 0x68u8,
2688        0xE4u8, 0x62u8, 0xDDu8, 0x72u8, 0xBAu8, 0x40u8, 0x89u8, 0x2Bu8, 0xEFu8, 0xDDu8, 0x8Eu8,
2689        0x45u8, 0x79u8, 0xC0u8, 0x3Eu8, 0xB6u8, 0x45u8, 0x5Du8, 0xAFu8, 0x7Fu8, 0x4Au8, 0xC0u8,
2690        0x0Au8, 0x1Bu8, 0xB9u8, 0xA0u8, 0x14u8, 0xE8u8, 0xF5u8, 0x3Fu8, 0xBBu8, 0x90u8, 0x97u8,
2691        0x91u8, 0xC6u8, 0x1Cu8, 0xDCu8, 0x3Fu8, 0x23u8, 0x27u8, 0xD8u8, 0x51u8, 0xF1u8, 0x0Eu8,
2692        0x5Eu8, 0x3Fu8, 0x72u8, 0xADu8, 0x46u8, 0x4Eu8, 0xB2u8, 0x9Bu8, 0x6Du8, 0xBFu8, 0xA1u8,
2693        0x74u8, 0x7Eu8, 0x2Au8, 0x8Bu8, 0x5Fu8, 0x20u8, 0xBFu8, 0x83u8, 0xA0u8, 0x72u8, 0x71u8,
2694        0xBCu8, 0xA7u8, 0xFDu8, 0x3Eu8, 0x39u8, 0xD1u8, 0x84u8, 0x8Au8, 0xE2u8, 0xFFu8, 0xC0u8,
2695        0x3Eu8, 0x6Au8, 0xBBu8, 0x39u8, 0x7Du8, 0xE8u8, 0x1Fu8, 0x80u8, 0x41u8, 0x30u8, 0xA8u8,
2696        0x84u8, 0x63u8, 0x56u8, 0x8Fu8, 0x5Du8, 0x41u8, 0x72u8, 0xC9u8, 0x0Du8, 0xD3u8, 0xCBu8,
2697        0x27u8, 0x35u8, 0xC1u8, 0xFDu8, 0xF3u8, 0x40u8, 0x43u8, 0x54u8, 0x5Eu8, 0xF0u8, 0xC0u8,
2698        0xC7u8, 0x9Cu8, 0xEEu8, 0x7Du8, 0xC2u8, 0xA1u8, 0xB7u8, 0x40u8, 0xA3u8, 0xC5u8, 0x2Cu8,
2699        0x20u8, 0x8Du8, 0xB5u8, 0x7Fu8, 0x40u8, 0x08u8, 0x05u8, 0x9Cu8, 0x55u8, 0xD2u8, 0x89u8,
2700        0x38u8, 0xC0u8, 0x83u8, 0x87u8, 0xD0u8, 0x23u8, 0x79u8, 0xE0u8, 0x10u8, 0xC0u8, 0x0Au8,
2701        0xCCu8, 0xECu8, 0xF5u8, 0x10u8, 0xB9u8, 0xB0u8, 0x3Fu8, 0x33u8, 0xE9u8, 0x58u8, 0xBDu8,
2702        0x7Cu8, 0x3Bu8, 0xA2u8, 0x3Fu8, 0x57u8, 0x49u8, 0x1Fu8, 0xFCu8, 0x38u8, 0xCEu8, 0x40u8,
2703        0x3Fu8, 0xE8u8, 0x43u8, 0x1Cu8, 0x7Cu8, 0x37u8, 0x28u8, 0x33u8, 0xBFu8, 0x9Fu8, 0x56u8,
2704        0xABu8, 0xC8u8, 0x2Cu8, 0x34u8, 0xECu8, 0xBEu8, 0xC3u8, 0x31u8, 0xC4u8, 0x6Du8, 0x9Au8,
2705        0xE4u8, 0xC2u8, 0x3Eu8, 0x43u8, 0x60u8, 0xA7u8, 0xC0u8, 0xE4u8, 0xBFu8, 0x6Du8, 0x41u8,
2706        0x6Cu8, 0x5Eu8, 0xEEu8, 0x62u8, 0x4Cu8, 0xAEu8, 0x56u8, 0x41u8, 0x28u8, 0xFEu8, 0xE2u8,
2707        0x3Fu8, 0x9Bu8, 0x82u8, 0x23u8, 0xC1u8, 0xE8u8, 0xFDu8, 0x5Fu8, 0x20u8, 0x35u8, 0xAFu8,
2708        0xE6u8, 0xC0u8, 0x07u8, 0x5Bu8, 0x15u8, 0x87u8, 0x28u8, 0xA8u8, 0xA3u8, 0x40u8, 0x0Bu8,
2709        0xBDu8, 0x44u8, 0x1Du8, 0x2Eu8, 0x91u8, 0x73u8, 0x40u8, 0x37u8, 0x02u8, 0x6Au8, 0xCFu8,
2710        0x24u8, 0x19u8, 0x1Eu8, 0xC0u8, 0xD9u8, 0xC1u8, 0xEEu8, 0x2Fu8, 0x83u8, 0x27u8, 0x03u8,
2711        0xC0u8, 0xB7u8, 0x22u8, 0xD1u8, 0x35u8, 0xF3u8, 0x16u8, 0x87u8, 0xBFu8, 0x59u8, 0xE7u8,
2712        0xFEu8, 0x9Du8, 0xD0u8, 0x40u8, 0x93u8, 0x3Fu8, 0x60u8, 0x2Au8, 0x1Cu8, 0x5Bu8, 0x09u8,
2713        0x66u8, 0x45u8, 0x3Fu8, 0xB5u8, 0xEBu8, 0x2Fu8, 0x8Cu8, 0xC6u8, 0xB7u8, 0x22u8, 0xBFu8,
2714        0x92u8, 0x1Eu8, 0x72u8, 0x03u8, 0x25u8, 0x45u8, 0xE5u8, 0xBEu8, 0x90u8, 0xFCu8, 0xFCu8,
2715        0x77u8, 0xDFu8, 0x94u8, 0xB0u8, 0x3Eu8, 0x00u8, 0x00u8, 0x00u8, 0xB6u8, 0xFBu8, 0x6Fu8,
2716        0x0Au8, 0xC2u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x18u8, 0x15u8, 0x41u8, 0xACu8,
2717        0xB5u8, 0x4Fu8, 0x0Fu8, 0x74u8, 0x47u8, 0x6Bu8, 0xC1u8, 0x3Fu8, 0x1Eu8, 0x08u8, 0xF9u8,
2718        0xBDu8, 0x2Fu8, 0x72u8, 0xC1u8, 0xD3u8, 0x75u8, 0xA7u8, 0x1Cu8, 0x13u8, 0x72u8, 0x1Fu8,
2719        0x41u8, 0xDEu8, 0x91u8, 0xCAu8, 0x0Bu8, 0xCBu8, 0xDEu8, 0xFAu8, 0x40u8, 0x6Eu8, 0x5Fu8,
2720        0xF2u8, 0x42u8, 0xD3u8, 0xCCu8, 0xB5u8, 0xC0u8, 0xF7u8, 0x4Fu8, 0x5Du8, 0x29u8, 0x82u8,
2721        0x23u8, 0x77u8, 0xC0u8, 0x6Cu8, 0x2Du8, 0xF3u8, 0x2Cu8, 0x29u8, 0x6Eu8, 0x48u8, 0x40u8,
2722        0x31u8, 0x42u8, 0x74u8, 0xD9u8, 0x0Cu8, 0xFAu8, 0xD5u8, 0x3Fu8, 0x4Eu8, 0xEAu8, 0xCAu8,
2723        0x46u8, 0x42u8, 0x9Du8, 0xD7u8, 0xBFu8, 0x89u8, 0x24u8, 0x80u8, 0xF7u8, 0xC2u8, 0x8Au8,
2724        0x8Du8, 0x3Fu8, 0xCDu8, 0xC6u8, 0xA9u8, 0x22u8, 0x7Fu8, 0x99u8, 0x62u8, 0x3Fu8, 0x75u8,
2725        0xB2u8, 0x2Bu8, 0x12u8, 0x77u8, 0xE9u8, 0x2Du8, 0xBFu8, 0x42u8, 0x49u8, 0xC4u8, 0x33u8,
2726        0x41u8, 0x5Bu8, 0xE1u8, 0xBEu8, 0xECu8, 0x50u8, 0x78u8, 0xF7u8, 0xE9u8, 0x2Eu8, 0xC4u8,
2727        0x3Eu8, 0x13u8, 0x2Cu8, 0x05u8, 0xC9u8, 0x32u8, 0xB4u8, 0x81u8, 0x41u8, 0xC5u8, 0x13u8,
2728        0x90u8, 0xBFu8, 0x36u8, 0x21u8, 0x51u8, 0xC1u8, 0x1Fu8, 0x96u8, 0xC6u8, 0x00u8, 0x84u8,
2729        0x26u8, 0x36u8, 0xC1u8, 0xB8u8, 0x09u8, 0x2Au8, 0xD9u8, 0x24u8, 0xCBu8, 0xEAu8, 0x40u8,
2730        0x00u8, 0xCAu8, 0x67u8, 0x43u8, 0xEAu8, 0x07u8, 0xB6u8, 0x40u8, 0x43u8, 0xE1u8, 0x56u8,
2731        0x06u8, 0x2Eu8, 0xAFu8, 0x7Eu8, 0xC0u8, 0xB0u8, 0xEDu8, 0xD9u8, 0x81u8, 0xAFu8, 0xB0u8,
2732        0x2Au8, 0xC0u8, 0xC1u8, 0x0Fu8, 0xBBu8, 0x3Eu8, 0x39u8, 0xF0u8, 0x0Eu8, 0x40u8, 0x3Au8,
2733        0x8Eu8, 0x7Eu8, 0x7Eu8, 0x1Eu8, 0xE5u8, 0xB3u8, 0xBFu8, 0x15u8, 0x20u8, 0x1Bu8, 0x11u8,
2734        0x9Au8, 0x9Cu8, 0x9Au8, 0xBFu8, 0x10u8, 0xB2u8, 0x7Bu8, 0x58u8, 0xCEu8, 0x3Cu8, 0x5Eu8,
2735        0x3Fu8, 0x92u8, 0xD6u8, 0x9Du8, 0x28u8, 0xCAu8, 0x9Au8, 0x20u8, 0x3Fu8, 0xB6u8, 0x58u8,
2736        0x14u8, 0x6Fu8, 0xEDu8, 0xDDu8, 0xF6u8, 0xBEu8, 0xECu8, 0xF4u8, 0x8Bu8, 0x35u8, 0x9Bu8,
2737        0x3Du8, 0x5Du8, 0xBEu8, 0xD9u8, 0xF8u8, 0x5Eu8, 0x22u8, 0x99u8, 0x52u8, 0x74u8, 0x41u8,
2738        0x1Fu8, 0x2Eu8, 0x00u8, 0xFCu8, 0x45u8, 0xF5u8, 0x17u8, 0xC1u8, 0xB7u8, 0x33u8, 0xD7u8,
2739        0x28u8, 0xF2u8, 0x47u8, 0x29u8, 0xC1u8, 0x40u8, 0x3Cu8, 0x29u8, 0xB7u8, 0x84u8, 0x4Cu8,
2740        0xD1u8, 0x40u8, 0xD4u8, 0x3Eu8, 0xBEu8, 0xAAu8, 0x94u8, 0x14u8, 0xACu8, 0x40u8, 0xCBu8,
2741        0x46u8, 0xF2u8, 0xDAu8, 0x1Fu8, 0xE0u8, 0x6Bu8, 0xC0u8, 0xF2u8, 0xB4u8, 0x52u8, 0x94u8,
2742        0x1Du8, 0x7Fu8, 0x28u8, 0xC0u8, 0xF7u8, 0x26u8, 0x9Bu8, 0x22u8, 0xD7u8, 0x36u8, 0x00u8,
2743        0x40u8, 0xA5u8, 0x84u8, 0x3Au8, 0xDFu8, 0x2Au8, 0x3Cu8, 0x66u8, 0xBFu8, 0x85u8, 0x55u8,
2744        0x98u8, 0x61u8, 0xC2u8, 0x7Du8, 0x8Fu8, 0xBFu8, 0x0Fu8, 0x03u8, 0xF3u8, 0xBFu8, 0x43u8,
2745        0x72u8, 0x48u8, 0x3Fu8, 0xF0u8, 0x78u8, 0xFBu8, 0xF9u8, 0xB5u8, 0xFEu8, 0x17u8, 0x3Fu8,
2746        0x73u8, 0x3Cu8, 0x2Au8, 0xFBu8, 0xBAu8, 0x91u8, 0xE6u8, 0xBEu8, 0x5Du8, 0x41u8, 0x67u8,
2747        0xD7u8, 0xDDu8, 0xEEu8, 0x91u8, 0xBEu8, 0x00u8, 0x00u8, 0x00u8, 0x56u8, 0xA7u8, 0x6Fu8,
2748        0x0Au8, 0xC2u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x18u8, 0x15u8, 0x41u8, 0x7Du8,
2749        0x12u8, 0x5Au8, 0x41u8, 0xEEu8, 0x9Fu8, 0x85u8, 0xC1u8, 0x90u8, 0x7Du8, 0x1Fu8, 0xB6u8,
2750        0x46u8, 0xB6u8, 0x65u8, 0xC1u8, 0x8Cu8, 0xAEu8, 0xA7u8, 0xA3u8, 0x95u8, 0xCDu8, 0x32u8,
2751        0x41u8, 0xCBu8, 0x8Au8, 0x8Fu8, 0xA5u8, 0xA9u8, 0xC7u8, 0xC9u8, 0x40u8, 0x13u8, 0x49u8,
2752        0x2Eu8, 0xF9u8, 0x31u8, 0x91u8, 0xB1u8, 0xC0u8, 0x24u8, 0xD7u8, 0x4Au8, 0x25u8, 0x0Eu8,
2753        0xFCu8, 0x6Fu8, 0x40u8, 0x81u8, 0x1Au8, 0x0Au8, 0x20u8, 0x70u8, 0xF4u8, 0xE9u8, 0xBFu8,
2754        0x44u8, 0xB7u8, 0x30u8, 0xB3u8, 0xDCu8, 0xC7u8, 0xF2u8, 0xBFu8, 0xBCu8, 0x1Bu8, 0x8Du8,
2755        0x96u8, 0x49u8, 0x6Fu8, 0xBAu8, 0x3Fu8, 0x22u8, 0x9Eu8, 0xADu8, 0xB8u8, 0xFAu8, 0x7Fu8,
2756        0x64u8, 0xBFu8, 0x5Au8, 0x4Cu8, 0xAAu8, 0x33u8, 0x3Eu8, 0x5Du8, 0x38u8, 0xBFu8, 0xD1u8,
2757        0x34u8, 0x32u8, 0x5Bu8, 0x51u8, 0x50u8, 0x09u8, 0x3Fu8, 0xE2u8, 0x2Cu8, 0xE1u8, 0xD2u8,
2758        0x92u8, 0xBEu8, 0xC1u8, 0xBEu8, 0x22u8, 0x12u8, 0xE9u8, 0xF6u8, 0x0Fu8, 0xA0u8, 0x7Cu8,
2759        0xBEu8, 0x0Cu8, 0xB4u8, 0xC7u8, 0x4Du8, 0x8Eu8, 0x55u8, 0x72u8, 0x41u8, 0xB7u8, 0x90u8,
2760        0x05u8, 0xC5u8, 0x0Fu8, 0x23u8, 0x68u8, 0xC1u8, 0xC6u8, 0xA0u8, 0x3Eu8, 0x4Eu8, 0x02u8,
2761        0x00u8, 0x21u8, 0xC1u8, 0x3Au8, 0xE8u8, 0xE7u8, 0x00u8, 0xB2u8, 0x59u8, 0xF2u8, 0x40u8,
2762        0x5Au8, 0xCEu8, 0xF9u8, 0xF4u8, 0x40u8, 0xF3u8, 0x9Bu8, 0xC0u8, 0x7Fu8, 0x5Bu8, 0xEAu8,
2763        0x31u8, 0x91u8, 0x2Du8, 0x61u8, 0xC0u8, 0x13u8, 0xABu8, 0x4Cu8, 0xF7u8, 0x0Fu8, 0x80u8,
2764        0x32u8, 0x40u8, 0x2Eu8, 0x61u8, 0xF6u8, 0x67u8, 0x69u8, 0x34u8, 0xEBu8, 0xBFu8, 0xAEu8,
2765        0x12u8, 0xE3u8, 0x73u8, 0xBAu8, 0xC9u8, 0x98u8, 0xBFu8, 0xC5u8, 0xFCu8, 0xFCu8, 0x69u8,
2766        0x48u8, 0xB4u8, 0x7Bu8, 0x3Fu8, 0x64u8, 0x4Du8, 0x8Cu8, 0xB7u8, 0x62u8, 0x14u8, 0x3Eu8,
2767        0xBFu8, 0x21u8, 0x59u8, 0xB2u8, 0x38u8, 0x51u8, 0x4Bu8, 0xB1u8, 0x3Eu8, 0x8Eu8, 0x7Bu8,
2768        0xB1u8, 0xB3u8, 0xDAu8, 0xC4u8, 0xC6u8, 0x3Eu8, 0xA9u8, 0x79u8, 0x74u8, 0x8Du8, 0x87u8,
2769        0x3Bu8, 0x91u8, 0xBEu8, 0x12u8, 0xB0u8, 0x21u8, 0xF7u8, 0x8Du8, 0xA6u8, 0x6Cu8, 0x41u8,
2770        0xF9u8, 0x4Du8, 0x4Du8, 0x31u8, 0x39u8, 0x30u8, 0x55u8, 0xC1u8, 0x21u8, 0xC9u8, 0x8Bu8,
2771        0x1Fu8, 0x4Fu8, 0x08u8, 0x1Au8, 0xC1u8, 0x7Au8, 0xA8u8, 0x3Du8, 0x6Eu8, 0x4Eu8, 0xE6u8,
2772        0xE2u8, 0x40u8, 0xDCu8, 0x2Du8, 0xD1u8, 0x6Du8, 0xD9u8, 0x1Fu8, 0x7Eu8, 0xC0u8, 0xF8u8,
2773        0x25u8, 0x94u8, 0x5Cu8, 0xB3u8, 0x0Au8, 0x59u8, 0xC0u8, 0xF3u8, 0x46u8, 0xD8u8, 0x02u8,
2774        0x11u8, 0xE8u8, 0x23u8, 0x40u8, 0xBBu8, 0x3Du8, 0x23u8, 0x62u8, 0x91u8, 0x22u8, 0xD5u8,
2775        0xBFu8, 0x66u8, 0x24u8, 0x55u8, 0xF5u8, 0xE4u8, 0x52u8, 0x98u8, 0xBFu8, 0xD6u8, 0x57u8,
2776        0xE7u8, 0x6Fu8, 0x1Du8, 0xB5u8, 0x6Fu8, 0x3Fu8, 0xF1u8, 0x95u8, 0xE5u8, 0x93u8, 0x05u8,
2777        0xF9u8, 0x2Au8, 0xBFu8, 0x80u8, 0x43u8, 0x74u8, 0xCCu8, 0xACu8, 0xF4u8, 0xD2u8, 0xBEu8,
2778        0x76u8, 0x14u8, 0xEFu8, 0xE5u8, 0x68u8, 0x02u8, 0xBCu8, 0x3Eu8, 0xDFu8, 0x1Cu8, 0x87u8,
2779        0xFBu8, 0x69u8, 0xD5u8, 0x80u8, 0xBEu8, 0x00u8, 0x00u8, 0x00u8, 0xF6u8, 0x52u8, 0x6Fu8,
2780        0x0Au8, 0xC2u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x18u8, 0x15u8, 0x41u8, 0x09u8,
2781        0xD1u8, 0xC7u8, 0x51u8, 0x97u8, 0xD7u8, 0x8Bu8, 0xC1u8, 0x88u8, 0x95u8, 0xEEu8, 0x9Au8,
2782        0xA6u8, 0xF2u8, 0x3Au8, 0xC1u8, 0xACu8, 0xFFu8, 0xECu8, 0x74u8, 0x71u8, 0xE3u8, 0x30u8,
2783        0x41u8, 0x06u8, 0x5Fu8, 0x0Bu8, 0xEAu8, 0x40u8, 0x3Cu8, 0xD8u8, 0xC0u8, 0x95u8, 0x74u8,
2784        0x21u8, 0x8Fu8, 0x9Bu8, 0x0Fu8, 0x89u8, 0xC0u8, 0xF5u8, 0x5Fu8, 0x48u8, 0x3Du8, 0xF6u8,
2785        0xA3u8, 0x58u8, 0x40u8, 0x91u8, 0x52u8, 0x21u8, 0x17u8, 0xB7u8, 0xE6u8, 0x18u8, 0xC0u8,
2786        0x5Eu8, 0x9Cu8, 0xB1u8, 0x33u8, 0x8Fu8, 0xBAu8, 0xCBu8, 0x3Fu8, 0xF3u8, 0x81u8, 0xE6u8,
2787        0x3Du8, 0x68u8, 0xF6u8, 0x58u8, 0x3Fu8, 0xE4u8, 0xA3u8, 0x27u8, 0x43u8, 0x27u8, 0xFFu8,
2788        0x4Du8, 0xBFu8, 0x4Au8, 0x21u8, 0x44u8, 0xFAu8, 0xCEu8, 0xCCu8, 0x14u8, 0x3Fu8, 0x3Du8,
2789        0xF9u8, 0xA8u8, 0x5Au8, 0x00u8, 0xA0u8, 0xD0u8, 0xBEu8, 0x21u8, 0x27u8, 0x64u8, 0xD2u8,
2790        0x31u8, 0x15u8, 0x71u8, 0x3Eu8, 0xABu8, 0x74u8, 0x92u8, 0xCFu8, 0x24u8, 0xA5u8, 0x44u8,
2791        0x3Eu8, 0x0Cu8, 0x6Au8, 0x98u8, 0x95u8, 0x10u8, 0xDEu8, 0x5Eu8, 0xC1u8, 0x62u8, 0x69u8,
2792        0xE3u8, 0xB4u8, 0xF6u8, 0xDBu8, 0x6Au8, 0xC1u8, 0xB7u8, 0xDBu8, 0x0Bu8, 0xB3u8, 0xD6u8,
2793        0xF1u8, 0x00u8, 0x41u8, 0xA3u8, 0x87u8, 0x4Cu8, 0x0Eu8, 0x82u8, 0xEEu8, 0xE3u8, 0x40u8,
2794        0xF2u8, 0x88u8, 0xC6u8, 0xA9u8, 0xAEu8, 0xE0u8, 0x9Du8, 0xC0u8, 0xB1u8, 0x0Du8, 0xC4u8,
2795        0x0Du8, 0x20u8, 0x7Fu8, 0x4Bu8, 0x40u8, 0x2Eu8, 0xB7u8, 0x95u8, 0x6Bu8, 0xE9u8, 0x1Au8,
2796        0xECu8, 0x3Fu8, 0xB0u8, 0x33u8, 0x83u8, 0xCAu8, 0x02u8, 0xD2u8, 0xCFu8, 0xBFu8, 0x04u8,
2797        0x39u8, 0xE6u8, 0x32u8, 0x2Cu8, 0x75u8, 0x93u8, 0x3Fu8, 0x3Eu8, 0xCCu8, 0x12u8, 0x03u8,
2798        0x1Au8, 0xD1u8, 0x4Bu8, 0xBFu8, 0xC0u8, 0x0Bu8, 0xD3u8, 0x23u8, 0x32u8, 0xE7u8, 0xE0u8,
2799        0x3Eu8, 0x50u8, 0x54u8, 0x54u8, 0xCBu8, 0xA9u8, 0x09u8, 0xC5u8, 0x3Eu8, 0x6Eu8, 0xE2u8,
2800        0x04u8, 0xCEu8, 0x38u8, 0x48u8, 0x92u8, 0xBEu8, 0xC5u8, 0xF7u8, 0x58u8, 0x81u8, 0xF0u8,
2801        0x1Du8, 0x51u8, 0x3Eu8, 0x17u8, 0xAFu8, 0xE1u8, 0x34u8, 0x0Cu8, 0xC7u8, 0x3Bu8, 0x41u8,
2802        0x65u8, 0xEAu8, 0xCBu8, 0x32u8, 0xC2u8, 0xF1u8, 0x5Bu8, 0xC1u8, 0x29u8, 0x9Au8, 0x8Eu8,
2803        0xE6u8, 0x69u8, 0x96u8, 0xE4u8, 0xC0u8, 0xE2u8, 0x97u8, 0x8Fu8, 0xAAu8, 0xCAu8, 0xCEu8,
2804        0xD7u8, 0x40u8, 0xE0u8, 0xC7u8, 0x41u8, 0x3Du8, 0x12u8, 0x3Eu8, 0x8Du8, 0xC0u8, 0x9Cu8,
2805        0x55u8, 0xBAu8, 0x9Eu8, 0x38u8, 0xFCu8, 0x32u8, 0x40u8, 0x70u8, 0x88u8, 0xC6u8, 0x1Eu8,
2806        0x0Au8, 0xF4u8, 0xF1u8, 0x3Fu8, 0xD3u8, 0x9Bu8, 0x89u8, 0xEDu8, 0x58u8, 0xE2u8, 0xC3u8,
2807        0xBFu8, 0xC1u8, 0x38u8, 0x3Du8, 0x45u8, 0x11u8, 0x6Eu8, 0x84u8, 0x3Fu8, 0x3Au8, 0x68u8,
2808        0x2Eu8, 0x42u8, 0xA7u8, 0x60u8, 0x37u8, 0xBFu8, 0xA7u8, 0x75u8, 0x1Au8, 0x58u8, 0x5Du8,
2809        0xE7u8, 0xD0u8, 0xBEu8, 0xAAu8, 0xDEu8, 0xDDu8, 0xDBu8, 0x90u8, 0x6Du8, 0xBDu8, 0x3Eu8,
2810        0xEAu8, 0x8Bu8, 0x5Fu8, 0xD1u8, 0x93u8, 0x65u8, 0x84u8, 0xBEu8, 0xCAu8, 0xCAu8, 0xAFu8,
2811        0xC9u8, 0x05u8, 0x63u8, 0x40u8, 0x3Eu8, 0x00u8, 0x00u8, 0x00u8, 0x96u8, 0xFEu8, 0x6Eu8,
2812        0x0Au8, 0xC2u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x18u8, 0x15u8, 0x41u8, 0xCCu8,
2813        0xFCu8, 0x58u8, 0x50u8, 0x14u8, 0xCBu8, 0x89u8, 0xC1u8, 0xF0u8, 0x25u8, 0x26u8, 0xEFu8,
2814        0x42u8, 0x12u8, 0x56u8, 0x41u8, 0x93u8, 0x30u8, 0x49u8, 0x50u8, 0x60u8, 0xAFu8, 0x27u8,
2815        0x41u8, 0x8Du8, 0x11u8, 0x2Bu8, 0x1Du8, 0xBAu8, 0x68u8, 0xDBu8, 0xC0u8, 0x88u8, 0x74u8,
2816        0xB4u8, 0xDAu8, 0x9Fu8, 0xA6u8, 0x5Eu8, 0x40u8, 0x10u8, 0x5Eu8, 0x90u8, 0xC8u8, 0x63u8,
2817        0xDDu8, 0x27u8, 0x40u8, 0xAAu8, 0x49u8, 0xB8u8, 0x60u8, 0x10u8, 0x4Bu8, 0xFAu8, 0xBFu8,
2818        0x66u8, 0xFAu8, 0xBCu8, 0x1Bu8, 0x22u8, 0x3Bu8, 0xB7u8, 0x3Fu8, 0x3Au8, 0x51u8, 0x0Fu8,
2819        0x0Fu8, 0x3Cu8, 0x3Eu8, 0x70u8, 0xBFu8, 0x51u8, 0xF7u8, 0x56u8, 0x23u8, 0xBDu8, 0x16u8,
2820        0x1Du8, 0x3Fu8, 0xBFu8, 0x0Au8, 0x72u8, 0x9Eu8, 0x02u8, 0xF9u8, 0x91u8, 0x3Eu8, 0x88u8,
2821        0xA1u8, 0x28u8, 0x8Du8, 0x30u8, 0x63u8, 0x94u8, 0xBEu8, 0x57u8, 0xBCu8, 0x60u8, 0x6Fu8,
2822        0xDFu8, 0x45u8, 0x5Cu8, 0x3Eu8, 0x93u8, 0xB5u8, 0x7Fu8, 0x44u8, 0xDAu8, 0x4Cu8, 0x13u8,
2823        0xBEu8, 0x44u8, 0x74u8, 0x33u8, 0x8Cu8, 0xF0u8, 0x2Au8, 0x80u8, 0xC1u8, 0x5Au8, 0x20u8,
2824        0x66u8, 0x25u8, 0x5Cu8, 0xD6u8, 0x65u8, 0xC1u8, 0xE8u8, 0x91u8, 0xFEu8, 0xB0u8, 0x02u8,
2825        0x5Au8, 0x1Du8, 0x41u8, 0x8Eu8, 0x58u8, 0x45u8, 0x41u8, 0x6Du8, 0x48u8, 0xD2u8, 0x40u8,
2826        0xADu8, 0xE8u8, 0xB7u8, 0x2Du8, 0x40u8, 0x8Au8, 0x8Cu8, 0xC0u8, 0xC8u8, 0x56u8, 0x1Du8,
2827        0x53u8, 0x36u8, 0xDFu8, 0x42u8, 0x40u8, 0x34u8, 0x27u8, 0x42u8, 0x07u8, 0xF9u8, 0x19u8,
2828        0xF3u8, 0xBFu8, 0x85u8, 0xC3u8, 0x85u8, 0x0Au8, 0x62u8, 0xBFu8, 0x84u8, 0x3Fu8, 0xEDu8,
2829        0xFBu8, 0x6Bu8, 0x5Au8, 0xABu8, 0xEBu8, 0x59u8, 0x3Fu8, 0xE6u8, 0xB7u8, 0xCAu8, 0x68u8,
2830        0xA0u8, 0x55u8, 0x25u8, 0xBFu8, 0x74u8, 0x7Bu8, 0xE0u8, 0x18u8, 0xB8u8, 0x37u8, 0xE4u8,
2831        0x3Eu8, 0x15u8, 0xE0u8, 0x40u8, 0x07u8, 0x32u8, 0x5Bu8, 0x9Cu8, 0xBEu8, 0x7Cu8, 0x83u8,
2832        0xCCu8, 0x0Eu8, 0x38u8, 0xB0u8, 0x47u8, 0x3Eu8, 0xD2u8, 0x04u8, 0xC6u8, 0x52u8, 0xCAu8,
2833        0xC8u8, 0x03u8, 0x3Eu8, 0x7Cu8, 0xA2u8, 0x5Cu8, 0x95u8, 0x4Fu8, 0xA6u8, 0x67u8, 0xC1u8,
2834        0xD7u8, 0x42u8, 0x72u8, 0x88u8, 0x93u8, 0x9Cu8, 0x59u8, 0xC1u8, 0xA2u8, 0x3Eu8, 0x2Eu8,
2835        0x45u8, 0x93u8, 0x5Du8, 0x05u8, 0x41u8, 0xCDu8, 0xB1u8, 0x4Bu8, 0x4Du8, 0x85u8, 0x42u8,
2836        0xC9u8, 0x40u8, 0x5Eu8, 0x07u8, 0x89u8, 0x36u8, 0x53u8, 0x40u8, 0x7Fu8, 0xC0u8, 0x38u8,
2837        0x41u8, 0x31u8, 0xC2u8, 0x3Eu8, 0xE1u8, 0x32u8, 0x40u8, 0x2Cu8, 0xACu8, 0x79u8, 0xE0u8,
2838        0x6Eu8, 0xB6u8, 0xDDu8, 0xBFu8, 0x4Du8, 0xAAu8, 0xBFu8, 0xC0u8, 0x84u8, 0xE4u8, 0x70u8,
2839        0xBFu8, 0x88u8, 0x30u8, 0x3Fu8, 0xC6u8, 0xDDu8, 0xA5u8, 0x54u8, 0x3Fu8, 0x3Du8, 0x17u8,
2840        0xDBu8, 0xD9u8, 0x2Cu8, 0xD0u8, 0x19u8, 0xBFu8, 0x93u8, 0xC0u8, 0x0Du8, 0x5Fu8, 0xE9u8,
2841        0x72u8, 0xD5u8, 0x3Eu8, 0x05u8, 0x18u8, 0x1Bu8, 0xDFu8, 0x6Eu8, 0xF8u8, 0x89u8, 0xBEu8,
2842        0x52u8, 0x40u8, 0xCCu8, 0xBCu8, 0x3Bu8, 0xA6u8, 0x2Bu8, 0x3Eu8, 0x84u8, 0x49u8, 0xFFu8,
2843        0xA4u8, 0xC9u8, 0x91u8, 0xEAu8, 0x3Du8, 0x00u8, 0x00u8, 0x00u8, 0x36u8, 0xAAu8, 0x6Eu8,
2844        0x0Au8, 0xC2u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x18u8, 0x15u8, 0x41u8, 0x80u8,
2845        0x70u8, 0xA5u8, 0xA8u8, 0x44u8, 0xCFu8, 0x81u8, 0xC1u8, 0x37u8, 0x9Cu8, 0xD6u8, 0x64u8,
2846        0x00u8, 0x63u8, 0x64u8, 0x41u8, 0xDFu8, 0xC0u8, 0xBAu8, 0x58u8, 0x6Cu8, 0xB3u8, 0x1Bu8,
2847        0x41u8, 0x6Cu8, 0x64u8, 0x69u8, 0x85u8, 0x0Eu8, 0x16u8, 0xD9u8, 0xC0u8, 0xDFu8, 0xC2u8,
2848        0xE8u8, 0x32u8, 0x9Cu8, 0x4Fu8, 0x5Cu8, 0x40u8, 0x60u8, 0xE3u8, 0x4Fu8, 0x41u8, 0xEEu8,
2849        0xD4u8, 0x1Fu8, 0xC0u8, 0xC9u8, 0x5Du8, 0x19u8, 0xEDu8, 0x0Bu8, 0xF8u8, 0xD5u8, 0xBFu8,
2850        0x10u8, 0x2Du8, 0x31u8, 0xEBu8, 0xBEu8, 0xF8u8, 0x91u8, 0x3Fu8, 0x30u8, 0xCBu8, 0x24u8,
2851        0x66u8, 0xB5u8, 0x27u8, 0x51u8, 0xBFu8, 0xB0u8, 0x88u8, 0xBBu8, 0x07u8, 0x83u8, 0x8Du8,
2852        0x07u8, 0x3Fu8, 0xE0u8, 0x8Eu8, 0x56u8, 0x4Du8, 0xF5u8, 0x1Du8, 0xB8u8, 0xBEu8, 0x97u8,
2853        0xE4u8, 0x99u8, 0x90u8, 0x42u8, 0x3Bu8, 0x66u8, 0x3Eu8, 0xACu8, 0x3Bu8, 0x67u8, 0x0Fu8,
2854        0x24u8, 0xDEu8, 0xF2u8, 0x3Du8, 0xE2u8, 0x5Au8, 0x49u8, 0x2Au8, 0xABu8, 0xBCu8, 0xD6u8,
2855        0xBDu8, 0xB0u8, 0xDDu8, 0x74u8, 0xB1u8, 0x29u8, 0xFBu8, 0x88u8, 0xC1u8, 0x23u8, 0xF3u8,
2856        0xACu8, 0xAFu8, 0xDFu8, 0x55u8, 0x5Au8, 0xC1u8, 0xC2u8, 0xFFu8, 0xB6u8, 0x1Fu8, 0x8Fu8,
2857        0x79u8, 0x23u8, 0x41u8, 0x19u8, 0x85u8, 0x6Bu8, 0x62u8, 0xD0u8, 0x12u8, 0xC1u8, 0x40u8,
2858        0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
2859        0x00u8, 0x00u8, 0x18u8, 0x25u8, 0x41u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8,
2860        0x46u8, 0x40u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x00u8, 0x2Cu8, 0x40u8,
2861    ];
2862}