Your message dated Thu, 24 Feb 2022 12:50:02 +0000
with message-id <[email protected]>
and subject line Bug#895957: fixed in xdelta3 3.0.11-dfsg-1.1
has caused the Debian Bug report #895957,
regarding xdelta3: clean up packaging
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
895957: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=895957
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Source: xdelta3
Version: 3.0.11-dfsg-1
Tags: patch buster sid

I'm attaching a patch to modernize and clean up the packaging.

Thanks,
Jeremy Bicha
From 45e669e8f7d0fac8acc0a6b3d1c1268c596488aa Mon Sep 17 00:00:00 2001
From: Jeremy Bicha <[email protected]>
Date: Tue, 17 Apr 2018 17:32:27 -0400
Subject: [PATCH] Clean up packaging

Switch from cdbs to dh
Build with all hardening flags
Run build tests
Drop unused packaging files
Bump debhelper compat to 11
Bump Standards-Version to 4.1.4
---
 debian/compat                      |   2 +-
 debian/control                     |   5 +-
 debian/control_px3                 |  14 -
 debian/patches/CVE-2014-9765.patch | 165 ---------
 debian/patches/Q_not_u             | 561 -----------------------------
 debian/patches/fix_lzma_test.patch |  25 --
 debian/patches/printf_uint64       |  40 --
 debian/patches/regtest_size_t      |  11 -
 debian/python-xdelta3.examples     |   1 -
 debian/python-xdelta3.substvars    |   1 -
 debian/rules                       |  11 +-
 11 files changed, 12 insertions(+), 824 deletions(-)
 delete mode 100644 debian/control_px3
 delete mode 100644 debian/patches/CVE-2014-9765.patch
 delete mode 100644 debian/patches/Q_not_u
 delete mode 100644 debian/patches/fix_lzma_test.patch
 delete mode 100644 debian/patches/printf_uint64
 delete mode 100644 debian/patches/regtest_size_t
 delete mode 100644 debian/python-xdelta3.examples
 delete mode 100644 debian/python-xdelta3.substvars

diff --git a/debian/compat b/debian/compat
index 7ed6ff8..b4de394 100644
--- a/debian/compat
+++ b/debian/compat
@@ -1 +1 @@
-5
+11
diff --git a/debian/control b/debian/control
index 5068a84..9214cce 100644
--- a/debian/control
+++ b/debian/control
@@ -1,10 +1,9 @@
 Source: xdelta3
 Section: utils
 Priority: optional
-XS-Python-Version: all
 Maintainer: A Mennucc1 <[email protected]>
-Build-Depends: cdbs, debhelper, liblzma-dev
-Standards-Version: 3.9.6.0
+Build-Depends: debhelper (>= 11), liblzma-dev
+Standards-Version: 4.1.4
 
 Package: xdelta3
 Architecture: any
diff --git a/debian/control_px3 b/debian/control_px3
deleted file mode 100644
index 3e23336..0000000
--- a/debian/control_px3
+++ /dev/null
@@ -1,14 +0,0 @@
-Package: python-xdelta3
-Architecture: any
-Section: python
-Depends:  ${python:Depends}, ${shlibs:Depends}, ${misc:Depends}
-Provides: ${python:Provides}
-Description: Xdelta3 python module
- Xdelta3 is a set of tools designed to compute changes between
- binary files.  These changes (delta files) are similar to the output of the
- "diff" program, in that they may be used to store and transmit only the
- changes between files.  The "delta files" that Xdelta3 manages are
- stored in RFC3284 (VCDIFF) format. 
- .
- This is the python module.
-
diff --git a/debian/patches/CVE-2014-9765.patch b/debian/patches/CVE-2014-9765.patch
deleted file mode 100644
index 0a2df2c..0000000
--- a/debian/patches/CVE-2014-9765.patch
+++ /dev/null
@@ -1,165 +0,0 @@
-Description: CVE-2014-9765: buffer overflow in main_get_appheader
-Origin: upstream, https://github.com/jmacd/xdelta/commit/969e65d3a5d70442f5bafd726bcef47a0b48edd8
-Bug-Debian: https://bugs.debian.org/814067
-Forwarded: not-needed
-Author: Josh MacDonald <[email protected]>
-Reviewed-by: Salvatore Bonaccorso <[email protected]>
-Last-Update: 2016-02-10
-Applied-Upstream: 3.0.9
-
----
- xdelta3-main.h |  5 ++--
- xdelta3-test.h | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++++++---
- 2 files changed, 83 insertions(+), 5 deletions(-)
-
-diff --git a/xdelta3-main.h b/xdelta3-main.h
-index 090b7d9..5146b38 100644
---- a/xdelta3-main.h
-+++ b/xdelta3-main.h
-@@ -2810,14 +2810,15 @@ main_get_appheader (xd3_stream *stream, main_file *ifile,
- 
-   if (appheadsz > 0)
-     {
-+      const int kMaxArgs = 4;
-       char *start = (char*)apphead;
-       char *slash;
-       int   place = 0;
--      char *parsed[4];
-+      char *parsed[kMaxArgs];
- 
-       memset (parsed, 0, sizeof (parsed));
- 
--      while ((slash = strchr (start, '/')) != NULL)
-+      while ((slash = strchr (start, '/')) != NULL && place < (kMaxArgs-1))
- 	{
- 	  *slash = 0;
- 	  parsed[place++] = start;
-diff --git a/xdelta3-test.h b/xdelta3-test.h
-index e9848b6..dd45528 100644
---- a/xdelta3-test.h
-+++ b/xdelta3-test.h
-@@ -166,7 +166,7 @@ static int do_cmd (xd3_stream *stream, const char *buf)
- 	{
- 	  stream->msg = "abnormal command termination";
- 	}
--      return XD3_INTERNAL;
-+      return ret;
-     }
-   return 0;
- }
-@@ -429,12 +429,12 @@ test_compare_files (const char* tgt, const char *rec)
- }
- 
- static int
--test_save_copy (const char *origname)
-+test_copy_to (const char *from, const char *to)
- {
-   char buf[TESTBUFSIZE];
-   int ret;
- 
--  snprintf_func (buf, TESTBUFSIZE, "cp -f %s %s", origname, TEST_COPY_FILE);
-+  snprintf_func (buf, TESTBUFSIZE, "cp -f %s %s", from, to);
- 
-   if ((ret = system (buf)) != 0)
-     {
-@@ -445,6 +445,12 @@ test_save_copy (const char *origname)
- }
- 
- static int
-+test_save_copy (const char *origname)
-+{
-+  return test_copy_to(origname, TEST_COPY_FILE);
-+}
-+
-+static int
- test_file_size (const char* file, xoff_t *size)
- {
-   struct stat sbuf;
-@@ -2361,6 +2367,76 @@ test_no_output (xd3_stream *stream, int ignore)
-   return 0;
- }
- 
-+/* This tests that the default appheader works */
-+static int
-+test_appheader (xd3_stream *stream, int ignore)
-+{
-+  int i;
-+  int ret;
-+  char buf[TESTBUFSIZE];
-+  char bogus[TESTBUFSIZE];
-+  xoff_t ssize, tsize;
-+  test_setup ();
-+
-+  if ((ret = test_make_inputs (stream, &ssize, &tsize))) { return ret; }
-+
-+  snprintf_func (buf, TESTBUFSIZE, "%s -q -f -e -s %s %s %s", program_name,
-+		 TEST_SOURCE_FILE, TEST_TARGET_FILE, TEST_DELTA_FILE);
-+  if ((ret = do_cmd (stream, buf))) { return ret; }
-+
-+  if ((ret = test_copy_to (program_name, TEST_RECON2_FILE))) { return ret; }
-+
-+  snprintf_func (buf, TESTBUFSIZE, "chmod 0700 %s", TEST_RECON2_FILE);
-+  if ((ret = do_cmd (stream, buf))) { return ret; }
-+
-+  if ((ret = test_save_copy (TEST_TARGET_FILE))) { return ret; }
-+  if ((ret = test_copy_to (TEST_SOURCE_FILE, TEST_TARGET_FILE))) { return ret; }
-+
-+  if ((ret = test_compare_files (TEST_TARGET_FILE, TEST_COPY_FILE)) == 0)
-+    {
-+      return XD3_INVALID;  // I.e., files are different!
-+    }
-+
-+  // Test that the target file is restored.
-+  snprintf_func (buf, TESTBUFSIZE, "(cd /tmp && %s -q -f -d %s)",
-+		 TEST_RECON2_FILE,
-+		 TEST_DELTA_FILE);
-+  if ((ret = do_cmd (stream, buf))) { return ret; }
-+
-+  if ((ret = test_compare_files (TEST_TARGET_FILE, TEST_COPY_FILE)) != 0)
-+    {
-+      return ret;
-+    }
-+
-+  // Test a malicious string w/ entries > 4 in the appheader by having
-+  // the encoder write it:
-+  for (i = 0; i < TESTBUFSIZE / 4; ++i)
-+    {
-+      bogus[2*i] = 'G';
-+      bogus[2*i+1] = '/';
-+    }
-+  bogus[TESTBUFSIZE/2-1] = 0;
-+
-+  snprintf_func (buf, TESTBUFSIZE, 
-+		 "%s -q -f -A=%s -e -s %s %s %s", program_name, bogus,
-+		 TEST_SOURCE_FILE, TEST_TARGET_FILE, TEST_DELTA_FILE);
-+  if ((ret = do_cmd (stream, buf))) { return ret; }
-+  // Then read it:
-+  snprintf_func (buf, TESTBUFSIZE, "(cd /tmp && %s -q -f -d %s)",
-+		 TEST_RECON2_FILE,
-+		 TEST_DELTA_FILE);
-+  if ((ret = do_cmd (stream, buf)) == 0) 
-+    { 
-+      return XD3_INVALID;  // Impossible
-+    }
-+  if (!WIFEXITED(ret))
-+    {
-+      return XD3_INVALID;  // Must have crashed!
-+    }
-+
-+  return 0;
-+}
-+
- /***********************************************************************
-  Source identical optimization
-  ***********************************************************************/
-@@ -2848,6 +2924,7 @@ xd3_selftest (void)
-   DO_TEST (force_behavior, 0, 0);
-   DO_TEST (stdout_behavior, 0, 0);
-   DO_TEST (no_output, 0, 0);
-+  DO_TEST (appheader, 0, 0);
-   DO_TEST (command_line_arguments, 0, 0);
- 
- #if EXTERNAL_COMPRESSION
--- 
-2.7.0
-
diff --git a/debian/patches/Q_not_u b/debian/patches/Q_not_u
deleted file mode 100644
index 4aedd02..0000000
--- a/debian/patches/Q_not_u
+++ /dev/null
@@ -1,561 +0,0 @@
---- a/testing/delta.h
-+++ b/testing/delta.h
-@@ -53,13 +53,13 @@ public:
-       xd3_winst &winst = stream_.whole_target.inst[i];
-       switch (winst.type) {
-       case XD3_RUN: 
--	DP(RINT "%"Q"u run %u\n", winst.position, winst.size);
-+	DP(RINT "%"Q" run %u\n", winst.position, winst.size);
- 	break;
-       case XD3_ADD: 
--	DP(RINT "%"Q"u add %u\n", winst.position, winst.size);
-+	DP(RINT "%"Q" add %u\n", winst.position, winst.size);
- 	break;
-       default:
--	DP(RINT "%"Q"u copy %u @ %"Q"u (mode %u)\n", 
-+	DP(RINT "%"Q" copy %u @ %"Q" (mode %u)\n", 
- 	   winst.position, winst.size, winst.addr, winst.mode);
- 	break;
-       }
---- a/testing/regtest.cc
-+++ b/testing/regtest.cc
-@@ -92,7 +92,7 @@ public:
-     bool done = false;
-     bool done_after_input = false;
- 
--    IF_DEBUG1 (XPR(NTR "source %"Q"u[%"Q"u] target %"Q"u[%lu] winsize %lu\n",
-+    IF_DEBUG1 (XPR(NTR "source %"Q"[%"Q"] target %"Q"[%lu] winsize %lu\n",
- 		  source_file.Size(), options.block_size,
- 		  target_file.Size(), Constants::READ_SIZE,
- 		  Constants::WINDOW_SIZE));
-@@ -102,7 +102,7 @@ public:
- 
-       xoff_t blks = target_iterator.Blocks();
- 
--      IF_DEBUG2(XPR(NTR "target in %s: %llu..%llu %"Q"u(%"Q"u) verified %"Q"u\n",
-+      IF_DEBUG2(XPR(NTR "target in %s: %llu..%llu %"Q"(%"Q") verified %"Q"\n",
- 		   encoding ? "encoding" : "decoding",
- 		   target_iterator.Offset(),
- 		   target_iterator.Offset() + target_block.Size(),
-@@ -152,8 +152,8 @@ public:
- 	xd3_source *src = (encoding ? &encode_source : &decode_source);
- 	Block *block = (encoding ? &encode_source_block : &decode_source_block);
- 	if (encoding) {
--	  IF_DEBUG1(XPR(NTR "[srcblock] %"Q"u last srcpos %"Q"u "
--		       "encodepos %"Q"u\n",
-+	  IF_DEBUG1(XPR(NTR "[srcblock] %"Q" last srcpos %"Q" "
-+		       "encodepos %"Q"\n",
- 		       encode_source.getblkno,
- 		       encode_stream.match_last_srcpos,
- 		       encode_stream.input_position + encode_stream.total_in));
-@@ -230,7 +230,7 @@ public:
- 			const Options &options) {
-     vector<const char*> ecmd;
-     char buf[16];
--    snprintf(buf, sizeof(buf), "-B%"Q"u", options.encode_srcwin_maxsz);
-+    snprintf(buf, sizeof(buf), "-B%"Q"", options.encode_srcwin_maxsz);
-     ecmd.push_back("xdelta3");
-     ecmd.push_back(buf);
-     ecmd.push_back("-s");
-@@ -975,7 +975,7 @@ void UnitTest() {
- // These are Xdelta tests.
- template <class T>
- void MainTest() {
--  XPR(NT "Blocksize %"Q"u readsize %"Q"u windowsize %"Q"u\n", 
-+  XPR(NT "Blocksize %"Q" readsize %"Q" windowsize %"Q"\n", 
-       T::BLOCK_SIZE, T::READ_SIZE, T::WINDOW_SIZE);
-   Regtest<T> regtest;
-   TEST(TestEmptyInMemory);
---- a/xdelta3-test.h
-+++ b/xdelta3-test.h
-@@ -409,7 +409,7 @@ test_compare_files (const char* tgt, con
- 	{
- 	  if (obuf[i] != rbuf[i])
-  	    {
--	      XPR(NT "byte %u (read %u @ %"Q"u) %d != %d\n", 
-+	      XPR(NT "byte %u (read %u @ %"Q") %d != %d\n", 
- 		  (int)i, (int)oc, offset, obuf[i], rbuf[i]);
- 	      diffs++;
- 	      return XD3_INTERNAL;
-@@ -1787,7 +1787,7 @@ test_command_line_arguments (xd3_stream
-       if (ratio >= TEST_ADD_RATIO + TEST_EPSILON)
- 	{
- 	  XPR(NT "test encode with size ratio %.4f, "
--	     "expected < %.4f (%"Q"u, %"Q"u)\n",
-+	     "expected < %.4f (%"Q", %"Q")\n",
- 	    ratio, TEST_ADD_RATIO + TEST_EPSILON, dsize, tsize);
- 	  stream->msg = "strange encoding";
- 	  return XD3_INTERNAL;
-@@ -2610,7 +2610,7 @@ test_string_matching (xd3_stream *stream
- 	  if (inst->type == XD3_CPY)
- 	    {
- 	      *rptr++ = '@';
--	      snprintf_func (rptr, rbuf+TESTBUFSIZE-rptr, "%"Q"d", inst->addr);
-+	      snprintf_func (rptr, rbuf+TESTBUFSIZE-rptr, "%"Qd, inst->addr);
- 	      rptr += strlen (rptr);
- 	    }
- 
---- a/xdelta3.c
-+++ b/xdelta3.c
-@@ -2590,7 +2590,7 @@ xd3_getblk (xd3_stream *stream, xoff_t b
-       ret = stream->getblk (stream, source, blkno);
-       if (ret != 0)
- 	{
--	  IF_DEBUG1 (DP(RINT "[getblk] app error blkno %"Q"u: %s\n",
-+	  IF_DEBUG1 (DP(RINT "[getblk] app error blkno %"Q": %s\n",
- 			blkno, xd3_strerror (ret)));
- 	  return ret;
- 	}
-@@ -2608,8 +2608,8 @@ xd3_getblk (xd3_stream *stream, xoff_t b
- 	{
- 	  source->frontier_blkno = blkno + 1;
- 
--	  IF_DEBUG2 (DP(RINT "[getblk] full source blkno %"Q"u: "
--			"source length unknown %"Q"u\n",
-+	  IF_DEBUG2 (DP(RINT "[getblk] full source blkno %"Q": "
-+			"source length unknown %"Q"\n",
- 			blkno,
- 			xd3_source_eof (source)));
- 	}
-@@ -2618,7 +2618,7 @@ xd3_getblk (xd3_stream *stream, xoff_t b
- 	  if (!source->eof_known)
- 	    {
- 	      IF_DEBUG2 (DP(RINT "[getblk] eof block has %d bytes; "
--			    "source length known %"Q"u\n",
-+			    "source length known %"Q"\n",
- 			    xd3_bytes_on_srcblk (source, blkno),
- 			    xd3_source_eof (source)));
- 	      source->eof_known = 1;
-@@ -2629,7 +2629,7 @@ xd3_getblk (xd3_stream *stream, xoff_t b
-     }
- 
-   XD3_ASSERT (source->curblk != NULL);
--  IF_DEBUG2 (DP(RINT "[getblk] read source block %"Q"u onblk %u blksize %u\n",
-+  IF_DEBUG2 (DP(RINT "[getblk] read source block %"Q" onblk %u blksize %u\n",
- 		blkno, source->onblk, source->blksize));
- 
-   if (blkno == source->max_blkno)
-@@ -2690,7 +2690,7 @@ xd3_set_source_and_size (xd3_stream *str
-   if (ret == 0)
-     {
-       stream->src->eof_known = 1;
--      IF_DEBUG2 (DP(RINT "[set source] size known %"Q"u\n",
-+      IF_DEBUG2 (DP(RINT "[set source] size known %"Q"\n",
- 		    source_size));
- 
-       xd3_blksize_div(source_size,
-@@ -2900,7 +2900,7 @@ xd3_iopt_finish_encoding (xd3_stream *st
- 
- 	IF_DEBUG2 ({
- 	  static int cnt;
--	  DP(RINT "[iopt copy:%d] pos %"Q"u-%"Q"u addr %"Q"u-%"Q"u size %u\n",
-+	  DP(RINT "[iopt copy:%d] pos %"Q"-%"Q" addr %"Q"-%"Q" size %u\n",
- 		   cnt++,
- 		   stream->total_in + inst->pos,
- 		   stream->total_in + inst->pos + inst->size,
-@@ -2919,7 +2919,7 @@ xd3_iopt_finish_encoding (xd3_stream *st
- 
- 	IF_DEBUG2 ({
- 	  static int cnt;
--	  DP(RINT "[iopt run:%d] pos %"Q"u size %u\n", cnt++, stream->total_in + inst->pos, inst->size);
-+	  DP(RINT "[iopt run:%d] pos %"Q" size %u\n", cnt++, stream->total_in + inst->pos, inst->size);
- 	});
- 	break;
-       }
-@@ -2933,7 +2933,7 @@ xd3_iopt_finish_encoding (xd3_stream *st
- 
- 	IF_DEBUG2 ({
- 	  static int cnt;
--	  DP(RINT "[iopt add:%d] pos %"Q"u size %u\n", cnt++, stream->total_in + inst->pos, inst->size);
-+	  DP(RINT "[iopt add:%d] pos %"Q" size %u\n", cnt++, stream->total_in + inst->pos, inst->size);
- 	});
- 
- 	break;
-@@ -3863,7 +3863,7 @@ xd3_encode_input (xd3_stream *stream)
- 
-       stream->enc_state = ENC_SEARCH;
- 
--      IF_DEBUG2 (DP(RINT "[WINSTART:%"Q"u] input bytes %u offset %"Q"u\n",
-+      IF_DEBUG2 (DP(RINT "[WINSTART:%"Q"] input bytes %u offset %"Q"\n",
- 		    stream->current_window, stream->avail_in,
- 		    stream->total_in));
-       return XD3_WINSTART;
-@@ -4004,7 +4004,7 @@ xd3_encode_input (xd3_stream *stream)
-       stream->total_in += (xoff_t) stream->avail_in;
-       stream->enc_state = ENC_POSTWIN;
- 
--      IF_DEBUG2 (DP(RINT "[WINFINISH:%"Q"u] in=%"Q"u\n",
-+      IF_DEBUG2 (DP(RINT "[WINFINISH:%"Q"] in=%"Q"\n",
- 		    stream->current_window,
- 		    stream->total_in));
-       return XD3_WINFINISH;
-@@ -4442,13 +4442,13 @@ xd3_source_match_setup (xd3_stream *stre
-    * back further than the LRU cache maintaining FIFO discipline, (to
-    * avoid seeking). */
-   frontier_pos = stream->src->frontier_blkno * stream->src->blksize;
--  IF_DEBUG2(DP(RINT "[match_setup] frontier_pos %"Q"u, srcpos %"Q"u, "
--	       "src->max_winsize %"Q"u\n",
-+  IF_DEBUG2(DP(RINT "[match_setup] frontier_pos %"Q", srcpos %"Q", "
-+	       "src->max_winsize %"Q"\n",
- 	       frontier_pos, srcpos, stream->src->max_winsize));
-   if (srcpos < frontier_pos &&
-       frontier_pos - srcpos > stream->src->max_winsize) {
-     IF_DEBUG1(DP(RINT "[match_setup] rejected due to src->max_winsize "
--		 "distance eof=%"Q"u srcpos=%"Q"u maxsz=%"Q"u\n",
-+		 "distance eof=%"Q" srcpos=%"Q" maxsz=%"Q"\n",
- 		 xd3_source_eof (stream->src),
- 		 srcpos, stream->src->max_winsize));
-     goto bad;
-@@ -4505,7 +4505,7 @@ xd3_source_match_setup (xd3_stream *stre
- 	}
- 
-       IF_DEBUG2(DP(RINT
--		   "[match_setup] srcpos %"Q"u (tgtpos %"Q"u) "
-+		   "[match_setup] srcpos %"Q" (tgtpos %"Q") "
- 		   "unrestricted maxback %u maxfwd %u\n",
- 		   srcpos,
- 		   stream->total_in + stream->input_position,
-@@ -4541,7 +4541,7 @@ xd3_source_match_setup (xd3_stream *stre
- 	}
- 
-       IF_DEBUG1(DP(RINT
--		   "[match_setup] srcpos %"Q"u (tgtpos %"Q"u) "
-+		   "[match_setup] srcpos %"Q" (tgtpos %"Q") "
- 		   "restricted maxback %u maxfwd %u\n",
- 		   srcpos,
- 		   stream->total_in + stream->input_position,
-@@ -4620,7 +4620,7 @@ xd3_source_extend_match (xd3_stream *str
-   usize_t tryrem;    /* tryrem is the number of matchable bytes */
-   usize_t matched;
- 
--  IF_DEBUG2(DP(RINT "[extend match] srcpos %"Q"u\n",
-+  IF_DEBUG2(DP(RINT "[extend match] srcpos %"Q"\n",
- 	       stream->match_srcpos));
- 
-   XD3_ASSERT (src != NULL);
-@@ -4658,7 +4658,7 @@ xd3_source_extend_match (xd3_stream *str
- 
- 	  tryrem = min (tryoff, stream->match_maxback - stream->match_back);
- 
--	  IF_DEBUG2(DP(RINT "[maxback] maxback %u trysrc %"Q"u/%u tgt %u tryrem %u\n",
-+	  IF_DEBUG2(DP(RINT "[maxback] maxback %u trysrc %"Q"/%u tgt %u tryrem %u\n",
- 		       stream->match_maxback, tryblk, tryoff, streamoff, tryrem));
- 
- 	  /* TODO: This code can be optimized similar to xd3_match_forward() */
-@@ -4783,7 +4783,7 @@ xd3_source_extend_match (xd3_stream *str
- 
-       IF_DEBUG2 ({
- 	static int x = 0;
--	DP(RINT "[source match:%d] <inp %"Q"u %"Q"u>  <src %"Q"u %"Q"u> (%s) [ %u bytes ]\n",
-+	DP(RINT "[source match:%d] <inp %"Q" %"Q">  <src %"Q" %"Q"> (%s) [ %u bytes ]\n",
- 	   x++,
- 	   stream->total_in + target_position,
- 	   stream->total_in + target_position + match_length,
-@@ -5110,13 +5110,13 @@ xd3_srcwin_move_point (xd3_stream *strea
-  	      ret = XD3_INTERNAL;
- 	    }
- 	  IF_DEBUG1 (DP(RINT
--			"[srcwin_move_point] async getblk return for %"Q"u\n",
-+			"[srcwin_move_point] async getblk return for %"Q"\n",
- 			blkno));
- 	  return ret;
- 	}
- 
-       IF_DEBUG1 (DP(RINT
--		    "[srcwin_move_point] T=%"Q"u{%"Q"u} S=%"Q"u EOF=%"Q"u %s\n",
-+		    "[srcwin_move_point] T=%"Q"{%"Q"} S=%"Q" EOF=%"Q" %s\n",
- 		    stream->total_in + stream->input_position,
- 		    logical_input_cksum_pos,
- 		    stream->srcwin_cksum_pos,
-@@ -5164,8 +5164,8 @@ xd3_srcwin_move_point (xd3_stream *strea
-     }
- 
-   IF_DEBUG1 (DP(RINT
--		"[srcwin_move_point] exited loop T=%"Q"u{%"Q"u} "
--		"S=%"Q"u EOF=%"Q"u %s\n",
-+		"[srcwin_move_point] exited loop T=%"Q"{%"Q"} "
-+		"S=%"Q" EOF=%"Q" %s\n",
- 		stream->total_in + stream->input_position,
- 		logical_input_cksum_pos,
- 		stream->srcwin_cksum_pos,
---- a/xdelta3-blkcache.h
-+++ b/xdelta3-blkcache.h
-@@ -246,7 +246,7 @@ main_set_source (xd3_stream *stream, xd3
- 
-       if (sfile->size_known)
- 	{
--	  short_sprintf (srcszbuf, "source size %s [%"Q"u]",
-+	  short_sprintf (srcszbuf, "source size %s [%"Q"]",
- 			 main_format_bcnt (source_size, &srccntbuf),
- 			 source_size);
- 	}
-@@ -366,7 +366,7 @@ main_read_seek_source (xd3_stream *strea
- 	  if (!option_quiet)
- 	    {
- 	      XPR(NT "source can't seek backwards; requested block offset "
--		  "%"Q"u source position is %"Q"u\n",
-+		  "%"Q" source position is %"Q"\n",
- 		  pos, sfile->source_position);
- 	    }
- 
-@@ -386,7 +386,7 @@ main_read_seek_source (xd3_stream *strea
- 
- 	  if (option_verbose > 1)
- 	    {
--	      XPR(NT "seek error at offset %"Q"u: %s\n",
-+	      XPR(NT "seek error at offset %"Q": %s\n",
- 		  pos, xd3_mainerror (ret));
- 	    }
- 	}
-@@ -395,7 +395,7 @@ main_read_seek_source (xd3_stream *strea
- 
-       if (option_verbose > 1 && pos != sfile->source_position)
- 	{
--	  XPR(NT "non-seekable source skipping %"Q"u bytes @ %"Q"u\n",
-+	  XPR(NT "non-seekable source skipping %"Q" bytes @ %"Q"\n",
- 	      pos - sfile->source_position,
- 	      sfile->source_position);
- 	}
-@@ -440,7 +440,7 @@ main_read_seek_source (xd3_stream *strea
- 	  sfile->source_position += nread;
- 	  blru->size = nread;
- 
--	  IF_DEBUG1 (DP(RINT "[getblk] skip blkno %"Q"u size %u\n",
-+	  IF_DEBUG1 (DP(RINT "[getblk] skip blkno %"Q" size %u\n",
- 			skip_blkno, blru->size));
- 
- 	  XD3_ASSERT (sfile->source_position <= pos);
-@@ -536,20 +536,20 @@ main_getblk_func (xd3_stream *stream,
- 	{
- 	  if (blru->blkno != blkno)
- 	    {
--	      XPR(NT "source block %"Q"u read %zu ejects %"Q"u (lru_hits=%u, "
-+	      XPR(NT "source block %"Q" read %zu ejects %"Q" (lru_hits=%u, "
- 		  "lru_misses=%u, lru_filled=%u)\n",
- 		  blkno, nread, blru->blkno, lru_hits, lru_misses, lru_filled);
- 	    }
- 	  else
- 	    {
--	      XPR(NT "source block %"Q"u read %zu (lru_hits=%u, "
-+	      XPR(NT "source block %"Q" read %zu (lru_hits=%u, "
- 		  "lru_misses=%u, lru_filled=%u)\n",
- 		  blkno, nread, lru_hits, lru_misses, lru_filled);
- 	    }
- 	}
-       else
- 	{
--	  XPR(NT "source block %"Q"u read %zu (lru_hits=%u, lru_misses=%u, "
-+	  XPR(NT "source block %"Q" read %zu (lru_hits=%u, lru_misses=%u, "
- 	      "lru_filled=%u)\n", blkno, nread, 
- 	      lru_hits, lru_misses, lru_filled);
- 	}
-@@ -561,8 +561,8 @@ main_getblk_func (xd3_stream *stream,
-   blru->size       = nread;
-   blru->blkno      = blkno;
- 
--  IF_DEBUG1 (DP(RINT "[main_getblk] blkno %"Q"u onblk %zu pos %"Q"u "
--		"srcpos %"Q"u\n",
-+  IF_DEBUG1 (DP(RINT "[main_getblk] blkno %"Q" onblk %zu pos %"Q" "
-+		"srcpos %"Q"\n",
- 		blkno, nread, pos, sfile->source_position));
- 
-   return 0;
---- a/xdelta3-decode.h
-+++ b/xdelta3-decode.h
-@@ -224,7 +224,7 @@ xd3_decode_parse_halfinst (xd3_stream *s
-     {
-       IF_DEBUG2 ({
- 	static int cnt = 0;
--	XPR(NT "DECODE:%u: COPY at %"Q"u (winoffset %u) size %u winaddr %u\n",
-+	XPR(NT "DECODE:%u: COPY at %"Q" (winoffset %u) size %u winaddr %u\n",
- 		 cnt++,
- 		 stream->total_out + (stream->dec_position -
- 				      stream->dec_cpylen),
-@@ -265,7 +265,7 @@ xd3_decode_parse_halfinst (xd3_stream *s
- 	if (inst->type == XD3_ADD)
- 	  {
- 	    static int cnt;
--	    XPR(NT "DECODE:%d: ADD at %"Q"u (winoffset %u) size %u\n",
-+	    XPR(NT "DECODE:%d: ADD at %"Q" (winoffset %u) size %u\n",
- 	       cnt++,
- 	       (stream->total_out + stream->dec_position - stream->dec_cpylen),
- 	       stream->dec_position - stream->dec_cpylen,
-@@ -275,7 +275,7 @@ xd3_decode_parse_halfinst (xd3_stream *s
- 	  {
- 	    static int cnt;
- 	    XD3_ASSERT (inst->type == XD3_RUN);
--	    XPR(NT "DECODE:%d: RUN at %"Q"u (winoffset %u) size %u\n",
-+	    XPR(NT "DECODE:%d: RUN at %"Q" (winoffset %u) size %u\n",
- 	       cnt++,
- 	       stream->total_out + stream->dec_position - stream->dec_cpylen,
- 	       stream->dec_position - stream->dec_cpylen,
-@@ -453,7 +453,7 @@ xd3_decode_output_halfinst (xd3_stream *
- 		if ((source->onblk != blksize) &&
- 		    (blkoff + take > source->onblk))
- 		  {
--		    IF_DEBUG1 (XPR(NT "[srcfile] short at blkno %"Q"u onblk "
-+		    IF_DEBUG1 (XPR(NT "[srcfile] short at blkno %"Q" onblk "
- 				   "%u blksize %u blkoff %u take %u\n",
- 				   block,
- 				   source->onblk,
-@@ -936,7 +936,7 @@ xd3_decode_input (xd3_stream *stream)
- 
- 	stream->dec_state = DEC_CPYLEN;
- 
--	IF_DEBUG2 (DP(RINT "--------- TARGET WINDOW %"Q"u -----------\n",
-+	IF_DEBUG2 (DP(RINT "--------- TARGET WINDOW %"Q" -----------\n",
- 		      stream->current_window));
-       }
- 
-@@ -1093,8 +1093,8 @@ xd3_decode_input (xd3_stream *stream)
- 			  &src->cpyoff_blkoff);
- 	  
- 	  IF_DEBUG1(DP(RINT
--		       "decode cpyoff %"Q"u "
--		       "cpyblkno %"Q"u "
-+		       "decode cpyoff %"Q" "
-+		       "cpyblkno %"Q" "
- 		       "cpyblkoff %u "
- 		       "blksize %u\n",
- 		       stream->dec_cpyoff,
---- a/xdelta3-main.h
-+++ b/xdelta3-main.h
-@@ -616,7 +616,7 @@ main_format_bcnt (xoff_t r, shortbuf *bu
- 
-       if (r >= 100 && r < 1000)
- 	{
--	  short_sprintf (*buf, "%"Q"u %s", r, fmts[i]);
-+	  short_sprintf (*buf, "%"Q" %s", r, fmts[i]);
- 	  return buf->buf;
- 	}
- 
-@@ -716,12 +716,12 @@ main_atoux (const char* arg, xoff_t *xo,
- 
-   if (x < low)
-     {
--      XPR(NT "-%c: minimum value: %"Q"u\n", which, low);
-+      XPR(NT "-%c: minimum value: %"Q"\n", which, low);
-       return EXIT_FAILURE;
-     }
-   if (high != 0 && x > high)
-     {
--      XPR(NT "-%c: maximum value: %"Q"u\n", which, high);
-+      XPR(NT "-%c: maximum value: %"Q"\n", which, high);
-       return EXIT_FAILURE;
-     }
-   (*xo) = x;
-@@ -1296,7 +1296,7 @@ main_print_window (xd3_stream* stream, m
- 
-       if ((ret = xd3_decode_instruction (stream)))
- 	{
--	  XPR(NT "instruction decode error at %"Q"u: %s\n",
-+	  XPR(NT "instruction decode error at %"Q": %s\n",
- 	      stream->dec_winstart + size, stream->msg);
- 	  return ret;
- 	}
-@@ -1487,7 +1487,7 @@ main_print_func (xd3_stream* stream, mai
-       VC(UT "\n")VE;
-     }
- 
--  VC(UT "VCDIFF window number:         %"Q"u\n", stream->current_window)VE;
-+  VC(UT "VCDIFF window number:         %"Q"\n", stream->current_window)VE;
-   VC(UT "VCDIFF window indicator:      ")VE;
-   if ((stream->dec_win_ind & VCD_SOURCE) != 0) VC(UT "VCD_SOURCE ")VE;
-   if ((stream->dec_win_ind & VCD_TARGET) != 0) VC(UT "VCD_TARGET ")VE;
-@@ -1513,14 +1513,14 @@ main_print_func (xd3_stream* stream, mai
- 
-   if (stream->dec_winstart != 0)
-     {
--      VC(UT "VCDIFF window at offset:      %"Q"u\n", stream->dec_winstart)VE;
-+      VC(UT "VCDIFF window at offset:      %"Q"\n", stream->dec_winstart)VE;
-     }
- 
-   if (SRCORTGT (stream->dec_win_ind))
-     {
-       VC(UT "VCDIFF copy window length:    %u\n",
- 	 (usize_t)stream->dec_cpylen)VE;
--      VC(UT "VCDIFF copy window offset:    %"Q"u\n",
-+      VC(UT "VCDIFF copy window offset:    %"Q"\n",
- 	 stream->dec_cpyoff)VE;
-     }
- 
-@@ -1973,7 +1973,7 @@ main_merge_output (xd3_stream *stream, m
- 		  XD3_ASSERT (inst->addr >= window_start);
- 		  addr = inst->addr - window_start;
- 		}
--	      IF_DEBUG2 (XPR(NTR "[merge copy] winpos %u take %u addr %"Q"u mode %u\n",
-+	      IF_DEBUG2 (XPR(NTR "[merge copy] winpos %u take %u addr %"Q" mode %u\n",
- 			    window_pos, take, addr, inst->mode));
- 	      if ((ret = xd3_found_match (recode_stream, window_pos, take,
- 					  addr, inst->mode != 0)))
-@@ -2249,7 +2249,7 @@ main_pipe_copier (uint8_t     *pipe_buf,
- 
-   if (option_verbose && skipped != 0)
-     {
--      XPR(NT "skipping %"Q"u bytes in %s\n",
-+      XPR(NT "skipping %"Q" bytes in %s\n",
- 	  skipped, ifile->filename);
-     }
-   return 0;
-@@ -3290,7 +3290,7 @@ main_input (xd3_cmd     cmd,
- 		    /* Warn when no source copies are found */
- 		    if (option_verbose && ! xd3_encoder_used_source (& stream))
- 		      {
--			XPR(NT "warning: input window %"Q"u..%"Q"u has "
-+			XPR(NT "warning: input window %"Q"..%"Q" has "
- 			    "no source copies\n",
- 			    stream.current_window * winsize,
- 			    (stream.current_window+1) * winsize);
-@@ -3303,7 +3303,7 @@ main_input (xd3_cmd     cmd,
- 			stream.srcwin_decided_early &&
- 			stream.i_slots_used > stream.iopt_size)
- 		      {
--			XPR(NT "warning: input position %"Q"u overflowed "
-+			XPR(NT "warning: input position %"Q" overflowed "
- 			    "instruction buffer, needed %u (vs. %u), "
- 			    "consider changing -I\n",
- 			    stream.current_window * winsize,
-@@ -3327,7 +3327,7 @@ main_input (xd3_cmd     cmd,
- 
- 		    if (option_verbose > 1)
- 		      {
--			XPR(NT "%"Q"u: in %s (%s): out %s (%s): "
-+			XPR(NT "%"Q": in %s (%s): out %s (%s): "
- 			    "total in %s: out %s: %s: srcpos %s\n",
- 			    stream.current_window,
- 			    main_format_bcnt (this_read, &rdb),
-@@ -3341,7 +3341,7 @@ main_input (xd3_cmd     cmd,
- 		      }
- 		    else
- 		      {
--			XPR(NT "%"Q"u: in %s: out %s: total in %s: "
-+			XPR(NT "%"Q": in %s: out %s: total in %s: "
- 			    "out %s: %s\n",
-  			    stream.current_window,
- 			    main_format_bcnt (this_read, &rdb),
-@@ -3437,12 +3437,12 @@ done:
- 
-   if (option_verbose > 2 && cmd == CMD_ENCODE)
-     {
--      XPR(NT "source copies: %"Q"u (%"Q"u bytes)\n",
-+      XPR(NT "source copies: %"Q" (%"Q" bytes)\n",
- 	  stream.n_scpy, stream.l_scpy);
--      XPR(NT "target copies: %"Q"u (%"Q"u bytes)\n",
-+      XPR(NT "target copies: %"Q" (%"Q" bytes)\n",
- 	  stream.n_tcpy, stream.l_tcpy);
--      XPR(NT "adds: %"Q"u (%"Q"u bytes)\n", stream.n_add, stream.l_add);
--      XPR(NT "runs: %"Q"u (%"Q"u bytes)\n", stream.n_run, stream.l_run);
-+      XPR(NT "adds: %"Q" (%"Q" bytes)\n", stream.n_add, stream.l_add);
-+      XPR(NT "runs: %"Q" (%"Q" bytes)\n", stream.n_run, stream.l_run);
-     }
- #endif
- 
-@@ -3454,7 +3454,7 @@ done:
-       long end_time = get_millisecs_now ();
-       xoff_t nwrite = ofile != NULL ? ofile->nwrite : 0;
- 
--      XPR(NT "finished in %s; input %"Q"u output %"Q"u bytes (%0.2f%%)\n",
-+      XPR(NT "finished in %s; input %"Q" output %"Q" bytes (%0.2f%%)\n",
- 	  main_format_millis (end_time - start_time, &tm),
- 	  ifile->nread, nwrite, 100.0 * nwrite / ifile->nread);
-     }
diff --git a/debian/patches/fix_lzma_test.patch b/debian/patches/fix_lzma_test.patch
deleted file mode 100644
index 281368c..0000000
--- a/debian/patches/fix_lzma_test.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-Description: Fix LZMA tests
-Origin: upstream, https://github.com/jmacd/xdelta-devel/commit/806836136cec2eeb763b4b539d4d41bc2c5bbf5c
-Bug: https://github.com/jmacd/xdelta/issues/159
-Bug-Debian: https://bugs.debian.org/740284
-Forwarded: not-needed
-Author: Josh MacDonald <[email protected]>
-Reviewed-by: Salvatore Bonaccorso <[email protected]>
-Last-Update: 2016-02-19
-
----
-
---- a/xdelta3-test.h
-+++ b/xdelta3-test.h
-@@ -1059,9 +1059,9 @@ test_decompress_single_bit_error (xd3_st
-     }
- 
-   /* Check expected non-failures */
--  if (non_failures != expected_non_failures)
-+  if (non_failures > expected_non_failures)
-     {
--      XPR(NT "non-failures %u; expected %u",
-+      XPR(NT "non-failures %u > expected %u",
- 	 non_failures, expected_non_failures);
-       stream->msg = "incorrect";
-       return XD3_INTERNAL;
diff --git a/debian/patches/printf_uint64 b/debian/patches/printf_uint64
deleted file mode 100644
index 9373ea6..0000000
--- a/debian/patches/printf_uint64
+++ /dev/null
@@ -1,40 +0,0 @@
---- a/xdelta3.h
-+++ b/xdelta3.h
-@@ -152,25 +152,25 @@ typedef uint32_t usize_t;
- #ifndef _FILE_OFFSET_BITS
- #define _FILE_OFFSET_BITS 64
- #endif
--
- typedef uint64_t xoff_t;
- #define SIZEOF_XOFF_T 8
- #define SIZEOF_USIZE_T 4
- #ifndef WIN32
--#if SIZEOF_SIZE_T == 8
--#define Q "z"
--#else
--#define Q "ll"
--#endif
--#else
--#define Q "I64"
--#endif
--#else
-+#define __STDC_FORMAT_MACROS
-+#include <inttypes.h>
-+#define Q  PRIu64 /* to print uint64_t that is xoff_t */
-+#define Qd PRId64 /* to print  int64_t  */
-+#else      /*WIN32*/
-+#define Q  "I64u"
-+#define Qd "I64d"
-+#endif     /*WIN32*/
-+#else /* XD3_USE_LARGEFILE64 */
- typedef uint32_t xoff_t;
- #define SIZEOF_XOFF_T 4
- #define SIZEOF_USIZE_T 4
--#define Q
--#endif
-+#define Q  "u"
-+#define Qd "d"
-+#endif /* XD3_USE_LARGEFILE64 */
- 
- #define USE_UINT32 (SIZEOF_USIZE_T == 4 || \
- 		    SIZEOF_XOFF_T == 4 || REGRESSION_TEST)
diff --git a/debian/patches/regtest_size_t b/debian/patches/regtest_size_t
deleted file mode 100644
index 98be9aa..0000000
--- a/debian/patches/regtest_size_t
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/testing/regtest.cc
-+++ b/testing/regtest.cc
-@@ -12,7 +12,7 @@ public:
-     Options() : encode_srcwin_maxsz(1<<20), 
- 		block_size(Constants::BLOCK_SIZE),
- 		size_known(false) { }
--    size_t encode_srcwin_maxsz;
-+    uint64_t encode_srcwin_maxsz;
-     size_t block_size;
-     bool size_known;
-   };
diff --git a/debian/python-xdelta3.examples b/debian/python-xdelta3.examples
deleted file mode 100644
index 11e1313..0000000
--- a/debian/python-xdelta3.examples
+++ /dev/null
@@ -1 +0,0 @@
-testing/xdelta3-test.py
diff --git a/debian/python-xdelta3.substvars b/debian/python-xdelta3.substvars
deleted file mode 100644
index abd3ebe..0000000
--- a/debian/python-xdelta3.substvars
+++ /dev/null
@@ -1 +0,0 @@
-misc:Depends=
diff --git a/debian/rules b/debian/rules
index d09dc07..0c88c39 100755
--- a/debian/rules
+++ b/debian/rules
@@ -1,5 +1,12 @@
 #!/usr/bin/make -f
 
-include /usr/share/cdbs/1/rules/debhelper.mk
-include /usr/share/cdbs/1/class/autotools.mk
+export DEB_BUILD_MAINT_OPTIONS = hardening=+all
+export DEB_LDFLAGS_MAINT_APPEND = -Wl,-z,defs -Wl,--as-needed
 
+%:
+	dh $@
+
+override_dh_auto_test:
+ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
+	./xdelta3regtest
+endif
-- 
2.17.0


--- End Message ---
--- Begin Message ---
Source: xdelta3
Source-Version: 3.0.11-dfsg-1.1
Done: Andreas Tille <[email protected]>

We believe that the bug you reported is fixed in the latest version of
xdelta3, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to [email protected],
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Andreas Tille <[email protected]> (supplier of updated xdelta3 package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [email protected])


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Format: 1.8
Date: Thu, 24 Feb 2022 11:03:55 +0100
Source: xdelta3
Architecture: source
Version: 3.0.11-dfsg-1.1
Distribution: unstable
Urgency: medium
Maintainer: A Mennucc1 <[email protected]>
Changed-By: Andreas Tille <[email protected]>
Closes: 895957 965883
Changes:
 xdelta3 (3.0.11-dfsg-1.1) unstable; urgency=medium
 .
   * Non-maintainer upload.
 .
   [ Jeremy Bicha ]
   * clean up packaging
     Closes: #895957, #965883
 .
   [ Andreas Tille ]
   * Create Git repository on Salsa and add Vcs fields
   * Trim trailing whitespace.
   * Fill in Homepage field.
   * Set debhelper-compat version in Build-Depends.
   * Update standards version to 4.6.0, no changes needed.
   * Avoid explicitly specifying -Wl,--as-needed linker flag.
   * Add debian/salsa-ci.yml
   * DEP5
   * debhelper 13
   * Add watch file
   * Add autopkgtest
Checksums-Sha1:
 90a2e9a4e323d09672117a98f14607571efb3fc4 1941 xdelta3_3.0.11-dfsg-1.1.dsc
 892e43b1b8433f2b6dcae5df338857ea7791582d 8300 
xdelta3_3.0.11-dfsg-1.1.debian.tar.xz
 6e09d95462952f9625f43d15a6d77d5e7f03024a 6113 
xdelta3_3.0.11-dfsg-1.1_amd64.buildinfo
Checksums-Sha256:
 fea872ab1f552ae53e3f85d82103bbcacc27996dc9ba77d52a1d343c49437bc8 1941 
xdelta3_3.0.11-dfsg-1.1.dsc
 3d95edcf4e4cdcc7bca1a6b595c987208ff4a833a1297df2927c5c24e1b530c9 8300 
xdelta3_3.0.11-dfsg-1.1.debian.tar.xz
 c8b5a75e1ae8c83c05837783c207dc8f4ac47ab6f330865dfa24e11409fec9ce 6113 
xdelta3_3.0.11-dfsg-1.1_amd64.buildinfo
Files:
 6605fb7ab4ccc8640f8360c518710197 1941 utils optional 
xdelta3_3.0.11-dfsg-1.1.dsc
 7a496f6d876f263bd60834dd2d18c67e 8300 utils optional 
xdelta3_3.0.11-dfsg-1.1.debian.tar.xz
 0fe7cae9ebe6bd29146e14a5d1695fbd 6113 utils optional 
xdelta3_3.0.11-dfsg-1.1_amd64.buildinfo

-----BEGIN PGP SIGNATURE-----

iQJFBAEBCgAvFiEE8fAHMgoDVUHwpmPKV4oElNHGRtEFAmIXet0RHHRpbGxlQGRl
Ymlhbi5vcmcACgkQV4oElNHGRtFKQw//f5gWP1GyWNte1tZVRWNhF9L2T20HdMTA
Hi7ML/seEjfGp9VUIWe+ATDwSueZkgGlgbFX4ryvMUBcoQ5oQESqIs1qmRwTufhn
BqAfpAjZvalCJjfW5A3qLO/LyKWYsOKkmBd7KY0UbQAKF/fncfZPVmbBRhJQXYjW
h+A4AkvLwZjTtCxQcr1V0dqfJY0UVuYXIPrN3F5pxjaqJ038JojLbAyLsL6jbOdy
8A3LHTb8kzzJugDY6wJxl4YTJhkhDHqjRMcViClwDkMXq2q8ik++wqEGc7t8qLPe
aSuyvA/DpaNR1rVC0NG8dYjjOZx+6ZwphjFFV2alcURYJP3xwjgE27xPu8sxyJKo
Rq3NVnct7Y6yHSjSc43tFia1hixdeKoVZE2+Lwa3OhKJhvy9QJe/wjNi8mP/1ijr
sfrQXiA9fi33AqJkJrhB/ZpK3l+4+Y0UtMKKUgWRO4oncDiXiO4L5IZ7WaSSoz9Z
nR5kgxjfniQ5uns4zNduuNtIVsKk2q2rKhRUfgxbIz3lk+2+/evAIKDXL7f7rLD/
bud8OjtbWP7gLuq60xe6Yuv5Td/dOKLFq550VOiZctQVZ/AObvxH6tvJLie2j+Nv
ksaVrdd6lW/dGvTdg0u3gp2ue01KrciKEumgVWaL/tiYGem/rVVfjAgK6VHCBXlr
zf7TaCO9dwc=
=yGtm
-----END PGP SIGNATURE-----

--- End Message ---

Reply via email to