From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 68923 invoked by alias); 25 Mar 2018 12:37:58 -0000 Mailing-List: contact libabigail-help@sourceware.org; run by ezmlm Precedence: bulk List-Post: List-Help: List-Id: List-Subscribe: Sender: libabigail-owner@sourceware.org Received: (qmail 68911 invoked by uid 89); 25 Mar 2018 12:37:57 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Checked: by ClamAV 0.99.4 on sourceware.org X-Virus-Found: No X-Spam-SWARE-Status: No, score=-26.4 required=5.0 tests=BAYES_00,FREEMAIL_FROM,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,KAM_NUMSUBJECT,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.2 spammy=concerning, choosing, plenty, education X-Spam-Status: No, score=-26.4 required=5.0 tests=BAYES_00,FREEMAIL_FROM,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,KAM_NUMSUBJECT,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.2 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on sourceware.org X-Spam-Level: X-HELO: mail-qt0-f170.google.com Received: from mail-qt0-f170.google.com (HELO mail-qt0-f170.google.com) (209.85.216.170) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Sun, 25 Mar 2018 12:37:54 +0000 Received: by mail-qt0-f170.google.com with SMTP id h4so16991334qtn.13 for ; Sun, 25 Mar 2018 05:37:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=Y8vpuzacUTxQDZnGQkwV9IpkaWmPh2m3B1a6xfpNXFA=; b=YwzmE3LxjQOZg7qJDKIr9Mrmcgb0x4PbrvVTIPLv+tEpq7ZA/o8HvAbCNyiwZFY3lc Rzfj0OVf8a+NjB6RhFmydeX+DynKpwoHzROlahYFPJ7jtbgzFNx1pjdgG52gE4yPKmN+ /y98j/NXmhS+ol3wmZDV/fZ7olTeNuIeYG39fG5eGHw22NMLHJj7fuf+BaT2hy3l4sHk yHqSanMAXMrekKZwXd6yhh2qhysPM4YNNtVKaWyagYDoakpJVTLvDLar4DW2nR+g/soc jmxpdZYDXvJTqK7yUsYPuhG7BbEPx7tUQcNDfJBvxFxzHui7KiCXc2HkICfFm0oyKshu /Mag== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=Y8vpuzacUTxQDZnGQkwV9IpkaWmPh2m3B1a6xfpNXFA=; b=pvgyI73IAS1sT/NQwZUN2GylChme9//CNdRdppUO6oLoo/SXc9Ji9WU1QP5WZ8jES6 3R2/kY8v1v9Hafn91tbiRhjUqf5pqHFPmysYYQFwtYFpw38daiZpnWWVc6+NIvSvzT/8 fIf7B2w+hd9wf6u8pbaWk0Imeko8g4ZWv/RWOBykD9X0/WNIw4KGAin3B6B2I4KXPu7c l6/XFFfY11CUYX6cI23B01PeoE3/A43xWuHqjcCYFmID1FvKqbkcl2fK4MQBEqhwDxue rDNTuAxLCciypdwr7EoqJLTGVsP0rBOT8Gr78Nhi+obMQd8O90RxYBggKsa+05tSYBHr 1Gdg== X-Gm-Message-State: AElRT7GkXif3x5M8ikWZBtPVfHhgoTN6F8b5J6ULU4aaHa2CG4KYHmH1 oFYCRCyGAnCN7rcQgyzxC/zCSwv5gYrX+JS/FaU= X-Google-Smtp-Source: AG47ELsfcgEdKfNH3y9Z0z+2mrQpuPt5hPuxTaqItR3owZLoPDT0klylvWLdthRhuWUs8KGGW6srjQifG5ZL3n62zeI= X-Received: by 10.200.82.15 with SMTP id r15mr51947072qtn.75.1521981472194; Sun, 25 Mar 2018 05:37:52 -0700 (PDT) MIME-Version: 1.0 Received: by 10.12.169.68 with HTTP; Sun, 25 Mar 2018 05:37:51 -0700 (PDT) In-Reply-To: <87k1vytg29.fsf@seketeli.org> References: <20180130135529.13076-1-cqi@redhat.com> <87k1vytg29.fsf@seketeli.org> From: Chenxiong Qi Date: Mon, 01 Jan 2018 00:00:00 -0000 Message-ID: Subject: Re: [PATCH] Bug 22722 - Make fedabidiff and its tests support both python 3 and 2 To: Dodji Seketeli Cc: libabigail@sourceware.org Content-Type: multipart/mixed; boundary="f4f5e80c765c016a0005683bed65" X-IsSubscribed: yes X-SW-Source: 2018-q1/txt/msg00023.txt.bz2 --f4f5e80c765c016a0005683bed65 Content-Type: text/plain; charset="UTF-8" Content-length: 5205 Hi Dodji, My patch is updated. Please take another look. This time it also contains a few replacement from tab to spaces which are detected during running in Python 3. On Wed, Jan 31, 2018 at 7:37 PM, Dodji Seketeli wrote: > Hello Chenxiong, > > Thank you very much for putting this patch together, it's really > appreciated. > > I have a few comments about the patch though, please find them below. > > [...] > >> diff --git a/configure.ac b/configure.ac >> index 4963ee5..9bc92f2 100644 >> --- a/configure.ac >> +++ b/configure.ac >> @@ -97,6 +97,12 @@ AC_ARG_ENABLE([fedabipkgdiff], >> ENABLE_FEDABIPKGDIFF=$enableval, >> ENABLE_FEDABIPKGDIFF=auto) >> >> +AC_ARG_ENABLE([py3-tests], >> + AS_HELP_STRING([--disable-py3-tests=yes|no|auto], >> + [disable running tests with Python 3]), > > What AC_ARG_ENABLE does here is to define both --enable-py3-test *and* > --disable-py3-test options. So, I'd prefer that in the help string we > refer to the positive option, which is --enable-py3-test. That > positive option is of course "applied" by default in this case. > > >> + DISABLE_PY3_TESTS=$enableval, >> + DISABLE_PY3_TESTS=auto) > > So here, I'd prefer that we use a "positive" variable name, which > would be ENABLE_PY3_TESTS, rather than the DISABLE_PY3_TESTS that you > are using. This would be just like what is done above for the other > options. > >> + >> dnl ************************************************* >> dnl check for dependencies >> dnl ************************************************* >> @@ -351,7 +357,7 @@ if test x$CHECK_DEPS_FOR_FEDABIPKGDIFF = xyes; then >> >> REQUIRED_PYTHON_MODULES_FOR_FEDABIPKGDIFF="\ >> argparse logging os re subprocess sys urlparse \ >> - xdg koji mock rpm imp tempfile mimetypes shutil" >> + xdg koji mock rpm imp tempfile mimetypes shutil six" > > Just for my own education, is the python six package available on el6 > systems? > >> >> if test x$ENABLE_FEDABIPKGDIFF != xno; then >> AX_CHECK_PYTHON_MODULES([$REQUIRED_PYTHON_MODULES_FOR_FEDABIPKGDIFF], >> @@ -399,6 +405,14 @@ fi >> >> AM_CONDITIONAL(ENABLE_FEDABIPKGDIFF, test x$ENABLE_FEDABIPKGDIFF = xyes) >> >> + >> +AC_MSG_NOTICE(Run tests with Python 3... $DISABLE_PY3_TESTS) >> +if test x$DISABLE_PY3_TESTS = xauto -o x$DISABLE_PY3_TESTS = xyes; then >> + ENABLE_PY3_TESTS=yes > > Hmmh. I disagree with the logic here. > > I think the logic should be that if we are in 'auto' mode and if > python3 is available, then we should enable the python3 tests. If we > are in auto mode and if python3 is not available, then we should *NOT* > enable the python3 tests. We should thus assume python2 mode. > > If on the other hand the user chose to explicitly disable or enable > the python3 mode (i.e, not choosing 'auto') then we should disable or > enable python3 as per the user request. > > [...] > >> diff --git a/tests/Makefile.am b/tests/Makefile.am >> index 0a7f4b9..9b31e98 100644 >> --- a/tests/Makefile.am >> +++ b/tests/Makefile.am >> @@ -20,6 +20,9 @@ FEDABIPKGDIFF_TEST = >> if ENABLE_FEDABIPKGDIFF >> FEDABIPKGDIFF_TEST += runtestfedabipkgdiff.py >> endif >> +if ENABLE_PY3_TESTS >> +FEDABIPKGDIFF_TEST += runtestfedabipkgdiff-py3 >> +endif > > I think this should be included in the body of the "if > ENABLE_FEDABIPKGDIFF" clause above. > >> >> TESTS= \ >> $(FEDABIPKGDIFF_TEST) \ >> @@ -43,10 +46,15 @@ runtestabidiffexit \ >> runtestdefaultsupprs.py \ >> $(CXX11_TESTS) >> >> +if ENABLE_PY3_TESTS >> +TESTS += runtestdefaultsupprs-py3 >> +endif >> + > > I think this is unnecessary if my previous comment is right. > > [...] > >> diff --git a/tests/mockfedabipkgdiff.in b/tests/mockfedabipkgdiff.in >> index aac99d1..1168b92 100644 >> --- a/tests/mockfedabipkgdiff.in >> +++ b/tests/mockfedabipkgdiff.in > > [...] > >> {'build_id': 600011, >> - 'name': 'vte291', 'version': '0.39.1', 'release': '1.fc22', >> + 'name': 'vte291', 'version': '0.39.1', 'release': '1.fc22', > > I believe these are (white space) changes that are unrelated to the purpose of > the patch, which is to move to python3. I am correct? > > If so, please file a separate patch that contains these white space > changes. There are plenty of hunks following this one, which similar > white space changes, please include them in that white-space/style > patch. > > [...] > >> diff --git a/tests/runtestdefaultsupprs.py.in b/tests/runtestdefaultsupprs.py.in >> index 41b0b28..9feafe7 100644 >> --- a/tests/runtestdefaultsupprs.py.in >> +++ b/tests/runtestdefaultsupprs.py.in >> @@ -67,7 +67,8 @@ def ensure_output_dir_created(): >> pass >> >> if not os.path.exists(output_dir): >> - sys.exit(1); >> + sys.exit(1) >> + > > Just like I said above concerning the white space changes, I think > this change would be better suited to a separate "style-only" patch. > There are similar other changes after this one that should be included > in that separate patch as well. > > [...] > > Thanks! > > > -- > Dodji -- Regards, Chenxiong Qi --f4f5e80c765c016a0005683bed65 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-Bug-22722-Make-fedabipkgdiff-and-its-tests-support-b.patch" Content-Disposition: attachment; filename="0001-Bug-22722-Make-fedabipkgdiff-and-its-tests-support-b.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_jf6sgvwk0 Content-length: 26369 RnJvbSBkNTNiOGRkMjkyMGM0NmFmNTgxMzEwNzJhNTI5NjEyMWEwYjU1OTc4 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBDaGVueGlvbmcgUWkg PGNxaUByZWRoYXQuY29tPgpEYXRlOiBTdW4sIDI1IE1hciAyMDE4IDE1OjM0 OjU5ICswODAwClN1YmplY3Q6IFtQQVRDSF0gQnVnIDIyNzIyIC0gTWFrZSBm ZWRhYmlwa2dkaWZmIGFuZCBpdHMgdGVzdHMgc3VwcG9ydCBib3RoCiBweXRo b24gMyBhbmQgMgoKVGhpcyBwYXRjaCBtYWtlcyBmZWRhYmlwa2dkaWZmIFB5 dGhvbiAzIGNvbXBhdGlibGUuIEFsbCB0ZXN0cyB3cml0dGVuIGluClB5dGhv biBhcmUgdXBkYXRlZCBhbmQgY29tcGF0aWJsZSB3aXRoIFB5dGhvbiAzIGFz IHdlbGwuIEl0IGRlZmF1bHRzIHRvCmxvb2sgZm9yIGEgUHl0aG9uIDMgaW50 ZXJwcmV0ZXIsIGlmIHRoZXJlIGlzIHN1Y2ggb25lLCBydW4gdGVzdHMgd2l0 aApmb3VuZCBpbnRlcnByZXRlciwgaWYgdGhlcmUgaXMgbm8gb25lLCB0ZXN0 cyB3aWxsIHJ1biBvbmx5IHdpdGggUHl0aG9uCjIuIEJ1dCwgdGhpcyBiZWhh dmlvciBjYW4gYmUgZGlzYWJsZWQgYnkgLS1lbmFibGUtcHkzLXRlc3RzPW5v LgoKCSogY29uZmlndXJlLmFjOiBBZGQgbmV3IG9wdGlvbiAtLWVuYWJsZS1w eTMtdGVzdHMuIEFkZCBuZXcKCXRlc3QgcnVubmVyIGZpbGUgdGVzdHMvcnVu dGVzdGRlZmF1bHRzdXBwcnMtcHkzIGFuZAoJdGVzdHMvcnVudGVzdGZlZGFi aXBrZ2RpZmYtcHkzLiBBZGQgcmVxdWlyZWQgc2l4IFB5dGhvbiBtb2R1bGUu CgkqIHRlc3RzL01ha2VmaWxlLmFtOiBBZGQgbmV3IHRlc3QgZmlsZXMKCXRl c3RzL3J1bnRlc3RkZWZhdWx0c3VwcHJzLXB5MyBhbmQKCXRlc3RzL3J1bnRl c3RmZWRhYmlwa2dkaWZmLXB5MyBhY2NvcmRpbmdseS4KCSogdGVzdHMvbW9j a2ZlZGFiaXBrZ2RpZmYuaW46IENvbnZlcnQgcHJpbnQgc3RhdGVtZW50IHRv CglzaXgucHJpbnRfLiBSZXBsYWNlIGNhbGwgdG8gZnVuY3Rpb24gZmlsdGVy IHdpdGggbGlzdAoJY29tcHJlaGVuc2lvbi4gUmVwbGFjZSBiYXNlc3RyaW5n IHdpdGggc2l4LnN0cmluZ190eXBlcy4KCSogdGVzdHMvcnVudGVzdGRlZmF1 bHRzdXBwcnMtcHkzLmluOiBOZXcgc2hlbGwgc2NyaXB0IHRvIHJ1bgoJdGVz dCBydW50ZXN0ZGVmYXVsdHN1cHBycyB3aXRoIFB5dGhvbiAzLgoJKiB0ZXN0 cy9ydW50ZXN0ZGVmYXVsdHN1cHBycy5weS5pbjogUmVwYWxjZSBhIGZldyB0 YWJzIHdpdGgKCXByb3BlciBudW1iZXIgb2Ygc3BhY2VzIHdoaWNoIGlzIGRl dGVjdGVkIGJ5IFB5dGhvbiAzCglpbnRlcnByZXRlci4KCSogdGVzdHMvcnVu dGVzdGZlZGFiaXBrZ2RpZmYtcHkzLmluOiBOZXcgc2hlbGwgc2NyaXB0IHRv IHJ1bgoJdGVzdCBydW50ZXN0ZmVkYWJpcGtnZGlmZiB3aXRoIFB5dGhvbiAz LgoJKiB0ZXN0cy9ydW50ZXN0ZmVkYWJpcGtnZGlmZi5weS5pbjogVXNlIHB5 dGhvbiBmcm9tIGVudiBpbgoJc2hlYmFuZyBpbnN0ZWFkIG9mIGEgZml4ZWQg cGF0aCB0byBhIFB5dGhvbiBpbnRlcnByZXRlci4KCSogdG9vbHMvZmVkYWJp cGtnZGlmZjogR2xvYmFsbHkgcmVwbGFjZSBwcmludCBzdGF0ZW1lbnQgd2l0 aCBhCglmdW5jdGlvbiBjYWxsIHRvIHByaW50IHdoaWNoIGlzIGF2YWlsYWJs ZSBieSBpbXBvcnRpbmcKCXByaW50X2Z1bmN0aW9uIGZyb20gX19mdXR1cmVf XyBtb2R1bGUuIFVzZSBzaXgucHJpbnRfIHRvIG91dHB1dAoJc3RyaW5nIHRv IHN0ZGVyciBpbnN0ZWFkLiBDb252ZXJ0IGZ1bmN0aW9uIGNhbGwgdG8gbWFw IHRvCglmb3ItbG9vcC4gKGNtcF9udnIpOiBDaGFuZ2UgYXJndW1lbnQgdG8g aGFuZGxlIGEgS29qaSBidWlsZAoJbWFwcGluZyBpbnN0ZWFkIG9mIG9ubHkg dGhlIG52ci4gKEJyZXcubGlzdEJ1aWxkcyk6IHVzZSB0aGUgbmV3CgljbXBf bnZyIHRvIHNvcnQgYnVpbGRzLgoKU2lnbmVkLW9mZi1ieTogQ2hlbnhpb25n IFFpIDxjcWlAcmVkaGF0LmNvbT4KLS0tCiAuZ2l0aWdub3JlICAgICAgICAg ICAgICAgICAgICAgICAgfCAgMyArLQogY29uZmlndXJlLmFjICAgICAgICAg ICAgICAgICAgICAgIHwgMzkgKysrKysrKysrKysrKysrKysrKysrKystCiB0 ZXN0cy9NYWtlZmlsZS5hbSAgICAgICAgICAgICAgICAgfCAyMCArKysrKysr KysrKysrCiB0ZXN0cy9tb2NrZmVkYWJpcGtnZGlmZi5pbiAgICAgICAgfCAy MSArKysrKystLS0tLS0tCiB0ZXN0cy9ydW50ZXN0ZGVmYXVsdHN1cHBycy1w eTMuaW4gfCAgMiArKwogdGVzdHMvcnVudGVzdGRlZmF1bHRzdXBwcnMucHku aW4gIHwgMjQgKysrKysrKy0tLS0tLS0tCiB0ZXN0cy9ydW50ZXN0ZmVkYWJp cGtnZGlmZi1weTMuaW4gfCAyMiArKysrKysrKysrKysrKwogdGVzdHMvcnVu dGVzdGZlZGFiaXBrZ2RpZmYucHkuaW4gIHwgIDIgKy0KIHRvb2xzL2ZlZGFi aXBrZ2RpZmYgICAgICAgICAgICAgICB8IDYzICsrKysrKysrKysrKysrKysr KysrKysrLS0tLS0tLS0tLS0tLS0tLQogOSBmaWxlcyBjaGFuZ2VkLCAxNDQg aW5zZXJ0aW9ucygrKSwgNTIgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAx MDA2NDQgdGVzdHMvcnVudGVzdGRlZmF1bHRzdXBwcnMtcHkzLmluCiBjcmVh dGUgbW9kZSAxMDA2NDQgdGVzdHMvcnVudGVzdGZlZGFiaXBrZ2RpZmYtcHkz LmluCgpkaWZmIC0tZ2l0IGEvLmdpdGlnbm9yZSBiLy5naXRpZ25vcmUKaW5k ZXggYTYwY2FkYi4uZWQ0ZjQzYyAxMDA2NDQKLS0tIGEvLmdpdGlnbm9yZQor KysgYi8uZ2l0aWdub3JlCkBAIC0yMiw0ICsyMiw1IEBAIE1ha2VmaWxlLmlu CiAudGFncwogYnVpbGQvCiBUQUdTCi1mZWRhYmlwa2dkaWZmYwpcIE5vIG5l d2xpbmUgYXQgZW5kIG9mIGZpbGUKK2ZlZGFiaXBrZ2RpZmZjCit0b29scy9f X3B5Y2FjaGVfXy8KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg LS1naXQgYS9jb25maWd1cmUuYWMgYi9jb25maWd1cmUuYWMKaW5kZXggNDcz OGZhYS4uNzYyYzhlOCAxMDA2NDQKLS0tIGEvY29uZmlndXJlLmFjCisrKyBi L2NvbmZpZ3VyZS5hYwpAQCAtOTcsNiArOTcsMTIgQEAgQUNfQVJHX0VOQUJM RShbZmVkYWJpcGtnZGlmZl0sCiAJICAgICAgRU5BQkxFX0ZFREFCSVBLR0RJ RkY9JGVuYWJsZXZhbCwKIAkgICAgICBFTkFCTEVfRkVEQUJJUEtHRElGRj1h dXRvKQogCitBQ19BUkdfRU5BQkxFKFtweTMtdGVzdHNdLAorCSAgICAgIEFT X0hFTFBfU1RSSU5HKFstLWVuYWJsZS1weTMtdGVzdHM9eWVzfG5vfGF1dG9d LAorCQkJICAgICBbZW5hYmxlIHRvIHJ1biB0ZXN0cyB3aXRoIFB5dGhvbiAz IChkZWZhdWx0IGlzIGF1dG8pXSksCisJICAgICAgRU5BQkxFX1BZM19URVNU Uz0kZW5hYmxldmFsLAorCSAgICAgIEVOQUJMRV9QWTNfVEVTVFM9YXV0bykK KwogZG5sICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioKIGRubCBjaGVjayBmb3IgZGVwZW5kZW5jaWVzCiBkbmwg KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKgpAQCAtMzUxLDcgKzM1Nyw3IEBAIGlmIHRlc3QgeCRDSEVDS19ERVBT X0ZPUl9GRURBQklQS0dESUZGID0geHllczsgdGhlbgogCiAgIFJFUVVJUkVE X1BZVEhPTl9NT0RVTEVTX0ZPUl9GRURBQklQS0dESUZGPSJcCiAgICBhcmdw YXJzZSBsb2dnaW5nIG9zIHJlIHN1YnByb2Nlc3Mgc3lzIHVybHBhcnNlIFwK LSAgIHhkZyBrb2ppIG1vY2sgcnBtIGltcCB0ZW1wZmlsZSBtaW1ldHlwZXMg c2h1dGlsIgorICAgeGRnIGtvamkgbW9jayBycG0gaW1wIHRlbXBmaWxlIG1p bWV0eXBlcyBzaHV0aWwgc2l4IgogCiAgIGlmIHRlc3QgeCRFTkFCTEVfRkVE QUJJUEtHRElGRiAhPSB4bm87IHRoZW4KICAgICBBWF9DSEVDS19QWVRIT05f TU9EVUxFUyhbJFJFUVVJUkVEX1BZVEhPTl9NT0RVTEVTX0ZPUl9GRURBQklQ S0dESUZGXSwKQEAgLTM5OSw2ICs0MDUsMzMgQEAgZmkKIAogQU1fQ09ORElU SU9OQUwoRU5BQkxFX0ZFREFCSVBLR0RJRkYsIHRlc3QgeCRFTkFCTEVfRkVE QUJJUEtHRElGRiA9IHh5ZXMpCiAKKworIyBUaGUgbWluaW1hbCBweXRob24g MyB2ZXJzaW9uIHdlIHdhbnQgdG8gc3VwcG9ydCBpcyAzLjUsIHdoaWNoIGlz CisjIGF2YWlsYWJsZSBpbiBGZWRvcmEgcmVsZWFzZXMgYW5kIHRoZSB2ZXJz aW9uIHRoYXQgaXMgYXZhaWxhYmxlIGluIEVMNy4KK0FDX0NIRUNLX1BST0dT KFBZVEhPTjNfSU5URVJQUkVURVIsIFtweXRob24zIHB5dGhvbjMuNSBweXRo b24zLjYgcHl0aG9uMy43XSwgbm8pCisKK0FDX01TR19OT1RJQ0UoUnVuIHRl c3RzIHdpdGggUHl0aG9uIDMuLi4gJEVOQUJMRV9QWTNfVEVTVFMpCitpZiB0 ZXN0IHgkRU5BQkxFX1BZM19URVNUUyA9IHhhdXRvOyB0aGVuCisgICAgaWYg dGVzdCB4JFBZVEhPTjNfSU5URVJQUkVURVIgIT0geG5vOyB0aGVuCisgICAg ICAgIFJVTl9URVNUU19XSVRIX1BZMz15ZXMKKyAgICBlbHNlCisgICAgICAg ICMgV2hlbiBlbmFibGluZyBweTMgdGVzdHMgaXMgYXV0bywgdGVzdHMgb25s eSBydW4gaWYgcHl0aG9uMworICAgICAgICAjIGludGVycHJldGVyIGlzIGZv dW5kIGZyb20gc3lzdGVtLiBPdGhlcndpc2UsIGp1c3QgaWdub3JlIGl0Lgor ICAgICAgICBBQ19NU0dfTk9USUNFKFtQeXRob24gMyBpcyBub3QgZm91bmQu IFNraXAgdG8gcnVuIHRlc3RzIHdpdGggUHl0aG9uIDMuXSkKKyAgICBmaQor ZmkKK2lmIHRlc3QgeCRFTkFCTEVfUFkzX1RFU1RTID0geHllczsgdGhlbgor ICAgIGlmICB0ZXN0IHgkUFlUSE9OM19JTlRFUlBSRVRFUiAhPSB4bm87IHRo ZW4KKyAgICAgICAgUlVOX1RFU1RTX1dJVEhfUFkzPXllcworICAgIGVsc2UK KyAgICAgICAgQUNfTVNHX0VSUk9SKFtQeXRob24gMyBpcyBub3QgZm91bmQu XSkKKyAgICBmaQorZmkKKworQU1fQ09ORElUSU9OQUwoUlVOX1RFU1RTX1dJ VEhfUFkzLCB0ZXN0IHgkUlVOX1RFU1RTX1dJVEhfUFkzID0geHllcykKK0FN X0NPTkRJVElPTkFMKFBZVEhPTjNfSU5URVJQUkVURVIsIHRlc3QgeCRQWVRI T04zX0lOVEVSUFJFVEVSICE9IHhubykKKworCiBkbmwgQ2hlY2sgZm9yIGRl cGVuZGVuY3k6IGxpYnppcAogTElCWklQX1ZFUlNJT049MC4xMC4xCiAKQEAg LTU1Niw4ICs1ODksMTIgQEAgQUNfQ09ORklHX0ZJTEVTKFt0ZXN0cy9tb2Nr ZmVkYWJpcGtnZGlmZl0sCiAJCVtjaG1vZCAreCB0ZXN0cy9tb2NrZmVkYWJp cGtnZGlmZl0pCiBBQ19DT05GSUdfRklMRVMoW3Rlc3RzL3J1bnRlc3RmZWRh Ymlwa2dkaWZmLnB5XSwKIAkJW2NobW9kICt4IHRlc3RzL3J1bnRlc3RmZWRh Ymlwa2dkaWZmLnB5XSkKK0FDX0NPTkZJR19GSUxFUyhbdGVzdHMvcnVudGVz dGZlZGFiaXBrZ2RpZmYtcHkzXSwKKwkJW2NobW9kICt4IHRlc3RzL3J1bnRl c3RmZWRhYmlwa2dkaWZmLXB5M10pCiBBQ19DT05GSUdfRklMRVMoW3Rlc3Rz L3J1bnRlc3RkZWZhdWx0c3VwcHJzLnB5XSwKIAkJW2NobW9kICt4IHRlc3Rz L3J1bnRlc3RkZWZhdWx0c3VwcHJzLnB5XSkKK0FDX0NPTkZJR19GSUxFUyhb dGVzdHMvcnVudGVzdGRlZmF1bHRzdXBwcnMtcHkzXSwKKwkJW2NobW9kICt4 IHRlc3RzL3J1bnRlc3RkZWZhdWx0c3VwcHJzLXB5M10pCiAKIEFDX09VVFBV VAogCmRpZmYgLS1naXQgYS90ZXN0cy9NYWtlZmlsZS5hbSBiL3Rlc3RzL01h a2VmaWxlLmFtCmluZGV4IDBhN2Y0YjkuLmU1MjhhYTQgMTAwNjQ0Ci0tLSBh L3Rlc3RzL01ha2VmaWxlLmFtCisrKyBiL3Rlc3RzL01ha2VmaWxlLmFtCkBA IC0xOSw2ICsxOSw5IEBAIGVuZGlmCiBGRURBQklQS0dESUZGX1RFU1QgPQog aWYgRU5BQkxFX0ZFREFCSVBLR0RJRkYKIEZFREFCSVBLR0RJRkZfVEVTVCAr PSBydW50ZXN0ZmVkYWJpcGtnZGlmZi5weQoraWYgUlVOX1RFU1RTX1dJVEhf UFkzCitGRURBQklQS0dESUZGX1RFU1QgKz0gcnVudGVzdGZlZGFiaXBrZ2Rp ZmYtcHkzCitlbmRpZgogZW5kaWYKIAogVEVTVFM9CQkJCVwKQEAgLTQzLDYg KzQ2LDkgQEAgcnVudGVzdGFiaWRpZmZleGl0CQlcCiBydW50ZXN0ZGVmYXVs dHN1cHBycy5weQkJXAogJChDWFgxMV9URVNUUykKIAoraWYgUlVOX1RFU1RT X1dJVEhfUFkzCitURVNUUyArPSBydW50ZXN0ZGVmYXVsdHN1cHBycy1weTMK K2VuZGlmCiAKIEVYVFJBX0RJU1QgPSBcCiBydW50ZXN0Y2Fub25pY2FsaXpl dHlwZXMuc2guaW4gXApAQCAtNTAsNiArNTYsMTIgQEAgcnVudGVzdGZlZGFi aXBrZ2RpZmYucHkuaW4gXAogbW9ja2ZlZGFiaXBrZ2RpZmYuaW4gXAogdGVz dC12YWxncmluZC1zdXBwcmVzc2lvbnMuc3VwcAogCitpZiBSVU5fVEVTVFNf V0lUSF9QWTMKK0VYVFJBX0RJU1QgKz0gXAorcnVudGVzdGZlZGFiaXBrZ2Rp ZmYtcHkzLmluIAlcCitydW50ZXN0ZGVmYXVsdHN1cHBycy1weTMuaW4KK2Vu ZGlmCisKIENMRUFORklMRVMgPSBcCiBydW50ZXN0Y2Fub25pY2FsaXpldHlw ZXMub3V0cHV0LnR4dCBcCiBydW50ZXN0Y2Fub25pY2FsaXpldHlwZXMub3V0 cHV0LmZpbmFsLnR4dApAQCAtMTM5LDYgKzE1MSwxNCBAQCBydW50ZXN0ZmVk YWJpcGtnZGlmZi5weSQoRVhFRVhUKToKIHJ1bnRlc3RkZWZhdWx0c3VwcHJz X3B5X1NPVVJDRVMgPQogcnVudGVzdGRlZmF1bHRzdXBwcnMucHkkKEVYRUVY VCk6CiAKK2lmIFJVTl9URVNUU19XSVRIX1BZMworcnVudGVzdGZlZGFiaXBr Z2RpZmZfcHkzX1NPVVJDRVMgPQorcnVudGVzdGZlZGFiaXBrZ2RpZmYtcHkz JChFWEVFWFQpOgorCitydW50ZXN0ZGVmYXVsdHN1cHByc19weTNfU09VUkNF UyA9CitydW50ZXN0ZGVmYXVsdHN1cHBycy1weTMkKEVYRUVYVCk6CitlbmRp ZgorCiBBTV9DUFBGTEFHUz0tSSR7YWJzX3RvcF9zcmNkaXJ9L2luY2x1ZGUg XAogLUkke2Fic190b3BfYnVpbGRkaXJ9L2luY2x1ZGUgLUkke2Fic190b3Bf c3JjZGlyfS90b29scyAtZlBJQwogCmRpZmYgLS1naXQgYS90ZXN0cy9tb2Nr ZmVkYWJpcGtnZGlmZi5pbiBiL3Rlc3RzL21vY2tmZWRhYmlwa2dkaWZmLmlu CmluZGV4IGFhYzk5ZDEuLjQ3YzhjYzggMTAwNjQ0Ci0tLSBhL3Rlc3RzL21v Y2tmZWRhYmlwa2dkaWZmLmluCisrKyBiL3Rlc3RzL21vY2tmZWRhYmlwa2dk aWZmLmluCkBAIC0xLDQgKzEsNCBAQAotIyEvdXNyL2Jpbi9weXRob24KKyMh L3Vzci9iaW4vZW52IHB5dGhvbgogIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0K ICMgLSotIE1vZGU6IFB5dGhvbgogIwpAQCAtNTUsMTMgKzU1LDE0IEBAIHZh cmlhYmxlcy4KIGltcG9ydCBvcwogaW1wb3J0IHRlbXBmaWxlCiBpbXBvcnQg aW1wCitpbXBvcnQgc2l4CiAKIHRyeToKICAgICBmcm9tIG1vY2sgaW1wb3J0 IHBhdGNoCiBleGNlcHQgSW1wb3J0RXJyb3I6CiAgICAgaW1wb3J0IHN5cwot ICAgIHByaW50ID4+c3lzLnN0ZGVyciwgXAotICAgICAgICAnbW9jayBpcyBy ZXF1aXJlZCB0byBydW4gdGVzdHMuIFBsZWFzZSBpbnN0YWxsIGJlZm9yZSBy dW5uaW5nIHRlc3RzLicKKyAgICBzaXgucHJpbnRfKCdtb2NrIGlzIHJlcXVp cmVkIHRvIHJ1biB0ZXN0cy4gUGxlYXNlIGluc3RhbGwgYmVmb3JlIHJ1bm5p bmcnCisgICAgICAgICAgICAgICAnIHRlc3RzLicsIGZpbGU9c3lzLnN0ZGVy cikKICAgICBzeXMuZXhpdCgxKQogCiBBQklQS0dESUZGID0gJ0BhYnNfdG9w X2J1aWxkZGlyQC90b29scy9hYmlwa2dkaWZmJwpAQCAtMzA3LDEyICszMDgs MTIgQEAgY2xhc3MgTW9ja0NsaWVudFNlc3Npb24ob2JqZWN0KToKICAgICAg ICAgOnJldHVybjogdGhlIGZvdW5kIHBhY2thZ2UKICAgICAgICAgOnJ0eXBl OiBkaWN0CiAgICAgICAgICIiIgotICAgICAgICBhc3NlcnQgaXNpbnN0YW5j ZShuYW1lLCBiYXNlc3RyaW5nKQorICAgICAgICBhc3NlcnQgaXNpbnN0YW5j ZShuYW1lLCBzaXguc3RyaW5nX3R5cGVzKQogCiAgICAgICAgIGRlZiBzZWxl Y3RvcihwYWNrYWdlKToKICAgICAgICAgICAgIHJldHVybiBwYWNrYWdlWydu YW1lJ10gPT0gbmFtZQogCi0gICAgICAgIHJldHVybiBmaWx0ZXIoc2VsZWN0 b3IsIHBhY2thZ2VzKVswXQorICAgICAgICByZXR1cm4gW3AgZm9yIHAgaW4g cGFja2FnZXMgaWYgc2VsZWN0b3IocCldWzBdCiAKICAgICBkZWYgZ2V0QnVp bGQoc2VsZiwgYnVpbGRfaWQpOgogICAgICAgICAiIiJNb2NrIGtvamlodWIu Z2V0QnVpbGQKQEAgLTMyNiw3ICszMjcsNyBAQCBjbGFzcyBNb2NrQ2xpZW50 U2Vzc2lvbihvYmplY3QpOgogICAgICAgICBkZWYgc2VsZWN0b3IoYnVpbGQp OgogICAgICAgICAgICAgcmV0dXJuIGJ1aWxkWydidWlsZF9pZCddID09IGJ1 aWxkX2lkCiAKLSAgICAgICAgcmV0dXJuIGZpbHRlcihzZWxlY3RvciwgYnVp bGRzKVswXQorICAgICAgICByZXR1cm4gW2IgZm9yIGIgaW4gYnVpbGRzIGlm IHNlbGVjdG9yKGIpXVswXQogCiAgICAgZGVmIGxpc3RCdWlsZHMoc2VsZiwg cGFja2FnZUlELCBzdGF0ZT1Ob25lKToKICAgICAgICAgIiIiTW9jayBrb2pp aHViLmxpc3RCdWlsZHMKQEAgLTM2Miw3ICszNjMsNyBAQCBjbGFzcyBNb2Nr Q2xpZW50U2Vzc2lvbihvYmplY3QpOgogICAgICAgICAgICAgICAgIHJwbVsn cmVsZWFzZSddID09IHJwbWluZm9bJ3JlbGVhc2UnXSBhbmQgXAogICAgICAg ICAgICAgICAgIHJwbVsnYXJjaCddID09IHJwbWluZm9bJ2FyY2gnXQogCi0g ICAgICAgIHJldHVybiBmaWx0ZXIoc2VsZWN0b3IsIHJwbXMpWzBdCisgICAg ICAgIHJldHVybiBbcnBtIGZvciBycG0gaW4gcnBtcyBpZiBzZWxlY3Rvcihy cG0pXVswXQogCiAgICAgZGVmIGxpc3RSUE1zKHNlbGYsIGJ1aWxkSUQsIGFy Y2hlcz1Ob25lKToKICAgICAgICAgIiIiTW9jayBrb2ppaHViLmxpc3RSUE1z CkBAIC0zNzYsOSArMzc3LDkgQEAgY2xhc3MgTW9ja0NsaWVudFNlc3Npb24o b2JqZWN0KToKICAgICAgICAgIiIiCiAgICAgICAgIGFzc2VydCBpc2luc3Rh bmNlKGJ1aWxkSUQsIGludCkKICAgICAgICAgaWYgYXJjaGVzIGlzIG5vdCBO b25lOgotICAgICAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UoYXJjaGVzLCAo dHVwbGUsIGxpc3QsIGJhc2VzdHJpbmcpKQorICAgICAgICAgICAgYXNzZXJ0 IGlzaW5zdGFuY2UoYXJjaGVzLCAodHVwbGUsIGxpc3QsIHNpeC5zdHJpbmdf dHlwZXMpKQogCi0gICAgICAgIGlmIGFyY2hlcyBpcyBub3QgTm9uZSBhbmQg aXNpbnN0YW5jZShhcmNoZXMsIGJhc2VzdHJpbmcpOgorICAgICAgICBpZiBh cmNoZXMgaXMgbm90IE5vbmUgYW5kIGlzaW5zdGFuY2UoYXJjaGVzLCBzaXgu c3RyaW5nX3R5cGVzKToKICAgICAgICAgICAgIGFyY2hlcyA9IFthcmNoZXNd CiAKICAgICAgICAgZGVmIHNlbGVjdG9yKHJwbSk6CkBAIC0zODcsNyArMzg4 LDcgQEAgY2xhc3MgTW9ja0NsaWVudFNlc3Npb24ob2JqZWN0KToKICAgICAg ICAgICAgICAgICBzZWxlY3RlZCA9IHNlbGVjdGVkIGFuZCBycG1bJ2FyY2gn XSBpbiBhcmNoZXMKICAgICAgICAgICAgIHJldHVybiBzZWxlY3RlZAogCi0g ICAgICAgIHJldHVybiBmaWx0ZXIoc2VsZWN0b3IsIHJwbXMpCisgICAgICAg IHJldHVybiBbcnBtIGZvciBycG0gaW4gcnBtcyBpZiBzZWxlY3RvcihycG0p XQogCiAKIEBwYXRjaCgna29qaS5DbGllbnRTZXNzaW9uJywgbmV3PU1vY2tD bGllbnRTZXNzaW9uKQpkaWZmIC0tZ2l0IGEvdGVzdHMvcnVudGVzdGRlZmF1 bHRzdXBwcnMtcHkzLmluIGIvdGVzdHMvcnVudGVzdGRlZmF1bHRzdXBwcnMt cHkzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ5 ODUyMDYKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy9ydW50ZXN0ZGVmYXVs dHN1cHBycy1weTMuaW4KQEAgLTAsMCArMSwyIEBACisjIS9iaW4vYmFzaAor QFBZVEhPTjNfSU5URVJQUkVURVJAICJAYWJzX3RvcF9idWlsZGRpckAvdGVz dHMvcnVudGVzdGRlZmF1bHRzdXBwcnMucHkiCmRpZmYgLS1naXQgYS90ZXN0 cy9ydW50ZXN0ZGVmYXVsdHN1cHBycy5weS5pbiBiL3Rlc3RzL3J1bnRlc3Rk ZWZhdWx0c3VwcHJzLnB5LmluCmluZGV4IDQxYjBiMjguLjEwYjcxZDEgMTAw NjQ0Ci0tLSBhL3Rlc3RzL3J1bnRlc3RkZWZhdWx0c3VwcHJzLnB5LmluCisr KyBiL3Rlc3RzL3J1bnRlc3RkZWZhdWx0c3VwcHJzLnB5LmluCkBAIC0xLDQg KzEsNCBAQAotIyEvdXNyL2Jpbi9weXRob24KKyMhL3Vzci9iaW4vZW52IHB5 dGhvbgogCiAnJydSdW5zIHRlc3RzIGZvciB0aGUgZGVmYXVsdCBzdXBwcmVz c2lvbiBzcGVjaWZpY2F0aW9ucyBvZiBsaWJhYmlnYWlsLgogCkBAIC0xMjUs MTkgKzEyNSwxOCBAQCBkZWYgcnVuX2FiaWRpZmZfdGVzdHMoKToKICAgICAg ICAgICAgIGlmIHN1cHByZXNzaW9uczoKICAgICAgICAgICAgICAgICBlbnZf dmFyc1tlbnZfbmFtZV0gPSBzdXBwcmVzc2lvbnMKIAotCSAgICB3aXRoIG9w ZW4ob3V0cHV0X3BhdGgsICd3JykgYXMgb3V0X2ZpbGU6Ci0JCXN1YnByb2Nl c3MuY2FsbChjbWQsIGVudj1lbnZfdmFycywgc3Rkb3V0PW91dF9maWxlKQor ICAgICAgICAgICAgd2l0aCBvcGVuKG91dHB1dF9wYXRoLCAndycpIGFzIG91 dF9maWxlOgorICAgICAgICAgICAgICAgIHN1YnByb2Nlc3MuY2FsbChjbWQs IGVudj1lbnZfdmFycywgc3Rkb3V0PW91dF9maWxlKQogCi0JICAgIGRpZmZj bWQgPSBbJ2RpZmYnLCAnLXUnLCByZWZlcmVuY2VfcmVwb3J0X3BhdGgsCi0J ICAgIG91dHB1dF9wYXRoXQorICAgICAgICAgICAgZGlmZmNtZCA9IFsnZGlm ZicsICctdScsIHJlZmVyZW5jZV9yZXBvcnRfcGF0aCwgb3V0cHV0X3BhdGhd CiAKLQkgICAgcmV0dXJuX2NvZGUgPSBzdWJwcm9jZXNzLmNhbGwoZGlmZmNt ZCkKKyAgICAgICAgICAgIHJldHVybl9jb2RlID0gc3VicHJvY2Vzcy5jYWxs KGRpZmZjbWQpCiAgICAgICAgICAgICBpZiByZXR1cm5fY29kZToKICAgICAg ICAgICAgICAgICByZXN1bHQgPSByZXR1cm5fY29kZQogICAgICAgICAgICAg ICAgIHN5cy5zdGRlcnIud3JpdGUoImZhaWxlZCBhYmlkaWZmIHRlc3QgIgog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZvciBlbnYgdmFy ICciICsgZSArICInXG4iKTsKIAotCSAgICBkZWwgZW52X3ZhcnNbZW52X25h bWVdOworICAgICAgICAgICAgZGVsIGVudl92YXJzW2Vudl9uYW1lXTsKIAog ICAgICAgICB0cnk6CiAgICAgICAgICAgICBvcy5yZW1vdmUoZGVmYXVsdF9z dXBwcmVzc2lvbikKQEAgLTIwMiwxOSArMjAxLDE4IEBAIGRlZiBydW5fYWJp cGtnZGlmZl90ZXN0cygpOgogICAgICAgICAgICAgaWYgc3VwcHJlc3Npb25z OgogICAgICAgICAgICAgICAgIGVudl92YXJzW2Vudl9uYW1lXSA9IHN1cHBy ZXNzaW9ucwogCi0JICAgIHdpdGggb3BlbihvdXRwdXRfcGF0aCwgJ3cnKSBh cyBvdXRfZmlsZToKLQkJc3VicHJvY2Vzcy5jYWxsKGNtZCwgZW52PWVudl92 YXJzLCBzdGRvdXQ9b3V0X2ZpbGUpCisgICAgICAgICAgICB3aXRoIG9wZW4o b3V0cHV0X3BhdGgsICd3JykgYXMgb3V0X2ZpbGU6CisgICAgICAgICAgICAg ICAgc3VicHJvY2Vzcy5jYWxsKGNtZCwgZW52PWVudl92YXJzLCBzdGRvdXQ9 b3V0X2ZpbGUpCiAKLQkgICAgZGlmZmNtZCA9IFsnZGlmZicsICctdScsIHJl ZmVyZW5jZV9yZXBvcnRfcGF0aCwKLQkgICAgb3V0cHV0X3BhdGhdCisgICAg ICAgICAgICBkaWZmY21kID0gWydkaWZmJywgJy11JywgcmVmZXJlbmNlX3Jl cG9ydF9wYXRoLCBvdXRwdXRfcGF0aF0KIAotCSAgICByZXR1cm5fY29kZSA9 IHN1YnByb2Nlc3MuY2FsbChkaWZmY21kKQorICAgICAgICAgICAgcmV0dXJu X2NvZGUgPSBzdWJwcm9jZXNzLmNhbGwoZGlmZmNtZCkKICAgICAgICAgICAg IGlmIHJldHVybl9jb2RlOgogICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJl dHVybl9jb2RlCiAgICAgICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgi ZmFpbGVkIGFiaXBrZ2RpZmYgdGVzdCAiCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAiZm9yIGVudiB2YXIgJyIgKyBlICsgIidcbiIpOwog Ci0JICAgIGRlbCBlbnZfdmFyc1tlbnZfbmFtZV07CisgICAgICAgICAgICBk ZWwgZW52X3ZhcnNbZW52X25hbWVdOwogCiAgICAgICAgIHRyeToKICAgICAg ICAgICAgIG9zLnJlbW92ZShkZWZhdWx0X3N1cHByZXNzaW9uKQpkaWZmIC0t Z2l0IGEvdGVzdHMvcnVudGVzdGZlZGFiaXBrZ2RpZmYtcHkzLmluIGIvdGVz dHMvcnVudGVzdGZlZGFiaXBrZ2RpZmYtcHkzLmluCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIwOTAzN2MKLS0tIC9kZXYvbnVsbAor KysgYi90ZXN0cy9ydW50ZXN0ZmVkYWJpcGtnZGlmZi1weTMuaW4KQEAgLTAs MCArMSwyMiBAQAorIyEvYmluL2Jhc2ggLWUKKworIyBFaXRoZXIgdGVzdHMg cnVubmVyIHNjcmlwdCBvciB0aGUgdG9vbHMvZmVkYWJpcGtnZGlmZiBoYXMg c2hlYmFuZworIyBgL3Vzci9iaW4vZW52IHB5dGhvbmAsIGFzIGEgcmVzdWx0 LCB0byBydW4gdGVzdHMgaW4gUHl0aG9uIDMsIHdlIGhhdmUgdG8KKyMgY2hh bmdlIFBBVEggaW4gb3JkZXIgdG8gbWFrZSBzdXJlIHB5dGhvbiBjYW4gYmUg Zm91bmQgYmVmb3JlIHRoZSBjdXJyZW50CisjICRQQVRILgorCitQWTNfVEVN UD0kKG1rdGVtcCAtZCAtLXRtcGRpciBsaWJhYmlnYWlsLXB5My10ZW1wLVhY WFhYWFhYKQorCitsbiAtcyAkKHdoaWNoIEBQWVRIT04zX0lOVEVSUFJFVEVS QCkgJFBZM19URU1QL3B5dGhvbgorCitleHBvcnQgUEFUSD0kUFkzX1RFTVA6 JFBBVEgKKworZnVuY3Rpb24gY2xlYW5fZW52Cit7CisgICAgdW5saW5rICRQ WTNfVEVNUC9weXRob24KKyAgICBybWRpciAkUFkzX1RFTVAKK30KKwordHJh cCAiY2xlYW5fZW52IiBFWElUCisKK0BQWVRIT04zX0lOVEVSUFJFVEVSQCAi QGFic190b3BfYnVpbGRkaXJAL3Rlc3RzL3J1bnRlc3RmZWRhYmlwa2dkaWZm LnB5IgpkaWZmIC0tZ2l0IGEvdGVzdHMvcnVudGVzdGZlZGFiaXBrZ2RpZmYu cHkuaW4gYi90ZXN0cy9ydW50ZXN0ZmVkYWJpcGtnZGlmZi5weS5pbgppbmRl eCA3ODg5OGYzLi4wNDQyOWI2IDEwMDc1NQotLS0gYS90ZXN0cy9ydW50ZXN0 ZmVkYWJpcGtnZGlmZi5weS5pbgorKysgYi90ZXN0cy9ydW50ZXN0ZmVkYWJp cGtnZGlmZi5weS5pbgpAQCAtMSw0ICsxLDQgQEAKLSMhL3Vzci9iaW4vcHl0 aG9uCisjIS91c3IvYmluL2VudiBweXRob24KICMgLSotIGNvZGluZzogdXRm LTggLSotCiAjIC0qLSBNb2RlOiBQeXRob24KICMKZGlmZiAtLWdpdCBhL3Rv b2xzL2ZlZGFiaXBrZ2RpZmYgYi90b29scy9mZWRhYmlwa2dkaWZmCmluZGV4 IGRhMzAzYWQuLjIxOTE2MTMgMTAwNzU1Ci0tLSBhL3Rvb2xzL2ZlZGFiaXBr Z2RpZmYKKysrIGIvdG9vbHMvZmVkYWJpcGtnZGlmZgpAQCAtMjIsMTMgKzIy LDE3IEBACiAjCiAjIEF1dGhvcjogQ2hlbnhpb25nIFFpCiAKK2Zyb20gX19m dXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KKwogaW1wb3J0IGFyZ3Bh cnNlCitpbXBvcnQgZnVuY3Rvb2xzCiBpbXBvcnQgZ2xvYgogaW1wb3J0IGxv Z2dpbmcKIGltcG9ydCBtaW1ldHlwZXMKIGltcG9ydCBvcwogaW1wb3J0IHJl CiBpbXBvcnQgc2h1dGlsCitpbXBvcnQgc2l4CiBpbXBvcnQgc3VicHJvY2Vz cwogaW1wb3J0IHN5cwogCkBAIC0yMjYsOCArMjMwLDggQEAgZGVmIGNtcF9u dnIobGVmdCwgcmlnaHQpOgogICAgIGVxdWFsIHRvLCBvciBsYXJnZXIgdGhh biB0aGUgcmlnaHQgaW5kaXZpZHVhbGx5LgogICAgIDpydHlwZTogaW50CiAg ICAgIiIiCi0gICAgbGVmdF9udnIgPSBrb2ppLnBhcnNlX05WUihsZWZ0KQot ICAgIHJpZ2h0X252ciA9IGtvamkucGFyc2VfTlZSKHJpZ2h0KQorICAgIGxl ZnRfbnZyID0ga29qaS5wYXJzZV9OVlIobGVmdFsnbnZyJ10pCisgICAgcmln aHRfbnZyID0ga29qaS5wYXJzZV9OVlIocmlnaHRbJ252ciddKQogICAgIHJl dHVybiBycG0ubGFiZWxDb21wYXJlKAogICAgICAgICAobGVmdF9udnJbJ2Vw b2NoJ10sIGxlZnRfbnZyWyd2ZXJzaW9uJ10sIGxlZnRfbnZyWydyZWxlYXNl J10pLAogICAgICAgICAocmlnaHRfbnZyWydlcG9jaCddLCByaWdodF9udnJb J3ZlcnNpb24nXSwgcmlnaHRfbnZyWydyZWxlYXNlJ10pKQpAQCAtNDYxLDcg KzQ2NSw4IEBAIGNsYXNzIFJQTUNvbGxlY3Rpb24ob2JqZWN0KToKICAgICAg ICAgc2VsZi5hbmNpbGxhcnlfcnBtcyA9IHt9CiAKICAgICAgICAgaWYgcnBt czoKLSAgICAgICAgICAgIG1hcChzZWxmLmFkZCwgcnBtcykKKyAgICAgICAg ICAgIGZvciBycG0gaW4gcnBtczoKKyAgICAgICAgICAgICAgICBzZWxmLmFk ZChycG0pCiAKICAgICBAY2xhc3NtZXRob2QKICAgICBkZWYgZ2F0aGVyX2Zy b21fZGlyKGNscywgcnBtX2ZpbGUsIGFsbF9ycG1zPU5vbmUpOgpAQCAtNTE3 LDggKzUyMiw3IEBAIGNsYXNzIFJQTUNvbGxlY3Rpb24ob2JqZWN0KToKIAog ICAgIGRlZiBycG1zX2l0ZXIoc2VsZiwgYXJjaGVzPU5vbmUsIGRlZmF1bHRf YmVoYXZpb3I9VHJ1ZSk6CiAgICAgICAgICIiIkl0ZXJhdG9yIG9mIFJQTXMg dG8gZ28gdGhyb3VnaCBSUE1zIHdpdGggc3BlY2lmaWMgYXJjaGVzIiIiCi0g ICAgICAgIGFyY2hlcyA9IHNlbGYucnBtcy5rZXlzKCkKLSAgICAgICAgYXJj aGVzLnNvcnQoKQorICAgICAgICBhcmNoZXMgPSBzb3J0ZWQoc2VsZi5ycG1z LmtleXMoKSkKIAogICAgICAgICBmb3IgYXJjaCBpbiBhcmNoZXM6CiAgICAg ICAgICAgICBmb3IgX3JwbSBpbiBzZWxmLnJwbXNbYXJjaF06CkBAIC01NjEs NyArNTY1LDcgQEAgY2xhc3MgUlBNQ29sbGVjdGlvbihvYmplY3QpOgogICAg ICAgICAgICAgaWYgci5pc19kZWJ1Z2luZm86CiAgICAgICAgICAgICAgICAg cmVzdWx0LmFwcGVuZChyKQogICAgICAgICByZXR1cm4gcmVzdWx0Ci0gICAg CisKIAogZGVmIGdlbmVyYXRlX2NvbXBhcmlzb25faGFsdmVzKHJwbV9jb2wx LCBycG1fY29sMik6CiAgICAgIiIiSXRlcmF0ZSBSUE0gY29sbGVjdGlvbiBh bmQgcGVlcidzIHRvIGdlbmVyYXRlIGNvbXBhcmlzb24gaGFsdmVzIiIiCkBA IC03MzksNyArNzQzLDcgQEAgY2xhc3MgQnJldyhvYmplY3QpOgogICAgICAg ICAgICAgcmFpc2UgVHlwZUVycm9yKAogICAgICAgICAgICAgICAgICd7MH0g aXMgbm90IGEgY2FsbGFibGUgb2JqZWN0LicuZm9ybWF0KHN0cihzZWxlY3Rv cikpKQogCi0gICAgICAgIGlmIG9yZGVyX2J5IGlzIG5vdCBOb25lIGFuZCBu b3QgaXNpbnN0YW5jZShvcmRlcl9ieSwgYmFzZXN0cmluZyk6CisgICAgICAg IGlmIG9yZGVyX2J5IGlzIG5vdCBOb25lIGFuZCBub3QgaXNpbnN0YW5jZShv cmRlcl9ieSwgc2l4LnN0cmluZ190eXBlcyk6CiAgICAgICAgICAgICByYWlz ZSBUeXBlRXJyb3IoJ29yZGVyX2J5IHswfSBpcyBpbnZhbGlkLicuZm9ybWF0 KG9yZGVyX2J5KSkKIAogICAgICAgICBidWlsZHMgPSBzZWxmLnNlc3Npb24u bGlzdEJ1aWxkcyhwYWNrYWdlSUQ9cGFja2FnZUlELCBzdGF0ZT1zdGF0ZSkK QEAgLTc0OCwxMSArNzUyLDE2IEBAIGNsYXNzIEJyZXcob2JqZWN0KToKICAg ICAgICAgaWYgb3JkZXJfYnkgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAj IEZJWE1FOiBpcyBpdCBwb3NzaWJsZSB0byBzb3J0IGJ1aWxkcyBieSB1c2lu ZyBvcHRzIHBhcmFtZXRlciBvZgogICAgICAgICAgICAgIyBsaXN0QnVpbGRz Ci0gICAgICAgICAgICBjbXBfZnVuYyA9IGNtcF9udnIgaWYgb3JkZXJfYnkg PT0gJ252cicgZWxzZSBOb25lCi0gICAgICAgICAgICBidWlsZHMgPSBzb3J0 ZWQoYnVpbGRzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT1s YW1iZGEgaXRlbTogaXRlbVtvcmRlcl9ieV0sCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgY21wPWNtcF9mdW5jLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHJldmVyc2U9cmV2ZXJzZSkKKyAgICAgICAgICAgIGlmIG9y ZGVyX2J5ID09ICdudnInOgorICAgICAgICAgICAgICAgIGlmIHNpeC5QWTI6 CisgICAgICAgICAgICAgICAgICAgIGJ1aWxkcyA9IHNvcnRlZChidWlsZHMs IGNtcD1jbXBfbnZyLCByZXZlcnNlPXJldmVyc2UpCisgICAgICAgICAgICAg ICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgYnVpbGRzID0gc29ydGVk KGJ1aWxkcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGtleT1mdW5jdG9vbHMuY21wX3RvX2tleShjbXBfbnZyKSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldmVyc2U9cmV2ZXJzZSkK KyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgYnVpbGRzID0g c29ydGVkKAorICAgICAgICAgICAgICAgICAgICBidWlsZHMsIGtleT1sYW1i ZGEgYjogYltvcmRlcl9ieV0sIHJldmVyc2U9cmV2ZXJzZSkKICAgICAgICAg aWYgdG9wb25lOgogICAgICAgICAgICAgYnVpbGRzID0gYnVpbGRzWzA6MV0K IApAQCAtOTc0LDcgKzk4Myw3IEBAIGRlZiBkb3dubG9hZF9ycG0odXJsKToK ICAgICAgICAgdXJsLCBvcy5wYXRoLmpvaW4oZ2V0X2Rvd25sb2FkX2Rpcigp LAogICAgICAgICAgICAgICAgICAgICAgICAgICBvcy5wYXRoLmJhc2VuYW1l KHVybCkpKQogICAgIGlmIGdsb2JhbF9jb25maWcuZHJ5X3J1bjoKLSAgICAg ICAgcHJpbnQgJ0RSWS1SVU46JywgY21kCisgICAgICAgIHByaW50KCdEUlkt UlVOOiB7MH0nLmZvcm1hdChjbWQpKQogICAgICAgICByZXR1cm4KIAogICAg IHJldHVybl9jb2RlID0gc3VicHJvY2Vzcy5jYWxsKGNtZCwgc2hlbGw9VHJ1 ZSkKQEAgLTk5Nyw3ICsxMDA2LDggQEAgZGVmIGRvd25sb2FkX3JwbXMocnBt cyk6CiAgICAgICAgICAgICBsb2dnZXIuZGVidWcoJ0Rvd25sb2FkICVzJywg cnBtLmRvd25sb2FkX3VybCkKICAgICAgICAgICAgIGRvd25sb2FkX3JwbShy cG0uZG93bmxvYWRfdXJsKQogCi0gICAgbWFwKF9kb3dubG9hZCwgcnBtcykK KyAgICBmb3IgcnBtIGluIHJwbXM6CisgICAgICAgIF9kb3dubG9hZChycG0p CiAKIAogQGxvZ19jYWxsCkBAIC0xMDE5LDcgKzEwMjksNyBAQCBkZWYgYnVp bGRfcGF0aF90b19hYmlwa2dkaWZmKCk6CiBkZWYgZm9ybWF0X2RlYnVnX2lu Zm9fcGtnX29wdGlvbnMob3B0aW9uLCBkZWJ1Z2luZm9fbGlzdCk6CiAgICAg IiIiR2l2ZW4gYSBsaXN0IG9mIGRlYnVnIGluZm8gcGFja2FnZSBkZXNjcmlw dG9ycyByZXR1cm4gYW4gb3B0aW9uCiAgICAgc3RyaW5nIHRoYXQgbG9va3Mg bGlrZToKLSAgICAKKwogICAgICAgIG9wdGlvbiBkYmcucnBtMSBvcHRpb24g ZGJncnBtMiAuLi4KIAogICAgIDpwYXJhbTogbGlzdCBkZWJ1Z2luZm9fbGlz dCBhIGxpc3Qgb2YgaW5zdGFuY2VzIG9mIHRoZSBSUE0gY2xhc3MKQEAgLTEx MjEsMjAgKzExMzEsMjEgQEAgZGVmIGFiaXBrZ2RpZmYoY21wX2hhbGYxLCBj bXBfaGFsZjIpOgogICAgICAgICBjbXBfaGFsZjEuc3ViamVjdC5kb3dubG9h ZGVkX2ZpbGUsCiAgICAgICAgIGNtcF9oYWxmMi5zdWJqZWN0LmRvd25sb2Fk ZWRfZmlsZSwKICAgICBdCi0gICAgY21kID0gZmlsdGVyKGxhbWJkYSBzOiBz ICE9ICcnLCBjbWQpCisgICAgY21kID0gW3MgZm9yIHMgaW4gY21kIGlmIHMg IT0gJyddCiAKICAgICBpZiBnbG9iYWxfY29uZmlnLmRyeV9ydW46Ci0gICAg ICAgIHByaW50ICdEUlktUlVOOicsICcgJy5qb2luKGNtZCkKKyAgICAgICAg cHJpbnQoJ0RSWS1SVU46IHswfScuZm9ybWF0KCcgJy5qb2luKGNtZCkpKQog ICAgICAgICByZXR1cm4KIAogICAgIGxvZ2dlci5kZWJ1ZygnUnVuOiAlcycs ICcgJy5qb2luKGNtZCkpCiAKLSAgICBwcmludCAnQ29tcGFyaW5nIHRoZSBB Qkkgb2YgYmluYXJpZXMgYmV0d2VlbiB7MH0gYW5kIHsxfTonLmZvcm1hdCgK LSAgICAgICAgY21wX2hhbGYxLnN1YmplY3QuZmlsZW5hbWUsIGNtcF9oYWxm Mi5zdWJqZWN0LmZpbGVuYW1lKQotICAgIHByaW50CisgICAgcHJpbnQoJ0Nv bXBhcmluZyB0aGUgQUJJIG9mIGJpbmFyaWVzIGJldHdlZW4gezB9IGFuZCB7 MX06Jy5mb3JtYXQoCisgICAgICAgIGNtcF9oYWxmMS5zdWJqZWN0LmZpbGVu YW1lLCBjbXBfaGFsZjIuc3ViamVjdC5maWxlbmFtZSkpCisgICAgcHJpbnQo KQogCiAgICAgcHJvYyA9IHN1YnByb2Nlc3MuUG9wZW4oJyAnLmpvaW4oY21k KSwgc2hlbGw9VHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBz dGRvdXQ9c3VicHJvY2Vzcy5QSVBFLCBzdGRlcnI9c3VicHJvY2Vzcy5QSVBF KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZG91dD1zdWJwcm9j ZXNzLlBJUEUsIHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdW5pdmVyc2FsX25ld2xpbmVzPVRydWUpCiAg ICAgIyBTbyB3ZSBjb3VsZCBoYXZlIGRvbmU6IHN0ZG91dCwgc3RkZXJyID0g cHJvYy5jb21tdW5pY2F0ZSgpCiAgICAgIyBCdXQgdGhlbiB0aGUgZG9jdW1l bnRhdGluIG9mIHByb2MuY29tbXVuaWNhdGUgc2F5czoKICAgICAjCkBAIC0x MTYwLDkgKzExNzEsOSBAQCBkZWYgYWJpcGtnZGlmZihjbXBfaGFsZjEsIGNt cF9oYWxmMik6CiAgICAgaGFzX2FiaV9jaGFuZ2UgPSBwcm9jLnJldHVybmNv ZGUgJiBBQklESUZGX0FCSV9DSEFOR0UKIAogICAgIGlmIGlzX2ludGVybmFs X2Vycm9yOgotICAgICAgICBwcmludCA+PnN5cy5zdGRlcnIsIHN0ZGVycgor ICAgICAgICBzaXgucHJpbnRfKHN0ZGVyciwgZmlsZT1zeXMuc3RkZXJyKQog ICAgIGVsaWYgaXNfb2sgb3IgaGFzX2FiaV9jaGFuZ2U6Ci0gICAgICAgIHBy aW50IHN0ZG91dAorICAgICAgICBwcmludChzdGRvdXQpCiAKICAgICByZXR1 cm4gcHJvYy5yZXR1cm5jb2RlCiAKQEAgLTE1NTUsNyArMTU2Niw3IEBAIGRl ZiBtYWluKCk6CiAgICAgICAgICAgICBpZiBib3RoX252ciBvciBib3RoX252 cmE6CiAgICAgICAgICAgICAgICAgcmV0dXJuIGRpZmZfdHdvX252cmFzX2Zy b21fa29qaSgpCiAKLSAgICBwcmludCA+PnN5cy5zdGRlcnIsICdVbmtub3du IGFyZ3VtZW50cy4gUGxlYXNlIHJlZmVyIHRvIC0taGVscC4nCisgICAgc2l4 LnByaW50XygnVW5rbm93biBhcmd1bWVudHMuIFBsZWFzZSByZWZlciB0byAt LWhlbHAuJywgZmlsZT1zeXMuc3RkZXJyKQogICAgIHJldHVybiAxCiAKIApA QCAtMTU2OCw3ICsxNTc5LDcgQEAgaWYgX19uYW1lX18gPT0gJ19fbWFpbl9f JzoKICAgICAgICAgaWYgZ2xvYmFsX2NvbmZpZy5kZWJ1ZzoKICAgICAgICAg ICAgIGxvZ2dlci5kZWJ1ZygnVGVybWluYXRlIGJ5IHVzZXInKQogICAgICAg ICBlbHNlOgotICAgICAgICAgICAgcHJpbnQgPj5zeXMuc3RkZXJyLCAnVGVy bWluYXRlIGJ5IHVzZXInCisgICAgICAgICAgICBzaXgucHJpbnRfKCdUZXJt aW5hdGUgYnkgdXNlcicsIGZpbGU9c3lzLnN0ZGVycikKICAgICAgICAgaWYg Z2xvYmFsX2NvbmZpZy5zaG93X3RyYWNlYmFjazoKICAgICAgICAgICAgIHJh aXNlCiAgICAgICAgIGVsc2U6CkBAIC0xNTc5LDcgKzE1OTAsNyBAQCBpZiBf X25hbWVfXyA9PSAnX19tYWluX18nOgogICAgICAgICBpZiBnbG9iYWxfY29u ZmlnLmRlYnVnOgogICAgICAgICAgICAgbG9nZ2VyLmRlYnVnKHN0cihlKSkK ICAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHByaW50ID4+c3lzLnN0ZGVy ciwgc3RyKGUpCisgICAgICAgICAgICBzaXgucHJpbnRfKHN0cihlKSwgZmls ZT1zeXMuc3RkZXJyKQogICAgICAgICBpZiBnbG9iYWxfY29uZmlnLnNob3df dHJhY2ViYWNrOgogICAgICAgICAgICAgcmFpc2UKICAgICAgICAgZWxzZToK LS0gCjIuMTQuMwoK --f4f5e80c765c016a0005683bed65--