#! /usr/bin/perl

use strict;

use Getopt::Long;

use Data::Dumper;
$Data::Dumper::Sortkeys = 1;
$Data::Dumper::Terse = 1;
$Data::Dumper::Indent = 1;

our $VERSION = "0.0";

sub usage;
sub isols;
sub find_file;
sub pad;
sub align_to_blocksize;
sub write_iso;
sub read_iso;
sub write_map;
sub write_blockmap;
sub prepare_mapfile;
sub link_to_mapfile;
sub install_zipl;

my $opt_mapfile = "/boot/s390x/zipl.map";
my $opt_kernel = "/boot/s390x/linux";
my $opt_initrd = "/boot/s390x/initrd";
my $opt_parm = "/boot/s390x/parmfile";
my $opt_options;
my $opt_verbose = 0;

my $zipl_psw_load = 0x0008000080000000;
my $block_size = 0x200;

my $files;
my $map;
my $kernel;
my $initrd;
my $parm;
my $zipl_data;
my $iso;

GetOptions(
  'map=s'     => \$opt_mapfile,
  'kernel=s'  => \$opt_kernel,
  'initrd=s'  => \$opt_initrd,
  'parm=s'    => \$opt_parm,
  'options=s' => \$opt_options,
  'verbose|v' => sub { $opt_verbose++ },
  'version'   => sub { print "$VERSION\n"; exit 0 },
  'help'      => sub { usage 0 },
) || usage 1;

$iso = shift;

usage 1 if ! -f $iso;

# adjust leading slash, if necessary
$opt_mapfile =~ s#^/*#/# if $opt_mapfile;
$opt_kernel =~ s#^/*#/#;
$opt_initrd =~ s#^/*#/#;
$opt_parm =~ s#^/*#/#;

install_zipl;


# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# usage($exit_code)
#
# Print help text and exit.
#
sub usage
{
  print <<"= = = = = = = =";
Usage: isozipl [OPTIONS] ISOIMAGE
Modify iso9660 image to make it zipl bootable.

Options:

  --map MAPFILE             Specify mapping file (default: /boot/s390x/zipl.map)
                            If MAPFILE cannot be found or is the empty string ("")
                            the boot map will be embedded before the iso volume descriptor.
  --kernel KERNEL           Specify kernel (default: /boot/s390x/linux)
  --initrd INITRD           Specify initrd (default: /boot/s390x/initrd)
  --parm PARMFILE           Specify parm file (default: /boot/s390x/parmfile)
  --options OPTS            Use boot options OPTS instead of reading them from a parm file.
  -v, --verbose             Show more messages. Can be repeated to log even more.
  --version                 Show isozipl version.
  --help                    Write this help text.

Example:

  isozipl foo.iso

= = = = = = = =

  exit shift;
}


# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# ISO file list sorted by start address.
#
# Return ref to array with files.
#
sub isols
{
  open my $fd, "isoinfo -R -l -i $iso 2>/dev/null |";

  my $dir = "/";

  while(<$fd>) {
    if(/^Directory listing of\s*(\/.*\/)/) {
      $dir = $1;
      next;
    }

    # isoinfo format change
    # cf. https://sourceforge.net/p/cdrtools/mailman/message/35173024
    s/^\s*\d+\s+//;

    if(/^(.)(.*)\s\[\s*(\d+)(\s+\d+)?\]\s+(.*?)\s*$/) {
      my $type = $1;
      my @x = split ' ', $2;
      $type = ' ' if $type eq '-';
      if($5 ne '.' && $5 ne '..') {
        push @$files, { name => "$dir$5", type => $type, start => $3 + 0, size => $x[4] };
      }
    }
  } 

  close $fd;

  $files = [ sort { $a->{start} <=> $b->{start} } @$files ] if $files;

  # printf "%6d\t%s %8d %s\n", $_->{start}, $_->{type}, $_->{size}, $_->{name} for @$files;
}


# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
sub find_file
{
  isols if !$files;

  for (@$files) {
    return $_ if $_->{name} eq $_[0];
  }

  return undef;
}


# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
sub pad
{
  my $size = $_[0];
  my $blk_size = $_[1] || $block_size;

  my $pad = $size & ($blk_size - 1);
  $pad = $blk_size - $pad if $pad;

  return $pad;
}


# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
sub align_to_blocksize
{
  my $buf_ref = $_[0];

  # adjust to full block size
  $$buf_ref .= "\x00" x pad(length($$buf_ref), $_[1]);
}


# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
sub write_iso
{
  my $ofs = $_[0];
  my $buf = $_[1];

  die "$iso: open $!\n" unless open my $f, "+<", $iso;
  die "$iso: seek $!\n" unless sysseek $f, $ofs, 0;
  die "$iso: write $!\n" if syswrite($f, $buf) != length($buf);

  close $f;
}


# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
sub read_iso
{
  my $ofs = $_[0];
  my $size = $_[1];
  my $buf;

  die "$iso: open $!\n" unless open my $f, $iso;
  die "$iso: seek $!\n" unless sysseek $f, $ofs, 0;
  die "$iso: read $!\n" if sysread($f, $buf, $size) != $size;

  close $f;

  return $buf;
}


# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
sub write_map
{
  my ($idx, $ofs, $buf) = @_;

  substr($map->{image}, $idx * $block_size + $ofs, length($buf), $buf);
}


# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
sub write_blockmap
{
  my ($idx, $start, $size) = @_;
  my $max_single = 0x10000;
  my $max_entries = $block_size / 0x10 - 1;
  my $ent = 0;

  while($size >= $max_single) {
    write_map $idx, $ent * 0x10, pack("Q>S>S>", $start, $block_size, $max_single - 1);
    $size -= $max_single;
    $start += $max_single;
    $ent++;
    die "$opt_initrd: initrd is too big\n" if $ent >= $max_entries;
  }

  if($size) {
    write_map $idx, $ent * 0x10, pack("Q>S>S>", $start, $block_size, $size - 1);
  }
}


# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
sub prepare_mapfile
{
  $map->{image} = pack "a512", "zSeries bootmap file\ncreated by isozipl\n";
  $map->{idx} = 1;

  $map->{program_table_idx} = $map->{idx};
  $map->{image} .= pack "a512", "zIPL";
  $map->{idx}++;

  $map->{components_idx} = $map->{idx};
  $map->{image} .= pack "a512", "zIPL";
  $map->{idx}++;

  align_to_blocksize \$zipl_data;
  $map->{zipl_idx} = $map->{idx};
  $map->{image} .= $zipl_data;
  $map->{zipl_len} = length($zipl_data) / $block_size;
  $map->{idx} += $map->{zipl_len};

  my $parm_data = $opt_options ? $opt_options : read_iso $parm->{start} * $block_size, $parm->{size};
  align_to_blocksize \$parm_data;
  $map->{parm_idx} = $map->{idx};
  $map->{image} .= $parm_data;
  $map->{parm_len} = length($parm_data) / $block_size;
  $map->{idx} += $map->{parm_len};

  # link component table to program table
  write_map $map->{program_table_idx}, 0x10,
    pack("Q>S>a6", $map->{start} + $map->{components_idx}, $block_size);

  # create zipl stage 3 component
  my $idx = $map->{idx};
  $map->{image} .= pack "a512";
  $map->{idx}++;

  write_map $idx, 0,
    pack("Q>S>S>", $map->{start} + $map->{zipl_idx}, $block_size, $map->{zipl_len} - 1);

  write_map $map->{components_idx}, 0x20 * 1,
    pack("Q>S>a6a7CQ>", $map->{start} + $idx, $block_size, "", "", 2, 0xa000);

  # create kernel component
  my $idx = $map->{idx};
  $map->{image} .= pack "a512";
  $map->{idx}++;

  my $s = ($kernel->{size} - 0x10000 + pad($kernel->{size})) / $block_size;
  write_blockmap $idx, $kernel->{start} + 0x10000 / $block_size, $s;

  write_map $map->{components_idx}, 0x20 * 2,
    pack("Q>S>a6a7CQ>", $map->{start} + $idx, $block_size, "", "", 2, 0x10000);

  # create parm component
  my $idx = $map->{idx};
  $map->{image} .= pack "a512";
  $map->{idx}++;

  write_blockmap $idx, $map->{start} + $map->{parm_idx}, $map->{parm_len};

  write_map $map->{components_idx}, 0x20 * 3,
    pack("Q>S>a6a7CQ>", $map->{start} + $idx, $block_size, "", "", 2, $parm->{load});

  # create initrd component
  my $idx = $map->{idx};
  $map->{image} .= pack "a512";
  $map->{idx}++;

  my $s = ($initrd->{size} + pad($initrd->{size})) / $block_size;
  write_blockmap $idx, $initrd->{start}, $s;

  write_map $map->{components_idx}, 0x20 * 4,
    pack("Q>S>a6a7CQ>", $map->{start} + $idx, $block_size, "", "", 2, $initrd->{load});

  # create 'exec' component
  write_map $map->{components_idx}, 0x20 * 5,
    pack("a23CQ>", "", 1, 0xa050 | $zipl_psw_load);

  # patch zipl stage 3 header

  write_map $map->{zipl_idx}, 0,
    pack("Q>Q>Q>Q>Q>S>a6", $parm->{load}, $initrd->{load}, $initrd->{size}, 0x10000 | $zipl_psw_load, 0, 1);

  printf "$opt_mapfile: $map->{idx} of ${\($map->{size}/$block_size)} blocks used\n" if $opt_verbose;
}


# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
sub link_to_mapfile
{
  my $head;

  die "$iso: mapping file too small: need $map->{idx} blocks\n" if $map->{size} < $map->{idx} * 0x200;

  write_iso $map->{start} << 9, $map->{image};

  $head = pack "a4L>Q>Q>S>a6", "zIPL", 1, 0, $map->{start} + $map->{program_table_idx}, 0x200;

  write_iso 0, $head;
}


# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
sub install_zipl
{
  my $f;

  if($opt_mapfile) {
    $f = find_file $opt_mapfile;
    print "warning: mapping file $opt_mapfile not found on iso\n" if !$f && $opt_verbose;
  }

  if($f) {
    $map->{start} = $f->{start} << 2;
    $map->{size} = $f->{size};
  }
  else {
    print "placing map before iso9660 volume descriptor\n" if $opt_verbose;
    undef $opt_mapfile;
    $map->{start} = 34;
    $map->{size} = 30 * 0x200;
  }

  my $f = find_file $opt_kernel;
  die "kernel $opt_kernel not found on iso\n" if !$f;

  $kernel->{start} = $f->{start} << 2;
  $kernel->{size} = $f->{size};
  $kernel->{load} = 0x10000;
  die "kernel too small?\n" if $kernel->{size} <= $kernel->{load};

  if(!$opt_options) {
    my $f = find_file $opt_parm;
    die "mapping file $opt_parm not found on iso\n" if !$f;

    $parm->{start} = $f->{start} << 2;
    $parm->{size} = $f->{size};
  }
  # align to 4k
  $parm->{load} = $kernel->{size} + pad($kernel->{size}, 0x1000);

  my $f = find_file $opt_initrd;
  die "initrd $opt_initrd not found on iso\n" if !$f;

  $initrd->{start} = $f->{start} << 2;
  $initrd->{size} = $f->{size};
  # reserve at least 4k
  $initrd->{load} = $parm->{load} + 0x1000;
  # align to 64k
  $initrd->{load} += pad($initrd->{load}, 0x10000);

  # print Dumper($map, $kernel, $initrd, $parm);

  prepare_mapfile;

  link_to_mapfile;
}


# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# zipl binary blob taken from s390-tools
#
BEGIN {
  $zipl_data =
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x07\xfe\x07\x07\x07\x07\x07\x07\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x0d\xd0\x41\x70\x00\x02\x41\x60\x00\x00\xae\x76\x00\x12\x47\x80" .
    "\xd0\x18\x41\x70\x00\x01\xae\x76\x00\x12\x01\x0e\x0d\xd0\xe3\xf0" .
    "\xd0\x0c\x00\x16\xc0\xe5\x00\x00\x03\x6a\x00\x00\xff\x60\x00\x00" .
    "\xeb\xbf\xf0\x78\x00\x24\xc0\xd0\x00\x00\x0f\xc1\xa7\xf1\x1f\x80" .
    "\xe3\xf0\xff\xd0\xff\x71\xa7\x84\x00\x01\xe3\x10\x00\xb8\x00\x95" .
    "\x50\x10\x0c\x6c\xe3\x10\x04\x04\x10\x50\xc4\x18\xff\xff\xff\xab" .
    "\xa7\x1f\xff\xff\xa7\x84\x00\x0f\xc0\x21\x00\x01\x04\x80\xb9\x04" .
    "\x00\x31\xa7\x49\x03\x80\xc0\xe5\x00\x00\x02\x31\xeb\x00\x07\xff" .
    "\x10\x52\xc4\x58\xff\xff\xff\xa7\xb9\x02\x00\x55\xa7\x74\x00\x08" .
    "\xa7\x19\x00\x00\xa7\x29\x03\x81\xa7\xf4\x00\x25\xeb\x00\x0c\x00" .
    "\x09\x55\xa7\x84\xff\xf7\xb2\x02\xf0\xa0\xc0\x10\x00\x00\x0f\xe3" .
    "\xc0\x30\x00\x00\x10\x60\x95\xff\xf0\xa0\xa7\x29\x03\x80\xb9\xe2" .
    "\x70\x31\xa5\x1f\x9c\x00\xe3\x40\x10\x00\x00\x90\xa7\x1b\x00\x01" .
    "\x43\x44\x30\x00\xe3\x40\x1f\xff\xff\x72\xa7\x27\xff\xf6\xa7\xf4" .
    "\xff\xd9\xeb\x20\x1c\x00\x09\x55\x18\x31\xa7\x74\x00\x08\xa7\x1b" .
    "\x00\x01\xa7\x27\xff\xf8\xa7\x38\x03\x81\xa7\x19\x00\x00\xa7\x29" .
    "\x03\x81\xeb\x00\x1c\x00\x09\x55\x18\xc1\xa7\x84\x00\x08\xa7\x1b" .
    "\x00\x01\xa7\x27\xff\xf8\xa7\xc8\x03\x81\xa7\x18\x00\x00\xb9\x16" .
    "\x00\x21\xc0\x41\x00\x01\x04\x80\xeb\x00\x24\x80\x10\x55\x41\x42" .
    "\x40\x00\xa7\x84\x00\x06\xa7\x1a\x00\x01\xa7\xf4\xff\xf2\xb9\x16" .
    "\x00\x23\xa5\x3f\x9c\x00\xeb\x3d\x2c\x00\x09\x55\x41\x32\x30\x00" .
    "\xa7\x74\x00\x0c\xb9\x16\x00\x4c\xc0\x21\x00\x01\x04\x80\xc0\xe5" .
    "\x00\x00\x01\xbd\xa7\xf4\x00\x23\xec\x2c\x00\x01\x00\xd8\xa7\x58" .
    "\x03\x80\x1a\x21\xec\x25\x00\x06\xc0\x77\xa7\xc8\x03\x7f\x1b\xc1" .
    "\x92\x20\x40\x00\xec\xb1\x00\x01\x00\xd8\xb9\x16\x00\x1b\xb9\x16" .
    "\x00\x4c\x1a\xcb\xe3\x20\x14\x80\x10\x71\xb9\x16\x00\xcc\xc0\xe5" .
    "\x00\x00\x01\x9d\xeb\x00\xc4\x80\x10\x52\xc4\x18\xff\xff\xff\x07" .
    "\xe3\x10\x04\x08\x10\x24\xc4\x58\xff\xff\xff\x05\xe3\x50\x04\x10" .
    "\x10\x24\xc4\x18\xff\xff\xff\x03\xe3\x10\x00\x00\x00\x24\xc0\xe5" .
    "\x00\x00\x00\x59\xe3\x50\xd0\x00\x00\x04\xa7\x19\x00\x01\xe3\x50" .
    "\x01\xd0\x00\x24\xa7\x29\x01\xd0\xc0\x30\x00\x00\x00\x08\xe3\x30" .
    "\x20\x08\x00\x24\x83\x11\x03\x08\x01\x0d\x1b\x11\x1b\x22\xae\x12" .
    "\x00\x12\x82\x00\x00\x00\xe3\x40\xf0\xc0\x00\x04\xeb\xbf\xf0\xa8" .
    "\x00\x04\x07\xf4\x07\x07\x07\x07\x07\xfe\x07\x07\x07\x07\x07\x07" .
    "\xeb\xef\xf0\x90\x00\x24\xa7\xf1\x1f\x80\xa7\x84\x00\x01\xec\x14" .
    "\x0f\xff\x00\xd8\x12\x44\xeb\x33\x00\x0c\x00\x0c\xb9\xf2\x40\x41" .
    "\xe3\xf0\xff\xf0\xff\x71\x41\x30\x30\x02\x8a\x40\x00\x0c\xb9\x14" .
    "\x00\x44\xc0\xe5\x00\x00\x07\xcf\xec\x28\x00\x0e\x00\x7e\xc0\xe5" .
    "\x00\x00\x09\x09\xa7\x29\x45\x24\xeb\xef\xf0\xa0\x00\x04\xc0\xf4" .
    "\x00\x00\x09\x1d\xeb\xef\xf0\xa0\x00\x04\x07\xfe\x07\x07\x07\x07" .
    "\xeb\xaf\xf0\x70\x00\x24\xa7\xf1\x1f\x80\xa7\x84\x00\x01\xc4\x18" .
    "\xff\xff\xfe\xa5\xa7\x12\x00\x02\xe3\xf0\xff\xc8\xff\x71\xa7\x84" .
    "\x00\x9e\xa7\x12\x00\x01\xa7\x74\x00\x0d\xe3\x10\x0e\x18\x00\x04" .
    "\xe3\xc0\x10\x10\x00\x04\xe3\xd0\x10\x18\x00\x04\xa7\xf4\x00\x89" .
    "\xc0\xe5\x00\x00\x03\x84\xb9\x04\x00\xd2\xc0\xe5\x00\x00\x08\x63" .
    "\x41\x20\xf0\xa0\xc0\xe5\x00\x00\x07\xe6\xec\x28\x00\x0b\x00\x7e" .
    "\xc0\xe5\x00\x00\x08\xc8\xa7\x29\x45\x24\xc0\xe5\x00\x00\x08\xdf" .
    "\xb9\x04\x00\x2d\xa7\x39\x00\x00\xa7\x49\x10\x00\xc0\xe5\xff\xff" .
    "\xff\x92\xd5\x07\xde\x18\xf0\xa0\xa7\xa4\x00\x10\xb9\x04\x00\x2d" .
    "\xe3\x30\xde\x18\x00\x04\xa7\x49\x10\x00\xb9\x04\x00\xbd\xc0\xe5" .
    "\xff\xff\xff\x81\xa7\xf4\x00\x05\xe3\xb0\xde\x18\x00\x04\xb9\x04" .
    "\x00\x2b\xc0\xe5\x00\x00\x08\xd7\xe3\xd0\xb0\x18\x00\x04\xe3\xc0" .
    "\xb0\x10\x00\x04\xe3\x40\xf0\xa0\x00\x04\xb9\xe8\xc0\xad\xb9\x04" .
    "\x00\x2c\xe3\xd0\xf0\xa0\x00\x21\xa7\x39\x00\x00\xb9\xe2\x50\x4d" .
    "\xb9\x14\x00\x44\xc0\xe5\xff\xff\xff\x5e\xe3\x40\xf0\xa0\x00\x04" .
    "\xec\xd4\x00\x0e\xc0\x65\x41\x24\xc0\x00\xb9\x04\x00\x34\xb9\xe9" .
    "\x40\x4d\xc0\xe5\x00\x00\x00\xab\xa7\xf4\x00\x10\xb9\x21\x00\x4c" .
    "\xb9\x04\x00\x2d\xb9\xe2\x30\x4c\xb9\x04\x00\x3d\x1b\x4d\xb9\x14" .
    "\x00\x44\xc0\xe5\xff\xff\xff\x3f\xe3\x40\xf0\xa0\x00\x04\xec\xa4" .
    "\x00\x0d\xa0\x65\x1b\x4a\xb9\x04\x00\x2a\xb9\x04\x00\x3a\xb9\x14" .
    "\x00\x44\xc0\xe5\xff\xff\xff\x2f\xc0\xe5\x00\x00\x08\x54\xe3\xc0" .
    "\x04\x18\x10\x24\xe3\xd0\x04\x20\x10\x24\xe3\x40\xf0\xc8\x00\x04" .
    "\xeb\xaf\xf0\xa8\x00\x04\x07\xf4\xeb\x6d\xf0\x60\x00\x24\xa7\xc9" .
    "\x00\x00\xb9\x04\x00\xb4\xb9\x04\x00\x1b\xa7\x09\x00\x00\xa7\xcb" .
    "\x00\x01\xb9\x87\x00\x03\xb9\x04\x00\xb1\xec\x16\xff\xf6\x00\x7c" .
    "\xb9\x21\x00\xc6\xb9\x04\x00\xa2\xb9\xe2\xa0\x6c\xa7\xb9\x00\x00" .
    "\xa7\x19\x00\x01\xc0\x90\x00\x00\x0d\xf2\xec\x06\xff\xff\x00\xd8" .
    "\xec\xc6\x00\x01\x00\xd8\xb9\x18\x00\xa0\xa7\x0e\xff\xff\xa7\x08" .
    "\x00\x01\xb9\xf2\x50\xc0\xa7\xc6\x00\x0c\xa7\x18\x00\x00\x42\x16" .
    "\x20\x00\xb9\x14\x00\x26\xeb\x6d\xf0\x60\x00\x04\x07\xfe\xec\x18" .
    "\x00\x1e\x00\x7c\xb9\x04\x00\x14\xa7\x09\x00\x00\xb9\x87\x00\x03" .
    "\xb9\x04\x00\x10\x43\x01\x90\x00\xb9\x04\x00\x14\x42\x0a\xb0\x00" .
    "\xa7\x09\x00\x00\xb9\x87\x00\x03\xb9\x04\x00\x41\xb9\x01\x00\x11" .
    "\xeb\x11\x00\x3f\x00\x0c\xa7\xf4\x00\x0d\xec\x58\x00\x07\x00\x7c" .
    "\xa7\x08\x00\xf0\xa7\xf4\x00\x04\xa7\x08\x00\x40\x42\x0a\xb0\x00" .
    "\xa7\xbb\xff\xff\xa7\xf4\xff\xc9\xa7\x19\x00\x00\xa7\x4b\x00\x01" .
    "\xa7\x47\x00\x03\x07\xfe\x42\x31\x20\x00\xa7\x1b\x00\x01\xa7\xf4" .
    "\xff\xf9\x07\x07\x07\x07\x07\x07\xa7\x19\x00\x00\xa7\x4b\x00\x01" .
    "\xa7\x47\x00\x03\x07\xfe\x43\x51\x30\x00\x42\x51\x20\x00\xa7\x1b" .
    "\x00\x01\xa7\xf4\xff\xf7\x07\x07\xb9\x04\x00\x12\xe3\x40\x30\x00" .
    "\x00\x90\xec\x48\x00\x0c\x00\x7c\x41\x10\x10\x01\x41\x30\x30\x01" .
    "\xe3\x40\x1f\xff\xff\x72\xa7\xf4\xff\xf3\x92\x00\x10\x00\x07\xfe" .
    "\xa7\x19\x00\x00\x18\x31\xa7\x1b\x00\x01\xe3\x41\x2f\xff\xff\x73" .
    "\xa7\x41\x00\xff\xa7\x74\xff\xf8\xb9\x14\x00\x23\x07\xfe\x07\x07" .
    "\xeb\xcf\xf0\x80\x00\x24\xa7\xf1\x1f\x80\xe3\xf0\xff\xe0\xff\x71" .
    "\xb9\x04\x00\xd2\xb9\x04\x00\xc3\xa7\x84\x00\x01\xc0\xe5\xff\xff" .
    "\xff\xe2\x41\x22\xd0\x00\xb9\x04\x00\x3c\xc0\xe5\xff\xff\xff\xc7" .
    "\xe3\x40\xf0\xb0\x00\x04\xb9\x04\x00\x2d\xeb\xcf\xf0\xa0\x00\x04" .
    "\x07\xf4\x07\x07\x07\x07\x07\x07\xa7\x19\x00\x00\xa7\x4b\x00\x01" .
    "\xa7\x47\x00\x06\xa7\x28\x00\x00\xa7\xf4\x00\x11\xe3\x01\x20\x00" .
    "\x00\x90\xa7\x1b\x00\x01\xb9\x94\x00\x00\xe3\x51\x3f\xff\xff\x94" .
    "\xec\x05\xff\xf0\x80\x76\xb9\xf9\x50\x20\xb9\x14\x00\x22\x07\xfe" .
    "\xa7\x19\x00\x00\xe3\x50\x20\x00\x00\x94\xec\x05\xff\x10\x00\xd8" .
    "\xec\x02\x00\x10\x09\x7f\xec\x18\x00\x05\x00\x7c\xb9\x0c\x00\x14" .
    "\xa7\x5a\xff\x10\x41\x20\x20\x01\xb9\x18\x00\x15\xa7\xf4\xff\xec" .
    "\xec\x38\x00\x06\x00\x7c\xe3\x20\x30\x00\x00\x24\xb9\x04\x00\x21" .
    "\x07\xfe\x07\x07\x07\x07\x07\x07\xe3\xd0\xf0\x98\x00\x24\xc0\xd0" .
    "\x00\x00\x0c\xd9\xa7\x19\x00\x00\xe3\x50\x20\x00\x00\x90\xec\x05" .
    "\x00\x10\x00\xd8\xbd\x01\xd0\x00\xa7\x24\x00\x0f\xec\x18\x00\x05" .
    "\x00\x7c\xb9\x0c\x00\x14\xa7\x5a\xff\x10\x41\x20\x20\x01\xb9\x18" .
    "\x00\x15\xa7\xf4\xff\xeb\xec\x38\x00\x06\x00\x7c\xe3\x20\x30\x00" .
    "\x00\x24\xb9\x04\x00\x21\xe3\xd0\xf0\x98\x00\x04\x07\xfe\x07\x07" .
    "\xc0\x50\x00\x00\x0c\xb4\xe3\x20\x50\x00\x00\x09\xeb\x22\x00\x0c" .
    "\x00\x0c\xc0\x10\x00\x00\x0c\x9f\xa7\x38\x00\x00\x42\x32\x10\x00" .
    "\x07\xfe\x07\x07\x07\x07\x07\x07\xeb\xdf\xf0\x88\x00\x24\xc0\xd0" .
    "\x00\x00\x0c\xa1\xa7\xf1\x1f\x80\xe3\xf0\xff\xd8\xff\x71\xa7\x84" .
    "\x00\x01\xe3\x40\xd0\x00\x00\x04\xe3\x20\xf0\xa0\x00\x24\xe5\x48" .
    "\xf0\xa8\x00\x00\xe3\x20\x30\x00\x00\x04\xe3\x10\x30\x08\x00\x04" .
    "\xe3\x40\x30\x00\x00\x24\x41\x40\xf0\xa0\xc0\x50\x00\x00\x00\x0b" .
    "\xe3\x50\x40\x08\x00\x24\xe3\x50\x30\x08\x00\x24\xb2\xb2\xf0\xa0" .
    "\xe3\x20\x30\x00\x00\x24\xe3\x10\x30\x08\x00\x24\xeb\xdf\xf0\xb0" .
    "\x00\x04\x07\xfe\x07\x07\x07\x07\xeb\xdf\xf0\x88\x00\x24\xc0\xd0" .
    "\x00\x00\x0c\x6d\xa7\xf1\x1f\x80\xc0\x40\x00\x00\x0c\x56\xa7\x84" .
    "\x00\x01\xe3\x10\xd0\x08\x00\x04\xe3\x10\x01\xd0\x00\x24\xc0\x10" .
    "\x00\x00\x07\x35\xe3\x10\x01\xd8\x00\x24\xe3\xf0\xff\xe8\xff\x71" .
    "\xe3\x40\xd0\x00\x00\x09\xc0\x20\x00\x00\x0c\x3d\xa7\x39\x00\x00" .
    "\xc0\xe5\xff\xff\xfe\xbc\xeb\xdf\xf0\xa0\x00\x04\xc0\xf4\xff\xff" .
    "\xfc\x72\x07\x07\x07\x07\x07\x07\xe3\xf0\xf0\x98\x00\x24\xc0\x50" .
    "\x00\x00\x0c\x45\xa7\xf1\x1f\x80\xe3\xf0\xff\xd8\xff\x71\xa7\x84" .
    "\x00\x01\xe3\x10\x50\x00\x00\x04\xe3\x10\xf0\xa0\x00\x24\xe3\x20" .
    "\xf0\xa8\x00\x24\xb2\xb2\xf0\xa0\xa7\xf4\x00\x00\x07\x07\x07\x07" .
    "\xeb\x6f\xf0\x50\x00\x24\xc0\xd0\x00\x00\x0c\x2d\xa7\xf1\x1f\x80" .
    "\xb9\x04\x00\x72\xa7\x84\x00\x01\xe3\xf0\xff\xa8\xff\x71\xb9\x04" .
    "\x00\xc4\xa7\xa8\x00\x00\xe3\x10\x30\x00\x00\x90\xec\x16\x00\xa1" .
    "\x6c\x7c\x95\xf0\x30\x01\xa7\x84\x00\x08\x41\x20\x30\x01\xa7\x99" .
    "\x00\x00\xa7\xf4\x00\x06\x41\x20\x30\x02\xa7\x99\x00\x01\x41\x30" .
    "\xf0\xa0\xa7\x49\x00\x0a\xc0\xe5\xff\xff\xfe\xed\xe3\xb0\xf0\xa0" .
    "\x00\x04\xe3\x10\xb0\x00\x00\x94\xe3\x30\xc0\x00\x00\x04\xc0\x17" .
    "\x00\x00\x00\x93\xb9\xfb\x10\x1a\xe3\xb0\xd0\x00\x00\x88\xec\x32" .
    "\x00\x0d\x04\x7c\xeb\x13\x00\x03\x00\x0d\xa7\x1b\x00\x10\xe3\x10" .
    "\xc0\x18\x00\x08\xa7\xf4\x00\x0a\xe3\x10\xc0\x10\x00\x04\x41\x40" .
    "\x10\x08\xe3\x40\xc0\x10\x00\x24\xa7\x3b\x00\x01\xb9\x14\x00\x62" .
    "\xe3\x30\xc0\x00\x00\x24\xa7\x28\x00\xa4\xe3\x30\xb0\x00\x00\x94" .
    "\xec\x32\x00\x3e\x80\x76\xa7\x48\x00\xa7\xec\x34\x00\x2e\x80\x76" .
    "\xa7\x28\x00\xa2\xec\x32\x00\x42\x60\x76\xe3\x80\x10\x00\x00\x04" .
    "\xb9\x04\x00\x28\xc0\xe5\xff\xff\xfe\x56\xb9\x04\x00\x92\xec\x62" .
    "\x00\x0e\x40\x65\xb9\x04\x00\x27\xa7\x39\x00\x40\xb9\xe9\x90\x46" .
    "\xc0\xe5\xff\xff\xfe\x14\xa7\xf4\x00\x04\xb9\x04\x00\x62\xb9\xe9" .
    "\x90\x26\xb9\x04\x00\x38\x41\x22\x70\x00\xc0\xe5\xff\xff\xfe\x27" .
    "\x18\x26\xa7\xf4\x00\x20\xb9\x04\x00\x27\xa7\x39\x00\x10\xe3\x40" .
    "\x10\x00\x00\x04\xb9\x14\x00\x59\xa7\xf4\x00\x0b\xb9\x04\x00\x27" .
    "\xa7\x39\x00\x0a\xe3\x40\x10\x00\x00\x04\xb9\x04\x00\x59\xc0\xe5" .
    "\xff\xff\xfd\x85\xa7\xf4\x00\x07\xa7\x29\x45\x11\xc0\xe5\xff\xff" .
    "\xff\x36\xb9\x18\x00\x72\x41\x30\xb0\x01\xa7\xf4\x00\x08\x42\x10" .
    "\x70\x00\x41\x30\x30\x01\x41\x70\x70\x01\x95\x00\x30\x00\xa7\x74" .
    "\xff\x54\xe3\x40\xf0\xe8\x00\x04\x92\x00\x70\x00\xeb\x6f\xf0\xa8" .
    "\x00\x04\x07\xf4\x07\x07\x07\x07\xeb\x4f\xf0\x40\x00\x24\xa7\xf1" .
    "\x1f\x80\xe3\xf0\xff\x80\xff\x71\xa7\x84\x00\x01\x41\x10\xf1\x20" .
    "\xe5\x48\xf0\xa0\x00\x02\xe3\x10\xf0\xb0\x00\x24\x41\x10\xf0\xa0" .
    "\xe3\x10\xf0\xb8\x00\x24\xb9\x04\x00\x41\xe5\x48\xf0\xa8\x00\x00" .
    "\xc0\xe5\xff\xff\xff\x18\xeb\xef\xf1\x10\x00\x04\x07\xfe\x07\x07" .
    "\xeb\x3f\xf0\x38\x00\x24\xa7\xf1\x1f\x80\xe3\xf0\xff\x20\xff\x71" .
    "\xa7\x84\x00\x01\x41\x10\xf1\x80\xb9\x04\x00\x32\xe3\x10\xf0\xb0" .
    "\x00\x24\x41\x20\xf0\xc7\x41\x10\xf1\x00\x41\x40\xf0\xa0\xe3\x10" .
    "\xf0\xb8\x00\x24\xe5\x48\xf0\xa0\x00\x01\xe5\x48\xf0\xa8\x00\x00" .
    "\xc0\xe5\xff\xff\xfe\xf0\x41\x20\xf0\xc7\xc0\xe5\x00\x00\x01\x9f" .
    "\xeb\xef\xf1\x70\x00\x04\x07\xfe\xeb\xbf\xf0\x78\x00\x24\xc0\xd0" .
    "\x00\x00\x0b\x15\xa7\xf1\x1f\x80\xa7\x19\x00\x00\xa7\x84\x00\x01" .
    "\xe3\xf0\xff\xd8\xff\x71\xc0\x30\x00\x00\x0a\xe5\xa7\x29\x00\x04" .
    "\x43\x41\x30\x00\x18\xc1\xa7\x41\x00\xff\xa7\x84\x00\x0b\xa7\x1b" .
    "\x00\x01\xa7\x27\xff\xf7\xa7\x29\x45\x11\xc0\xe5\xff\xff\xfe\xa7" .
    "\xeb\xb1\x00\x0c\x00\xdf\xa7\x49\x10\x00\xb9\x14\x00\xbb\xa7\x39" .
    "\x00\x00\xe3\xb0\xd0\x00\x00\x08\xb9\x14\x00\xcc\xb9\x04\x00\x2b" .
    "\xc0\xe5\xff\xff\xfd\x44\xa7\x28\x00\x01\xc0\x10\x00\x00\x0a\xbb" .
    "\x42\x2c\x10\x00\xb9\x04\x00\x2b\xe3\x40\xf0\xb8\x00\x04\xeb\xbf" .
    "\xf0\xa0\x00\x04\x07\xf4\x07\x07\xeb\xdf\xf0\x88\x00\x24\xc0\xd0" .
    "\x00\x00\x0a\xd1\xc0\x10\x00\x00\x05\xa4\xa7\xf1\x1f\x80\xa7\x84" .
    "\x00\x01\xe3\x10\xd0\x00\x00\x09\xeb\x21\x00\x03\x00\x0c\xe3\xf0" .
    "\xff\xe8\xff\x71\xec\x12\x00\x01\x00\xd8\xc0\x30\x00\x00\x05\x8d" .
    "\x12\x22\xa7\x28\x00\x01\xb9\xf2\x50\x12\xa7\x16\x00\x08\xe3\x20" .
    "\x01\x58\x00\x04\xc0\xe5\xff\xff\xfe\x5a\xb9\x04\x00\x23\xa7\x3b" .
    "\x00\x08\xb9\x04\x00\x42\xe3\x40\x20\x00\x00\x18\xe3\x40\x01\x58" .
    "\x00\x20\xa7\x74\xff\xec\xe3\x10\x20\x04\x00\x14\xeb\xdf\xf0\xa0" .
    "\x00\x04\x41\x11\x20\x00\xe3\x10\x01\x58\x00\x24\x07\xfe\x07\x07" .
    "\xeb\xdf\xf0\x88\x00\x24\xc0\xd0\x00\x00\x0a\x99\xa7\xf1\x1f\x80" .
    "\xe3\xf0\xff\xd0\xff\x71\xa7\x84\x00\x01\xec\x28\x00\x12\x00\x7c" .
    "\xeb\x22\x00\x20\x00\x0d\xb2\x05\xf0\xb0\xe3\x10\xf0\xb0\x00\x04" .
    "\xb9\x08\x00\x12\xe3\x10\xf0\xb0\x00\x24\xb2\x06\xf0\xb0\xeb\x00" .
    "\xf0\xa0\x00\x25\xe3\x10\xf0\xa0\x00\x04\xec\x28\x00\x07\x00\x7c" .
    "\xa5\x1b\x0a\x00\xa7\xf4\x00\x06\xa5\x17\xf7\xff\xa5\x1b\x02\x00" .
    "\xe3\x10\xf0\xa8\x00\x24\xeb\x00\xf0\xa8\x00\x2f\x41\x10\xd0\x00" .
    "\xa7\x39\x01\xb0\xe3\x20\x10\x00\x00\x04\xc0\xe5\xff\xff\xfd\x97" .
    "\xa7\x28\x10\x04\xe3\x10\x00\x86\x00\x95\xec\x12\x00\x0c\x80\x76" .
    "\xa7\x28\x24\x01\xec\x12\xff\xec\x60\x76\xa7\x28\x00\x00\xa7\xf4" .
    "\x00\x04\xa7\x28\x00\x02\xeb\x00\xf0\xa0\x00\x2f\xb9\x14\x00\x22" .
    "\xeb\xdf\xf0\xb8\x00\x04\x07\xfe\xeb\xcf\xf0\x80\x00\x24\xa7\xf1" .
    "\x1f\x80\xa7\x84\x00\x01\xe3\xf0\xff\xe0\xff\x71\xb9\x04\x00\xd2" .
    "\xb9\x04\x00\xc3\xb2\x20\x00\xdc\xb2\x22\x00\x10\x88\x10\x00\x1c" .
    "\xec\x18\x00\x0d\x03\x7e\xec\x16\x00\x15\x02\x7e\xa7\x29\x00\x00" .
    "\xc0\xe5\xff\xff\xff\x88\xa7\xf4\xff\xef\xa7\x28\x00\x01\xe3\x40" .
    "\xf0\xb0\x00\x04\xb9\x14\x00\x22\xeb\xcf\xf0\xa0\x00\x04\x07\xf4" .
    "\xa7\x29\x00\x00\xc0\xe5\xff\xff\xff\x76\xa7\x28\x00\x00\xa7\xf4" .
    "\xff\xf0\x07\x07\x07\x07\x07\x07\xeb\xcf\xf0\x80\x00\x24\xa7\xf1" .
    "\x1f\x80\xe3\xf0\xff\xe0\xff\x71\xb9\x04\x00\xc2\xa7\x84\x00\x01" .
    "\xc0\xe5\xff\xff\xfe\xd4\xe5\x44\x20\x00\x00\x1c\xe5\x44\x20\x0a" .
    "\x00\x04\xb9\x04\x00\xd2\x18\x2c\xec\xc2\x00\x2a\x03\x7f\xc0\x10" .
    "\x00\x00\x09\xf1\xec\x22\x1d\xbc\x03\x55\xe3\x12\x10\x00\x00\x04" .
    "\x07\xf1\xa5\x1e\x80\x00\x50\x10\xd0\x0c\xa5\x1e\x40\x00\xa7\xf4" .
    "\x00\x15\xe5\x4c\xd0\x0c\x00\x00\xe5\x4c\xd0\x10\x00\x00\xa7\xf4" .
    "\x00\x0f\xe5\x4c\xd0\x0c\x00\x00\xa7\xf4\x00\x05\xe5\x4c\xd0\x0c" .
    "\x00\x10\xc0\x19\x40\x00\x00\x10\x50\x10\xd0\x10\xc0\x21\x00\x78" .
    "\x00\x05\xb9\x04\x00\x3d\xc0\xe5\xff\xff\xff\x81\xec\x26\x00\x1b" .
    "\x00\x7e\xe5\x54\xd0\x06\x00\x20\xa7\x74\x00\x15\x58\x10\xd0\x10" .
    "\x54\x10\xd0\x14\x59\x10\xd0\x10\xa7\x74\x00\x0d\x58\x10\xd0\x0c" .
    "\x58\xc0\xd0\x18\x14\xc1\x17\xc1\x11\xcc\x88\xc0\x00\x1f\xa7\xf4" .
    "\x00\x04\xa7\xc8\x00\x01\xb9\x04\x00\x2d\xc0\xe5\xff\xff\xfc\xc3" .
    "\xe3\x40\xf0\xb0\x00\x04\xb9\x14\x00\x2c\xeb\xcf\xf0\xa0\x00\x04" .
    "\x07\xf4\x07\x07\x07\x07\x07\x07\xeb\x6f\xf0\x50\x00\x24\xa7\xf1" .
    "\x1f\x80\xe3\xf0\xff\xa8\xff\x71\xa7\x84\x00\x01\xe3\x20\xf0\xa0" .
    "\x00\x24\xa7\xa8\x00\x00\xc0\xe5\xff\xff\xfe\x59\xc0\x19\xd4\xc4" .
    "\xc2\x40\x92\x02\x20\x0a\x50\x10\x20\x12\xb9\x04\x00\xc2\xec\xb2" .
    "\x00\x52\x00\xd9\xec\x92\x00\x5c\x00\xd9\xe5\x44\x20\x00\x00\x52" .
    "\xe5\x44\x20\x08\x00\x4a\xe5\x44\x20\x0e\x00\x44\xe5\x44\x20\x10" .
    "\x00\x01\xe5\x4c\x20\x16\x00\x01\xe5\x44\x20\x1a\x00\x38\xe5\x44" .
    "\x20\x1c\x00\x01\xe3\x80\xf0\xa0\x00\x04\xb9\x18\x00\x8a\x95\x00" .
    "\x80\x00\xa7\x84\x00\x5b\xb9\x04\x00\x2b\xa7\x39\x00\x00\xa7\x49" .
    "\x00\x0a\xc0\xe5\xff\xff\xfb\x9b\xe5\x44\xb0\x00\x00\x0a\xe5\x44" .
    "\xb0\x02\x00\x04\xe5\x44\xb0\x04\x10\x00\xa7\x19\x00\x00\xb9\x04" .
    "\x00\xe8\xe3\x71\x80\x00\x00\x90\xb9\xf8\x10\x5a\x41\x41\x90\x00" .
    "\xb9\x94\x00\x07\x18\x25\xb9\x04\x00\x34\xb9\xe8\x10\x6e\xec\x06" .
    "\x00\x21\x00\x7e\x48\x00\xb0\x00\x18\x10\x4a\x00\xc0\x00\x4a\x10" .
    "\xc0\x0e\x40\x10\xc0\x0e\x48\x10\xc0\x08\x4a\x10\xb0\x00\x40\x00" .
    "\xc0\x00\x40\x10\xc0\x08\x95\x00\x60\x00\xa7\x84\x00\x1a\xec\x25" .
    "\x00\x01\x00\xd8\xb9\x04\x00\xb4\x41\x30\x40\x0a\xa7\xf4\x00\x11" .
    "\xec\x08\xff\xe2\x15\x7e\x42\x71\x90\x00\xa7\x1b\x00\x01\x48\x20" .
    "\xb0\x00\xa7\x2a\x00\x01\x40\x20\xb0\x00\xa7\xf4\xff\xc4\x18\xa2" .
    "\xb9\x04\x00\x93\xa7\xf4\xff\xa0\xc0\x21\x00\x76\x00\x05\xb9\x04" .
    "\x00\x3c\xc0\xe5\xff\xff\xfe\xb3\xec\x26\x00\x10\x00\x7e\xe3\x10" .
    "\xc0\x06\x00\x91\xc0\x17\x00\x00\x00\x20\xb9\x03\x00\x11\xeb\xb1" .
    "\x00\x3f\x00\x0c\xa7\xf4\x00\x04\xa7\xb8\x00\x01\xb9\x04\x00\x2c" .
    "\xc0\xe5\xff\xff\xfc\x00\xe3\x40\xf0\xe8\x00\x04\xb9\x14\x00\x2b" .
    "\xeb\x6f\xf0\xa8\x00\x04\x07\xf4\xeb\xdf\xf0\x88\x00\x24\xa7\xf1" .
    "\x1f\x80\xb9\x04\x00\xd2\xa7\x84\x00\x01\xe3\xf0\xff\xe8\xff\x71" .
    "\xe5\x44\x20\x00\x10\x00\xb9\x04\x00\x3d\xc0\x21\x00\x12\x00\x01" .
    "\xc0\xe5\xff\xff\xfe\x7c\xec\x26\x00\x20\x00\x7e\xe5\x54\xd0\x06" .
    "\x00\x10\xa7\x74\x00\x0b\xe5\x54\xd0\x06\x00\x10\xa7\x74\x00\x11" .
    "\xa7\x28\x00\x00\xa7\xf4\x00\x13\xc0\x21\x00\x02\x00\x01\xb9\x04" .
    "\x00\x3d\xc0\xe5\xff\xff\xfe\x63\xec\x28\xff\xef\x00\x7e\xa7\x28" .
    "\x00\x02\xa7\xf4\x00\x04\xa7\x28\x00\x01\xb9\x14\x00\x22\xeb\xdf" .
    "\xf0\xa0\x00\x04\x07\xfe\x07\x07\xeb\xbf\xf0\x78\x00\x24\xa7\xf1" .
    "\x1f\x80\xe3\xf0\xff\xd8\xff\x71\xa7\x84\x00\x01\xb9\x04\x00\xb2" .
    "\xc0\xe5\xff\xff\xfd\x5c\xb9\x04\x00\xc2\xc0\xe5\xff\xff\xff\xaf" .
    "\xb9\x04\x00\xd2\xec\x26\x00\x0c\x00\x7e\xb9\x04\x00\x2b\x41\x30" .
    "\xc0\x18\xa7\x49\x00\x08\xc0\xe5\xff\xff\xfa\xd1\xb9\x04\x00\x2c" .
    "\xc0\xe5\xff\xff\xfb\x90\xe3\x40\xf0\xb8\x00\x04\xb9\x04\x00\x2d" .
    "\xeb\xbf\xf0\xa0\x00\x04\x07\xf4\xeb\x9f\xf0\x68\x00\x24\xa7\xf1" .
    "\x1f\x80\xe3\xf0\xff\xc8\xff\x71\xa7\x84\x00\x01\xb9\x04\x00\x92" .
    "\xb9\x04\x00\xb3\xb9\x04\x00\xa4\xc0\xe5\xff\xff\xfd\x28\xb9\x04" .
    "\x00\xc2\xa7\x39\x00\x00\xa7\x49\x10\x00\xb9\x04\x00\x2c\xc0\xe5" .
    "\xff\xff\xfa\x95\xe5\x44\xc0\x00\x10\x00\xc0\x21\x00\x77\x00\x05" .
    "\xb9\x04\x00\x3c\xc0\xe5\xff\xff\xfd\xfa\x18\xd2\xec\x26\x00\xa0" .
    "\x00\x7e\xe3\x10\xc0\x06\x00\x95\xec\x16\x00\x85\x20\x7e\xe3\x10" .
    "\xc0\x08\x00\x91\xec\x2c\x00\x0e\x00\xd9\x41\x1c\x10\x08\xec\x21" .
    "\x00\x8b\xa0\x65\xe5\x54\x20\x02\x13\x10\xa7\x84\x00\x09\xe3\x30" .
    "\x20\x00\x00\x91\x41\x23\x20\x00\xa7\xf4\xff\xf3\xe3\x30\x20\x00" .
    "\x00\x91\x41\x10\x20\x04\x41\x23\x20\x00\xec\x12\x00\x75\xa0\x65" .
    "\xe5\x54\x10\x02\x12\x12\xa7\x84\x00\x09\xe3\x30\x10\x00\x00\x91" .
    "\x41\x13\x10\x00\xa7\xf4\xff\xf3\xe3\x20\x10\x00\x00\x91\x41\x22" .
    "\x10\x00\x41\x10\x10\x04\xec\x12\x00\x5f\xa0\x65\xe5\x54\x10\x02" .
    "\x13\x20\xa7\x74\x00\x41\xe3\x20\x10\x00\x00\x91\x41\x22\x10\x00" .
    "\x41\x10\x10\x04\xec\x12\x00\x50\xa0\x65\x95\x31\x10\x01\xa7\x74" .
    "\x00\x2c\xe3\x20\x10\x00\x00\x90\x41\x22\x10\x00\x41\x10\x10\x02" .
    "\xec\x12\x00\x42\xa0\x65\x95\x30\x10\x01\xa7\x84\x00\x09\xe3\x30" .
    "\x10\x00\x00\x90\x41\x13\x10\x00\xa7\xf4\xff\xf4\xec\x18\x00\x34" .
    "\x00\x7c\xe3\x40\x10\x00\x00\x94\xb9\x04\x00\x2b\xa7\x4a\xff\xfe" .
    "\x41\x30\x10\x02\x50\x40\xa0\x00\xb9\x14\x00\x44\xc0\xe5\xff\xff" .
    "\xfa\x1e\xa7\xf4\x00\x27\xe3\x30\x10\x00\x00\x90\x41\x13\x10\x00" .
    "\xa7\xf4\xff\xca\xe3\x30\x10\x00\x00\x91\x41\x13\x10\x00\xa7\xf4" .
    "\xff\xb4\xa7\x28\x60\xf0\xec\x12\x00\x13\x60\x76\xb9\x04\x00\x29" .
    "\xc0\xe5\xff\xff\xfd\x08\xec\x28\xff\x56\x00\x7e\xa7\xd8\x00\x02" .
    "\xa7\xf4\x00\x08\xa7\xd8\xff\xfb\xa7\xf4\x00\x04\xa7\xd8\x00\x01" .
    "\xb9\x04\x00\x2c\xc0\xe5\xff\xff\xfa\xb6\xe3\x40\xf0\xc8\x00\x04" .
    "\xb9\x14\x00\x2d\xeb\x9f\xf0\xa0\x00\x04\x07\xf4\x07\x07\x07\x07" .
    "\xeb\xdf\xf0\x88\x00\x24\xa7\xf1\x1f\x80\xa7\x39\x00\x00\xe3\xf0" .
    "\xff\xe8\xff\x71\xa7\x49\x10\x00\xb9\x04\x00\xd2\xa7\x84\x00\x01" .
    "\xc0\xe5\xff\xff\xf9\xc4\xc0\x21\x00\x77\x00\x05\xe5\x44\xd0\x00" .
    "\x10\x00\xb9\x04\x00\x3d\xc0\xe5\xff\xff\xfd\x29\xec\x26\x00\x0e" .
    "\x00\x7e\xe3\x10\xd0\x06\x00\x91\xc0\x17\x00\x00\x00\x20\xb9\x03" .
    "\x00\x11\xeb\x21\x00\x3f\x00\x0c\xb9\x14\x00\x22\xeb\xdf\xf0\xa0" .
    "\x00\x04\x07\xfe\x07\x07\x07\x07\xeb\xdf\xf0\x88\x00\x24\xa7\xf1" .
    "\x1f\x80\xa7\x84\x00\x01\xc4\x1d\x00\x00\x08\x75\x12\x11\xe3\xf0" .
    "\xff\xe8\xff\x71\xb9\x04\x00\xd2\xa7\x84\x00\x0a\x91\xef\xd0\x1f" .
    "\xa7\x74\x00\x1d\xa7\x28\x00\x00\xa7\xf4\x00\x1b\x91\x03\x00\x83" .
    "\xa7\x84\x00\x0c\xb9\x04\x00\x2d\xc0\xe5\xff\xff\xff\xac\xec\x28" .
    "\xff\xef\x00\x7e\xa7\xf4\x00\x0b\xa7\x29\x00\x00\xc0\xe5\xff\xff" .
    "\xfc\x8a\x91\x03\x00\x83\xa7\x74\xff\xef\xa7\x28\x00\x01\xb9\x14" .
    "\x00\x22\xeb\xdf\xf0\xa0\x00\x04\x07\xfe\x07\x07\x07\x07\x07\x07" .
    "\xeb\xaf\xf0\x70\x00\x24\xa7\xf1\x1f\x80\xe3\xf0\xff\xd0\xff\x71" .
    "\xb9\x04\x00\xb3\xa7\x84\x00\x01\xb9\x04\x00\xa2\xb9\x04\x00\xc4" .
    "\xc0\xe5\xff\xff\xfb\xdc\x92\x1c\x20\x0a\x92\x00\x20\x0e\x92\x01" .
    "\x20\x1e\xe3\xa0\x20\x28\x00\x24\x50\xb0\x20\x34\x50\xc0\x20\x24" .
    "\xb9\x04\x00\xd2\xe5\x44\x20\x00\x00\x44\xe5\x44\x20\x08\x00\x3c" .
    "\xe5\x4c\x20\x18\x47\x12\xe5\x44\x20\x42\x00\x01\xb9\x04\x00\x3d" .
    "\xc0\x21\x00\x76\x00\x05\xc0\xe5\xff\xff\xfc\xa1\xec\x26\x00\x10" .
    "\x00\x7e\xe5\x54\xd0\x06\x00\x20\xa7\x74\x00\x0a\xb9\x04\x00\x2d" .
    "\xc0\xe5\xff\xff\xff\x84\x18\xc2\xa7\xf4\x00\x04\xa7\xc8\x00\x01" .
    "\xb9\x04\x00\x2d\xc0\xe5\xff\xff\xf9\xee\xe3\x40\xf0\xc0\x00\x04" .
    "\xb9\x14\x00\x2c\xeb\xaf\xf0\xa0\x00\x04\x07\xf4\x07\x07\x07\x07" .
    "\xeb\xcf\xf0\x80\x00\x24\xa7\xf1\x1f\x80\xe3\xf0\xff\xe0\xff\x71" .
    "\xa7\x84\x00\x01\xb9\x04\x00\xc2\xc0\xe5\xff\xff\xfb\x88\x92\x1c" .
    "\x20\x0a\x92\x01\x20\x0e\x92\x00\x20\x0f\xb9\x04\x00\xd2\xe5\x44" .
    "\x20\x00\x00\x44\xe5\x44\x20\x08\x00\x3c\xe5\x4c\x20\x18\x12\x68" .
    "\xe5\x44\x20\x42\x00\x01\xb9\x04\x00\x3d\xc0\x21\x00\x76\x00\x05" .
    "\xc0\xe5\xff\xff\xfc\x54\xec\x28\x00\x07\x00\x7e\xa7\xc8\xff\xfb" .
    "\xa7\xf4\x00\x38\xe5\x54\xd0\x06\x00\x20\xa7\x74\xff\xf9\xc4\x1d" .
    "\x00\x00\x07\xb1\x12\x11\xa7\x84\x00\x14\xe3\x10\xd0\x24\x00\x12" .
    "\xa7\x84\xff\xee\xc2\x1b\x00\x0f\xff\xff\xec\x11\x20\xb3\x0c\x55" .
    "\xe3\x10\xc0\x00\x00\x24\xa7\xc8\x00\x00\xa7\xf4\x00\x1b\x91\x03" .
    "\x00\x83\xa7\x84\x00\x0c\xb9\x04\x00\x2d\xc0\xe5\xff\xff\xfe\xe3" .
    "\xec\x28\xff\xe5\x00\x7e\xa7\xf4\xff\xd3\xa7\x29\x00\x00\xc0\xe5" .
    "\xff\xff\xfb\xc1\x91\x03\x00\x83\xa7\x74\xff\xef\xa7\xf4\xff\xc8" .
    "\xb9\x04\x00\x2d\xc0\xe5\xff\xff\xf9\x76\xe3\x40\xf0\xb0\x00\x04" .
    "\xb9\x14\x00\x2c\xeb\xcf\xf0\xa0\x00\x04\x07\xf4\x07\x07\x07\x07" .
    "\xeb\xcf\xf0\x80\x00\x24\xa7\xf1\x1f\x80\xb9\x04\x00\xc2\xe3\xf0" .
    "\xff\xe0\xff\x71\xa7\x29\x00\x02\xa7\x84\x00\x01\xc0\xe5\xff\xff" .
    "\xfc\x2e\xc0\xe5\xff\xff\xfb\x0b\x92\x1c\x20\x0a\x92\x00\x20\x0e" .
    "\x92\x01\x20\x1e\xe3\xc0\x20\x28\x00\x24\xb9\x04\x00\xd2\xe5\x44" .
    "\x20\x00\x00\x44\xe5\x44\x20\x08\x00\x3c\xe5\x4c\x20\x18\x47\x12" .
    "\xe5\x4c\x20\x34\x00\x02\xe5\x4c\x20\x24\x00\x01\xe5\x44\x20\x42" .
    "\x00\x01\xb9\x04\x00\x3d\xc0\x21\x00\x76\x00\x05\xc0\xe5\xff\xff" .
    "\xfb\xce\xec\x26\x00\x0d\x00\x7e\xe5\x54\xd0\x06\x00\x20\xa7\x74" .
    "\x00\x07\xb9\x04\x00\x2d\xc0\xe5\xff\xff\xfe\xb1\x95\x00\xd0\x1f" .
    "\xa7\x84\x00\x0f\xa7\x18\x00\x01\xb9\x04\x00\x2d\xc4\x1f\x00\x00" .
    "\x07\x22\xeb\xcf\xf0\xa0\x00\x04\xc0\xf4\xff\xff\xf9\x14\xa7\x18" .
    "\x00\x00\xb9\x04\x00\x2d\xc4\x1f\x00\x00\x07\x15\xc0\xe5\xff\xff" .
    "\xf9\x0a\xa7\x29\x00\x01\xc0\xe5\xff\xff\xfb\xd9\xa7\x29\x00\x03" .
    "\xeb\xcf\xf0\xa0\x00\x04\xc0\xf4\xff\xff\xfb\xd1\x07\x07\x07\x07" .
    "\xeb\xef\xf0\x90\x00\x24\xa7\xf1\x1f\x80\xa7\x29\x00\x01\xe3\xf0" .
    "\xff\xf0\xff\x71\xa7\x84\x00\x01\xc0\xe5\xff\xff\xfb\xc0\xa7\x09" .
    "\x00\x00\xa7\x19\x00\x00\xa7\x29\x00\x02\x83\x02\x03\x08\xeb\xef" .
    "\xf0\xa0\x00\x04\x07\xfe\x07\x07\xeb\xdf\xf0\x88\x00\x24\xa7\xf1" .
    "\x1f\x80\xb9\x04\x00\xd2\xe3\xf0\xff\xe8\xff\x71\xc0\x20\x00\x00" .
    "\x05\xc6\xa7\x84\x00\x01\xc0\xe5\xff\xff\xfa\x55\xb9\x04\x00\x2d" .
    "\xc0\xe5\xff\xff\xf6\xa4\xb9\x04\x00\x2d\xc0\xe5\xff\xff\xf9\x3f" .
    "\xeb\xdf\xf0\x88\x00\x24\xc0\xd0\x00\x00\x05\xad\xa7\xf1\x1f\x80" .
    "\xb9\x04\x00\x12\xa7\x84\x00\x01\xe3\xf0\xff\xe8\xff\x71\xec\x26" .
    "\x00\x07\x00\x7c\xa7\x29\x45\x20\xa7\xf4\x00\x27\xa7\x21\x0f\xff" .
    "\xa7\x74\xff\xfa\xa7\x28\xff\xf2\xe5\x01\x10\x00\x00\x00\xb2\x22" .
    "\x00\x20\x88\x20\x00\x1c\xec\x22\xff\xef\x01\x7f\xd5\x07\xd0\x00" .
    "\x10\x00\xa7\x74\xff\xe9\x41\x20\x10\x0c\xa7\x39\x0f\xf4\xa7\x48" .
    "\x00\x00\xb2\x41\x00\x42\xa7\x14\xff\xfe\x59\x40\x10\x08\xa7\x84" .
    "\x00\x07\xa7\x29\x45\x21\xc0\xe5\xff\xff\xff\xa9\xe5\x55\x10\x0c" .
    "\x00\x01\xa7\x29\x45\x22\xa7\x24\xff\xf8\xe3\x20\x10\x10\x00\x02" .
    "\xa7\x74\x00\x06\xa7\x29\x45\x23\xa7\xf4\xff\xef\xeb\xdf\xf0\xa0" .
    "\x00\x04\x07\xfe\x07\x07\x07\x07\xeb\x0f\x02\x00\x00\x24\xa7\xfb" .
    "\xff\x38\xc0\xe0\xff\xff\xfa\x63\x0d\xee\xeb\x0f\x02\x00\x00\x04" .
    "\xb2\xb2\x01\x50\xff\xff\xff\x7a\xff\xff\xff\x7e\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x80\x00\x00\x00" .
    "\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\x00" .
    "\x00\x00\x00\x01\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x00" .
    "\x00\x00\x00\x01\x80\x00\x00\x00\x00\x02\x00\x00\x80\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\x00" .
    "\x00\x00\x00\x00\x00\x00\xb5\xf4\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7" .
    "\xf8\xf9\x81\x82\x83\x84\x85\x86\x01\x02\x00\x01\x80\x00\x00\x00" .
    "\x00\x00\x00\x00\x00\x00\xac\xa2\x00\x00\x00\x00\x00\x00\xac\xb2" .
    "\x00\x00\x00\x00\x00\x00\xac\xc2\x00\x00\x00\x00\x00\x00\xac\xcc" .
    "\x4f\x53\x49\x4e\x46\x4f\x53\x5a\xc4\xa4\x94\x97\x40\x86\x81\x89" .
    "\x93\x85\x84\x7a\x40\xc3\x88\x85\x83\x92\x40\x84\x89\xa2\x81\x82" .
    "\x93\x85\x84\x40\xa6\x81\x89\xa3\x40\x83\x96\x84\x85\x00\x00\x00" .
    "\x00\x01\x02\x03\x07\x09\x07\x7f\x07\x07\x07\x0b\x0c\x0d\x0e\x0f" .
    "\x10\x11\x12\x13\x07\x0a\x08\x07\x18\x19\x07\x07\x07\x07\x07\x07" .
    "\x07\x07\x1c\x07\x07\x0a\x17\x1b\x07\x07\x07\x07\x07\x05\x06\x07" .
    "\x07\x07\x16\x07\x07\x07\x07\x04\x07\x07\x07\x07\x14\x15\x07\x1a" .
    "\x20\xff\x83\x84\x85\xa0\x07\x86\x87\xa4\x9b\x2e\x3c\x28\x2b\x7c" .
    "\x26\x82\x88\x89\x8a\xa1\x8c\x07\x8d\xe1\x21\x24\x2a\x29\x3b\xaa" .
    "\x2d\x2f\x07\x8e\x07\x07\x07\x8f\x80\xa5\x07\x2c\x25\x5f\x3e\x3f" .
    "\x07\x90\x07\x07\x07\x07\x07\x07\x70\x60\x3a\x23\x40\x27\x3d\x22" .
    "\x07\x61\x62\x63\x64\x65\x66\x67\x68\x69\xae\xaf\x07\x07\x07\xf1" .
    "\xf8\x6a\x6b\x6c\x6d\x6e\x6f\x70\x71\x72\xa6\xa7\x91\x07\x92\x07" .
    "\xe6\x7e\x73\x74\x75\x76\x77\x78\x79\x7a\xad\xab\x07\x07\x07\x07" .
    "\x5e\x9c\x9d\xfa\x07\x07\x07\xac\xab\x07\x5b\x5d\x07\x07\x07\x07" .
    "\x7b\x41\x42\x43\x44\x45\x46\x47\x48\x49\x07\x93\x94\x95\xa2\x07" .
    "\x7d\x4a\x4b\x4c\x4d\x4e\x4f\x50\x51\x52\x07\x96\x81\x97\xa3\x98" .
    "\x5c\xf6\x53\x54\x55\x56\x57\x58\x59\x5a\xfd\x07\x99\x07\x07\x07" .
    "\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39\x07\x07\x9a\x07\x07\x07" .
    "\x00\x01\x02\x03\x07\x09\x07\x7f\x07\x07\x07\x0b\x0c\x0d\x0e\x0f" .
    "\x10\x11\x12\x13\x07\x0a\x08\x07\x18\x19\x07\x07\x07\x07\x07\x07" .
    "\x07\x07\x1c\x07\x07\x0a\x17\x1b\x07\x07\x07\x07\x07\x05\x06\x07" .
    "\x07\x07\x16\x07\x07\x07\x07\x04\x07\x07\x07\x07\x14\x15\x07\x1a" .
    "\x20\xff\x83\x84\x85\xa0\x07\x86\x87\xa4\x9b\x2e\x3c\x28\x2b\x7c" .
    "\x26\x82\x88\x89\x8a\xa1\x8c\x07\x8d\xe1\x21\x24\x2a\x29\x3b\xaa" .
    "\x2d\x2f\x07\x8e\x07\x07\x07\x8f\x80\xa5\x07\x2c\x25\x5f\x3e\x3f" .
    "\x07\x90\x07\x07\x07\x07\x07\x07\x70\x60\x3a\x23\x40\x27\x3d\x22" .
    "\x07\x61\x62\x63\x64\x65\x66\x67\x68\x69\xae\xaf\x07\x07\x07\xf1" .
    "\xf8\x6a\x6b\x6c\x6d\x6e\x6f\x70\x71\x72\xa6\xa7\x91\x07\x92\x07" .
    "\xe6\x7e\x73\x74\x75\x76\x77\x78\x79\x7a\xad\xab\x07\x07\x07\x07" .
    "\x5e\x9c\x9d\xfa\x07\x07\x07\xac\xab\x07\x5b\x5d\x07\x07\x07\x07" .
    "\x7b\x41\x42\x43\x44\x45\x46\x47\x48\x49\x07\x93\x94\x95\xa2\x07" .
    "\x7d\x4a\x4b\x4c\x4d\x4e\x4f\x50\x51\x52\x07\x96\x81\x97\xa3\x98" .
    "\x5c\xf6\x53\x54\x55\x56\x57\x58\x59\x5a\xfd\x07\x99\x07\x07\x07" .
    "\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39\x07\x07\x9a\x07\x07\x07" .
    "\x00\x00\x00\x01";
}

