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

Bug#1021357: marked as done (gcc-12: FTBFS on hurd-i386)



Your message dated Wed, 19 Oct 2022 06:19:05 +0000
with message-id <E1ol2Px-00DtAy-MR@fasolo.debian.org>
and subject line Bug#1021357: fixed in gcc-12 12.2.0-6
has caused the Debian Bug report #1021357,
regarding gcc-12: FTBFS on hurd-i386
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 owner@bugs.debian.org
immediately.)


-- 
1021357: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1021357
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Source: gcc-12
Version: 12_12.2.0-5
Severity: important
Tags: patch
User: debian-hurd@lists.debian.org
Usertags: hurd
Affects: gcc-11, gcc-snapshot
X-Debbugs-CC: debian-hurd@lists.debian.org

Hi,

gcc-12-12.2.0-4/5 in sid FTBFS on hurd-i386 due to failing linkage of
pthread_once (same error for gcc-11, gcc-12, gcc-snapshot):
/<<PKGBUILDDIR>>/build/i686-gnu/libstdc++-v3/include/i686-gnu/bits/gthr-
default.h:700: undefined reference to `pthread_once'

Patches have already submitted upstream by Samuel Thibault in August and
September, see
https://gcc.gnu.org/pipermail/gcc-patches/2022-August/600469.html
https://gcc.gnu.org/pipermail/gcc-patches/2022-September/601754.html

Unfortunately upstream is not very responsive. Therefore I have taken the time
to send these patches to Debian in the mean time.

Patches extracted and attached from that mail message are:
1.diff-6.diff. Note that 1.diff does not apply to gcc-12, it is related to the
git repo. This is reflected in attached debian_rules.patch by commenting out
1.diff.

Just a reflection: Matthias you are really doing a great job with the
gcc releases: Kudos!

Thanks!

diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index ba5939d9003..dd288cce2ca 100644
--- a/src/libstdc++-v3/ChangeLog
+++ b/src/libstdc++-v3/ChangeLog
@@ -1,3 +1,11 @@
+2022-08-28  Samuel Thibault  <samuel.thibault@ens-lyon.org>
+
+       * config/os/gnu/os_defines.h: New file.
+       * config/os/gnu/ctype_base.h: New file.
+       * config/os/gnu/ctype_configure_char.cc: New file.
+       * config/os/gnu/ctype_inline.h: New file.
+       * configure.host: On gnu* host, use os/gnu instead of os/gnu-linux.
+
 2022-08-27  Patrick Palka  <ppalka@redhat.com>
diff --git a/src/libstdc++-v3/config/os/gnu/ctype_base.h b/src/libstdc++-v3/config/os/gnu/ctype_base.h
new file mode 100644
index 00000000000..955146543db
--- /dev/null
+++ b/src/libstdc++-v3/config/os/gnu/ctype_base.h
@@ -0,0 +1,66 @@
+// Locale support -*- C++ -*-
+
+// Copyright (C) 1997-2022 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library 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.
+
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
+// <http://www.gnu.org/licenses/>.
+
+/** @file bits/ctype_base.h
+ *  This is an internal header file, included by other library headers.
+ *  Do not attempt to use it directly. @headername{locale}
+ */
+
+//
+// ISO C++ 14882: 22.1  Locales
+//
+
+// Information as gleaned from /usr/include/ctype.h
+
+namespace std _GLIBCXX_VISIBILITY(default)
+{
+_GLIBCXX_BEGIN_NAMESPACE_VERSION
+
+  /// @brief  Base class for ctype.
+  struct ctype_base
+  {
+    // Non-standard typedefs.
+    typedef const int* 		__to_type;
+
+    // NB: Offsets into ctype<char>::_M_table force a particular size
+    // on the mask type. Because of this, we don't use an enum.
+    typedef unsigned short 	mask;
+    static const mask upper    	= _ISupper;
+    static const mask lower 	= _ISlower;
+    static const mask alpha 	= _ISalpha;
+    static const mask digit 	= _ISdigit;
+    static const mask xdigit 	= _ISxdigit;
+    static const mask space 	= _ISspace;
+    static const mask print 	= _ISprint;
+    static const mask graph 	= _ISalpha | _ISdigit | _ISpunct;
+    static const mask cntrl 	= _IScntrl;
+    static const mask punct 	= _ISpunct;
+    static const mask alnum 	= _ISalpha | _ISdigit;
+#if __cplusplus >= 201103L
+    static const mask blank	= _ISblank;
+#endif
+  };
+
+_GLIBCXX_END_NAMESPACE_VERSION
+} // namespace
diff --git a/src/libstdc++-v3/config/os/gnu/ctype_configure_char.cc b/src/libstdc++-v3/config/os/gnu/ctype_configure_char.cc
new file mode 100644
index 00000000000..5a88fc11ab3
--- /dev/null
+++ b/src/libstdc++-v3/config/os/gnu/ctype_configure_char.cc
@@ -0,0 +1,196 @@
+// Locale support -*- C++ -*-
+
+// Copyright (C) 2011-2022 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library 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.
+
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
+// <http://www.gnu.org/licenses/>.
+
+/** @file ctype_configure_char.cc */
+
+//
+// ISO C++ 14882: 22.1  Locales
+//
+
+#include <locale>
+#include <cstdlib>
+#include <cstring>
+
+namespace std _GLIBCXX_VISIBILITY(default)
+{
+_GLIBCXX_BEGIN_NAMESPACE_VERSION
+
+// Information as gleaned from /usr/include/ctype.h
+
+#if _GLIBCXX_C_LOCALE_GNU
+  const ctype_base::mask*
+  ctype<char>::classic_table() throw()
+  { return _S_get_c_locale()->__ctype_b; }
+#else
+  const ctype_base::mask*
+  ctype<char>::classic_table() throw()
+  {
+    const ctype_base::mask* __ret;
+    char* __old = setlocale(LC_CTYPE, NULL);
+    char* __sav = NULL;
+    if (__builtin_strcmp(__old, "C"))
+      {
+	const size_t __len = __builtin_strlen(__old) + 1;
+	__sav = new char[__len];
+	__builtin_memcpy(__sav, __old, __len);
+	setlocale(LC_CTYPE, "C");
+      }
+#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2)
+    __ret = *__ctype_b_loc();
+#else
+    __ret = __ctype_b;
+#endif
+    if (__sav)
+      {
+	setlocale(LC_CTYPE, __sav);
+	delete [] __sav;
+      }
+    return __ret;
+  }
+#endif
+
+#if _GLIBCXX_C_LOCALE_GNU
+  ctype<char>::ctype(__c_locale __cloc, const mask* __table, bool __del,
+		     size_t __refs)
+  : facet(__refs), _M_c_locale_ctype(_S_clone_c_locale(__cloc)),
+  _M_del(__table != 0 && __del),
+  _M_toupper(_M_c_locale_ctype->__ctype_toupper),
+  _M_tolower(_M_c_locale_ctype->__ctype_tolower),
+  _M_table(__table ? __table : _M_c_locale_ctype->__ctype_b),
+  _M_widen_ok(0), _M_narrow_ok(0)
+  {
+    __builtin_memset(_M_widen, 0, sizeof(_M_widen));
+    __builtin_memset(_M_narrow, 0, sizeof(_M_narrow));
+  }
+#else
+  ctype<char>::ctype(__c_locale, const mask* __table, bool __del,
+		     size_t __refs)
+  : facet(__refs), _M_c_locale_ctype(_S_get_c_locale()),
+  _M_del(__table != 0 && __del), _M_widen_ok(0), _M_narrow_ok(0)
+  {
+    char* __old = setlocale(LC_CTYPE, NULL);
+    char* __sav = NULL;
+    if (__builtin_strcmp(__old, "C"))
+      {
+	const size_t __len = __builtin_strlen(__old) + 1;
+	__sav = new char[__len];
+	__builtin_memcpy(__sav, __old, __len);
+	setlocale(LC_CTYPE, "C");
+      }
+#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2)
+    _M_toupper = *__ctype_toupper_loc();
+    _M_tolower = *__ctype_tolower_loc();
+    _M_table = __table ? __table : *__ctype_b_loc();
+#else
+    _M_toupper = __ctype_toupper;
+    _M_tolower = __ctype_tolower;
+    _M_table = __table ? __table : __ctype_b;
+#endif
+    if (__sav)
+      {
+	setlocale(LC_CTYPE, __sav);
+	delete [] __sav;
+      }
+    __builtin_memset(_M_widen, 0, sizeof(_M_widen));
+    __builtin_memset(_M_narrow, 0, sizeof(_M_narrow));
+  }
+#endif
+
+#if _GLIBCXX_C_LOCALE_GNU
+  ctype<char>::ctype(const mask* __table, bool __del, size_t __refs)
+  : facet(__refs), _M_c_locale_ctype(_S_get_c_locale()),
+  _M_del(__table != 0 && __del),
+  _M_toupper(_M_c_locale_ctype->__ctype_toupper),
+  _M_tolower(_M_c_locale_ctype->__ctype_tolower),
+  _M_table(__table ? __table : _M_c_locale_ctype->__ctype_b),
+  _M_widen_ok(0), _M_narrow_ok(0)
+  {
+    __builtin_memset(_M_widen, 0, sizeof(_M_widen));
+    __builtin_memset(_M_narrow, 0, sizeof(_M_narrow));
+  }
+#else
+  ctype<char>::ctype(const mask* __table, bool __del, size_t __refs)
+  : facet(__refs), _M_c_locale_ctype(_S_get_c_locale()),
+  _M_del(__table != 0 && __del), _M_widen_ok(0), _M_narrow_ok(0)
+  {
+    char* __old = setlocale(LC_CTYPE, NULL);
+    char* __sav = NULL;
+    if (__builtin_strcmp(__old, "C"))
+      {
+	const size_t __len = __builtin_strlen(__old) + 1;
+	__sav = new char[__len];
+	__builtin_memcpy(__sav, __old, __len);
+	setlocale(LC_CTYPE, "C");
+      }
+#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2)
+    _M_toupper = *__ctype_toupper_loc();
+    _M_tolower = *__ctype_tolower_loc();
+    _M_table = __table ? __table : *__ctype_b_loc();
+#else
+    _M_toupper = __ctype_toupper;
+    _M_tolower = __ctype_tolower;
+    _M_table = __table ? __table : __ctype_b;
+#endif
+    if (__sav)
+      {
+	setlocale(LC_CTYPE, __sav);
+	delete [] __sav;
+      }
+    __builtin_memset(_M_widen, 0, sizeof(_M_widen));
+    __builtin_memset(_M_narrow, 0, sizeof(_M_narrow));
+  }
+#endif
+
+  char
+  ctype<char>::do_toupper(char __c) const
+  { return _M_toupper[static_cast<unsigned char>(__c)]; }
+
+  const char*
+  ctype<char>::do_toupper(char* __low, const char* __high) const
+  {
+    while (__low < __high)
+      {
+	*__low = _M_toupper[static_cast<unsigned char>(*__low)];
+	++__low;
+      }
+    return __high;
+  }
+
+  char
+  ctype<char>::do_tolower(char __c) const
+  { return _M_tolower[static_cast<unsigned char>(__c)]; }
+
+  const char*
+  ctype<char>::do_tolower(char* __low, const char* __high) const
+  {
+    while (__low < __high)
+      {
+	*__low = _M_tolower[static_cast<unsigned char>(*__low)];
+	++__low;
+      }
+    return __high;
+  }
+
+_GLIBCXX_END_NAMESPACE_VERSION
+} // namespace
diff --git a/src/libstdc++-v3/config/os/gnu/ctype_inline.h b/src/libstdc++-v3/config/os/gnu/ctype_inline.h
new file mode 100644
index 00000000000..af60239382f
--- /dev/null
+++ b/src/libstdc++-v3/config/os/gnu/ctype_inline.h
@@ -0,0 +1,76 @@
+// Locale support -*- C++ -*-
+
+// Copyright (C) 2000-2022 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library 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.
+
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
+// <http://www.gnu.org/licenses/>.
+
+/** @file bits/ctype_inline.h
+ *  This is an internal header file, included by other library headers.
+ *  Do not attempt to use it directly. @headername{locale}
+ */
+
+//
+// ISO C++ 14882: 22.1  Locales
+//
+
+// ctype bits to be inlined go here. Non-inlinable (ie virtual do_*)
+// functions go in ctype.cc
+
+namespace std _GLIBCXX_VISIBILITY(default)
+{
+_GLIBCXX_BEGIN_NAMESPACE_VERSION
+
+  bool
+  ctype<char>::
+  is(mask __m, char __c) const
+  { return _M_table[static_cast<unsigned char>(__c)] & __m; }
+
+  const char*
+  ctype<char>::
+  is(const char* __low, const char* __high, mask* __vec) const
+  {
+    while (__low < __high)
+      *__vec++ = _M_table[static_cast<unsigned char>(*__low++)];
+    return __high;
+  }
+
+  const char*
+  ctype<char>::
+  scan_is(mask __m, const char* __low, const char* __high) const
+  {
+    while (__low < __high
+	   && !(_M_table[static_cast<unsigned char>(*__low)] & __m))
+      ++__low;
+    return __low;
+  }
+
+  const char*
+  ctype<char>::
+  scan_not(mask __m, const char* __low, const char* __high) const
+  {
+    while (__low < __high
+	   && (_M_table[static_cast<unsigned char>(*__low)] & __m) != 0)
+      ++__low;
+    return __low;
+  }
+
+_GLIBCXX_END_NAMESPACE_VERSION
+} // namespace
diff --git a/src/libstdc++-v3/config/os/gnu/os_defines.h b/src/libstdc++-v3/config/os/gnu/os_defines.h
new file mode 100644
index 00000000000..b4226d95d28
--- /dev/null
+++ b/src/libstdc++-v3/config/os/gnu/os_defines.h
@@ -0,0 +1,52 @@
+// Specific definitions for GNU/Hurd  -*- C++ -*-
+
+// Copyright (C) 2000-2022 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library 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.
+
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
+// <http://www.gnu.org/licenses/>.
+
+/** @file bits/os_defines.h
+ *  This is an internal header file, included by other library headers.
+ *  Do not attempt to use it directly. @headername{iosfwd}
+ */
+
+#ifndef _GLIBCXX_OS_DEFINES
+#define _GLIBCXX_OS_DEFINES 1
+
+// System-specific #define, typedefs, corrections, etc, go here.  This
+// file will come before all others.
+
+// This keeps isalnum, et al from being propagated as macros.
+#define __NO_CTYPE 1
+
+#include <features.h>
+
+// Provide a declaration for the possibly deprecated gets function, as
+// glibc 2.15 and later does not declare gets for ISO C11 when
+// __GNU_SOURCE is defined.
+#if __GLIBC_PREREQ(2,15) && defined(_GNU_SOURCE)
+# undef _GLIBCXX_HAVE_GETS
+#endif
+
+// Glibc 2.23 removed the obsolete isinf and isnan declarations. Check the
+// version dynamically in case it has changed since libstdc++ was configured.
+#define _GLIBCXX_NO_OBSOLETE_ISINF_ISNAN_DYNAMIC __GLIBC_PREREQ(2,23)
+
+#endif
diff --git a/src/libstdc++-v3/configure.host b/src/libstdc++-v3/configure.host
index ec32980aa0d..d03492eb8da 100644
--- a/src/libstdc++-v3/configure.host
+++ b/src/libstdc++-v3/configure.host
@@ -258,7 +258,7 @@ case "${host_os}" in
   linux-musl*)
     os_include_dir="os/generic"
     ;;
-  gnu* | linux* | kfreebsd*-gnu | uclinux*)
+  linux* | kfreebsd*-gnu | uclinux*)
     if [ "$uclibc" = "yes" ]; then
       os_include_dir="os/uclibc"
     elif [ "$bionic" = "yes" ]; then
@@ -267,6 +267,9 @@ case "${host_os}" in
       os_include_dir="os/gnu-linux"
     fi
     ;;
+  gnu*)
+    os_include_dir="os/gnu"
+    ;;
   hpux*)
     os_include_dir="os/hpux"
     ;;
--- a/debian/rules.patch	2022-08-22 09:44:25.000000000 +0200
+++ b/debian/rules.patch	2022-10-03 15:20:30.000000000 +0200
@@ -197,6 +197,12 @@
   debian_patches += hurd-changes
   # FIXME: #1005297, PR 104660
   debian_patches += libgo-hurd-hack
+#  debian_patches += 1
+  debian_patches += 2
+  debian_patches += 3
+  debian_patches += 4
+  debian_patches += 5
+  debian_patches += 6
 endif
 
 debian_patches += gcc-ice-dump

--- End Message ---
--- Begin Message ---
Source: gcc-12
Source-Version: 12.2.0-6
Done: Matthias Klose <doko@debian.org>

We believe that the bug you reported is fixed in the latest version of
gcc-12, 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 1021357@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Matthias Klose <doko@debian.org> (supplier of updated gcc-12 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 ftpmaster@ftp-master.debian.org)


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Format: 1.8
Date: Wed, 19 Oct 2022 07:38:40 +0200
Source: gcc-12
Architecture: source
Version: 12.2.0-6
Distribution: unstable
Urgency: medium
Maintainer: Debian GCC Maintainers <debian-gcc@lists.debian.org>
Changed-By: Matthias Klose <doko@debian.org>
Closes: 1020599 1020600 1021357
Changes:
 gcc-12 (12.2.0-6) unstable; urgency=medium
 .
   * Update to git 20221019 from the gcc-12 branch.
     - Fix PR tree-optimization/106934, PR tree-optimization/106922,
       PR tree-optimization/106892, PR tree-optimization/105937,
       PR target/107064 (x86), PR fortran/106817, PR fortran/105012,
       PR fortran/100040, PR fortran/100029, PR fortran/106579,
       PR middle-end/106548, PR libstdc++/106320, PR libstdc++/106695,
       PR libstdc++/106607, PR libstdc++/106589, PR libstdc++/105678,
       PR target/99685 (PPC), PR tree-optimization/107254,
       PR tree-optimization/107212, PR tree-optimization/107160,
       PR tree-optimization/107107, PR tree-optimization/106922,
       PR tree-optimization/106922, PR target/107248 (SPARC), PR c++/106925.
   * Fix libstdc++ build on the Hurd. Closes: #1021357.
   * gobjc: drop obsolete sparc-only conflict (Helmut Grohne). Closes: #1020599.
   * gobjc: remove unused binary-without-manpage lintian overrides (Helmut
     Grohne). Closes: #1020600.
   * Include the Modula-2 documentation into the gm2-12 package.
   * Handle the "bookworm" release name instead of "sid".
   * Backport two newlib patches for the nvptx target.
Checksums-Sha1:
 4c9ed2841606fba427f437f1080ae5505562982c 27415 gcc-12_12.2.0-6.dsc
 555522f0a42e6a8aa649f6cae24a797a2ee05713 1597280 gcc-12_12.2.0-6.debian.tar.xz
 7c5588a4b3bb04053316b694656506a98bc714e3 9656 gcc-12_12.2.0-6_source.buildinfo
Checksums-Sha256:
 2eb3c39b5a1dd70ef2a081e42d1b4e88f57d137ff9c30c8ccf2940a2aa866047 27415 gcc-12_12.2.0-6.dsc
 14623395360cc98e20d51baca90003e3078c052e8d2744cd917a340ca8bb50f7 1597280 gcc-12_12.2.0-6.debian.tar.xz
 aa1c6ed005f1d91e4192b67c163b1781f82536b1a9c3c3f94bd17c877e509ec8 9656 gcc-12_12.2.0-6_source.buildinfo
Files:
 aa6013d0c875fd8ab5d85781d92c2324 27415 devel optional gcc-12_12.2.0-6.dsc
 c50d549c6b1adfa61d0a41acbf2ca0b6 1597280 devel optional gcc-12_12.2.0-6.debian.tar.xz
 319444b124adb7a3a4118a8b61a09fc0 9656 devel optional gcc-12_12.2.0-6_source.buildinfo

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

iQJEBAEBCAAuFiEE1WVxuIqLuvFAv2PWvX6qYHePpvUFAmNPjuYQHGRva29AZGVi
aWFuLm9yZwAKCRC9fqpgd4+m9Q7mEADUt24CDwFioCWjU4rfV993eGaziP2TMEVA
RnDvMszLfCIE2giYy/TPKx5JKCe3NEaMFR3U1Xv/U3byiFenComlN9OCkEOoOANJ
nTSt8mYU7rc8oQ4qFMbJNDG2gNx8tFmV9a8IQVELThtu/tEX5UgqClcDIH9xWtUn
/go+y9MewQHbqxebF6uWw/hPXdkjeVP+4rtC8G2ifndElMiwgrPXsK6dwTS91Eqf
dO9r/hFDzVWPWOskPvIE3IauW/8LDdt0eaOp8zcSCWMtFB4GliNz7ffXu8MiLoFd
UmlDdvRZmVdO9X7PC0t8sCMYYymWo+WkPuVykVrT4M1YFdRbhFRfL6vUzDxLBzc3
d3YTwm4MhrMM+O2OoN1ut0+5OpXfDUwqn15fyyjbshOa1VF8rLb1M+FzlPC/tW6P
XD8LbgGZXulHUV2Lty3R1xkgbdC8KJtk/QEYIyG+T770mx5ugOmfRjU6cXNg/lBj
vrGZCQ2JpM1xECxtiHkezg7+Y+uqQIBkEteadRw9F4J54ZmH/Pgx9t77rEmv+qlR
nEhM1kMhOBpbJH1s4c+KLrXQ6OIoaR6WOVIPsb6wYRH+u3idpPHh7ZxW/lfR80TF
b+ewFjrgZOQklL0ArwcAWjkWD23G8VtqZE4uZuqkbzFTxWXSGEwfL2/J6AmqnhUU
i6TmibANWQ==
=xqIn
-----END PGP SIGNATURE-----

--- End Message ---

Reply to: