Your message dated Tue, 16 May 2023 15:26:22 +0000
with message-id <[email protected]>
and subject line Bug#1035965: fixed in python-ansible-pygments 0.1.1-6
has caused the Debian Bug report #1035965,
regarding python-ansible-pygments: Autopkgtest fails against pygments 2.15
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.)


-- 
1035965: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1035965
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: python-ansible-pygments
Severity: normal
Tags: patch
User: [email protected]
Usertags: origin-ubuntu mantic ubuntu-patch

Dear Maintainer,

Since the move to pygments 2.15, the autopkgtest testsuite fails with
the following error:

Traceback (most recent call last):
  File "/home/olivier/dev/canonical/ansible-pygments/tests/lexer_test.py", line 
131, in <module>
    test_ansible_output_lexer()
  File "/home/olivier/dev/canonical/ansible-pygments/tests/lexer_test.py", line 
78, in test_ansible_output_lexer
    assert result == R"""<div class="highlight"><pre><span></span><span 
class="k">ok</span><span class="p">:</span> <span class="p">[</span><span 
class="nv">windows</span><span class="p">]</span> <span class="p">=&gt;</span> 
<span class="p">{</span>
           
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError

The bug was fixed upstream by
https://github.com/ansible-community/ansible-pygments/pull/34.

In Ubuntu, the attached patch was applied to achieve the following:

  * Add patch from upstream to fix test suite against pygments 2.15
    Added patch:
    debian/patches/Make-lexer-test-compare-tokens.patch
    (LP: #2019237)

Thanks for considering the patch.


-- System Information:
Debian Release: bookworm/sid
  APT prefers lunar-updates
  APT policy: (500, 'lunar-updates'), (500, 'lunar-security'), (500, 'lunar')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 6.1.0-16-generic (SMP w/8 CPU threads; PREEMPT)
Kernel taint flags: TAINT_PROPRIETARY_MODULE, TAINT_OOT_MODULE
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE=en
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled
diff -Nru 
python-ansible-pygments-0.1.1/debian/patches/Make-lexer-test-compare-tokens.patch
 
python-ansible-pygments-0.1.1/debian/patches/Make-lexer-test-compare-tokens.patch
--- 
python-ansible-pygments-0.1.1/debian/patches/Make-lexer-test-compare-tokens.patch
   1970-01-01 01:00:00.000000000 +0100
+++ 
python-ansible-pygments-0.1.1/debian/patches/Make-lexer-test-compare-tokens.patch
   2023-05-11 21:30:42.000000000 +0200
@@ -0,0 +1,342 @@
+Description: Make lexer test compare tokens
+ With new releases of `pygments`, this test was getting broken again
+ and again because it originally relied on HTML the formatted text
+ output. Hence, it was prone to external influence for no good reason.
+ .
+ This patch rewrites it to solely rely on the underlying tokens that
+ our lexer produces, therefore reducing the dependence on unrelated
+ changes in the `pygments` library.
+Author: Sviatoslav Sydorenko <[email protected]>
+Origin: upstream, https://github.com/ansible-community/ansible-pygments/pull/34
+Bug: https://github.com/ansible-community/ansible-pygments/issues/33
+Bug-Ubuntu: https://bugs.launchpad.net/bugs/2019237
+Applied-Upstream: 
https://github.com/ansible-community/ansible-pygments/commit/179c74e9f1a5dc870dec6d4db6cab60d2dca1ed2
+Last-Update: 2023-05-11
+---
+This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
+diff --git a/tests/lexer_test.py b/tests/lexer_test.py
+index 5b700a9..a842a7c 100644
+--- a/tests/lexer_test.py
++++ b/tests/lexer_test.py
+@@ -1,26 +1,24 @@
+ # Author: Felix Fontein <[email protected]>
+ # License: BSD-2-Clause
+ # Copyright: Felix Fontein <[email protected]>, 2021
+-"""Tests for Pygments lexers."""
++"""Tests for Pygments lexers.
+ 
+-from pygments import highlight
+-# pylint: disable=no-name-in-module
+-# Ref: https://github.com/PyCQA/pylint/issues/491
+-from pygments.formatters import HtmlFormatter
+-
+-from ansible_pygments.lexers import AnsibleOutputLexer
++They rely on token comparison for stability reasons. Relying on
++additional style formatting is known to break with updates to
++the pygments library itself.
++"""
+ 
++from pygments import __version__ as _pygments_version
++from pygments.lexers import get_lexer_by_name as _get_lexer_by_name
++from pygments.token import Token
+ 
+-def run_test(data, lexer):
+-    """Format the data snippet as HTML using a given lexer."""
+-    formatter = HtmlFormatter()
+-    result = highlight(data, lexer, formatter)
+-    return formatter.get_style_defs('.highlight'), result
++PYGMENTS_VERSION_INFO = tuple(map(int, _pygments_version.split('.')))
++IS_OLD_PYGMENTS_PRE_2_14 = PYGMENTS_VERSION_INFO <= (2, 14, 0)
+ 
+ 
+ def test_ansible_output_lexer():
+-    """Test that AnsibleOutputLexer produces expected HTML output."""
+-    data = R"""
++    """Test that ``AnsibleOutputLexer`` produces expected tokens."""
++    ansible_play_output_example = R"""
+ ok: [windows] => {
+     "account": {
+         "account_name": "vagrant-domain",
+@@ -71,58 +69,226 @@ Sunday 11 November 2018  20:19:25 +0100 (0:00:00.607)     
  0:10:36.974 *******
+ 
+ changed: [localhost]
+ """
+-    _, result = run_test(data, AnsibleOutputLexer())
+-    print(result)
+-
+-    # pylint: disable=line-too-long
+-    assert result == R"""<div class="highlight"><pre><span></span><span 
class="k">ok</span><span class="p">:</span> <span class="p">[</span><span 
class="nv">windows</span><span class="p">]</span> <span class="p">=&gt;</span> 
<span class="p">{</span>
+-    <span class="nt">&quot;account&quot;</span><span class="p">:</span> <span 
class="p">{</span>
+-        <span class="nt">&quot;account_name&quot;</span><span 
class="p">:</span> <span class="s">&quot;vagrant-domain&quot;</span><span 
class="p">,</span>
+-        <span class="nt">&quot;type&quot;</span><span class="p">:</span> 
<span class="s">&quot;User&quot;</span>
+-    <span class="p">},</span>
+-    <span class="nt">&quot;authentication_package&quot;</span><span 
class="p">:</span> <span class="s">&quot;Kerberos&quot;</span><span 
class="p">,</span>
+-    <span class="nt">&quot;user_flags&quot;</span><span class="p">:</span> 
<span class="p">[]</span>
+-<span class="p">}</span>
+ 
+-<span class="k">TASK</span> <span class="p">[</span><span 
class="l">paused</span><span class="p">]</span> <span 
class="nv">************************************************************************************************************************************</span>
+-<span class="w">Sunday 11 November 2018  20:16:48 +0100 (0:00:00.041)       
0:07:59.637 *******</span>
+-<span class="gd">--- before</span>
+-<span class="gi">+++ after</span>
+-<span class="gu">@@ -1,5 +1,5 @@</span>
+-<span class="w"> </span>{
+-<span class="gd">-  &quot;exists&quot;: false,</span>
+-<span class="gd">-  &quot;paused&quot;: false,</span>
+-<span class="gd">-  &quot;running&quot;: false</span>
+-<span class="gi">+  &quot;exists&quot;: true,</span>
+-<span class="gi">+  &quot;paused&quot;: true,</span>
+-<span class="gi">+  &quot;running&quot;: true</span>
+-<span class="w"> </span>}
+-<span class="w">\ No newline at end of file</span>
++    expected_resulting_text_tokens = [
++        (0, Token.Text.Whitespace, '\n'),
++        (1, Token.Keyword, 'ok'),
++        (3, Token.Punctuation, ':'),
++        (4, Token.Text, ' '),
++        (5, Token.Punctuation, '['),
++        (6, Token.Name.Variable, 'windows'),
++        (13, Token.Punctuation, ']'),
++        (14, Token.Text, ' '),
++        (15, Token.Punctuation, '=>'),
++        (17, Token.Text, ' '),
++        (18, Token.Punctuation, '{'),
++        (19, Token.Text, '\n    '),
++        (24, Token.Name.Tag, '"account"'),
++        (33, Token.Punctuation, ':'),
++        (34, Token.Text, ' '),
++        (35, Token.Punctuation, '{'),
++        (36, Token.Text, '\n        '),
++        (45, Token.Name.Tag, '"account_name"'),
++        (59, Token.Punctuation, ':'),
++        (60, Token.Text, ' '),
++        (61, Token.Literal.String, '"vagrant-domain"'),
++        (77, Token.Punctuation, ','),
++        (78, Token.Text, '\n        '),
++        (87, Token.Name.Tag, '"type"'),
++        (93, Token.Punctuation, ':'),
++        (94, Token.Text, ' '),
++        (95, Token.Literal.String, '"User"'),
++        (101, Token.Text, '\n    '),
++        (106, Token.Punctuation, '}'),
++        (107, Token.Punctuation, ','),
++        (108, Token.Text, '\n    '),
++        (113, Token.Name.Tag, '"authentication_package"'),
++        (137, Token.Punctuation, ':'),
++        (138, Token.Text, ' '),
++        (139, Token.Literal.String, '"Kerberos"'),
++        (149, Token.Punctuation, ','),
++        (150, Token.Text, '\n    '),
++        (155, Token.Name.Tag, '"user_flags"'),
++        (167, Token.Punctuation, ':'),
++        (168, Token.Text, ' '),
++        (169, Token.Punctuation, '['),
++        (170, Token.Punctuation, ']'),
++        (171, Token.Text, '\n'),
++        (172, Token.Punctuation, '}'),
++        (173, Token.Text, '\n'),
++        (174, Token.Text.Whitespace, '\n'),
++        (175, Token.Keyword, 'TASK'),
++        (179, Token.Text, ' '),
++        (180, Token.Punctuation, '['),
++        (181, Token.Literal, 'paused'),
++        (187, Token.Punctuation, ']'),
++        (188, Token.Text, ' '),
++        (
++            189,
++            Token.Name.Variable,
++            '*' * 132,
++        ),
++        (321, Token.Text, '\n'),
++        *(
++            (
++                (
++                    322,
++                    Token.Text.Whitespace,
++                    'Sunday 11 November 2018  20:16:48 +0100 (0:00:00.041)    
   '
++                    '0:07:59.637 *******\n',
++                ),
++            ) if IS_OLD_PYGMENTS_PRE_2_14 else (
++                (
++                    322,
++                    Token.Text,
++                    'Sunday 11 November 2018  20:16:48 +0100 (0:00:00.041)    
   '
++                    '0:07:59.637 *******',
++                ),
++                (401, Token.Text.Whitespace, '\n'),
++            )
++        ),
++        (402, Token.Generic.Deleted, '--- before'),
++        (412, Token.Text.Whitespace, '\n'),
++        (413, Token.Generic.Inserted, '+++ after'),
++        (422, Token.Text.Whitespace, '\n'),
++        (423, Token.Generic.Subheading, '@@ -1,5 +1,5 @@'),
++        (438, Token.Text.Whitespace, '\n'),
++        (439, Token.Text.Whitespace, ' '),
++        (440, Token.Text, '{'),
++        (441, Token.Text.Whitespace, '\n'),
++        (442, Token.Generic.Deleted, '-  "exists": false,'),
++        (461, Token.Text.Whitespace, '\n'),
++        (462, Token.Generic.Deleted, '-  "paused": false,'),
++        (481, Token.Text.Whitespace, '\n'),
++        (482, Token.Generic.Deleted, '-  "running": false'),
++        (501, Token.Text.Whitespace, '\n'),
++        (502, Token.Generic.Inserted, '+  "exists": true,'),
++        (520, Token.Text.Whitespace, '\n'),
++        (521, Token.Generic.Inserted, '+  "paused": true,'),
++        (539, Token.Text.Whitespace, '\n'),
++        (540, Token.Generic.Inserted, '+  "running": true'),
++        (558, Token.Text.Whitespace, '\n'),
++        (559, Token.Text.Whitespace, ' '),
++        (560, Token.Text, '}'),
++        (561, Token.Text.Whitespace, '\n'),
++        *(
++            (
++                (
++                    562,
++                    Token.Text.Whitespace,
++                    '\\ No newline at end of file\n',
++                ),
++            ) if IS_OLD_PYGMENTS_PRE_2_14 else (
++                (562, Token.Text, '\\ No newline at end of file'),
++                (589, Token.Text.Whitespace, '\n'),
++            )
++        ),
++        (590, Token.Text.Whitespace, '\n'),
++        (591, Token.Keyword, 'changed'),
++        (598, Token.Punctuation, ':'),
++        (599, Token.Text, ' '),
++        (600, Token.Punctuation, '['),
++        (601, Token.Name.Variable, 'localhost'),
++        (610, Token.Punctuation, ']'),
++        (611, Token.Text, '\n'),
++        (612, Token.Text.Whitespace, '\n'),
++        (613, Token.Keyword, 'TASK'),
++        (617, Token.Text, ' '),
++        (618, Token.Punctuation, '['),
++        (619, Token.Literal, 'volumes (more volumes)'),
++        (641, Token.Punctuation, ']'),
++        (642, Token.Text, ' '),
++        (
++            643,
++            Token.Name.Variable,
++            '*' * 116,
++        ),
++        (759, Token.Text, '\n'),
++        *(
++            (
++                (
++                    760,
++                    Token.Text.Whitespace,
++                    'Sunday 11 November 2018  20:19:25 +0100 (0:00:00.607)    
   '
++                    '0:10:36.974 *******\n',
++                ),
++            ) if IS_OLD_PYGMENTS_PRE_2_14 else (
++                (
++                    760,
++                    Token.Text,
++                    'Sunday 11 November 2018  20:19:25 +0100 (0:00:00.607)    
   '
++                    '0:10:36.974 *******',
++                ),
++                (839, Token.Text.Whitespace, '\n'),
++            )
++        ),
++        (840, Token.Generic.Deleted, '--- before'),
++        (850, Token.Text.Whitespace, '\n'),
++        (851, Token.Generic.Inserted, '+++ after'),
++        (860, Token.Text.Whitespace, '\n'),
++        (861, Token.Generic.Subheading, '@@ -1,11 +1,11 @@'),
++        (878, Token.Text.Whitespace, '\n'),
++        (879, Token.Text.Whitespace, ' '),
++        (880, Token.Text, '{'),
++        (881, Token.Text.Whitespace, '\n'),
++        (882, Token.Text.Whitespace, ' '),
++        (883, Token.Text, '  "expected_binds": ['),
++        (904, Token.Text.Whitespace, '\n'),
++        (905, Token.Generic.Deleted, '-    "/tmp:/tmp:rw",'),
++        (925, Token.Text.Whitespace, '\n'),
++        (926, Token.Generic.Deleted, '-    "/:/whatever:rw,z"'),
++        (949, Token.Text.Whitespace, '\n'),
++        (950, Token.Generic.Inserted, '+    "/tmp:/somewhereelse:ro,Z",'),
++        (982, Token.Text.Whitespace, '\n'),
++        (983, Token.Generic.Inserted, '+    "/tmp:/tmp:rw"'),
++        (1002, Token.Text.Whitespace, '\n'),
++        (1003, Token.Text.Whitespace, ' '),
++        (1004, Token.Text, '  ],'),
++        (1008, Token.Text.Whitespace, '\n'),
++        (1009, Token.Text.Whitespace, ' '),
++        (1010, Token.Text, '  "expected_volumes": {'),
++        (1033, Token.Text.Whitespace, '\n'),
++        (1034, Token.Generic.Deleted, '-    "/tmp": {},'),
++        (1050, Token.Text.Whitespace, '\n'),
++        (1051, Token.Generic.Deleted, '-    "/whatever": {}'),
++        (1071, Token.Text.Whitespace, '\n'),
++        (1072, Token.Generic.Inserted, '+    "/somewhereelse": {},'),
++        (1098, Token.Text.Whitespace, '\n'),
++        (1099, Token.Generic.Inserted, '+    "/tmp": {}'),
++        (1114, Token.Text.Whitespace, '\n'),
++        (1115, Token.Text.Whitespace, ' '),
++        (1116, Token.Text, '  },'),
++        (1120, Token.Text.Whitespace, '\n'),
++        (1121, Token.Text.Whitespace, ' '),
++        (1122, Token.Text, '  "running": true'),
++        (1139, Token.Text.Whitespace, '\n'),
++        (1140, Token.Text.Whitespace, ' '),
++        (1141, Token.Text, '}'),
++        (1142, Token.Text.Whitespace, '\n'),
++        *(
++            (
++                (
++                    1143,
++                    Token.Text.Whitespace,
++                    '\\ No newline at end of file\n',
++                ),
++            ) if IS_OLD_PYGMENTS_PRE_2_14 else (
++                (1143, Token.Text, '\\ No newline at end of file'),
++                (1170, Token.Text.Whitespace, '\n'),
++            )
++        ),
++        (1171, Token.Text.Whitespace, '\n'),
++        (1172, Token.Keyword, 'changed'),
++        (1179, Token.Punctuation, ':'),
++        (1180, Token.Text, ' '),
++        (1181, Token.Punctuation, '['),
++        (1182, Token.Name.Variable, 'localhost'),
++        (1191, Token.Punctuation, ']'),
++        (1192, Token.Text, '\n'),
++    ]
+ 
+-<span class="k">changed</span><span class="p">:</span> <span 
class="p">[</span><span class="nv">localhost</span><span class="p">]</span>
+-
+-<span class="k">TASK</span> <span class="p">[</span><span class="l">volumes 
(more volumes)</span><span class="p">]</span> <span 
class="nv">********************************************************************************************************************</span>
+-<span class="w">Sunday 11 November 2018  20:19:25 +0100 (0:00:00.607)       
0:10:36.974 *******</span>
+-<span class="gd">--- before</span>
+-<span class="gi">+++ after</span>
+-<span class="gu">@@ -1,11 +1,11 @@</span>
+-<span class="w"> </span>{
+-<span class="w"> </span>  &quot;expected_binds&quot;: [
+-<span class="gd">-    &quot;/tmp:/tmp:rw&quot;,</span>
+-<span class="gd">-    &quot;/:/whatever:rw,z&quot;</span>
+-<span class="gi">+    &quot;/tmp:/somewhereelse:ro,Z&quot;,</span>
+-<span class="gi">+    &quot;/tmp:/tmp:rw&quot;</span>
+-<span class="w"> </span>  ],
+-<span class="w"> </span>  &quot;expected_volumes&quot;: {
+-<span class="gd">-    &quot;/tmp&quot;: {},</span>
+-<span class="gd">-    &quot;/whatever&quot;: {}</span>
+-<span class="gi">+    &quot;/somewhereelse&quot;: {},</span>
+-<span class="gi">+    &quot;/tmp&quot;: {}</span>
+-<span class="w"> </span>  },
+-<span class="w"> </span>  &quot;running&quot;: true
+-<span class="w"> </span>}
+-<span class="w">\ No newline at end of file</span>
+-
+-<span class="k">changed</span><span class="p">:</span> <span 
class="p">[</span><span class="nv">localhost</span><span class="p">]</span>
+-</pre></div>
+-"""
++    unprocessed_text_tokens = list(
++        _get_lexer_by_name('ansible-output').
++        get_tokens_unprocessed(ansible_play_output_example),
++    )
++    assert unprocessed_text_tokens == expected_resulting_text_tokens
+-- 
+2.39.2
+
diff -Nru python-ansible-pygments-0.1.1/debian/patches/series 
python-ansible-pygments-0.1.1/debian/patches/series
--- python-ansible-pygments-0.1.1/debian/patches/series 2023-01-22 
13:56:54.000000000 +0100
+++ python-ansible-pygments-0.1.1/debian/patches/series 2023-05-11 
21:26:33.000000000 +0200
@@ -1 +1,2 @@
 Fix-tests-post-Pygments-update.patch
+Make-lexer-test-compare-tokens.patch

--- End Message ---
--- Begin Message ---
Source: python-ansible-pygments
Source-Version: 0.1.1-6
Done: Olivier Gayot <[email protected]>

We believe that the bug you reported is fixed in the latest version of
python-ansible-pygments, 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.
Olivier Gayot <[email protected]> (supplier of updated 
python-ansible-pygments 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, 11 May 2023 21:30:42 +0200
Source: python-ansible-pygments
Built-For-Profiles: noudeb
Architecture: source
Version: 0.1.1-6
Distribution: unstable
Urgency: medium
Maintainer: Debian Python Team <[email protected]>
Changed-By: Olivier Gayot <[email protected]>
Closes: 1035965
Launchpad-Bugs-Fixed: 2019237
Changes:
 python-ansible-pygments (0.1.1-6) unstable; urgency=medium
 .
   * Team upload
   * Add patch from upstream to fix test suite against pygments 2.15
     Added patch:
     debian/patches/Make-lexer-test-compare-tokens.patch
     (Closes: #1035965, LP: #2019237)
Checksums-Sha1:
 87d69bb3f3c78ce26e80a02f72310a725a9c9bac 2428 
python-ansible-pygments_0.1.1-6.dsc
 5fea09a26f697786934da1dd38d2755abc7c8da1 6228 
python-ansible-pygments_0.1.1-6.debian.tar.xz
 927bc3b915b8fd694cf6fd5dc93348dc3d6adacd 8160 
python-ansible-pygments_0.1.1-6_source.buildinfo
Checksums-Sha256:
 4ee109288d76267b06d894cc27bac186c08359407b798589e1d362a944110239 2428 
python-ansible-pygments_0.1.1-6.dsc
 f648c3957e77384b241c536dbb78ca371577510b63eddd4dfd3c35532aa3848e 6228 
python-ansible-pygments_0.1.1-6.debian.tar.xz
 eb1dd0a81fcd46994d3d252c213f409429b300608ba7a622b302bec247273af7 8160 
python-ansible-pygments_0.1.1-6_source.buildinfo
Files:
 347896fdc4a1dad0c381d79f6e6f7302 2428 python optional 
python-ansible-pygments_0.1.1-6.dsc
 4924d9ecc10d02aaefd9c06b322fcbbf 6228 python optional 
python-ansible-pygments_0.1.1-6.debian.tar.xz
 0db14e068aeaf9124bdcd1f86efbd0b4 8160 python optional 
python-ansible-pygments_0.1.1-6_source.buildinfo

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

iQIzBAEBCgAdFiEEpi0s+9ULm1vzYNVLFZ61xO/Id0wFAmRjmckACgkQFZ61xO/I
d0xdMRAAlX39M8ilijowDfuzYVMWqN7dp8xk4aDha+AiVgpF1djTpYmTg56H5XKU
PX7J0ljeHTK+jNoCHCruux1/MYuN6bN1CqsvsTYd9Tq8/0RpGSnHnocI6Bix0KPU
87GuZcBQ0K3C4G2xXcLvtkFUOwd/vntEx6Xn6SwiLG8Z7l1wCGAANvC3bXum8ANB
fKQLl5mftBHG+Nqg/y2TMrWR/mJpS+57MQmPeMJ/UwIi3nt1dSBKzQv8q7OTtFre
KMl7WTlUJl4QcoF0iJ/f18RMiMMmkIJSjAONtURDRONeiXo2cjcgbyKynPLg9Slc
1bzBouy/nu3M9n6yVsADhiknRZlQHD51u6lj+OmZpj/igQPecaCWEnQUZadC7/Vk
Rl9V83t8iseE2jjioEBuh09IQuj2421Z/clNdKA9NGE9HQQCoa7EMS31/NYDxzZd
zqzOmIlXIcOFvLexd0BiauOIytDKnK9x8OxEFYWE+sWCPJaAXUHcKYI0wS12OeqR
BWSZV1guqIRjbxhhJwspiVhpOqysL+ozVZCr2qKpjK/evL9hlSGNOM3mAcBNHaX+
f3ybdDjEZBiH6kTBBlNLUl15EvA7p7VGh1DfwI69KbMHx4N6fUOHu0Mt64wdasWp
VPAvbKybItcCDunj12eVDato6S1NwgqLYMahScoXvMgU6YKkbSw=
=c9Xh
-----END PGP SIGNATURE-----

--- End Message ---

Reply via email to