#1097509 open3d: ftbfs with GCC-15

#1097509#5
Date:
2025-02-17 17:41:23 UTC
From:
To:
[This bug is NOT targeted to the upcoming trixie release]

Please keep this issue open in the bug tracker for the package it
was filed for.  If a fix in another package is required, please
file a bug for the other package (or clone), and add a block in this
package. Please keep the issue open until the package can be built in
a follow-up test rebuild.

The package fails to build in a test rebuild on at least amd64 with
gcc-15/g++-15, but succeeds to build with gcc-14/g++-14. The
severity of this report will be raised before the forky release.

The full build log can be found at:
http://qa-logs.debian.net/2025/02/16/amd64exp/open3d_0.19.0-2_unstable_gccexp.log.gz
The last lines of the build log are at the end of this report.

To build with GCC 15, either set CC=gcc-15 CXX=g++-15 explicitly,
or install the gcc, g++, gfortran, ... packages from experimental.

  apt-get -t=experimental install g++

GCC 15 now defaults to the C23/C++23 standards, exposing many FTBFS.
Other Common build failures are new warnings resulting in build failures
with -Werror turned on, or new/dropped symbols in Debian symbols files.
For other C/C++ related build failures see the porting guide at
http://gcc.gnu.org/gcc-15/porting_to.html

[...]
 1052 |                         if( depth ) std::get< D >( _integrators ).pcIntegrator.set( depth-1 ) , std::get< D >( _integrators ).cpIntegrator.set( depth-1 );
      |                                                                                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
/build/reproducible-path/open3d-0.19.0/PoissonRecon/Src/FEMTree.h:1009:9:   required from ‘void FEMIntegrator::Constraint<UIntPack<V1 ...>, UIntPack<_Values ...>, UIntPack<CSignatures ...>, UIntPack<Idxs ...>, CDim>::init() [with unsigned int ...TSignatures = {5, 5, 5}; unsigned int ...TDerivatives = {1, 1, 1}; unsigned int ...CSignatures = {7, 7, 7}; unsigned int ...CDerivatives = {0, 0, 0}; unsigned int CDim = 3]’
 1009 |                         _init( Base::highDepth() );
      |                         ~~~~~^~~~~~~~~~~~~~~~~~~~~
/build/reproducible-path/open3d-0.19.0/PoissonRecon/Src/FEMTree.h:1006:8:   required from here
 1006 |                 void init( void )
      |                      ^~~~
/build/reproducible-path/open3d-0.19.0/PoissonRecon/Src/BSplineData.inl:617:25: warning: comparison of integer expressions of different signedness: ‘int’ and ‘unsigned int’ [-Wsign-compare]
  617 |         for( int i=0 ; i<=Degree1 ; i++ )
      |                        ~^~~~~~~~~
/build/reproducible-path/open3d-0.19.0/PoissonRecon/Src/BSplineData.inl:620:33: warning: comparison of integer expressions of different signedness: ‘int’ and ‘unsigned int’ [-Wsign-compare]
  620 |                 for( int j=0 ; j<=Degree2 ; j++ )
      |                                ~^~~~~~~~~
/build/reproducible-path/open3d-0.19.0/PoissonRecon/Src/BSplineData.inl: In instantiation of ‘void SetBSplineElementIntegrals(double (*)[(Degree2 + 1)]) [with unsigned int Degree1 = 1; unsigned int Degree2 = 1]’:
/build/reproducible-path/open3d-0.19.0/PoissonRecon/Src/BSplineData.inl:329:52:   required from ‘static double BSplineIntegrationData<FEMSig1, FEMSig2>::Dot(int, int, int, int) [with unsigned int D1 = 0; unsigned int D2 = 0; unsigned int FEMSig1 = 5; unsigned int FEMSig2 = 5]’
  329 |                 SetBSplineElementIntegrals< _Degree1 , _Degree2 >( integrals );
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
/build/reproducible-path/open3d-0.19.0/PoissonRecon/Src/BSplineData.inl:396:112:   required from ‘static void BSplineIntegrationData<FEMSig1, FEMSig2>::_IntegratorSetter<D1, D2, _D1, _D2>::Set(typename BSplineIntegrationData<FEMSig1, FEMSig2>::FunctionIntegrator::Integrator<_D1, _D2>&, int) [with unsigned int D1 = 0; unsigned int D2 = 0; unsigned int _D1 = 1; unsigned int _D2 = 1; unsigned int FEMSig1 = 5; unsigned int FEMSig2 = 5; typename BSplineIntegrationData<FEMSig1, FEMSig2>::FunctionIntegrator::Integrator<_D1, _D2> = BSplineIntegrationData<5, 5>::FunctionIntegrator::Integrator<1, 1>]’
  396 |                 integrator._ccIntegrals[D1][D2][i][j-BSplineOverlapSizes< Degree1 , Degree2 >::OverlapStart] = Dot< D1 , D2 >( depth , ii , depth , ii+j );
      |                                                                                                                ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/build/reproducible-path/open3d-0.19.0/PoissonRecon/Src/BSplineData.inl:386:45:   required from ‘static void BSplineIntegrationData<FEMSig1, FEMSig2>::IntegratorSetter<0, 0, _D1, _D2, Integrator>::Set1D(Integrator&, int) [with unsigned int _D1 = 1; unsigned int _D2 = 1; Integrator = BSplineIntegrationData<5, 5>::FunctionIntegrator::Integrator<1, 1>; unsigned int FEMSig1 = 5; unsigned int FEMSig2 = 5]’
  386 |         _IntegratorSetter< 0 , 0 , _D1 , _D2 >::Set( integrator , depth );
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
/build/reproducible-path/open3d-0.19.0/PoissonRecon/Src/BSplineData.inl:360:62:   required from ‘static void BSplineIntegrationData<FEMSig1, FEMSig2>::IntegratorSetter<0, D2, _D1, _D2, Integrator>::Set1D(Integrator&, int) [with unsigned int D2 = 1; unsigned int _D1 = 1; unsigned int _D2 = 1; Integrator = BSplineIntegrationData<5, 5>::FunctionIntegrator::Integrator<1, 1>; unsigned int FEMSig1 = 5; unsigned int FEMSig2 = 5]’
  360 |         IntegratorSetter< 0 , D2-1 , _D1 , _D2 , Integrator >::Set1D( integrator , depth );
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
/build/reproducible-path/open3d-0.19.0/PoissonRecon/Src/BSplineData.inl:354:60:   required from ‘static void BSplineIntegrationData<FEMSig1, FEMSig2>::IntegratorSetter<0, D2, _D1, _D2, Integrator>::Set2D(Integrator&, int) [with unsigned int D2 = 1; unsigned int _D1 = 1; unsigned int _D2 = 1; Integrator = BSplineIntegrationData<5, 5>::FunctionIntegrator::Integrator<1, 1>; unsigned int FEMSig1 = 5; unsigned int FEMSig2 = 5]’
  354 |         IntegratorSetter< 0 , D2 , _D1 , _D2 , Integrator >::Set1D( integrator , depth );
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
/build/reproducible-path/open3d-0.19.0/PoissonRecon/Src/BSplineData.inl:340:63:   required from ‘static void BSplineIntegrationData<FEMSig1, FEMSig2>::IntegratorSetter<D1, D2, _D1, _D2, Integrator>::Set2D(Integrator&, int) [with unsigned int D1 = 1; unsigned int D2 = 1; unsigned int _D1 = 1; unsigned int _D2 = 1; Integrator = BSplineIntegrationData<5, 5>::FunctionIntegrator::Integrator<1, 1>; unsigned int FEMSig1 = 5; unsigned int FEMSig2 = 5]’
  340 |         IntegratorSetter< D1-1 , D2 , _D1 , _D2 , Integrator >::Set2D( integrator , depth );
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
/build/reproducible-path/open3d-0.19.0/PoissonRecon/Src/BSplineData.inl:415:108:   required from ‘static void BSplineIntegrationData<FEMSig1, FEMSig2>::SetIntegrator(typename FunctionIntegrator::Integrator<D1, D2>&, int) [with unsigned int D1 = 1; unsigned int D2 = 1; unsigned int FEMSig1 = 5; unsigned int FEMSig2 = 5; typename FunctionIntegrator::Integrator<D1, D2> = BSplineIntegrationData<5, 5>::FunctionIntegrator::Integrator<1, 1>]’
  415 |         IntegratorSetter< D1 , D2 , D1 , D2 , typename FunctionIntegrator::template Integrator< D1 , D2 > >::Set2D( integrator , depth );
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
/build/reproducible-path/open3d-0.19.0/PoissonRecon/Src/BSplineData.h:428:64:   required from ‘void BSplineIntegrationData<FEMSig1, FEMSig2>::FunctionIntegrator::Integrator<D1, D2>::set(int) [with unsigned int D1 = 1; unsigned int D2 = 1; unsigned int FEMSig1 = 5; unsigned int FEMSig2 = 5]’
  428 |                         void set( int depth ){ BSplineIntegrationData::SetIntegrator( *this , depth ); }
      |                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
/build/reproducible-path/open3d-0.19.0/PoissonRecon/Src/FEMTree.h:1051:50:   required from ‘typename std::enable_if<(D < FEMIntegrator::Constraint<UIntPack<V1 ...>, UIntPack<_Values ...>, UIntPack<CSignatures ...>, UIntPack<Idxs ...>, CDim>::Dim)>::type FEMIntegrator::Constraint<UIntPack<V1 ...>, UIntPack<_Values ...>, UIntPack<CSignatures ...>, UIntPack<Idxs ...>, CDim>::_init(int) [with unsigned int D = 0; unsigned int ...TSignatures = {5, 5, 5}; unsigned int ...TDerivatives = {1, 1, 1}; unsigned int ...CSignatures = {5, 5, 5}; unsigned int ...CDerivatives = {1, 1, 1}; unsigned int CDim = 1; typename std::enable_if<(D < Dim)>::type = void]’
 1051 |                         std::get< D >( _integrators ).ccIntegrator.set( depth );
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
/build/reproducible-path/open3d-0.19.0/PoissonRecon/Src/FEMTree.h:1009:9:   required from ‘void FEMIntegrator::Constraint<UIntPack<V1 ...>, UIntPack<_Values ...>, UIntPack<CSignatures ...>, UIntPack<Idxs ...>, CDim>::init() [with unsigned int ...TSignatures = {5, 5, 5}; unsigned int ...TDerivatives = {1, 1, 1}; unsigned int ...CSignatures = {5, 5, 5}; unsigned int ...CDerivatives = {1, 1, 1}; unsigned int CDim = 1]’
 1009 |                         _init( Base::highDepth() );
      |                         ~~~~~^~~~~~~~~~~~~~~~~~~~~
/build/reproducible-path/open3d-0.19.0/PoissonRecon/Src/FEMTree.h:1006:8:   required from here
 1006 |                 void init( void )
      |                      ^~~~
/build/reproducible-path/open3d-0.19.0/PoissonRecon/Src/BSplineData.inl:617:25: warning: comparison of integer expressions of different signedness: ‘int’ and ‘unsigned int’ [-Wsign-compare]
  617 |         for( int i=0 ; i<=Degree1 ; i++ )
      |                        ~^~~~~~~~~
/build/reproducible-path/open3d-0.19.0/PoissonRecon/Src/BSplineData.inl:620:33: warning: comparison of integer expressions of different signedness: ‘int’ and ‘unsigned int’ [-Wsign-compare]
  620 |                 for( int j=0 ; j<=Degree2 ; j++ )
      |                                ~^~~~~~~~~
[ 44%] Building CXX object cpp/open3d/geometry/CMakeFiles/geometry.dir/TriangleMeshSubdivide.cpp.o
cd /build/reproducible-path/open3d-0.19.0/obj-x86_64-linux-gnu/cpp/open3d/geometry && /usr/bin/c++ -DBUILD_GUI -DFMT_SHARED -DMSGPACK_DEFAULT_API_VERSION=3 -DOPEN3D_CUDA_COMPILER_ID=\"\" -DOPEN3D_CUDA_COMPILER_VERSION=\"\" -DOPEN3D_CXX_COMPILER_ID=\"GNU\" -DOPEN3D_CXX_COMPILER_VERSION=\"15.0.1\" -DOPEN3D_CXX_STANDARD=\"17\" -DOPEN3D_ENABLE_DLL_EXPORTS -DUNIX -DUSE_BLAS -DZMQ_STATIC -D_FORTIFY_SOURCE=2 -D_GLIBCXX_USE_CXX11_ABI=1 -Dkiss_fft_scalar=double -I/build/reproducible-path/open3d-0.19.0/cpp -I/build/reproducible-path/open3d-0.19.0 -isystem /build/reproducible-path/open3d-0.19.0/3rdparty/tomasakeninemoeller/include -isystem /usr/include/p11-kit-1 -isystem /usr/include/mit-krb5 -isystem /build/reproducible-path/open3d-0.19.0/3rdparty/rply/rply -isystem /build/reproducible-path/open3d-0.19.0/3rdparty/tinyfiledialogs/include -isystem /usr/include/vtk-9.3 -isystem /usr/include/jsoncpp -isystem /usr/include/liblzf -isystem /usr/include/minizip -isystem /usr/include/imgui -isystem /usr/include/pgm-5.3 -isystem /usr/include/libxml2 -isystem /usr/include/eigen3 -isystem /usr/include/filament-1.9 -g -O2 -ffile-prefix-map=/build/reproducible-path/open3d-0.19.0=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -faligned-new -Wno-psabi -Wdate-time -D_FORTIFY_SOURCE=2 -std=c++17 -fPIC -Wall -Wextra -Wno-unused-parameter -fstack-protector-strong -Wformat -Wformat-security -fopenmp -MD -MT cpp/open3d/geometry/CMakeFiles/geometry.dir/TriangleMeshSubdivide.cpp.o -MF CMakeFiles/geometry.dir/TriangleMeshSubdivide.cpp.o.d -o CMakeFiles/geometry.dir/TriangleMeshSubdivide.cpp.o -c /build/reproducible-path/open3d-0.19.0/cpp/open3d/geometry/TriangleMeshSubdivide.cpp
[ 44%] Building CXX object cpp/open3d/geometry/CMakeFiles/geometry.dir/VoxelGrid.cpp.o
cd /build/reproducible-path/open3d-0.19.0/obj-x86_64-linux-gnu/cpp/open3d/geometry && /usr/bin/c++ -DBUILD_GUI -DFMT_SHARED -DMSGPACK_DEFAULT_API_VERSION=3 -DOPEN3D_CUDA_COMPILER_ID=\"\" -DOPEN3D_CUDA_COMPILER_VERSION=\"\" -DOPEN3D_CXX_COMPILER_ID=\"GNU\" -DOPEN3D_CXX_COMPILER_VERSION=\"15.0.1\" -DOPEN3D_CXX_STANDARD=\"17\" -DOPEN3D_ENABLE_DLL_EXPORTS -DUNIX -DUSE_BLAS -DZMQ_STATIC -D_FORTIFY_SOURCE=2 -D_GLIBCXX_USE_CXX11_ABI=1 -Dkiss_fft_scalar=double -I/build/reproducible-path/open3d-0.19.0/cpp -I/build/reproducible-path/open3d-0.19.0 -isystem /build/reproducible-path/open3d-0.19.0/3rdparty/tomasakeninemoeller/include -isystem /usr/include/p11-kit-1 -isystem /usr/include/mit-krb5 -isystem /build/reproducible-path/open3d-0.19.0/3rdparty/rply/rply -isystem /build/reproducible-path/open3d-0.19.0/3rdparty/tinyfiledialogs/include -isystem /usr/include/vtk-9.3 -isystem /usr/include/jsoncpp -isystem /usr/include/liblzf -isystem /usr/include/minizip -isystem /usr/include/imgui -isystem /usr/include/pgm-5.3 -isystem /usr/include/libxml2 -isystem /usr/include/eigen3 -isystem /usr/include/filament-1.9 -g -O2 -ffile-prefix-map=/build/reproducible-path/open3d-0.19.0=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -faligned-new -Wno-psabi -Wdate-time -D_FORTIFY_SOURCE=2 -std=c++17 -fPIC -Wall -Wextra -Wno-unused-parameter -fstack-protector-strong -Wformat -Wformat-security -fopenmp -MD -MT cpp/open3d/geometry/CMakeFiles/geometry.dir/VoxelGrid.cpp.o -MF CMakeFiles/geometry.dir/VoxelGrid.cpp.o.d -o CMakeFiles/geometry.dir/VoxelGrid.cpp.o -c /build/reproducible-path/open3d-0.19.0/cpp/open3d/geometry/VoxelGrid.cpp
make[3]: Leaving directory '/build/reproducible-path/open3d-0.19.0/obj-x86_64-linux-gnu'
[ 44%] Built target pipelines
[ 45%] Building CXX object cpp/open3d/geometry/CMakeFiles/geometry.dir/VoxelGridFactory.cpp.o
cd /build/reproducible-path/open3d-0.19.0/obj-x86_64-linux-gnu/cpp/open3d/geometry && /usr/bin/c++ -DBUILD_GUI -DFMT_SHARED -DMSGPACK_DEFAULT_API_VERSION=3 -DOPEN3D_CUDA_COMPILER_ID=\"\" -DOPEN3D_CUDA_COMPILER_VERSION=\"\" -DOPEN3D_CXX_COMPILER_ID=\"GNU\" -DOPEN3D_CXX_COMPILER_VERSION=\"15.0.1\" -DOPEN3D_CXX_STANDARD=\"17\" -DOPEN3D_ENABLE_DLL_EXPORTS -DUNIX -DUSE_BLAS -DZMQ_STATIC -D_FORTIFY_SOURCE=2 -D_GLIBCXX_USE_CXX11_ABI=1 -Dkiss_fft_scalar=double -I/build/reproducible-path/open3d-0.19.0/cpp -I/build/reproducible-path/open3d-0.19.0 -isystem /build/reproducible-path/open3d-0.19.0/3rdparty/tomasakeninemoeller/include -isystem /usr/include/p11-kit-1 -isystem /usr/include/mit-krb5 -isystem /build/reproducible-path/open3d-0.19.0/3rdparty/rply/rply -isystem /build/reproducible-path/open3d-0.19.0/3rdparty/tinyfiledialogs/include -isystem /usr/include/vtk-9.3 -isystem /usr/include/jsoncpp -isystem /usr/include/liblzf -isystem /usr/include/minizip -isystem /usr/include/imgui -isystem /usr/include/pgm-5.3 -isystem /usr/include/libxml2 -isystem /usr/include/eigen3 -isystem /usr/include/filament-1.9 -g -O2 -ffile-prefix-map=/build/reproducible-path/open3d-0.19.0=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -faligned-new -Wno-psabi -Wdate-time -D_FORTIFY_SOURCE=2 -std=c++17 -fPIC -Wall -Wextra -Wno-unused-parameter -fstack-protector-strong -Wformat -Wformat-security -fopenmp -MD -MT cpp/open3d/geometry/CMakeFiles/geometry.dir/VoxelGridFactory.cpp.o -MF CMakeFiles/geometry.dir/VoxelGridFactory.cpp.o.d -o CMakeFiles/geometry.dir/VoxelGridFactory.cpp.o -c /build/reproducible-path/open3d-0.19.0/cpp/open3d/geometry/VoxelGridFactory.cpp
make[3]: Leaving directory '/build/reproducible-path/open3d-0.19.0/obj-x86_64-linux-gnu'
[ 45%] Built target geometry
make[2]: Leaving directory '/build/reproducible-path/open3d-0.19.0/obj-x86_64-linux-gnu'
make[1]: *** [Makefile:159: all] Error 2
make[1]: Leaving directory '/build/reproducible-path/open3d-0.19.0/obj-x86_64-linux-gnu'
dh_auto_build: error: cd obj-x86_64-linux-gnu && make -j8 "INSTALL=install --strip-program=true" VERBOSE=1 returned exit code 2
make: *** [debian/rules:25: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2

#1097509#10
Date:
2025-09-04 16:49:33 UTC
From:
To:
We believe that the bug you reported is fixed in the latest version of
open3d, 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 1097509@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Timo Röhling <roehling@debian.org> (supplier of updated open3d 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)
Format: 1.8
Date: Thu, 04 Sep 2025 17:17:13 +0200
Source: open3d
Architecture: source
Version: 0.19.0-5
Distribution: unstable
Urgency: medium
Maintainer: Debian Science Maintainers <debian-science-maintainers@lists.alioth.debian.org>
Changed-By: Timo Röhling <roehling@debian.org>
Closes: 1097509
Changes:
 open3d (0.19.0-5) unstable; urgency=medium
 .
   * Fix FTBFS with GCC-15 (Closes: #1097509)
Checksums-Sha1:
 899a4c9b9ba872d6136f671ab0f12d944daa01f3 4085 open3d_0.19.0-5.dsc
 c286f1eac0bc61a211e3338b18fcb3db6d68be83 1001204 open3d_0.19.0-5.debian.tar.xz
Checksums-Sha256:
 71df8c64433f32f72ebcd029dfca148b8fe04f7413935efde0478898f0b65858 4085 open3d_0.19.0-5.dsc
 91def683568f9b8636d64446ccd8a5b8d0f0e0db233c7eee3ae1649771583bf5 1001204 open3d_0.19.0-5.debian.tar.xz
Files:
 8d46f37874f18978c0851066936f4ed4 4085 libs optional open3d_0.19.0-5.dsc
 6d767611b4f0db45f50233a39d4ee352 1001204 libs optional open3d_0.19.0-5.debian.tar.xz
-----BEGIN PGP SIGNATURE-----

iQJIBAEBCgAyFiEEmwPruYMA35fCsSO/zIxr3RQD9MoFAmi5sOgUHHJvZWhsaW5n
QGRlYmlhbi5vcmcACgkQzIxr3RQD9MrpSBAAv1YX7vaPv1JQ5ir0PQRWS4xhus/f
TFhrI3AP2IhVBSGOOFLQ5tPe2w7EtIXUdT5JpT7UdAhiWxNEQLN0UmjurjQiIraS
dd9Z8QNmp6f32YK0JaV+TzC8Yi9a0z1Ky/b7h9B8geCIt8HOUoSmhj5Lfx32wsUw
ur3k0moH2Zy9ays/b8PPS8ZNox2fE9+3EuCxazQhoWiT3UZOBqvUx5uQao3UK1Vl
sZndXxJdHFtKytAHOZlK7hPN6t5Lwp5Hs8dXJdCKso7iamrGHzJdVD5rhlV/1puy
UjaLfF9uxi1sP76tiReAFkPww47eAcF5aHCTV32lK+a8LxsftnqWhY750YDCAipI
px08zA3xmiUQhsHu6KNaEYQWRmJ1Zlk0KiEbOR1zg3xau2Nts6r4CggzQFEpZKgM
Vi3G3zOFY/aDhaKFl+OlOpUHHFvFbMXQvH2gqy3NA4xqT368M8HZpgfZIVWb5iKl
BgEfGG2EYlJYF/Ju/1+++JOZRtb58gbN6Omja+XW+OsOjvXLUK3Lttt/KpMx5mZT
K2Bpnao+XxADdiD7bQD9BFRaA11Gv5UCehmmjhVX0dX97hKAH7YXJ2Yh8ZXh8Jca
e0IF6xMNmqTqBOW61VzpwIpKY+2WFuva5dM0k/2qXpiwkMDzOuEO7X9N6LcEWbVf
HyEjwBYl4DwK2bo=
=LGU8
-----END PGP SIGNATURE-----