From 42acabe920746dd9108bfe1332c5b915f2c46ba9 Mon Sep 17 00:00:00 2001 From: James Antill Date: Mon, 8 Aug 2022 12:40:01 -0400 Subject: [PATCH] Import rpm: 84b4fd4e5e955f96050ca2705c3f21c1fc593cd1 --- .fmf/version | 1 + .gitignore | 2 + ...ke-Make-LIBOMP_HEADERS_INSTALL_PATH-.patch | 27 ++ README.md | 3 + ...ct-aliasing-issue-in-cmpxchg-routine.patch | 44 +++ gating.yaml | 18 ++ gcc-workaround.patch | 12 + hans-gpg-key.asc | 52 ++++ libomp.spec | 257 ++++++++++++++++++ lit.fedora.cfg.py | 15 + openmp-14.0.0.src.tar.xz.sig | Bin 0 -> 566 bytes run-lit-tests | 63 +++++ sources | 2 + tests/build-gating.fmf | 53 ++++ tstellar-gpg-key.asc | Bin 0 -> 2222 bytes 15 files changed, 549 insertions(+) create mode 100644 .fmf/version create mode 100644 .gitignore create mode 100644 0001-PATCH-openmp-CMake-Make-LIBOMP_HEADERS_INSTALL_PATH-.patch create mode 100644 README.md create mode 100644 fix-strict-aliasing-issue-in-cmpxchg-routine.patch create mode 100644 gating.yaml create mode 100644 gcc-workaround.patch create mode 100644 hans-gpg-key.asc create mode 100644 libomp.spec create mode 100644 lit.fedora.cfg.py create mode 100644 openmp-14.0.0.src.tar.xz.sig create mode 100644 run-lit-tests create mode 100644 sources create mode 100644 tests/build-gating.fmf create mode 100644 tstellar-gpg-key.asc diff --git a/.fmf/version b/.fmf/version new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/.fmf/version @@ -0,0 +1 @@ +1 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e7ab436 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +SOURCES/openmp-14.0.0.src.tar.xz +SOURCES/tstellar-gpg-key.asc diff --git a/0001-PATCH-openmp-CMake-Make-LIBOMP_HEADERS_INSTALL_PATH-.patch b/0001-PATCH-openmp-CMake-Make-LIBOMP_HEADERS_INSTALL_PATH-.patch new file mode 100644 index 0000000..e7febcf --- /dev/null +++ b/0001-PATCH-openmp-CMake-Make-LIBOMP_HEADERS_INSTALL_PATH-.patch @@ -0,0 +1,27 @@ +From f2c9c1c9cda831a4305e2dc8899d630ed727353a Mon Sep 17 00:00:00 2001 +From: Tom Stellard +Date: Tue, 16 May 2017 11:52:19 -0400 +Subject: [PATCH] [PATCH][openmp] CMake: Make LIBOMP_HEADERS_INSTALL_PATH a + cache variable when bulding standalone + +This way it can be overriden on the command line. +--- + openmp/runtime/src/CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/openmp/runtime/src/CMakeLists.txt b/openmp/runtime/src/CMakeLists.txt +index 822f9ca..583a3c3 100644 +--- a/openmp/runtime/src/CMakeLists.txt ++++ b/openmp/runtime/src/CMakeLists.txt +@@ -346,7 +346,7 @@ add_dependencies(libomp-micro-tests libomp-test-deps) + # We want to install libomp in DESTDIR/CMAKE_INSTALL_PREFIX/lib + # We want to install headers in DESTDIR/CMAKE_INSTALL_PREFIX/include + if(${OPENMP_STANDALONE_BUILD}) +- set(LIBOMP_HEADERS_INSTALL_PATH "${CMAKE_INSTALL_INCLUDEDIR}") ++ set(LIBOMP_HEADERS_INSTALL_PATH include CACHE PATH "Install path for OpenMP headers") + else() + string(REGEX MATCH "[0-9]+\\.[0-9]+(\\.[0-9]+)?" CLANG_VERSION ${PACKAGE_VERSION}) + set(LIBOMP_HEADERS_INSTALL_PATH "${OPENMP_INSTALL_LIBDIR}/clang/${CLANG_VERSION}/include") +-- +1.8.3.1 + diff --git a/README.md b/README.md new file mode 100644 index 0000000..f793d8a --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# libomp + +The libomp package \ No newline at end of file diff --git a/fix-strict-aliasing-issue-in-cmpxchg-routine.patch b/fix-strict-aliasing-issue-in-cmpxchg-routine.patch new file mode 100644 index 0000000..db6ca9c --- /dev/null +++ b/fix-strict-aliasing-issue-in-cmpxchg-routine.patch @@ -0,0 +1,44 @@ +diff --git a/openmp/runtime/src/kmp_os.h b/openmp/runtime/src/kmp_os.h +--- a/openmp/runtime/src/kmp_os.h ++++ b/openmp/runtime/src/kmp_os.h +@@ -17,6 +17,7 @@ + #include + #include + #include ++#include + + #define KMP_FTN_PLAIN 1 + #define KMP_FTN_APPEND 2 +@@ -864,15 +865,25 @@ + __sync_lock_test_and_set((volatile kmp_uint64 *)(p), (kmp_uint64)(v)) + + inline kmp_real32 KMP_XCHG_REAL32(volatile kmp_real32 *p, kmp_real32 v) { +- kmp_int32 tmp = +- __sync_lock_test_and_set((volatile kmp_uint32 *)(p), *(kmp_uint32 *)&v); +- return *(kmp_real32 *)&tmp; ++ volatile kmp_uint32 *up; ++ kmp_uint32 uv; ++ memcpy(&up, &p, sizeof(up)); ++ memcpy(&uv, &v, sizeof(uv)); ++ kmp_int32 tmp = __sync_lock_test_and_set(up, uv); ++ kmp_real32 ftmp; ++ memcpy(&ftmp, &tmp, sizeof(tmp)); ++ return ftmp; + } + + inline kmp_real64 KMP_XCHG_REAL64(volatile kmp_real64 *p, kmp_real64 v) { +- kmp_int64 tmp = +- __sync_lock_test_and_set((volatile kmp_uint64 *)(p), *(kmp_uint64 *)&v); +- return *(kmp_real64 *)&tmp; ++ volatile kmp_uint64 *up; ++ kmp_uint64 uv; ++ memcpy(&up, &p, sizeof(up)); ++ memcpy(&uv, &v, sizeof(uv)); ++ kmp_int64 tmp = __sync_lock_test_and_set(up, uv); ++ kmp_real64 dtmp; ++ memcpy(&dtmp, &tmp, sizeof(tmp)); ++ return dtmp; + } + + #else + diff --git a/gating.yaml b/gating.yaml new file mode 100644 index 0000000..a447c7e --- /dev/null +++ b/gating.yaml @@ -0,0 +1,18 @@ +--- !Policy +product_versions: + - fedora-* +decision_context: bodhi_update_push_testing +rules: + - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional} +--- !Policy +product_versions: + - fedora-* +decision_context: bodhi_update_push_stable +rules: + - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional} +--- !Policy +product_versions: + - rhel-9 +decision_context: osci_compose_gate +rules: + - !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.tier0.functional} diff --git a/gcc-workaround.patch b/gcc-workaround.patch new file mode 100644 index 0000000..a7de6ca --- /dev/null +++ b/gcc-workaround.patch @@ -0,0 +1,12 @@ +diff -ruN openmp-14.0.0.src.orig/runtime/src/kmp_lock.cpp openmp-14.0.0.src/runtime/src/kmp_lock.cpp +--- a/openmp-14.0.0.src.orig/runtime/src/kmp_lock.cpp 2022-03-14 10:44:55.000000000 +0100 ++++ b/openmp-14.0.0.src/runtime/src/kmp_lock.cpp 2022-04-22 10:58:26.736078432 +0200 +@@ -2663,7 +2663,7 @@ + } + + // Truncated binary exponential backoff function +-void __kmp_spin_backoff(kmp_backoff_t *boff) { ++void __attribute__((optimize("O1"))) __kmp_spin_backoff(kmp_backoff_t *boff) { + // We could flatten this loop, but making it a nested loop gives better result + kmp_uint32 i; + for (i = boff->step; i > 0; i--) { diff --git a/hans-gpg-key.asc b/hans-gpg-key.asc new file mode 100644 index 0000000..4b3cdde --- /dev/null +++ b/hans-gpg-key.asc @@ -0,0 +1,52 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +67H2IH//2sf8dw== +=ADVe +-----END PGP PUBLIC KEY BLOCK----- diff --git a/libomp.spec b/libomp.spec new file mode 100644 index 0000000..a72dfaa --- /dev/null +++ b/libomp.spec @@ -0,0 +1,257 @@ +%global libomp_version 14.0.0 +#global rc_ver 1 +%global libomp_srcdir openmp-%{libomp_version}%{?rc_ver:rc%{rc_ver}}.src + + +%ifarch ppc64le +%global libomp_arch ppc64 +%else +%global libomp_arch %{_arch} +%endif + +Name: libomp +Version: %{libomp_version}%{?rc_ver:~rc%{rc_ver}} +Release: 2%{?dist} +Summary: OpenMP runtime for clang + +License: NCSA +URL: http://openmp.llvm.org +Source0: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{libomp_version}%{?rc_ver:-rc%{rc_ver}}/%{libomp_srcdir}.tar.xz +Source1: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{libomp_version}%{?rc_ver:-rc%{rc_ver}}/%{libomp_srcdir}.tar.xz.sig +Source2: tstellar-gpg-key.asc +Source3: run-lit-tests +Source4: lit.fedora.cfg.py + +Patch0: 0001-PATCH-openmp-CMake-Make-LIBOMP_HEADERS_INSTALL_PATH-.patch +# RHEL specific: Workaround for a bug in GCC that breaks compiling +# the kmp_lock.cpp. Without this patch, GCC errors out with +# ../runtime/src/kmp_lock.cpp:2684:1: error: unsupported size for integer register +Patch1: gcc-workaround.patch +# https://github.com/llvm/llvm-project/commit/40d3a0ba4d9e5452c0a68cfdaa8e88eb8ed5c63d +Patch2: fix-strict-aliasing-issue-in-cmpxchg-routine.patch + +BuildRequires: gcc +BuildRequires: gcc-c++ +BuildRequires: cmake +BuildRequires: ninja-build +BuildRequires: elfutils-libelf-devel +BuildRequires: perl +BuildRequires: perl-Data-Dumper +BuildRequires: perl-Encode +BuildRequires: libffi-devel +# RHEL specific: libomp requires libterminfo +BuildRequires: ncurses-devel + +# For gpg source verification +BuildRequires: gnupg2 + + +# libomptarget needs the llvm cmake files +BuildRequires: llvm-devel + +Requires: elfutils-libelf%{?isa} + +# libomp does not support s390x. +ExcludeArch: s390x + +%description +OpenMP runtime for clang. + +%package devel +Summary: OpenMP header files +Requires: clang-resource-filesystem%{?isa} = %{version} + +%description devel +OpenMP header files. + +%package test +Summary: OpenMP regression tests +Requires: %{name}%{?isa} = %{version}-%{release} +Requires: %{name}-devel%{?isa} = %{version}-%{release} +Requires: clang +Requires: llvm +Requires: gcc +Requires: gcc-c++ +Requires: python3-lit + +%description test +OpenMP regression tests + +%prep +%{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}' +%autosetup -n %{libomp_srcdir} -p2 + +%build +# LTO causes build failures in this package. Disable LTO for now +# https://bugzilla.redhat.com/show_bug.cgi?id=1988155 +%define _lto_cflags %{nil} + +mkdir -p %{_vpath_builddir} +cd %{_vpath_builddir} + +%cmake .. -GNinja \ + -DLIBOMP_INSTALL_ALIASES=OFF \ + -DLLVM_DIR=%{_libdir}/cmake/llvm \ + -DLIBOMP_HEADERS_INSTALL_PATH:PATH=%{_libdir}/clang/%{libomp_version}/include \ +%if 0%{?__isa_bits} == 64 + -DOPENMP_LIBDIR_SUFFIX=64 \ +%else + -DOPENMP_LIBDIR_SUFFIX= \ +%endif + -DCMAKE_SKIP_RPATH:BOOL=ON + +%cmake_build + + +%install +cd %{_vpath_builddir} +%cmake_install + +# Test package setup +%global libomp_srcdir %{_datadir}/libomp/src/ +%global libomp_testdir %{libomp_srcdir}/runtime/test/ +%global lit_cfg %{libomp_testdir}/%{_arch}.site.cfg.py +%global lit_fedora_cfg %{_datadir}/libomp/lit.fedora.cfg.py + +install -d %{buildroot}%{libomp_srcdir}/runtime +cp -R runtime/test %{buildroot}%{libomp_srcdir}/runtime +cp -R runtime/src %{buildroot}%{libomp_srcdir}/runtime + +# Generate lit config files. Strip off the last line that initiates the +# test run, so we can customize the configuration. +head -n -1 runtime/test/lit.site.cfg >> %{buildroot}%{lit_cfg} + +# Install custom fedora config file +cp %{SOURCE4} %{buildroot}%{lit_fedora_cfg} + +# Patch lit config files to load custom fedora config +echo "lit_config.load_config(config, '%{lit_fedora_cfg}')" >> %{buildroot}%{lit_cfg} + +# Install test script +install -d %{buildroot}%{_libexecdir}/tests/libomp +install -m 0755 %{SOURCE3} %{buildroot}%{_libexecdir}/tests/libomp + +# Remove static libraries with equivalent shared libraries +rm -rf %{buildroot}%{_libdir}/libarcher_static.a + +%check +cd %{_vpath_builddir} +%cmake_build --target check-openmp + +%files +%license LICENSE.TXT +%{_libdir}/libomp.so +%{_libdir}/libompd.so +%ifnarch %{arm} +%{_libdir}/libarcher.so +%endif +%ifnarch %{ix86} %{arm} +%{_libdir}/libomptarget.rtl.amdgpu.so +%{_libdir}/libomptarget.rtl.cuda.so +%{_libdir}/libomptarget.rtl.%{libomp_arch}.so +%endif +%{_libdir}/libomptarget.so + +%files devel +%{_libdir}/clang/%{libomp_version}/include/omp.h +%{_libdir}/cmake/openmp/FindOpenMPTarget.cmake +%ifnarch %{arm} +%{_libdir}/clang/%{libomp_version}/include/omp-tools.h +%{_libdir}/clang/%{libomp_version}/include/ompt.h +# FIXME: This is probably wrong. Seems like LIBOMP_HEADERS_INSTALL may +# not be respected. +%{_includedir}/ompt-multiplex.h +%endif + +%files test +%{_datadir}/libomp +%{_libexecdir}/tests/libomp/ + +%changelog +* Wed May 18 2022 Timm Bäder - 14.00-2 +- Backport 40d3a0ba4d9e5452c0a68cfdaa8e88eb8ed5c63d to + fix a strict aliasing issue. + +* Thu Apr 07 2022 Timm Bäder - 14.0.0-1 +- Update to 14.0.0 + +* Thu Feb 03 2022 Tom Stellard - 13.0.1-1 +- 13.0.1 Release + +* Fri Oct 15 2021 Tom Stellard - 13.0.0-1 +- 13.0.0 Release + +* Fri Jul 16 2021 sguelton@redhat.com - 12.0.1-1 +- 12.0.1 release + +* Thu May 6 2021 sguelton@redhat.com - 12.0.0-1 +- 12.0.0 release + +* Thu Oct 29 2020 sguelton@redhat.com - 11.0.0-1 +- 11.0.0 final release + +* Mon Sep 21 2020 sguelton@redhat.com - 11.0.0-0.1.rc2 +- 11.0.0-rc2 Release + +* Fri Jul 24 2020 sguelton@redhat.com - 10.0.1-1 +- 10.0.1 final + +* Mon Jun 15 2020 sguelton@redhat.com - 10.0.0-2 +- Better dependency specification, see rhbz#1841180 + +* Thu Apr 9 2020 sguelton@redhat.com - 10.0.0-1 +- 10.0.0 final + +* Thu Dec 19 2019 Tom Stellard - 9.0.1-1 +- 9.0.1 Release + +* Fri Sep 27 2019 Tom Stellard - 9.0.0-1 +- 9.0.0 Release + +* Thu Aug 1 2019 sguelton@redhat.com - 8.0.1-1 +- 8.0.1 release + +* Thu Jun 13 2019 sguelton@redhat.com - 8.0.1-0.1.rc2 +- 8.0.1rc2 Release + +* Mon Apr 29 2019 sguelton@redhat.com - 8.0.0-1 +- 8.0.0 Release + +* Fri Dec 14 2018 Tom Stellard - 7.0.1-1 +- 7.0.1 Release + +* Wed Dec 12 2018 Tom Stellard - 7.0.1-0.2.rc3 +- Fix test failures on single-core systems + +* Mon Dec 10 2018 Tom Stellard - 7.0.1-0.1.rc3 +- 7.0.1-rc3 Release + +* Tue Nov 27 2018 Tom Stellard - 7.0.0-1 +- 7.0.0 Release + +* Sat Nov 10 2018 Tom Stellard - 6.0.1-3 +- Don't build libomp-test on i686 + +* Mon Oct 01 2018 Tom Stellard - 6.0.1-2 +- Drop scl macros + +* Wed Jul 11 2018 Tom Stellard - 6.0.1-1 +- 6.0.1 Release + +* Mon Jan 15 2018 Tom Stellard - 5.0.1-2 +- Drop ExcludeArch: ppc64 + +* Thu Dec 21 2017 Tom Stellard - 5.0.1-1 +- 5.0.1 Release. + +* Wed Jun 21 2017 Tom Stellard - 4.0.1-1 +- 4.0.1 Release. + +* Wed Jun 07 2017 Tom Stellard - 4.0.0-3 +- Rename libopenmp->libomp + +* Fri May 26 2017 Tom Stellard - 4.0.0-2 +- Disable build on s390x + +* Mon May 15 2017 Tom Stellard - 4.0.0-1 +- Initial version. diff --git a/lit.fedora.cfg.py b/lit.fedora.cfg.py new file mode 100644 index 0000000..fe0fa89 --- /dev/null +++ b/lit.fedora.cfg.py @@ -0,0 +1,15 @@ +import tempfile + +compiler = '%(libomp_compiler)s' % lit_config.params +config.test_filecheck = '%(bindir)s/FileCheck' % lit_config.params +config.omp_header_directory = '%(includedir)s' % lit_config.params +config.libomp_obj_root = tempfile.mkdtemp() +config.library_dir = '%(libdir)s' % lit_config.params +test_root = '%(libomp_test_root)s' % lit_config.params + +# Lit will default to the compiler used to build openmp, which is gcc, but we +# want to run the tests using clang. +config.test_compiler_features = ['clang', 'clang-11'] +config.test_c_compiler = 'clang' +config.test_cxx_compiler = 'clang++' +lit_config.load_config(config, '%(libomp_test_root)s/lit.cfg' % lit_config.params) diff --git a/openmp-14.0.0.src.tar.xz.sig b/openmp-14.0.0.src.tar.xz.sig new file mode 100644 index 0000000000000000000000000000000000000000..f248e2aba1612ee58b550c4d9a507890c89ad7a7 GIT binary patch literal 566 zcmV-60?GY}0y6{v0SEvc79j*jP9iaCzek0rjBbvi$CRmtL7j>P0%AJ2R{#nL5TeJF zsfIzFirv2u0Iu0Q(4S}b#IWAlgJ0cQ{~o}@t{5B={yXXsXy7~}nWQRicqmy_Ug0;^9Ud>cGMRkN1b}vM6>-EN`Kt}6iz04QizKj6|6FSL!RIsdm zDn&@|uM5Rwl1s7u;xaL^0z~YqjvXi;sZx7iFdJ7 zN5GSr7|b|VT;294nneJm!CxC|q4!5VJpNX3P$fFpU?zgju>ZV@IbpmW%OAd2j8~d< z&UPnvw}ZGta;GA=?vZq^t^Ms5C9<`Cn3=nTK<(IgKMkb+FBJ>{8mrZ{Bygmfl!Hk8 zDrz5)-mPSlTUN4H!EuSyr;C}-R literal 0 HcmV?d00001 diff --git a/run-lit-tests b/run-lit-tests new file mode 100644 index 0000000..f7e908e --- /dev/null +++ b/run-lit-tests @@ -0,0 +1,63 @@ +#!/usr/bin/bash + +set -e + +usage() { + echo "usage: `basename $0` [OPTIONS]" + echo " --threads NUM The number of threads to use for running tests." +} + + +threads_arg='' + +while [ $# -gt 0 ]; do + case $1 in + --threads) + shift + threads_arg="--threads $1" + ;; + --multilib-arch) + shift + ARCH=$1 + ;; + * ) + echo "unknown option: $1" + echo "" + usage + exit 1 + ;; + esac + shift +done + + +set -xe + +if [ -z "$ARCH" ]; then + ARCH=`rpm --eval '%_arch'` +fi + +case $ARCH in + arm) + ;& + i686) + LIB_DIR="/usr/lib/" + ;; + *) + LIB_DIR="/usr/lib64/" + ;; +esac + +BIN_DIR="/usr/bin/" +INCLUDE_DIR="/usr/include/" + +lit $threads_arg -v \ + --config-prefix $ARCH \ + -Dlibomp_compiler=clang \ + -Dbindir=$BIN_DIR \ + -Dlibdir=$LIB_DIR \ + -Dincludedir=$INCLUDE_DIR \ + -Dlibomp_test_root=/usr/share/libomp/src/runtime/test \ + /usr/share/libomp/src/runtime/test + +exit 0 diff --git a/sources b/sources new file mode 100644 index 0000000..d9621b4 --- /dev/null +++ b/sources @@ -0,0 +1,2 @@ +SHA1 (openmp-14.0.0.src.tar.xz) = 81984bd288c9dead1a310b5fade13c4942195594 +SHA1 (tstellar-gpg-key.asc) = b8d2648a01d36ed0186fd2c5af325fd28797f9a0 diff --git a/tests/build-gating.fmf b/tests/build-gating.fmf new file mode 100644 index 0000000..d689d8e --- /dev/null +++ b/tests/build-gating.fmf @@ -0,0 +1,53 @@ +# +# Build/PR gating tests for *LLVM 13* +# +# Imports and runs tests provided by Fedora LLVM git for the matching LLVM version. +# +# NOTE: *always* keep this file in sync with upstream, i.e. Fedora. Since we cannot "discover" a plan, +# we must duplicate at least some part of upstream plan setup, like `adjust` or `provision`. Not necessarily +# all steps, but if we do need some of them here, let's focus on making changes in upstream first, to preserve +# one source of truth. Once TMT learns to include whole plans, we could drop the copied content from here. +# + +summary: libomp tests for build/PR gating +adjust: + - because: "Plan to be ran when either executed locally, or executed by CI system to gate a build or PR." + when: >- + trigger is defined + and trigger != commit + and trigger != build + enabled: false + + # Unfortunately, TMT does not support more declarative approach, we need to run commands on our own. + - because: "On RHEL, CRB must be enabled to provide rarer packages" + when: >- + distro == rhel-9 + or distro == rhel-8 + prepare+: + - name: Enable CRB + how: shell + script: dnf config-manager --set-enabled rhel-CRB + + - because: "On CentOS, CRB must be enabled to provide rarer packages" + when: >- + distro == centos + prepare+: + - name: Enable CRB + how: shell + script: dnf config-manager --set-enabled crb + +discover: + - name: libomp-upstream-tests + how: fmf + url: https://src.fedoraproject.org/rpms/libomp.git + ref: rawhide + - name: upstream-llvm-integration-testsuite + how: fmf + url: https://src.fedoraproject.org/rpms/llvm.git + ref: rawhide + test: integration-test-suite +execute: + how: tmt +provision: + hardware: + memory: ">= 4 GiB" \ No newline at end of file diff --git a/tstellar-gpg-key.asc b/tstellar-gpg-key.asc new file mode 100644 index 0000000000000000000000000000000000000000..eba625c41a5fb1646d8b087acb97a6f079901712 GIT binary patch literal 2222 zcmV;f2vPT$0u2OO>VZ805CFTzjTRs0jjXv;pGugCr`4v#a%GKo$r!Jd->PCt z$y%rpj==vUV}Ir+*R8b>IVmXk+p1pb?8#X&nu=A^mMLf^hWzyKgNi2>hyWLVh=fxY z2uQphyka|M&B_iX7`4E;@VIVye4j+?(eh_~`%yu#&d z*V9fM6W6bny8d9hd1I{mwtG%>CC@J*juZpAErTo`!5xcYL1Aj+mdQryB5UR$E%yF6 z*!s!u));Q?P+9N#0Q6S0jli^^Y40t$(uybAR^$1y6%VyNeBeQ!@oTFdcu?K8u$-I` zKDUMj7UGg4A}({Q;YHV$l=+&0cGG3Hh4_R+d%{rZxYsm$HE!9TA$H#_hM3|NNT^K> zZQU8HH=}vu#c;-9-Jyy=nkH&Ih5=&vyyTF3Oa0+QyQp|o8>g~GALwBu0JFctO)F4By^oR|Q&^+ok_ahpz* zx2{4_^~smFohQB{Cn}OKl!M)6h-Sp7pTRPF)8{xDQnsT*2KBVqzLp^_b}_%Gi3#{7 zPmKinsRK(isAm8X0RRECB2;f}AX9W@Y;0k2WFS0rb97~FY+-Uha%E&_VRSBIZ*4w_ z0zU*30RjLi1p->?fjt5n0|f~I;WK~-3ke7Z0|EgC6$kC|{ ztfg+f-L$-*LG&Y8rEs>Pk0kY2M!#d(HZRxiE0ipTCeAm7F|v6IH9B7Vlm=s3u!P6x zukC3z;PJmJ)xh$MIj*i=cG31 zsr(;uWSlOsz%_4Yz*UkKLqI0&M?pa@7vLxT7E~NOMQpRmC;};m26SlTQ+yR!^FSkd z5X@jE=BH4}c|41ZEr0imr|M~OJc6e@^UU(IF|W<>p1aTajeew-gHXQNys755V(S?e zy&C%siGryJ(2hm;uw^%r#}(W7xEi6^+X#Ec26;Q4R?Bq8H1hLh#VmX*+=kLh#l)OH zuC2P$?)S;hs*FQk8?PUuG{npPBS~7t;@#%(02I5L`it-=nvT%hwBu9Vylt?Rx_WO8 zn;xz3>aTq41Kx`}**s6A$49Kf_AikxBYjpmen!2RxlOtbF<6izL<4CJepUil@?zwT z9--9FX0i_jVtyY+6GeUXY{C6s&jp=gZVLvg0K<2!X;=PL%?gW_4bZMVYaV0@NJs-G zR53P~&$$8(1X}8WJpm8^!P@Z0GUu_8r6%69;^`~$FlQ_sXC1gfPE!ZD7nWV}F8ra9JxN4Hc;rg@5`G`UmNK zQK2H?OT@C(8zIO}kZRe0_IN@oCg4<+qQMIIQ9BTzli>7{__%>7EJKyOXMQt~d~dO#*vR-UpkDf2!SqwMz3;vEnk@ z?=o=Jt#mt#&qQ5T^Djs9 z^4k@B1GCy801*KI0f_=71Q-DV01pKMTIzv40vikk2?60VfB*^!5TeJFsfIzFiUFe# z0I}kKVKh7v)wfS?mcAnLFf2mw>&+IUnN!`^A5o?AROoVE|1Wn*mv*_@{l7RSech<$ z?RLGlpeWdkMhbOTAw|NxrZVM!5o8(5NV^UY>QiIQrC87nWDTTnJfN`ajL|@# zl)Qnlzy(_cGgW866I0m2oMj27)0bsK>19i)o*dAxPI!tSpuQR`^kJnT+%gR}_vkiWGx zBRSn>o||dsUIz{u>`KQ`n~m24dqQqPaip8qJ@%<^y5X6+qY7;4MB$!YUu}^Vz&|fAyIM wpX0lD!)BYGzJZL|-kImy^XM9ph5)K0`p3zNu2XNcRC)Y~P3B_BHh)~2!0gUKHvj+t literal 0 HcmV?d00001