libcdio-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Libcdio-devel] [PATCH 2/5] Add extract ISO/UDF example


From: Pete Batard
Subject: [Libcdio-devel] [PATCH 2/5] Add extract ISO/UDF example
Date: Fri, 10 Feb 2012 19:34:55 +0000
User-agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:10.0) Gecko/20120129 Thunderbird/10.0

* also add UDF extraction test and remove testunconfig
* also remove some polluting output from test/Makefile

NB: this patch should properly create the 755 permission for the .sh.
In pbatard-integration I have an additional patch to fix the perms, but it shouldn't be needed if you use the attached one.

Regards,

/Pete
>From a2313a7f90469e885fd86095deaa85508f6097d6 Mon Sep 17 00:00:00 2001
From: Pete Batard <address@hidden>
Date: Fri, 10 Feb 2012 18:25:33 +0000
Subject: [PATCH 2/5] Add extract ISO/UDF example

* also add UDF test and remove testunconfig
* also remove some polluting output from test/Makefile
---
 example/.gitignore      |    1 +
 example/Makefile.am     |    5 +-
 example/README          |    2 +
 example/extract.c       |  311 +++++++++++++++++++++++++++++++++++++++++++++++
 test/.gitignore         |    1 -
 test/Makefile.am        |   17 ++--
 test/check_udf.sh       |   54 ++++++++
 test/data/test-udf1.iso |  Bin 0 -> 911360 bytes
 8 files changed, 381 insertions(+), 10 deletions(-)
 create mode 100644 example/extract.c
 create mode 100755 test/check_udf.sh
 create mode 100644 test/data/test-udf1.iso

diff --git a/example/.gitignore b/example/.gitignore
index 258fcf9..b020928 100644
--- a/example/.gitignore
+++ b/example/.gitignore
@@ -14,6 +14,7 @@
 /discid
 /drives
 /eject
+/extract
 /isofile
 /isofile2
 /isofuzzy
diff --git a/example/Makefile.am b/example/Makefile.am
index de65b5b..995f619 100644
--- a/example/Makefile.am
+++ b/example/Makefile.am
@@ -26,7 +26,7 @@ paranoia_progs = paranoia paranoia2
 endif
 if BUILD_EXAMPLES
 noinst_PROGRAMS = audio cdchange cdtext device discid drives eject \
-                 isofile isofile2 isofuzzy isolist isolsn \
+                 extract isofile isofile2 isofuzzy isolist isolsn \
                  mmc1 mmc2 mmc2a mmc3 $(paranoia_progs) tracks \
                  sample3 sample4 udf1 udffile cdio-eject
 endif
@@ -54,6 +54,9 @@ drives_LDADD          = $(LIBCDIO_LIBS) $(LTLIBICONV)
 eject_DEPENDENCIES    = $(LIBCDIO_DEPS)
 eject_LDADD           = $(LIBCDIO_LIBS) $(LTLIBICONV)
 
+extract_DEPENDENCIES  = $(LIBISO9660_LIBS) $(LIBUDF_LIBS) $(LIBCDIO_DEPS)
+extract_LDADD         = $(LIBISO9660_LIBS) $(LIBUDF_LIBS) $(LIBCDIO_LIBS) 
$(LTLIBICONV)
+
 cdio_eject_DEPENDENCIES = $(LIBCDIO_DEPS)
 cdio_eject_LDADD        = $(LIBCDIO_LIBS) $(LTLIBICONV)
 
diff --git a/example/README b/example/README
index 86b85bf..4a675ba 100644
--- a/example/README
+++ b/example/README
@@ -41,6 +41,8 @@ drives.c:    A program to show drivers installed and what the 
default
 eject.c:     A program eject a CD from a CD-ROM drive and then close the door
             again.
 
+extract.c:   Extract the full contents of either an UDF or ISO9660 image file.
+
 isofile.c:   A program to show using libiso9660 to extract a file from an
             ISO-9660 image.
 
diff --git a/example/extract.c b/example/extract.c
new file mode 100644
index 0000000..2d9a90c
--- /dev/null
+++ b/example/extract.c
@@ -0,0 +1,311 @@
+/*
+  Copyright (C) 2012 Pete Batard <address@hidden>
+  Based on samples copyright (c) 2003-2011 Rocky Bernstein <address@hidden>
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+/* Extract the full contents of either an UDF or ISO9660 image file.
+   TODO: timestamp preservation, file permissions, Unicode
+ */
+
+/* To handle files > 2 GB, we may need the Large File Support settings
+   defined in config.h. Comes first, as stdio.h depends on it. */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#define __CDIO_CONFIG_H__ 1
+#endif
+
+#ifdef HAVE_STDIO_H
+#include <stdio.h>
+#endif
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif
+#ifdef HAVE_ERRNO_H
+#include <errno.h>
+#endif
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+
+#if defined(_WIN32)
+#include <direct.h>
+#else
+#ifdef HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#define _mkdir(a) mkdir(a, S_IRWXU)
+#endif
+
+#if !defined(HAVE_SNPRINTF)
+/* Fallback to unsafe 'sprintf' */
+#define snprintf(str, size, format, ...) sprintf(str, format, __VA_ARGS__)
+#endif
+
+#include <cdio/cdio.h>
+#include <cdio/logging.h>
+#include <cdio/iso9660.h>
+#include <cdio/udf.h>
+
+#ifndef MIN
+#define MIN(a,b) (((a) < (b)) ? (a) : (b))
+#endif
+
+#define print_vd_info(title, fn)     \
+  if (fn(p_iso, &psz_str)) {         \
+    printf(title ": %s\n", psz_str); \
+  }                                  \
+  free(psz_str);                     \
+  psz_str = NULL;
+
+const char *psz_extract_dir;
+
+static void log_handler (cdio_log_level_t level, const char *message)
+{
+  switch(level) {
+  case CDIO_LOG_DEBUG:
+  case CDIO_LOG_INFO:
+    return;
+  default:
+    printf("cdio %d message: %s\n", level, message);
+  }
+}
+
+static int udf_extract_files(udf_t *p_udf, udf_dirent_t *p_udf_dirent, const 
char *psz_path)
+{
+  FILE *fd = NULL;
+  int i_length;
+  char* psz_fullpath;
+  const char* psz_basename;
+  udf_dirent_t *p_udf_dirent2;
+  uint8_t buf[UDF_BLOCKSIZE];
+  int64_t i_read, i_file_length;
+
+  if ((p_udf_dirent == NULL) || (psz_path == NULL))
+    return 1;
+
+  while (udf_readdir(p_udf_dirent)) {
+    psz_basename = udf_get_filename(p_udf_dirent);
+    i_length = 3 + strlen(psz_path) + strlen(psz_basename) + 
strlen(psz_extract_dir);
+    psz_fullpath = (char*)calloc(sizeof(char), i_length);
+    if (psz_fullpath == NULL) {
+      fprintf(stderr, "Error allocating file name\n");
+      goto out;
+    }
+    i_length = snprintf(psz_fullpath, i_length, "%s%s/%s", psz_extract_dir, 
psz_path, psz_basename);
+    if (i_length < 0) {
+      goto out;
+    }
+    printf("Extracting: %s\n", psz_fullpath);
+    if (udf_is_dir(p_udf_dirent)) {
+      _mkdir(psz_fullpath);
+      p_udf_dirent2 = udf_opendir(p_udf_dirent);
+      if (p_udf_dirent2 != NULL) {
+        if (udf_extract_files(p_udf, p_udf_dirent2, 
&psz_fullpath[strlen(psz_extract_dir)]))
+          goto out;
+      }
+    } else {
+      fd = fopen(psz_fullpath, "wb");
+      if (fd == NULL) {
+        fprintf(stderr, "  Unable to create file\n");
+        goto out;
+      }
+      i_file_length = udf_get_file_length(p_udf_dirent);
+      while (i_file_length > 0) {
+        memset(buf, 0, UDF_BLOCKSIZE);
+        i_read = udf_read_block(p_udf_dirent, buf, 1);
+        if (i_read < 0) {
+          fprintf(stderr, "  Error reading UDF file %s\n", 
&psz_fullpath[strlen(psz_extract_dir)]);
+          goto out;
+        }
+        fwrite(buf, (size_t)MIN(i_file_length, i_read), 1, fd);
+        if (ferror(fd)) {
+          fprintf(stderr, "  Error writing file: %s\n", strerror(errno));
+          goto out;
+        }
+        i_file_length -= i_read;
+      }
+      fclose(fd);
+      fd = NULL;
+    }
+    free(psz_fullpath);
+  }
+  return 0;
+
+out:
+  if (fd != NULL)
+    fclose(fd);
+  free(psz_fullpath);
+  return 1;
+}
+
+static int iso_extract_files(iso9660_t* p_iso, const char *psz_path)
+{
+  FILE *fd = NULL;
+  int i_length, r = 1;
+  char psz_fullpath[4096], *psz_basename;
+  const char *psz_iso_name = &psz_fullpath[strlen(psz_extract_dir)];
+  unsigned char buf[ISO_BLOCKSIZE];
+  CdioListNode_t* p_entnode;
+  iso9660_stat_t *p_statbuf;
+  CdioList_t* p_entlist;
+  size_t i;
+  lsn_t lsn;
+  int64_t i_file_length;
+
+  if ((p_iso == NULL) || (psz_path == NULL))
+    return 1;
+
+  i_length = snprintf(psz_fullpath, sizeof(psz_fullpath), "%s%s/", 
psz_extract_dir, psz_path);
+  if (i_length < 0)
+    return 1;
+  psz_basename = &psz_fullpath[i_length];
+
+  p_entlist = iso9660_ifs_readdir(p_iso, psz_path);
+  if (!p_entlist)
+    return 1;
+
+  _CDIO_LIST_FOREACH (p_entnode, p_entlist) {
+    p_statbuf = (iso9660_stat_t*) _cdio_list_node_data(p_entnode);
+    /* Eliminate . and .. entries */
+    if ( (strcmp(p_statbuf->filename, ".") == 0)
+      || (strcmp(p_statbuf->filename, "..") == 0) )
+      continue;
+    iso9660_name_translate(p_statbuf->filename, psz_basename);
+    if (p_statbuf->type == _STAT_DIR) {
+      _mkdir(psz_fullpath);
+      if (iso_extract_files(p_iso, psz_iso_name))
+        goto out;
+    } else {
+      printf("Extracting: %s\n", psz_fullpath);
+      fd = fopen(psz_fullpath, "wb");
+      if (fd == NULL) {
+        fprintf(stderr, "  Unable to create file\n");
+        goto out;
+      }
+      i_file_length = p_statbuf->size;
+      for (i = 0; i_file_length > 0; i++) {
+        memset(buf, 0, ISO_BLOCKSIZE);
+        lsn = p_statbuf->lsn + i;
+        if (iso9660_iso_seek_read(p_iso, buf, lsn, 1) != ISO_BLOCKSIZE) {
+          fprintf(stderr, "  Error reading ISO9660 file %s at LSN %lu\n",
+            psz_iso_name, (long unsigned int)lsn);
+          goto out;
+        }
+        fwrite(buf, (size_t)MIN(i_file_length, ISO_BLOCKSIZE), 1, fd);
+        if (ferror(fd)) {
+          fprintf(stderr, "  Error writing file: %s\n", strerror(errno));
+          goto out;
+        }
+        i_file_length -= ISO_BLOCKSIZE;
+      }
+      fclose(fd);
+      fd = NULL;
+    }
+  }
+  r = 0;
+
+out:
+  if (fd != NULL)
+    fclose(fd);
+  _cdio_list_free(p_entlist, true);
+  return r;
+}
+
+int main(int argc, char** argv)
+{
+  iso9660_t* p_iso = NULL;
+  udf_t* p_udf = NULL;
+  udf_dirent_t* p_udf_root;
+  char *psz_str = NULL;
+  char vol_id[UDF_VOLID_SIZE] = "";
+  char volset_id[UDF_VOLSET_ID_SIZE+1] = "";
+  int r = 0;
+
+  cdio_log_set_handler (log_handler);
+
+  if (argc < 3) {
+    fprintf(stderr, "Usage: extract <iso_image> <extraction_dir>\n");
+    return 1;
+  }
+
+  /* Warn if LFS doesn't appear to be enabled */
+  if (sizeof(off_t) < 8) {
+    fprintf(stderr, "INFO: Large File Support not detected (required for files 
>2GB)\n");
+  }
+
+  psz_extract_dir = argv[2];
+  if (_mkdir(psz_extract_dir) == 0) {
+    printf("Creating directory: %s\n", psz_extract_dir);
+  } else if (errno != EEXIST) {
+    fprintf(stderr, "Unable to create extraction directory %s\n", 
psz_extract_dir);
+    return 1;
+  }
+
+  /* First try to open as UDF - fallback to ISO if it failed */
+  p_udf = udf_open(argv[1]);
+  if (p_udf == NULL)
+    goto try_iso;
+
+  p_udf_root = udf_get_root(p_udf, true, 0);
+  if (p_udf_root == NULL) {
+    fprintf(stderr, "Couldn't locate UDF root directory\n");
+    goto out;
+  }
+  vol_id[0] = 0; volset_id[0] = 0;
+
+  /* Show basic UDF Volume info */
+  if (udf_get_volume_id(p_udf, vol_id, sizeof(vol_id)) > 0)
+    fprintf(stderr, "Volume id: %s\n", vol_id);
+  if (udf_get_volume_id(p_udf, volset_id, sizeof(volset_id)) >0 ) {
+    volset_id[UDF_VOLSET_ID_SIZE]='\0';
+    fprintf(stderr, "Volume set id: %s\n", volset_id);
+  }
+  fprintf(stderr, "Partition number: %d\n", udf_get_part_number(p_udf));
+
+  /* Recursively extract files */
+  r = udf_extract_files(p_udf, p_udf_root, "");
+
+  goto out;
+
+try_iso:
+  p_iso = iso9660_open(argv[1]);
+  if (p_iso == NULL) {
+    fprintf(stderr, "Unable to open image '%s'.\n", argv[1]);
+    r = 1;
+    goto out;
+  }
+
+  /* Show basic ISO9660 info from the Primary Volume Descriptor. */
+  print_vd_info("Application", iso9660_ifs_get_application_id);
+  print_vd_info("Preparer   ", iso9660_ifs_get_preparer_id);
+  print_vd_info("Publisher  ", iso9660_ifs_get_publisher_id);
+  print_vd_info("System     ", iso9660_ifs_get_system_id);
+  print_vd_info("Volume     ", iso9660_ifs_get_volume_id);
+  print_vd_info("Volume Set ", iso9660_ifs_get_volumeset_id);
+
+  r = iso_extract_files(p_iso, "");
+
+out:
+  if (p_iso != NULL)
+    iso9660_close(p_iso);
+  if (p_udf != NULL)
+    udf_close(p_udf);
+
+  return r;
+}
diff --git a/test/.gitignore b/test/.gitignore
index 0f1af53..4d9a925 100644
--- a/test/.gitignore
+++ b/test/.gitignore
@@ -40,4 +40,3 @@
 /testpregap.c
 /testsolaris
 /testtoc
-/testunconfig
diff --git a/test/Makefile.am b/test/Makefile.am
index 903c4d2..2d498f3 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -1,4 +1,5 @@
-#   Copyright (C) 2003, 2004, 2006, 2008, 2009, 2010 Rocky Bernstein 
<address@hidden>
+#   Copyright (C) 2003, 2004, 2006, 2008, 2009, 2010
+#   2012 Rocky Bernstein <address@hidden>
 #
 #   This program is free software: you can redistribute it and/or modify
 #   it under the terms of the GNU General Public License as published by
@@ -30,7 +31,7 @@ endif
 
 hack = check_sizeof testassert testgetdevices testischar \
        testisocd testisocd2 testiso9660 test_lib_driver_util \
-       $(testparanoia) testpregap testunconfig
+       $(testparanoia) testpregap
 
 EXTRA_PROGRAMS = testdefault 
 DATA_DIR       = @abs_top_srcdir@/test/data
@@ -48,20 +49,20 @@ testiso9660_LDADD     = $(LIBISO9660_LIBS) $(LIBCDIO_LIBS) 
$(LTLIBICONV)
 testisocd_LDADD       = $(LIBISO9660_LIBS) $(LIBCDIO_LIBS) $(LTLIBICONV)
 testisocd2_LDADD      = $(LIBISO9660_LIBS) $(LIBCDIO_LIBS) $(LTLIBICONV)
 
-testunconfig_LDADD    = $(LIBCDIO_LIBS) $(LTLIBICONV)
-
 test_lib_driver_util_LDADD    = $(LIBCDIO_LIBS) $(LTLIBICONV)
 test_lib_driver_util_CFLAGS   = -DDATA_DIR=\"$(DATA_DIR)\"
 
 testpregap_LDADD    = $(LIBCDIO_LIBS) $(LTLIBICONV)
 testpregap_CFLAGS   = -DDATA_DIR=\"$(DATA_DIR)\"
 
-check_SCRIPTS = check_nrg.sh  check_cue.sh  check_cd_read.sh \
+check_SCRIPTS = check_nrg.sh  check_cue.sh  check_cd_read.sh check_udf.sh \
                 check_iso.sh  check_fuzzyiso.sh check_paranoia.sh check_opts.sh
 # If we beefed this up so it checked to see if a CD-DA was loaded
 # it could be an automatic test. But for now, not so.
 #               check_paranoia.sh
 
+check_udf.sh: @abs_top_builddir@/example/extract
+
 check_PROGRAMS = $(hack)
 
 check_DATA = vcd_demo.right vcd_demo_vcdinfo.right \
@@ -99,12 +100,12 @@ test: check-am
 # learning any more of this awful system than I need to.
 check-am:      make-executable
 make-executable: check_nrg.sh check_cue.sh check_paranoia.sh
-       chmod +x *.sh
-       if test ! -f cdda.bin ; then \
+       @chmod +x *.sh
+       @if test ! -f cdda.bin ; then \
                test -L cdda.bin && $(RM) cdda.bin ; \
                $(LN_S) $(abs_top_srcdir)/test/data/cdda.bin cdda.bin ; \
        fi
-       if test ! -f isofs-m1.bin ; then \
+       @if test ! -f isofs-m1.bin ; then \
                test -L cdda.bin && $(RM) isofs-m1.bin ; \
                $(LN_S) $(abs_top_srcdir)/test/data/isofs-m1.bin isofs-m1.bin ; 
 \
        fi
diff --git a/test/check_udf.sh b/test/check_udf.sh
new file mode 100755
index 0000000..ae31537
--- /dev/null
+++ b/test/check_udf.sh
@@ -0,0 +1,54 @@
+#!/bin/sh
+#   Copyright (C) 2012 Rocky Bernstein <address@hidden>
+#
+#   This program is free software: you can redistribute it and/or modify
+#   it under the terms of the GNU General Public License as published by
+#   the Free Software Foundation, either version 3 of the License, or
+#   (at your option) any later version.
+#
+#   This program is distributed in the hope that it will be useful,
+#   but WITHOUT ANY WARRANTY; without even the implied warranty of
+#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#   GNU General Public License for more details.
+#
+#   You should have received a copy of the GNU General Public License
+#   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+#
+# Tests to see that CD reading is correct (via cd-read). 
+
+if test -z $srcdir ; then
+  srcdir=`pwd`
+fi
+
+if test "X$top_builddir" = "X" ; then
+  top_builddir=`pwd`/..
+fi
+
+if test ! -x $top_builddir/example/extract ; then
+  exit 77
+fi
+
+. ${top_builddir}/test/check_common_fn
+
+extract_dir=/tmp/udf-$$
+if test -d $extract_dir ; then
+    rm -fr $extract_dir
+fi
+
+udf_iso=$srcdir/data/test-udf1.iso
+extract_program=$top_builddir/example/extract
+cmd="$extract_program $udf_iso $extract_dir"
+$cmd
+RC=$?
+check_result $RC "$cmd"
+
+if test $RC -eq 0 ; then
+    rm -fr $extract_dir
+fi
+
+exit $RC
+
+#;;; Local Variables: ***
+#;;; mode:shell-script ***
+#;;; eval: (sh-set-shell "bash") ***
+#;;; End: ***
diff --git a/test/data/test-udf1.iso b/test/data/test-udf1.iso
new file mode 100644
index 
0000000000000000000000000000000000000000..181b9df2621104f9b2e39e368840762a41374b55
GIT binary patch
literal 911360
zcmeIbYj9;(dY*UCbED44B1f?z$5Ev1)=2E0=_|?Mh~#)address@hidden|k4^&z
z=pzE>KsZ1*TfRxQY)N)5&i#Iu6XhmFNu0Y=l~kq5zfzTos{BV)N&ck#L#psc;@q4l
address@hidden(%dO61W4X^6(&`|Q2ev%dAc-}=_t>-2j3KmY;|fB*y_009U<00Izz
z00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<
z0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb
z2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##
zAh58seC^uxh2Glg`kk*;PySh2-rTtL<kM9l`8O8)uZ6!+{(jPLUAEx=^`3dA*H0Jq
zKNX+#9}C~%|DNwXo9^~(?-~F7Oz&vnd%x$|&;Hgqf6$+=`1w60aC2pSb!%hw*5b{T
zO8=-{dHLmQSKqj?Roz%!TiLq1wY_qyTH0J$+}_x%E-YQFuD|lii`B}NyBl}bZ!Ryc
zt(1dby!^toYcE$ndgb=Y;^x-I`qdx3vbFTa>YA+bW?bXbzUGUS4DqY0+tv2U;?vCW
zgQ4=mwd?->7hkx3{pIV|uU-4C#|~UO^V56miiO?>Q#S7UQ6XSg#t#HO6a>y?{qL>y
zR(tEcJH4;<s?Psg>Mi#+dmFu5ooB03nWFzcbaka1>inJbdshEHt%K=j;Sc!t`QCGJ
zWZ}6d>HibT(p>|Ne)|dB?5)UZR(o5rj8)mjV$Vmae5C5V(tBC|cdhsJ-W$Cex~kHD
zS7mD}`uAP^Z(IMeMJ>s;address@hidden(address@hidden@c%}EE{<YG(qEBqdLf7?-WnJsL
zd?Pjb_FeRtm_K&ljQn3i|350K{JU4q?Bn<af!})qzf<)8_r55U00Izz00bZaf!{3x
zudggR|IZHuAOHafKmY>2j|i-9ZC-l;{r`Q`;#3s^5P$##Akgb+Ar<3)3;_ZVfB*y_
z009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz
z00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<
z0uX=z1R(J3C9u#t*Zc2v%fs96E>x{sKcnwi-?-H}F#FF>F7*7#bNX*D{`bsFH?FT-
zf9d7d{SBxueDV6V+3P>(zdqC3*xFvKmL`Ws$HVD#xLe&Bk9H=z!*BS(-|FYT;RmG)
zf8+aq^HU4o`#sNn+JAm-e>address@hidden@FWZ}Nd$4gm;200Izb5%{<?{D0BkKk#es
zF8mSwj&address@hidden)!LiY>UeL`y7pZ8nxJn{E8iowXg%=*`R6A;kh?zVrfB<<$Z#A2
z5P$##eh&address@hidden|<address@hidden|Ky%Mxs;@
address@hidden@O1Jx&UtRb?{r;Fs`cWU>KchN)E-K+fh9?CMMuYK*t9EW7YS`;N
address@hidden|1teS!02Lcd)address@hidden;&Tvy
z00bZa0SJ6#2s|VGucEZ?F8t6(rqmP^0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_
z009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz
z00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|address@hidden
address@hidden&-jz);yZKvO*GHEbmRKU^_O0L{hEGW_~P~Uy;`^Zp#J%pZ}mHizU9w<
zlQsK|@BhtDEqw3yJojmT?!*3_L*HcGxEulyfB*zO`~*HO4gWhT<`4YZy9?L#JHA!!
zbN<@address@hidden>!LI2R`cG57?^H2mVjA{R2nL10Vna2teSQC-4dB|9`8G{rFej
zU3fvi&*^`b`E#FN-`c$9BOlHmmvKS=`C%6ijs0*o5~YFw1Rwx`4=sUDO7Xw0((Qic
zR~KH??~l2pANBG5GpfVqq7qJIEKLrN4n~9ViK}*QA!^v`J?FogpHJ$ak>2>Q#}X>{
zS6o)j!0-bB2tWV=5O}`?J|+GCul3=>address@hidden@5P$##AOHafd}IhbBmGZn
z_1<0h!bhgm6chpwfB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHaf
zKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_
z009U<00Izz00bZa0SG_<0uX=z1R(I?Ch#5F|MzEA#Q*VsdJx|$)Baxi_BYIYs{Kbt
zm3;b2KK_k-Ctv+NgA3>Me;qgE5Ck9q0SG_<address@hidden>address@hidden<
z00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa
z0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z
z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=
z5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHaf
zKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_
z009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz
z00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<
z0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb
z2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##
zAOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|
zfB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<
z00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa
z0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z
z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=
z5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHaf
zKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_
z009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz
z00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<
z0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb
z2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##
zAOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|
zfB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<
z00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa
z0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z
z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=
z5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHaf
zKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_
z009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz
z00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<
z0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb
z2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##
zAOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|
zfB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<
z00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa
z0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z
z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=
z5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHaf
zKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_
z009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz
z00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZ~4+PHj
z&h`E~Rb=6By}Qs`&address@hidden)zpwc>KM;Tb1Rwwb2+SXWg>$_ds?~q<address@hidden
address@hidden|SY5n_S`ad6x6F%vmjjip)address@hidden@hdDEpKkz
zdhhE#pesK40hj-i-*UO1=_w*>{d_Kf-&wv9&<address@hidden(BK`>h2tWV=5cuW@
zJR`OFyYZ2C7iM(address@hidden>L361}sRe3-E!mrfh&X4PF#RC4NpKIrS
zC;$AlKiK2~eleY_a|address@hidden)G{7L`rj4wX7KOB#ylhNT||Gkn38XEWfTt>bbKEEIU
z0SG_<0`HT+g7p7y>a#cR{h`p+g<ikclhDrOpmpBYc~0Q)address@hidden|(*3B6B*xIeSB
zar^G-`ptCx|DfxC;&y%gr+ob<bj&}WOxJI&EH2+#Nr(address@hidden>{{MA7
z>u-MHS86TK<Nqwx&G`T4pKHedU;U+2!0*oGeA1Y|ef<55|5IF%9-{D}=jVPVKa*b&
address@hidden)`|IV+}WAkrB|3BtQ1O1ddL0jja^zZkh|address@hidden>address@hidden
z$$udL0SG_<0uXqg1QvSFN|rm7`F-Azk3j$e5P$##AOHafKmY;|address@hidden
zBmh2a?Lv7V009U<00Izz00bZa0SG_<0^d#o3%%!<|NnLZ<z5hg00bZa0SG_<0uX=z
z1Rwx`4<Uh=|9_78{|{l)P$URI00Izz00bZa0SG_<0uX?}w~fFr#{2*A4uH4U(H6Z&
z`ue|address@hidden@address@hidden@address@hidden|6_l<
address@hidden&P7lfA)I6z1LX|eYTWip)SB-D!}1;
z79c;l`PKW=z3)!X|L(MZ;V*qP7fnUbiG_aNzxc{)address@hidden(s=hFV%
zFUMW<fl}%6`)uU}vOM9P-e=RZKb!VWdiG=GOnUZrq`i>!XxCIv{`5jG9r_j@>=N?>
z0SG_<0uY!Xa6Z=mNr9g8?)+W)-+e_}nXkQvs(x2*skhO)-Miac?XCB2_O85#5`JfI
zv$xV)>@D|h={G+RfB*y_009Vmy9ump{`NwD`xi92UcLSG>#w|WeR2DZm1=Wi>8sV|
z>hjH%YIS{kWpn9`#dZDr_U6X+#?r=`|MBMP^2%1Vb?5f&jm_=q#>QrKdt+<address@hidden
zwUuh??$-9ot!iuK*5dm1>eANjwUx!Km1=2YeS2|fyINk|TB>f}d3|kl>y4Go`0&>4
zm8I1it4oX9s~hXp*2bO9rIjm{?x3gE7wVC^-Hla!W_4YKSiQBldAE9VW9`nZl}g1~
zQYE%k5|address@hidden<LBo3o$BVw`pV{_l-}aIROx>!
z>address@hidden;np>&address@hidden;qC`_<Cq=+W_L|NcpJVd-KVtZp0+
zht<|(@8sd&cv#(-oQ`(~C;IfIYIVGGrTWtSlar%YuU_4o?p>address@hidden
address@hidden|ZCV<K1d^G(9;U-8(%QR=W0{?sw>uqv5n)P4=pj`}*X;
zXlFQ{4y)bC&gtQBd~&JM_0`V(!FYc(-mgX{zWsP|QVk9cCJ%?ZS5*9`{M<es4i4`f
z41Lx1{b3c<hU4M!;GnvFdQVTQ*76f|-$AvfYF~;H9}M?S>address@hidden&RA_+#eoS
zZ;!^iQy2Z=<oNAr6vYq8b(mKASamp=o>U#5JvtujoQ!r<j`(n8%)7(sXn#E1?TgyU
z;O${GcsO`eJ(`>zN5OU{hvqrG?`vI(z%mrLVJ<;cz5Yn0AD<i#rYD#BKJoM#kH#m%
address@hidden|R<address@hidden@X$q{o~n>)uH)h1V5F-|
zwqa;8zRBohTAfaHCxwx3iM&hvWYg1?zM}t>address@hidden&|(mzvi+Gj*bpwZF=%lfG7RI
z_)%_2w}Fa!FdR$`!<K0D_Z~$F2d5|ZCsD?`lhbNvFpfL<obM9tlj}cK6(*CggtzVw
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
z`dqo~^V9y>?i%pV4l<RPm%NE~KA|address@hidden(|ZX3H5d5>sXC)cCdT0y6%$|elcwK!X3
zk6!!DhiAKGf}mR6uz{9LYgaqU3+A}3c8AHQ#yG9olR>EyO{WvNT~D$_Y?E6vom2s%
zi4*o{4mCo%!QGrOud^#b%wA4*DChlXJkSu!IfMSeXza9_5*;;address@hidden
zFHQ(V+U`=n4Bb4NqE4x-k>aAkNkm_Vr(address@hidden&iW;J>address@hidden<h|4nliYU
zDay3dQ=2vdS$B{wt|`UewxQy;^$>YYHTJPGi0X~U!_o~Zr2>address@hidden>Y1U*)xyp
zr|address@hidden|>Xl%J87IWr!;address@hidden>j6m`MlLF|n5QIU!tx*Ok!=Z}
zV!EiD_VeA2ax#$!Y~sR*y6XW{>i+HvBYB($lQd|NJwz-Qw~(&uf$qp9cj3zqhmJ?u
z=>address@hidden&=k!F0qcld=
z#bb9$kCd7*q(PRyWq?lQ)Hp%~<<b3!bf-&|vg)!q%}a(~3aM4SrYEBlC8(_9<!0_$
zXX_`y)&!IW$NRd}HS3pYB2E7dl!gwWRivpW$_J=_JQy6rGZZ4!NL9?HF*GKOmcQ%y
address@hidden;address@hidden>iTlD-4SM=C+IMUKi-8I^Q%
z1|ZUs&address@hidden)b!!*dQNrLYWls?bLwAIUzaGBy2`+^1sc7{blQvKmnwoK90x
z&St7|g-6eX{C7Wmo}$z;XXfjQ1thoZ29gZdSfh*UqbjYU7v+@|#D<e}56DiWWgMz)
zs$JNWx|jWyhHnv{WrgtFb|-y%6kQuCR<~T(address@hidden
zp_XZrP`A`s&6*7F4-WP&<pEM0N;wD(JT#>pIYbvl$kcnHZc%lCs1x3YsmtV2d3>O9
z$KX9?6I0?bY*&t?uDJS0nUe6F*zh16w{lKLNrF_Cu+^ooHgn6#4&6VQ{LbiD>pDCR
address@hidden)Ieca~ENP9y)Ibs~O*ZesrO&R!4lnsYEAC)ck<
zl2=cWV;_$_k34l|*LlwuuQ)yASzzDcj@|zAc~HLTbud#cLeQ-5qSWg0QWV)U!cIr5
z<?gud>|E1$mQtCB5`Mcw#l`BFIYH+!LrF2KF?Q~cCkK;#i;address@hidden)a^9~
address@hidden&xEb?Oo)ahc<!5&_tW|+j_7|=x
z+q*M7yeHqIRm3m5PxYsAydF~Nf#HI}MB<Td;gr(%pQ+^v2K8a9dZ|Owpjh!>15W+s
zjIT^{!4C)O)()address@hidden;UWQMkdz0J%~eonrpY2=)address@hidden
zszUT*%_q4g*(E28GkOp{#Zk2f(27j$y4tOrq|h}~a%D$TpNCNs2WiPVBv~P3W#Ay_
zLfm$4rLpXs>~b|=iGho1Ivm@(s)TyXzGslq)ReDOh#Rp<Fmx8#I;Mek42g%b-2^k&
zOr=OPA8RzFcv==%(~Lgx(iIIatrBMRW?7%LloD$0G<WTqnnaC^|DG(address@hidden@?Ty
z{k#Ihl>CU*AW2;MB~9lgAo8y^19g_ssU|qP-1K;Qqyc}Ll$B%atACU<mOMoa8Z{>*
z$V2DrZTh;UClbn4t?nQnp=8%<{kMn1BZr~Ra=Xi><0`FU7}q?<w=E&COI1nb<;Ryx
zc;Y2B;aN2?AOmw<c6KIekraw&address@hidden&dCn*Q32
z;KZdi$g+GQB_|X9cBw<uqd2~8ZkCx)LbJPG-Q&l^S|i()GN0++*3$-SOFJWw2%T|9
zutB8t3DeV~qlsrFluj<Q|7wVEvT7pVFV=)a5x&qiwp$)1I?t2B=CV*RIh8Y3mm}sf
zj}XXm-6BMAUEBRFMwlu_jJc%*5x=*9<V-?L{6<o&ZMDTk4ApOPh)~q!r7nw&b!E;6
zhGnG&Rs7Tl*{kkHRi*6Dw#pekAjE!0z+(O}CmB19GH_>9aU1udY!$X#r`isN4;1`+
zbd?g0Ri&address@hidden&svqKpL$VTfzh_H)H7NYl-#&Kq-!&)xXl+!sGLWIkvmEar9i+9
z(mtX7RD-r7c0tZRq350tgQ}{Xi_IFL62tnwcFh`%7`AZP<K|3UQ=z#3n%sj|p2~Zw
zM>v<L>r}Nv2P$J7)lBtNF@&Q4ch2xFxmGhbh!rM!a$1y-T!5b3^hbBNmeiM;elhMM
zfHBHfoEb)^jA4?xD0S-Qb#2UFKFq5qV<address@hidden)RL{OWTIO&n1kWz|THhX4Z
z=24I1sQ7$wa;m7F-DVjUn;mxw=(I{Q&)address@hidden;qTQ|*%%VJ^Tbf|*s
zBKh+y4)Ufc%~e&q7rpetjTjHUuhz5H#+1%uQ!NVh!(XN7IZeAnNfujrFf;M;S|v6)
zzmy)6J&DFAGf&DD(vzJQ&!Z~^=#D${G)wiwrzFjeTSP5lnV~-!10PjRs|y|LhZ!&0
z;FK_oP_LL-E6fakp2!z+;R2M=93FYu;aK^nH13&AL&eb7E7`_rnkWLNdi|~u&jdQ*
z-)HZjg58U(address@hidden<o^<_qb>cQkd>$y{nrkc4|!rtdZ
zFD=1xuPUK{JWQEl9{0}=_V;bjp0~|I^)@2=KbyazwmeJSM8Gz9fp+K=>BtnCxvqIt
address@hidden);>Q}4I-L<_$(|iWv0HxHZ$!YEk
z^cdZ^<y?i;P9oCueqywG%zf4gulhz|address@hidden(*oF`~$yUiWMv~#%8ro~6*
zaK~f!?5?KOOJR9mc%l&IQGm*>f!K~F*N2zA5GvB-GwHIT`)3}Od|g8%*^~ToEv#}r
zT1**TOOl$R*Jzz~Jx1dQ3^eSKc1ElwXIvfKf21^;oNS5>address@hidden
zEvnO`Y>Y2lORH38#r8(;=&address@hidden
address@hidden(iPr*$4gsUK?6Q{x}CismdYRpIqhw5N$R4cFXXyz>2#R(nW&)rne{q!^=>address@hidden
zQaPzrWOtQ~2r_alCCD_HlGN~0peTvL2~Y2+<5<r0s9MFdbmvH;address@hidden
zb_CsxsYhFM-6va(<G<qu*`QMK?8<VQ;7sx{vNMC~tUaWP#F!}8`Wvu^OF6nuk$YD0
zLoGIUA#&D8U2i&xWfUq=ngB00=&@9LP9sNtssB2%bgz%WT=XO_NzM*bsAJSs>fQ~^
zsgyxkVUcDah492<jWh&address@hidden&P<!-~_|address@hidden
zPRndHNhtM|{iyBK&Q2<+>xz+9v?}#3hF()^JJx_uKH$)a1s{`7&=}QDpyZVuvDZ<J
z?d7rJCk?GTkM$wOk#U=-pck3u;pEHrGAPAGPw4nEvgn5~9!N`%W5gpvi+778qp65m
zl%hfA1r60_*6gSDuzOSe(zve4Qny<DsSU1LxUy;address@hidden&7D72P{M)(6zh
address@hidden&j8B+Hoh8?w7r#C?XnRXPQHsU&%XQA~NJnQR4TY*#Ku)$1~))O%HB
zB?6PXAK5D^Dl2AxAx$YK(Xf5ko9KQeoAc;m+#`Hjc6Lf+)e{BL-Q2iM=DVf8F+x=4
z$ZwUzZDOImf-Ip+xx=yIzA~U_8{>2kX`i&zT6DF3Lm|^sG))LMXNDOO8O7>?V};dI
zg=A0rcuEGQiG`Bf6casJW3YM|address@hidden@AI7R|i%)address@hidden>MEj
zQ&qz!_8Nt2LV7eD9_#fr<#?Qt^zyHI$zOIMsq2`sR`faKO_8`i;5lQjl(J>C!MY#K
address@hidden;=ytxYCi_-=W&x~!3CdQIvrWvtzD6X~VMMVXw(R$lVz#7rKy
zo++TFgksvgo%WE)address@hidden|zJ+X7XKLu<p3`hGil<GGvXOoGC*@(Bay&
z{_~D(address@hidden(gx+}G`X-JuR2K7EO`;*>EB9*
zr%QFyw9-a?ypFTV#nMtuf6JTuH6pG3oDQ{aN14_%d6kxRgaVcYqxF=xuGbt!TCJo&
za-!KTdsj`$MEXE3*sCDb!gfD;JI%{Gl<#qq%XY-Xo}fez;daheR?9ahr}s`YFQ5UE
zauLm}gN8qog9kDi`QAOPkk_bdFGU_2Xz6)3+-p+0I95=Vw;LLHl5(^!h+)sA>ii6-
znRV6ulSj(Vimq;L8I->hEI&7#m(address@hidden|B!3s*R$Gb3EO~kuBY|84bEWX^<BDAWVuTR
zkw;a<QtSDHXD;n4nX9)*Qgfyz(oC~_o<>SqjA?WBU#U;&-pPUIf{D&z!R}cDM-;O*
zcBbT|v7#W!P$OYrrIzjabr8+BmbkzP#$AQ4F>|QWIE!3AKxI*JHT&&cO~e8|qUYu1
ziZKHb(S%<NR+3a}6XFf1;H+yCZUIT<h)#5VHN9yRwkJ!or;2}<<w18^T`W&OI3=a|
z`umgJ=_T97&QO7=%a&e*$}85Zw}+1s-sJd_7fjE|DjjYsFC2;_LRuSDlCo+74TtNz
zgIPDjW4CeG&P)OAfwWRL=L+l3yXGGF&p6jSl2ns!%SzhCb5=-eNW4^0PI^{m+>mM#
zrT<S=KD|2?VwqfV_`dqt$+N3<6;address@hidden|Z;Nx1Dmn2K!=<Usd&3y!
z&&~%q)pXCxTn-0$k*GowON>gS$ruG<GkOwQQ3lE?LWvFYDA$j3klvqJmE+Npjl~xY
zV!E?<*c9kx0D0~wzqzG%>D<lCSpkaW&`Yz_%V&CGOgZ_QR(8~y*Vtx%rZrXMva-6R
zadl|to68d)4Np!-^4BW2%RcC*5wsm<bz#<z<n-oj2{r0cD5>&l!d?qcW5MxI%OM|M
zGM6!{-8!H~D$(x=He>yMN~Eb<address@hidden|address@hidden>b1z}^p(jPXJK<&
z%gd^vV|7ZN)pI)3VO+|M58~C}NClO?b;c%D55IJsBJUaE7fi5TZsw*A8<O2AspX|E
zsU{*I_M02GE`}3v|7n+BT}Eyp#!*kIdXvq{%h%LyXKqn?S$kMkhV+gdV>x=6J&M8R
z>5)^&X>CNF`w17(bel4Hq*^vr$*ok|RoqJ;address@hidden>H9Q5-W12F>@
z^Zt<vk~pL`NbQrCw#iWq5B7Aa4YG_M`-5HkLZ`m97%J4tt&`WBswuPjl?SPUdJ$D7
zm(v)>r?CuBV@|cq$z;address@hidden;@+82^ncw#$eL)eXkTpF*Y
zdC#!=;*m<{5n#>xg$5<>E*Fs2`)Yw<+2%vm7aI<wF};kktS?UD(uDuALqn<;4C}SR
zX3qgXC68U>>Dl`1q{AON6jW3q`wurQHFLrGr(;ix$lp6g8N_<pz!<OI1ue~9EjIHq
z+nx+eQrkKzx0S~WejUt10biD?Y#Yz(address@hidden>8r1Q(C!<uN
z$mr-(address@hidden;address@hidden>w=iTZ`mc*#w%Kz`j=
address@hidden;pSSUwHWGQDMc=;)~8agFZtG1IlQVZ2H~ygt`<Pg^s8G$<YUj1
zb;wW2Wp)Us=foM$L96hR94%F?=abZ|>CHZ`!D`(*O;<&MXDO7OO7<O+q}LZz8Ch$Y
z8MJX~36zY)fox&fU4t->x9kksTCQeG*~QtwCyj<(4OL0kEB1|address@hidden>5?#Gn*
zY<<qRPHrypZJyLm*!uBa$b~0ZNrqRlW};nsjSy+RX!3BJilNS<u3Yx4NaK(2cCKJ}
zyBK??!Q91Wxk#i~<m>8b%~o4ju!>WZ(}}rbbpzi~1vvvL*2kqWfG>#YL-$ifNGadj
zn&&f&6q+<oizZp0oVXbss7FV)>gG|r<*m%ywA(#pS4%NnIM=45fKhJqjJE`02Z4C)
address@hidden@?q!>+><rkt8b6!5^*Acx|@{!U(
zIVYtaR)address@hidden;sx&DPn1YUnRX;address@hidden(!vLQ#I
z>X)tbbDDC~#GKUL1GKnJ8fVlyGKBAwxy|6Q4~%2O$7fsPCTiTcXP%SQV};()PWVfQ
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
address@hidden&address@hidden&
z%2A}v^OXFYY4I35Xe^?Q`SbAFuY{+$_O^}62b?hu89=rV_3f1A%}rULT<UvE(Hsz#
zndvaRJUQ1<q?mYepyZ7c+JRE(`yqvqNKn&e&(address@hidden
zj9I2vc71Vc*X}WVheoV1vX#VU>address@hidden|~O;#0j!qh>BMv1d{RG1btZYyydPsarvq
address@hidden)PIiQ-viY(?h!1RHd45wGdHx9iq!%iPf;tWLc=
address@hidden@>zDV`FNq^G-&yK$ai7{OpQ`R%lUYH}ieS)address@hidden;WO5SnE;&8Y
address@hidden;address@hidden&ckvd*-LSc5(~Ne^)IBw;IcaJvJ{Dz
address@hidden)2D8TfQxEpm#NSxcub{mccrXjh}HFr%H%r!-%EtI~oh+8|c`
address@hidden>?$W&a65eUHY#cj#a~JZ#?oXFI9t?9
address@hidden&9*2zyc{DQatCujs3l*`P}mQRMyaxb%{}#9^nCK(}CC0DBeyj
zwvsfm=$eig>)p-D$_-Cw<address@hidden;XDg$2`%SmFbYM_p9>_{`lksNI;eJwADJ)y3u
zgM8}LyCdhlIzt;address@hidden<+QoOzp;5}M&RTo)!-(hI
zczJ<l3i!qF!i$pk^n}Rb7LOE;^F2J0;58m8h8eMhAgNs{M2SkH^v#H<address@hidden
address@hidden;NZ_X21lokTm5NtxTmCk7>Imeu|*Cnb_W1`9XrcF;%{AH-kkSo17
zSOB*_87~3K;=Em|KAF^~^imHn+^J)!hn%fsdoS%Ho5~knKcc97gQ!WJg0f|4$+Kx`
zuauGE`eqSE?sd{vHU6m`hOW}1BqOS(_D6|%w6p-Ha^&UZBCTbAQuW->$+sD9;uEG;
zhBaEn9w`YWtL#qG6?r5qUpfOZ1)brI9_!pLU4#YMM#K0tPmu;L$y3|Sx0<8`X!&G(
address@hidden|y!u^N*-
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
zWvgWwE=)address@hidden>-Ngh>f&0Qmp#e=))Fdx=k|address@hidden
zF{|svaP({+Yd7JA+A2GYvRc~^ST*4C;address@hidden;*42ZARJUJRy0fYN<}3UO
z;n}*Q9=N)mTEq3#sqHsbH<$aRlj*=>bz^aL?T+ko*6?hm8$#$?h5@>Xa!Vu^v32oM
z-;H0b-q53#-pI}7r?gw_4K>B<E4plP`AvBRb;oSrD&%VJOsZYnA#+UDr`PXR9sMcB
address@hidden&*ZSQkXcc>X%fKDJJo9hQpJ~$?26>N*$u5adv&1X8FBjEta_U(@NVsG?YH2
zz~?|a-)mWn-u*hrI}2Npv}`MTVM(T5mx{RhlCqTkej=ZVp|8Tv*dIED)A>$%Ga^(e
zzSDB&address@hidden&address@hidden)Gz%XaC#Ud3*~A^?lDtNzykel}PGQVU61NqD
z)%g#-L7Uybg{FC7!91Irxmsy!vor(RWJR-JI+#>boa#$IV;;p{^&9a0F2b1~*=4lz
z6TX44xmvPmF<Xonemj<PZO5F84&Jrott+n11(@bA#iE?Q*GB<?17^`vrcC<@yQO_P
zf914qt)^5x9olG^EV<W?0A70%^DoXG=n|hyu}2!!-tz(%k7{+!d)PUn?vZOO1I_bd
zqm%TN)Fp42!yyM=u>qL_B`uvPI~_VaQ_!guaGI1!*%&?5k9TbY<91#nrdph6qvG_X
zuTA)>address@hidden;wgAtj5af>0r-QbBXIuM=snKE22v8^v7PAt!4JEVOV0lUAb0$
address@hidden@vHM#Le>BIPW191_vlt<3xTMt?v53fz
z&address@hidden;$cmxW42}b9`Q(address@hidden@oo0JpZO<y}3n-k>(
z`IRrnD>F-_MAe0*i`AFBJKdM7>PvA8SxK5p__FQH17;address@hidden
zr14-{HWxS2!MerUL-40Y$qN6%B&YXdd=WQty`L1rYk`;&8_oErda;;&J!`4C9M|iD
z8Y!a5G)U4+-r2EL27eYnW6b3Z2TgTrdLjIoDjB2k6xpje)2_5$g;address@hidden@FA
z->X%RNx9pS{492+@<(~kMqct^PYS%MCh*#FN=zd`*Z67UaNRAY-O?~Q^~5wE(YEWH
zU$^<%s0-RB-#DH-vlm%oOzyLK7jL3L>r|!u(address@hidden<mHqMQ6|Ek;nnxtl
address@hidden|x9sZTSsAS}a3^x+Mj4VYNDV}_8}yDAI_e8{qEj3VG*VLHVwAp#
zF^}?!S;yRwU69`%aEhrUTl_|gzNl5Ln!X}M6&H`=6E92iT7>u-*YJtz!=ANDJ|?YC
z$;$*|@+0<u8Rl13zm%V=KKBjwL^t1z9ZIC+1S9RY`1;address@hidden
zS2V1CQbm7QJ$(L3v`XC0KBnED8|m;UO<address@hidden)6jyw-l)j=odd
z<Hbn7*siwKd+$Fwa-v=cg<FqE-$Gc*7Y&yF(5JKgMcMV46eMU8LK+q`K+RaYJKtGV
z8=iFXq<@~+&h+Io%cJ{;egVK5S&wTIzd?2L&T29U?|z(;4Jl!3(UiEISHPt1dvEei
zT7V|CE=7*Dru$lI8E!`J2OUfv$q4;|bcnMPqA|S91ya1G?^e^AE{|{JICPzSlC)S!
zc<q2B+iRr6iKraorJaq8Cf_ICXK8)s$Bojt&vYEyZEEn`g;IoOh0ddD-!wY+ZAJd-
zr2Y5oq$$DrWQWkCd?Jf1&2BaeQ@|Lcay8P<VfsUjE$eB%zB{iaZeMF*QrA4ar_`t?
z8PqZTwO)d!tF*?-De3fHr~7DlI<=qo5)<595+|}9w6>pUB6+1->TRLu`R2)iMeo<+
address@hidden@}C***(9+qm?nqrRsKBuJjCVsS|J9XztBXg_GKY
z-Oi>sx<67VJ<;B#S0CPgbXiX7^1=Sm!Ik?bhX-<@address@hidden<0v{Cu5vQiDAGF%b
zI-WL3i1l%r5tJsDr2us(=-4c0JEYY+yQ7KLQbs_a0CYp)L5lYxK+9PWO||PaHc!Vm
address@hidden@|nj-mt*7OXo>|cqKnvvc)9bVZ{<address@hidden
ziSp-YI(g;address@hidden@zM%q}|M}?DYF<>H8!ct7y+muZYpB`x*r2
zWe<vX6rsClJG+;6y|Psk#=Dmt;>AB4BV6k5?CuUOYnuVZor(&llQ<vowg2!nC1}ix
zD>bw~-cfL=k)address@hidden(|!>QHW_2zT7qZLX?3<y_vG
address@hidden)&~bW)zb3iWi14Z6FI-+y2p%s
zw6drD>QT9x$is|address@hidden>gU;IV#Y!`9j<)
zv#U+gMaGd{9Np5cbjPEqaM)<_7an_HrWq-HBS^{(m9K|#5dZQ^m+yI?7~is;woE9m
zk49O1>!s?x+D22ns>$*&eP6IER;)address@hidden(address@hidden
zst0e?)*!l0zEcb`JPe3yqL=9{K|address@hidden@Y2D_2SEcT1aH`R-Wl<Er3xk
zNCv9Sa8LT*5f4o#<CAgg(d6>buTA>address@hidden&(YCP_N>*;db!bO&Ks)7hc2PgEPh#7
zuTI5Gub!(t8)GaQclUp^fa;address@hidden|L1p(?N`nG*cy}Ka%m+rh
z`Qte+k<x`4%W6+yt!=+55H8>JYP$GpHiztQUd<I&rNYWu*fi$#HpEJ6+wlGA%d5*V
zNDlUel(W!EXZXAZJlm~Hoo-9{rGTP0ndKK<^8C>YVzA?H|J1voeorj&8J<2+jw=SM
zHdEg_wRJop78=!MURqv${qj~U+&2w-m+2E>#%XOl6x$HQ3tMij7!E}RlmE;27I`&U
z6`zSgTe;address@hidden(8~lb?>kk=VX$tL`fz}{Utk$*D`$X
zcg!jq%1Zhpnk5pk)*3A<iC&k}ib8*9`G#$9b!)?pTvORvOB}nc=zj95?(m6KQ&yR7
address@hidden&`31)g)X+s>?W+QxCb^Jf(TS3-N^a^MHKg8ky#(address@hidden
zA9VUNKlA9yPW5Vwx~q|-K<CUL6;J6M^#ysTtJV}<knV7xy#F`D!q*3elt9a6t<}ih
zPYqB%HKBJ)M?PFDkd^H#X!D0#IgebX>G+AJ+|@o#;address@hidden)MZOe1T
address@hidden)@address@hidden@6=j
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
z00LbEtpAsE!utOw(f=+)address@hidden|address@hidden(HbR
zujqvJ|0mJ^E<_xI00bZa0SL?;0qg%&)yn!mK>z2ieW?%xAOHafK%k3&_5YeqSpV;#
z|6PbU1_1~_00I!0I|A1K>#CLYe+T`ayY{6*5P$##AOL|address@hidden(?-i~e^Z;ur)V
z009U<VD1Q5|address@hidden(HbRU(yNd{~r3^g@|JifB*y_0D-w9
zVEzAsYGwW3NB`%peW?%xAOHafK%k3&_5Wp^u>Rji|GN-z3<3~<00bZ~cLc2eUsSEE
z|0DE&?%J0MK>z{}fB*!#2w4ArL?^8OKZX8xA>tSWAOHafKw$0&SpQ#9t*rlVqyKZ)
zzElVT5P$##Akam?`v0m<SpN^u|1Lxvg8&2|009Wh9RchAYpRv?{}BD3yY{6*5P$##
zAOL|address@hidden>4f!vjQ)2a;ur)V009U<VD1Q5|Np3JW&NL^|8v*AR0skPfB*y_&_%%d
z|7D%9{vV<LU5Gda0SG_<address@hidden;WOtyY{6*5P$##AOL|address@hidden
z82#@;#4!j!00Izzz}ykA{x7Ol*8eH`KX>g*g&+U{2tWV=T?DNEuj_>M{{;Q-Lc}o$
zKmY;|fWX`lu>address@hidden|Ce>b`u_m^??S{e2tWV=5P-nk
z5wQNRs8-hhhv@&@wJ#Nd00bZa0SI&vu>RlB3G4qm=zkX?jzItd5P$##=8k~%|E6kX
z{eOi1&t3acAqYSK0uX>e7Xj=48#-bA{~7eZ3lYa4009U<address@hidden
z?MsCq009U<00LbEtp7i%6W0GfjsABb;ur)V009U<VD1Q5|G%nQS^xhG`agH=ONAf+
z0SG_<0$l{G|7$v7{r|J*e-|Q-K>z{}fB*#Mj)3+5mTG1F|8wa7+_f(if&c^{009Ve
z5wQNR>xA|HXVL#IL>z+v1Rwwb2+SP;>;HyoW&Qs-^ndQ!mkL1u0uX=z1iA=V|8MJr
z_5aVK|6PbU1_1~_00I!0I|A1KA5*QY|address@hidden)ue1Rwx`E&|s7O`Wj*|2+EN
zg@|JifB*y_0D-w9VEx}xt*rll5&fUL_N77)fB*y_0D&$7*8gptu>Sug^uG%c#~=U!
address@hidden>g*g&+U{2tWV=T?DNEZ|a2g{}<8!E<_xI00bZa0SL?;
z0qg%;s+INsm(c&YYhNk^0SG_<0ubmTVEzA^PFVl{GWy?zh+`0d00bZafw?1K{lBYP
zS^xhE`agH=ONAf+0SG_<0$l{G|address@hidden<1Rwx`xg%ix|8dpI`u`81
z|8v*AR0skPfB*y_&_%%d{}Vc4{r`v2|1Lxvg8&2|009Wh9RchApHQu=|NjX3KX>g*
zg&+U{2tWV=T?DNEe^Mu`|9=(z??S{e2tWV=5P-nk5wQM$UA40Q|D)*t+_f(if&c^{
z009Ve5wQOMq)u4>|1tEx3lYa4009U<00MJI!1_N>t*rn5IQl<#?MsCq009U<00LbE
ztpE3P!utPDp#NQnI0gX-KmY;|m^%X2{~guJ`u|U&|8v*AR0skPfB*y_&_%%dzpE40
z|9=Yo??S{e2tWV=5P-nk5wQLbRV(ZNKaKv+UHeiY2tWV=5P(1z0qg&sPFVl{8T7vk
z5yv0^0SG_<0&_>e`oFJQS^xi8^ndQ!mkL1u0uX=z1iA=V|L^OB_5Ytk|GN-z3<3~<
z00bZ~cLc2eBh||K|IefUbJxC92m%m*00bb=MZo(1Q#xV&{}<5zE<_xI00bZa0SL?;
z0qg(Us+INsUqt`su6?Nx1Rwwb2tc5Vfc5`CC#?Vf68hhTh+`0d00bZafw?1K{XbN#
ztpEQq`agH=ONAf+0SG_<0$l{G|6`r7{{JiJe-|Q-K>z{}fB*#Mj)3)lqFP!1|5fyV
z?%J0MK>z{}fB*!#2w4A*bi(@ouc7~4h&ToT2tWV=5STjx*8iVYt*rn5I{H6%?MsCq
z009U<00LbEtpCS4Vg3JQ^uG%c#~=U!2tWV=b4S4XKUJ-)|address@hidden)ue1Rwx`
zE&|s76P>XB{~PFk7b1>address@hidden&vu>L>L
z3G4r_p#NQnI0gX-KmY;|m^%X2|A(rT_5a^O|L3lKsSpGp009U<address@hidden@{~evM{{P$P
ze-|Q-K>z{}fB*#Mj)3+5k!ofA|98;;xocl41OW&@00I!`B4GXh8J)2H|GVga7b1>9
z00Izz00icafc5`RsaDqie-HhiyY{6*5P$##AOL|address@hidden&Uq%1B5OE9w5P$##
zATW0Xtp9&TwX**I8u~wX?MsCq009U<00LbEtp9&jC#?VfKKkE<h+`0d00bZafw?1K
z{r_{SmG%GE(f_$?Un&Fv2tWV=5a=Rc{r_2=u>SuC=zkX?jzItd5P$##=8k~%|L0UI
z>;Hd<{?A?eQXvRH00IzzKo<e)|DV?h>;Hd*{&ykb7z7{y0SG`~?g&`_|AJ~|{r~Ie
z|address@hidden|GZ9E|Nmq3zY7t^AOHafKmY=BN5K037ga0k|9^u1&t3ac
zAqYSK0uX>e7Xj=4U(yNd|9^`9cOl{!1Rwwb2tZ)&2w4ArLAA2}|7Ym`+_f(if&c^{
z009Ve5wQOMqE1-<|8w-e3lYa4009U<00MJI!2177s+INszd--zu6?Nx1Rwwb2tc5V
dfc5_`>xA|HzeNAL5OE9w5P$##ATW0X{(qd($<zP<

literal 0
HcmV?d00001

-- 
1.7.8.msysgit.0


reply via email to

[Prev in Thread] Current Thread [Next in Thread]