From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp1 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms11 with LMTPS id wH9xCKHe8V9JSAAA0tVLHw (envelope-from ) for ; Sun, 03 Jan 2021 15:11:29 +0000 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp1 with LMTPS id WAArBKHe8V8GBQAAbx9fmQ (envelope-from ) for ; Sun, 03 Jan 2021 15:11:29 +0000 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id A59519404C9 for ; Sun, 3 Jan 2021 15:11:27 +0000 (UTC) Received: from localhost ([::1]:56918 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kw52U-0004jf-MW for larch@yhetil.org; Sun, 03 Jan 2021 10:11:26 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:53716) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kw52J-0004iJ-G3 for help-guix@gnu.org; Sun, 03 Jan 2021 10:11:15 -0500 Received: from mout01.posteo.de ([185.67.36.65]:60257) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kw52F-0002QO-JP for help-guix@gnu.org; Sun, 03 Jan 2021 10:11:15 -0500 Received: from submission (posteo.de [89.146.220.130]) by mout01.posteo.de (Postfix) with ESMTPS id 38FA216005F for ; Sun, 3 Jan 2021 16:11:08 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.de; s=2017; t=1609686668; bh=NOjFMDqiIp99Z76ccE6pVHXk16gZsff+DTQnh84enKw=; h=Subject:From:To:Date:From; b=Tw/jmUngqK0YIsncPe5GIrkr/rLLX+BycH//EgoaJwnDh6LwSAHK7daFaO548z8Bz LXjwLCzZXAUCES6ft14KeSRM62OTEmfG45Sg21fMtay+ET0Qj1lgKjZYcUCu/X3WJh DUOhpzwGbw53pwwaJxd4LmarNbY5gX7fhz9BjXAsFX+GtochgtxmcPSrZAw4lfIALa 8N6i+0IJF1O9UCEk1LZyltYENUonUVm6C+XIWDW9PuWbozOpKFVsO6AnCnaYs5poU0 fvE+/RLdG7HQ4sGJejhVbhvi9h10ekVv5izm45nS4Tms1qRoICPiKo164VrUAtdUa5 GqBiv+1MwCaoQ== Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4D82Jq3NLrz9rxT for ; Sun, 3 Jan 2021 16:11:07 +0100 (CET) Message-ID: <4e58dabbbcc4d5b909992bc57da0569068b54fd4.camel@posteo.de> Subject: Packaging the GNU Modula 2 compiler From: Holger Peters To: help-guix@gnu.org Date: Sun, 03 Jan 2021 16:11:00 +0100 Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-YsR7up3AtwOJ9Y50pLu9" User-Agent: Evolution 3.38.2-1 MIME-Version: 1.0 Received-SPF: pass client-ip=185.67.36.65; envelope-from=holger.peters@posteo.de; helo=mout01.posteo.de X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H4=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: help-guix@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-guix-bounces+larch=yhetil.org@gnu.org Sender: "Help-Guix" X-Migadu-Flow: FLOW_IN X-Migadu-Spam-Score: -4.03 Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=posteo.de header.s=2017 header.b=Tw/jmUng; dmarc=pass (policy=none) header.from=posteo.de; spf=pass (aspmx1.migadu.com: domain of help-guix-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=help-guix-bounces@gnu.org X-Migadu-Queue-Id: A59519404C9 X-Spam-Score: -4.03 X-Migadu-Scanner: scn0.migadu.com X-TUID: z+H0QJ7aLTdO --=-YsR7up3AtwOJ9Y50pLu9 Content-Type: multipart/mixed; boundary="=-9tuZ1h532sKj74Z0S2vB" --=-9tuZ1h532sKj74Z0S2vB Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable I have trouble building the GNU Modula 2 compiler [[https://www.nongnu.org/gm2/][GNU Modula 2 compiler]].=C2=A0And I think I could use some help with that. tl;dr: After packaging the GNU Modula 2 compiler with guix I get an error about: '/usr/bin/ld: cannot find crt1.o: No such file or directory' The information on building it is a bit sparse. Here is what I could gather. * I managed to get a successful build of `gm2', that would compile modula files to *.o files. However, I wasn't able to link to an executable due to multilib issues (see below). * It seems there are no (recent) source releases for GNU Modula 2, the expecation is to get the releases from the git repository. * GNU Modula 2 is a gcc-based compiler. * The latest stable release of gm2 is based on gcc-10. [[https://www.nongnu.org/gm2/building.html][Source]] * Build guidelines are available under =C2=A0 [[https://www.nongnu.org/gm2/building_on_gcc_10.html][Building GNU Modula-2 grafted on the gcc-10 branch]]. As per the docs, these are the recommended configuration steps. You'll see that my guix package definition below differs in detail. #+BEGIN_SRC sh git clone http://floppsie.comp.glam.ac.uk/gm2 gm2-floppsie cd gm2-floppsie git checkout gm2-10 ./contrib/download_prerequisites cd ../.. sudo apt-get install gcc-multilib libmpfr-dev libgmp-dev libmpc-dev flex mkdir build-gcc-10 cd build-gcc-10 CXXFLAGS=3D-g BOOT_CFLAGS=3D-g CFLAGS=3D-g \ ../gm2-floppsie/configure \ --prefix=3D$HOME/opt \ --libexecdir=3D$HOME/opt/lib \ --enable-threads=3Dposix \ --enable-clocale=3Dgnu --enable-languages=3Dc,c++,m2 \ --disable-multilib --disable-bootstrap --enable-checking #+END_SRC * Questions ** Linking Issue / Multilib There is a /multilib/ configuration flag (disable/enable) and for the apt-based distros it seems GM2 devs recommend the installation of gcc-multilib. Since I don't find a multilib package in guix, I think the approach might be a little different for guix. What needs to be done here? I did leave /--disable-multilib/ in the configure flags in my build recipe below. Then when compiling a source file like this [[https://www.nongnu.org/gm2/example_usage.html][Source]] #+BEGIN_SRC modula-2 MODULE hello; FROM StrIO IMPORT WriteString, WriteLn ; BEGIN WriteString('hello world') ; WriteLn END hello. #+END_SRC I get the following error (`gm2 -v -g hello.mod'): #+BEGIN_SRC text /usr/bin/ld: cannot find crt1.o: No such file or directory /usr/bin/ld: cannot find crti.o: No such file or directory collect2: error: ld returned 1 exit status #+END_SRC (Full verbose log in attached file `out.log'). ** /usr/bin/ld Shouldn't I expect - in the error message - to see a reference to ld as provided by guix? ** Outputs This is a bit of a follow-up question. I had more success building GM2 with the GCC bootstrapping enabled. I think the build outputs should be restricted when going down that path. How do I make sure that the `gcc' executables aren't propagated into the PATH when installing gm2. * Build recipe This is what I camee up with so far. I realize this isn't a /polished/ patch yet, my focus is to get it to build. #+BEGIN_SRC scheme (define-module (yas packages gm2) #:use-module (gnu packages gcc) #:use-module (gnu packages flex) #:use-module (gnu packages bison) #:use-module (gnu packages python) #:use-module (guix search-paths) #:use-module (guix git-download) #:use-module (guix utils) #:use-module (guix packages) #:use-module (guix build-system gnu) #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) #:use-module (ice-9 regex)) (define %generic-search-paths ;; This is the language-neutral search path for GCC. Entries in $CPATH are ;; not considered "system headers", which means GCC can raise warnings for ;; issues in those headers. 'CPATH' is the only one that works for ;; front-ends not in the C family. (list (search-path-specification (variable "CPATH") (files '("include"))) (search-path-specification (variable "LIBRARY_PATH") (files '("lib" "lib64"))))) (define-public gm2 (let ((revision "3") (commit "5f55e3e8a7bd2142eff043479c4059242e81e2ea") (git-url "http://floppsie.comp.glam.ac.uk/gm2") (name "gm2") (version "gm2-10")) (package (inherit gcc-10) (name name) (version version) (source (origin (method git-fetch) (uri (git-reference (url git-url) (commit commit))) (file-name (git-file-name name version)) (sha256 (base32 "0cc46bkv198j7hn1ihczf6p4fpby3cnp57rml679rna2cmhzhp4x")))) (native-search-paths %generic-search-paths) (properties (alist-delete 'hidden? (package-properties gcc))) (native-inputs (append `(("bison" ,bison) ("flex" ,flex) ("python3" ,python) ) (package-native-inputs gcc-10))) (arguments (substitute-keyword-arguments (package-arguments gcc) ((#:modules modules %gnu-build-system-modules) `(,@modules (srfi srfi-1) (srfi srfi-26) (ice-9 regex))) ((#:configure-flags flags) (let* ((gm2-flags '(list "--enable-languages=3Dm2" ;; "--enable-languages=3Dc,c++,m2" ;; "--disable-bootstrap" ;; "--disable-multilib" "--enable-checking" "--enable-threads=3Dposix")) (tail `(remove (cut string-match "--enable- languages.*" <>) ,flags))) `(append ,gm2-flags ,tail))) ((#:phases phases) `(modify-phases ,phases (add-after 'install 'remove-broken-or- conflicting-files (lambda* (#:key outputs #:allow-other-keys) (for-each delete-file (find-files (string-append (assoc- ref outputs "out") "/bin") =20 ".*(c\\+\\+|cpp|g\\+\\+|gcov|gcc|gcc-.*)")) #true)))))) (synopsis "modula2 compiler") (description "modula2 compiler")))) #+END_SRC --=-9tuZ1h532sKj74Z0S2vB Content-Disposition: attachment; filename="out.log" Content-Type: text/x-log; name="out.log"; charset="UTF-8" Content-Transfer-Encoding: base64 VXNpbmcgYnVpbHQtaW4gc3BlY3MuCkNPTExFQ1RfR0NDPWdtMgpDT0xMRUNUX0xUT19XUkFQUEVS PS9nbnUvc3RvcmUvM3YwYzE4cDd6emZiaTZoenpnYXFwNzN2M2cxa2FmaTItZ20yLWdtMi0xMC9s aWJleGVjL2djYy94ODZfNjQtdW5rbm93bi1saW51eC1nbnUvMTAuMi4xL2x0by13cmFwcGVyClRh cmdldDogeDg2XzY0LXVua25vd24tbGludXgtZ251CkNvbmZpZ3VyZWQgd2l0aDogClRocmVhZCBt b2RlbDogcG9zaXgKU3VwcG9ydGVkIExUTyBjb21wcmVzc2lvbiBhbGdvcml0aG1zOiB6bGliCmdj YyB2ZXJzaW9uIDEwLjIuMSAyMDIwMTIzMSAoR0NDKSAKQ09MTEVDVF9HQ0NfT1BUSU9OUz0nLUkv Z251L3N0b3JlLzUwdjRxdjk0Mmp2ZnBuNXhzcXJiYjk3Z3J5bTE0MGpsLWdtMi1nbTItMTAtbGli L2xpYi9nY2MveDg2XzY0LXVua25vd24tbGludXgtZ251LzEwLjIuMS9tMi9tMnBpbScgJy1mdGFy Z2V0LWFyPS9nbnUvc3RvcmUvbTF6N2NkYnFzcXlwOXhuanc1Y3ZsYjRhN2drY2czbTQtYmludXRp bHMtMi4zNC9iaW4vYXInICctZnRhcmdldC1yYW5saWI9L2dudS9zdG9yZS9tMXo3Y2RicXNxeXA5 eG5qdzVjdmxiNGE3Z2tjZzNtNC1iaW51dGlscy0yLjM0L2Jpbi9yYW5saWInICctZm9iamVjdC1w YXRoPS9nbnUvc3RvcmUvNTB2NHF2OTQyanZmcG41eHNxcmJiOTdncnltMTQwamwtZ20yLWdtMi0x MC1saWIvbGliL2djYy94ODZfNjQtdW5rbm93bi1saW51eC1nbnUvMTAuMi4xL20yL20ycGltJyAn LXgnICdtb2R1bGEtMicgJy1mcGx1Z2luPW0ycnRlJyAnLUwvZ251L3N0b3JlLzUwdjRxdjk0Mmp2 ZnBuNXhzcXJiYjk3Z3J5bTE0MGpsLWdtMi1nbTItMTAtbGliL2xpYi9nY2MveDg2XzY0LXVua25v d24tbGludXgtZ251LzEwLjIuMS9tMi9tMnBpbScgJy1ML2dudS9zdG9yZS81MHY0cXY5NDJqdmZw bjV4c3FyYmI5N2dyeW0xNDBqbC1nbTItZ20yLTEwLWxpYi9saWIvZ2NjL3g4Nl82NC11bmtub3du LWxpbnV4LWdudS8xMC4yLjEvbTIvbTJwaW0nICctc2hhcmVkLWxpYmdjYycgJy12JyAnLWcnICct Zm9ubHlsaW5rJyAnLW10dW5lPWdlbmVyaWMnICctbWFyY2g9eDg2LTY0JwpDT0xMRUNUX0dDQ19P UFRJT05TPSctSS9nbnUvc3RvcmUvNTB2NHF2OTQyanZmcG41eHNxcmJiOTdncnltMTQwamwtZ20y LWdtMi0xMC1saWIvbGliL2djYy94ODZfNjQtdW5rbm93bi1saW51eC1nbnUvMTAuMi4xL20yL20y cGltJyAnLWZ0YXJnZXQtYXI9L2dudS9zdG9yZS9tMXo3Y2RicXNxeXA5eG5qdzVjdmxiNGE3Z2tj ZzNtNC1iaW51dGlscy0yLjM0L2Jpbi9hcicgJy1mdGFyZ2V0LXJhbmxpYj0vZ251L3N0b3JlL20x ejdjZGJxc3F5cDl4bmp3NWN2bGI0YTdna2NnM200LWJpbnV0aWxzLTIuMzQvYmluL3JhbmxpYicg Jy1mb2JqZWN0LXBhdGg9L2dudS9zdG9yZS81MHY0cXY5NDJqdmZwbjV4c3FyYmI5N2dyeW0xNDBq bC1nbTItZ20yLTEwLWxpYi9saWIvZ2NjL3g4Nl82NC11bmtub3duLWxpbnV4LWdudS8xMC4yLjEv bTIvbTJwaW0nICcteCcgJ21vZHVsYS0yJyAnLWZwbHVnaW49bTJydGUnICctTC9nbnUvc3RvcmUv NTB2NHF2OTQyanZmcG41eHNxcmJiOTdncnltMTQwamwtZ20yLWdtMi0xMC1saWIvbGliL2djYy94 ODZfNjQtdW5rbm93bi1saW51eC1nbnUvMTAuMi4xL20yL20ycGltJyAnLUwvZ251L3N0b3JlLzUw djRxdjk0Mmp2ZnBuNXhzcXJiYjk3Z3J5bTE0MGpsLWdtMi1nbTItMTAtbGliL2xpYi9nY2MveDg2 XzY0LXVua25vd24tbGludXgtZ251LzEwLjIuMS9tMi9tMnBpbScgJy1zaGFyZWQtbGliZ2NjJyAn LXYnICctZycgJy1mb25seWxpbmsnICctbXR1bmU9Z2VuZXJpYycgJy1tYXJjaD14ODYtNjQnCiAv Z251L3N0b3JlLzN2MGMxOHA3enpmYmk2aHp6Z2FxcDczdjNnMWthZmkyLWdtMi1nbTItMTAvbGli ZXhlYy9nY2MveDg2XzY0LXVua25vd24tbGludXgtZ251LzEwLjIuMS9nbTJsIC12IC1JL2dudS9z dG9yZS81MHY0cXY5NDJqdmZwbjV4c3FyYmI5N2dyeW0xNDBqbC1nbTItZ20yLTEwLWxpYi9saWIv Z2NjL3g4Nl82NC11bmtub3duLWxpbnV4LWdudS8xMC4yLjEvbTIvbTJwaW0gLW8gL3RtcC9jY0hm ZHFQei5sIGhlbGxvLm1vZApDT0xMRUNUX0dDQ19PUFRJT05TPSctSS9nbnUvc3RvcmUvNTB2NHF2 OTQyanZmcG41eHNxcmJiOTdncnltMTQwamwtZ20yLWdtMi0xMC1saWIvbGliL2djYy94ODZfNjQt dW5rbm93bi1saW51eC1nbnUvMTAuMi4xL20yL20ycGltJyAnLWZ0YXJnZXQtYXI9L2dudS9zdG9y ZS9tMXo3Y2RicXNxeXA5eG5qdzVjdmxiNGE3Z2tjZzNtNC1iaW51dGlscy0yLjM0L2Jpbi9hcicg Jy1mdGFyZ2V0LXJhbmxpYj0vZ251L3N0b3JlL20xejdjZGJxc3F5cDl4bmp3NWN2bGI0YTdna2Nn M200LWJpbnV0aWxzLTIuMzQvYmluL3JhbmxpYicgJy1mb2JqZWN0LXBhdGg9L2dudS9zdG9yZS81 MHY0cXY5NDJqdmZwbjV4c3FyYmI5N2dyeW0xNDBqbC1nbTItZ20yLTEwLWxpYi9saWIvZ2NjL3g4 Nl82NC11bmtub3duLWxpbnV4LWdudS8xMC4yLjEvbTIvbTJwaW0nICcteCcgJ21vZHVsYS0yJyAn LWZwbHVnaW49bTJydGUnICctTC9nbnUvc3RvcmUvNTB2NHF2OTQyanZmcG41eHNxcmJiOTdncnlt MTQwamwtZ20yLWdtMi0xMC1saWIvbGliL2djYy94ODZfNjQtdW5rbm93bi1saW51eC1nbnUvMTAu Mi4xL20yL20ycGltJyAnLUwvZ251L3N0b3JlLzUwdjRxdjk0Mmp2ZnBuNXhzcXJiYjk3Z3J5bTE0 MGpsLWdtMi1nbTItMTAtbGliL2xpYi9nY2MveDg2XzY0LXVua25vd24tbGludXgtZ251LzEwLjIu MS9tMi9tMnBpbScgJy1zaGFyZWQtbGliZ2NjJyAnLXYnICctZycgJy1mb25seWxpbmsnICctbXR1 bmU9Z2VuZXJpYycgJy1tYXJjaD14ODYtNjQnCiAvZ251L3N0b3JlLzN2MGMxOHA3enpmYmk2aHp6 Z2FxcDczdjNnMWthZmkyLWdtMi1nbTItMTAvbGliZXhlYy9nY2MveDg2XzY0LXVua25vd24tbGlu dXgtZ251LzEwLjIuMS9nbTJsb3JkZXIgL3RtcC9jY0hmZHFQei5sIC1vIC90bXAvY2NaM21QNXou bHN0CkNPTExFQ1RfR0NDX09QVElPTlM9Jy1JL2dudS9zdG9yZS81MHY0cXY5NDJqdmZwbjV4c3Fy YmI5N2dyeW0xNDBqbC1nbTItZ20yLTEwLWxpYi9saWIvZ2NjL3g4Nl82NC11bmtub3duLWxpbnV4 LWdudS8xMC4yLjEvbTIvbTJwaW0nICctZnRhcmdldC1hcj0vZ251L3N0b3JlL20xejdjZGJxc3F5 cDl4bmp3NWN2bGI0YTdna2NnM200LWJpbnV0aWxzLTIuMzQvYmluL2FyJyAnLWZ0YXJnZXQtcmFu bGliPS9nbnUvc3RvcmUvbTF6N2NkYnFzcXlwOXhuanc1Y3ZsYjRhN2drY2czbTQtYmludXRpbHMt Mi4zNC9iaW4vcmFubGliJyAnLWZvYmplY3QtcGF0aD0vZ251L3N0b3JlLzUwdjRxdjk0Mmp2ZnBu NXhzcXJiYjk3Z3J5bTE0MGpsLWdtMi1nbTItMTAtbGliL2xpYi9nY2MveDg2XzY0LXVua25vd24t bGludXgtZ251LzEwLjIuMS9tMi9tMnBpbScgJy14JyAnbW9kdWxhLTInICctZnBsdWdpbj1tMnJ0 ZScgJy1ML2dudS9zdG9yZS81MHY0cXY5NDJqdmZwbjV4c3FyYmI5N2dyeW0xNDBqbC1nbTItZ20y LTEwLWxpYi9saWIvZ2NjL3g4Nl82NC11bmtub3duLWxpbnV4LWdudS8xMC4yLjEvbTIvbTJwaW0n ICctTC9nbnUvc3RvcmUvNTB2NHF2OTQyanZmcG41eHNxcmJiOTdncnltMTQwamwtZ20yLWdtMi0x MC1saWIvbGliL2djYy94ODZfNjQtdW5rbm93bi1saW51eC1nbnUvMTAuMi4xL20yL20ycGltJyAn LXNoYXJlZC1saWJnY2MnICctdicgJy1nJyAnLWZvbmx5bGluaycgJy1tdHVuZT1nZW5lcmljJyAn LW1hcmNoPXg4Ni02NCcKQ09MTEVDVF9HQ0NfT1BUSU9OUz0nLUkvZ251L3N0b3JlLzUwdjRxdjk0 Mmp2ZnBuNXhzcXJiYjk3Z3J5bTE0MGpsLWdtMi1nbTItMTAtbGliL2xpYi9nY2MveDg2XzY0LXVu a25vd24tbGludXgtZ251LzEwLjIuMS9tMi9tMnBpbScgJy1mdGFyZ2V0LWFyPS9nbnUvc3RvcmUv bTF6N2NkYnFzcXlwOXhuanc1Y3ZsYjRhN2drY2czbTQtYmludXRpbHMtMi4zNC9iaW4vYXInICct ZnRhcmdldC1yYW5saWI9L2dudS9zdG9yZS9tMXo3Y2RicXNxeXA5eG5qdzVjdmxiNGE3Z2tjZzNt NC1iaW51dGlscy0yLjM0L2Jpbi9yYW5saWInICctZm9iamVjdC1wYXRoPS9nbnUvc3RvcmUvNTB2 NHF2OTQyanZmcG41eHNxcmJiOTdncnltMTQwamwtZ20yLWdtMi0xMC1saWIvbGliL2djYy94ODZf NjQtdW5rbm93bi1saW51eC1nbnUvMTAuMi4xL20yL20ycGltJyAnLXgnICdtb2R1bGEtMicgJy1m cGx1Z2luPW0ycnRlJyAnLUwvZ251L3N0b3JlLzUwdjRxdjk0Mmp2ZnBuNXhzcXJiYjk3Z3J5bTE0 MGpsLWdtMi1nbTItMTAtbGliL2xpYi9nY2MveDg2XzY0LXVua25vd24tbGludXgtZ251LzEwLjIu MS9tMi9tMnBpbScgJy1ML2dudS9zdG9yZS81MHY0cXY5NDJqdmZwbjV4c3FyYmI5N2dyeW0xNDBq bC1nbTItZ20yLTEwLWxpYi9saWIvZ2NjL3g4Nl82NC11bmtub3duLWxpbnV4LWdudS8xMC4yLjEv bTIvbTJwaW0nICctc2hhcmVkLWxpYmdjYycgJy12JyAnLWcnICctZm9ubHlsaW5rJyAnLW10dW5l PWdlbmVyaWMnICctbWFyY2g9eDg2LTY0JwogL2dudS9zdG9yZS8zdjBjMThwN3p6ZmJpNmh6emdh cXA3M3YzZzFrYWZpMi1nbTItZ20yLTEwL2xpYmV4ZWMvZ2NjL3g4Nl82NC11bmtub3duLWxpbnV4 LWdudS8xMC4yLjEvZ20ybGdlbiAtZmNwcCAvdG1wL2NjWjNtUDV6LmxzdCAtbyBoZWxsb19tMi5j cHAKQ09MTEVDVF9HQ0NfT1BUSU9OUz0nLUkvZ251L3N0b3JlLzUwdjRxdjk0Mmp2ZnBuNXhzcXJi Yjk3Z3J5bTE0MGpsLWdtMi1nbTItMTAtbGliL2xpYi9nY2MveDg2XzY0LXVua25vd24tbGludXgt Z251LzEwLjIuMS9tMi9tMnBpbScgJy1mdGFyZ2V0LWFyPS9nbnUvc3RvcmUvbTF6N2NkYnFzcXlw OXhuanc1Y3ZsYjRhN2drY2czbTQtYmludXRpbHMtMi4zNC9iaW4vYXInICctZnRhcmdldC1yYW5s aWI9L2dudS9zdG9yZS9tMXo3Y2RicXNxeXA5eG5qdzVjdmxiNGE3Z2tjZzNtNC1iaW51dGlscy0y LjM0L2Jpbi9yYW5saWInICctZm9iamVjdC1wYXRoPS9nbnUvc3RvcmUvNTB2NHF2OTQyanZmcG41 eHNxcmJiOTdncnltMTQwamwtZ20yLWdtMi0xMC1saWIvbGliL2djYy94ODZfNjQtdW5rbm93bi1s aW51eC1nbnUvMTAuMi4xL20yL20ycGltJyAnLXgnICdtb2R1bGEtMicgJy1mcGx1Z2luPW0ycnRl JyAnLUwvZ251L3N0b3JlLzUwdjRxdjk0Mmp2ZnBuNXhzcXJiYjk3Z3J5bTE0MGpsLWdtMi1nbTIt MTAtbGliL2xpYi9nY2MveDg2XzY0LXVua25vd24tbGludXgtZ251LzEwLjIuMS9tMi9tMnBpbScg Jy1ML2dudS9zdG9yZS81MHY0cXY5NDJqdmZwbjV4c3FyYmI5N2dyeW0xNDBqbC1nbTItZ20yLTEw LWxpYi9saWIvZ2NjL3g4Nl82NC11bmtub3duLWxpbnV4LWdudS8xMC4yLjEvbTIvbTJwaW0nICct c2hhcmVkLWxpYmdjYycgJy12JyAnLWcnICctZm9ubHlsaW5rJyAnLW10dW5lPWdlbmVyaWMnICct bWFyY2g9eDg2LTY0JwogL2dudS9zdG9yZS8zdjBjMThwN3p6ZmJpNmh6emdhcXA3M3YzZzFrYWZp Mi1nbTItZ20yLTEwL2xpYmV4ZWMvZ2NjL3g4Nl82NC11bmtub3duLWxpbnV4LWdudS8xMC4yLjEv Y2MxcGx1cyAtdiAtbXR1bmU9Z2VuZXJpYyAtbWFyY2g9eDg2LTY0IC1nIC1JL2dudS9zdG9yZS81 MHY0cXY5NDJqdmZwbjV4c3FyYmI5N2dyeW0xNDBqbC1nbTItZ20yLTEwLWxpYi9saWIvZ2NjL3g4 Nl82NC11bmtub3duLWxpbnV4LWdudS8xMC4yLjEvbTIvbTJwaW0gLXF1aWV0IGhlbGxvX20yLmNw cCAtbyBoZWxsb19tMi5zCmlnbm9yaW5nIG5vbmV4aXN0ZW50IGRpcmVjdG9yeSAiL25vLWdjYy1s b2NhbC1wcmVmaXgvaW5jbHVkZSIKaWdub3Jpbmcgbm9uZXhpc3RlbnQgZGlyZWN0b3J5ICIvZ251 L3N0b3JlLzUwdjRxdjk0Mmp2ZnBuNXhzcXJiYjk3Z3J5bTE0MGpsLWdtMi1nbTItMTAtbGliL2xp Yi9nY2MveDg2XzY0LXVua25vd24tbGludXgtZ251LzEwLjIuMS8uLi8uLi8uLi8uLi8uLi8uLi8u Li94ODZfNjQtdW5rbm93bi1saW51eC1nbnUvaW5jbHVkZSIKI2luY2x1ZGUgIi4uLiIgc2VhcmNo IHN0YXJ0cyBoZXJlOgojaW5jbHVkZSA8Li4uPiBzZWFyY2ggc3RhcnRzIGhlcmU6CiAvZ251L3N0 b3JlLzUwdjRxdjk0Mmp2ZnBuNXhzcXJiYjk3Z3J5bTE0MGpsLWdtMi1nbTItMTAtbGliL2xpYi9n Y2MveDg2XzY0LXVua25vd24tbGludXgtZ251LzEwLjIuMS9tMi9tMnBpbQogL2dudS9zdG9yZS9s Y2Y4NHlweGFjdzc2MTRuNWQxNDFueGF4cW5kN3NpbC1wcm9maWxlL2luY2x1ZGUKIC9nbnUvc3Rv cmUvYzNwYnNyNWd5cDhmOWJ2bjQ1cDVwNm4wZGdiaWw0ZHAtcHJvZmlsZS9pbmNsdWRlCiAvZ251 L3N0b3JlLzN2MGMxOHA3enpmYmk2aHp6Z2FxcDczdjNnMWthZmkyLWdtMi1nbTItMTAvaW5jbHVk ZS9jKysKIC9nbnUvc3RvcmUvM3YwYzE4cDd6emZiaTZoenpnYXFwNzN2M2cxa2FmaTItZ20yLWdt Mi0xMC9pbmNsdWRlL2MrKy94ODZfNjQtdW5rbm93bi1saW51eC1nbnUKIC9nbnUvc3RvcmUvM3Yw YzE4cDd6emZiaTZoenpnYXFwNzN2M2cxa2FmaTItZ20yLWdtMi0xMC9pbmNsdWRlL2MrKy9iYWNr d2FyZAogL2dudS9zdG9yZS81MHY0cXY5NDJqdmZwbjV4c3FyYmI5N2dyeW0xNDBqbC1nbTItZ20y LTEwLWxpYi9saWIvZ2NjL3g4Nl82NC11bmtub3duLWxpbnV4LWdudS8xMC4yLjEvaW5jbHVkZQog L2dudS9zdG9yZS81MHY0cXY5NDJqdmZwbjV4c3FyYmI5N2dyeW0xNDBqbC1nbTItZ20yLTEwLWxp Yi9saWIvZ2NjL3g4Nl82NC11bmtub3duLWxpbnV4LWdudS8xMC4yLjEvaW5jbHVkZS1maXhlZAog L2dudS9zdG9yZS9mYTZ3ajVieGtqNWxsMWQ3MjkyYTcwa25teWw3YTBjci1nbGliYy0yLjMxL2lu Y2x1ZGUKRW5kIG9mIHNlYXJjaCBsaXN0LgpDT0xMRUNUX0dDQ19PUFRJT05TPSctSS9nbnUvc3Rv cmUvNTB2NHF2OTQyanZmcG41eHNxcmJiOTdncnltMTQwamwtZ20yLWdtMi0xMC1saWIvbGliL2dj Yy94ODZfNjQtdW5rbm93bi1saW51eC1nbnUvMTAuMi4xL20yL20ycGltJyAnLWZ0YXJnZXQtYXI9 L2dudS9zdG9yZS9tMXo3Y2RicXNxeXA5eG5qdzVjdmxiNGE3Z2tjZzNtNC1iaW51dGlscy0yLjM0 L2Jpbi9hcicgJy1mdGFyZ2V0LXJhbmxpYj0vZ251L3N0b3JlL20xejdjZGJxc3F5cDl4bmp3NWN2 bGI0YTdna2NnM200LWJpbnV0aWxzLTIuMzQvYmluL3JhbmxpYicgJy1mb2JqZWN0LXBhdGg9L2du dS9zdG9yZS81MHY0cXY5NDJqdmZwbjV4c3FyYmI5N2dyeW0xNDBqbC1nbTItZ20yLTEwLWxpYi9s aWIvZ2NjL3g4Nl82NC11bmtub3duLWxpbnV4LWdudS8xMC4yLjEvbTIvbTJwaW0nICcteCcgJ21v ZHVsYS0yJyAnLWZwbHVnaW49bTJydGUnICctTC9nbnUvc3RvcmUvNTB2NHF2OTQyanZmcG41eHNx cmJiOTdncnltMTQwamwtZ20yLWdtMi0xMC1saWIvbGliL2djYy94ODZfNjQtdW5rbm93bi1saW51 eC1nbnUvMTAuMi4xL20yL20ycGltJyAnLUwvZ251L3N0b3JlLzUwdjRxdjk0Mmp2ZnBuNXhzcXJi Yjk3Z3J5bTE0MGpsLWdtMi1nbTItMTAtbGliL2xpYi9nY2MveDg2XzY0LXVua25vd24tbGludXgt Z251LzEwLjIuMS9tMi9tMnBpbScgJy1zaGFyZWQtbGliZ2NjJyAnLXYnICctZycgJy1mb25seWxp bmsnICctbXR1bmU9Z2VuZXJpYycgJy1tYXJjaD14ODYtNjQnCiBhcyAtLTY0IGhlbGxvX20yLnMg LW8gL3RtcC9jYzJwU1ZmeXN0YXJ0Lm8KQ09MTEVDVF9HQ0NfT1BUSU9OUz0nLUkvZ251L3N0b3Jl LzUwdjRxdjk0Mmp2ZnBuNXhzcXJiYjk3Z3J5bTE0MGpsLWdtMi1nbTItMTAtbGliL2xpYi9nY2Mv eDg2XzY0LXVua25vd24tbGludXgtZ251LzEwLjIuMS9tMi9tMnBpbScgJy1mdGFyZ2V0LWFyPS9n bnUvc3RvcmUvbTF6N2NkYnFzcXlwOXhuanc1Y3ZsYjRhN2drY2czbTQtYmludXRpbHMtMi4zNC9i aW4vYXInICctZnRhcmdldC1yYW5saWI9L2dudS9zdG9yZS9tMXo3Y2RicXNxeXA5eG5qdzVjdmxi NGE3Z2tjZzNtNC1iaW51dGlscy0yLjM0L2Jpbi9yYW5saWInICctZm9iamVjdC1wYXRoPS9nbnUv c3RvcmUvNTB2NHF2OTQyanZmcG41eHNxcmJiOTdncnltMTQwamwtZ20yLWdtMi0xMC1saWIvbGli L2djYy94ODZfNjQtdW5rbm93bi1saW51eC1nbnUvMTAuMi4xL20yL20ycGltJyAnLXgnICdtb2R1 bGEtMicgJy1mcGx1Z2luPW0ycnRlJyAnLUwvZ251L3N0b3JlLzUwdjRxdjk0Mmp2ZnBuNXhzcXJi Yjk3Z3J5bTE0MGpsLWdtMi1nbTItMTAtbGliL2xpYi9nY2MveDg2XzY0LXVua25vd24tbGludXgt Z251LzEwLjIuMS9tMi9tMnBpbScgJy1ML2dudS9zdG9yZS81MHY0cXY5NDJqdmZwbjV4c3FyYmI5 N2dyeW0xNDBqbC1nbTItZ20yLTEwLWxpYi9saWIvZ2NjL3g4Nl82NC11bmtub3duLWxpbnV4LWdu dS8xMC4yLjEvbTIvbTJwaW0nICctc2hhcmVkLWxpYmdjYycgJy12JyAnLWcnICctZm9ubHlsaW5r JyAnLW10dW5lPWdlbmVyaWMnICctbWFyY2g9eDg2LTY0Jwogcm0gLWYgL3RtcC9jY2pzWHQ4QS5h CkNPTExFQ1RfR0NDX09QVElPTlM9Jy1JL2dudS9zdG9yZS81MHY0cXY5NDJqdmZwbjV4c3FyYmI5 N2dyeW0xNDBqbC1nbTItZ20yLTEwLWxpYi9saWIvZ2NjL3g4Nl82NC11bmtub3duLWxpbnV4LWdu dS8xMC4yLjEvbTIvbTJwaW0nICctZnRhcmdldC1hcj0vZ251L3N0b3JlL20xejdjZGJxc3F5cDl4 bmp3NWN2bGI0YTdna2NnM200LWJpbnV0aWxzLTIuMzQvYmluL2FyJyAnLWZ0YXJnZXQtcmFubGli PS9nbnUvc3RvcmUvbTF6N2NkYnFzcXlwOXhuanc1Y3ZsYjRhN2drY2czbTQtYmludXRpbHMtMi4z NC9iaW4vcmFubGliJyAnLWZvYmplY3QtcGF0aD0vZ251L3N0b3JlLzUwdjRxdjk0Mmp2ZnBuNXhz cXJiYjk3Z3J5bTE0MGpsLWdtMi1nbTItMTAtbGliL2xpYi9nY2MveDg2XzY0LXVua25vd24tbGlu dXgtZ251LzEwLjIuMS9tMi9tMnBpbScgJy14JyAnbW9kdWxhLTInICctZnBsdWdpbj1tMnJ0ZScg Jy1ML2dudS9zdG9yZS81MHY0cXY5NDJqdmZwbjV4c3FyYmI5N2dyeW0xNDBqbC1nbTItZ20yLTEw LWxpYi9saWIvZ2NjL3g4Nl82NC11bmtub3duLWxpbnV4LWdudS8xMC4yLjEvbTIvbTJwaW0nICct TC9nbnUvc3RvcmUvNTB2NHF2OTQyanZmcG41eHNxcmJiOTdncnltMTQwamwtZ20yLWdtMi0xMC1s aWIvbGliL2djYy94ODZfNjQtdW5rbm93bi1saW51eC1nbnUvMTAuMi4xL20yL20ycGltJyAnLXNo YXJlZC1saWJnY2MnICctdicgJy1nJyAnLWZvbmx5bGluaycgJy1tdHVuZT1nZW5lcmljJyAnLW1h cmNoPXg4Ni02NCcKIC9nbnUvc3RvcmUvM3YwYzE4cDd6emZiaTZoenpnYXFwNzN2M2cxa2FmaTIt Z20yLWdtMi0xMC9saWJleGVjL2djYy94ODZfNjQtdW5rbm93bi1saW51eC1nbnUvMTAuMi4xL2dt MmxjYyAtTC9nbnUvc3RvcmUvNTB2NHF2OTQyanZmcG41eHNxcmJiOTdncnltMTQwamwtZ20yLWdt Mi0xMC1saWIvbGliL2djYy94ODZfNjQtdW5rbm93bi1saW51eC1nbnUvMTAuMi4xL20yL20ycGlt IC1ML2dudS9zdG9yZS81MHY0cXY5NDJqdmZwbjV4c3FyYmI5N2dyeW0xNDBqbC1nbTItZ20yLTEw LWxpYi9saWIvZ2NjL3g4Nl82NC11bmtub3duLWxpbnV4LWdudS8xMC4yLjEvbTIvbTJwaW0gLWZ0 YXJnZXQtYXI9L2dudS9zdG9yZS9tMXo3Y2RicXNxeXA5eG5qdzVjdmxiNGE3Z2tjZzNtNC1iaW51 dGlscy0yLjM0L2Jpbi9hciAtZnRhcmdldC1yYW5saWI9L2dudS9zdG9yZS9tMXo3Y2RicXNxeXA5 eG5qdzVjdmxiNGE3Z2tjZzNtNC1iaW51dGlscy0yLjM0L2Jpbi9yYW5saWIgLWZvYmplY3QtcGF0 aD0vZ251L3N0b3JlLzUwdjRxdjk0Mmp2ZnBuNXhzcXJiYjk3Z3J5bTE0MGpsLWdtMi1nbTItMTAt bGliL2xpYi9nY2MveDg2XzY0LXVua25vd24tbGludXgtZ251LzEwLjIuMS9tMi9tMnBpbSAtdiAt LWV4ZWMgLS1zdGFydHVwIC90bXAvY2MycFNWZnlzdGFydC5vIC0tYXIgLW8gL3RtcC9jY2pzWHQ4 QS5hIC0tbWFpbm9iamVjdCBoZWxsby5vIC90bXAvY2NaM21QNXoubHN0CkNPTExFQ1RfR0NDX09Q VElPTlM9Jy1JL2dudS9zdG9yZS81MHY0cXY5NDJqdmZwbjV4c3FyYmI5N2dyeW0xNDBqbC1nbTIt Z20yLTEwLWxpYi9saWIvZ2NjL3g4Nl82NC11bmtub3duLWxpbnV4LWdudS8xMC4yLjEvbTIvbTJw aW0nICctZnRhcmdldC1hcj0vZ251L3N0b3JlL20xejdjZGJxc3F5cDl4bmp3NWN2bGI0YTdna2Nn M200LWJpbnV0aWxzLTIuMzQvYmluL2FyJyAnLWZ0YXJnZXQtcmFubGliPS9nbnUvc3RvcmUvbTF6 N2NkYnFzcXlwOXhuanc1Y3ZsYjRhN2drY2czbTQtYmludXRpbHMtMi4zNC9iaW4vcmFubGliJyAn LWZvYmplY3QtcGF0aD0vZ251L3N0b3JlLzUwdjRxdjk0Mmp2ZnBuNXhzcXJiYjk3Z3J5bTE0MGps LWdtMi1nbTItMTAtbGliL2xpYi9nY2MveDg2XzY0LXVua25vd24tbGludXgtZ251LzEwLjIuMS9t Mi9tMnBpbScgJy14JyAnbW9kdWxhLTInICctZnBsdWdpbj1tMnJ0ZScgJy1ML2dudS9zdG9yZS81 MHY0cXY5NDJqdmZwbjV4c3FyYmI5N2dyeW0xNDBqbC1nbTItZ20yLTEwLWxpYi9saWIvZ2NjL3g4 Nl82NC11bmtub3duLWxpbnV4LWdudS8xMC4yLjEvbTIvbTJwaW0nICctTC9nbnUvc3RvcmUvNTB2 NHF2OTQyanZmcG41eHNxcmJiOTdncnltMTQwamwtZ20yLWdtMi0xMC1saWIvbGliL2djYy94ODZf NjQtdW5rbm93bi1saW51eC1nbnUvMTAuMi4xL20yL20ycGltJyAnLXNoYXJlZC1saWJnY2MnICct dicgJy1nJyAnLWZvbmx5bGluaycgJy1tdHVuZT1nZW5lcmljJyAnLW1hcmNoPXg4Ni02NCcKIHJt IC1mIC90bXAvY2MycFNWZnlzdGFydApDT01QSUxFUl9QQVRIPS9nbnUvc3RvcmUvM3YwYzE4cDd6 emZiaTZoenpnYXFwNzN2M2cxa2FmaTItZ20yLWdtMi0xMC9saWJleGVjL2djYy94ODZfNjQtdW5r bm93bi1saW51eC1nbnUvMTAuMi4xLzovZ251L3N0b3JlLzN2MGMxOHA3enpmYmk2aHp6Z2FxcDcz djNnMWthZmkyLWdtMi1nbTItMTAvbGliZXhlYy9nY2MveDg2XzY0LXVua25vd24tbGludXgtZ251 LzEwLjIuMS86L2dudS9zdG9yZS8zdjBjMThwN3p6ZmJpNmh6emdhcXA3M3YzZzFrYWZpMi1nbTIt Z20yLTEwL2xpYmV4ZWMvZ2NjL3g4Nl82NC11bmtub3duLWxpbnV4LWdudS86L2dudS9zdG9yZS81 MHY0cXY5NDJqdmZwbjV4c3FyYmI5N2dyeW0xNDBqbC1nbTItZ20yLTEwLWxpYi9saWIvZ2NjL3g4 Nl82NC11bmtub3duLWxpbnV4LWdudS8xMC4yLjEvOi9nbnUvc3RvcmUvNTB2NHF2OTQyanZmcG41 eHNxcmJiOTdncnltMTQwamwtZ20yLWdtMi0xMC1saWIvbGliL2djYy94ODZfNjQtdW5rbm93bi1s aW51eC1nbnUvCkxJQlJBUllfUEFUSD0vZ251L3N0b3JlLzUwdjRxdjk0Mmp2ZnBuNXhzcXJiYjk3 Z3J5bTE0MGpsLWdtMi1nbTItMTAtbGliL2xpYi9nY2MveDg2XzY0LXVua25vd24tbGludXgtZ251 LzEwLjIuMS86L2dudS9zdG9yZS81MHY0cXY5NDJqdmZwbjV4c3FyYmI5N2dyeW0xNDBqbC1nbTIt Z20yLTEwLWxpYi9saWIvZ2NjL3g4Nl82NC11bmtub3duLWxpbnV4LWdudS8xMC4yLjEvLi4vLi4v Li4vOi9nbnUvc3RvcmUvZmE2d2o1YnhrajVsbDFkNzI5MmE3MGtubXlsN2EwY3ItZ2xpYmMtMi4z MS9saWIKQ09MTEVDVF9HQ0NfT1BUSU9OUz0nLUkvZ251L3N0b3JlLzUwdjRxdjk0Mmp2ZnBuNXhz cXJiYjk3Z3J5bTE0MGpsLWdtMi1nbTItMTAtbGliL2xpYi9nY2MveDg2XzY0LXVua25vd24tbGlu dXgtZ251LzEwLjIuMS9tMi9tMnBpbScgJy1mdGFyZ2V0LWFyPS9nbnUvc3RvcmUvbTF6N2NkYnFz cXlwOXhuanc1Y3ZsYjRhN2drY2czbTQtYmludXRpbHMtMi4zNC9iaW4vYXInICctZnRhcmdldC1y YW5saWI9L2dudS9zdG9yZS9tMXo3Y2RicXNxeXA5eG5qdzVjdmxiNGE3Z2tjZzNtNC1iaW51dGls cy0yLjM0L2Jpbi9yYW5saWInICctZm9iamVjdC1wYXRoPS9nbnUvc3RvcmUvNTB2NHF2OTQyanZm cG41eHNxcmJiOTdncnltMTQwamwtZ20yLWdtMi0xMC1saWIvbGliL2djYy94ODZfNjQtdW5rbm93 bi1saW51eC1nbnUvMTAuMi4xL20yL20ycGltJyAnLXgnICdtb2R1bGEtMicgJy1mcGx1Z2luPW0y cnRlJyAnLUwvZ251L3N0b3JlLzUwdjRxdjk0Mmp2ZnBuNXhzcXJiYjk3Z3J5bTE0MGpsLWdtMi1n bTItMTAtbGliL2xpYi9nY2MveDg2XzY0LXVua25vd24tbGludXgtZ251LzEwLjIuMS9tMi9tMnBp bScgJy1ML2dudS9zdG9yZS81MHY0cXY5NDJqdmZwbjV4c3FyYmI5N2dyeW0xNDBqbC1nbTItZ20y LTEwLWxpYi9saWIvZ2NjL3g4Nl82NC11bmtub3duLWxpbnV4LWdudS8xMC4yLjEvbTIvbTJwaW0n ICctc2hhcmVkLWxpYmdjYycgJy12JyAnLWcnICctZm9ubHlsaW5rJyAnLW10dW5lPWdlbmVyaWMn ICctbWFyY2g9eDg2LTY0JwogL2dudS9zdG9yZS8zdjBjMThwN3p6ZmJpNmh6emdhcXA3M3YzZzFr YWZpMi1nbTItZ20yLTEwL2xpYmV4ZWMvZ2NjL3g4Nl82NC11bmtub3duLWxpbnV4LWdudS8xMC4y LjEvY29sbGVjdDIgLXBsdWdpbiAvZ251L3N0b3JlLzN2MGMxOHA3enpmYmk2aHp6Z2FxcDczdjNn MWthZmkyLWdtMi1nbTItMTAvbGliZXhlYy9nY2MveDg2XzY0LXVua25vd24tbGludXgtZ251LzEw LjIuMS9saWJsdG9fcGx1Z2luLnNvIC1wbHVnaW4tb3B0PS9nbnUvc3RvcmUvM3YwYzE4cDd6emZi aTZoenpnYXFwNzN2M2cxa2FmaTItZ20yLWdtMi0xMC9saWJleGVjL2djYy94ODZfNjQtdW5rbm93 bi1saW51eC1nbnUvMTAuMi4xL2x0by13cmFwcGVyIC1wbHVnaW4tb3B0PS1mcmVzb2x1dGlvbj0v dG1wL2NjWlVHTzd4LnJlcyAtcGx1Z2luLW9wdD0tcGFzcy10aHJvdWdoPS1sZ2NjX3MgLXBsdWdp bi1vcHQ9LXBhc3MtdGhyb3VnaD0tbGdjYyAtcGx1Z2luLW9wdD0tcGFzcy10aHJvdWdoPS1sZ2Nj X3MgLXBsdWdpbi1vcHQ9LXBhc3MtdGhyb3VnaD0tbGMgLXBsdWdpbi1vcHQ9LXBhc3MtdGhyb3Vn aD0tbGdjY19zIC1wbHVnaW4tb3B0PS1wYXNzLXRocm91Z2g9LWxnY2MgLS1laC1mcmFtZS1oZHIg LW0gZWxmX3g4Nl82NCAtZHluYW1pYy1saW5rZXIgL2dudS9zdG9yZS9mYTZ3ajVieGtqNWxsMWQ3 MjkyYTcwa25teWw3YTBjci1nbGliYy0yLjMxL2xpYi9sZC1saW51eC14ODYtNjQuc28uMiBjcnQx Lm8gY3J0aS5vIC9nbnUvc3RvcmUvNTB2NHF2OTQyanZmcG41eHNxcmJiOTdncnltMTQwamwtZ20y LWdtMi0xMC1saWIvbGliL2djYy94ODZfNjQtdW5rbm93bi1saW51eC1nbnUvMTAuMi4xL2NydGJl Z2luLm8gLUwvZ251L3N0b3JlLzUwdjRxdjk0Mmp2ZnBuNXhzcXJiYjk3Z3J5bTE0MGpsLWdtMi1n bTItMTAtbGliL2xpYi9nY2MveDg2XzY0LXVua25vd24tbGludXgtZ251LzEwLjIuMS9tMi9tMnBp bSAtTC9nbnUvc3RvcmUvNTB2NHF2OTQyanZmcG41eHNxcmJiOTdncnltMTQwamwtZ20yLWdtMi0x MC1saWIvbGliL2djYy94ODZfNjQtdW5rbm93bi1saW51eC1nbnUvMTAuMi4xL20yL20ycGltIC1M L2dudS9zdG9yZS81MHY0cXY5NDJqdmZwbjV4c3FyYmI5N2dyeW0xNDBqbC1nbTItZ20yLTEwLWxp Yi9saWIvZ2NjL3g4Nl82NC11bmtub3duLWxpbnV4LWdudS8xMC4yLjEgLUwvZ251L3N0b3JlLzUw djRxdjk0Mmp2ZnBuNXhzcXJiYjk3Z3J5bTE0MGpsLWdtMi1nbTItMTAtbGliL2xpYi9nY2MveDg2 XzY0LXVua25vd24tbGludXgtZ251LzEwLjIuMS8uLi8uLi8uLiAtTC9nbnUvc3RvcmUvZmE2d2o1 YnhrajVsbDFkNzI5MmE3MGtubXlsN2EwY3ItZ2xpYmMtMi4zMS9saWIgL3RtcC9jY2pzWHQ4QS5h IC1sbTJwaW0gLWxwdGhyZWFkIC1sc3RkYysrIC1sZ2NjX2VoIC1sZ2NjX3MgLWxnY2MgLUwvZ251 L3N0b3JlL2ZhNndqNWJ4a2o1bGwxZDcyOTJhNzBrbm15bDdhMGNyLWdsaWJjLTIuMzEvbGliIC1y cGF0aD0vZ251L3N0b3JlL2ZhNndqNWJ4a2o1bGwxZDcyOTJhNzBrbm15bDdhMGNyLWdsaWJjLTIu MzEvbGliIC1ycGF0aD0vZ251L3N0b3JlLzUwdjRxdjk0Mmp2ZnBuNXhzcXJiYjk3Z3J5bTE0MGps LWdtMi1nbTItMTAtbGliL2xpYiAtbGdjY19zIC1sYyAtbGdjY19zIC1sZ2NjIC9nbnUvc3RvcmUv NTB2NHF2OTQyanZmcG41eHNxcmJiOTdncnltMTQwamwtZ20yLWdtMi0xMC1saWIvbGliL2djYy94 ODZfNjQtdW5rbm93bi1saW51eC1nbnUvMTAuMi4xL2NydGVuZC5vIGNydG4ubwovdXNyL2Jpbi9s ZDogY2Fubm90IGZpbmQgY3J0MS5vOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5Ci91c3IvYmlu L2xkOiBjYW5ub3QgZmluZCBjcnRpLm86IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKY29sbGVj dDI6IGVycm9yOiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVzCg== --=-9tuZ1h532sKj74Z0S2vB-- --=-YsR7up3AtwOJ9Y50pLu9 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- iQHMBAABCgA2FiEEnW3FwBvfXG9gL3NLOZFJfLITP6cFAl/x3oQYHGhvbGdlci5w ZXRlcnNAcG9zdGVvLmRlAAoJEDmRSXyyEz+nI7wL/RgZAxDyeuhSwZHLcWMXlTPE oeyIyi1s+fUkgdWSpZYqFEblJDtA7RwYIrIfl21yMQN6ZDHgTSg8f8jlg0bx+9A/ QC9rn/MPdix2QNLM7XLAXSNjZuHrawhwoC+tnoWfk2OcLYg+nk5NCp6ySGQka04A 7r3jNq2M0cPUFujmwmx8RsS2EQMwmVq8jcDm9+zxzPu/RIS2NPiKT6dOghaErw7q YkRIXYryCZ/APyaGlkMcRbq1Nf6nGo9OIdXz3K/J/bHePgAAnJRsZVQJtTlcYjl0 Z2sLmHK2sw7u1cs3l/xxxzW8jzNZaTp5PcBwWZcbqEFt+XBrMCeia2DhJP7nJRkG j4z085k02ZYp7tHNZPhN8YSUPwI7wwF1fLK3WxlRQ1epTQT1ba1Q73F8LhZ5qhe1 Zc4WVRVZQxj1cF3JtNd91UPfeE02LTzIOO1r9Rg6qgyyu6z9G35R1hizX1y/jhzz MU48khtZ5KXeTsh2WWgQqNvSxuwdQrzEmrqdY6YNaw== =VkLP -----END PGP SIGNATURE----- --=-YsR7up3AtwOJ9Y50pLu9--