Hello community,

here is the log from the commit of package python-djvulibre for 
openSUSE:Factory checked in at 2016-03-26 15:29:24
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-djvulibre (Old)
 and      /work/SRC/openSUSE:Factory/.python-djvulibre.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-djvulibre"

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-djvulibre/python-djvulibre.changes        
2015-09-11 09:04:18.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.python-djvulibre.new/python-djvulibre.changes   
2016-03-26 18:12:33.000000000 +0100
@@ -1,0 +2,11 @@
+Sat Mar 12 16:18:34 UTC 2016 - lazy.k...@opensuse.org
+
+- Update to 0.7.1.
+  * Update URL for “actual and proposed changes to the DjVu
+    format”.
+  * Use HTTPS for sourceforge.net URLs.
+  * Fix a few typos in the documentation.
+  * Improve the test suite:
+    + Normalize whitespace in ps2ascii output.
+
+-------------------------------------------------------------------

Old:
----
  python-djvulibre-0.7.tar.gz
  python-djvulibre-0.7.tar.gz.asc

New:
----
  python-djvulibre-0.7.1.tar.gz
  python-djvulibre-0.7.1.tar.gz.asc

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-djvulibre.spec ++++++
--- /var/tmp/diff_new_pack.BCdLUW/_old  2016-03-26 18:12:34.000000000 +0100
+++ /var/tmp/diff_new_pack.BCdLUW/_new  2016-03-26 18:12:34.000000000 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package python-djvulibre
 #
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
 
 
 Name:           python-djvulibre
-Version:        0.7
+Version:        0.7.1
 Release:        0
 Summary:        Python Support for the DjVu Image Format
 License:        GPL-2.0

++++++ python-djvulibre-0.7.tar.gz -> python-djvulibre-0.7.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-djvulibre-0.7/MANIFEST.in 
new/python-djvulibre-0.7.1/MANIFEST.in
--- old/python-djvulibre-0.7/MANIFEST.in        2015-08-25 23:24:28.000000000 
+0200
+++ new/python-djvulibre-0.7.1/MANIFEST.in      2015-11-22 17:36:56.000000000 
+0100
@@ -10,6 +10,6 @@
 
 recursive-include djvu *.py *.pxi *.pxd *.pyx
 
-recursive-include tests *.py Makefile *.jpeg *.tex *.djvu
+recursive-include tests *.py Makefile *.tex *.djvu
 
 include private/*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-djvulibre-0.7/PKG-INFO 
new/python-djvulibre-0.7.1/PKG-INFO
--- old/python-djvulibre-0.7/PKG-INFO   2015-08-26 00:05:18.000000000 +0200
+++ new/python-djvulibre-0.7.1/PKG-INFO 2016-03-11 22:34:27.000000000 +0100
@@ -1,14 +1,14 @@
 Metadata-Version: 1.1
 Name: python-djvulibre
-Version: 0.7
+Version: 0.7.1
 Summary: Python support for the DjVu image format
 Home-page: http://jwilk.net/software/python-djvulibre
 Author: Jakub Wilk
 Author-email: jw...@jwilk.net
 License: GNU GPL 2
-Description: *python-djvulibre* is a set of `Python <https://www.python.org>`_ 
bindings for
-        the `DjVuLibre <http://djvu.sf.net/>`_ library, an open source 
implementation
-        of `DjVu <http://djvu.org/>`_.
+Description: *python-djvulibre* is a set of Python bindings for
+        the `DjVuLibre <http://djvu.sourceforge.net/>`_ library,
+        an open source implementation of `DjVu <http://djvu.org/>`_.
 Platform: all
 Classifier: Development Status :: 4 - Beta
 Classifier: Intended Audience :: Developers
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-djvulibre-0.7/djvu/const.py 
new/python-djvulibre-0.7.1/djvu/const.py
--- old/python-djvulibre-0.7/djvu/const.py      2015-08-21 16:46:44.000000000 
+0200
+++ new/python-djvulibre-0.7.1/djvu/const.py    2015-11-23 15:51:16.000000000 
+0100
@@ -57,7 +57,7 @@
 Subject
 Title
 Trapped'''.split())
-# Retrived from the PDF specification
+# Retrieved from the PDF specification
 
 METADATA_KEYS = METADATA_BIBTEX_KEYS | METADATA_PDFINFO_KEYS
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-djvulibre-0.7/djvu/decode.pyx 
new/python-djvulibre-0.7.1/djvu/decode.pyx
--- old/python-djvulibre-0.7/djvu/decode.pyx    2015-08-18 15:48:05.000000000 
+0200
+++ new/python-djvulibre-0.7.1/djvu/decode.pyx  2016-03-11 21:52:23.000000000 
+0100
@@ -684,7 +684,7 @@
                 raise KeyError(key)
             if self._page_map is None:
                 self._page_map = {}
-                for i from 0 <= i < len(self):
+                for i in range(len(self)):
                     file = File(self._document, i, sentinel = the_sentinel)
                     n_page = file.n_page
                     if n_page is not None:
@@ -897,7 +897,7 @@
         pages = sorted(frozenset(pages))
     else:
         pages = list(pages)
-    for i from 0 <= i < len(pages):
+    for i in range(len(pages)):
         if not is_int(pages[i]):
             raise TypeError('page numbers must be integers')
         if pages[i] < 0:
@@ -1178,7 +1178,7 @@
             RENDER_FOREGROUND
                 render only the foreground layer
             RENDER_BACKGROUND
-                redner only the background layer
+                render only the background layer
         zoom
             Specifies a zoom factor. The default zoom factor scales the image 
to
             fit the page.
@@ -1314,22 +1314,23 @@
         cdef const char **optv
         cdef int optc
         cdef size_t buffer_size
-        optc = 0
         buffer_size = len(options) * sizeof (char*)
         optv = <const char**> py_malloc(buffer_size)
         if optv == NULL:
             raise MemoryError('Unable to allocate {0} bytes for print 
options'.format(buffer_size))
         try:
-            for optc from 0 <= optc < len(options):
+            for optc in range(len(options)):
                 option = options[optc]
                 if is_unicode(option):
                     options[optc] = option = encode_utf8(option)
                 optv[optc] = option
-            assert optc == len(options)
             with nogil: acquire_lock(loft_lock, WAIT_LOCK)
             try:
                 job = SaveJob(sentinel = the_sentinel)
-                job.__init(self._context, 
ddjvu_document_print(self.ddjvu_document, output, optc, optv))
+                job.__init(
+                    self._context,
+                    ddjvu_document_print(self.ddjvu_document, output, 
len(options), optv)
+                )
                 job._file = file_wrapper
             finally:
                 release_lock(loft_lock)
@@ -1528,7 +1529,7 @@
         - The URI is used as a key for the cache of decoded pages.
         - The URI is used to document NewStreamMessage messages.
 
-        Setting argument cache to a true vaule indicates that decoded pages
+        Setting argument cache to a true value indicates that decoded pages
         should be cached when possible.
 
         It is important to understand that the URI is not used to access the
@@ -1833,9 +1834,9 @@
 
     def __cinit__(self, palette, unsigned int bpp = 8):
         cdef int i, j, k, n
-        for i from 0 <= i < 6:
-            for j from 0 <= j < 6:
-                for k from 0 <= k < 6:
+        for i in range(6):
+            for j in range(6):
+                for k in range(6):
                     n = palette[(i, j, k)]
                     if not 0 <= n < 0x100:
                         raise ValueError('palette entries must be in range(0, 
0x100)')
@@ -1846,12 +1847,12 @@
         self.ddjvu_format = ddjvu_format_create(DDJVU_FORMAT_PALETTE8, 216, 
self._palette)
 
     def __repr__(self):
-        cdef int i
+        cdef int i, j, k
         io = StringIO()
         io.write(get_type_name(PixelFormatPalette) + '({')
-        for i from 0 <= i < 6:
-            for j from 0 <= j < 6:
-                for k from 0 <= k < 6:
+        for i in range(6):
+            for j in range(6):
+                for k in range(6):
                     io.write('({i}, {j}, {k}): 0x{v:02x}'.format(i=i, j=j, 
k=k, v=self._palette[i * 6 * 6 + j * 6 + k]))
                     if not (i == j == k == 5):
                         io.write(', ')
@@ -2648,7 +2649,7 @@
         It indicates that the decoder needs to access the data in the main DjVu
         file.
 
-        Further NewStreamMessage messages messages are generated to access the
+        Further NewStreamMessage messages are generated to access the
         auxiliary files of indirect or indexed DjVu documents. .name then
         provides the base name of the auxiliary file.
         '''
@@ -2657,9 +2658,9 @@
 
     property uri:
         '''
-        Return the requrested URI.
+        Return the requested URI.
 
-        URI is is set according to the uri argument provided to function
+        URI is set according to the uri argument provided to function
         Context.new_document(). The first NewMessageStream message always
         contain the URI passed to Context.new_document(). Subsequent
         NewMessageStream messages contain the URI of the auxiliary files for
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-djvulibre-0.7/doc/api/conf.py 
new/python-djvulibre-0.7.1/doc/api/conf.py
--- old/python-djvulibre-0.7/doc/api/conf.py    2015-08-18 10:36:08.000000000 
+0200
+++ new/python-djvulibre-0.7.1/doc/api/conf.py  2016-02-11 00:14:39.000000000 
+0100
@@ -60,7 +60,7 @@
 .. _djvused: http://djvu.sourceforge.net/doc/man/djvused.html
 
 .. |djvuext| replace:: Actual and proposed changes to the DjVu format
-.. _djvuext: 
http://djvu.git.sourceforge.net/git/gitweb.cgi?p=djvu/djvulibre.git;a=blob;f=doc/djvuchanges.txt;hb=refs/tags/release.3.5.23
+.. _djvuext: 
https://sourceforge.net/p/djvu/djvulibre-git/ci/release.3.5.23/tree/doc/djvuchanges.txt
 '''
 
 # vim:ts=4 sts=4 sw=4 et
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-djvulibre-0.7/doc/api/event-model.rst 
new/python-djvulibre-0.7.1/doc/api/event-model.rst
--- old/python-djvulibre-0.7/doc/api/event-model.rst    2015-08-16 
14:59:46.000000000 +0200
+++ new/python-djvulibre-0.7.1/doc/api/event-model.rst  2015-11-23 
15:52:07.000000000 +0100
@@ -59,7 +59,7 @@
       - The URI is used as a key for the cache of decoded pages.
       - The URI is used to document :class:`NewStreamMessage` messages.
 
-      Setting argument `cache` to a true vaule indicates that decoded pages
+      Setting argument `cache` to a true value indicates that decoded pages
       should be cached when possible.
 
       It is important to understand that the URI is not used to access the
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-djvulibre-0.7/doc/api/expressions.rst 
new/python-djvulibre-0.7.1/doc/api/expressions.rst
--- old/python-djvulibre-0.7/doc/api/expressions.rst    2015-08-16 
14:59:46.000000000 +0200
+++ new/python-djvulibre-0.7.1/doc/api/expressions.rst  2016-03-11 
21:51:39.000000000 +0100
@@ -137,8 +137,8 @@
    >>> x.value
    Symbol('ham')
 
-Variétés
---------
+Varieties
+---------
 .. data:: EMPTY_LIST
 
    Empty list S-expression.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-djvulibre-0.7/doc/api/messages.rst 
new/python-djvulibre-0.7.1/doc/api/messages.rst
--- old/python-djvulibre-0.7/doc/api/messages.rst       2015-08-16 
14:59:46.000000000 +0200
+++ new/python-djvulibre-0.7.1/doc/api/messages.rst     2016-01-15 
18:16:40.000000000 +0100
@@ -82,16 +82,16 @@
       to ``None``.  It indicates that the decoder needs to access the data in
       the main DjVu file.
 
-      Further :class:`NewStreamMessage` messages messages are generated to 
access the
+      Further :class:`NewStreamMessage` messages are generated to access the
       auxiliary files of indirect or indexed DjVu documents. :attr:`name` then
       provides the base name of the auxiliary file.
 
 
    .. attribute:: uri
 
-      :return: the requrested URI.
+      :return: the requested URI.
 
-      URI is is set according to the `uri` argument provided to function
+      URI is set according to the `uri` argument provided to function
       :meth:`Context.new_document`. The first :class:`NewStreamMessage` message
       always contain the URI passed to :meth:`Context.new_document`.
       Subsequent :class:`NewStreamMessage` messages contain the URI of the
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-djvulibre-0.7/doc/api/text-zones.rst 
new/python-djvulibre-0.7.1/doc/api/text-zones.rst
--- old/python-djvulibre-0.7/doc/api/text-zones.rst     2015-08-16 
14:59:46.000000000 +0200
+++ new/python-djvulibre-0.7.1/doc/api/text-zones.rst   2015-11-23 
15:51:49.000000000 +0100
@@ -112,7 +112,7 @@
 .. currentmodule:: djvu.const
 .. data:: TEXT_ZONE_SEPARATORS
 
-   Dictionary that maps text types to their seprators.
+   Dictionary that maps text types to their separators.
 
    >>> pprint(TEXT_ZONE_SEPARATORS)
    {<djvu.const.TextZoneType: char>: '',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-djvulibre-0.7/doc/changelog 
new/python-djvulibre-0.7.1/doc/changelog
--- old/python-djvulibre-0.7/doc/changelog      2015-08-25 23:46:21.000000000 
+0200
+++ new/python-djvulibre-0.7.1/doc/changelog    2016-03-11 22:09:02.000000000 
+0100
@@ -1,3 +1,13 @@
+python-djvulibre (0.7.1) unstable; urgency=low
+
+  * Update URL for “actual and proposed changes to the DjVu format”.
+  * Use HTTPS for sourceforge.net URLs.
+  * Fix a few typos in the documentation.
+  * Improve the test suite:
+    + Normalize whitespace in ps2ascii output.
+
+ -- Jakub Wilk <jw...@jwilk.net>  Fri, 11 Mar 2016 22:09:00 +0100
+
 python-djvulibre (0.7) unstable; urgency=low
 
   * Make Expression.from_string() accept both Unicode and byte strings.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-djvulibre-0.7/examples/djvu-crop-text 
new/python-djvulibre-0.7.1/examples/djvu-crop-text
--- old/python-djvulibre-0.7/examples/djvu-crop-text    2015-08-18 
10:36:08.000000000 +0200
+++ new/python-djvulibre-0.7.1/examples/djvu-crop-text  2015-09-04 
23:57:59.000000000 +0200
@@ -18,7 +18,6 @@
 
 import argparse
 import os
-import subprocess
 import sys
 
 import djvu.const
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-djvulibre-0.7/examples/djvu-dump-text 
new/python-djvulibre-0.7.1/examples/djvu-dump-text
--- old/python-djvulibre-0.7/examples/djvu-dump-text    2015-08-18 
10:36:08.000000000 +0200
+++ new/python-djvulibre-0.7.1/examples/djvu-dump-text  2015-09-04 
23:58:27.000000000 +0200
@@ -47,7 +47,7 @@
         document.decoding_job.wait()
         for page in document.pages:
             page.get_info()
-            text = print_text(page.text.sexpr)
+            print_text(page.text.sexpr)
 
 def main():
     if len(sys.argv) != 2:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-djvulibre-0.7/private/apt-install-build-reqs 
new/python-djvulibre-0.7.1/private/apt-install-build-reqs
--- old/python-djvulibre-0.7/private/apt-install-build-reqs     1970-01-01 
01:00:00.000000000 +0100
+++ new/python-djvulibre-0.7.1/private/apt-install-build-reqs   2016-02-20 
13:37:06.000000000 +0100
@@ -0,0 +1,63 @@
+#!/bin/sh
+
+# Copyright © 2015-2016 Jakub Wilk <jw...@jwilk.net>
+#
+# This file is part of python-djvulibre.
+#
+# python-djvulibre is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 as published by
+# the Free Software Foundation.
+#
+# python-djvulibre 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.
+
+pkgs_base='
+build-essential
+libdjvulibre-dev
+pkg-config
+python-dev
+cython
+'
+pkgs_tests='
+python-nose
+djvulibre-bin
+ghostscript
+'
+pkgs="$pkgs_base"
+
+usage()
+{
+    printf '%s [--tests]\n' "$0"
+}
+
+args=$(getopt -n "$0" -o 'h' --long 'help,tests' -- "$@")
+if [ $? -ne 0 ]
+then
+    usage >&2
+    exit 1
+fi
+opt_tests=
+eval set -- "$args"
+while true
+do
+    case "$1" in
+        -h|--help) usage; exit 0;;
+        --tests) opt_tests=y ; shift;;
+        --) shift; break;;
+        *) printf '%s: internal error (%s)\n' "$0" "$1" >&2; exit 1;;
+    esac
+done
+
+[ "$opt_tests" ] && pkgs="$pkgs $pkgs_tests"
+
+PS4='# '
+set -e
+(
+    set -x
+    # shellcheck disable=SC2086
+    apt-get install $pkgs
+)
+
+# vim:ts=4 sts=4 sw=4 et
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-djvulibre-0.7/private/build-and-test 
new/python-djvulibre-0.7.1/private/build-and-test
--- old/python-djvulibre-0.7/private/build-and-test     2015-08-25 
23:59:45.000000000 +0200
+++ new/python-djvulibre-0.7.1/private/build-and-test   2016-02-20 
13:36:15.000000000 +0100
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-# Copyright © 2015 Jakub Wilk <jw...@jwilk.net>
+# Copyright © 2015-2016 Jakub Wilk <jw...@jwilk.net>
 #
 # This file is part of python-djvulibre.
 #
@@ -31,7 +31,7 @@
 do
     case "$1" in
         -h|--help) usage; exit 0;;
-       -j|--jobs) opt_jobs=$2; shift 2;;
+        -j|--jobs) opt_jobs=$2; shift 2;;
         --no-build) opt_build=; shift;;
         --) shift; break;;
         *) printf '%s: internal error (%s)\n' "$0" "$1" >&2; exit 1;;
@@ -42,7 +42,10 @@
 [ $# = 0 ] && set -- python
 [ -z $opt_build ] || \
 printf '%s\n' "$@" \
-| xargs -P"$opt_jobs" -t -I{python} env {python} setup.py build --build-lib 
build/{python}
+| xargs -P"$opt_jobs" -t -I'{python}' env '{python}' setup.py build 
--build-lib 'build/{python}'
 cd tests
+nosetests=$(command -v nosetests) || { echo nosetests not found >&2; exit 1; }
 printf '%s\n' "$@" \
-| xargs -t -I{python} env PYTHONPATH="$PWD/../build/{python}" {python} $(which 
nosetests) --verbose
+| xargs -t -I'{python}' env PYTHONPATH="$PWD/../build/{python}" '{python}' 
"$nosetests" --verbose
+
+# vim:ts=4 sts=4 sw=4 et
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-djvulibre-0.7/private/mingw32-setup-env 
new/python-djvulibre-0.7.1/private/mingw32-setup-env
--- old/python-djvulibre-0.7/private/mingw32-setup-env  2015-08-18 
10:36:08.000000000 +0200
+++ new/python-djvulibre-0.7.1/private/mingw32-setup-env        2016-02-20 
13:38:11.000000000 +0100
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-# Copyright © 2010-2014 Jakub Wilk <jw...@jwilk.net>
+# Copyright © 2010-2016 Jakub Wilk <jw...@jwilk.net>
 #
 # This file is part of python-djvulibre.
 #
@@ -61,7 +61,7 @@
 free
 malloc
 EOF
-$target-dlltool --kill-at --def msvcr.def --dllname msvcr90.dll --output-lib 
"$pwd/$target/common/libmsvcr.a"
+"$target-dlltool" --kill-at --def msvcr.def --dllname msvcr90.dll --output-lib 
"$pwd/$target/common/libmsvcr.a"
 cd 'drive_c/Program Files/DjVuZone/DjVuLibre/'
 cp -v libdjvulibre.dll libjpeg.dll "$pwd/$target/common/"
 cp -vr include/libdjvu "$pwd/$target/common/"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-djvulibre-0.7/python_djvulibre.egg-info/PKG-INFO 
new/python-djvulibre-0.7.1/python_djvulibre.egg-info/PKG-INFO
--- old/python-djvulibre-0.7/python_djvulibre.egg-info/PKG-INFO 2015-08-26 
00:05:18.000000000 +0200
+++ new/python-djvulibre-0.7.1/python_djvulibre.egg-info/PKG-INFO       
2016-03-11 22:34:27.000000000 +0100
@@ -1,14 +1,14 @@
 Metadata-Version: 1.1
 Name: python-djvulibre
-Version: 0.7
+Version: 0.7.1
 Summary: Python support for the DjVu image format
 Home-page: http://jwilk.net/software/python-djvulibre
 Author: Jakub Wilk
 Author-email: jw...@jwilk.net
 License: GNU GPL 2
-Description: *python-djvulibre* is a set of `Python <https://www.python.org>`_ 
bindings for
-        the `DjVuLibre <http://djvu.sf.net/>`_ library, an open source 
implementation
-        of `DjVu <http://djvu.org/>`_.
+Description: *python-djvulibre* is a set of Python bindings for
+        the `DjVuLibre <http://djvu.sourceforge.net/>`_ library,
+        an open source implementation of `DjVu <http://djvu.org/>`_.
 Platform: all
 Classifier: Development Status :: 4 - Beta
 Classifier: Intended Audience :: Developers
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-djvulibre-0.7/python_djvulibre.egg-info/SOURCES.txt 
new/python-djvulibre-0.7.1/python_djvulibre.egg-info/SOURCES.txt
--- old/python-djvulibre-0.7/python_djvulibre.egg-info/SOURCES.txt      
2015-08-26 00:05:18.000000000 +0200
+++ new/python-djvulibre-0.7.1/python_djvulibre.egg-info/SOURCES.txt    
2016-03-11 22:34:27.000000000 +0100
@@ -29,6 +29,7 @@
 examples/djvu-crop-text
 examples/djvu-dump-text
 examples/djvu2png
+private/apt-install-build-reqs
 private/build-and-test
 private/mingw32-setup-env
 python_djvulibre.egg-info/PKG-INFO
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-djvulibre-0.7/setup.py 
new/python-djvulibre-0.7.1/setup.py
--- old/python-djvulibre-0.7/setup.py   2015-08-25 23:14:05.000000000 +0200
+++ new/python-djvulibre-0.7.1/setup.py 2015-11-23 13:38:24.000000000 +0100
@@ -14,9 +14,9 @@
 # more details.
 
 '''
-*python-djvulibre* is a set of `Python <https://www.python.org>`_ bindings for
-the `DjVuLibre <http://djvu.sf.net/>`_ library, an open source implementation
-of `DjVu <http://djvu.org/>`_.
+*python-djvulibre* is a set of Python bindings for
+the `DjVuLibre <http://djvu.sourceforge.net/>`_ library,
+an open source implementation of `DjVu <http://djvu.org/>`_.
 '''
 
 classifiers = '''
@@ -36,7 +36,6 @@
 
 import glob
 import os
-import re
 import sys
 import subprocess as ipc
 
@@ -82,11 +81,13 @@
 ext_modules = list(ext_modules())
 
 def get_version():
-    if sys.version_info >= (3, 0):
-        extra = dict(encoding='UTF-8')
-    else:
-        extra = {}
-    changelog = open(os.path.join(os.path.dirname(__file__), 'doc', 
'changelog'), **extra)
+    open_opts = {}
+    if str != bytes:
+        open_opts.update(encoding='UTF-8')
+    changelog = open(
+        os.path.join(os.path.dirname(__file__), 'doc', 'changelog'),
+        **open_opts
+    )
     try:
         return changelog.readline().split()[1].strip('()')
     finally:
@@ -158,10 +159,7 @@
 py_version = get_version()
 
 # Work-around for <https://bugs.python.org/issue969718>:
-try:
-    del os.environ['CFLAGS']
-except KeyError:
-    pass
+os.environ.pop('CFLAGS', None)
 
 class build_ext(distutils.command.build_ext.build_ext):
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-djvulibre-0.7/tests/test_decode.py 
new/python-djvulibre-0.7.1/tests/test_decode.py
--- old/python-djvulibre-0.7/tests/test_decode.py       2015-08-18 
10:36:08.000000000 +0200
+++ new/python-djvulibre-0.7.1/tests/test_decode.py     2016-02-20 
13:14:01.000000000 +0100
@@ -1,6 +1,6 @@
 # encoding=UTF-8
 
-# Copyright © 2007-2015 Jakub Wilk <jw...@jwilk.net>
+# Copyright © 2007-2016 Jakub Wilk <jw...@jwilk.net>
 #
 # This file is part of python-djvulibre.
 #
@@ -79,6 +79,7 @@
     assert_is,
     assert_is_instance,
     assert_list_equal,
+    assert_multi_line_equal,
     assert_raises,
     assert_raises_regex,
     assert_raises_str,
@@ -93,7 +94,6 @@
     wildcard_import,
     # Python 2/3 compat:
     b,
-    bytes,
     maxsize,
     py3k,
     u,
@@ -136,11 +136,11 @@
         commands += '\nset-ant\n{sexpr}\n.\n'.format(sexpr=sexpr)
     file = tempfile.NamedTemporaryFile(prefix='test', suffix='djvu')
     file.seek(0)
-    file.write(bytes([
-        0x41, 0x54, 0x26, 0x54, 0x46, 0x4f, 0x52, 0x4d, 0x00, 0x00, 0x00, 
0x22, 0x44, 0x4a, 0x56, 0x55,
-        0x49, 0x4e, 0x46, 0x4f, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x01, 0x00, 
0x01, 0x18, 0x00, 0x2c, 0x01,
-        0x16, 0x01, 0x53, 0x6a, 0x62, 0x7a, 0x00, 0x00, 0x00, 0x04, 0xbc, 
0x73, 0x1b, 0xd7,
-    ]))
+    file.write(
+        b'\x41\x54\x26\x54\x46\x4f\x52\x4d\x00\x00\x00\x22\x44\x4a\x56\x55'
+        b'\x49\x4e\x46\x4f\x00\x00\x00\x0a\x00\x01\x00\x01\x18\x00\x2c\x01'
+        b'\x16\x01\x53\x6a\x62\x7a\x00\x00\x00\x04\xbc\x73\x1b\xd7'
+    )
     file.flush()
     (stdout, stderr) = run('djvused', '-s', file.name, 
stdin=commands.encode(locale_encoding))
     assert_equal(stdout, ''.encode(locale_encoding))
@@ -428,20 +428,18 @@
             assert_false(job.is_error)
             stdout, stderr = run('ps2ascii', tmp.name, LC_ALL='C')
             assert_equal(stderr, b(''))
-            stdout = stdout.split(b('\n'))
-            stdout = [b(' ').join(line.split()) for line in stdout]
-            assert_equal(stdout, [
-                b(''),
-                b(''),
-                b('1 Lorem ipsum'),
-                b('Optio reprehenderit molestias amet aliquam, similique 
doloremque fuga labore'),
-                b('voluptatum voluptatem, commodi culpa voluptas, officia 
tenetur expedita quidem hic'),
-                b(''),
-                b('repellat molestiae quis accusamus dolores repudiandae, 
quidem in ad voluptas'),
-                b('eligendi maiores placeat ex consectetur at tenetur amet.'),
-                b(''),
-                b('1'),
-            ])
+            stdout = stdout.decode('ASCII')
+            stdout = ' '.join(stdout.split())
+            expected = '''
+                1 Lorem ipsum
+                Optio reprehenderit molestias amet aliquam, similique 
doloremque fuga labore
+                voluptatum voluptatem, commodi culpa voluptas, officia tenetur 
expedita quidem
+                hic repellat molestiae quis accusamus dolores repudiandae, 
quidem in ad
+                voluptas eligendi maiores placeat ex consectetur at tenetur 
amet.
+                1
+            '''
+            expected = ' '.join(expected.split())
+            assert_multi_line_equal(stdout, expected)
         finally:
             del tmp
 
@@ -543,16 +541,16 @@
             page_job.render(RENDER_COLOR, (0, 0, x, x), (0, 0, x, x), 
PixelFormatRgb(), 8)
 
         s = page_job.render(RENDER_COLOR, (0, 0, 10, 10), (0, 0, 4, 4), 
PixelFormatGrey(), 1)
-        assert_equal(s, bytes([0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 
0xff, 0xff, 0xff, 0xa4, 0xff, 0xff, 0xff, 0xb8]))
+        assert_equal(s, 
b'\xff\xff\xff\xff\xff\xff\xff\xef\xff\xff\xff\xa4\xff\xff\xff\xb8')
 
-        buffer = array.array('B', bytes([0]))
+        buffer = array.array('B', b'\0')
         with assert_raises_str(ValueError, 'Image buffer is too small (16 > 
1)'):
             page_job.render(RENDER_COLOR, (0, 0, 10, 10), (0, 0, 4, 4), 
PixelFormatGrey(), 1, buffer)
 
-        buffer = array.array('B', bytes([0] * 16))
+        buffer = array.array('B', b'\0' * 16)
         assert_is(page_job.render(RENDER_COLOR, (0, 0, 10, 10), (0, 0, 4, 4), 
PixelFormatGrey(), 1, buffer), buffer)
         s = array_tobytes(buffer)
-        assert_equal(s, bytes([0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 
0xff, 0xff, 0xff, 0xa4, 0xff, 0xff, 0xff, 0xb8]))
+        assert_equal(s, 
b'\xff\xff\xff\xff\xff\xff\xff\xef\xff\xff\xff\xa4\xff\xff\xff\xb8')
 
 class test_thumbnails:
 
@@ -572,15 +570,15 @@
         assert_is(pixels, None)
         (w, h, r), pixels = thumbnail.render((5, 5), PixelFormatGrey())
         assert_equal((w, h, r), (5, 3, 5))
-        assert_equal(pixels[:15], bytes([0xff, 0xeb, 0xa7, 0xf2, 0xff, 0xff, 
0xbf, 0x86, 0xbe, 0xff, 0xff, 0xe7, 0xd6, 0xe7, 0xff]))
-        buffer = array.array('B', bytes([0]))
+        assert_equal(pixels[:15], 
b'\xff\xeb\xa7\xf2\xff\xff\xbf\x86\xbe\xff\xff\xe7\xd6\xe7\xff')
+        buffer = array.array('B', b'\0')
         with assert_raises_str(ValueError, 'Image buffer is too small (25 > 
1)'):
             (w, h, r), pixels = thumbnail.render((5, 5), PixelFormatGrey(), 
buffer=buffer)
-        buffer = array.array('B', bytes([0] * 25))
+        buffer = array.array('B', b'\0' * 25)
         (w, h, r), pixels = thumbnail.render((5, 5), PixelFormatGrey(), 
buffer=buffer)
         assert_is(pixels, buffer)
         s = array_tobytes(buffer[:15])
-        assert_equal(s, bytes([0xff, 0xeb, 0xa7, 0xf2, 0xff, 0xff, 0xbf, 0x86, 
0xbe, 0xff, 0xff, 0xe7, 0xd6, 0xe7, 0xff]))
+        assert_equal(s, 
b'\xff\xeb\xa7\xf2\xff\xff\xbf\x86\xbe\xff\xff\xe7\xd6\xe7\xff')
 
 def test_jobs():
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-djvulibre-0.7/tests/tools.py 
new/python-djvulibre-0.7.1/tests/tools.py
--- old/python-djvulibre-0.7/tests/tools.py     2015-08-18 10:36:08.000000000 
+0200
+++ new/python-djvulibre-0.7.1/tests/tools.py   2016-02-20 12:54:37.000000000 
+0100
@@ -20,92 +20,112 @@
 import re
 import sys
 
+from nose import SkipTest
+
+import nose.tools
+
 from nose.tools import (
     assert_true,
     assert_false,
     assert_equal,
     assert_not_equal,
 )
-from nose import SkipTest
 
-if sys.version_info >= (2, 7):
-    from nose.tools import (
-        assert_in,
-        assert_is,
-        assert_is_instance,
-        assert_less,
-        assert_list_equal,
-        assert_multi_line_equal,
-        assert_not_in,
-        assert_raises,
+def noseimport(vmaj, vmin, name=None):
+    def wrapper(f):
+        if f.__module__ == 'unittest.case':
+            return f
+        if sys.version_info >= (vmaj, vmin):
+            return getattr(nose.tools, name or f.__name__)
+        return f
+    return wrapper
+
+@noseimport(2, 7)
+def assert_in(x, y):
+    assert_true(
+        x in y,
+        msg='{0!r} not found in {1!r}'.format(x, y)
+    )
+
+@noseimport(2, 7)
+def assert_is(x, y):
+    assert_true(
+        x is y,
+        msg='{0!r} is not {1!r}'.format(x, y)
     )
-    if sys.version_info >= (3, 2):
-        from nose.tools import assert_raises_regex
-        from nose.tools import assert_regex
-    else:
-        from nose.tools import assert_raises_regexp as assert_raises_regex
-        from nose.tools import assert_regexp_matches as assert_regex
+
+@noseimport(2, 7)
+def assert_is_instance(obj, cls):
+    assert_true(
+        isinstance(obj, cls),
+        msg='{0!r} is not an instance of {1!r}'.format(obj, cls)
+    )
+
+@noseimport(2, 7)
+def assert_less(x, y):
+    assert_true(
+        x < y,
+        msg='{0!r} not less than {1!r}'.format(x, y)
+    )
+
+@noseimport(2, 7)
+def assert_list_equal(x, y):
+    assert_is_instance(x, list)
+    assert_is_instance(y, list)
+    return assert_equal(x, y)
+
+@noseimport(2, 7)
+def assert_multi_line_equal(x, y):
+    return assert_equal(x, y)
+if sys.version_info >= (2, 7):
     type(assert_multi_line_equal.__self__).maxDiff = None
-else:
-    def assert_in(x, y):
-        assert_true(
-            x in y,
-            msg='{0!r} not found in {1!r}'.format(x, y)
-        )
-    def assert_is(x, y):
-        assert_true(
-            x is y,
-            msg='{0!r} is not {1!r}'.format(x, y)
-        )
-    def assert_is_instance(obj, cls):
-        assert_true(
-            isinstance(obj, cls),
-            msg='{0!r} is not an instance of {1!r}'.format(obj, cls)
-        )
-    def assert_less(x, y):
-        assert_true(
-            x < y,
-            msg='{0!r} not less than {1!r}'.format(x, y)
-        )
-    assert_list_equal = assert_equal
-    assert_multi_line_equal = assert_equal
-    def assert_not_in(x, y):
-        assert_true(
-            x not in y,
-            msg='{0!r} unexpectedly found in {1!r}'.format(x, y)
-        )
-    class assert_raises(object):
-        def __init__(self, exc_type):
-            self._exc_type = exc_type
-            self.exception = None
-        def __enter__(self):
-            return self
-        def __exit__(self, exc_type, exc_value, tb):
-            if exc_type is None:
-                assert_true(False, '{0} not 
raised'.format(self._exc_type.__name__))
-            if not issubclass(exc_type, self._exc_type):
-                return False
-            if isinstance(exc_value, exc_type):
-                pass
-                # This branch is not always taken in Python 2.6:
-                # https://bugs.python.org/issue7853
-            elif isinstance(exc_value, tuple):
-                exc_value = exc_type(*exc_value)
-            else:
-                exc_value = exc_type(exc_value)
-            self.exception = exc_value
-            return True
-    @contextlib.contextmanager
-    def assert_raises_regex(exc_type, regex):
-        with assert_raises(exc_type) as ecm:
-            yield
-        assert_regex(str(ecm.exception), regex)
-    def assert_regex(text, regex):
-        if isinstance(regex, basestring):
-            regex = re.compile(regex)
-        if not regex.search(text):
-            message = "Regex didn't match: {0!r} not found in 
{1!r}".format(regex.pattern, text)
-            assert_true(False, msg=message)
+
+@noseimport(2, 7)
+def assert_not_in(x, y):
+    assert_true(
+        x not in y,
+        msg='{0!r} unexpectedly found in {1!r}'.format(x, y)
+    )
+
+@noseimport(2, 7)
+class assert_raises(object):
+    def __init__(self, exc_type):
+        self._exc_type = exc_type
+        self.exception = None
+    def __enter__(self):
+        return self
+    def __exit__(self, exc_type, exc_value, tb):
+        if exc_type is None:
+            assert_true(False, '{0} not 
raised'.format(self._exc_type.__name__))
+        if not issubclass(exc_type, self._exc_type):
+            return False
+        if isinstance(exc_value, exc_type):
+            pass
+            # This branch is not always taken in Python 2.6:
+            # https://bugs.python.org/issue7853
+        elif isinstance(exc_value, tuple):
+            exc_value = exc_type(*exc_value)
+        else:
+            exc_value = exc_type(exc_value)
+        self.exception = exc_value
+        return True
+
+@noseimport(2, 7, 'assert_raises_regexp')
+@noseimport(3, 2)
+@contextlib.contextmanager
+def assert_raises_regex(exc_type, regex):
+    with assert_raises(exc_type) as ecm:
+        yield
+    assert_regex(str(ecm.exception), regex)
+
+@noseimport(2, 7, 'assert_regexp_matches')
+@noseimport(3, 2)
+def assert_regex(text, regex):
+    if isinstance(regex, basestring):
+        regex = re.compile(regex)
+    if not regex.search(text):
+        message = "Regex didn't match: {0!r} not found in 
{1!r}".format(regex.pattern, text)
+        assert_true(False, msg=message)
 
 @contextlib.contextmanager
 def assert_raises_str(exc_type, s):
@@ -152,17 +172,11 @@
             return -1
         if x > y:
             return 1
-        assert 0
+        assert False
 else:
     cmp = cmp
 
 if py3k:
-    bytes = bytes
-else:
-    def bytes(iterable):
-        return ''.join(chr(c) for c in iterable)
-
-if py3k:
     from io import StringIO
 else:
     from io import BytesIO as StringIO
@@ -244,7 +258,6 @@
     # Python 2/3 compat:
     'StringIO',
     'b',
-    'blob',
     'cmp',
     'long',
     'maxsize',

++++++ python-djvulibre.keyring ++++++
--- /var/tmp/diff_new_pack.BCdLUW/_old  2016-03-26 18:12:34.000000000 +0100
+++ /var/tmp/diff_new_pack.BCdLUW/_new  2016-03-26 18:12:34.000000000 +0100
@@ -1,7 +1,8 @@
-pub   rsa4096/015475F5 2009-10-23 [expires: 2016-01-01]
-uid       [ unknown] Jakub Wilk <jw...@jwilk.net>
-uid       [ unknown] Jakub Wilk <jw...@debian.org>
-uid       [ unknown] Jakub Wilk <uba...@users.sf.net>
+pub   rsa4096/015475F5 2009-10-23 [expires: 2017-01-01]
+uid         [ unknown] Jakub Wilk <jw...@jwilk.net>
+uid         [ unknown] Jakub Wilk <jw...@debian.org>
+uid         [ unknown] Jakub Wilk <uba...@users.sf.net>
+uid         [ unknown] [jpeg image of size 6044]
 sub   rsa4096/E5874F63 2009-10-23
 
 -----BEGIN PGP PUBLIC KEY BLOCK-----
@@ -17,66 +18,66 @@
 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
-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
-bN5AxyPui0i3KQXs09FW/+n9DTw=
-=iNj8
+tBxKYWt1YiBXaWxrIDxqd2lsa0Bqd2lsay5uZXQ+iQI+BBMBCAAoAhsDAh4BAheA
+AhkBBQsJCAcDAxUICwUWAwIBAAUCVgx3gAUJDYYqswAKCRAtTrOmAVR19WWVD/wO
++ju+EH0sTvaKcC7whFM/Ilt9WuCIFFZVsmE5tYfVClHanLbTjNjvGS/BxB8Se9+k
+ZNsQXoPvIOf0mzXBfpot6t7GPSQNwB2pvdzVxNgs1fUVhF9YRnQf9rjjY/xr94AZ
+7bXz0kD0NGiIyr9pBNE1D/Su414yV0KbQ0EXKjKo9Lfy1mWq503tn0bhvIObBIUZ
+aswOBTKD2ATg1TOmmzo4IisC6g6Rq0CKLEifAXOGwJ1C0TJNQnHTiI0JN5aj2+o7
+i7sX1tKXFlSI+TvhrbtUI55nrS5qUsRj8lzIRoIihbfGMweatTgel5LyO/1lhPWX
+SglbCFxkb/FuTPy9EE9radiGWg5lIylHALwE+LB5KgTp+Qfx2s6ZCg63wvxrXDl3
+DrGWh3SueZfUuU9Zcg153rXtkOPBUCKVj4uouzH7kXJdBKzYDdEkgI0QU4oOjYfA
+3EnYaUhm0vf39lLiyhXHSUPUtSYGZ8RRE0dLvYvCOhVdRMb4jVOiQ0RKONKTKCK/
+rYhzuUlhTS7uw5qNZtJ112IjDV7z5040ixYkvEIPL5ODETuAPegqAQD1aNoJ53vd
+E4cAVVUONHWHPgZaZ6efHLLpGpa2Unk9Uadb7NXKCwQXO6SmYyvM1UwPkx0Bn7at
+pUjR44BwVCWUTs8956URrbyk2ruxBwYCstCHosua8rQdSmFrdWIgV2lsayA8andp
+bGtAZGViaWFuLm9yZz6JAjsEEwEIACUCGwMCHgECF4AFCwkIBwMDFQgLBRYDAgEA
+BQJWDHeABQkNhiqzAAoJEC1Os6YBVHX1Y6UP/j/o/6KxPIDHIFfl9mTbKHmn3gEV
+yCTAOb00bBbKlPvaArqvyjzhuJGpS+fBrubyzGQeKg3Qj6h4/+34mXugmn7/4vzP
+XHe8ybOyIEeP5CgK+CNnXjkf8q2St26POlRxVG+VrMFBU//GSMZQMqW6uWWIsqYe
+VrRuO6/aSiN2AtsgFRpjrSWTUb7l7tMoO8Lxp1cBDGTxb89daoKoohIvUfKJr+iQ
+qa4pZl9kO+1LGKDedUjJmX7n3/Xhjc+A9K6uNye+Z6xyguQA0nqSAyZgkxX5BLTQ
+pCkRVyENTowktIIVtgeriaA3TQ1BdDWrISYgtoyJ8XQk4inyeGGCI64YPwL95z8R
+peUxRn/eGjVEVDfC6PXNzREuUhkogQqld4gQNESBIT1xPukZ3gbzCaJmmqwfvjgo
+vupr5bI2JbQprorNITku1M5sKFaUDu41MTIYLkhIke337MN/I4LMVOjNewyPgEAk
+rtLSIZ1UtNH3g5REK8aXXf3ms9z9AeXtatsGHa6eZ2podhNDy62liWDD7ONO973D
+GUzR6Q1ngXlmkXFLa5iNptVz8dH0Az13MIFeMFnfpo/wWVv5i8AcmCPj1GvODfms
+9oV7fbNWrst1JuVyc92d631Av3mqJsuQNkfOI761+mR2FDOYJjZGvCUWMXiZ1Wdc
+yFlv0E/BI/yBb98/tCBKYWt1YiBXaWxrIDx1YmFudXNAdXNlcnMuc2YubmV0PokC
+PQQTAQgAJwIbAwULCQgHAwUVCgkICwUWAwIBAAIeAQIXgAUCTe5OOAUJBdQcOAAK
+CRAtTrOmAVR19YDGD/4+rKwvdYgNE7CIiceFbfORo9GGmM4x8fOOm27cr7YYgvrJ
+dAm16SV3oNoVeHo9YhD8e7Dqq/OD/Ch/00H/Nd5oT9p4/1v0FWrjPPcM94o58CVL
+oIpVN7rvsCiIQ3hWW72Sdksv+guOSInHel6nPnazUMDVhCXX2QVaN2hlLnd3c4Z1
+yHW+HRlBiC/brpmflZYa8vsaBBJ6FumUwzdIFyxsAWFFN5FQ8TkV/VQjuQDZXvI8
+/C4tYUWapdZ5s5uvnuqpx/8c6OEBW4yFkc8W/IvrctqaFoR4VlPr8fo2frp5+wSz
+KTpRWnPQZPWTQcuXKmc3tCICfPxsnTsXHDHBH4p2y4Hn6syA9fyJeSwwAViAItH0
+OVVA2gjzSt/uxi3yzIqrbK4cnt9IH7xM4/sVdM94PRwZSvXHTQBStwGtdwYmH7wg
+16RijAR7tT+2Qm5GwlXBa6ffZSc7x9AviPi7kIObSe78dPYHNvECJigXliRxrAOv
+z4Kvahn8xypiLK5J6i7FOmqoI8X4AHtm0SUaRarI1EeEnWP1GM1Oil3N+nNvSRB9
+XUduzk92lX9BmqdVSWYDV3iOQiTVriVoEk+nza1SR/sI13hg1Ll8i3Ig4Dkv0pNI
+vpOyY3J7348WBA3coFGGiaCt43T2nvpMlOw/eTmt7+C21Jv8wVt7M1iwxzPipbkC
+DQRK4hvNARAA5XH3zJA2fvYV9ApCAndrkxTnJalrq/45dNIM5mzDwVHf1lTRTNKk
+paG6S8hKINbC/KuX1PvSQR1mBjPjXeR0X7Vg3I3Zpu7cTrVXA6KdJga+pEJdY8bv
+LaIYgxOJTXcniWCsGWVoBv8gZaPIpuizx2fOYe43scscCYGmmlMqNdi5c8Zv2WxA
+I8MkK6UNZriASjOX3NJonYgtCdHof7amfE8gnC/7JDuiSIHZODKblQ7BgqknCV5J
+ATGh4Mxir5K34GhUzMJP7Av/jVXZ+lue2rtGka44lKugkICqneTWLwQdtxqZTULw
+UqpPM3aptnef5lGPtoQegBYFdjah9JPqCEy0VOpxxmFqfhzl2nf8EacmnJfyovfE
+yjTGG3qOsIt/JJ7ZUT9+oVy3O+jJh5OQyO21da+Fj9L2aev0B0U3vSJyiGoNPmmm
+Kk3B4aKrcEuyOd1Xb+6QllebKGTpswMjV/qrb8U6BKkuXHShkt0AXzg8xj5a2b8h
+kuS0SEY16JcMztpQGzXmDznfu91se1/YtWorQh8GWRDJWgT9UZEtf//IfGpsSiyF
+ubQmZFGw6px4g6f93ezCwDukVWBet9fnWu4HbXcEDw7SWPwTcAue1Pe/O60V2Slc
+b+xmmPalUNWPkQa1gOvELTc/PSrRPlJpZ4giRIKC+t/O0MHL7fniqNkAEQEAAYkC
+HwQYAQgACQUCSuIbzQIbDAAKCRAtTrOmAVR19bfXEADIgtnn6JojowGGOuYyXDAr
+mazPdd3xquI9fLOow6UFbr5mTNPCuDS/nFy3vaY0XAwln4Vxvy75088vWuPsxgVY
+s1Nlcy8puJypBxXsWTA9R6/XJvmZCy7EaalQgYJ1RKVVyYBMXgEy/CZQj4hVDAAH
+n3QkKBDzk4CHc9jY77bHSJGkeam8JYIX2AeUMDrsH4RvrRmpBOnd9aHbOZUBPYl/
+SdPYcm4vfmxX/Is6h4rbSeRTsPmn0u7Nb5giOqSt/zbkncCuPD4H+N8Yz3Fjf6tG
+W9b2L4BUAxydLiqnj33TvpnuGDIxYddm/6amRtjh9zm7z0PExnXO4Gimzx36aivf
+B9Oi1p60Trria/kjVR4jjpz/ad0u5tghUyJlNKoHq4leGMj4xo8ED2wsZr5vpzPb
+3/laRaPetz/z2+sRLkdSo0Fs4JeIPVFu/YHd+/i74d/+rb4KLWCJVXZUtpc665Yq
+gTuNDt8fVaXliYWT33wJoppeJV56jtpN+LelmqSOwYAwhYKRjOzMYVkWbw52jKcn
+rStrNGDKrP39Qnvv7bCfnRhUm60/jhaI/k0X0Qu58aQOj3+v8N+SeUhLmnJznm3h
+iMWMPozZXyg7yke5DZM7XhORfrb2EKEGVUJBAFRJTTu2hDeIPDm6YIUftOhs3kDH
+I+6LSLcpBezT0Vb/6f0NPA==
+=l89W
 -----END PGP PUBLIC KEY BLOCK-----


Reply via email to