X-Loop: help-debbugs@HIDDEN Subject: [bug#34223] Fixing timestamps in archives. Resent-From: Tim Gesthuizen <tim.gesthuizen@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: guix-patches@HIDDEN Resent-Date: Sun, 27 Jan 2019 18:00:02 +0000 Resent-Message-ID: <handler.34223.B.154861194519437 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: report 34223 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: To: ludo@HIDDEN, 34223 <at> debbugs.gnu.org X-Debbugs-Original-To: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>, guix-patches@HIDDEN Received: via spool by submit <at> debbugs.gnu.org id=B.154861194519437 (code B ref -1); Sun, 27 Jan 2019 18:00:02 +0000 Received: (at submit) by debbugs.gnu.org; 27 Jan 2019 17:59:05 +0000 Received: from localhost ([127.0.0.1]:47904 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1gnoi0-00053R-Vs for submit <at> debbugs.gnu.org; Sun, 27 Jan 2019 12:59:05 -0500 Received: from eggs.gnu.org ([209.51.188.92]:44305) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <tim.gesthuizen@HIDDEN>) id 1gnoi0-00052y-3b for submit <at> debbugs.gnu.org; Sun, 27 Jan 2019 12:59:04 -0500 Received: from lists.gnu.org ([209.51.188.17]:36402) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from <tim.gesthuizen@HIDDEN>) id 1gnohu-000333-Cv for submit <at> debbugs.gnu.org; Sun, 27 Jan 2019 12:58:58 -0500 Received: from eggs.gnu.org ([209.51.188.92]:54488) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from <tim.gesthuizen@HIDDEN>) id 1gnohp-00089H-Se for guix-patches@HIDDEN; Sun, 27 Jan 2019 12:58:58 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,FREEMAIL_FROM, RCVD_IN_DNSWL_NONE autolearn=disabled version=3.3.2 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from <tim.gesthuizen@HIDDEN>) id 1gnohn-00030t-6R for guix-patches@HIDDEN; Sun, 27 Jan 2019 12:58:53 -0500 Received: from sonic307-7.consmr.mail.ir2.yahoo.com ([87.248.110.32]:42076) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from <tim.gesthuizen@HIDDEN>) id 1gnohl-0002xi-CP for guix-patches@HIDDEN; Sun, 27 Jan 2019 12:58:51 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.de; s=s2048; t=1548611925; bh=A9c3V1SvWZ6wvYgMoWHsfD2cesuGO89oN6LyuG9q3vs=; h=To:From:Subject:Date:From:Subject; b=ErQwBBLgxibKyy1XylbG06zqwuXQoNQqsmBdVBZZcZTIzsFq/2LdRi6wVRqg6vtKIwMYDeGFJbgVs6zLfEtPfbGVAmqeM1AeFABbs4BAWwbof6OVLaNGMfn7dx9zrtl1g4tGUaPJdlBNOmk1+W+n5T9FBLzIsp7vQnYNFmQ3d8YC5bFy/vXyjyTwznZ/Vu91CcM0CNhLgoYsCClmZeDM4EDRxb1fEvT6+50G0eLTlyv7lK8dYGp9lBgI+FVnFtez/HaOvbJt2M2Rn5CN1KAqoZT/nOwifDu6/iQgNqVoBCYLC+c/Ofv65Gxx360u3buDTbXvYvfC7jDPGs7bHUkNYw== X-YMail-OSG: wCyhyjUVM1m_.wblxMj9BaFHoUmbjsppf8dEw6YLynpy98pRHkRoeXyMMbQUKiC BpmiZIaHf_C492qwb11oY790FyxZq8nV4ZmB2h8MYVMg0JffCzDlR1G6T3OIegQ7DFk9rzfAfxQ7 PMqIr2bBSzW8Hy_G_h3TWjtxx3xFxiIiiDs1D40Auk_.lm.0OeWCF0FjzzsWvJQVHspbGrzag_wS aDEnZ43NIFhUby4BABillQaI2zSZj8vTkkEsaBCsVe94XAR59Vv7Nc6W1kDo6ux09syob2shAvM5 8M9RbQEdlMsKJa.Xx22h5hwI6VJPoCDfV.Sx1QTUAkrHeSu1wXWWbOrEJAyGkv41sJu4kgv5MvXz miSoUNX6McgItO_ZZ6i9eXIz9yTMe1WuZ44lCcKyujCKB2796vuiR9exg0PA1tw28ZU6JZzumQ_o FIHm4ggNCaD247gFnONBgsCiwOT.pUejYMNW4YXRNng58Up8ewwQbX3gz2OIXgrMhwO10YtHi1iN MwU5giWtEiyBXjgkRAz9zTRrEOf69UOBCQJnznMD7_Pov.0mtbN0Vtf3u.uWrlgKsUhYX_pSgnFJ PkpDGMc6Vigz6o4oVjIqGj6LpxxLXjcqCwLMkEm0ILJ.UVrzVCwlZMlGHU4cQL2XtUMHwx_Na7pa ZZTrtx8UQB6kowYOTfM0pETnU2TDe5aQKwvY3wlRJ_40lNHapvtZ0BYbFkRAGwDXEos6xgXz369K 517ffQ3Zc1l9YQq18Q3joWETrKi7XYqeKnxQSblgdgSp0tFMFJUOfE67.NyW3eICyf6lHNQIutxx ytnFPwA_7vOIuBiBKfUGmVza.oUSsnP9D.3cvlwl2dunmB4ml79fwxkm67ADkfKDeEdThMndValk wW5BNCMrsmajJAGJXGco.kW5lR0.Cf5NyDRXNXAZRqKJqEk6YkX1zNxz.qPqAnu9iTKph69_M1iQ yb7qyjNnJZ5_6N8MQGLio6m7Io.JrMLNRIiCwFvDbxYRWEVDhaoxWOoCdFJjyEdHphGSvsOfs.0z w96fPhgc53wYZZbSQA8Qxo5at1fVT1vxhUojEWC4dpG6apOr_AVNSXLYz1O.m2Yz_9Mwj6aj.2g- - Received: from sonic.gate.mail.ne1.yahoo.com by sonic307.consmr.mail.ir2.yahoo.com with HTTP; Sun, 27 Jan 2019 17:58:45 +0000 Received: from p5B221B59.dip0.t-ipconnect.de (EHLO [192.168.178.27]) ([91.34.27.89]) by smtp417.mail.ir2.yahoo.com (Oath Hermes SMTP Server) with ESMTPA ID 9649777654a0ba174d4d3582e7be46eb; Sun, 27 Jan 2019 17:58:42 +0000 (UTC) From: Tim Gesthuizen <tim.gesthuizen@HIDDEN> Openpgp: preference=signencrypt Autocrypt: addr=tim.gesthuizen@HIDDEN; prefer-encrypt=mutual; keydata= mQENBFrE7N0BCAC7s3lBzEf8MPAiqYjlD8Z/9TrwMEy2gLZifF3wTgIFVSOujb5gcceS3I64 qur9lCPJycxzl9dOVOBXycXZNMjSrd1VXsmBoBmR54NOOE526eCwfjkbbNhAJ5hPAwGDOvIs s2xKbIBcqfrdNnHIrZt0ohueX6RxEc6HhVTh79GwUjCaux4Jfs0NfNH+We1hyINqMKnIHQ1D kycgyFj1w0HkJiNNZSgKGNeSvqDA4gV/g9uVy25XQA/hsCBHU1teJiSfM8aVw8PA41eUsl9L pCeCTWjWwW+VQWNs5y4I3ZEpY1CAZ/C9OrbCBzNs1ssAT2aOhV3TNrOUkzPBMbLKwel1ABEB AAG0KFRpbSBHZXN0aHVpemVuIDx0aW0uZ2VzdGh1aXplbkB5YWhvby5kZT6JAVMEEwEIAD4W IQQpSILn7wFEoSuLl9rS5Y9prvsZ1QUCWsTs3QIbAwUJA8JnAAULCQgHAgYVCAkKCwIEFgID AQIeAQIXgAAKCRDS5Y9prvsZ1RzzB/ibvqnUyPlhqiLoDtIXPMGOJizkI+6YVGn5M3egrS2I W3ZHBlJMACNhhBY1dYjnFMmUJluHG0ROyS1MyA5MNf1arQXPGNGZBIJqwnHLEm8v6zhNpb9t V11o+p+Vf6fXOGMZbVYyTD7Nt8sRD3xyovd6YARsRaRWx6Jm1QKvLuade6jGFZKq4j8WSjk1 W9FZs+n845QKE7+6G4SaJZJVw+7nbOCfUtKBsSDf63G9aTFc8i6jJFPpKgu6A1xs/xRiEwqZ KBkF5+rh1JGHne3iSEgPvxxsmfQyLpW2kH7tUgFCAfipLyrz84K+E+yrfaG9zEY8jqV/D9Kt fFvADUZOkt65AQ0EWsTs3QEIAMUmXjZhfhYA5tg3aau8jB2kph2vl9geVGc+PABv90DgHUOW dKnFdXqaABLtR05amEIWKtkkE8U4Ze5FF4R8f2pMMP5QCWf0DUxI6QZ86PhP0jmyfH6QOPpM BxegjHNnD35CQvfn977lzCdZGetx/H05okwC2rlhU7e+XO62pjUjxj8CNQqbC3KGdkzn30Uv gfipAQb369FuCu83MWPWBNjgZ4eBsActr5c2S6/ltCTshkYWD9YSs/MfUyL8YblZ4xy4Nk5L sl8BKAzl16zuoo9q32Fa/L+7S+6RStY5gaBoISlQUXRrdQBuoPO72BRG3xxRpYfHQiHcKsw8 CCqlINcAEQEAAYkBPAQYAQgAJhYhBClIgufvAUShK4uX2tLlj2mu+xnVBQJaxOzdAhsMBQkD wmcAAAoJENLlj2mu+xnV+9QH/1/VcoiqpSJReuMyDAMcYHOrXhKnMLR/rDxTYn4oBNrGDXh+ vMbMJtxHpaNiFrzkd+QOWc0MU15cJRqCx2hSZNfJDaPEoHSwUs++gFSqaIkS/dLQ0LTL/DBp jKsed8FfV8Ubv/M0AoD8cixAmJLnxlt3G1gLBBkAlv0F53bIdAGJMBJZsZ+1HmzFazknGIR0 LgHZ28PK/QWPwE5gRkIzwTD+hrKJjGcBMach2ZbcAvo47rrRYW1ukbN6L1L5mvTSCh2Gitgp ewig0IiavSVkL3uWpPvAqmr9N9zk/qrHk1EgV+hzNriJhUitpMgrgZQfHYRm4LIhsmJm9TOT N3SWwT0= Message-ID: <e13090c1-dabb-da63-cc62-3975f2697527@HIDDEN> Date: Sun, 27 Jan 2019 18:58:38 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.4.0 MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="QAiz8FO8ESrYfRlDkSBJGmM6F1ffwrZ40" X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 87.248.110.32 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --QAiz8FO8ESrYfRlDkSBJGmM6F1ffwrZ40 Content-Type: multipart/mixed; boundary="LCLJhGdLPd2ALh0lbweIsdLYMXZ9LYkgc"; protected-headers="v1" From: Tim Gesthuizen <tim.gesthuizen@HIDDEN> To: =?UTF-8?Q?Ludovic_Court=c3=a8s?= <ludo@HIDDEN>, guix-patches@HIDDEN Message-ID: <e13090c1-dabb-da63-cc62-3975f2697527@HIDDEN> Subject: Fixing timestamps in archives. --LCLJhGdLPd2ALh0lbweIsdLYMXZ9LYkgc Content-Type: multipart/mixed; boundary="------------FC63667E872AFF73A076AEF5" Content-Language: en-US This is a multi-part message in MIME format. --------------FC63667E872AFF73A076AEF5 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Hi Ludo, as discussed before I have looked into the problems of timestamps in the zip files. I looked at the way this is solved in ant-build-system with jar files and thought that this could be done in a more elegant way. Because of this I wrote a simple frontend for LibArchive in C that repacks archives and sets their timestamps to zero and disables compression as it is done in the ant-build-system. Creative as I am the program is called repack. You find a git repository attached with the history of the repack program= =2E The attached patches add repack to Guix and use it for pwsafe and the ant-build-system. This is a work in progress version: If you like these changes I will work on missing details so that we can add it, otherwise now would be a good point to stop development on these changes. I can still fall back to the variant that ant-build-system uses now for pwsafe. It would be nice if you could find the time to review everything and tell me what you think about the patches. The changes trigger a lot of rebuilds so it will take some time to build dependencies of the required programs. The repack tar contains a bare git repository with the program. Because I could not yet find a place to host the repository you need to unpack it somewhere, create an archive with the source code and change the guix definition of repack to use that source. Tim. --------------FC63667E872AFF73A076AEF5 Content-Type: text/x-patch; name="0001-gnu-Add-repack.patch" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="0001-gnu-Add-repack.patch" =46rom fe500f0ba03aebc3e0020d974f1266c00001d64e Mon Sep 17 00:00:00 2001 From: Tim Gesthuizen <tim.gesthuizen@HIDDEN> Date: Thu, 17 Jan 2019 20:37:39 +0100 Subject: [PATCH 01/11] gnu: Add repack * gnu/packages/compression.scm (repack): New variable. --- gnu/packages/compression.scm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm index 327951fde..837fca477 100644 --- a/gnu/packages/compression.scm +++ b/gnu/packages/compression.scm @@ -23,6 +23,7 @@ ;;; Copyright =C2=A9 2018 Rutger Helling <rhelling@HIDDEN> ;;; Copyright =C2=A9 2018 Joshua Sierles, Nextjournal <joshua@nextjourna= l.com> ;;; Copyright =C2=A9 2018 Pierre Neidhardt <mail@HIDDEN> +;;; Copyright =C2=A9 2019 Tim Gesthuizen <tim.gesthuizen@HIDDEN> ;;; ;;; This file is part of GNU Guix. ;;; @@ -44,6 +45,7 @@ #:use-module (guix utils) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix gexp) #:use-module (guix git-download) #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) @@ -60,6 +62,7 @@ #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) + #:use-module (gnu packages texinfo) #:use-module (gnu packages tls) #:use-module (gnu packages valgrind) #:use-module (ice-9 match) @@ -1422,6 +1425,22 @@ Compression ratios of 2:1 to 3:1 are common for te= xt files.") (license (license:non-copyleft "file://LICENSE" "See LICENSE in the distribution.")))= ) =20 +(define-public repack + (package + (name "repack") + (version "0.1") + (source (local-file "/home/tibbe/src/repack.tar.gz")) + (build-system cmake-build-system) + (arguments `(#:tests? #f)) + (native-inputs + `(("texinfo" ,texinfo))) + (inputs + `(("libarchive" ,libarchive))) + (home-page #f) + (synopsis "Repack archives to not include time stamps or compression= =2E") + (description #f) + (license license:gpl3+))) + (define-public unzip (package (inherit zip) (name "unzip") --=20 2.20.1 --------------FC63667E872AFF73A076AEF5 Content-Type: text/x-patch; name="0002-guix-utils-Add-repack-archives.patch" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="0002-guix-utils-Add-repack-archives.patch" =46rom 394b939ed84154c203c614c23e4f6bc2df17613c Mon Sep 17 00:00:00 2001 From: Tim Gesthuizen <tim.gesthuizen@HIDDEN> Date: Sat, 19 Jan 2019 16:58:34 +0100 Subject: [PATCH 02/11] guix: utils: Add repack-archives Add a function that repacks all archives in a certain directory to be reproduceably buildable. * guix/build/utils.scm (repack-archives): New function. --- guix/build/utils.scm | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/guix/build/utils.scm b/guix/build/utils.scm index 5fe328684..3ca72299a 100644 --- a/guix/build/utils.scm +++ b/guix/build/utils.scm @@ -3,6 +3,7 @@ ;;; Copyright =C2=A9 2013 Andreas Enge <andreas@HIDDEN> ;;; Copyright =C2=A9 2013 Nikita Karetnikov <nikita@HIDDEN> ;;; Copyright =C2=A9 2015, 2018 Mark H Weaver <mhw@HIDDEN> +;;; Copyright =C2=A9 2019 Tim Gesthuizen <tim.gesthuizen@HIDDEN> ;;; ;;; This file is part of GNU Guix. ;;; @@ -88,6 +89,7 @@ fold-port-matches remove-store-references wrap-program + repack-archives =20 invoke invoke-error? @@ -1100,6 +1102,15 @@ with definitions for VARS." (chmod prog-tmp #o755) (rename-file prog-tmp prog)))) =20 +(define (repack-archives root regex) + "Repack all archives under ROOT that match REGEX using the repack prog= ram." + (define (repack-archive jar) + (format #t "repacking ~a\n" jar) + (let* ((tmp (tmpnam))) + (copy-file jar tmp) + (invoke "repack" "-o" jar tmp))) + (for-each repack-archive (find-files root regex))) + =0C ;;; ;;; Locales. --=20 2.20.1 --------------FC63667E872AFF73A076AEF5 Content-Type: text/x-patch; name="0003-gnu-pwsafe-Remove-timestamps-from-zip-files.patch" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="0003-gnu-pwsafe-Remove-timestamps-from-zip-files.patch" =46rom bd552a577fb7dbe1233b366c95d1741754fbea33 Mon Sep 17 00:00:00 2001 From: Tim Gesthuizen <tim.gesthuizen@HIDDEN> Date: Thu, 17 Jan 2019 20:38:10 +0100 Subject: [PATCH 03/11] gnu: pwsafe: Remove timestamps from zip files * gnu/packages/password-utils.scm (pwsafe): [native-inputs]: Add repack. [arguments]: Add modules and a phase to strip timestamps from the zip fil= es. --- gnu/packages/password-utils.scm | 38 +++++++++++++++++++++++++++++---- 1 file changed, 34 insertions(+), 4 deletions(-) diff --git a/gnu/packages/password-utils.scm b/gnu/packages/password-util= s.scm index 5b60ad9cc..47fb9dccb 100644 --- a/gnu/packages/password-utils.scm +++ b/gnu/packages/password-utils.scm @@ -21,7 +21,7 @@ ;;; Copyright =C2=A9 2018 Arun Isaac <arunisaac@HIDDEN> ;;; Copyright =C2=A9 2018 Pierre Neidhardt <mail@HIDDEN> ;;; Copyright =C2=A9 2018 Amirouche Boubekki <amirouche@HIDDEN> -;;; Copyright =C2=A9 2018 Tim Gesthuizen <tim.gesthuizen@HIDDEN> +;;; Copyright =C2=A9 2018, 2019 Tim Gesthuizen <tim.gesthuizen@HIDDEN>= ;;; ;;; This file is part of GNU Guix. ;;; @@ -190,7 +190,8 @@ algorithms AES or Twofish.") (build-system cmake-build-system) (native-inputs `(("gettext" ,gettext-minimal) ("perl" ,perl) - ("zip" ,zip))) + ("zip" ,zip) + ("repack" ,repack))) (inputs `(("curl" ,curl) ("file" ,file) ("gtest" ,googletest) @@ -201,7 +202,11 @@ algorithms AES or Twofish.") ("qrencode" ,qrencode) ("wxwidgets" ,wxwidgets) ("xerces-c" ,xerces-c))) - (arguments '(#:configure-flags (list "-DNO_GTEST=3DYES") + (arguments `(#:configure-flags (list "-DNO_GTEST=3DYES") + #:modules ((guix build cmake-build-system) + (guix build utils) + (ice-9 regex) + (ice-9 ftw)) #:phases (modify-phases %standard-phases (add-after 'unpack 'add-gtest (lambda* (#:key inputs #:allow-other-keys)= @@ -219,7 +224,32 @@ add_subdirectory(src/test)\n" cmake-port) (("/usr/bin/file") (string-append (assoc-ref inputs "fil= e") "/bin/file"))) - #t))))) + #t)) + (add-after 'install 'fix-zip-timestamps + (lambda* (#:key outputs inputs + #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (repack (string-append + (assoc-ref inputs "repack= ") + "/bin/repack"))) + (with-directory-excursion out + (file-system-fold + (const #t) + (lambda (path stat result) + (when (string-match "^.*\\.zip$" + (basename pat= h)) + (let ((tmp (tmpnam))) + (format #t "Repacking ~s\n" pa= th) + (copy-file path tmp) + (invoke repack + "-o" path + tmp)))) + (const #t) + (const #t) + (const #t) + (lambda _ (throw 'file-system-error= )) + #t ".")) + #t)))))) (synopsis "Password safe with automatic input and key generation") (description "pwsafe is a password manager originally designed by Br= uce Schneier. It offers a simple UI to manage passwords for different servi= ces. --=20 2.20.1 --------------FC63667E872AFF73A076AEF5 Content-Type: text/x-patch; name="0004-guix-ant-Use-repack.patch" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="0004-guix-ant-Use-repack.patch" =46rom ed9db022d4e2ea9b6f1151fbc2785014b2a1bd8e Mon Sep 17 00:00:00 2001 From: Tim Gesthuizen <tim.gesthuizen@HIDDEN> Date: Thu, 17 Jan 2019 22:49:46 +0100 Subject: [PATCH 04/11] guix: ant: Use repack * guix/build-system/ant.scm (default-zip): Deleted. * guix/build-system/ant.scm (lower): Change zip to repack. * guix/build/ant-build-system.scm (strip-jar-timestamps): Use repack for repack-archive. --- guix/build-system/ant.scm | 16 ++++++++-------- guix/build/ant-build-system.scm | 32 ++++---------------------------- 2 files changed, 12 insertions(+), 36 deletions(-) diff --git a/guix/build-system/ant.scm b/guix/build-system/ant.scm index b5626bd42..a4aa90eb8 100644 --- a/guix/build-system/ant.scm +++ b/guix/build-system/ant.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright =C2=A9 2016 Ricardo Wurmus <rekado@HIDDEN> +;;; Copyright =C2=A9 2019 Tim Gesthuizen <tim.gesthuizen@HIDDEN> ;;; ;;; This file is part of GNU Guix. ;;; @@ -55,22 +56,21 @@ (let ((jdk-mod (resolve-interface '(gnu packages java)))) (module-ref jdk-mod 'ant))) =20 -(define (default-zip) - "Return the default ZIP package." - ;; Lazily resolve the binding to avoid a circular dependency. - (let ((zip-mod (resolve-interface '(gnu packages compression)))) - (module-ref zip-mod 'zip))) +(define (default-repack) + "Return the default REPACK package" + (let ((repack-mod (resolve-interface '(gnu packages compression)))) + (module-ref repack-mod 'repack))) =20 (define* (lower name #:key source inputs native-inputs outputs system target (jdk (default-jdk)) (ant (default-ant)) - (zip (default-zip)) + (repack (default-repack)) #:allow-other-keys #:rest arguments) "Return a bag for NAME." (define private-keywords - '(#:source #:target #:jdk #:ant #:zip #:inputs #:native-inputs)) + '(#:source #:target #:jdk #:ant #:repack #:inputs #:native-inputs)) =20 (and (not target) ;XXX: no cross-compila= tion (bag @@ -85,7 +85,7 @@ ,@(standard-packages))) (build-inputs `(("jdk" ,jdk "jdk") ("ant" ,ant) - ("zip" ,zip) + ("repack" ,repack) ,@native-inputs)) (outputs outputs) (build ant-build) diff --git a/guix/build/ant-build-system.scm b/guix/build/ant-build-syste= m.scm index d79a2d55e..540c985b7 100644 --- a/guix/build/ant-build-system.scm +++ b/guix/build/ant-build-system.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright =C2=A9 2016, 2018 Ricardo Wurmus <rekado@HIDDEN> +;;; Copyright =C2=A9 2019 Tim Gesthuizen <tim.gesthuizen@HIDDEN> ;;; ;;; This file is part of GNU Guix. ;;; @@ -191,34 +192,9 @@ dependencies of this jar file." repack them. This is necessary to ensure that archives are reproducible= =2E" (define (repack-archive jar) (format #t "repacking ~a\n" jar) - (let* ((dir (mkdtemp! "jar-contents.XXXXXX")) - (manifest (string-append dir "/META-INF/MANIFEST.MF"))) - (with-directory-excursion dir - (invoke "jar" "xf" jar)) - (delete-file jar) - ;; XXX: copied from (gnu build install) - (for-each (lambda (file) - (let ((s (lstat file))) - (unless (eq? (stat:type s) 'symlink) - (utime file 0 0 0 0)))) - (find-files dir #:directories? #t)) - - ;; The jar tool will always set the timestamp on the manifest file= - ;; and the containing directory to the current time, even when we - ;; reuse an existing manifest file. To avoid this we use "zip" - ;; instead of "jar". It is important that the manifest appears - ;; first. - (with-directory-excursion dir - (let* ((files (find-files "." ".*" #:directories? #t)) - ;; To ensure that the reference scanner can detect all - ;; store references in the jars we disable compression - ;; with the "-0" option. - (command (if (file-exists? manifest) - `("zip" "-0" "-X" ,jar ,manifest ,@files) - `("zip" "-0" "-X" ,jar ,@files)))) - (apply invoke command))) - (utime jar 0 0) - #t)) + (let* ((tmp (tmpnam))) + (copy-file jar tmp) + (invoke "repack" "-o" jar tmp))) =20 (for-each (match-lambda ((output . directory) --=20 2.20.1 --------------FC63667E872AFF73A076AEF5 Content-Type: text/x-patch; name="0005-guix-ant-build-system-Use-repack-archives.patch" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="0005-guix-ant-build-system-Use-repack-archives.patch" =46rom 9d5ac721b396c5642825deda48e2ef9da1d55597 Mon Sep 17 00:00:00 2001 From: Tim Gesthuizen <tim.gesthuizen@HIDDEN> Date: Sat, 19 Jan 2019 17:02:31 +0100 Subject: [PATCH 05/11] guix: ant-build-system: Use repack-archives * guix/build/ant-build-system.scm (strip-jar-timestamps): Use repack-arch= ives instead of own implementation. --- guix/build/ant-build-system.scm | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/guix/build/ant-build-system.scm b/guix/build/ant-build-syste= m.scm index 540c985b7..7d639f492 100644 --- a/guix/build/ant-build-system.scm +++ b/guix/build/ant-build-system.scm @@ -190,15 +190,9 @@ dependencies of this jar file." #:allow-other-keys) "Unpack all jar archives, reset the timestamp of all contained files, = and repack them. This is necessary to ensure that archives are reproducible= =2E" - (define (repack-archive jar) - (format #t "repacking ~a\n" jar) - (let* ((tmp (tmpnam))) - (copy-file jar tmp) - (invoke "repack" "-o" jar tmp))) - (for-each (match-lambda ((output . directory) - (for-each repack-archive (find-files directory "\\.jar$")= ))) + (repack-archives directory "\\.jar$"))) outputs) #t) =20 --=20 2.20.1 --------------FC63667E872AFF73A076AEF5 Content-Type: text/x-patch; name="0006-gnu-ant-bootstrap-Use-strip-jar-timestamps.patch" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="0006-gnu-ant-bootstrap-Use-strip-jar-timestamps.patch" =46rom 77d6222ceb26838da63dd0e73013245157e25d40 Mon Sep 17 00:00:00 2001 From: Tim Gesthuizen <tim.gesthuizen@HIDDEN> Date: Thu, 17 Jan 2019 22:51:10 +0100 Subject: [PATCH 06/11] gnu: ant-bootstrap: Use strip-jar-timestamps * gnu/packages/java.scm (ant-bootstrap): [arguments]: Use build phase from ant-build-system. --- gnu/packages/java.scm | 37 ++++++------------------------------- 1 file changed, 6 insertions(+), 31 deletions(-) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 163c29627..dd7abfaf3 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -10,6 +10,7 @@ ;;; Copyright =C2=A9 2018 G=C3=A1bor Boskovits <boskovits@HIDDEN> ;;; Copyright =C2=A9 2018 Chris Marusich <cmmarusich@HIDDEN> ;;; Copyright =C2=A9 2018 Efraim Flashner <efraim@HIDDEN> +;;; Copyright =C2=A9 2019 Tim Gesthuizen <tim.gesthuizen@HIDDEN> ;;; ;;; This file is part of GNU Guix. ;;; @@ -217,9 +218,11 @@ JNI.") (build-system gnu-build-system) (arguments `(#:imported-modules ((guix build syscalls) + (guix build ant-build-system) ,@%gnu-build-system-modules) #:modules ((srfi srfi-1) (guix build gnu-build-system) + ((guix build ant-build-system) #:prefix ant:) (guix build utils) (guix build syscalls)) #:tests? #f ; no "check" target @@ -267,42 +270,14 @@ JNI.") (invoke "bash" "bootstrap.sh" (string-append "-Ddist.dir=3D" (assoc-ref %outputs "out"))))) - (add-after 'build 'strip-jar-timestamps ;based on ant-build-sys= tem - (lambda* (#:key outputs #:allow-other-keys) - (define (repack-archive jar) - (let* ((dir (mkdtemp! "jar-contents.XXXXXX")) - (manifest (string-append dir "/META-INF/MANIFESTS.= MF"))) - (with-directory-excursion dir - (invoke "unzip" jar)) - (delete-file jar) - ;; XXX: copied from (gnu build install) - (for-each (lambda (file) - (let ((s (lstat file))) - (unless (eq? (stat:type s) 'symlink) - (utime file 0 0 0 0)))) - (find-files dir #:directories? #t)) - ;; It is important that the manifest appears first. - (with-directory-excursion dir - (let* ((files (find-files "." ".*" #:directories? #t)= ) - ;; To ensure that the reference scanner can - ;; detect all store references in the jars - ;; we disable compression with the "-0" option= =2E - (command (if (file-exists? manifest) - `("zip" "-0" "-X" ,jar ,manifest - ,@files) - `("zip" "-0" "-X" ,jar ,@files)))= ) - (apply invoke command))))) - (for-each repack-archive - (find-files - (string-append (assoc-ref %outputs "out") "/lib") - "\\.jar$")) - #t)) + (add-after 'build 'strip-jar-timestamps + (assoc-ref ant:%standard-phases 'strip-jar-timestamps= )) (delete 'install)))) (native-inputs `(("jikes" ,jikes) ("jamvm" ,jamvm-1-bootstrap) ("unzip" ,unzip) - ("zip" ,zip))) + ("repack" ,repack))) (home-page "http://ant.apache.org") (synopsis "Build tool for Java") (description --=20 2.20.1 --------------FC63667E872AFF73A076AEF5 Content-Type: text/x-patch; name="0007-gnu-icedtea-8-Use-repack.patch" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="0007-gnu-icedtea-8-Use-repack.patch" =46rom 05b4bc707afc976eef9d04e93ae38f700971e3d6 Mon Sep 17 00:00:00 2001 From: Tim Gesthuizen <tim.gesthuizen@HIDDEN> Date: Sat, 19 Jan 2019 16:19:42 +0100 Subject: [PATCH 07/11] gnu: icedtea-8: Use repack * gnu/packages/java.scm (icedtea-8): [native-inputs]: Use repack --- gnu/packages/java.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index dd7abfaf3..4211e9a1e 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -1606,7 +1606,8 @@ new Date();")) (add-after 'install 'strip-jar-timestamps (assoc-ref ant:%standard-phases 'strip-jar-timestamps= ))))))) (native-inputs - `(("jdk" ,icedtea-7 "jdk") + `(("repack" ,repack) + ("jdk" ,icedtea-7 "jdk") ("openjdk-src" ,(drop "openjdk" "1mj6xgmw31i6qd30qi9dmv7160fbcfq5ikz1jwjihdg2793il19p")= ) --=20 2.20.1 --------------FC63667E872AFF73A076AEF5 Content-Type: text/x-patch; name="0008-gnu-openjdk9-Use-repack-for-repacking-zips.patch" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="0008-gnu-openjdk9-Use-repack-for-repacking-zips.patch" =46rom 8dfda0f40e3419fcbd5702f54acec1f4121a6e6b Mon Sep 17 00:00:00 2001 From: Tim Gesthuizen <tim.gesthuizen@HIDDEN> Date: Sat, 19 Jan 2019 17:08:52 +0100 Subject: [PATCH 08/11] gnu: openjdk9: Use repack for repacking zips * gnu/packages/java.scm (openjdk9): [native-inputs]: Remove zip and unzip in favour of repack. [phases]: Rewrite strip-zip-timestamps to use repack. --- gnu/packages/java.scm | 23 +++++------------------ 1 file changed, 5 insertions(+), 18 deletions(-) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 4211e9a1e..a6095f8e7 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -1738,22 +1738,8 @@ new Date();")) #t)) (add-after 'install 'strip-zip-timestamps (lambda* (#:key outputs #:allow-other-keys) - (use-modules (guix build syscalls)) - (for-each (lambda (zip) - (let ((dir (mkdtemp! "zip-contents.XXXXXX"))) - (with-directory-excursion dir - (invoke "unzip" zip)) - (delete-file zip) - (for-each (lambda (file) - (let ((s (lstat file))) - (unless (eq? (stat:type s) 'sym= link) - (format #t "reset ~a~%" file)= - (utime file 0 0 0 0)))) - (find-files dir #:directories? #t)) - (with-directory-excursion dir - (let ((files (find-files "." ".*" #:directo= ries? #t))) - (apply invoke "zip" "-0" "-X" zip files))= ))) - (find-files (assoc-ref outputs "doc") ".*.zip$")) + (repack-archives (assoc-ref outputs "doc") + ".*.zip$") #t))))) (inputs `(("alsa-lib" ,alsa-lib) @@ -1776,9 +1762,10 @@ new Date();")) (native-inputs `(("icedtea-8" ,icedtea-8) ("icedtea-8:jdk" ,icedtea-8 "jdk") + ("zip" ,zip) ("unzip" ,unzip) - ("which" ,which) - ("zip" ,zip))) + ("repack" ,repack) + ("which" ,which))) (home-page "https://openjdk.java.net/projects/jdk9/") (synopsis "Java development kit") (description --=20 2.20.1 --------------FC63667E872AFF73A076AEF5 Content-Type: text/x-patch; name="0009-gnu-openjdk-Use-repack-for-repacking-zips.patch" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="0009-gnu-openjdk-Use-repack-for-repacking-zips.patch" =46rom e38f60d43402c13958b73558a75bc1b7538bb46e Mon Sep 17 00:00:00 2001 From: Tim Gesthuizen <tim.gesthuizen@HIDDEN> Date: Sat, 19 Jan 2019 17:10:45 +0100 Subject: [PATCH 09/11] gnu: openjdk: Use repack for repacking zips * gnu/packages/java.scm (openjdk-10): [native-inputs]: Use repack in favour of zip and unzip. --- gnu/packages/java.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index a6095f8e7..775c69e0f 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -1819,9 +1819,10 @@ new Date();")) (native-inputs `(("openjdk9" ,openjdk9) ("openjdk9:jdk" ,openjdk9 "jdk") + ("zip" ,zip) ("unzip" ,unzip) - ("which" ,which) - ("zip" ,zip))))) + ("repack" ,repack) + ("which" ,which))))) =20 (define-public icedtea icedtea-8) =20 --=20 2.20.1 --------------FC63667E872AFF73A076AEF5 Content-Type: text/x-patch; name="0010-gnu-ant-java8-Use-repack-for-repacking-archives.patch" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename*0="0010-gnu-ant-java8-Use-repack-for-repacking-archives.patch" =46rom 389dd6ab4cba29df667179c7c943836e2d149537 Mon Sep 17 00:00:00 2001 From: Tim Gesthuizen <tim.gesthuizen@HIDDEN> Date: Sat, 19 Jan 2019 17:12:24 +0100 Subject: [PATCH 10/11] gnu: ant/java8: Use repack for repacking archives * gnu/packages/java.scm (ant/java8): [native-inputs]: Use repack in favour of zip and unzip. --- gnu/packages/java.scm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 775c69e0f..ad61bf294 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -1871,8 +1871,7 @@ new Date();")) (assoc-ref outputs "out"))))))))) (native-inputs `(("jdk" ,icedtea-8 "jdk") - ("zip" ,zip) - ("unzip" ,unzip))))) + ("repack" ,repack))))) =20 ;; The 1.9.x series is the last that can be built with GCJ. The 1.10.x = series ;; requires Java 8. --=20 2.20.1 --------------FC63667E872AFF73A076AEF5 Content-Type: text/x-patch; name="0011-gnu-ant-Use-repack-for-repacking-archives.patch" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="0011-gnu-ant-Use-repack-for-repacking-archives.patch" =46rom 3df6e33f52ac2906ec98cc9b74ef93d9cbb22108 Mon Sep 17 00:00:00 2001 From: Tim Gesthuizen <tim.gesthuizen@HIDDEN> Date: Sat, 19 Jan 2019 17:13:45 +0100 Subject: [PATCH 11/11] gnu: ant: Use repack for repacking archives * gnu/packages/java.scm (ant): [native-inputs]: Use repack in favour of zip and unzip. --- gnu/packages/java.scm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index ad61bf294..0002c1f83 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -1887,8 +1887,7 @@ new Date();")) "1k28mka0m3isy9yr8gz84kz1f3f879rwaxrd44vdn9xbfwvwk86n"))= )) (native-inputs `(("jdk" ,icedtea-7 "jdk") - ("zip" ,zip) - ("unzip" ,unzip))))) + ("repack" ,repack))))) =20 (define-public ant-apache-bcel (package --=20 2.20.1 --------------FC63667E872AFF73A076AEF5 Content-Type: application/x-xz; name="repack.tar.xz" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="repack.tar.xz" cmVwYWNrLmdpdC8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMDA3NTUA MDAwMTc1MAAwMDAxNzUwADAwMDAwMDAwMDAwADEzNDIzMzcwMDEyADAxMjAzNAAgNQAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAHRpYmJl AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdGliYmUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAByZXBhY2suZ2l0L2Rlc2NyaXB0aW9uAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAMDAwMDY0NAAwMDAxNzUwADAwMDE3NTAAMDAwMDAwMDAxMTEA MTM0MjMzNjc3NTQAMDE0MzE2ACAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAHVzdGFyICAAdGliYmUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0 aWJiZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFVu bmFtZWQgcmVwb3NpdG9yeTsgZWRpdCB0aGlzIGZpbGUgJ2Rlc2NyaXB0aW9uJyB0byBuYW1l IHRoZSByZXBvc2l0b3J5LgoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcmVwYWNrLmdpdC9jb25maWcAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAADAwMDA2NDQAMDAwMTc1MAAwMDAxNzUwADAwMDAwMDAwMTAyADEz NDIzMzY3NzU0ADAxMzI0MAAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAB1c3RhciAgAHRpYmJlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdGli YmUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABbY29y ZV0KCXJlcG9zaXRvcnlmb3JtYXR2ZXJzaW9uID0gMAoJZmlsZW1vZGUgPSB0cnVlCgliYXJl ID0gdHJ1ZQoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAHJlcGFjay5naXQvYnJhbmNoZXMvAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAwMDAwNzU1ADAwMDE3NTAAMDAwMTc1MAAwMDAwMDAwMDAwMAAxMzQy MzM2Nzc1NAAwMTM2NDQAIDUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAdXN0YXIgIAB0aWJiZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHRpYmJl AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcmVwYWNr LmdpdC9vYmplY3RzLwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMDA3NTUAMDAwMTc1 MAAwMDAxNzUwADAwMDAwMDAwMDAwADEzNDIzMzcwMDEyADAxMzQ2NQAgNQAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAHRpYmJlAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAdGliYmUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAByZXBhY2suZ2l0L29iamVjdHMvOTIvAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAMDAwMDc1NQAwMDAxNzUwADAwMDE3NTAAMDAwMDAwMDAwMDAAMTM0MjMz NzAwMTIAMDEzNzE3ACA1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAHVzdGFyICAAdGliYmUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0aWJiZQAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHJlcGFjay5n aXQvb2JqZWN0cy85Mi9mOGMxMjU1MWI2MGU0NWNiMWJjMGQzNThkNzEyNzA0MjI5ODYzOQAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAwNDQ0ADAwMDE3NTAA MDAwMTc1MAAwMDAwMDAwMDE3MAAxMzQyMzM3MDAxMgAwMjA1NDEAIDAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIAB0aWJiZQAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAHRpYmJlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAeAErKUpNVTA0NGQwNDAwMzFRcPZNzE71ySwuKdYrqShhaK+8 zJoi9CL186QfgimLpj2yf/fkPUylf0Ckp587w5SVb5l8LSIrzSRE9ZZGLszYfXrrI6iS3MTM PL1khvfKHnnztoonu334L6djrHXWfgfDTwBkby4LAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAByZXBhY2suZ2l0 L29iamVjdHMvNjUvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwMDc1NQAwMDAxNzUwADAw MDE3NTAAMDAwMDAwMDAwMDAAMTM0MjMzNzAwMTIAMDEzNzE3ACA1AAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyICAAdGliYmUAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAB0aWJiZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAHJlcGFjay5naXQvb2JqZWN0cy82NS81NDU0ZWY3MzlkNTI2NWRm YjExMjUyMjRkYzlmMzRhMDc1Y2U1MwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAwMDAwNDQ0ADAwMDE3NTAAMDAwMTc1MAAwMDAwMDAwMDIzNQAxMzQyMzM3MDAx MgAwMjA3MTQAIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAdXN0YXIgIAB0aWJiZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHRpYmJlAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAErKUpNVTA0NWIw NDAwMzFR0EvOScxL103LL8pNLGHY/E5HzfhFBJetTEtklv6Uc2efRWtCFTr7Jman+mQWlxTr lVSUMLRXXmZNEXqR+nnSD8GURdMe2b978h6m0j8g0tPPnWHKyrdMvhaRlWYSonpLIxdm7D69 9RFUSW5iZp5eMsME23zTtFDWg6pbXM/MOJkz5+2D5Z0AYPk+NAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAByZXBhY2suZ2l0L29iamVjdHMvNDUvAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAMDAwMDc1NQAwMDAxNzUwADAwMDE3NTAAMDAwMDAwMDAwMDAAMTM0MjMzNzAwMTIA MDEzNzE1ACA1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AHVzdGFyICAAdGliYmUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0aWJiZQAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHJlcGFjay5naXQvb2Jq ZWN0cy80NS8yZTE3ZDNkYzUzM2JjOGI4MDY4NGVkOWZmZjIzYjgxZjExODY0ZQAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAwNDQ0ADAwMDE3NTAAMDAwMTc1 MAAwMDAwMDAwMDY1MwAxMzQyMzM3MDAxMgAwMjExNDUAIDAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIAB0aWJiZQAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAHRpYmJlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAeAGFUk1z1DAM5Rr9CjX1MHBg04aPATruDf7G1rHlRrOJHRyn7SzDf8d2 tmUDB3KIJfnp6clSN/gOP199eXV50XTsmrkHCMoZP+4NPbAm2aSzWdYYdIPXh5mPJNuPn0D7 xUX5AThSUJG9m2V7BTAeDAe0y/EI2qwnZG9/T44C6zdv4Sdg+pwaSYrrYms/jqmuFG1x6SlK 8X41de+x/p4I2N2jyEmogu75gea6IKwPyMgO72b6geKPnLsbNB4qY5CtFJu+0FsZaY7YzVK8 tIVrS6IceFt6d8swYHv7+hqqFC8qMWfuRBJZLKjmgWjCFi9xVAfCeQmEsVfpuk8Gjwmuxgkf OVF1hIatpUAu/kXZnnPudk2gSenDWbV3vjj7QPMyrAqg2gJPHCdku4WyxQvUSUlu4PyqBDbg m6zdQZUHRWUE30Lw4SueRPklTks8tZIGsQKfOGJ6KMtlMMY7+u8M85sPBp2PaNkZpFwmEf6C zdZgHVWoyx+1XY0a4MjT/jGoaaLwsld5O573yvKQdmxdqjCiyHdFUkpcPRQZ82+5BKjxjB7r HIHfFKMHAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAByZXBhY2suZ2l0L29iamVj dHMvN2YvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwMDc1NQAwMDAxNzUwADAwMDE3NTAA MDAwMDAwMDAwMDAAMTM0MjMzNzAwMTIAMDE0MDAxACA1AAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyICAAdGliYmUAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAB0aWJiZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAHJlcGFjay5naXQvb2JqZWN0cy83Zi8xNDgzNzVlYmEyMGU4ZjM0NTFkYjM4 NTFlNmQ0NDI4NjM1NzVhZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAwMDAwNDQ0ADAwMDE3NTAAMDAwMTc1MAAwMDAwMDAwMDQyNgAxMzQyMzM3MDAxMgAwMjA3 MjEAIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0 YXIgIAB0aWJiZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHRpYmJlAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 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 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIAB0 aWJiZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHRpYmJlAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAGlkM1KQzEQhV3nKWatcMnvTSoiLS7c 6M4XmCaTNrTJLblTEJ/e6EJx7fLA+Q4fJy61Fgaj9Q13IrBh9sokRS4F5ZSUuIlWkrHeoVN5 zmi0RJLigp0ag8/KBuMd7VFLCtlYp9LeBKdoTtbqMBs3UBJ45ePS4a1UeKaVj9fyQQ0euNTp 8JO31KjHpU2JHkE564Ocnd/AnRwmIn67Mv1vRcSKJ7qHXUpQ2sp4PgNjPxBDHoKdLhhPQtzC 0+vovZSV14nf+S8wMKb6dcAvM4lP8IlpHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAByZXBhY2suZ2l0L29iamVjdHMvcGFjay8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwMDc1 NQAwMDAxNzUwADAwMDE3NTAAMDAwMDAwMDAwMDAAMTM0MjMzNjc3NTQAMDE0NDI2ACA1AAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyICAAdGli YmUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0aWJiZQAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHJlcGFjay5naXQvb2JqZWN0cy84Yy8AAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAwNzU1ADAwMDE3NTAAMDAwMTc1MAAwMDAwMDAwMDAw MAAxMzQyMzM3MDAxMgAwMTM3NzcAIDUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAdXN0YXIgIAB0aWJiZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AHRpYmJlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA cmVwYWNrLmdpdC9vYmplY3RzLzhjLzE2OWUwZjJmZjNjMzk4YjhhMTA2MDE1NzBiMWNiMTNj Nzg5NzgzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMDA0NDQA MDAwMTc1MAAwMDAxNzUwADAwMDAwMDAwMTcwADEzNDIzMzcwMDEyADAyMDcxMAAgMAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAHRpYmJl AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdGliYmUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4ASspSk1VMDQ0ZDA0MDAzMVFw9k3MTvXJLC4p 1iupKGFor7zMmiL0IvXzpB+CKYumPbJ/9+Q9TKV/QKSnnzvDlJVvmXwtIivNJET1lkYuzNh9 eusjqJLcxMw8vWQGBwHmjxKP7rz/ZmEVOnX3Or0ayzPXAWfXLycAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 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 MzM3MDAxMgAwMTM3MTUAIDUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAdXN0YXIgIAB0aWJiZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHRpYmJl AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcmVwYWNr LmdpdC9vYmplY3RzLzkwLzNkNmYzNTY2NTUwNWMxMjViNDQ1Y2M5OGM5NmM5Y2VkZTBhNzg5 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMDA0NDQAMDAwMTc1 MAAwMDAxNzUwADAwMDAwMDAyNjYxADEzNDIzMzcwMDEyADAyMTAyMQAgMAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAHRpYmJlAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAdGliYmUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAB4AcVXbW/bNhDeZ/+KWwYEsuHaTdYWWJMG8wKnNZolgeOs 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 dHMvZjkvZGMzOWE2MWFkMzc2ODhjODhkMDNmMmY0ZGE4YjA3Y2M1OWUzMDAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwMDQ0NAAwMDAxNzUwADAwMDE3NTAA MDAwMDAwMDAyMDMAMTM0MjMzNzAwMTIAMDIxMjE0ACAwAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyICAAdGliYmUAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAB0aWJiZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAHgBKylKTVUwNDZgMDQwMDMxUXD2TcxO9cksLinWK6koYdjbdElw61pFzVOF etrrF/+Lus7v8heqsii1IDE5W68ktSKToWfDfLYFrLvqbe4oHj5zYtb1UA7pZyjKylKLijPz 88Cq9TLzGDKsJ57qYOo5cOtNTAXXqe1uNUUNiwES6jcYAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 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 NzU1ADAwMDE3NTAAMDAwMTc1MAAwMDAwMDAwMDAwMAAxMzQyMzM3MDAxMgAwMTM3MDcAIDUA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIAB0 aWJiZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHRpYmJlAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcmVwYWNrLmdpdC9vYmplY3RzLzEyLzJj MWQ4YmUxMzA1YmNmZWYwYzJhODVkZjFiZGE2NTJiZTBkNDI0AAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMDA0NDQAMDAwMTc1MAAwMDAxNzUwADAwMDAwMDAw MjcyADEzNDIzMzcwMDEyADAyMTM2NwAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAHRpYmJlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAdGliYmUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAB4AaWOy2pCMRRFHecrztjiJe+HFLGjzhz1B85NTjRgckuMCH59xYHguHu214bFjkutZYB0 fjU6ETiBPqIU4ZGZG665dwHRZUWJWzlHhxZlSuwXO7UBJttIqB+bk1pFSn4WSllplMvZkPVG o5c+MLyO09Lhp1T4pss4XcudGnyOUqfjq++pUY9LmxLtQBjtrA7BePjggnMWn18H/c/CvlKC KZ6xHTd56RUHY+t3sIUD3SCXM03sD/T1WWYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHJlcGFjay5naXQvb2JqZWN0cy84MS8AAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAwNzU1ADAwMDE3NTAAMDAwMTc1MAAwMDAwMDAwMDAw MAAxMzQyMzM3MDAxMgAwMTM3MTUAIDUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAdXN0YXIgIAB0aWJiZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AHRpYmJlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA cmVwYWNrLmdpdC9vYmplY3RzLzgxLzA0ZjY4MWUyYWEyYmE1ZGRlYzNhNGQzMmU4OGE4NWMw ZDFkNTEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMDA0NDQA MDAwMTc1MAAwMDAxNzUwADAwMDAwMDAwNDMzADEzNDIzMzcwMDEyADAyMTIzNwAgMAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAHRpYmJl AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdGliYmUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4ASspSk1VMLI0ZDA0MDAzMVHQS85JzEvXTcsv yk0sYdj8TkfN+EUEl61MS2SW/pRzZ59Fa8IUpmeWZKbn5RelMjCsvLXnhM2irfOfX9Z/0/+6 0M+C8x5UlbNvYnaqT2ZxSbFeSUUJQwKv8rMLDSu+PxC2Tw94tW5D3CatSTCV/gGRnn7uDFNW vmXytYisNJMQ1VsauTBj9+mtj6BKkvPz0jLT9TL0MvMYbFa8zo+1U1zypf6M+zG166bejREl JgZAoJCSn8zw847lMqnLZR0nepk/fbnVzX4m8jHMg7mJmXl6yQz95dE3/p3wPnjMsGZf0RGp n6H9e09B9JekAl3LENDxSm3t3Oyq2o2X/m29/fPCbJO2ZgDnPnuIAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHJl cGFjay5naXQvb2JqZWN0cy9iMy8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAwNzU1ADAw MDE3NTAAMDAwMTc1MAAwMDAwMDAwMDAwMAAxMzQyMzM3MDAxMgAwMTM3NzEAIDUAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIAB0aWJiZQAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHRpYmJlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcmVwYWNrLmdpdC9vYmplY3RzL2IzLzVmM2ZkOWI3 NWY3N2UwMWU1N2EyNTBiOTlhMTM4ZTg3M2JhYTA3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAADAwMDA0NDQAMDAwMTc1MAAwMDAxNzUwADAwMDAwMDAzNjA3ADEz NDIzMzcwMDEyADAyMTE0NAAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 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 MDA3NTUAMDAwMTc1MAAwMDAxNzUwADAwMDAwMDAwMDAwADEzNDIzMzcwMDEyADAxMzcxMQAg NQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAg AHRpYmJlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdGliYmUAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAByZXBhY2suZ2l0L29iamVjdHMvNTAv ODhlYTI2YWQ5ZDZiN2E3ZGIxZDJmZWI1ZGJmOWQwOWIzNDg2ODMAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwMDQ0NAAwMDAxNzUwADAwMDE3NTAAMDAwMDAw MDAwNjQAMTM0MjMzNzAwMTIAMDIxMzYzACAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyICAAdGliYmUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAB0aWJiZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAHgBKylKTVUwNmUwNDAwMzFRSCutqtIrzmBw1RO/fCfY+sQOtpa38/8r75AXbPMDAC0U D5sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcmVwYWNrLmdpdC9vYmplY3RzLzc4LwAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMDA3NTUAMDAwMTc1MAAwMDAxNzUwADAwMDAwMDAw MDAwADEzNDIzMzcwMDEyADAxMzcyMwAgNQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAHRpYmJlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAdGliYmUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAByZXBhY2suZ2l0L29iamVjdHMvNzgvODhjNzc1MmZlNGEwYjU2MDA0MWRjNTJhNjU2NDQ3 ZmY2MDBkN2YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwMDQ0 NAAwMDAxNzUwADAwMDE3NTAAMDAwMDAwMDAzNzYAMTM0MjMzNzAwMTIAMDIwNzI1ACAwAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyICAAdGli YmUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0aWJiZQAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHgBnZC7TsQwEEWp/RVTg2TZSTZxEEI8CrTS 0vEDjjNJRhs7kT3h9fWYBW1HQzm6R+dejVu8J4ayrS44IoJxum5RDcUwlK5sTWesVrXSu0Z1 2nW6dI1pG1MKu/G0RHghD0+YeNroEwPcMHk5nu87DBjdEmSPt6B3VVNXpqhKuFJaKeFO3Yz/ sTS1+bWIfSAmO8OPTohL8JaCdNfwYBM5WOMyRusl7BnYHjEBvy1g47h5DJzAhh4irtYdczIh DDSjAOgxuUgd9tB9nGnQwMuZ+oMpYEsUxuw4UHcf3USvKPOsx+fcfqDESfI753kbzT18t6x5 xpC/eSKk+AL5JITaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA cmVwYWNrLmdpdC9vYmplY3RzL2IyLwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMDA3NTUA MDAwMTc1MAAwMDAxNzUwADAwMDAwMDAwMDAwADEzNDIzMzcwMDEyADAxMzc3MAAgNQAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAHRpYmJl AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdGliYmUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAByZXBhY2suZ2l0L29iamVjdHMvYjIvMDU4ZDVh NWE5NjQ5ZGFjOGYyODY2YWI0Mzc4ZmQ0MGQ1OTRmNDYAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAMDAwMDQ0NAAwMDAxNzUwADAwMDE3NTAAMDAwMDAwMDA1MjUA MTM0MjMzNzAwMTIAMDIxMDc0ACAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAHVzdGFyICAAdGliYmUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0 aWJiZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHgB nZBPS8QwEMU951PMWSEkbbNtFxHFgxcFQf0AaTJpwm7TJZ2yq5/e7D9ZxJOnTJh5v/d4ZhyG QKCa4ooSIlTOVXJRG1c1KLRTsqxqVTddUYhCy6aVC+ka7QTb6ISRQJdNUclSojFlt3BKONMJ 7ERVKdWpVraFs0VdSqZn8mOC9zDAE07k5/CFEW4pDLz/+d9jxGTGyC3egVRVXbdl3dRwI6QQ zByyEv6H0rbqRGFm0CtcwmsaN5jWnzChTsaDy+l6pHFD4OZoKIyRsbfjjjz+3kGHWYHQzWFt Q+xBRwvGo1nB1mMWnGncs0yeY5jIcg+4y8PheOs1AY0QolnPFvMLgw6RM3YNjy8543O+nDjt aAkP9gSfLnMe42bo3vvswLM8V+hCzz0P8ai16ELES/EfqoO7WcLHhCfCnPS+B3BpHH6gl5n3 xaTQewKP2mLi7Bvcq8WjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcmVwYWNrLmdpdC9vYmplY3RzL2ZiLwAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAADAwMDA3NTUAMDAwMTc1MAAwMDAxNzUwADAwMDAwMDAwMDAwADEz NDIzMzcwMDEyADAxNDA1NAAgNQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAB1c3RhciAgAHRpYmJlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdGli YmUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAByZXBh Y2suZ2l0L29iamVjdHMvZmIvMjFlMDM2YjVhYjBkZjgxODFlNDdhMDFkMTI1YzQyMmU0NmNh MGUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwMDQ0NAAwMDAx NzUwADAwMDE3NTAAMDAwMDAwMDA0MjcAMTM0MjMzNzAwMTIAMDIxMTQ3ACAwAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyICAAdGliYmUAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0aWJiZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 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 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMDA0NDQAMDAwMTc1MAAwMDAx NzUwADAwMDAwMDAwMTUyADEzNDIzMzcwMDEyADAyMTE0MAAgMAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAHRpYmJlAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAdGliYmUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAB4AUvKyU9SMDQ1ZlDOTMtLSU1TCHINcHT2jnf293PzdI/34FIGCmbm pWKIcykn5yZmp0JlPRzDXOPdXUP8A0JAejCkQv08g0NcMI0Lcw0K9vT3U1BygNoLFXBQ4uJS Ts1LyUzjAgCXxjB3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 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 Xwf/b0UUn+tERzi1XvwAapFhv+a6Ap19XZ/TvRfiEf4iP/PYfoGTuAF5i2bCAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHJlcGFjay5naXQvb2JqZWN0cy9l ZC8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAwNzU1ADAwMDE3NTAAMDAwMTc1MAAwMDAw MDAwMDAwMAAxMzQyMzM3MDAxMgAwMTQwNTUAIDUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIAB0aWJiZQAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAHRpYmJlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAcmVwYWNrLmdpdC9vYmplY3RzL2VkLzIxZTk4N2IxODQ5YjAzNjZjZjA0YTQxZTA3 ZTlkNzJmZTAzY2QzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAw MDA0NDQAMDAwMTc1MAAwMDAxNzUwADAwMDAwMDAwNDY0ADEzNDIzMzcwMDEyADAyMTEzNAAg MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAg AHRpYmJlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdGliYmUAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4AaWRTUvEMBCGPfdXzNEPKOlH2mQR UXDRg65S9LxMk8lusE2WNOuKv952haVHwWNm5nnyJqN839sIPONnMRABKZYpI3iNIles0lzw nMk8ly3yQkgmhRCF1kWyw0AuQpszLjRHjrIqpUYlTC6qCtuyqIXRJdNclqasEtzHrQ/wZnt4 oCFu9/abHFxH26eb0/mWHAXlXarpBjJe1rUUZVHBFcsYS9Qxa6T/WZIerVtAQwZVHBMprylJ LmEqp2oBz/hBgF0HZu9UtN4NQF+KdvE4AUPEaFV6AuD88W51/7RcL5vmpblYwIoO46QKHsxo 9zty1m3A2I6GOTU11oFQr6fWyL0PBHPVr2R2z5E4BBvpz8j0plH92qGiKU6PEawe92aNHb/R OvAHB58YLLYdpckPcAinpAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAHJlcGFjay5naXQvb2JqZWN0cy83Ny8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAw NzU1ADAwMDE3NTAAMDAwMTc1MAAwMDAwMDAwMDAwMAAxMzQyMzM3MDAxMgAwMTM3MjIAIDUA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIAB0 aWJiZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHRpYmJlAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcmVwYWNrLmdpdC9vYmplY3RzLzc3LzJk MTAyMTNhNDA0NWY4N2JlMmFkMDMyMWRlYjhmZTBlOWJiODAzAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMDA0NDQAMDAwMTc1MAAwMDAxNzUwADAwMDAwMDAw MzA2ADEzNDIzMzcwMDEyADAyMTEwMAAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAHRpYmJlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAdGliYmUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAB4AaWOPU7EMBBGqX2KqRcp+DdxVmgFFR0VF5jMTDaWiLOyHSHl9MAWXIDy6Unv+2hb19TA xv6hFRGIRvu5j0Ysop0wMAs59OysxIgxkGbDwWh1wyK5QQwujOMcyHlriL3EiUftRtc7Nw3G T71F8kgK97ZsBT7SCm9S27KnQzI8t7R21z9+kSyFttyxXMAEP0RjvR/gURutFd2/NvlfRbWf uXqGV2aY9+NI+QqVSrq1qtQJ7vbpV3R1OcO7fMGcPkV9AyvUXX4AAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHJlcGFjay5naXQvb2JqZWN0cy9lYy8AAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAwNzU1ADAwMDE3NTAAMDAwMTc1MAAwMDAwMDAwMDAw MAAxMzQyMzM3MDAxMgAwMTQwNTQAIDUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAdXN0YXIgIAB0aWJiZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AHRpYmJlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA cmVwYWNrLmdpdC9vYmplY3RzL2VjLzAxY2Y4NTdhODJjMDZkNTg1MjA5MjI5YmE1Mzg5MDk4 ODgzZGQzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMDA0NDQA MDAwMTc1MAAwMDAxNzUwADAwMDAwMDAwMzQxADEzNDIzMzcwMDEyADAyMDY0NQAgMAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAHRpYmJl AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdGliYmUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4ASspSk1VMDKyZDA0MDAzMVHQS85JzEvXTcsv yk0sYdj8TkfN+EUEl61MS2SW/pRzZ59Fa8IUpmeWZKbn5RelMjCsvLXnhM2irfOfX9Z/0/+6 0M+C8x5UlbNvYnaqT2ZxSbFeSUUJw+ugHqX0db3xu5RmezfUlhzhvGZeDFPpHxDp6efOMGXl WyZfi8hKMwlRvaWRCzN2n976CKokOT8vLTNdL0MvM4/BZsXr/Fg7xSVf6s+4H1O7burdGFEC VZabmJmnl8zQXx59498J74PHDGv2FR2R+hnav/cUAGT0XWsAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHJl cGFjay5naXQvb2JqZWN0cy82Ni8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAwNzU1ADAw MDE3NTAAMDAwMTc1MAAwMDAwMDAwMDAwMAAxMzQyMzM3MDAxMgAwMTM3MjAAIDUAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIAB0aWJiZQAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHRpYmJlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcmVwYWNrLmdpdC9vYmplY3RzLzY2L2EwNmRhNTYy YTFlMTFkYTE1MmE4ZWQwNGFkZDRmYTdmOThmMjVjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAADAwMDA0NDQAMDAwMTc1MAAwMDAxNzUwADAwMDAwMDAwMjc3ADEz NDIzMzcwMDEyADAyMTMzNQAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAB1c3RhciAgAHRpYmJlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdGli YmUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4ASsp Sk1VMLQ0YDA0MDAzMVHQS85JzEvXTcsvyk0sYdj8TkfN+EUEl61MS2SW/pRzZ59Fa8IUpmeW ZKbn5RelMjCsvLXnhM2irfOfX9Z/0/+60M+C8x5UlbNvYnaqT2ZxSbFeSUUJQ3vlZdYUoRep nyf9EExZNO2R/bsn72Eq/QMiPf3cGaasfMvkaxFZaSYhqrc0cmHG7tNbH0GV5CZm5uklM0yw zTdNC2U9qLrF9cyMkzlz3j5Y3gkARodO4QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAHJlcGFjay5naXQvb2JqZWN0cy8zNi8AAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAwMDAwNzU1ADAwMDE3NTAAMDAwMTc1MAAwMDAwMDAwMDAwMAAxMzQy MzM3MDAxMgAwMTM3MTUAIDUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAdXN0YXIgIAB0aWJiZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHRpYmJl AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcmVwYWNr LmdpdC9vYmplY3RzLzM2L2EzYmYwZjFmNTQxMmFhNGE3MjViYzJiMjdjMzE4ODBlYTk3YWU0 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMDA0NDQAMDAwMTc1 MAAwMDAxNzUwADAwMDAwMDAwMTcwADEzNDIzMzcwMDEyADAyMTE1NgAgMAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAHRpYmJlAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAdGliYmUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAB4ASspSk1VMDQ0ZDA0MDAzMVFw9k3MTvXJLC4p1iupKGFo r7zMmiL0IvXzpB+CKYumPbJ/9+Q9TKV/QKSnnzvDlJVvmXwtIivNJET1lkYuzNh9eusjqJLc xMw8vWSGFdGufvUNB3rUBLzfr+TzmPfF+F8hAGGVLmEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHJlcGFjay5n aXQvb2JqZWN0cy9hMy8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAwNzU1ADAwMDE3NTAA MDAwMTc1MAAwMDAwMDAwMDAwMAAxMzQyMzM3MDAxMgAwMTM3NzAAIDUAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIAB0aWJiZQAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAHRpYmJlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAcmVwYWNrLmdpdC9vYmplY3RzL2EzLzgyNDEzMWVjYzNiNmY1 MGZjYjBlYjA0NDU1YjU5MTkyZmQyNzMxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAADAwMDA0NDQAMDAwMTc1MAAwMDAxNzUwADAwMDAwMDAwNDYyADEzNDIzMzcw MDEyADAyMTAyNQAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAB1c3RhciAgAHRpYmJlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdGliYmUAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4AYWQzU7EIBSF XfMUd60JoT+0ZWKMxoUbdeULULi06BSa9tZRn16YmczKxB2HezjfPZg4TZ6gbuQVLYhQ28pp 6UxVis7VZdu31nSt7QusS2VtZQslZds5NusFA4GsaoW9lo1B1UsttVYFCmFMmV610jbCNKWx HdMbjXGBNz/BE640bv4HA9ySn/hw0fffeoyRW7yDQtZt06hSCLgRhRDMHDcl/DcDAy4mhktK qyql5DmFTdqHHTxYC3EmHwOkIqsPA2P5TsO8xDkxMk0HC3sfEHxIWKcNAsVsMLiuoJdhm9IX rJyxa3h80R/47Nck6YtOgOR8R0OwkibMVjh4GuETEzCBc3za0/lhW5DB+cxH7gNPiafRUe7g FQ/g/B7zIDfg5q8OsOUmMCClbpz9AsAOnFkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAHJlcGFjay5naXQvb2JqZWN0cy81My8AAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAwMDAwNzU1ADAwMDE3NTAAMDAwMTc1MAAwMDAwMDAwMDAwMAAxMzQyMzM3MDAx MgAwMTM3MTQAIDUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAdXN0YXIgIAB0aWJiZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHRpYmJlAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcmVwYWNrLmdpdC9v YmplY3RzLzUzLzQ5ZWJhNTZjZTliNWE1YWE5MWUwMGNjMjg3ZDc1ZDYwYzYyY2Q4AAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMDA0NDQAMDAwMTc1MAAwMDAx NzUwADAwMDAwMDAwMzIxADEzNDIzMzcwMDEyADAyMTI2MgAgMAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAHRpYmJlAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAdGliYmUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAB4AaWOT0vEMBTEPedTvPMKJcnmz1Zk0ZM3T36B17xJN2jTpU0R/PRK Bdm7x5nfzDBpnqbS6Gj7u7YAFALrIOyDZQNjhI23fIJoxyIuc8z9KVuf1JUX1EbeCQ85Bs0A bBSEmM3gUkSUwQbf58RZjlC8tcu80FuZ6AVru2zlC5UeW5m68U8/oWJJc+0EZzLexeC16z3d a6O1SvvXhv+tqGcR6sbSyljnBWrXA68l3biUyweozfQbIkhpP+8HTu/bdYdrp9ThpvFAr/jc ifoGAbRtvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHJlcGFjay5naXQvb2Jq ZWN0cy81Zi8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAwNzU1ADAwMDE3NTAAMDAwMTc1 MAAwMDAwMDAwMDAwMAAxMzQyMzM3MDAxMgAwMTM3NzcAIDUAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIAB0aWJiZQAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAHRpYmJlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAcmVwYWNrLmdpdC9vYmplY3RzLzVmLzZjZWE0ZDA2NzI0M2NlZDhiMTMz NjI1MzdmZjVlNjg1NGE4Mjg5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAADAwMDA0NDQAMDAwMTc1MAAwMDAxNzUwADAwMDAwMDAwMzQwADEzNDIzMzcwMDEyADAy MTAwNgAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1 c3RhciAgAHRpYmJlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdGliYmUAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4AaWOy2rDMBBFu9ZXzLIP MLKshx1KaFf9ge7DSBrFgkgKspJCv752W7rItsvD5RyuKynFBoPSd60SwaBxsIGHPijZC0SJ RijrhBXGDf04csLJIEl2xkq5gRbcGyuVN3IVrRQktBPeWa7MREQTtxJJc4aXNpcK7zHBGy1t vsRPyvDcYuqOf/xCmaorufO0h15Jo+U0KgFPvOecue+vjf5XYQlj3sGr95DissR8BKp1vTZj 9qcNW4Fypnz4qLHRIcQTMfYIm9Y5uL+ZHn5SN4mw9rC6OV7pN7NpHfsC9kN3+QAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAHJlcGFjay5naXQvb2JqZWN0cy83MS8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAwMDAwNzU1ADAwMDE3NTAAMDAwMTc1MAAwMDAwMDAwMDAwMAAxMzQyMzM3MDAxMgAwMTM3 MTQAIDUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0 YXIgIAB0aWJiZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHRpYmJlAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcmVwYWNrLmdpdC9vYmplY3Rz LzcxL2E4Y2EyMTk5OTliMDUwNDA4NzlhYTdmM2VkMDYyYmM3YTZhMmRkAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMDA0NDQAMDAwMTc1MAAwMDAxNzUwADAw MDAwMDAwMjM1ADEzNDIzMzcwMDEyADAyMTEyNAAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAHRpYmJlAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAdGliYmUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAB4ASspSk1VMDQ1YjA0MDAzMVHQS85JzEvXTcsvyk0sYdj8TkfN+EUEl61MS2SW /pRzZ59Fa0IVOvsmZqf6ZBaXFOuVVJQwtFdeZk0RepH6edIPwZRF0x7Zv3vyHqbSPyDS08+d YcrKt0y+FpGVZhKieksjF2bsPr31EVRJbmJmnl4yw4poV7/6hgM9agLe71fyecz7YvyvEABj JT12AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHJlcGFjay5naXQvb2JqZWN0cy80 MC8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAwNzU1ADAwMDE3NTAAMDAwMTc1MAAwMDAw MDAwMDAwMAAxMzQyMzM3MDAxMgAwMTM3MTAAIDUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIAB0aWJiZQAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAHRpYmJlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 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 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAdXN0YXIgIAB0aWJiZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AHRpYmJlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA cmVwYWNrLmdpdC9vYmplY3RzLzQ4LzcxY2Q4YmZhNWRmZmQxODJiNDI3NGEzN2Q1ZjU4ZDdk OWExNmU3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMDA0NDQA MDAwMTc1MAAwMDAxNzUwADAwMDAwMDAwMTcwADEzNDIzMzcwMDEyADAyMTMxMAAgMAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAHRpYmJl AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdGliYmUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4ASspSk1VMDQ0ZDA0MDAzMVFw9k3MTvXJLC4p 1iupKGFor7zMmiL0IvXzpB+CKYumPbJ/9+Q9TKV/QKSnnzvDlJVvmXwtIivNJET1lkYuzNh9 eusjqJLcxMw8vWQGyQOqrNP+RpUsjOeq8ctTYV7p+uEqAFaVLV0AAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHJl cGFjay5naXQvb2JqZWN0cy80OC82NzEzZDFlNWQ4MTUxMDBhOWM0MGUzNDc1YTUxZjZmYTMy MGFlMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAwNDQ0ADAw MDE3NTAAMDAwMTc1MAAwMDAwMDAwMDM3NwAxMzQyMzM3MDAxMgAwMjA2NzAAIDAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIAB0aWJiZQAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHRpYmJlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 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 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAByZXBhY2suZ2l0L29iamVjdHMvNjEvAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAMDAwMDc1NQAwMDAxNzUwADAwMDE3NTAAMDAwMDAwMDAwMDAAMTM0MjMz NzAwMTIAMDEzNzEzACA1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAHVzdGFyICAAdGliYmUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0aWJiZQAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHJlcGFjay5n aXQvb2JqZWN0cy82MS9lNTMwZjU2Y2QxZjdkNDI2NTY5ZjUwNzgwM2I3NzQxZWI0NjA2OAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAwNDQ0ADAwMDE3NTAA MDAwMTc1MAAwMDAwMDAwMDMzNQAxMzQyMzM3MDAxMgAwMjA1NjQAIDAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIAB0aWJiZQAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAHRpYmJlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAeAGlkM1qBCEQhHP2KfqYHxjUUdtZQkhOeYG8gKPtjAedRR02 5Okzm4VAzjkVXXwUXeW3nFOHcVR3vRLBJKP1QmotZsNJaT+L2fMwahtQSORKysmacWJnV6l0 QGutR9QyknJ81oZzJYLX0hltlMIYDydgZG7v61bhI2V4p9bXPX1Rgeee8rD83q9UqPqtDIFe QGiFRk0GEZ644Jz5n187/S+FZZfK4E/wFgLk1FoqC9DnMULrrlM+WjH2CDcK7q/6cIP/QnBZ jwJn1xoF6BtEuoCry34NaAP7Bo5pbL4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAByZXBhY2suZ2l0 L29iamVjdHMvY2EvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwMDc1NQAwMDAxNzUwADAw MDE3NTAAMDAwMDAwMDAwMDAAMTM0MjMzNzAwMTIAMDE0MDUwACA1AAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyICAAdGliYmUAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAB0aWJiZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAHJlcGFjay5naXQvb2JqZWN0cy9jYS8xZjFkYmJkN2EyOTFiMDgw ODQ2M2NmMzNiZGJlZTkyZDA2NGFhNAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAwMDAwNDQ0ADAwMDE3NTAAMDAwMTc1MAAwMDAwMDAwMDExMwAxMzQyMzM3MDAx MgAwMjEzNzIAIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAdXN0YXIgIAB0aWJiZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHRpYmJlAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAFLyslPUrC0ZFDO TMtLSU1TCHINcHT2jnf293PzdI/34FIGCmbmpWKIo0uEuQYFe/r7KSg5QE2ACjgocXEpp+al ZKZxAQCoKR7gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAByZXBhY2suZ2l0L29iamVjdHMvMDAvAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAMDAwMDc1NQAwMDAxNzUwADAwMDE3NTAAMDAwMDAwMDAwMDAAMTM0MjMzNzAwMTIA MDEzNzA0ACA1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AHVzdGFyICAAdGliYmUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0aWJiZQAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHJlcGFjay5naXQvb2Jq ZWN0cy8wMC9hOWRhYmNjODNjYTJiNTlmZTdkMzJmZWM4ZmViNzE0ZTM4MDlkZQAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAwNDQ0ADAwMDE3NTAAMDAwMTc1 MAAwMDAwMDAwMDA0MwAxMzQyMzM3MDAxMgAwMjE1NjUAIDAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIAB0aWJiZQAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAHRpYmJlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAeAFLyslPUjC0ZFBWcEpMzi4tUEjLzEkt5tLS06oDAG9uCAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAByZXBhY2suZ2l0L29iamVj dHMvNjgvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwMDc1NQAwMDAxNzUwADAwMDE3NTAA MDAwMDAwMDAwMDAAMTM0MjMzNzAwMTIAMDEzNzIyACA1AAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyICAAdGliYmUAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAB0aWJiZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAHJlcGFjay5naXQvb2JqZWN0cy82OC8zYjkxY2E4ODAyOGNjMGRhZWM1Yzc4 MGFjYWI3NDY3YzcyODBhMwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAwMDAwNDQ0ADAwMDE3NTAAMDAwMTc1MAAwMDAwMDAwMDA3NwAxMzQyMzM3MDAxMgAwMjEy MDQAIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0 YXIgIAB0aWJiZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHRpYmJlAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAFLyslPUjA1YHDITUwuylco Si1ITM4uSy0qzszP41KpDnINcHT2jg9zDQr29Per5XJIzUtRACvlAgA79xMxAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAByZXBhY2suZ2l0L29iamVjdHMvOGYvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA MDAwMDc1NQAwMDAxNzUwADAwMDE3NTAAMDAwMDAwMDAwMDAAMTM0MjMzNzAwMTIAMDE0MDAy ACA1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFy ICAAdGliYmUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0aWJiZQAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHJlcGFjay5naXQvb2JqZWN0cy84 Zi83NzViZDhmZWM4NGJjMWM2MzE3Y2JlNzJjNDFhZjk1NThmYmRjYQAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAwNDQ0ADAwMDE3NTAAMDAwMTc1MAAwMDAw MDAwNDEwMQAxMzQyMzM3MDAxMgAwMjE1MjAAIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIAB0aWJiZQAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAHRpYmJlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 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 MAAxMzQyMzM3MDAxMgAwMTM3MTAAIDUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAdXN0YXIgIAB0aWJiZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AHRpYmJlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA cmVwYWNrLmdpdC9vYmplY3RzLzMxLzMxZjAzOGVjZWMyZjY0NmY5NGI0MTc1MDk0OGZkNTZm MGVjNTdiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMDA0NDQA MDAwMTc1MAAwMDAxNzUwADAwMDAwMDAzNjYzADEzNDIzMzcwMDEyADAyMTA3MQAgMAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAHRpYmJl AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdGliYmUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4AcVYbXMbtxHuZ/6KjTp1jgxFyW7TaSXZKaNS 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 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAHRpYmJlAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAdGliYmUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAB4AVXMuxLBQBSAYXWeYgtFNJkMjTZkizOSYIn2zF4Ozlhh VhgzxrujcOv/7zf+YES/P+yMy2wisYQKyrpEJec1KJnHK6kWMK3EIEmTtBdFa24cHrXd6Q3F BZss2C1fSLzBM9HOIV3JnlttPMWBXrnYa24S24taHTbUIjfWnx2h40C2PQSm07ucKVhlSym6 t+8foRoXdS4xB7W4fy6emx16NkH/Dv5gASOVKZAv9QCPOU9bAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHJlcGFjay5n aXQvb2JqZWN0cy82Mi8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAwNzU1ADAwMDE3NTAA MDAwMTc1MAAwMDAwMDAwMDAwMAAxMzQyMzM3MDAxMgAwMTM3MTQAIDUAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIAB0aWJiZQAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAHRpYmJlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAcmVwYWNrLmdpdC9vYmplY3RzLzYyLzBkN2I0NWQ3NGEzYmI0 MmUyNmMyZGNiMDU3OWVlZTkwYjRhZTYwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAADAwMDA0NDQAMDAwMTc1MAAwMDAxNzUwADAwMDAwMDAwMzUyADEzNDIzMzcw MDEyADAyMTI1MQAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAB1c3RhciAgAHRpYmJlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdGliYmUAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4AaWOu07EMBRE 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 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHJlcGFjay5naXQvSEVB RAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAwNjQ0ADAwMDE3NTAAMDAwMTc1 MAAwMDAwMDAwMDAyNwAxMzQyMzM2Nzc1NAAwMTI1MDIAIDAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIAB0aWJiZQAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAHRpYmJlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAcmVmOiByZWZzL2hlYWRzL21hc3RlcgoAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAByZXBhY2suZ2l0L3JlZnMv AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwMDc1NQAwMDAxNzUwADAwMDE3NTAA MDAwMDAwMDAwMDAAMTM0MjMzNjc3NTQAMDEzMDE2ACA1AAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyICAAdGliYmUAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAB0aWJiZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAHJlcGFjay5naXQvcmVmcy90YWdzLwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAwMDAwNzU1ADAwMDE3NTAAMDAwMTc1MAAwMDAwMDAwMDAwMAAxMzQyMzM2Nzc1NAAwMTM3 NTQAIDUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0 YXIgIAB0aWJiZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHRpYmJlAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcmVwYWNrLmdpdC9yZWZzL2hl YWRzLwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMDA3NTUAMDAwMTc1MAAwMDAxNzUwADAw MDAwMDAwMDAwADEzNDIzMzcwMDEyADAxNDA1NwAgNQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAHRpYmJlAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAdGliYmUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAByZXBhY2suZ2l0L3JlZnMvaGVhZHMvbWFzdGVyAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA MDAwMDY0NAAwMDAxNzUwADAwMDE3NTAAMDAwMDAwMDAwNTEAMTM0MjMzNzAwMTIAMDE1Mjcx ACAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFy ICAAdGliYmUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0aWJiZQAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADc3MmQxMDIxM2E0MDQ1Zjg3YmUy YWQwMzIxZGViOGZlMGU5YmI4MDMKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAcmVwYWNrLmdpdC9pbmZvLwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAw MDA3NTUAMDAwMTc1MAAwMDAxNzUwADAwMDAwMDAwMDAwADEzNDIzMzY3NzU0ADAxMzAxMgAg NQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAg AHRpYmJlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdGliYmUAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAByZXBhY2suZ2l0L2luZm8vZXhjbHVk ZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwMDY0NAAwMDAxNzUwADAwMDE3NTAAMDAwMDAw MDAzNjAAMTM0MjMzNjc3NTQAMDE0MzY1ACAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyICAAdGliYmUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAB0aWJiZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAACMgZ2l0IGxzLWZpbGVzIC0tb3RoZXJzIC0tZXhjbHVkZS1mcm9tPS5naXQvaW5mby9l eGNsdWRlCiMgTGluZXMgdGhhdCBzdGFydCB3aXRoICcjJyBhcmUgY29tbWVudHMuCiMgRm9y IGEgcHJvamVjdCBtb3N0bHkgaW4gQywgdGhlIGZvbGxvd2luZyB3b3VsZCBiZSBhIGdvb2Qg c2V0IG9mCiMgZXhjbHVkZSBwYXR0ZXJucyAodW5jb21tZW50IHRoZW0gaWYgeW91IHdhbnQg dG8gdXNlIHRoZW0pOgojICouW29hXQojICp+CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcmVwYWNrLmdpdC9ob29rcy8AAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMDA3NTUAMDAwMTc1MAAwMDAxNzUwADAwMDAwMDAw MDAwADEzNDIzMzY3NzU0ADAxMzIwMgAgNQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAHRpYmJlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAdGliYmUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAByZXBhY2suZ2l0L2hvb2tzL3VwZGF0ZS5zYW1wbGUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwMDc1 NQAwMDAxNzUwADAwMDE3NTAAMDAwMDAwMDcxMzEAMTM0MjMzNjc3NTQAMDE1Njc0ACAwAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyICAAdGli YmUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0aWJiZQAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMhL2dudS9zdG9yZS9xMTlsMDR2ZDJ6YTgw bWsxODQ1cHo3cjhjejI5cWs0My1iYXNoLW1pbmltYWwtNC40LjIzL2Jpbi9zaAojCiMgQW4g ZXhhbXBsZSBob29rIHNjcmlwdCB0byBibG9jayB1bmFubm90YXRlZCB0YWdzIGZyb20gZW50 ZXJpbmcuCiMgQ2FsbGVkIGJ5ICJnaXQgcmVjZWl2ZS1wYWNrIiB3aXRoIGFyZ3VtZW50czog cmVmbmFtZSBzaGExLW9sZCBzaGExLW5ldwojCiMgVG8gZW5hYmxlIHRoaXMgaG9vaywgcmVu YW1lIHRoaXMgZmlsZSB0byAidXBkYXRlIi4KIwojIENvbmZpZwojIC0tLS0tLQojIGhvb2tz LmFsbG93dW5hbm5vdGF0ZWQKIyAgIFRoaXMgYm9vbGVhbiBzZXRzIHdoZXRoZXIgdW5hbm5v dGF0ZWQgdGFncyB3aWxsIGJlIGFsbG93ZWQgaW50byB0aGUKIyAgIHJlcG9zaXRvcnkuICBC eSBkZWZhdWx0IHRoZXkgd29uJ3QgYmUuCiMgaG9va3MuYWxsb3dkZWxldGV0YWcKIyAgIFRo aXMgYm9vbGVhbiBzZXRzIHdoZXRoZXIgZGVsZXRpbmcgdGFncyB3aWxsIGJlIGFsbG93ZWQg aW4gdGhlCiMgICByZXBvc2l0b3J5LiAgQnkgZGVmYXVsdCB0aGV5IHdvbid0IGJlLgojIGhv b2tzLmFsbG93bW9kaWZ5dGFnCiMgICBUaGlzIGJvb2xlYW4gc2V0cyB3aGV0aGVyIGEgdGFn IG1heSBiZSBtb2RpZmllZCBhZnRlciBjcmVhdGlvbi4gQnkgZGVmYXVsdAojICAgaXQgd29u J3QgYmUuCiMgaG9va3MuYWxsb3dkZWxldGVicmFuY2gKIyAgIFRoaXMgYm9vbGVhbiBzZXRz IHdoZXRoZXIgZGVsZXRpbmcgYnJhbmNoZXMgd2lsbCBiZSBhbGxvd2VkIGluIHRoZQojICAg cmVwb3NpdG9yeS4gIEJ5IGRlZmF1bHQgdGhleSB3b24ndCBiZS4KIyBob29rcy5kZW55Y3Jl YXRlYnJhbmNoCiMgICBUaGlzIGJvb2xlYW4gc2V0cyB3aGV0aGVyIHJlbW90ZWx5IGNyZWF0 aW5nIGJyYW5jaGVzIHdpbGwgYmUgZGVuaWVkCiMgICBpbiB0aGUgcmVwb3NpdG9yeS4gIEJ5 IGRlZmF1bHQgdGhpcyBpcyBhbGxvd2VkLgojCgojIC0tLSBDb21tYW5kIGxpbmUKcmVmbmFt ZT0iJDEiCm9sZHJldj0iJDIiCm5ld3Jldj0iJDMiCgojIC0tLSBTYWZldHkgY2hlY2sKaWYg WyAteiAiJEdJVF9ESVIiIF07IHRoZW4KCWVjaG8gIkRvbid0IHJ1biB0aGlzIHNjcmlwdCBm cm9tIHRoZSBjb21tYW5kIGxpbmUuIiA+JjIKCWVjaG8gIiAoaWYgeW91IHdhbnQsIHlvdSBj b3VsZCBzdXBwbHkgR0lUX0RJUiB0aGVuIHJ1biIgPiYyCgllY2hvICIgICQwIDxyZWY+IDxv bGRyZXY+IDxuZXdyZXY+KSIgPiYyCglleGl0IDEKZmkKCmlmIFsgLXogIiRyZWZuYW1lIiAt byAteiAiJG9sZHJldiIgLW8gLXogIiRuZXdyZXYiIF07IHRoZW4KCWVjaG8gInVzYWdlOiAk MCA8cmVmPiA8b2xkcmV2PiA8bmV3cmV2PiIgPiYyCglleGl0IDEKZmkKCiMgLS0tIENvbmZp ZwphbGxvd3VuYW5ub3RhdGVkPSQoZ2l0IGNvbmZpZyAtLWJvb2wgaG9va3MuYWxsb3d1bmFu bm90YXRlZCkKYWxsb3dkZWxldGVicmFuY2g9JChnaXQgY29uZmlnIC0tYm9vbCBob29rcy5h bGxvd2RlbGV0ZWJyYW5jaCkKZGVueWNyZWF0ZWJyYW5jaD0kKGdpdCBjb25maWcgLS1ib29s IGhvb2tzLmRlbnljcmVhdGVicmFuY2gpCmFsbG93ZGVsZXRldGFnPSQoZ2l0IGNvbmZpZyAt LWJvb2wgaG9va3MuYWxsb3dkZWxldGV0YWcpCmFsbG93bW9kaWZ5dGFnPSQoZ2l0IGNvbmZp ZyAtLWJvb2wgaG9va3MuYWxsb3dtb2RpZnl0YWcpCgojIGNoZWNrIGZvciBubyBkZXNjcmlw dGlvbgpwcm9qZWN0ZGVzYz0kKHNlZCAtZSAnMXEnICIkR0lUX0RJUi9kZXNjcmlwdGlvbiIp CmNhc2UgIiRwcm9qZWN0ZGVzYyIgaW4KIlVubmFtZWQgcmVwb3NpdG9yeSIqIHwgIiIpCgll Y2hvICIqKiogUHJvamVjdCBkZXNjcmlwdGlvbiBmaWxlIGhhc24ndCBiZWVuIHNldCIgPiYy CglleGl0IDEKCTs7CmVzYWMKCiMgLS0tIENoZWNrIHR5cGVzCiMgaWYgJG5ld3JldiBpcyAw MDAwLi4uMDAwMCwgaXQncyBhIGNvbW1pdCB0byBkZWxldGUgYSByZWYuCnplcm89IjAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiCmlmIFsgIiRuZXdyZXYiID0g IiR6ZXJvIiBdOyB0aGVuCgluZXdyZXZfdHlwZT1kZWxldGUKZWxzZQoJbmV3cmV2X3R5cGU9 JChnaXQgY2F0LWZpbGUgLXQgJG5ld3JldikKZmkKCmNhc2UgIiRyZWZuYW1lIiwiJG5ld3Jl dl90eXBlIiBpbgoJcmVmcy90YWdzLyosY29tbWl0KQoJCSMgdW4tYW5ub3RhdGVkIHRhZwoJ CXNob3J0X3JlZm5hbWU9JHtyZWZuYW1lIyNyZWZzL3RhZ3MvfQoJCWlmIFsgIiRhbGxvd3Vu YW5ub3RhdGVkIiAhPSAidHJ1ZSIgXTsgdGhlbgoJCQllY2hvICIqKiogVGhlIHVuLWFubm90 YXRlZCB0YWcsICRzaG9ydF9yZWZuYW1lLCBpcyBub3QgYWxsb3dlZCBpbiB0aGlzIHJlcG9z aXRvcnkiID4mMgoJCQllY2hvICIqKiogVXNlICdnaXQgdGFnIFsgLWEgfCAtcyBdJyBmb3Ig dGFncyB5b3Ugd2FudCB0byBwcm9wYWdhdGUuIiA+JjIKCQkJZXhpdCAxCgkJZmkKCQk7OwoJ cmVmcy90YWdzLyosZGVsZXRlKQoJCSMgZGVsZXRlIHRhZwoJCWlmIFsgIiRhbGxvd2RlbGV0 ZXRhZyIgIT0gInRydWUiIF07IHRoZW4KCQkJZWNobyAiKioqIERlbGV0aW5nIGEgdGFnIGlz IG5vdCBhbGxvd2VkIGluIHRoaXMgcmVwb3NpdG9yeSIgPiYyCgkJCWV4aXQgMQoJCWZpCgkJ OzsKCXJlZnMvdGFncy8qLHRhZykKCQkjIGFubm90YXRlZCB0YWcKCQlpZiBbICIkYWxsb3dt b2RpZnl0YWciICE9ICJ0cnVlIiBdICYmIGdpdCByZXYtcGFyc2UgJHJlZm5hbWUgPiAvZGV2 L251bGwgMj4mMQoJCXRoZW4KCQkJZWNobyAiKioqIFRhZyAnJHJlZm5hbWUnIGFscmVhZHkg ZXhpc3RzLiIgPiYyCgkJCWVjaG8gIioqKiBNb2RpZnlpbmcgYSB0YWcgaXMgbm90IGFsbG93 ZWQgaW4gdGhpcyByZXBvc2l0b3J5LiIgPiYyCgkJCWV4aXQgMQoJCWZpCgkJOzsKCXJlZnMv aGVhZHMvKixjb21taXQpCgkJIyBicmFuY2gKCQlpZiBbICIkb2xkcmV2IiA9ICIkemVybyIg LWEgIiRkZW55Y3JlYXRlYnJhbmNoIiA9ICJ0cnVlIiBdOyB0aGVuCgkJCWVjaG8gIioqKiBD cmVhdGluZyBhIGJyYW5jaCBpcyBub3QgYWxsb3dlZCBpbiB0aGlzIHJlcG9zaXRvcnkiID4m MgoJCQlleGl0IDEKCQlmaQoJCTs7CglyZWZzL2hlYWRzLyosZGVsZXRlKQoJCSMgZGVsZXRl IGJyYW5jaAoJCWlmIFsgIiRhbGxvd2RlbGV0ZWJyYW5jaCIgIT0gInRydWUiIF07IHRoZW4K CQkJZWNobyAiKioqIERlbGV0aW5nIGEgYnJhbmNoIGlzIG5vdCBhbGxvd2VkIGluIHRoaXMg cmVwb3NpdG9yeSIgPiYyCgkJCWV4aXQgMQoJCWZpCgkJOzsKCXJlZnMvcmVtb3Rlcy8qLGNv bW1pdCkKCQkjIHRyYWNraW5nIGJyYW5jaAoJCTs7CglyZWZzL3JlbW90ZXMvKixkZWxldGUp CgkJIyBkZWxldGUgdHJhY2tpbmcgYnJhbmNoCgkJaWYgWyAiJGFsbG93ZGVsZXRlYnJhbmNo IiAhPSAidHJ1ZSIgXTsgdGhlbgoJCQllY2hvICIqKiogRGVsZXRpbmcgYSB0cmFja2luZyBi cmFuY2ggaXMgbm90IGFsbG93ZWQgaW4gdGhpcyByZXBvc2l0b3J5IiA+JjIKCQkJZXhpdCAx CgkJZmkKCQk7OwoJKikKCQkjIEFueXRoaW5nIGVsc2UgKGlzIHRoZXJlIGFueXRoaW5nIGVs c2U/KQoJCWVjaG8gIioqKiBVcGRhdGUgaG9vazogdW5rbm93biB0eXBlIG9mIHVwZGF0ZSB0 byByZWYgJHJlZm5hbWUgb2YgdHlwZSAkbmV3cmV2X3R5cGUiID4mMgoJCWV4aXQgMQoJCTs7 CmVzYWMKCiMgLS0tIEZpbmlzaGVkCmV4aXQgMAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAByZXBhY2suZ2l0L2hvb2tzL3ByZS1yZWNlaXZlLnNhbXBs ZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAMDAwMDc1NQAwMDAxNzUwADAwMDE3NTAAMDAwMDAwMDExMzcAMTM0MjMz Njc3NTQAMDE2NjIwACAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAHVzdGFyICAAdGliYmUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0aWJiZQAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMhL2dudS9z dG9yZS9xMTlsMDR2ZDJ6YTgwbWsxODQ1cHo3cjhjejI5cWs0My1iYXNoLW1pbmltYWwtNC40 LjIzL2Jpbi9zaAojCiMgQW4gZXhhbXBsZSBob29rIHNjcmlwdCB0byBtYWtlIHVzZSBvZiBw dXNoIG9wdGlvbnMuCiMgVGhlIGV4YW1wbGUgc2ltcGx5IGVjaG9lcyBhbGwgcHVzaCBvcHRp b25zIHRoYXQgc3RhcnQgd2l0aCAnZWNob2JhY2s9JwojIGFuZCByZWplY3RzIGFsbCBwdXNo ZXMgd2hlbiB0aGUgInJlamVjdCIgcHVzaCBvcHRpb24gaXMgdXNlZC4KIwojIFRvIGVuYWJs ZSB0aGlzIGhvb2ssIHJlbmFtZSB0aGlzIGZpbGUgdG8gInByZS1yZWNlaXZlIi4KCmlmIHRl c3QgLW4gIiRHSVRfUFVTSF9PUFRJT05fQ09VTlQiCnRoZW4KCWk9MAoJd2hpbGUgdGVzdCAi JGkiIC1sdCAiJEdJVF9QVVNIX09QVElPTl9DT1VOVCIKCWRvCgkJZXZhbCAidmFsdWU9XCRH SVRfUFVTSF9PUFRJT05fJGkiCgkJY2FzZSAiJHZhbHVlIiBpbgoJCWVjaG9iYWNrPSopCgkJ CWVjaG8gImVjaG8gZnJvbSB0aGUgcHJlLXJlY2VpdmUtaG9vazogJHt2YWx1ZSMqPX0iID4m MgoJCQk7OwoJCXJlamVjdCkKCQkJZXhpdCAxCgkJZXNhYwoJCWk9JCgoaSArIDEpKQoJZG9u ZQpmaQoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAByZXBhY2suZ2l0 L2hvb2tzL3ByZS1wdXNoLnNhbXBsZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwMDc1NQAwMDAxNzUwADAw MDE3NTAAMDAwMDAwMDI2MDMAMTM0MjMzNjc3NTQAMDE2MTU0ACAwAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyICAAdGliYmUAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAB0aWJiZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAACMhL2dudS9zdG9yZS9xMTlsMDR2ZDJ6YTgwbWsxODQ1cHo3cjhj ejI5cWs0My1iYXNoLW1pbmltYWwtNC40LjIzL2Jpbi9zaAoKIyBBbiBleGFtcGxlIGhvb2sg c2NyaXB0IHRvIHZlcmlmeSB3aGF0IGlzIGFib3V0IHRvIGJlIHB1c2hlZC4gIENhbGxlZCBi eSAiZ2l0CiMgcHVzaCIgYWZ0ZXIgaXQgaGFzIGNoZWNrZWQgdGhlIHJlbW90ZSBzdGF0dXMs IGJ1dCBiZWZvcmUgYW55dGhpbmcgaGFzIGJlZW4KIyBwdXNoZWQuICBJZiB0aGlzIHNjcmlw dCBleGl0cyB3aXRoIGEgbm9uLXplcm8gc3RhdHVzIG5vdGhpbmcgd2lsbCBiZSBwdXNoZWQu CiMKIyBUaGlzIGhvb2sgaXMgY2FsbGVkIHdpdGggdGhlIGZvbGxvd2luZyBwYXJhbWV0ZXJz OgojCiMgJDEgLS0gTmFtZSBvZiB0aGUgcmVtb3RlIHRvIHdoaWNoIHRoZSBwdXNoIGlzIGJl aW5nIGRvbmUKIyAkMiAtLSBVUkwgdG8gd2hpY2ggdGhlIHB1c2ggaXMgYmVpbmcgZG9uZQoj CiMgSWYgcHVzaGluZyB3aXRob3V0IHVzaW5nIGEgbmFtZWQgcmVtb3RlIHRob3NlIGFyZ3Vt ZW50cyB3aWxsIGJlIGVxdWFsLgojCiMgSW5mb3JtYXRpb24gYWJvdXQgdGhlIGNvbW1pdHMg d2hpY2ggYXJlIGJlaW5nIHB1c2hlZCBpcyBzdXBwbGllZCBhcyBsaW5lcyB0bwojIHRoZSBz dGFuZGFyZCBpbnB1dCBpbiB0aGUgZm9ybToKIwojICAgPGxvY2FsIHJlZj4gPGxvY2FsIHNo YTE+IDxyZW1vdGUgcmVmPiA8cmVtb3RlIHNoYTE+CiMKIyBUaGlzIHNhbXBsZSBzaG93cyBo b3cgdG8gcHJldmVudCBwdXNoIG9mIGNvbW1pdHMgd2hlcmUgdGhlIGxvZyBtZXNzYWdlIHN0 YXJ0cwojIHdpdGggIldJUCIgKHdvcmsgaW4gcHJvZ3Jlc3MpLgoKcmVtb3RlPSIkMSIKdXJs PSIkMiIKCno0MD0wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCgp3 aGlsZSByZWFkIGxvY2FsX3JlZiBsb2NhbF9zaGEgcmVtb3RlX3JlZiByZW1vdGVfc2hhCmRv CglpZiBbICIkbG9jYWxfc2hhIiA9ICR6NDAgXQoJdGhlbgoJCSMgSGFuZGxlIGRlbGV0ZQoJ CToKCWVsc2UKCQlpZiBbICIkcmVtb3RlX3NoYSIgPSAkejQwIF0KCQl0aGVuCgkJCSMgTmV3 IGJyYW5jaCwgZXhhbWluZSBhbGwgY29tbWl0cwoJCQlyYW5nZT0iJGxvY2FsX3NoYSIKCQll bHNlCgkJCSMgVXBkYXRlIHRvIGV4aXN0aW5nIGJyYW5jaCwgZXhhbWluZSBuZXcgY29tbWl0 cwoJCQlyYW5nZT0iJHJlbW90ZV9zaGEuLiRsb2NhbF9zaGEiCgkJZmkKCgkJIyBDaGVjayBm b3IgV0lQIGNvbW1pdAoJCWNvbW1pdD1gZ2l0IHJldi1saXN0IC1uIDEgLS1ncmVwICdeV0lQ JyAiJHJhbmdlImAKCQlpZiBbIC1uICIkY29tbWl0IiBdCgkJdGhlbgoJCQllY2hvID4mMiAi Rm91bmQgV0lQIGNvbW1pdCBpbiAkbG9jYWxfcmVmLCBub3QgcHVzaGluZyIKCQkJZXhpdCAx CgkJZmkKCWZpCmRvbmUKCmV4aXQgMAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHJlcGFjay5naXQvaG9v a3MvZnNtb25pdG9yLXdhdGNobWFuLnNhbXBsZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAwNzU1ADAwMDE3NTAAMDAwMTc1 MAAwMDAwMDAwNjQ2MgAxMzQyMzM2Nzc1NAAwMjAyNDAAIDAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIAB0aWJiZQAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAHRpYmJlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAIyEvZ251L3N0b3JlL2RuYThrcGIwMGtxMTc2cno4eDY5eXk0ajMzbXky cTU1LXBlcmwtNS4yOC4wL2Jpbi9wZXJsCgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVz ZSBJUEM6Ok9wZW4yOwoKIyBBbiBleGFtcGxlIGhvb2sgc2NyaXB0IHRvIGludGVncmF0ZSBX YXRjaG1hbgojIChodHRwczovL2ZhY2Vib29rLmdpdGh1Yi5pby93YXRjaG1hbi8pIHdpdGgg Z2l0IHRvIHNwZWVkIHVwIGRldGVjdGluZwojIG5ldyBhbmQgbW9kaWZpZWQgZmlsZXMuCiMK IyBUaGUgaG9vayBpcyBwYXNzZWQgYSB2ZXJzaW9uIChjdXJyZW50bHkgMSkgYW5kIGEgdGlt ZSBpbiBuYW5vc2Vjb25kcwojIGZvcm1hdHRlZCBhcyBhIHN0cmluZyBhbmQgb3V0cHV0cyB0 byBzdGRvdXQgYWxsIGZpbGVzIHRoYXQgaGF2ZSBiZWVuCiMgbW9kaWZpZWQgc2luY2UgdGhl IGdpdmVuIHRpbWUuIFBhdGhzIG11c3QgYmUgcmVsYXRpdmUgdG8gdGhlIHJvb3Qgb2YKIyB0 aGUgd29ya2luZyB0cmVlIGFuZCBzZXBhcmF0ZWQgYnkgYSBzaW5nbGUgTlVMLgojCiMgVG8g ZW5hYmxlIHRoaXMgaG9vaywgcmVuYW1lIHRoaXMgZmlsZSB0byAicXVlcnktd2F0Y2htYW4i IGFuZCBzZXQKIyAnZ2l0IGNvbmZpZyBjb3JlLmZzbW9uaXRvciAuZ2l0L2hvb2tzL3F1ZXJ5 LXdhdGNobWFuJwojCm15ICgkdmVyc2lvbiwgJHRpbWUpID0gQEFSR1Y7CgojIENoZWNrIHRo ZSBob29rIGludGVyZmFjZSB2ZXJzaW9uCgppZiAoJHZlcnNpb24gPT0gMSkgewoJIyBjb252 ZXJ0IG5hbm9zZWNvbmRzIHRvIHNlY29uZHMKCSR0aW1lID0gaW50ICR0aW1lIC8gMTAwMDAw MDAwMDsKfSBlbHNlIHsKCWRpZSAiVW5zdXBwb3J0ZWQgcXVlcnktZnNtb25pdG9yIGhvb2sg dmVyc2lvbiAnJHZlcnNpb24nLlxuIiAuCgkgICAgIkZhbGxpbmcgYmFjayB0byBzY2Fubmlu Zy4uLlxuIjsKfQoKbXkgJGdpdF93b3JrX3RyZWU7CmlmICgkXk8gPX4gJ21zeXMnIHx8ICRe TyA9fiAnY3lnd2luJykgewoJJGdpdF93b3JrX3RyZWUgPSBXaW4zMjo6R2V0Q3dkKCk7Cgkk Z2l0X3dvcmtfdHJlZSA9fiB0ci9cXC9cLy87Cn0gZWxzZSB7CglyZXF1aXJlIEN3ZDsKCSRn aXRfd29ya190cmVlID0gQ3dkOjpjd2QoKTsKfQoKbXkgJHJldHJ5ID0gMTsKCmxhdW5jaF93 YXRjaG1hbigpOwoKc3ViIGxhdW5jaF93YXRjaG1hbiB7CgoJbXkgJHBpZCA9IG9wZW4yKFwq Q0hMRF9PVVQsIFwqQ0hMRF9JTiwgJ3dhdGNobWFuIC1qIC0tbm8tcHJldHR5JykKCSAgICBv ciBkaWUgIm9wZW4yKCkgZmFpbGVkOiAkIVxuIiAuCgkgICAgIkZhbGxpbmcgYmFjayB0byBz Y2FubmluZy4uLlxuIjsKCgkjIEluIHRoZSBxdWVyeSBleHByZXNzaW9uIGJlbG93IHdlJ3Jl IGFza2luZyBmb3IgbmFtZXMgb2YgZmlsZXMgdGhhdAoJIyBjaGFuZ2VkIHNpbmNlICR0aW1l IGJ1dCB3ZXJlIG5vdCB0cmFuc2llbnQgKGllIGNyZWF0ZWQgYWZ0ZXIKCSMgJHRpbWUgYnV0 IG5vIGxvbmdlciBleGlzdCkuCgkjCgkjIFRvIGFjY29tcGxpc2ggdGhpcywgd2UncmUgdXNp bmcgdGhlICJzaW5jZSIgZ2VuZXJhdG9yIHRvIHVzZSB0aGUKCSMgcmVjZW5jeSBpbmRleCB0 byBzZWxlY3QgY2FuZGlkYXRlIG5vZGVzIGFuZCAiZmllbGRzIiB0byBsaW1pdCB0aGUKCSMg b3V0cHV0IHRvIGZpbGUgbmFtZXMgb25seS4gVGhlbiB3ZSdyZSB1c2luZyB0aGUgImV4cHJl c3Npb24iIHRlcm0gdG8KCSMgZnVydGhlciBjb25zdHJhaW4gdGhlIHJlc3VsdHMuCgkjCgkj IFRoZSBjYXRlZ29yeSBvZiB0cmFuc2llbnQgZmlsZXMgdGhhdCB3ZSB3YW50IHRvIGlnbm9y ZSB3aWxsIGhhdmUgYQoJIyBjcmVhdGlvbiBjbG9jayAoY2Nsb2NrKSBuZXdlciB0aGFuICR0 aW1lX3QgdmFsdWUgYW5kIHdpbGwgYWxzbyBub3QKCSMgY3VycmVudGx5IGV4aXN0LgoKCW15 ICRxdWVyeSA9IDw8IglFTkQiOwoJCVsicXVlcnkiLCAiJGdpdF93b3JrX3RyZWUiLCB7CgkJ CSJzaW5jZSI6ICR0aW1lLAoJCQkiZmllbGRzIjogWyJuYW1lIl0sCgkJCSJleHByZXNzaW9u IjogWyJub3QiLCBbImFsbG9mIiwgWyJzaW5jZSIsICR0aW1lLCAiY2Nsb2NrIl0sIFsibm90 IiwgImV4aXN0cyJdXV0KCQl9XQoJRU5ECgoJcHJpbnQgQ0hMRF9JTiAkcXVlcnk7CgljbG9z ZSBDSExEX0lOOwoJbXkgJHJlc3BvbnNlID0gZG8ge2xvY2FsICQvOyA8Q0hMRF9PVVQ+fTsK CglkaWUgIldhdGNobWFuOiBjb21tYW5kIHJldHVybmVkIG5vIG91dHB1dC5cbiIgLgoJICAg ICJGYWxsaW5nIGJhY2sgdG8gc2Nhbm5pbmcuLi5cbiIgaWYgJHJlc3BvbnNlIGVxICIiOwoJ ZGllICJXYXRjaG1hbjogY29tbWFuZCByZXR1cm5lZCBpbnZhbGlkIG91dHB1dDogJHJlc3Bv bnNlXG4iIC4KCSAgICAiRmFsbGluZyBiYWNrIHRvIHNjYW5uaW5nLi4uXG4iIHVubGVzcyAk cmVzcG9uc2UgPX4gL15cey87CgoJbXkgJGpzb25fcGtnOwoJZXZhbCB7CgkJcmVxdWlyZSBK U09OOjpYUzsKCQkkanNvbl9wa2cgPSAiSlNPTjo6WFMiOwoJCTE7Cgl9IG9yIGRvIHsKCQly ZXF1aXJlIEpTT046OlBQOwoJCSRqc29uX3BrZyA9ICJKU09OOjpQUCI7Cgl9OwoKCW15ICRv ID0gJGpzb25fcGtnLT5uZXctPnV0ZjgtPmRlY29kZSgkcmVzcG9uc2UpOwoKCWlmICgkcmV0 cnkgPiAwIGFuZCAkby0+e2Vycm9yfSBhbmQgJG8tPntlcnJvcn0gPX4gbS91bmFibGUgdG8g cmVzb2x2ZSByb290IC4qIGRpcmVjdG9yeSAoLiopIGlzIG5vdCB3YXRjaGVkLykgewoJCXBy aW50IFNUREVSUiAiQWRkaW5nICckZ2l0X3dvcmtfdHJlZScgdG8gd2F0Y2htYW4ncyB3YXRj aCBsaXN0LlxuIjsKCQkkcmV0cnktLTsKCQlxeC93YXRjaG1hbiB3YXRjaCAiJGdpdF93b3Jr X3RyZWUiLzsKCQlkaWUgIkZhaWxlZCB0byBtYWtlIHdhdGNobWFuIHdhdGNoICckZ2l0X3dv cmtfdHJlZScuXG4iIC4KCQkgICAgIkZhbGxpbmcgYmFjayB0byBzY2FubmluZy4uLlxuIiBp ZiAkPyAhPSAwOwoKCQkjIFdhdGNobWFuIHdpbGwgYWx3YXlzIHJldHVybiBhbGwgZmlsZXMg b24gdGhlIGZpcnN0IHF1ZXJ5IHNvCgkJIyByZXR1cm4gdGhlIGZhc3QgImV2ZXJ5dGhpbmcg aXMgZGlydHkiIGZsYWcgdG8gZ2l0IGFuZCBkbyB0aGUKCQkjIFdhdGNobWFuIHF1ZXJ5IGp1 c3QgdG8gZ2V0IGl0IG92ZXIgd2l0aCBub3cgc28gd2Ugd29uJ3QgcGF5CgkJIyB0aGUgY29z dCBpbiBnaXQgdG8gbG9vayB1cCBlYWNoIGluZGl2aWR1YWwgZmlsZS4KCQlwcmludCAiL1ww IjsKCQlldmFsIHsgbGF1bmNoX3dhdGNobWFuKCkgfTsKCQlleGl0IDA7Cgl9CgoJZGllICJX YXRjaG1hbjogJG8tPntlcnJvcn0uXG4iIC4KCSAgICAiRmFsbGluZyBiYWNrIHRvIHNjYW5u aW5nLi4uXG4iIGlmICRvLT57ZXJyb3J9OwoKCWJpbm1vZGUgU1RET1VULCAiOnV0ZjgiOwoJ bG9jYWwgJCwgPSAiXDAiOwoJcHJpbnQgQHskby0+e2ZpbGVzfX07Cn0KAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAByZXBhY2suZ2l0L2hvb2tzL3Bvc3Qt dXBkYXRlLnNhbXBsZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwMDc1NQAwMDAxNzUwADAwMDE3NTAAMDAwMDAw MDAzNzQAMTM0MjMzNjc3NTQAMDE2NjYxACAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyICAAdGliYmUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAB0aWJiZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAACMhL2dudS9zdG9yZS9xMTlsMDR2ZDJ6YTgwbWsxODQ1cHo3cjhjejI5cWs0My1iYXNo LW1pbmltYWwtNC40LjIzL2Jpbi9zaAojCiMgQW4gZXhhbXBsZSBob29rIHNjcmlwdCB0byBw cmVwYXJlIGEgcGFja2VkIHJlcG9zaXRvcnkgZm9yIHVzZSBvdmVyCiMgZHVtYiB0cmFuc3Bv cnRzLgojCiMgVG8gZW5hYmxlIHRoaXMgaG9vaywgcmVuYW1lIHRoaXMgZmlsZSB0byAicG9z dC11cGRhdGUiLgoKZXhlYyBnaXQgdXBkYXRlLXNlcnZlci1pbmZvCgAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcmVwYWNrLmdpdC9ob29rcy9wcmUtYXBw bHlwYXRjaC5zYW1wbGUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMDA3NTUAMDAwMTc1MAAwMDAxNzUwADAwMDAwMDAw NzQ3ADEzNDIzMzY3NzU0ADAxNzM1MQAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAHRpYmJlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAdGliYmUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAjIS9nbnUvc3RvcmUvcTE5bDA0dmQyemE4MG1rMTg0NXB6N3I4Y3oyOXFrNDMtYmFzaC1t aW5pbWFsLTQuNC4yMy9iaW4vc2gKIwojIEFuIGV4YW1wbGUgaG9vayBzY3JpcHQgdG8gdmVy aWZ5IHdoYXQgaXMgYWJvdXQgdG8gYmUgY29tbWl0dGVkCiMgYnkgYXBwbHlwYXRjaCBmcm9t IGFuIGUtbWFpbCBtZXNzYWdlLgojCiMgVGhlIGhvb2sgc2hvdWxkIGV4aXQgd2l0aCBub24t emVybyBzdGF0dXMgYWZ0ZXIgaXNzdWluZyBhbgojIGFwcHJvcHJpYXRlIG1lc3NhZ2UgaWYg aXQgd2FudHMgdG8gc3RvcCB0aGUgY29tbWl0LgojCiMgVG8gZW5hYmxlIHRoaXMgaG9vaywg cmVuYW1lIHRoaXMgZmlsZSB0byAicHJlLWFwcGx5cGF0Y2giLgoKLiBnaXQtc2gtc2V0dXAK cHJlY29tbWl0PSIkKGdpdCByZXYtcGFyc2UgLS1naXQtcGF0aCBob29rcy9wcmUtY29tbWl0 KSIKdGVzdCAteCAiJHByZWNvbW1pdCIgJiYgZXhlYyAiJHByZWNvbW1pdCIgJHsxKyIkQCJ9 CjoKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHJlcGFjay5naXQvaG9va3MvcHJlLWNvbW1p dC5zYW1wbGUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAwNzU1ADAwMDE3NTAAMDAwMTc1MAAwMDAwMDAwMzI0 NQAxMzQyMzM2Nzc1NAAwMTY0NzAAIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAdXN0YXIgIAB0aWJiZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AHRpYmJlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA IyEvZ251L3N0b3JlL3ExOWwwNHZkMnphODBtazE4NDVwejdyOGN6MjlxazQzLWJhc2gtbWlu aW1hbC00LjQuMjMvYmluL3NoCiMKIyBBbiBleGFtcGxlIGhvb2sgc2NyaXB0IHRvIHZlcmlm eSB3aGF0IGlzIGFib3V0IHRvIGJlIGNvbW1pdHRlZC4KIyBDYWxsZWQgYnkgImdpdCBjb21t aXQiIHdpdGggbm8gYXJndW1lbnRzLiAgVGhlIGhvb2sgc2hvdWxkCiMgZXhpdCB3aXRoIG5v bi16ZXJvIHN0YXR1cyBhZnRlciBpc3N1aW5nIGFuIGFwcHJvcHJpYXRlIG1lc3NhZ2UgaWYK IyBpdCB3YW50cyB0byBzdG9wIHRoZSBjb21taXQuCiMKIyBUbyBlbmFibGUgdGhpcyBob29r LCByZW5hbWUgdGhpcyBmaWxlIHRvICJwcmUtY29tbWl0Ii4KCmlmIGdpdCByZXYtcGFyc2Ug LS12ZXJpZnkgSEVBRCA+L2Rldi9udWxsIDI+JjEKdGhlbgoJYWdhaW5zdD1IRUFECmVsc2UK CSMgSW5pdGlhbCBjb21taXQ6IGRpZmYgYWdhaW5zdCBhbiBlbXB0eSB0cmVlIG9iamVjdAoJ YWdhaW5zdD0kKGdpdCBoYXNoLW9iamVjdCAtdCB0cmVlIC9kZXYvbnVsbCkKZmkKCiMgSWYg eW91IHdhbnQgdG8gYWxsb3cgbm9uLUFTQ0lJIGZpbGVuYW1lcyBzZXQgdGhpcyB2YXJpYWJs ZSB0byB0cnVlLgphbGxvd25vbmFzY2lpPSQoZ2l0IGNvbmZpZyAtLWJvb2wgaG9va3MuYWxs b3dub25hc2NpaSkKCiMgUmVkaXJlY3Qgb3V0cHV0IHRvIHN0ZGVyci4KZXhlYyAxPiYyCgoj IENyb3NzIHBsYXRmb3JtIHByb2plY3RzIHRlbmQgdG8gYXZvaWQgbm9uLUFTQ0lJIGZpbGVu YW1lczsgcHJldmVudAojIHRoZW0gZnJvbSBiZWluZyBhZGRlZCB0byB0aGUgcmVwb3NpdG9y eS4gV2UgZXhwbG9pdCB0aGUgZmFjdCB0aGF0IHRoZQojIHByaW50YWJsZSByYW5nZSBzdGFy dHMgYXQgdGhlIHNwYWNlIGNoYXJhY3RlciBhbmQgZW5kcyB3aXRoIHRpbGRlLgppZiBbICIk YWxsb3dub25hc2NpaSIgIT0gInRydWUiIF0gJiYKCSMgTm90ZSB0aGF0IHRoZSB1c2Ugb2Yg YnJhY2tldHMgYXJvdW5kIGEgdHIgcmFuZ2UgaXMgb2sgaGVyZSwgKGl0J3MKCSMgZXZlbiBy ZXF1aXJlZCwgZm9yIHBvcnRhYmlsaXR5IHRvIFNvbGFyaXMgMTAncyAvdXNyL2Jpbi90ciks IHNpbmNlCgkjIHRoZSBzcXVhcmUgYnJhY2tldCBieXRlcyBoYXBwZW4gdG8gZmFsbCBpbiB0 aGUgZGVzaWduYXRlZCByYW5nZS4KCXRlc3QgJChnaXQgZGlmZiAtLWNhY2hlZCAtLW5hbWUt b25seSAtLWRpZmYtZmlsdGVyPUEgLXogJGFnYWluc3QgfAoJICBMQ19BTEw9QyB0ciAtZCAn WyAtfl1cMCcgfCB3YyAtYykgIT0gMAp0aGVuCgljYXQgPDxcRU9GCkVycm9yOiBBdHRlbXB0 IHRvIGFkZCBhIG5vbi1BU0NJSSBmaWxlIG5hbWUuCgpUaGlzIGNhbiBjYXVzZSBwcm9ibGVt cyBpZiB5b3Ugd2FudCB0byB3b3JrIHdpdGggcGVvcGxlIG9uIG90aGVyIHBsYXRmb3Jtcy4K ClRvIGJlIHBvcnRhYmxlIGl0IGlzIGFkdmlzYWJsZSB0byByZW5hbWUgdGhlIGZpbGUuCgpJ ZiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcgeW91IGNhbiBkaXNhYmxlIHRoaXMgY2hl Y2sgdXNpbmc6CgogIGdpdCBjb25maWcgaG9va3MuYWxsb3dub25hc2NpaSB0cnVlCkVPRgoJ ZXhpdCAxCmZpCgojIElmIHRoZXJlIGFyZSB3aGl0ZXNwYWNlIGVycm9ycywgcHJpbnQgdGhl IG9mZmVuZGluZyBmaWxlIG5hbWVzIGFuZCBmYWlsLgpleGVjIGdpdCBkaWZmLWluZGV4IC0t Y2hlY2sgLS1jYWNoZWQgJGFnYWluc3QgLS0KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAByZXBh Y2suZ2l0L2hvb2tzL3ByZS1yZWJhc2Uuc2FtcGxlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwMDc1NQAwMDAx NzUwADAwMDE3NTAAMDAwMDAwMTE2MjQAMTM0MjMzNjc3NTQAMDE2NDQxACAwAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyICAAdGliYmUAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0aWJiZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAACMhL2dudS9zdG9yZS9xMTlsMDR2ZDJ6YTgwbWsxODQ1 cHo3cjhjejI5cWs0My1iYXNoLW1pbmltYWwtNC40LjIzL2Jpbi9zaAojCiMgQ29weXJpZ2h0 IChjKSAyMDA2LCAyMDA4IEp1bmlvIEMgSGFtYW5vCiMKIyBUaGUgInByZS1yZWJhc2UiIGhv b2sgaXMgcnVuIGp1c3QgYmVmb3JlICJnaXQgcmViYXNlIiBzdGFydHMgZG9pbmcKIyBpdHMg am9iLCBhbmQgY2FuIHByZXZlbnQgdGhlIGNvbW1hbmQgZnJvbSBydW5uaW5nIGJ5IGV4aXRp bmcgd2l0aAojIG5vbi16ZXJvIHN0YXR1cy4KIwojIFRoZSBob29rIGlzIGNhbGxlZCB3aXRo IHRoZSBmb2xsb3dpbmcgcGFyYW1ldGVyczoKIwojICQxIC0tIHRoZSB1cHN0cmVhbSB0aGUg c2VyaWVzIHdhcyBmb3JrZWQgZnJvbS4KIyAkMiAtLSB0aGUgYnJhbmNoIGJlaW5nIHJlYmFz ZWQgKG9yIGVtcHR5IHdoZW4gcmViYXNpbmcgdGhlIGN1cnJlbnQgYnJhbmNoKS4KIwojIFRo aXMgc2FtcGxlIHNob3dzIGhvdyB0byBwcmV2ZW50IHRvcGljIGJyYW5jaGVzIHRoYXQgYXJl IGFscmVhZHkKIyBtZXJnZWQgdG8gJ25leHQnIGJyYW5jaCBmcm9tIGdldHRpbmcgcmViYXNl ZCwgYmVjYXVzZSBhbGxvd2luZyBpdAojIHdvdWxkIHJlc3VsdCBpbiByZWJhc2luZyBhbHJl YWR5IHB1Ymxpc2hlZCBoaXN0b3J5LgoKcHVibGlzaD1uZXh0CmJhc2VicmFuY2g9IiQxIgpp ZiB0ZXN0ICIkIyIgPSAyCnRoZW4KCXRvcGljPSJyZWZzL2hlYWRzLyQyIgplbHNlCgl0b3Bp Yz1gZ2l0IHN5bWJvbGljLXJlZiBIRUFEYCB8fAoJZXhpdCAwIDsjIHdlIGRvIG5vdCBpbnRl cnJ1cHQgcmViYXNpbmcgZGV0YWNoZWQgSEVBRApmaQoKY2FzZSAiJHRvcGljIiBpbgpyZWZz L2hlYWRzLz8/LyopCgk7OwoqKQoJZXhpdCAwIDsjIHdlIGRvIG5vdCBpbnRlcnJ1cHQgb3Ro ZXJzLgoJOzsKZXNhYwoKIyBOb3cgd2UgYXJlIGRlYWxpbmcgd2l0aCBhIHRvcGljIGJyYW5j aCBiZWluZyByZWJhc2VkCiMgb24gdG9wIG9mIG1hc3Rlci4gIElzIGl0IE9LIHRvIHJlYmFz ZSBpdD8KCiMgRG9lcyB0aGUgdG9waWMgcmVhbGx5IGV4aXN0PwpnaXQgc2hvdy1yZWYgLXEg IiR0b3BpYyIgfHwgewoJZWNobyA+JjIgIk5vIHN1Y2ggYnJhbmNoICR0b3BpYyIKCWV4aXQg MQp9CgojIElzIHRvcGljIGZ1bGx5IG1lcmdlZCB0byBtYXN0ZXI/Cm5vdF9pbl9tYXN0ZXI9 YGdpdCByZXYtbGlzdCAtLXByZXR0eT1vbmVsaW5lIF5tYXN0ZXIgIiR0b3BpYyJgCmlmIHRl c3QgLXogIiRub3RfaW5fbWFzdGVyIgp0aGVuCgllY2hvID4mMiAiJHRvcGljIGlzIGZ1bGx5 IG1lcmdlZCB0byBtYXN0ZXI7IGJldHRlciByZW1vdmUgaXQuIgoJZXhpdCAxIDsjIHdlIGNv dWxkIGFsbG93IGl0LCBidXQgdGhlcmUgaXMgbm8gcG9pbnQuCmZpCgojIElzIHRvcGljIGV2 ZXIgbWVyZ2VkIHRvIG5leHQ/ICBJZiBzbyB5b3Ugc2hvdWxkIG5vdCBiZSByZWJhc2luZyBp dC4Kb25seV9uZXh0XzE9YGdpdCByZXYtbGlzdCBebWFzdGVyICJeJHRvcGljIiAke3B1Ymxp c2h9IHwgc29ydGAKb25seV9uZXh0XzI9YGdpdCByZXYtbGlzdCBebWFzdGVyICAgICAgICAg ICAke3B1Ymxpc2h9IHwgc29ydGAKaWYgdGVzdCAiJG9ubHlfbmV4dF8xIiA9ICIkb25seV9u ZXh0XzIiCnRoZW4KCW5vdF9pbl90b3BpYz1gZ2l0IHJldi1saXN0ICJeJHRvcGljIiBtYXN0 ZXJgCglpZiB0ZXN0IC16ICIkbm90X2luX3RvcGljIgoJdGhlbgoJCWVjaG8gPiYyICIkdG9w aWMgaXMgYWxyZWFkeSB1cCB0byBkYXRlIHdpdGggbWFzdGVyIgoJCWV4aXQgMSA7IyB3ZSBj b3VsZCBhbGxvdyBpdCwgYnV0IHRoZXJlIGlzIG5vIHBvaW50LgoJZWxzZQoJCWV4aXQgMAoJ ZmkKZWxzZQoJbm90X2luX25leHQ9YGdpdCByZXYtbGlzdCAtLXByZXR0eT1vbmVsaW5lIF4k e3B1Ymxpc2h9ICIkdG9waWMiYAoJL2dudS9zdG9yZS9kbmE4a3BiMDBrcTE3NnJ6OHg2OXl5 NGozM215MnE1NS1wZXJsLTUuMjguMC9iaW4vcGVybCAtZSAnCgkJbXkgJHRvcGljID0gJEFS R1ZbMF07CgkJbXkgJG1zZyA9ICIqICR0b3BpYyBoYXMgY29tbWl0cyBhbHJlYWR5IG1lcmdl ZCB0byBwdWJsaWMgYnJhbmNoOlxuIjsKCQlteSAoJW5vdF9pbl9uZXh0KSA9IG1hcCB7CgkJ CS9eKFswLTlhLWZdKykgLzsKCQkJKCQxID0+IDEpOwoJCX0gc3BsaXQoL1xuLywgJEFSR1Zb MV0pOwoJCWZvciBteSAkZWxlbSAobWFwIHsKCQkJCS9eKFswLTlhLWZdKykgKC4qKSQvOwoJ CQkJWyQxID0+ICQyXTsKCQkJfSBzcGxpdCgvXG4vLCAkQVJHVlsyXSkpIHsKCQkJaWYgKCFl eGlzdHMgJG5vdF9pbl9uZXh0eyRlbGVtLT5bMF19KSB7CgkJCQlpZiAoJG1zZykgewoJCQkJ CXByaW50IFNUREVSUiAkbXNnOwoJCQkJCXVuZGVmICRtc2c7CgkJCQl9CgkJCQlwcmludCBT VERFUlIgIiAkZWxlbS0+WzFdXG4iOwoJCQl9CgkJfQoJJyAiJHRvcGljIiAiJG5vdF9pbl9u ZXh0IiAiJG5vdF9pbl9tYXN0ZXIiCglleGl0IDEKZmkKCjw8XERPQ19FTkQKClRoaXMgc2Ft cGxlIGhvb2sgc2FmZWd1YXJkcyB0b3BpYyBicmFuY2hlcyB0aGF0IGhhdmUgYmVlbgpwdWJs aXNoZWQgZnJvbSBiZWluZyByZXdvdW5kLgoKVGhlIHdvcmtmbG93IGFzc3VtZWQgaGVyZSBp czoKCiAqIE9uY2UgYSB0b3BpYyBicmFuY2ggZm9ya3MgZnJvbSAibWFzdGVyIiwgIm1hc3Rl ciIgaXMgbmV2ZXIKICAgbWVyZ2VkIGludG8gaXQgYWdhaW4gKGVpdGhlciBkaXJlY3RseSBv ciBpbmRpcmVjdGx5KS4KCiAqIE9uY2UgYSB0b3BpYyBicmFuY2ggaXMgZnVsbHkgY29va2Vk IGFuZCBtZXJnZWQgaW50byAibWFzdGVyIiwKICAgaXQgaXMgZGVsZXRlZC4gIElmIHlvdSBu ZWVkIHRvIGJ1aWxkIG9uIHRvcCBvZiBpdCB0byBjb3JyZWN0CiAgIGVhcmxpZXIgbWlzdGFr ZXMsIGEgbmV3IHRvcGljIGJyYW5jaCBpcyBjcmVhdGVkIGJ5IGZvcmtpbmcgYXQKICAgdGhl IHRpcCBvZiB0aGUgIm1hc3RlciIuICBUaGlzIGlzIG5vdCBzdHJpY3RseSBuZWNlc3Nhcnks IGJ1dAogICBpdCBtYWtlcyBpdCBlYXNpZXIgdG8ga2VlcCB5b3VyIGhpc3Rvcnkgc2ltcGxl LgoKICogV2hlbmV2ZXIgeW91IG5lZWQgdG8gdGVzdCBvciBwdWJsaXNoIHlvdXIgY2hhbmdl cyB0byB0b3BpYwogICBicmFuY2hlcywgbWVyZ2UgdGhlbSBpbnRvICJuZXh0IiBicmFuY2gu CgpUaGUgc2NyaXB0LCBiZWluZyBhbiBleGFtcGxlLCBoYXJkY29kZXMgdGhlIHB1Ymxpc2gg YnJhbmNoIG5hbWUKdG8gYmUgIm5leHQiLCBidXQgaXQgaXMgdHJpdmlhbCB0byBtYWtlIGl0 IGNvbmZpZ3VyYWJsZSB2aWEKJEdJVF9ESVIvY29uZmlnIG1lY2hhbmlzbS4KCldpdGggdGhp cyB3b3JrZmxvdywgeW91IHdvdWxkIHdhbnQgdG8ga25vdzoKCigxKSAuLi4gaWYgYSB0b3Bp YyBicmFuY2ggaGFzIGV2ZXIgYmVlbiBtZXJnZWQgdG8gIm5leHQiLiAgWW91bmcKICAgIHRv cGljIGJyYW5jaGVzIGNhbiBoYXZlIHN0dXBpZCBtaXN0YWtlcyB5b3Ugd291bGQgcmF0aGVy CiAgICBjbGVhbiB1cCBiZWZvcmUgcHVibGlzaGluZywgYW5kIHRoaW5ncyB0aGF0IGhhdmUg bm90IGJlZW4KICAgIG1lcmdlZCBpbnRvIG90aGVyIGJyYW5jaGVzIGNhbiBiZSBlYXNpbHkg cmViYXNlZCB3aXRob3V0CiAgICBhZmZlY3Rpbmcgb3RoZXIgcGVvcGxlLiAgQnV0IG9uY2Ug aXQgaXMgcHVibGlzaGVkLCB5b3Ugd291bGQKICAgIG5vdCB3YW50IHRvIHJld2luZCBpdC4K CigyKSAuLi4gaWYgYSB0b3BpYyBicmFuY2ggaGFzIGJlZW4gZnVsbHkgbWVyZ2VkIHRvICJt YXN0ZXIiLgogICAgVGhlbiB5b3UgY2FuIGRlbGV0ZSBpdC4gIE1vcmUgaW1wb3J0YW50bHks IHlvdSBzaG91bGQgbm90CiAgICBidWlsZCBvbiB0b3Agb2YgaXQgLS0gb3RoZXIgcGVvcGxl IG1heSBhbHJlYWR5IHdhbnQgdG8KICAgIGNoYW5nZSB0aGluZ3MgcmVsYXRlZCB0byB0aGUg dG9waWMgYXMgcGF0Y2hlcyBhZ2FpbnN0IHlvdXIKICAgICJtYXN0ZXIiLCBzbyBpZiB5b3Ug bmVlZCBmdXJ0aGVyIGNoYW5nZXMsIGl0IGlzIGJldHRlciB0bwogICAgZm9yayB0aGUgdG9w aWMgKHBlcmhhcHMgd2l0aCB0aGUgc2FtZSBuYW1lKSBhZnJlc2ggZnJvbSB0aGUKICAgIHRp cCBvZiAibWFzdGVyIi4KCkxldCdzIGxvb2sgYXQgdGhpcyBleGFtcGxlOgoKCQkgICBvLS0t by0tLW8tLS1vLS0tby0tLW8tLS1vLS0tby0tLW8tLS1vICJuZXh0IgoJCSAgLyAgICAgICAv ICAgICAgICAgICAvICAgICAgICAgICAvCgkJIC8gICBhLS0tYS0tLWIgQSAgICAgLyAgICAg ICAgICAgLwoJCS8gICAvICAgICAgICAgICAgICAgLyAgICAgICAgICAgLwoJICAgICAgIC8g ICAvICAgYy0tLWMtLS1jLS0tYyBCICAgICAgICAgLwoJICAgICAgLyAgIC8gICAvICAgICAg ICAgICAgIFwgICAgICAgICAvCgkgICAgIC8gICAvICAgLyAgIGItLS1iIEMgICAgIFwgICAg ICAgLwoJICAgIC8gICAvICAgLyAgIC8gICAgICAgICAgICAgXCAgICAgLwogICAgLS0tby0t LW8tLS1vLS0tby0tLW8tLS1vLS0tby0tLW8tLS1vLS0tby0tLW8gIm1hc3RlciIKCgpBLCBC IGFuZCBDIGFyZSB0b3BpYyBicmFuY2hlcy4KCiAqIEEgaGFzIG9uZSBmaXggc2luY2UgaXQg d2FzIG1lcmdlZCB1cCB0byAibmV4dCIuCgogKiBCIGhhcyBmaW5pc2hlZC4gIEl0IGhhcyBi ZWVuIGZ1bGx5IG1lcmdlZCB1cCB0byAibWFzdGVyIiBhbmQgIm5leHQiLAogICBhbmQgaXMg cmVhZHkgdG8gYmUgZGVsZXRlZC4KCiAqIEMgaGFzIG5vdCBtZXJnZWQgdG8gIm5leHQiIGF0 IGFsbC4KCldlIHdvdWxkIHdhbnQgdG8gYWxsb3cgQyB0byBiZSByZWJhc2VkLCByZWZ1c2Ug QSwgYW5kIGVuY291cmFnZQpCIHRvIGJlIGRlbGV0ZWQuCgpUbyBjb21wdXRlICgxKToKCgln aXQgcmV2LWxpc3QgXm1hc3RlciBedG9waWMgbmV4dAoJZ2l0IHJldi1saXN0IF5tYXN0ZXIg ICAgICAgIG5leHQKCglpZiB0aGVzZSBtYXRjaCwgdG9waWMgaGFzIG5vdCBtZXJnZWQgaW4g bmV4dCBhdCBhbGwuCgpUbyBjb21wdXRlICgyKToKCglnaXQgcmV2LWxpc3QgbWFzdGVyLi50 b3BpYwoKCWlmIHRoaXMgaXMgZW1wdHksIGl0IGlzIGZ1bGx5IG1lcmdlZCB0byAibWFzdGVy Ii4KCkRPQ19FTkQKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAcmVwYWNrLmdpdC9ob29rcy9wcmVwYXJlLWNvbW1pdC1tc2cuc2FtcGxl AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAADAwMDA3NTUAMDAwMTc1MAAwMDAxNzUwADAwMDAwMDAzMjU0ADEzNDIzMzY3NzU0ADAy MDEyNAAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1 c3RhciAgAHRpYmJlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdGliYmUAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjIS9nbnUvc3RvcmUvcTE5 bDA0dmQyemE4MG1rMTg0NXB6N3I4Y3oyOXFrNDMtYmFzaC1taW5pbWFsLTQuNC4yMy9iaW4v c2gKIwojIEFuIGV4YW1wbGUgaG9vayBzY3JpcHQgdG8gcHJlcGFyZSB0aGUgY29tbWl0IGxv ZyBtZXNzYWdlLgojIENhbGxlZCBieSAiZ2l0IGNvbW1pdCIgd2l0aCB0aGUgbmFtZSBvZiB0 aGUgZmlsZSB0aGF0IGhhcyB0aGUKIyBjb21taXQgbWVzc2FnZSwgZm9sbG93ZWQgYnkgdGhl IGRlc2NyaXB0aW9uIG9mIHRoZSBjb21taXQKIyBtZXNzYWdlJ3Mgc291cmNlLiAgVGhlIGhv b2sncyBwdXJwb3NlIGlzIHRvIGVkaXQgdGhlIGNvbW1pdAojIG1lc3NhZ2UgZmlsZS4gIElm IHRoZSBob29rIGZhaWxzIHdpdGggYSBub24temVybyBzdGF0dXMsCiMgdGhlIGNvbW1pdCBp cyBhYm9ydGVkLgojCiMgVG8gZW5hYmxlIHRoaXMgaG9vaywgcmVuYW1lIHRoaXMgZmlsZSB0 byAicHJlcGFyZS1jb21taXQtbXNnIi4KCiMgVGhpcyBob29rIGluY2x1ZGVzIHRocmVlIGV4 YW1wbGVzLiBUaGUgZmlyc3Qgb25lIHJlbW92ZXMgdGhlCiMgIiMgUGxlYXNlIGVudGVyIHRo ZSBjb21taXQgbWVzc2FnZS4uLiIgaGVscCBtZXNzYWdlLgojCiMgVGhlIHNlY29uZCBpbmNs dWRlcyB0aGUgb3V0cHV0IG9mICJnaXQgZGlmZiAtLW5hbWUtc3RhdHVzIC1yIgojIGludG8g dGhlIG1lc3NhZ2UsIGp1c3QgYmVmb3JlIHRoZSAiZ2l0IHN0YXR1cyIgb3V0cHV0LiAgSXQg aXMKIyBjb21tZW50ZWQgYmVjYXVzZSBpdCBkb2Vzbid0IGNvcGUgd2l0aCAtLWFtZW5kIG9y IHdpdGggc3F1YXNoZWQKIyBjb21taXRzLgojCiMgVGhlIHRoaXJkIGV4YW1wbGUgYWRkcyBh IFNpZ25lZC1vZmYtYnkgbGluZSB0byB0aGUgbWVzc2FnZSwgdGhhdCBjYW4KIyBzdGlsbCBi ZSBlZGl0ZWQuICBUaGlzIGlzIHJhcmVseSBhIGdvb2QgaWRlYS4KCkNPTU1JVF9NU0dfRklM RT0kMQpDT01NSVRfU09VUkNFPSQyClNIQTE9JDMKCi9nbnUvc3RvcmUvZG5hOGtwYjAwa3Ex NzZyejh4Njl5eTRqMzNteTJxNTUtcGVybC01LjI4LjAvYmluL3BlcmwgLWkuYmFrIC1uZSAn cHJpbnQgdW5sZXNzKG0vXi4gUGxlYXNlIGVudGVyIHRoZSBjb21taXQgbWVzc2FnZS8uLm0v XiMkLyknICIkQ09NTUlUX01TR19GSUxFIgoKIyBjYXNlICIkQ09NTUlUX1NPVVJDRSwkU0hB MSIgaW4KIyAgLHx0ZW1wbGF0ZSwpCiMgICAgL2dudS9zdG9yZS9kbmE4a3BiMDBrcTE3NnJ6 OHg2OXl5NGozM215MnE1NS1wZXJsLTUuMjguMC9iaW4vcGVybCAtaS5iYWsgLXBlICcKIyAg ICAgICBwcmludCAiXG4iIC4gYGdpdCBkaWZmIC0tY2FjaGVkIC0tbmFtZS1zdGF0dXMgLXJg CiMgCSBpZiAvXiMvICYmICRmaXJzdCsrID09IDAnICIkQ09NTUlUX01TR19GSUxFIiA7Owoj ICAqKSA7OwojIGVzYWMKCiMgU09CPSQoZ2l0IHZhciBHSVRfQ09NTUlUVEVSX0lERU5UIHwg c2VkIC1uICdzL15cKC4qPlwpLiokL1NpZ25lZC1vZmYtYnk6IFwxL3AnKQojIGdpdCBpbnRl cnByZXQtdHJhaWxlcnMgLS1pbi1wbGFjZSAtLXRyYWlsZXIgIiRTT0IiICIkQ09NTUlUX01T R19GSUxFIgojIGlmIHRlc3QgLXogIiRDT01NSVRfU09VUkNFIgojIHRoZW4KIyAgIC9nbnUv c3RvcmUvZG5hOGtwYjAwa3ExNzZyejh4Njl5eTRqMzNteTJxNTUtcGVybC01LjI4LjAvYmlu L3BlcmwgLWkuYmFrIC1wZSAncHJpbnQgIlxuIiBpZiAhJGZpcnN0X2xpbmUrKycgIiRDT01N SVRfTVNHX0ZJTEUiCiMgZmkKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHJlcGFjay5naXQvaG9va3MvYXBw bHlwYXRjaC1tc2cuc2FtcGxlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAwNzU1ADAwMDE3NTAAMDAwMTc1MAAwMDAw MDAwMTAzNQAxMzQyMzM2Nzc1NAAwMTczNDAAIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIAB0aWJiZQAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAHRpYmJlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAIyEvZ251L3N0b3JlL3ExOWwwNHZkMnphODBtazE4NDVwejdyOGN6MjlxazQzLWJh c2gtbWluaW1hbC00LjQuMjMvYmluL3NoCiMKIyBBbiBleGFtcGxlIGhvb2sgc2NyaXB0IHRv IGNoZWNrIHRoZSBjb21taXQgbG9nIG1lc3NhZ2UgdGFrZW4gYnkKIyBhcHBseXBhdGNoIGZy b20gYW4gZS1tYWlsIG1lc3NhZ2UuCiMKIyBUaGUgaG9vayBzaG91bGQgZXhpdCB3aXRoIG5v bi16ZXJvIHN0YXR1cyBhZnRlciBpc3N1aW5nIGFuCiMgYXBwcm9wcmlhdGUgbWVzc2FnZSBp ZiBpdCB3YW50cyB0byBzdG9wIHRoZSBjb21taXQuICBUaGUgaG9vayBpcwojIGFsbG93ZWQg dG8gZWRpdCB0aGUgY29tbWl0IG1lc3NhZ2UgZmlsZS4KIwojIFRvIGVuYWJsZSB0aGlzIGhv b2ssIHJlbmFtZSB0aGlzIGZpbGUgdG8gImFwcGx5cGF0Y2gtbXNnIi4KCi4gZ2l0LXNoLXNl dHVwCmNvbW1pdG1zZz0iJChnaXQgcmV2LXBhcnNlIC0tZ2l0LXBhdGggaG9va3MvY29tbWl0 LW1zZykiCnRlc3QgLXggIiRjb21taXRtc2ciICYmIGV4ZWMgIiRjb21taXRtc2ciICR7MSsi JEAifQo6CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAHJlcGFjay5naXQvaG9va3MvY29tbWl0LW1zZy5zYW1wbGUAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAw NzU1ADAwMDE3NTAAMDAwMTc1MAAwMDAwMDAwMTY3NwAxMzQyMzM2Nzc1NAAwMTY0NzcAIDAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIAB0 aWJiZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHRpYmJlAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIyEvZ251L3N0b3JlL3ExOWwwNHZkMnph ODBtazE4NDVwejdyOGN6MjlxazQzLWJhc2gtbWluaW1hbC00LjQuMjMvYmluL3NoCiMKIyBB biBleGFtcGxlIGhvb2sgc2NyaXB0IHRvIGNoZWNrIHRoZSBjb21taXQgbG9nIG1lc3NhZ2Uu CiMgQ2FsbGVkIGJ5ICJnaXQgY29tbWl0IiB3aXRoIG9uZSBhcmd1bWVudCwgdGhlIG5hbWUg b2YgdGhlIGZpbGUKIyB0aGF0IGhhcyB0aGUgY29tbWl0IG1lc3NhZ2UuICBUaGUgaG9vayBz aG91bGQgZXhpdCB3aXRoIG5vbi16ZXJvCiMgc3RhdHVzIGFmdGVyIGlzc3VpbmcgYW4gYXBw cm9wcmlhdGUgbWVzc2FnZSBpZiBpdCB3YW50cyB0byBzdG9wIHRoZQojIGNvbW1pdC4gIFRo ZSBob29rIGlzIGFsbG93ZWQgdG8gZWRpdCB0aGUgY29tbWl0IG1lc3NhZ2UgZmlsZS4KIwoj IFRvIGVuYWJsZSB0aGlzIGhvb2ssIHJlbmFtZSB0aGlzIGZpbGUgdG8gImNvbW1pdC1tc2ci LgoKIyBVbmNvbW1lbnQgdGhlIGJlbG93IHRvIGFkZCBhIFNpZ25lZC1vZmYtYnkgbGluZSB0 byB0aGUgbWVzc2FnZS4KIyBEb2luZyB0aGlzIGluIGEgaG9vayBpcyBhIGJhZCBpZGVhIGlu IGdlbmVyYWwsIGJ1dCB0aGUgcHJlcGFyZS1jb21taXQtbXNnCiMgaG9vayBpcyBtb3JlIHN1 aXRlZCB0byBpdC4KIwojIFNPQj0kKGdpdCB2YXIgR0lUX0FVVEhPUl9JREVOVCB8IHNlZCAt biAncy9eXCguKj5cKS4qJC9TaWduZWQtb2ZmLWJ5OiBcMS9wJykKIyBncmVwIC1xcyAiXiRT T0IiICIkMSIgfHwgZWNobyAiJFNPQiIgPj4gIiQxIgoKIyBUaGlzIGV4YW1wbGUgY2F0Y2hl cyBkdXBsaWNhdGUgU2lnbmVkLW9mZi1ieSBsaW5lcy4KCnRlc3QgIiIgPSAiJChncmVwICde U2lnbmVkLW9mZi1ieTogJyAiJDEiIHwKCSBzb3J0IHwgdW5pcSAtYyB8IHNlZCAtZSAnL15b IAldKjFbIAldL2QnKSIgfHwgewoJZWNobyA+JjIgRHVwbGljYXRlIFNpZ25lZC1vZmYtYnkg bGluZXMuCglleGl0IDEKfQoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= --------------FC63667E872AFF73A076AEF5-- --LCLJhGdLPd2ALh0lbweIsdLYMXZ9LYkgc-- --QAiz8FO8ESrYfRlDkSBJGmM6F1ffwrZ40 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- iQEzBAEBCgAdFiEEKUiC5+8BRKEri5fa0uWPaa77GdUFAlxN8VAACgkQ0uWPaa77 GdUC9ggAqvGBGRMpeKkI+8AbG/oKL59E8+ojaHqOuD5LWBMpTET8rrXY5uU/WuWH vAYJ6GyKQ0kq0fFrXdHDN10LYYQmpILdZW7lZ9kJQS3Jj1hnGDbk3MYW0+TDU9sn o11EtkXbsSeiB7wX6Yxm1H5jY8sR2ZZDpYf2k1nN3tt7qCv5vZyW1v+/JHtNEyUn TsC4WgI5MVrs4piUmlm8wzr2Kw4xWPPmFa+9qb/vKEzIrouAENZ0Cf3chU2IqSz1 bkMS2xKsZMMszEZwZJ9qjzkVBu/MJE/HJQcviu4t+3ViSWvP6hnwWktME37NRBhA ASZ20RQjS44XmVpLVWeaK5D2nBVh3A== =kM7Q -----END PGP SIGNATURE----- --QAiz8FO8ESrYfRlDkSBJGmM6F1ffwrZ40--
Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.505 (Entity 5.505) Content-Type: text/plain; charset=utf-8 X-Loop: help-debbugs@HIDDEN From: help-debbugs@HIDDEN (GNU bug Tracking System) To: Tim Gesthuizen <tim.gesthuizen@HIDDEN> Subject: bug#34223: Acknowledgement (Fixing timestamps in archives.) Message-ID: <handler.34223.B.154861194519437.ack <at> debbugs.gnu.org> References: <e13090c1-dabb-da63-cc62-3975f2697527@HIDDEN> X-Gnu-PR-Message: ack 34223 X-Gnu-PR-Package: guix-patches Reply-To: 34223 <at> debbugs.gnu.org Date: Sun, 27 Jan 2019 18:00:03 +0000 Thank you for filing a new bug report with debbugs.gnu.org. This is an automatically generated reply to let you know your message has been received. Your message is being forwarded to the package maintainers and other interested parties for their attention; they will reply in due course. Your message has been sent to the package maintainer(s): guix-patches@HIDDEN If you wish to submit further information on this problem, please send it to 34223 <at> debbugs.gnu.org. Please do not send mail to help-debbugs@HIDDEN unless you wish to report a problem with the Bug-tracking system. --=20 34223: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D34223 GNU Bug Tracking System Contact help-debbugs@HIDDEN with problems
X-Loop: help-debbugs@HIDDEN Subject: [bug#34223] Fixing timestamps in archives. Resent-From: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: guix-patches@HIDDEN Resent-Date: Sat, 16 Feb 2019 22:37:01 +0000 Resent-Message-ID: <handler.34223.B34223.155035656231188 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 34223 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: To: Tim Gesthuizen <tim.gesthuizen@HIDDEN> Cc: 34223 <at> debbugs.gnu.org Received: via spool by 34223-submit <at> debbugs.gnu.org id=B34223.155035656231188 (code B ref 34223); Sat, 16 Feb 2019 22:37:01 +0000 Received: (at 34223) by debbugs.gnu.org; 16 Feb 2019 22:36:02 +0000 Received: from localhost ([127.0.0.1]:50590 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1gv8Z0-00086y-5z for submit <at> debbugs.gnu.org; Sat, 16 Feb 2019 17:36:02 -0500 Received: from hera.aquilenet.fr ([185.233.100.1]:33184) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <ludo@HIDDEN>) id 1gv8Yx-00086W-Dv for 34223 <at> debbugs.gnu.org; Sat, 16 Feb 2019 17:36:00 -0500 Received: from localhost (localhost [127.0.0.1]) by hera.aquilenet.fr (Postfix) with ESMTP id DA423107F3; Sat, 16 Feb 2019 23:35:57 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at aquilenet.fr Received: from hera.aquilenet.fr ([127.0.0.1]) by localhost (hera.aquilenet.fr [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ppFhG43Yz2mD; Sat, 16 Feb 2019 23:35:57 +0100 (CET) Received: from ribbon (unknown [IPv6:2a01:e0a:1d:7270:af76:b9b:ca24:c465]) by hera.aquilenet.fr (Postfix) with ESMTPSA id E0574107DB; Sat, 16 Feb 2019 23:35:56 +0100 (CET) From: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN> References: <e13090c1-dabb-da63-cc62-3975f2697527@HIDDEN> Date: Sat, 16 Feb 2019 23:35:50 +0100 In-Reply-To: <e13090c1-dabb-da63-cc62-3975f2697527@HIDDEN> (Tim Gesthuizen's message of "Sun, 27 Jan 2019 18:58:38 +0100") Message-ID: <87imxjfjjt.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: 1.0 (+) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.0 (/) --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Hi Tim, Sorry for the delay! Tim Gesthuizen <tim.gesthuizen@HIDDEN> skribis: > as discussed before I have looked into the problems of timestamps in the > zip files. > I looked at the way this is solved in ant-build-system with jar files > and thought that this could be done in a more elegant way. > Because of this I wrote a simple frontend for LibArchive in C that > repacks archives and sets their timestamps to zero and disables > compression as it is done in the ant-build-system. > Creative as I am the program is called repack. > You find a git repository attached with the history of the repack program. > The attached patches add repack to Guix and use it for pwsafe and the > ant-build-system. Nice work! It=E2=80=99s great that libarchive doesn=E2=80=99t need to actu= ally extract the zip file to operate on it. Overall I think the approach of factorizing archive-timestamp-resetting in one place and using it everywhere (=E2=80=98ant-build-system=E2=80=99 an= d all) is the right thing to do. However, I=E2=80=99m not sure whether we should introduce a new program for= this purpose. I believe =E2=80=98strip-nondeterminism=E2=80=99=C2=B9 (in Perl) = by fellow Reproducible Builds hackers also addresses this problem, so it may be wiser to use it. But really, since (guix build utils) already implements a significant subset of =E2=80=98strip-nondeterminism=E2=80=99, it would be even better i= f could avoid to shell out to a C or Perl program. I played a bit with this idea and, as an example, the attached file allows you to traverse the list of entries in a zip file (it uses =E2=80=98guile-bytestructures=E2=80=99). Specifically, you can get the lis= t of file names in a zip file by running: (call-with-input-file "something.zip" (lambda (port) (fold-entries cons '() port))) Resetting timestamps should be just as simple. How about taking this route? Thanks, Ludo=E2=80=99. =C2=B9 https://salsa.debian.org/reproducible-builds/strip-nondeterminism --=-=-= Content-Type: text/plain Content-Disposition: inline; filename=zip.scm Content-Description: zip (define-module (guix zip) #:use-module (rnrs bytevectors) #:use-module (rnrs io ports) #:use-module (bytestructures guile) #:use-module (ice-9 match) #:export (fold-entries)) (define <file-header> ;; File header, see ;; <https://en.wikipedia.org/wiki/Zip_(file_format)#File_headers>. (bs:struct #t ;packed `((signature ,uint32le) (version-needed ,uint16le) (flags ,uint16le) (compression ,uint16le) (modification-time ,uint16le) (modification-date ,uint16le) (crc32 ,uint32le) (compressed-size ,uint32le) (uncompressed-size ,uint32le) (file-name-length ,uint16le) (extra-field-length ,uint16le)))) (define-bytestructure-accessors <file-header> file-header-unwrap file-header-ref set-file-header!) (define (fold-entries proc seed port) "Fold PROC over all the entries in the zip file at PORT." (let loop ((result seed)) (match (get-bytevector-n port (bytestructure-descriptor-size <file-header>)) ((? bytevector? bv) (match (file-header-ref bv signature) (#x04034b50 ;local file header (let* ((len (file-header-ref bv file-name-length)) (name (utf8->string (get-bytevector-n port len)))) (set-port-position! port (+ (file-header-ref bv extra-field-length) (file-header-ref bv compressed-size) (port-position port))) (loop (proc name result)))) (#x02014b50 ;central directory record result) (#x06054b50 ;end of central directory record result))) ((? eof-object?) result)))) --=-=-=--
X-Loop: help-debbugs@HIDDEN Subject: [bug#34223] Fixing timestamps in archives. Resent-From: Julien Lepiller <julien@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: guix-patches@HIDDEN Resent-Date: Sun, 17 Feb 2019 07:43:01 +0000 Resent-Message-ID: <handler.34223.B34223.155038934718098 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 34223 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: To: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>, Tim Gesthuizen <tim.gesthuizen@HIDDEN> Cc: 34223 <at> debbugs.gnu.org Received: via spool by 34223-submit <at> debbugs.gnu.org id=B34223.155038934718098 (code B ref 34223); Sun, 17 Feb 2019 07:43:01 +0000 Received: (at 34223) by debbugs.gnu.org; 17 Feb 2019 07:42:27 +0000 Received: from localhost ([127.0.0.1]:50689 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1gvH5n-0004hq-4y for submit <at> debbugs.gnu.org; Sun, 17 Feb 2019 02:42:27 -0500 Received: from lepiller.eu ([89.234.186.109]:51316) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <julien@HIDDEN>) id 1gvH5k-0004hg-5N for 34223 <at> debbugs.gnu.org; Sun, 17 Feb 2019 02:42:25 -0500 Received: from [100.119.44.101] (ori.enn.lu [85.248.227.163]) by lepiller.eu (OpenSMTPD) with ESMTPSA id 1ca94b61 (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256:NO); Sun, 17 Feb 2019 07:42:21 +0000 (UTC) Date: Sun, 17 Feb 2019 08:42:09 +0100 User-Agent: K-9 Mail for Android In-Reply-To: <87imxjfjjt.fsf@HIDDEN> References: <e13090c1-dabb-da63-cc62-3975f2697527@HIDDEN> <87imxjfjjt.fsf@HIDDEN> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable From: Julien Lepiller <julien@HIDDEN> Message-ID: <2223B2BF-B691-45B1-82FE-A781CBFF0CDB@HIDDEN> X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Le 16 f=C3=A9vrier 2019 23:35:50 GMT+01:00, "Ludovic Court=C3=A8s" <ludo@gn= u=2Eorg> a =C3=A9crit : >Hi Tim, > >Sorry for the delay! > >Tim Gesthuizen <tim=2Egesthuizen@yahoo=2Ede> skribis: > >> as discussed before I have looked into the problems of timestamps in >the >> zip files=2E >> I looked at the way this is solved in ant-build-system with jar files >> and thought that this could be done in a more elegant way=2E >> Because of this I wrote a simple frontend for LibArchive in C that >> repacks archives and sets their timestamps to zero and disables >> compression as it is done in the ant-build-system=2E >> Creative as I am the program is called repack=2E >> You find a git repository attached with the history of the repack >program=2E >> The attached patches add repack to Guix and use it for pwsafe and the >> ant-build-system=2E > >Nice work! It=E2=80=99s great that libarchive doesn=E2=80=99t need to ac= tually extract >the zip file to operate on it=2E > >Overall I think the approach of factorizing archive-timestamp-resetting >in one place and using it everywhere (=E2=80=98ant-build-system=E2=80=99 = and all) is >the >right thing to do=2E > >However, I=E2=80=99m not sure whether we should introduce a new program f= or >this >purpose=2E I believe =E2=80=98strip-nondeterminism=E2=80=99=C2=B9 (in Pe= rl) by fellow >Reproducible Builds hackers also addresses this problem, so it may be >wiser to use it=2E > >But really, since (guix build utils) already implements a significant >subset of =E2=80=98strip-nondeterminism=E2=80=99, it would be even better= if could >avoid >to shell out to a C or Perl program=2E > >I played a bit with this idea and, as an example, the attached file >allows you to traverse the list of entries in a zip file (it uses >=E2=80=98guile-bytestructures=E2=80=99)=2E Specifically, you can get the= list of file >names in a zip file by running: > > (call-with-input-file "something=2Ezip" > (lambda (port) > (fold-entries cons '() port))) > >Resetting timestamps should be just as simple=2E > >How about taking this route? > >Thanks, >Ludo=E2=80=99=2E > >=C2=B9 https://salsa=2Edebian=2Eorg/reproducible-builds/strip-nondetermin= ism One of the reasons why we extract jar files is to remove compression, beca= use the content might have store references that would be hidden, so grafti= ng for instance wouldn't work=2E
X-Loop: help-debbugs@HIDDEN Subject: [bug#34223] Fixing timestamps in archives. Resent-From: Tim Gesthuizen <tim.gesthuizen@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: guix-patches@HIDDEN Resent-Date: Mon, 18 Feb 2019 20:10:02 +0000 Resent-Message-ID: <handler.34223.B34223.155052055517901 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 34223 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: To: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN> Cc: 34223 <at> debbugs.gnu.org Received: via spool by 34223-submit <at> debbugs.gnu.org id=B34223.155052055517901 (code B ref 34223); Mon, 18 Feb 2019 20:10:02 +0000 Received: (at 34223) by debbugs.gnu.org; 18 Feb 2019 20:09:15 +0000 Received: from localhost ([127.0.0.1]:53233 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1gvpE3-0004ee-3V for submit <at> debbugs.gnu.org; Mon, 18 Feb 2019 15:09:15 -0500 Received: from sonic308-46.consmr.mail.ir2.yahoo.com ([77.238.178.182]:43626) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <tim.gesthuizen@HIDDEN>) id 1gvpDz-0004eG-Lz for 34223 <at> debbugs.gnu.org; Mon, 18 Feb 2019 15:09:13 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.de; s=s2048; t=1550520545; bh=tCuUgTzHU9WqSb2wg5b1gb4B2rtgjHOvcBe0+Hw1W10=; h=References:From:To:Cc:Subject:Date:From:Subject; b=PMDlozYi7q0VSwX84UNbqqqByLkJzxl9r2ngdhqchwdigc4xO3ZFACPWq7ULM3ytIH4FkKx5SFSi1/eWgWKfu6T8hJhDXNxhyIVArnKOWgl58Hy2ECINyiHikklt4p7J8kS+/WmJnXPW6lI029iUivefqTVv6Ts4sL55RCOkHed45GLx7VG3YfbE7Sn7WYW8nLQQDgkCVo+qKegfqT4MdfR9WE0VQpJ8LXs2nZ2j8LuS8qzgNRPvgW5OrAOd3okn2dQqPHQMVQzYrvcgcmjfrnJZ//aFUlqBlolT30YHpL3M4hp718HC4da6ebXqu0V0cDrVp/pOZ27eqbcYhXqfCA== X-YMail-OSG: ttJ5GN4VM1lg8vyeojrgHJWk1_qBlGkB3BNy2N3Kstr1PBJdZPqK4jVTHOdci24 rWLicupUD2A3pIq.F5oo2RhOQSdaW8KFgDWy4YDWdWeeIFNRzaQxa3bC1JEXwPLETnxITal2qUkO qTc7lXh_McxsNRsGBmx6cBPKxy4sVz8C_X7avUyO6VlnuqXshDJORR28jwmuN8IcpS2draDzt6Qe F6ITxe2Fk5yzaJyfSW0eRLOuJ2gWC86tXHARl_RR_BC8WwPZ5qDiIFbPl30u5jdqQPZXtv40Sy9F cvgPR0sYfEZ4HJP_nziKa7dfV7q43KSnUWhflGzpmVBNgVJrc6JAolNib6MRKTLStmC8lH0Watck MZhJjkyFPyMRKxwBNzg2gPq5w57Q19nBOPFX4UThm07x4WR9SprGgs4E7mTs9n7LxfQfrWQP_lMO wM0CyX0YGQbDw.JgYxBNnZ0XOSbjHakSZdrilCAWyXlS1VIZTQNslXk.h6wisD_7gyD.u0UHHLwo hvQUhieBYokQgnodPvmo0GV_wtsfRmHUaurbYFElKMmVHxHbvS6O0csDKFEyHhjxCFzdRqfyEVEJ BtYffaE7DcgapvpANbIxufwHFbKd8bBQQK8D7pa.Y2NaN03lEu2HK.HbE1gmWsuEQzGS6wWaLuJa jGJkiU5TgqgW8_iAW7lqb8BxNbepIWqZWyGkC68F_MBRquPQBu2.dgulFjoaDXCpwAHguFE5Dh3i mdKgQsMNZw.S5SdiFL6VoCvso.NNs1WfVC2AVTuVrEg01daf1ONQ5H75PtFvDGVPSZQoRaYJIgVE yJAjnwPC7info0gZXnik5qQwyzfNA7HxZRcIn3bfwz8iF19DWIYkntBaW2WxcJ7o8seoUTDME72E s9x.wNZmsDaANlYjtEyshqhe9wJa.VzwaZ.0X9rb6GSQQNgXlRGJ_n.247y.mGPGDug9hOlJsmxD fS5yFVSNLs.YdihS_.L3UouFOpx_FrVErMYmLROqbM1mlQxKmq_cchBvEdLZOJHookqtH1nU_OdP KYOYY6lCgG47sxY.7chsl2OitRXy9dK_DFwC.yitmVuoEsa.G45oHWxkc_9rjLDeZX5WJUExAPd8 sLXsBKueowoA- Received: from sonic.gate.mail.ne1.yahoo.com by sonic308.consmr.mail.ir2.yahoo.com with HTTP; Mon, 18 Feb 2019 20:09:05 +0000 Received: from ip5f5acae8.dynamic.kabel-deutschland.de (EHLO finkpad) ([95.90.202.232]) by smtp417.mail.ir2.yahoo.com (Oath Hermes SMTP Server) with ESMTPA ID 43723de76d8d571528accb93b07fd52c; Mon, 18 Feb 2019 20:07:04 +0000 (UTC) References: <e13090c1-dabb-da63-cc62-3975f2697527@HIDDEN> <87imxjfjjt.fsf@HIDDEN> User-agent: mu4e 1.0; emacs 26.1 From: Tim Gesthuizen <tim.gesthuizen@HIDDEN> In-reply-to: <87imxjfjjt.fsf@HIDDEN> Date: Mon, 18 Feb 2019 21:07:03 +0100 Message-ID: <87mumshndk.fsf@HIDDEN> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Hi Ludo, > Sorry for the delay! No problem! I have very little time anyway. > Nice work! It=E2=80=99s great that libarchive doesn=E2=80=99t need to ac= tually extract > the zip file to operate on it. > > Overall I think the approach of factorizing archive-timestamp-resetting > in one place and using it everywhere (=E2=80=98ant-build-system=E2=80=99 = and all) is the > right thing to do. > > However, I=E2=80=99m not sure whether we should introduce a new program f= or this > purpose. I believe =E2=80=98strip-nondeterminism=E2=80=99=C2=B9 (in Perl= ) by fellow > Reproducible Builds hackers also addresses this problem, so it may be > wiser to use it. I also think so. If there is already another program that does the job we should probably use it. > But really, since (guix build utils) already implements a significant > subset of =E2=80=98strip-nondeterminism=E2=80=99, it would be even better= if could avoid > to shell out to a C or Perl program. > > I played a bit with this idea and, as an example, the attached file > allows you to traverse the list of entries in a zip file (it uses > =E2=80=98guile-bytestructures=E2=80=99). Specifically, you can get the l= ist of file > names in a zip file by running: > > (call-with-input-file "something.zip" > (lambda (port) > (fold-entries cons '() port))) > > Resetting timestamps should be just as simple. > > How about taking this route? I also thought about taking this route. There are some problems with it though: - As Julien pointed out, the archive contents need to be uncompressed. This makes the problem much more complex and keeps us from writing a partial ZIP parser that replaces the timestamps in place. - While it would be quite elegant to just implement the parser in Scheme it would be redundant. After all we are developing a package manager so we should use it. This approach would be more attractive if there would be a Guile library for this. The best solution would be creating a proper library for handling archives when going with Scheme. - Maintaining a ZIP parser in Guix is a burden we should not take. - We need to care about a lot of details (ZIP64, probably more exotic extensions). I would be fine with writing an own parser in Scheme but I would like to point out that in every other place in Guix we are using external tools for handling archives (AFAIK). I am not quite sure which version would be the best, so I am open for other opinions on this. Maybe you could rephrase your position taking the compression problem into consideration. Tim.
X-Loop: help-debbugs@HIDDEN Subject: [bug#34223] Fixing timestamps in archives. Resent-From: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: guix-patches@HIDDEN Resent-Date: Mon, 18 Feb 2019 22:25:02 +0000 Resent-Message-ID: <handler.34223.B34223.15505286567487 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 34223 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: To: Tim Gesthuizen <tim.gesthuizen@HIDDEN> Cc: 34223 <at> debbugs.gnu.org Received: via spool by 34223-submit <at> debbugs.gnu.org id=B34223.15505286567487 (code B ref 34223); Mon, 18 Feb 2019 22:25:02 +0000 Received: (at 34223) by debbugs.gnu.org; 18 Feb 2019 22:24:16 +0000 Received: from localhost ([127.0.0.1]:53349 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1gvrKh-0001wh-QA for submit <at> debbugs.gnu.org; Mon, 18 Feb 2019 17:24:15 -0500 Received: from hera.aquilenet.fr ([185.233.100.1]:36682) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <ludo@HIDDEN>) id 1gvrKg-0001wZ-IQ for 34223 <at> debbugs.gnu.org; Mon, 18 Feb 2019 17:24:15 -0500 Received: from localhost (localhost [127.0.0.1]) by hera.aquilenet.fr (Postfix) with ESMTP id 52E1B111DC; Mon, 18 Feb 2019 23:24:13 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at aquilenet.fr Received: from hera.aquilenet.fr ([127.0.0.1]) by localhost (hera.aquilenet.fr [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id lKcTsv23v48w; Mon, 18 Feb 2019 23:24:12 +0100 (CET) Received: from ribbon (100.red-2-137-89.dynamicip.rima-tde.net [2.137.89.100]) by hera.aquilenet.fr (Postfix) with ESMTPSA id 5C11AE80F; Mon, 18 Feb 2019 23:24:12 +0100 (CET) From: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN> References: <e13090c1-dabb-da63-cc62-3975f2697527@HIDDEN> <87imxjfjjt.fsf@HIDDEN> <87mumshndk.fsf@HIDDEN> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 30 =?UTF-8?Q?Pluvi=C3=B4se?= an 227 de la =?UTF-8?Q?R=C3=A9volution?= X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-pc-linux-gnu Date: Mon, 18 Feb 2019 23:24:11 +0100 In-Reply-To: <87mumshndk.fsf@HIDDEN> (Tim Gesthuizen's message of "Mon, 18 Feb 2019 21:07:03 +0100") Message-ID: <87pnro91mc.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 1.0 (+) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.0 (/) Hello, Tim Gesthuizen <tim.gesthuizen@HIDDEN> skribis: >> I played a bit with this idea and, as an example, the attached file >> allows you to traverse the list of entries in a zip file (it uses >> =E2=80=98guile-bytestructures=E2=80=99). Specifically, you can get the = list of file >> names in a zip file by running: >> >> (call-with-input-file "something.zip" >> (lambda (port) >> (fold-entries cons '() port))) >> >> Resetting timestamps should be just as simple. >> >> How about taking this route? > > I also thought about taking this route. > There are some problems with it though: > > - As Julien pointed out, the archive contents need to be uncompressed. > This makes the problem much more complex and keeps us from writing > a partial ZIP parser that replaces the timestamps in place. True, I had overlooked that. In that case, we should definitely unpack and repack using the =E2=80=98zip=E2=80=99 package (I wasn=E2=80=99t sugges= ting to write a complete =E2=80=98zip=E2=80=99 implementation; I do think it would be valua= ble in the long term, but it=E2=80=99s a project for another time, no question here.) In that case though, it probably doesn=E2=80=99t buy us much to use libarch= ive in a separate C program, WDYT? Should we just stick to the current approach that invokes =E2=80=98unzip=E2=80=99 and =E2=80=98zip=E2=80=99? Thanks, Ludo=E2=80=99.
X-Loop: help-debbugs@HIDDEN Subject: [bug#34223] Fixing timestamps in archives. Resent-From: Tim Gesthuizen <tim.gesthuizen@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: guix-patches@HIDDEN Resent-Date: Fri, 01 Mar 2019 23:24:01 +0000 Resent-Message-ID: <handler.34223.B34223.15514826399414 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 34223 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: To: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN> Cc: 34223 <at> debbugs.gnu.org Received: via spool by 34223-submit <at> debbugs.gnu.org id=B34223.15514826399414 (code B ref 34223); Fri, 01 Mar 2019 23:24:01 +0000 Received: (at 34223) by debbugs.gnu.org; 1 Mar 2019 23:23:59 +0000 Received: from localhost ([127.0.0.1]:56850 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1gzrVQ-0002Rf-7J for submit <at> debbugs.gnu.org; Fri, 01 Mar 2019 18:23:59 -0500 Received: from sonic310-14.consmr.mail.ir2.yahoo.com ([77.238.177.35]:40399) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <tim.gesthuizen@HIDDEN>) id 1gzrVN-0002RQ-9o for 34223 <at> debbugs.gnu.org; Fri, 01 Mar 2019 18:23:50 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.de; s=s2048; t=1551482623; bh=Zug6Eini9MqM+6P8W1ZSnVw4N8IT6KlN/Z9nhvjKrIU=; h=References:From:To:Cc:Subject:Date:From:Subject; b=MYnMzBEwOaIJ15giXPH59b1rGwr/lKLyoVsA7NDq+J5OIBhw/1QYSphEkYwk17ab1uTONzGywwQdWT+BXiPgaa/6JdYy4u73pEfmHcg6vpU6vwFALaMxFh6vRl/hZ/N4O/1sinfISx1tzuzZjf/18+pN9N7N9ml7wqyDggfJylJe9B8dlQ7vbtupxrNVoKwgmu6b5lM+mvKjpkcvdxOXKCebHsBTbqDb4Mws/XJz7B8dC6OgT/JsGb6ljJJYdoz3ZfH8EcRu6BhN3fZ0xlzn0Mu1rUVH32rzDRvQDDsPSfUeMp38jKGGJrchYenFn32C+w5v3+mM2DZ/p9GJihk6dg== X-YMail-OSG: MtN2vnkVM1n2xEQ6QVMXQoCqC40LgcbpStWLPy48fK_BimV3NU8eX5X42z3V8oe CDS4CI94KGUVd4ER72rIC9c72widd7MWiNUNGwMO9bNL7aOTQ37cyF4J3WodTKAdKgo_UgU31O7I hoK1Hnw_LyU8UzNue1dqq8jp6Z_a.YjNDnwI4EMZJ7nd_a_5M0akPYfqQs.orgv0ZN2hs6ub8q6a .hJR3i8m4R3iAqb3bGzRnoqEHdN4_7rsEeAtztqRgJM_uS4YaVMOEbBgpDbYMT5pQFTUcstIfPv7 _yRcj6sQdRHGk_ItuHDFKcYGhU.2jGeBq_LpoINwVRPvoWi89MkTT5CbS2YU.PxiAqDYKdFmZ2YO 16ZTEA1PvPrJuUGtrKLhBiDY47NcuGvxYRNKUpKd6iDK4RP4qJq4.gmmphZ8StnJyb..xnWzZiIs NJixj46E_gsyWHGitWx..UYSE6sA2yXqzW7zTVJ9Y1.Jr_WzIsZuUtIN8Y163SSTAdedts2RPaCX AZbUGlRC09pqGfaQB2z2okBoYDamhpuEHBo0eyiyPVL6yf68ApzKHxhVWUJ4pLtVQuPGoly7zans jaPKl2dbatd_F.1wQurW7sY9yBCuUcAS7SOQYT.Ro3LZKRhj3l0D8_sEwP6COc77PK7_Uf3xCu93 QN3pN6gibrJ55UQa2B92xlIka41.B6gJjz6Ns9vpiPGCko6.hAOh.7bUQqa.h2NTOIsm.TaZnV4n 4.pu3h_bsD8_0q0uJgqCiqlbaIOd9auwfpuHUDiVgPx8H2TkB765G7QwZlyZLYP3bdQ9_KSIgLDs QbbNrjBLQpy3WNddE131MQ5JmmknGgWaPfnf7EFgCyVnx7rU7mw7cTriSJnyHpCViFPgBqN6vIlb ntogdvd8ImoNKs9DmUM8XqYact4IDv6R9BbJe6U.SXQno5m7lbNkWzMbeEnbupKJ83IEMcGvnuHp umZ5poTmRvj.SRXZVnZTD0kf7X1U3RKgO0ihagJ6pifNCb_94X_GD_BOpxeHj56Vm703iAM9CZO8 X8Jh.RRTTAj2bFJfnjvXjeGH7fLeqvzOYetVxkdtO4qfvsRDz Received: from sonic.gate.mail.ne1.yahoo.com by sonic310.consmr.mail.ir2.yahoo.com with HTTP; Fri, 1 Mar 2019 23:23:43 +0000 Received: from ip5f5acae0.dynamic.kabel-deutschland.de (EHLO finkpad) ([95.90.202.224]) by smtp412.mail.ir2.yahoo.com (Oath Hermes SMTP Server) with ESMTPA ID a52a610d6b688505af944ba66579169b; Fri, 01 Mar 2019 23:23:41 +0000 (UTC) References: <e13090c1-dabb-da63-cc62-3975f2697527@HIDDEN> <87imxjfjjt.fsf@HIDDEN> <87mumshndk.fsf@HIDDEN> <87pnro91mc.fsf@HIDDEN> User-agent: mu4e 1.0; emacs 26.1 From: Tim Gesthuizen <tim.gesthuizen@HIDDEN> In-reply-to: <87pnro91mc.fsf@HIDDEN> Date: Sat, 02 Mar 2019 00:23:30 +0100 Message-ID: <87lg1yw559.fsf@HIDDEN> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Hi Ludo, Sorry for the delay! Ludovic Court=C3=A8s writes: > In that case though, it probably doesn=E2=80=99t buy us much to use libar= chive > in a separate C program, WDYT? Should we just stick to the current > approach that invokes =E2=80=98unzip=E2=80=99 and =E2=80=98zip=E2=80=99? This seems to be the best choice. Maybe we want to reevaluate when there is a proper ZIP-library for guile. I have attached patches that isolate repack-archive from the ant-build-system and use it for pwsafe. I only builded some java packages so I don't know if something else might be broken because of the changes. Tim. --=-=-= Content-Type: text/x-patch; charset=utf-8 Content-Disposition: inline; filename=0001-guix-Generalize-zip-repacking.patch Content-Transfer-Encoding: quoted-printable From fe8e4da34a0806d6f444d2fce572a2a39533f0fc Mon Sep 17 00:00:00 2001 From: Tim Gesthuizen <tim.gesthuizen@HIDDEN> Date: Fri, 1 Mar 2019 23:39:14 +0100 Subject: [PATCH 1/2] guix: Generalize zip repacking Move repack-archive into an own module and change ant-build-system and icedtea accordingly. * Makefile.am: Add archives.scm. * gnu/packages/java.scm (icedtea-8): Add unzip to the native-inputs. * guix/build-system/ant.scm (default-unzip): New function. (lower): Add unzip parameter and add it to the build-inputs. * guix/build/ant-build-system.scm (strip-jar-timestamps): Remove repack-archive declaration. * guix/build/archives.scm: New file. (repack-archive): New function. --- Makefile.am | 2 ++ gnu/packages/java.scm | 5 ++- guix/build-system/ant.scm | 10 ++++++ guix/build/ant-build-system.scm | 38 +++------------------- guix/build/archives.scm | 56 +++++++++++++++++++++++++++++++++ 5 files changed, 77 insertions(+), 34 deletions(-) create mode 100644 guix/build/archives.scm diff --git a/Makefile.am b/Makefile.am index fec9800ce..c6dad9bb5 100644 --- a/Makefile.am +++ b/Makefile.am @@ -13,6 +13,7 @@ # Copyright =C2=A9 2018 Julien Lepiller <julien@HIDDEN> # Copyright =C2=A9 2018 Oleg Pykhalov <go.wigust@HIDDEN> # Copyright =C2=A9 2018 Alex Vong <alexvong1995@HIDDEN> +# Copyright =C2=A9 2019 Tim Gesthuizen <tim.gesthuizen@HIDDEN> # # This file is part of GNU Guix. # @@ -153,6 +154,7 @@ MODULES =3D \ guix/build/font-build-system.scm \ guix/build/go-build-system.scm \ guix/build/asdf-build-system.scm \ + guix/build/archives.scm \ guix/build/git.scm \ guix/build/hg.scm \ guix/build/glib-or-gtk-build-system.scm \ diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 974756900..fea7d20b7 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -10,6 +10,7 @@ ;;; Copyright =C2=A9 2018 G=C3=A1bor Boskovits <boskovits@HIDDEN> ;;; Copyright =C2=A9 2018 Chris Marusich <cmmarusich@HIDDEN> ;;; Copyright =C2=A9 2018 Efraim Flashner <efraim@HIDDEN> +;;; Copyright =C2=A9 2019 Tim Gesthuizen <tim.gesthuizen@HIDDEN ;;; ;;; This file is part of GNU Guix. ;;; @@ -1549,6 +1550,7 @@ IcedTea build harness.") `(#:imported-modules ((guix build ant-build-system) (guix build syscalls) + (guix build archives) ,@%gnu-build-system-modules) ,@(substitute-keyword-arguments (package-arguments icedtea-7) ((#:modules modules) @@ -1672,7 +1674,8 @@ new Date();")) "0k33anxdzw1icn072wynfmmdjhsv50hay0j1sfkfxny12rb3vgdy")) ,@(fold alist-delete (package-native-inputs icedtea-7) '("jdk" "openjdk-src" "corba-drop" "jaxp-drop" "jaxws-dro= p" - "jdk-drop" "langtools-drop" "hotspot-drop"))))))) + "jdk-drop" "langtools-drop" "hotspot-drop")) + ("unzip" ,unzip)))))) =20 (define-public openjdk9 (package diff --git a/guix/build-system/ant.scm b/guix/build-system/ant.scm index b5626bd42..e4cd4c1f7 100644 --- a/guix/build-system/ant.scm +++ b/guix/build-system/ant.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright =C2=A9 2016 Ricardo Wurmus <rekado@HIDDEN> +;;; Copyright =C2=A9 2019 Tim Gesthuizen <tim.gesthuizen@HIDDEN> ;;; ;;; This file is part of GNU Guix. ;;; @@ -41,6 +42,7 @@ `((guix build ant-build-system) (guix build java-utils) (guix build syscalls) + (guix build archives) ,@%gnu-build-system-modules)) =20 (define (default-jdk) @@ -61,11 +63,18 @@ (let ((zip-mod (resolve-interface '(gnu packages compression)))) (module-ref zip-mod 'zip))) =20 +(define (default-unzip) + "Return the default UNZIP package." + ;; Lazily resolve the binding to avoid a circular dependency. + (let ((zip-mod (resolve-interface '(gnu packages compression)))) + (module-ref zip-mod 'unzip))) + (define* (lower name #:key source inputs native-inputs outputs system target (jdk (default-jdk)) (ant (default-ant)) (zip (default-zip)) + (unzip (default-unzip)) #:allow-other-keys #:rest arguments) "Return a bag for NAME." @@ -86,6 +95,7 @@ (build-inputs `(("jdk" ,jdk "jdk") ("ant" ,ant) ("zip" ,zip) + ("unzip" ,unzip) ,@native-inputs)) (outputs outputs) (build ant-build) diff --git a/guix/build/ant-build-system.scm b/guix/build/ant-build-system.= scm index d79a2d55e..fbde6fae7 100644 --- a/guix/build/ant-build-system.scm +++ b/guix/build/ant-build-system.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright =C2=A9 2016, 2018 Ricardo Wurmus <rekado@HIDDEN> +;;; Copyright =C2=A9 2019 Tim Gesthuizen <tim.gesthuizen@HIDDEN> ;;; ;;; This file is part of GNU Guix. ;;; @@ -20,6 +21,7 @@ #:use-module ((guix build gnu-build-system) #:prefix gnu:) #:use-module (guix build syscalls) #:use-module (guix build utils) + #:use-module (guix build archives) #:use-module (sxml simple) #:use-module (ice-9 match) #:use-module (ice-9 ftw) @@ -185,44 +187,14 @@ dependencies of this jar file." outputs) #t) =20 -(define* (strip-jar-timestamps #:key outputs +(define* (strip-jar-timestamps #:key outputs (unzip "unzip") (zip "zip") #:allow-other-keys) "Unpack all jar archives, reset the timestamp of all contained files, and repack them. This is necessary to ensure that archives are reproducible." - (define (repack-archive jar) - (format #t "repacking ~a\n" jar) - (let* ((dir (mkdtemp! "jar-contents.XXXXXX")) - (manifest (string-append dir "/META-INF/MANIFEST.MF"))) - (with-directory-excursion dir - (invoke "jar" "xf" jar)) - (delete-file jar) - ;; XXX: copied from (gnu build install) - (for-each (lambda (file) - (let ((s (lstat file))) - (unless (eq? (stat:type s) 'symlink) - (utime file 0 0 0 0)))) - (find-files dir #:directories? #t)) - - ;; The jar tool will always set the timestamp on the manifest file - ;; and the containing directory to the current time, even when we - ;; reuse an existing manifest file. To avoid this we use "zip" - ;; instead of "jar". It is important that the manifest appears - ;; first. - (with-directory-excursion dir - (let* ((files (find-files "." ".*" #:directories? #t)) - ;; To ensure that the reference scanner can detect all - ;; store references in the jars we disable compression - ;; with the "-0" option. - (command (if (file-exists? manifest) - `("zip" "-0" "-X" ,jar ,manifest ,@files) - `("zip" "-0" "-X" ,jar ,@files)))) - (apply invoke command))) - (utime jar 0 0) - #t)) - (for-each (match-lambda ((output . directory) - (for-each repack-archive (find-files directory "\\.jar$")))) + (for-each repack-archive + (find-files directory "\\.jar$")))) outputs) #t) =20 diff --git a/guix/build/archives.scm b/guix/build/archives.scm new file mode 100644 index 000000000..d2c4815bd --- /dev/null +++ b/guix/build/archives.scm @@ -0,0 +1,56 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright =C2=A9 2019 Tim Gesthuizen <tim.gesthuizen@HIDDEN> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix 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 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix 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. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + + +(define-module (guix build archives) + #:use-module (ice-9 format) + #:use-module (guix build utils) + #:use-module (guix build syscalls) + #:export (repack-archive)) + +(define* (repack-archive archive + #:key (unzip "unzip") (zip "zip")) + (format #t "repacking ~a\n" archive) + (let* ((dir (mkdtemp! "archive-contents.XXXXXX")) + (manifest (string-append dir "/META-INF/MANIFEST.MF"))) + (with-directory-excursion dir + (invoke unzip archive)) + (delete-file archive) + ;; XXX: copied from (gnu build install) + (for-each (lambda (file) + (let ((s (lstat file))) + (unless (eq? (stat:type s) 'symlink) + (utime file 0 0 0 0)))) + (find-files dir #:directories? #t)) + + ;; The archive tool will always set the timestamp on the manifest file + ;; and the containing directory to the current time, even when we + ;; reuse an existing manifest file. To avoid this we use "zip" + ;; instead of "archive". It is important that the manifest appears + ;; first. + (with-directory-excursion dir + (let* ((files (find-files "." ".*" #:directories? #t)) + ;; To ensure that the reference scanner can detect all + ;; store references in the archives we disable compression + ;; with the "-0" option. + (command (if (file-exists? manifest) + `(,zip "-0" "-X" ,archive ,manifest ,@files) + `(,zip "-0" "-X" ,archive ,@files)))) + (apply invoke command))) + (utime archive 0 0) + #t)) --=20 2.20.1 --=-=-= Content-Type: text/x-patch; charset=utf-8 Content-Disposition: inline; filename=0002-gnu-pwsafe-Make-zip-archives-deterministic.patch Content-Transfer-Encoding: quoted-printable From 0bb0420dfdeb992b3ceafc815d42e6f403520b8d Mon Sep 17 00:00:00 2001 From: Tim Gesthuizen <tim.gesthuizen@HIDDEN> Date: Sat, 2 Mar 2019 00:10:19 +0100 Subject: [PATCH 2/2] gnu: pwsafe: Make zip archives deterministic * gnu/packages/password-utils.scm (pwsafe): [native-inputs]: Add unzip. [arguments]: Add a phase for resetting zip timestamps. --- gnu/packages/password-utils.scm | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/gnu/packages/password-utils.scm b/gnu/packages/password-utils.= scm index 9fd5a6ff0..52870050e 100644 --- a/gnu/packages/password-utils.scm +++ b/gnu/packages/password-utils.scm @@ -21,7 +21,7 @@ ;;; Copyright =C2=A9 2018 Arun Isaac <arunisaac@HIDDEN> ;;; Copyright =C2=A9 2018 Pierre Neidhardt <mail@HIDDEN> ;;; Copyright =C2=A9 2018 Amirouche Boubekki <amirouche@HIDDEN> -;;; Copyright =C2=A9 2018 Tim Gesthuizen <tim.gesthuizen@HIDDEN> +;;; Copyright =C2=A9 2018, 2019 Tim Gesthuizen <tim.gesthuizen@HIDDEN> ;;; ;;; This file is part of GNU Guix. ;;; @@ -190,7 +190,8 @@ algorithms AES or Twofish.") (build-system cmake-build-system) (native-inputs `(("gettext" ,gettext-minimal) ("perl" ,perl) - ("zip" ,zip))) + ("zip" ,zip) + ("unzip" ,unzip))) (inputs `(("curl" ,curl) ("file" ,file) ("gtest" ,googletest) @@ -201,7 +202,10 @@ algorithms AES or Twofish.") ("qrencode" ,qrencode) ("wxwidgets" ,wxwidgets) ("xerces-c" ,xerces-c))) - (arguments '(#:configure-flags (list "-DNO_GTEST=3DYES") + (arguments `(#:configure-flags (list "-DNO_GTEST=3DYES") + #:imported-modules ((guix build syscalls) + (guix build archives) + ,@%cmake-build-system-modules) #:phases (modify-phases %standard-phases (add-after 'unpack 'add-gtest (lambda* (#:key inputs #:allow-other-keys) @@ -219,6 +223,13 @@ add_subdirectory(src/test)\n" cmake-port) (("/usr/bin/file") (string-append (assoc-ref inputs "file") "/bin/file"))) + #t)) + (add-after 'install 'repack-archives + (lambda* (#:key outputs #:allow-other-keys) + (use-modules ((guix build archives))) + (for-each repack-archive + (find-files (assoc-ref outputs "= out") + "\\.zip$")) #t))))) (synopsis "Password safe with automatic input and key generation") (description "pwsafe is a password manager originally designed by Bruce --=20 2.20.1 --=-=-=--
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997 nCipher Corporation Ltd,
1994-97 Ian Jackson.