From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Juanma Barranquero Newsgroups: gmane.emacs.devel Subject: Re: master a6b5985: Avoid duplicated character classes in rx Date: Fri, 6 Dec 2019 19:49:07 +0100 Message-ID: References: <20191203142243.9552.27513@vcs0.savannah.gnu.org> <20191203142246.0615C20A2B@vcs0.savannah.gnu.org> <79A83C7D-610F-4CA4-B5E9-7F11FD8A9365@acm.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="0000000000005aa04305990d8282" Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="204977"; mail-complaints-to="usenet@blaine.gmane.org" Cc: Eli Zaretskii , Emacs developers To: Stefan Monnier Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Fri Dec 06 20:19:17 2019 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1idJ8G-000r54-H6 for ged-emacs-devel@m.gmane.org; Fri, 06 Dec 2019 20:19:16 +0100 Original-Received: from localhost ([::1]:44428 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1idJ8F-0005yG-Aq for ged-emacs-devel@m.gmane.org; Fri, 06 Dec 2019 14:19:15 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:44007) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1idIfz-0006U1-9A for emacs-devel@gnu.org; Fri, 06 Dec 2019 13:50:05 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1idIfu-0005tH-J5 for emacs-devel@gnu.org; Fri, 06 Dec 2019 13:49:59 -0500 Original-Received: from mail-qk1-x729.google.com ([2607:f8b0:4864:20::729]:45009) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1idIfh-0005iT-GV; Fri, 06 Dec 2019 13:49:45 -0500 Original-Received: by mail-qk1-x729.google.com with SMTP id i18so7294327qkl.11; Fri, 06 Dec 2019 10:49:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=a1fpIGIjcRlp+QuoUJYzeDvBQLQBSRvFw0IWzsx5PrI=; b=Px8gYb0V02xu4Mz074PyNqoz23Mxw/oyIw+FvYNOf0T2pPuo/+zliG9aeMql+VyuYX nCV9s//ky0JKX8IoXuE4iZr5RFdEg1HvDP8aacYD9eNcnXMKPqc6Yub/oCQ6EX/ifP++ j/LDYO3LKJD7TkmuMugyBcZ60peRaikXsPMrbx96BMRne4VQAeWDnf2orvr9a4PkT8Oz lzWZkeairINK235nT9qYdMfpCK0zT1sUg21fpF5T+W7weK222o0rrMePOfx7D6zZVwXH YuyUxXoVAmmB0J1o9vyWd93DvKGWRJ85r4013213dN8jYDUM5uS75e0WTKjQZYFFkrKB aGwQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=a1fpIGIjcRlp+QuoUJYzeDvBQLQBSRvFw0IWzsx5PrI=; b=qospeVuceH7zHTGuVR35bVtYYNhXOU3Fq3HtH/tSuNEPWsSKogvCUV98QrtBfOev2q rKWnEK4j3ymLNlUVY19AIC0G60x7vYFfmBBZuOOVwhuFpGwues7COmde73U2ARW0kSIk Gi7thFtQVL7mMt88v6HNAN0Tg5Z/WmXORkugsDCXqj8RfnzStCqixrS+EHHYlw9ZwPRL sG8Q87xJla9+1ZFQ1bcGngfx1PQaUI0/JzeHHajBugdhhj4jLlpFcTqBcfxVcEFD2y96 qVkAL7A65nOvnMVzI42lFCaH9UsBa31rQkDzKQGZaWaihIBrzJSOBQAHRJuLX/0wMmxP 82eA== X-Gm-Message-State: APjAAAVW20iEiXd9JH5YoS2q+Xo/GXyMHDgRb6vt+TvWw3DrpXqkbOMy v+OFGC6Plia0jdmsXb7D4UdhL3VeaiMEv0zMgV4= X-Google-Smtp-Source: APXvYqw7TVI5XBgSQEREyVW5lRXT6VGv/Rjcr0zvZkyTC2N70ImwJSJKdNfoi5iEWZxbqt5ZryoF8S8o+ZqGYB8SPP8= X-Received: by 2002:a05:620a:a42:: with SMTP id j2mr15264185qka.185.1575658184135; Fri, 06 Dec 2019 10:49:44 -0800 (PST) In-Reply-To: X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::729 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:243191 Archived-At: --0000000000005aa04305990d8282 Content-Type: multipart/alternative; boundary="0000000000005aa04005990d8280" --0000000000005aa04005990d8280 Content-Type: text/plain; charset="UTF-8" After looking at, literally, about 4,000 uses of `push' in our sources, I've found 34 that rely on its return code. (I'm not claiming these are all there is, just the ones I detected in what was, at most, a mechanical and, frankly, quite tedious task, though hopefully not a sisyphean one.) That's about a 0.08% of misuse. Don't know if that's an argument for, or against, documenting push's return value. But, assuming we're not going to document it, the following patch (with appropriate ChangeLog entries, to be written) should be committed. Changes are mostly mechanical, though in a few cases I've changed slightly the code to better reflect the author's intention. For example, there's one case where the FUNCTION arg of a mapcar was just a call to push, but in fact, the whole return value of that mapcar wasn't used; so I've changed the mapcar to mapc. What I mean is that this isn't, per se, a destabilizing change, but there are some subtleties. Eli, do I install it right now, or do you prefer to wait after the 27 branch is cut? --0000000000005aa04005990d8280 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
After looking at, literally, abou= t 4,000 uses of `push' in our sources,
I've found 34 that rely on its return code. (I'm not claiming t= hese are
all there is, just the o= nes I detected in what was, at most, a mechanical
and, frankly, quite tedious task, though hopefully not a s= isyphean one.)

That's about a 0.08% of misuse. Don't know if= that's an argument for,
or a= gainst, documenting push's return value.

But, assuming we're= not going to document it, the following patch (with
appropriate ChangeLog entries, to be written) should be= committed.

Changes are mostly mechanical, though in a few cases I&#= 39;ve changed
slightly the code t= o better reflect the author's intention. For example,
= there's one case where the FUNCTION arg of a m= apcar was just a call to
push, bu= t in fact, the whole return value of that mapcar wasn't used;
so I've changed the mapcar to mapc.
What I mean is that this isn't, per se, a destabilizing change, bu= t
there are some subtleties. Eli,= do I install it right now, or do you
prefer to wait after the 27 branch is cut?


--0000000000005aa04005990d8280-- --0000000000005aa04305990d8282 Content-Type: application/octet-stream; name="push.patch" Content-Disposition: attachment; filename="push.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_k3ui11u60 ZGlmZiAtLWdpdCBpL2xpc3AvZW1hY3MtbGlzcC9nZW5lcmF0b3IuZWwgdy9saXNwL2VtYWNzLWxp c3AvZ2VuZXJhdG9yLmVsCmluZGV4IDlkYmE4N2VhZWIuLjZhZDNmZmI3MmYgMTAwNjQ0Ci0tLSBp L2xpc3AvZW1hY3MtbGlzcC9nZW5lcmF0b3IuZWwKKysrIHcvbGlzcC9lbWFjcy1saXNwL2dlbmVy YXRvci5lbApAQCAtMTYxLDggKzE2MSw5IEBAIGNwcy0tYWRkLXN0YXRlCiAgICAgc3RhdGUpKQog CiAoZGVmdW4gY3BzLS1hZGQtYmluZGluZyAob3JpZ2luYWwtbmFtZSkKLSAgKGNhciAocHVzaCAo Y3BzLS1nZW5zeW0gKGZvcm1hdCAiY3BzLWJpbmRpbmctJXMtIiBvcmlnaW5hbC1uYW1lKSkKLSAg ICAgICAgICAgICBjcHMtLWJpbmRpbmdzKSkpCisgIChwdXNoIChjcHMtLWdlbnN5bSAoZm9ybWF0 ICJjcHMtYmluZGluZy0lcy0iIG9yaWdpbmFsLW5hbWUpKQorICAgICAgICBjcHMtLWJpbmRpbmdz KQorICAoY2FyIGNwcy0tYmluZGluZ3MpKQogCiAoZGVmdW4gY3BzLS1maW5kLXNwZWNpYWwtZm9y bS1oYW5kbGVyIChmb3JtKQogICAobGV0KiAoKGhhbmRsZXItbmFtZSAoZm9ybWF0ICJjcHMtLXRy YW5zZm9ybS0lcyIgKGNhci1zYWZlIGZvcm0pKSkKZGlmZiAtLWdpdCBpL2xpc3AvZW1hY3MtbGlz cC9yeC5lbCB3L2xpc3AvZW1hY3MtbGlzcC9yeC5lbAppbmRleCAwZGM2ZTE5ODY2Li40MWU5YmY2 NjZmIDEwMDY0NAotLS0gaS9saXNwL2VtYWNzLWxpc3AvcnguZWwKKysrIHcvbGlzcC9lbWFjcy1s aXNwL3J4LmVsCkBAIC0xMjMzLDkgKzEyMzMsMTAgQEAgcngtLXBjYXNlLXRyYW5zZm9ybQogICAo cGNhc2UgcngKICAgICAoYChsZXQgLG5hbWUgLiAsYm9keSkKICAgICAgKGxldCogKChpbmRleCAo bGVuZ3RoIChtZW1xIG5hbWUgcngtLXBjYXNlLXZhcnMpKSkKLSAgICAgICAgICAgIChpIChpZiAo emVyb3AgaW5kZXgpCi0gICAgICAgICAgICAgICAgICAgKGxlbmd0aCAocHVzaCBuYW1lIHJ4LS1w Y2FzZS12YXJzKSkKLSAgICAgICAgICAgICAgICAgaW5kZXgpKSkKKyAgICAgICAgICAgIChpIChp ZiAoPiBpbmRleCAwKQorICAgICAgICAgICAgICAgICAgIGluZGV4CisgICAgICAgICAgICAgICAg IChwdXNoIG5hbWUgcngtLXBjYXNlLXZhcnMpCisgICAgICAgICAgICAgICAgIChsZW5ndGggcngt LXBjYXNlLXZhcnMpKSkpCiAgICAgICAgYChncm91cC1uICxpICwocngtLXBjYXNlLXRyYW5zZm9y bSAoY29ucyAnc2VxIGJvZHkpKSkpKQogICAgICgoYW5kIGAoYmFja3JlZiAscmVmKQogICAgICAg ICAgIChndWFyZCAoc3ltYm9scCByZWYpKSkKZGlmZiAtLWdpdCBpL2xpc3AvZW1hY3MtbGlzcC9z ZXEuZWwgdy9saXNwL2VtYWNzLWxpc3Avc2VxLmVsCmluZGV4IDdlNWU2ZjNiMTYuLmNkODA3YjNj MjggMTAwNjQ0Ci0tLSBpL2xpc3AvZW1hY3MtbGlzcC9zZXEuZWwKKysrIHcvbGlzcC9lbWFjcy1s aXNwL3NlcS5lbApAQCAtNDcyLDcgKzQ3Miw3IEBAIHNlcS1ncm91cC1ieQogICAgICAobGV0KiAo KGtleSAoZnVuY2FsbCBmdW5jdGlvbiBlbHQpKQogICAgICAgICAgICAgKGNlbGwgKGFzc29jIGtl eSBhY2MpKSkKICAgICAgICAoaWYgY2VsbAotICAgICAgICAgICAoc2V0Y2RyIGNlbGwgKHB1c2gg ZWx0IChjZHIgY2VsbCkpKQorICAgICAgICAgICAoc2V0Y2RyIGNlbGwgKGNvbnMgZWx0IChjZHIg Y2VsbCkpKQogICAgICAgICAgKHB1c2ggKGxpc3Qga2V5IGVsdCkgYWNjKSkKICAgICAgICBhY2Mp KQogICAgKHNlcS1yZXZlcnNlIHNlcXVlbmNlKQpkaWZmIC0tZ2l0IGkvbGlzcC9lcmMvZXJjLWlt ZW51LmVsIHcvbGlzcC9lcmMvZXJjLWltZW51LmVsCmluZGV4IDNlMTQ1NWFlNWIuLjM2ZWMwYmMy N2QgMTAwNjQ0Ci0tLSBpL2xpc3AvZXJjL2VyYy1pbWVudS5lbAorKysgdy9saXNwL2VyYy9lcmMt aW1lbnUuZWwKQEAgLTg5LDIxICs4OSwyMSBAQCBlcmMtY3JlYXRlLWltZW51LWluZGV4CiAJICAg IChwdXNoIChjb25zIG5vdGljZS10ZXh0IHBvcykgbm90aWNlLWFsaXN0KQogCSAgICAob3IKIAkg ICAgICh3aGVuIChzdHJpbmctbWF0Y2ggIl5cXCguKlxcKSBoYXMgam9pbmVkIGNoYW5uZWwiIG5v dGljZS10ZXh0KQotCSAgICAgICAocHVzaCAoY29ucyAobWF0Y2gtc3RyaW5nIDEgbm90aWNlLXRl eHQpIHBvcykgam9pbi1hbGlzdCkpCisJICAgICAgIChwdXNoIChjb25zIChtYXRjaC1zdHJpbmcg MSBub3RpY2UtdGV4dCkgcG9zKSBqb2luLWFsaXN0KSB0KQogCSAgICAgKHdoZW4gKHN0cmluZy1t YXRjaCAiXlxcKC4rXFwpIGhhcyBsZWZ0IGNoYW5uZWwiIG5vdGljZS10ZXh0KQotCSAgICAgICAo cHVzaCAoY29ucyAobWF0Y2gtc3RyaW5nIDEgbm90aWNlLXRleHQpIHBvcykgbGVmdC1hbGlzdCkp CisJICAgICAgIChwdXNoIChjb25zIChtYXRjaC1zdHJpbmcgMSBub3RpY2UtdGV4dCkgcG9zKSBs ZWZ0LWFsaXN0KSB0KQogCSAgICAgKHdoZW4gKHN0cmluZy1tYXRjaCAiXlxcKC4rXFwpIGhhcyBx dWl0XFwoLipcXCkkIiBub3RpY2UtdGV4dCkKIAkgICAgICAgKHB1c2ggKGNvbnMgKGNvbmNhdCAo bWF0Y2gtc3RyaW5nIDEgbm90aWNlLXRleHQpCiAJCQkJICAgKG1hdGNoLXN0cmluZyAyIG5vdGlj ZS10ZXh0KSkKIAkJCSAgIChwb2ludCkpCi0JCSAgICAgcXVpdC1hbGlzdCkpCisJCSAgICAgcXVp dC1hbGlzdCkgdCkKIAkgICAgICh3aGVuIChzdHJpbmctbWF0Y2gKIAkJICAgICJeXFwoXFxTLStc XCkgKC4rKSBoYXMgY2hhbmdlZCBtb2RlIGZvciBcXFMtKyB0byBcXCguKlxcKSQiCiAJCSAgICBu b3RpY2UtdGV4dCkKIAkgICAgICAgKHB1c2ggKGNvbnMgKGNvbmNhdCAobWF0Y2gtc3RyaW5nIDEg bm90aWNlLXRleHQpICI6ICIKIAkJCQkgICAobWF0Y2gtc3RyaW5nIDIgbm90aWNlLXRleHQpKQog CQkJICAgKHBvaW50KSkKLQkJICAgICBtb2RlLWNoYW5nZS1hbGlzdCkpCisJCSAgICAgbW9kZS1j aGFuZ2UtYWxpc3QpIHQpCiAJICAgICAod2hlbiAoc3RyaW5nLW1hdGNoCiAJCSAgICAiXlxcKFxc Uy0rXFwpICguKykgaGFzIHNldCB0aGUgdG9waWMgZm9yIFxcUy0rOiBcXCguKlxcKSQiCiAJCSAg ICBub3RpY2UtdGV4dCkKZGlmZiAtLWdpdCBpL2xpc3AvZmlsZXMuZWwgdy9saXNwL2ZpbGVzLmVs CmluZGV4IGEzODRlNzEzNmUuLjMzODcwYzJiNmIgMTAwNjQ0Ci0tLSBpL2xpc3AvZmlsZXMuZWwK KysrIHcvbGlzcC9maWxlcy5lbApAQCAtNDAwNyw3ICs0MDA3LDggQEAgZGlyLWxvY2Fscy1jb2xs ZWN0LW1vZGUtdmFyaWFibGVzCiAgICAgICAoaWYgKGFuZCBzbG90IChub3QgKG1lbXEgdmFyaWFi bGUgJyhtb2RlIGV2YWwpKSkpCiAJICAoc2V0Y2RyIHNsb3QgdmFsdWUpCiAJOzsgTmVlZCBhIG5l dyBjb25zIGluIGNhc2Ugd2Ugc2V0Y2RyIGxhdGVyLgotCShwdXNoIChjb25zIHZhcmlhYmxlIHZh bHVlKSB2YXJpYWJsZXMpKSkpKQorCShwdXNoIChjb25zIHZhcmlhYmxlIHZhbHVlKSB2YXJpYWJs ZXMpCisJdmFyaWFibGVzKSkpKQogCiAoZGVmdW4gZGlyLWxvY2Fscy1jb2xsZWN0LXZhcmlhYmxl cyAoY2xhc3MtdmFyaWFibGVzIHJvb3QgdmFyaWFibGVzKQogICAiQ29sbGVjdCBlbnRyaWVzIGZy b20gQ0xBU1MtVkFSSUFCTEVTIGludG8gVkFSSUFCTEVTLgpkaWZmIC0tZ2l0IGkvbGlzcC9nbnVz L2dudXMtYXJ0LmVsIHcvbGlzcC9nbnVzL2dudXMtYXJ0LmVsCmluZGV4IGNmYjE4NWIzZDEuLjll YWMwNTZlZGUgMTAwNjQ0Ci0tLSBpL2xpc3AvZ251cy9nbnVzLWFydC5lbAorKysgdy9saXNwL2du dXMvZ251cy1hcnQuZWwKQEAgLTM5NjQsNyArMzk2NCw4IEBAIGdudXMtcmVhZC1zYXZlLWZpbGUt bmFtZQogCQkJCSAgIGdudXMtYXJ0aWNsZS1zYXZlLWRpcmVjdG9yeQogCQkJCSAgIChjYXIgc3Bs aXQtbmFtZSkpCiAJCQkJICBnbnVzLWFydGljbGUtc2F2ZS1kaXJlY3RvcnkpKSkKLQkJCSAoY2Fy IChwdXNoIHJlc3VsdCBmaWxlLW5hbWUtaGlzdG9yeSkpKSkpKSkKKwkJCSAocHVzaCByZXN1bHQg ZmlsZS1uYW1lLWhpc3RvcnkpCisJCQkgcmVzdWx0KSkpKSkKIAkgICAgICAgOzsgQ3JlYXRlIHRo ZSBkaXJlY3RvcnkuCiAJICAgICAgIChnbnVzLW1ha2UtZGlyZWN0b3J5IChmaWxlLW5hbWUtZGly ZWN0b3J5IGZpbGUpKQogCSAgICAgICA7OyBJZiB3ZSBoYXZlIHJlYWQgYSBkaXJlY3RvcnksIHdl IGFwcGVuZCB0aGUgZGVmYXVsdCBmaWxlIG5hbWUuCmRpZmYgLS1naXQgaS9saXNwL2dudXMvZ251 cy1ncm91cC5lbCB3L2xpc3AvZ251cy9nbnVzLWdyb3VwLmVsCmluZGV4IDVkNjgxNjNmZjMuLjE4 ZTkzZGU4MjAgMTAwNjQ0Ci0tLSBpL2xpc3AvZ251cy9nbnVzLWdyb3VwLmVsCisrKyB3L2xpc3Av Z251cy9nbnVzLWdyb3VwLmVsCkBAIC0xOTY4LDEwICsxOTY4LDEwIEBAIGdudXMtZ3JvdXAtcHJv Y2Vzcy1wcmVmaXgKICAgICAgIChzYXZlLWV4Y3Vyc2lvbgogCShnb3RvLWNoYXIgKG1pbiAocG9p bnQpIChtYXJrKSkpCiAJKHdoaWxlCi0JICAgIChhbmQKLQkgICAgIChwdXNoIChnbnVzLWdyb3Vw LWdyb3VwLW5hbWUpIGdyb3VwcykKLQkgICAgICh6ZXJvcCAoZ251cy1ncm91cC1uZXh0LWdyb3Vw IDEpKQotCSAgICAgKDwgKHBvaW50KSBtYXgpKSkKKwkgICAgKHByb2duCisJICAgICAgKHB1c2gg KGdudXMtZ3JvdXAtZ3JvdXAtbmFtZSkgZ3JvdXBzKQorCSAgICAgIChhbmQgKHplcm9wIChnbnVz LWdyb3VwLW5leHQtZ3JvdXAgMSkpCisJCSAgICg8IChwb2ludCkgbWF4KSkpKQogCShucmV2ZXJz ZSBncm91cHMpKSkpCiAgICAoZ251cy1ncm91cC1tYXJrZWQKICAgICA7OyBObyBwcmVmaXgsIGJ1 dCBhIGxpc3Qgb2YgbWFya2VkIGFydGljbGVzLgpkaWZmIC0tZ2l0IGkvbGlzcC9nbnVzL2dudXMt cGljb24uZWwgdy9saXNwL2dudXMvZ251cy1waWNvbi5lbAppbmRleCAxOGI0NmExYzEyLi44MjQ2 MzA3YWZmIDEwMDY0NAotLS0gaS9saXNwL2dudXMvZ251cy1waWNvbi5lbAorKysgdy9saXNwL2du dXMvZ251cy1waWNvbi5lbApAQCAtMTU4LDEwICsxNTgsMTEgQEAgZ251cy1waWNvbi1pbnNlcnQt Z2x5cGgKIAogKGRlZnVuIGdudXMtcGljb24tY3JlYXRlLWdseXBoIChmaWxlKQogICAob3IgKGNk ciAoYXNzb2MgZmlsZSBnbnVzLXBpY29uLWdseXBoLWFsaXN0KSkKLSAgICAgIChjZGFyIChwdXNo IChjb25zIGZpbGUgKGFwcGx5ICdnbnVzLWNyZWF0ZS1pbWFnZQotCQkJCSAgICBmaWxlIG5pbCBu aWwKLQkJCQkgICAgZ251cy1waWNvbi1wcm9wZXJ0aWVzKSkKLQkJICBnbnVzLXBpY29uLWdseXBo LWFsaXN0KSkpKQorICAgICAgKGxldCAoKGdseXBoIChhcHBseSAnZ251cy1jcmVhdGUtaW1hZ2UK KwkJCSAgZmlsZSBuaWwgbmlsCisJCQkgIGdudXMtcGljb24tcHJvcGVydGllcykpKQorCShwdXNo IChjb25zIGZpbGUgZ2x5cGgpIGdudXMtcGljb24tZ2x5cGgtYWxpc3QpCisJZ2x5cGgpKSkKIAog Ozs7IEZ1bmN0aW9ucyB0aGF0IGRvZXMgcGljb24gdHJhbnNmb3JtYXRpb25zOgogCmRpZmYgLS1n aXQgaS9saXNwL2dudXMvZ251cy1zdW0uZWwgdy9saXNwL2dudXMvZ251cy1zdW0uZWwKaW5kZXgg ZDYyYzA2MzQzNi4uODhjZjAyNWNkNyAxMDA2NDQKLS0tIGkvbGlzcC9nbnVzL2dudXMtc3VtLmVs CisrKyB3L2xpc3AvZ251cy9nbnVzLXN1bS5lbApAQCAtNjcxNiw4ICs2NzE2LDEwIEBAIGdudXMt c3VtbWFyeS13b3JrLWFydGljbGVzCiAJKHNhdmUtZXhjdXJzaW9uCiAJICAod2hpbGUKIAkgICAg ICAoYW5kICg+IG4gMCkKLQkJICAgKHB1c2ggKHNldHEgYXJ0aWNsZSAoZ251cy1zdW1tYXJ5LWFy dGljbGUtbnVtYmVyKSkKLQkJCSBhcnRpY2xlcykKKwkJICAgKHByb2duCisJCSAgICAgKHB1c2gg KHNldHEgYXJ0aWNsZSAoZ251cy1zdW1tYXJ5LWFydGljbGUtbnVtYmVyKSkKKwkJCSAgIGFydGlj bGVzKQorCQkgICAgIHQpCiAJCSAgIChpZiBiYWNrd2FyZAogCQkgICAgICAgKGdudXMtc3VtbWFy eS1maW5kLXByZXYgbmlsIGFydGljbGUpCiAJCSAgICAgKGdudXMtc3VtbWFyeS1maW5kLW5leHQg bmlsIGFydGljbGUpKSkKQEAgLTY3MzIsNyArNjczNCw5IEBAIGdudXMtc3VtbWFyeS13b3JrLWFy dGljbGVzCiAJICAoZ290by1jaGFyIChtaW4gKHBvaW50KSAobWFyaykpKQogCSAgKHdoaWxlCiAJ ICAgICAgKGFuZAotCSAgICAgICAocHVzaCAoc2V0cSBhcnRpY2xlIChnbnVzLXN1bW1hcnktYXJ0 aWNsZS1udW1iZXIpKSBhcnRpY2xlcykKKwkgICAgICAgKHByb2duCisJCSAocHVzaCAoc2V0cSBh cnRpY2xlIChnbnVzLXN1bW1hcnktYXJ0aWNsZS1udW1iZXIpKSBhcnRpY2xlcykKKwkJIHQpCiAJ ICAgICAgIChnbnVzLXN1bW1hcnktZmluZC1uZXh0IG5pbCBhcnRpY2xlKQogCSAgICAgICAoPCAo cG9pbnQpIG1heCkpKQogCSAgKG5yZXZlcnNlIGFydGljbGVzKSkpKQpkaWZmIC0tZ2l0IGkvbGlz cC9nbnVzL2dudXMtdXUuZWwgdy9saXNwL2dudXMvZ251cy11dS5lbAppbmRleCAyNTNlZTI0ZjMy Li5iZWI0MzE0ZjIzIDEwMDY0NAotLS0gaS9saXNwL2dudXMvZ251cy11dS5lbAorKysgdy9saXNw L2dudXMvZ251cy11dS5lbApAQCAtMTE1Myw4ICsxMTUzLDkgQEAgZ251cy11dS1nZXQtbGlzdC1v Zi1hcnRpY2xlcwogCSAgICAobiAoYWJzIG4pKSkKIAkoc2F2ZS1leGN1cnNpb24KIAkgICh3aGls ZSAoYW5kICg+IG4gMCkKLQkJICAgICAgKHB1c2ggKGdudXMtc3VtbWFyeS1hcnRpY2xlLW51bWJl cikKLQkJCSAgICBhcnRpY2xlcykKKwkJICAgICAgKHByb2duCisJCQkocHVzaCAoZ251cy1zdW1t YXJ5LWFydGljbGUtbnVtYmVyKSBhcnRpY2xlcykKKwkJCXQpCiAJCSAgICAgIChnbnVzLXN1bW1h cnktc2VhcmNoLWZvcndhcmQgbmlsIG5pbCBiYWNrd2FyZCkpCiAJICAgIChzZXRxIG4gKDEtIG4p KSkpCiAJKG5yZXZlcnNlIGFydGljbGVzKSkpCmRpZmYgLS1naXQgaS9saXNwL2dudXMvZ251cy5l bCB3L2xpc3AvZ251cy9nbnVzLmVsCmluZGV4IDIzNjQzY2M2YzcuLmI2ZGM5ZWZhYjQgMTAwNjQ0 Ci0tLSBpL2xpc3AvZ251cy9nbnVzLmVsCisrKyB3L2xpc3AvZ251cy9nbnVzLmVsCkBAIC02NTUs NyArNjU1LDkgQEAgZ251cy1idWZmZXJzCiAoZGVmdW4gZ251cy1nZXQtYnVmZmVyLWNyZWF0ZSAo bmFtZSkKICAgIkRvIHRoZSBzYW1lIGFzIGBnZXQtYnVmZmVyLWNyZWF0ZScsIGJ1dCBzdG9yZSB0 aGUgY3JlYXRlZCBidWZmZXIuIgogICAob3IgKGdldC1idWZmZXIgbmFtZSkKLSAgICAgIChjYXIg KHB1c2ggKGdldC1idWZmZXItY3JlYXRlIG5hbWUpIGdudXMtYnVmZmVycykpKSkKKyAgICAgIChs ZXQgKChidWZmZXIgKGdldC1idWZmZXItY3JlYXRlIG5hbWUpKSkKKyAgICAgICAgKHB1c2ggYnVm ZmVyIGdudXMtYnVmZmVycykKKyAgICAgICAgYnVmZmVyKSkpCiAKIChkZWZ1biBnbnVzLWFkZC1i dWZmZXIgKCkKICAgIkFkZCB0aGUgY3VycmVudCBidWZmZXIgdG8gdGhlIGxpc3Qgb2YgR251cyBi dWZmZXJzLiIKZGlmZiAtLWdpdCBpL2xpc3AvZ251cy9ubnRwLmVsIHcvbGlzcC9nbnVzL25udHAu ZWwKaW5kZXggM2RkZDUzZTQ2Yy4uZDIzOTk4YjYyNyAxMDA2NDQKLS0tIGkvbGlzcC9nbnVzL25u dHAuZWwKKysrIHcvbGlzcC9nbnVzL25udHAuZWwKQEAgLTEyOTksNyArMTI5OSw4IEBAIG5udHAt b3Blbi1jb25uZWN0aW9uCiAgICAgICAoaWYgKGFuZCAobm50cC13YWl0LWZvciBwcm9jZXNzICJe Mi4qXG4iIGJ1ZmZlciBuaWwgdCkKIAkgICAgICAgKG1lbXEgKHByb2Nlc3Mtc3RhdHVzIHByb2Nl c3MpICcob3BlbiBydW4pKSkKIAkgIChwcm9nMQotCSAgICAgIChjYWFyIChwdXNoIChsaXN0IHBy b2Nlc3MgYnVmZmVyIG5pbCkgbm50cC1jb25uZWN0aW9uLWFsaXN0KSkKKwkgICAgICBwcm9jZXNz CisJICAgIChwdXNoIChsaXN0IHByb2Nlc3MgYnVmZmVyIG5pbCkgbm50cC1jb25uZWN0aW9uLWFs aXN0KQogCSAgICAocHVzaCBwcm9jZXNzIG5udHAtY29ubmVjdGlvbi1saXN0KQogCSAgICAod2l0 aC1jdXJyZW50LWJ1ZmZlciBwYnVmZmVyCiAJICAgICAgKG5udHAtcmVhZC1zZXJ2ZXItdHlwZSkK ZGlmZiAtLWdpdCBpL2xpc3AvaWJ1Zi1leHQuZWwgdy9saXNwL2lidWYtZXh0LmVsCmluZGV4IDEy OTMwZmMwYTYuLjc2Y2NhM2Q5YjggMTAwNjQ0Ci0tLSBpL2xpc3AvaWJ1Zi1leHQuZWwKKysrIHcv bGlzcC9pYnVmLWV4dC5lbApAQCAtMTAyNywxMCArMTAyNywxMSBAQCBpYnVmZmVyLXBvcC1maWx0 ZXIKIAogKGRlZnVuIGlidWZmZXItcHVzaC1maWx0ZXIgKGZpbHRlci1zcGVjaWZpY2F0aW9uKQog ICAiQWRkIEZJTFRFUi1TUEVDSUZJQ0FUSU9OIHRvIGBpYnVmZmVyLWZpbHRlcmluZy1xdWFsaWZp ZXJzJy4KLUlmIEZJTFRFUi1TUEVDSUZJQ0FUSU9OIGlzIGFscmVhZHkgaW4gdGhlIGxpc3QgdGhl biByZXR1cm4gbmlsLiAgT3RoZXJ3aXNlLAotcmV0dXJuIHRoZSB1cGRhdGVkIGxpc3QuIgorSWYg RklMVEVSLVNQRUNJRklDQVRJT04gaXMgYWxyZWFkeSBpbiB0aGUgbGlzdCB0aGVuIHJldHVybiBu aWwuCitPdGhlcndpc2UsIHJldHVybiB0aGUgdXBkYXRlZCBsaXN0LiIKICAgKHVubGVzcyAobWVt YmVyIGZpbHRlci1zcGVjaWZpY2F0aW9uIGlidWZmZXItZmlsdGVyaW5nLXF1YWxpZmllcnMpCi0g ICAgKHB1c2ggZmlsdGVyLXNwZWNpZmljYXRpb24gaWJ1ZmZlci1maWx0ZXJpbmctcXVhbGlmaWVy cykpKQorICAgIChwdXNoIGZpbHRlci1zcGVjaWZpY2F0aW9uIGlidWZmZXItZmlsdGVyaW5nLXF1 YWxpZmllcnMpCisgICAgaWJ1ZmZlci1maWx0ZXJpbmctcXVhbGlmaWVycykpCiAKIDs7OyMjI2F1 dG9sb2FkCiAoZGVmdW4gaWJ1ZmZlci1kZWNvbXBvc2UtZmlsdGVyICgpCmRpZmYgLS1naXQgaS9s aXNwL2prYS1jbXByLWhvb2suZWwgdy9saXNwL2prYS1jbXByLWhvb2suZWwKaW5kZXggM2FhODRm NDViMC4uNjM0MTVlN2Q5ZCAxMDA2NDQKLS0tIGkvbGlzcC9qa2EtY21wci1ob29rLmVsCisrKyB3 L2xpc3AvamthLWNtcHItaG9vay5lbApAQCAtMTQxLDE3ICsxNDEsMTcgQEAgamthLWNvbXByLWlu c3RhbGwKICAgICAgIChwdXNoIGVsdCBmaWxlLWNvZGluZy1zeXN0ZW0tYWxpc3QpCiAgICAgICAo cHVzaCBlbHQgamthLWNvbXByLWFkZGVkLXRvLWZpbGUtY29kaW5nLXN5c3RlbS1hbGlzdCkpCiAK LSAgICAoYW5kIChqa2EtY29tcHItaW5mby1zdHJpcC1leHRlbnNpb24geCkKLSAgICAgICAgIDs7 IE1ha2UgZW50cmllcyBpbiBhdXRvLW1vZGUtYWxpc3Qgc28gdGhhdCBtb2RlcwotICAgICAgICAg OzsgYXJlIGNob3NlbiByaWdodCBhY2NvcmRpbmcgdG8gdGhlIGZpbGUgbmFtZXMKLSAgICAgICAg IDs7IHNhbnMgYC5neicuCi0gICAgICAgICAocHVzaCAobGlzdCAoamthLWNvbXByLWluZm8tcmVn ZXhwIHgpIG5pbCAnamthLWNvbXByKSBhdXRvLW1vZGUtYWxpc3QpCi0gICAgICAgICA7OyBBbHNv IGFkZCB0aGVzZSByZWdleHBzIHRvIGluaGliaXQtbG9jYWwtdmFyaWFibGVzLXN1ZmZpeGVzLAot ICAgICAgICAgOzsgc28gdGhhdCBhIC0qLSBsaW5lIGluIHRoZSBmaXJzdCBmaWxlIG9mIGEgY29t cHJlc3NlZCB0YXIgZmlsZSwKLSAgICAgICAgIDs7IG9yIGEgTG9jYWwgVmFyaWFibGVzIHNlY3Rp b24gaW4gYSBtZW1iZXIgZmlsZSBhdCB0aGUgZW5kIG9mCi0gICAgICAgICA7OyB0aGUgdGFyIGZp bGUgZG9uJ3Qgb3ZlcnJpZGUgdGFyLW1vZGUuCi0gICAgICAgICAocHVzaCAoamthLWNvbXByLWlu Zm8tcmVnZXhwIHgpCi0gICAgICAgICAgICAgICBpbmhpYml0LWxvY2FsLXZhcmlhYmxlcy1zdWZm aXhlcykpKQorICAgICh3aGVuIChqa2EtY29tcHItaW5mby1zdHJpcC1leHRlbnNpb24geCkKKyAg ICAgIDs7IE1ha2UgZW50cmllcyBpbiBhdXRvLW1vZGUtYWxpc3Qgc28gdGhhdCBtb2RlcworICAg ICAgOzsgYXJlIGNob3NlbiByaWdodCBhY2NvcmRpbmcgdG8gdGhlIGZpbGUgbmFtZXMKKyAgICAg IDs7IHNhbnMgYC5neicuCisgICAgICAocHVzaCAobGlzdCAoamthLWNvbXByLWluZm8tcmVnZXhw IHgpIG5pbCAnamthLWNvbXByKSBhdXRvLW1vZGUtYWxpc3QpCisgICAgICA7OyBBbHNvIGFkZCB0 aGVzZSByZWdleHBzIHRvIGluaGliaXQtbG9jYWwtdmFyaWFibGVzLXN1ZmZpeGVzLAorICAgICAg Ozsgc28gdGhhdCBhIC0qLSBsaW5lIGluIHRoZSBmaXJzdCBmaWxlIG9mIGEgY29tcHJlc3NlZCB0 YXIgZmlsZSwKKyAgICAgIDs7IG9yIGEgTG9jYWwgVmFyaWFibGVzIHNlY3Rpb24gaW4gYSBtZW1i ZXIgZmlsZSBhdCB0aGUgZW5kIG9mCisgICAgICA7OyB0aGUgdGFyIGZpbGUgZG9uJ3Qgb3ZlcnJp ZGUgdGFyLW1vZGUuCisgICAgICAocHVzaCAoamthLWNvbXByLWluZm8tcmVnZXhwIHgpCisgICAg ICAgICAgICBpbmhpYml0LWxvY2FsLXZhcmlhYmxlcy1zdWZmaXhlcykpKQogICAoc2V0cSBhdXRv LW1vZGUtYWxpc3QKIAkoYXBwZW5kIGF1dG8tbW9kZS1hbGlzdCBqa2EtY29tcHItbW9kZS1hbGlz dC1hZGRpdGlvbnMpKQogCmRpZmYgLS1naXQgaS9saXNwL21oLWUvbWgtc2VhcmNoLmVsIHcvbGlz cC9taC1lL21oLXNlYXJjaC5lbAppbmRleCA5N2YxZmRkY2QwLi44MTA2ZDI3MGEyIDEwMDY0NAot LS0gaS9saXNwL21oLWUvbWgtc2VhcmNoLmVsCisrKyB3L2xpc3AvbWgtZS9taC1zZWFyY2guZWwK QEAgLTc1MCwxMCArNzUwLDExIEBAIG1oLWluZGV4LWFkZC1pbXBsaWNpdC1vcHMKICAgICAgIChj b25kICgob3IgKGVxdWFsIGN1cnJlbnQgIikiKSAoZXF1YWwgY3VycmVudCAiYW5kIikgKGVxdWFs IGN1cnJlbnQgIm9yIikpCiAgICAgICAgICAgICAgKHNldHEgbGl0ZXJhbC1zZWVuIG5pbCkKICAg ICAgICAgICAgICAocHVzaCBjdXJyZW50IHJlc3VsdCkpCi0gICAgICAgICAgICAoKGFuZCBsaXRl cmFsLXNlZW4KLSAgICAgICAgICAgICAgICAgIChwdXNoICJhbmQiIHJlc3VsdCkKLSAgICAgICAg ICAgICAgICAgIChzZXRxIGxpdGVyYWwtc2VlbiBuaWwpCi0gICAgICAgICAgICAgICAgICBuaWwp KQorICAgICAgICAgICAgKCh3aGVuIGxpdGVyYWwtc2VlbgorICAgICAgICAgICAgICAgKHB1c2gg ImFuZCIgcmVzdWx0KQorICAgICAgICAgICAgICAgKHNldHEgbGl0ZXJhbC1zZWVuIG5pbCkKKyAg ICAgICAgICAgICAgIDs7IGZhbGxzIHRocm91Z2gKKyAgICAgICAgICAgICAgIG5pbCkpCiAgICAg ICAgICAgICAodAogICAgICAgICAgICAgIChwdXNoIGN1cnJlbnQgcmVzdWx0KQogICAgICAgICAg ICAgICh1bmxlc3MgKG9yIChlcXVhbCBjdXJyZW50ICIoIikgKGVxdWFsIGN1cnJlbnQgIm5vdCIp KQpkaWZmIC0tZ2l0IGkvbGlzcC9uZXQvdHJhbXAuZWwgdy9saXNwL25ldC90cmFtcC5lbAppbmRl eCBlMzQ0OTkwZjdmLi5mOGEwYWU5ODc4IDEwMDY0NAotLS0gaS9saXNwL25ldC90cmFtcC5lbAor Kysgdy9saXNwL25ldC90cmFtcC5lbApAQCAtMzI3MSw3ICszMjcxLDcgQEAgdHJhbXAtaGFuZGxl LWZpbGUtbmFtZS1jb21wbGV0aW9uCiAJICAgIChzdHJpbmctbWF0Y2gtcAogCSAgICAgKGNvbmNh dCAocmVnZXhwLW9wdCBjb21wbGV0aW9uLWlnbm9yZWQtZXh0ZW5zaW9ucyAncGFyZW4pICIkIikg eCkKIAkgICAgOzsgV2UgcmVtZW1iZXIgdGhlIGhpdC4KLQkgICAgKHB1c2ggeCBoaXRzLWlnbm9y ZWQtZXh0ZW5zaW9ucykpKSkpKQorCSAgICAocHJvZ24gKHB1c2ggeCBoaXRzLWlnbm9yZWQtZXh0 ZW5zaW9ucykgdCkpKSkpKQogICAgICA7OyBObyBtYXRjaC4gIFNvIHdlIHRyeSBhZ2FpbiBmb3Ig aWdub3JlZCBmaWxlcy4KICAgICAgKHRyeS1jb21wbGV0aW9uIGZpbGVuYW1lIGhpdHMtaWdub3Jl ZC1leHRlbnNpb25zKSkpKQogCmRpZmYgLS1naXQgaS9saXNwL29yZy9vYi1jb3JlLmVsIHcvbGlz cC9vcmcvb2ItY29yZS5lbAppbmRleCBmODc3ZmY1MWJmLi5jMjhkNWM2YWI0IDEwMDY0NAotLS0g aS9saXNwL29yZy9vYi1jb3JlLmVsCisrKyB3L2xpc3Avb3JnL29iLWNvcmUuZWwKQEAgLTE1Njks OSArMTU2OSw5IEBAIG9yZy1iYWJlbC1wYXJzZS1tdWx0aXBsZS12YXJzCiAgIChsZXQgKHJlc3Vs dHMpCiAgICAgKG1hcGMgKGxhbWJkYSAocGFpcikKIAkgICAgKGlmIChlcSAoY2FyIHBhaXIpIDp2 YXIpCi0JCShtYXBjYXIgKGxhbWJkYSAodikgKHB1c2ggKGNvbnMgOnZhciAob3JnLXRyaW0gdikp IHJlc3VsdHMpKQotCQkJKG9yZy1iYWJlbC1qb2luLXNwbGl0cy1uZWFyLWNoCi0JCQkgNjEgKG9y Zy1iYWJlbC1iYWxhbmNlZC1zcGxpdCAoY2RyIHBhaXIpIDMyKSkpCisJCShtYXBjIChsYW1iZGEg KHYpIChwdXNoIChjb25zIDp2YXIgKG9yZy10cmltIHYpKSByZXN1bHRzKSkKKwkJICAgICAgKG9y Zy1iYWJlbC1qb2luLXNwbGl0cy1uZWFyLWNoCisJCSAgICAgICA2MSAob3JnLWJhYmVsLWJhbGFu Y2VkLXNwbGl0IChjZHIgcGFpcikgMzIpKSkKIAkgICAgICAocHVzaCBwYWlyIHJlc3VsdHMpKSkK IAkgIGhlYWRlci1hcmd1bWVudHMpCiAgICAgKG5yZXZlcnNlIHJlc3VsdHMpKSkKZGlmZiAtLWdp dCBpL2xpc3Avb3JnL29yZy1saXN0LmVsIHcvbGlzcC9vcmcvb3JnLWxpc3QuZWwKaW5kZXggYzRh ZWYzMmZjMC4uNzc1NWFhMDc1MCAxMDA2NDQKLS0tIGkvbGlzcC9vcmcvb3JnLWxpc3QuZWwKKysr IHcvbGlzcC9vcmcvb3JnLWxpc3QuZWwKQEAgLTY5MSwxMiArNjkxLDEzIEBAIG9yZy1saXN0LXN0 cnVjdAogCSAgICAgIDs7IEF0IGRvd253YXJkIGxpbWl0OiB0aGlzIGlzIGRlIGZhY3RvIHRoZSBl bmQgb2YgdGhlCiAJICAgICAgOzsgbGlzdC4gIFNhdmUgcG9pbnQgYXMgYW4gZW5kaW5nIHBvc2l0 aW9uLCBhbmQganVtcCB0bwogCSAgICAgIDs7IHBhcnQgMy4KLQkgICAgICAodGhyb3cgJ2V4aXQK LQkJICAgICAocHVzaCAoY29ucyAwIChmdW5jYWxsIGVuZC1iZWZvcmUtYmxhbmspKSBlbmQtbHN0 LTIpKSkKKwkgICAgICAocHVzaCAoY29ucyAwIChmdW5jYWxsIGVuZC1iZWZvcmUtYmxhbmspKSBl bmQtbHN0LTIpCisJICAgICAgKHRocm93ICdleGl0IGVuZC1sc3QtMikpCiAJICAgICA7OyBMb29r aW5nIGF0IGEgbGlzdCBlbmRpbmcgcmVnZXhwLiAgU2F2ZSBwb2ludCBhcyBhbgogCSAgICAgOzsg ZW5kaW5nIHBvc2l0aW9uIGFuZCBqdW1wIHRvIHBhcnQgMy4KIAkgICAgICgobG9va2luZy1hdCBv cmctbGlzdC1lbmQtcmUpCi0JICAgICAgKHRocm93ICdleGl0IChwdXNoIChjb25zIDAgKHBvaW50 KSkgZW5kLWxzdC0yKSkpCisJICAgICAgKHB1c2ggKGNvbnMgMCAocG9pbnQpKSBlbmQtbHN0LTIp CisJICAgICAgKHRocm93ICdleGl0IGVuZC1sc3QtMikpCiAJICAgICAoKGxvb2tpbmctYXQgaXRl bS1yZSkKIAkgICAgICA7OyBQb2ludCBpcyBhdCBhbiBpdGVtLiAgQWRkIGRhdGEgdG8gSVRNLUxT VC0yLiBJdCBtYXkKIAkgICAgICA7OyBhbHNvIGVuZCBhIHByZXZpb3VzIGl0ZW0sIHNvIHNhdmUg aXQgaW4gRU5ELUxTVC0yLgpAQCAtNzEyLDggKzcxMyw4IEBAIG9yZy1saXN0LXN0cnVjdAogCSAg ICAgOzsgb3Zlcjogc3RvcmUgcG9pbnQgYXMgYW4gZW5kaW5nIHBvc2l0aW9uIGFuZCBqdW1wIHRv CiAJICAgICA7OyBwYXJ0IDMuCiAJICAgICAoKDw9IGluZCAoY2RyIGJlZy1jZWxsKSkKLQkgICAg ICAodGhyb3cgJ2V4aXQKLQkJICAgICAocHVzaCAoY29ucyAwIChmdW5jYWxsIGVuZC1iZWZvcmUt YmxhbmspKSBlbmQtbHN0LTIpKSkKKwkgICAgICAocHVzaCAoY29ucyAwIChmdW5jYWxsIGVuZC1i ZWZvcmUtYmxhbmspKSBlbmQtbHN0LTIpCisJICAgICAgKHRocm93ICdleGl0IGVuZC1sc3QtMikp CiAJICAgICA7OyBFbHNlLCBpZiBpbmQgaXMgbGVzc2VyIG9yIGVxdWFsIHRoYW4gcHJldmlvdXMg aXRlbSdzLAogCSAgICAgOzsgdGhpcyBpcyBhbiBlbmRpbmcgcG9zaXRpb246IHN0b3JlIGl0LiAg SW4gYW55IGNhc2UsCiAJICAgICA7OyBza2lwIGJsb2NrIG9yIGRyYXdlciBhdCBwb2ludCwgYW5k IG1vdmUgdG8gbmV4dCBsaW5lLgpkaWZmIC0tZ2l0IGkvbGlzcC9vcmcvb3guZWwgdy9saXNwL29y Zy9veC5lbAppbmRleCA1YjQxMzRlY2NhLi41OGY5N2VhNDlkIDEwMDY0NAotLS0gaS9saXNwL29y Zy9veC5lbAorKysgdy9saXNwL29yZy9veC5lbApAQCAtNTA4OCw4ICs1MDg4LDggQEAgb3JnLWV4 cG9ydC10YWJsZS1jZWxsLWJvcmRlcnMKIAkgIChjb25kICgoZXEgKG9yZy1lbGVtZW50LXByb3Bl cnR5IDp0eXBlIHJvdykgJ3J1bGUpCiAJCSAoc2V0cSBydWxlLWZsYWcgdCkpCiAJCSgobm90IChv cmctZXhwb3J0LXRhYmxlLXJvdy1pcy1zcGVjaWFsLXAgcm93IGluZm8pKQotCQkgKGlmIHJ1bGUt ZmxhZyAodGhyb3cgJ2V4aXQgKHB1c2ggJ2Fib3ZlIGJvcmRlcnMpKQotCQkgICAodGhyb3cgJ2V4 aXQgbmlsKSkpKSkKKwkJICh0aHJvdyAnZXhpdAorCQkgICAod2hlbiBydWxlLWZsYWcgKHB1c2gg J2Fib3ZlIGJvcmRlcnMpIGJvcmRlcnMpKSkpKQogCTs7IE5vIHJ1bGUgYWJvdmUsIG9yIHJ1bGUg Zm91bmQgc3RhcnRzIHRoZSB0YWJsZSAoaWdub3JpbmcgYW55CiAJOzsgc3BlY2lhbCByb3cpOiBU QUJMRS1DRUxMIGlzIGF0IHRoZSB0b3Agb2YgdGhlIHRhYmxlLgogCSh3aGVuIHJ1bGUtZmxhZyAo cHVzaCAnYWJvdmUgYm9yZGVycykpCkBAIC01MTAzLDggKzUxMDMsOCBAQCBvcmctZXhwb3J0LXRh YmxlLWNlbGwtYm9yZGVycwogCSAgKGNvbmQgKChlcSAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnR5 cGUgcm93KSAncnVsZSkKIAkJIChzZXRxIHJ1bGUtZmxhZyB0KSkKIAkJKChub3QgKG9yZy1leHBv cnQtdGFibGUtcm93LWlzLXNwZWNpYWwtcCByb3cgaW5mbykpCi0JCSAoaWYgcnVsZS1mbGFnICh0 aHJvdyAnZXhpdCAocHVzaCAnYmVsb3cgYm9yZGVycykpCi0JCSAgICh0aHJvdyAnZXhpdCBuaWwp KSkpKQorCQkgKHRocm93ICdleGl0CisJCSAgICh3aGVuIHJ1bGUtZmxhZyAocHVzaCAnYmVsb3cg Ym9yZGVycykgYm9yZGVycykpKSkpCiAJOzsgTm8gcnVsZSBiZWxvdywgb3IgcnVsZSBmb3VuZCBl bmRzIHRoZSB0YWJsZSAobW9kdWxvIHNvbWUKIAk7OyBzcGVjaWFsIHJvdyk6IFRBQkxFLUNFTEwg aXMgYXQgdGhlIGJvdHRvbSBvZiB0aGUgdGFibGUuCiAJKHdoZW4gcnVsZS1mbGFnIChwdXNoICdi ZWxvdyBib3JkZXJzKSkKZGlmZiAtLWdpdCBpL2xpc3AvcGxheS9kZWNpcGhlci5lbCB3L2xpc3Av cGxheS9kZWNpcGhlci5lbAppbmRleCA1MjY4M2FmZWIzLi5lMDdjN2Y0ZDk1IDEwMDY0NAotLS0g aS9saXNwL3BsYXkvZGVjaXBoZXIuZWwKKysrIHcvbGlzcC9wbGF5L2RlY2lwaGVyLmVsCkBAIC04 MjAsOCArODIwLDEwIEBAIGRlY2lwaGVyLS1hbmFseXplCiAgIDs7ICAgICBvZiB0aGUgY29ycmVz cG9uZGluZyBjaGFyYWN0ZXJzLgogICAoc2V0cSBkZWNpcGhlci0tZGlncmFtIChmb3JtYXQgIiVj JWMiIGRlY2lwaGVyLS1wcmV2LWNoYXIgZGVjaXBoZXItY2hhcikpCiAgIChjbC1pbmNmIChjZHIg KG9yIChhc3NvYyBkZWNpcGhlci0tZGlncmFtIGRlY2lwaGVyLS1kaWdyYW0tbGlzdCkKLSAgICAg ICAgICAgICAgICAgKGNhciAocHVzaCAoY29ucyBkZWNpcGhlci0tZGlncmFtIDApCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgZGVjaXBoZXItLWRpZ3JhbS1saXN0KSkpKSkKKyAgICAgICAg ICAgICAgICAgICAgKHByb2duCisgICAgICAgICAgICAgICAgICAgICAgKHB1c2ggKGNvbnMgZGVj aXBoZXItLWRpZ3JhbSAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlY2lwaGVyLS1k aWdyYW0tbGlzdCkKKyAgICAgICAgICAgICAgICAgICAgICAoY2FyIGRlY2lwaGVyLS1kaWdyYW0t bGlzdCkpKSkpCiAgIChhbmQgKD49IGRlY2lwaGVyLS1wcmV2LWNoYXIgP0EpCiAgICAgICAgKGNs LWluY2YgKGFyZWYgKGFyZWYgZGVjaXBoZXItLWJlZm9yZSAoLSBkZWNpcGhlci0tcHJldi1jaGFy ID9BKSkKICAgICAgICAgICAgICAgICAgICAoaWYgKGVxdWFsIGRlY2lwaGVyLWNoYXIgP1xzKQpk aWZmIC0tZ2l0IGkvbGlzcC9yZWNlbnRmLmVsIHcvbGlzcC9yZWNlbnRmLmVsCmluZGV4IDA4Mjhi ZmMyYmEuLjUxNmFlOWE4ZDYgMTAwNjQ0Ci0tLSBpL2xpc3AvcmVjZW50Zi5lbAorKysgdy9saXNw L3JlY2VudGYuZWwKQEAgLTg1NCw3ICs4NTQsOSBAQCByZWNlbnRmLWFycmFuZ2UtYnktcnVsZQog ICAgICAgICAoaWYgKG5vdCAoc3RyaW5ncCAoY2FyIG1lbnUpKSkKICAgICAgICAgICAgIChwdXNo IGVsdCBvdGhlcnMpCiAgICAgICAgICAgKHNldHEgbWVudSAob3IgKGFzc29jIChjYXIgbWVudSkg bWVudXMpCi0gICAgICAgICAgICAgICAgICAgICAgICAgKGNhciAocHVzaCAobGlzdCAoY2FyIG1l bnUpKSBtZW51cykpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAocHJvZ24KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgIChwdXNoIChsaXN0IChjYXIgbWVudSkpIG1lbnVzKQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgKGNhciBtZW51cykpKSkKICAgICAgICAgICAocmVjZW50Zi1z ZXQtbWVudS1lbGVtZW50LXZhbHVlCiAgICAgICAgICAgIG1lbnUgKGNvbnMgZWx0IChyZWNlbnRm LW1lbnUtZWxlbWVudC12YWx1ZSBtZW51KSkpKSkKICAgICAgIDs7IEZpbmFsaXplIGVhY2ggc3Vi LW1lbnU6CmRpZmYgLS1naXQgaS9saXNwL3RleHRtb2Rlcy9yZWZ0ZXgtcGFyc2UuZWwgdy9saXNw L3RleHRtb2Rlcy9yZWZ0ZXgtcGFyc2UuZWwKaW5kZXggZWI4NDQ2ZjRjNC4uNDIwZWM4ZmEyYiAx MDA2NDQKLS0tIGkvbGlzcC90ZXh0bW9kZXMvcmVmdGV4LXBhcnNlLmVsCisrKyB3L2xpc3AvdGV4 dG1vZGVzL3JlZnRleC1wYXJzZS5lbApAQCAtMTQwLDcgKzE0MCw5IEBAIHJlZnRleC1kby1wYXJz ZQogICAgICAgICAgICAoYm9mMiAoYXNzcSAnYm9mIChjZHIgYm9mMSkpKQogICAgICAgICAgICAo aXMtbXVsdGkgKG5vdCAobm90IChhbmQgYm9mMSBib2YyKSkpKQogICAgICAgICAgICAoZW50cnkg KG9yIChhc3NxICdpcy1tdWx0aSBkb2NzdHJ1Y3QpCi0gICAgICAgICAgICAgICAgICAgICAgKGNh ciAocHVzaCAobGlzdCAnaXMtbXVsdGkgaXMtbXVsdGkpIGRvY3N0cnVjdCkpKSkpCisgICAgICAg ICAgICAgICAgICAgICAgKHByb2duCisgICAgICAgICAgICAgICAgICAgICAgICAocHVzaCAobGlz dCAnaXMtbXVsdGkgaXMtbXVsdGkpIGRvY3N0cnVjdCkKKyAgICAgICAgICAgICAgICAgICAgICAg IChjYXIgZG9jc3RydWN0KSkpKSkKICAgICAgIChzZXRjZHIgZW50cnkgKGNvbnMgaXMtbXVsdGkg bmlsKSkpCiAgICAgKGFuZCByZWZ0ZXgtLWluZGV4LXRhZ3MKICAgICAgICAgIChzZXRxIHJlZnRl eC0taW5kZXgtdGFncyAoc29ydCByZWZ0ZXgtLWluZGV4LXRhZ3MgJ3N0cmluZzwpKSkKZGlmZiAt LWdpdCBpL2xpc3AvdmMvdmMtc3ZuLmVsIHcvbGlzcC92Yy92Yy1zdm4uZWwKaW5kZXggYTIwODFl MWFiOS4uMjg3MTVlOGEzMSAxMDA2NDQKLS0tIGkvbGlzcC92Yy92Yy1zdm4uZWwKKysrIHcvbGlz cC92Yy92Yy1zdm4uZWwKQEAgLTM1OSwxMCArMzU5LDEwIEBAIHZjLXN2bi1pZ25vcmUKICAgKGxl dCogKChwYXRoIChkaXJlY3RvcnktZmlsZS1uYW1lIChleHBhbmQtZmlsZS1uYW1lIGZpbGUgZGly ZWN0b3J5KSkpCiAgICAgICAgICAoZGlyZWN0b3J5IChmaWxlLW5hbWUtZGlyZWN0b3J5IHBhdGgp KQogICAgICAgICAgKGZpbGUgKGZpbGUtbmFtZS1ub25kaXJlY3RvcnkgcGF0aCkpCi0gICAgICAg ICAoaWdub3JlcyAodmMtc3ZuLWlnbm9yZS1jb21wbGV0aW9uLXRhYmxlIGRpcmVjdG9yeSkpCi0g ICAgICAgICAoaWdub3JlcyAoaWYgcmVtb3ZlCi0gICAgICAgICAgICAgICAgICAgICAgKGRlbGV0 ZSBmaWxlIGlnbm9yZXMpCi0gICAgICAgICAgICAgICAgICAgIChwdXNoIGZpbGUgaWdub3Jlcykp KSkKKyAgICAgICAgIChpZ25vcmVzICh2Yy1zdm4taWdub3JlLWNvbXBsZXRpb24tdGFibGUgZGly ZWN0b3J5KSkpCisgICAgKGlmIHJlbW92ZQorICAgICAgICAoc2V0cSBpZ25vcmVzIChkZWxldGUg ZmlsZSBpZ25vcmVzKSkKKyAgICAgIChwdXNoIGZpbGUgaWdub3JlcykpCiAgICAgKHZjLXN2bi1j b21tYW5kIG5pbCAwIG5pbCBuaWwgInByb3BzZXQiICJzdm46aWdub3JlIgogICAgICAgICAgICAg ICAgICAgICAobWFwY29uY2F0ICMnaWRlbnRpdHkgaWdub3JlcyAiXG4iKQogICAgICAgICAgICAg ICAgICAgICBkaXJlY3RvcnkpKSkKZGlmZiAtLWdpdCBpL2xpc3Avd2lubmVyLmVsIHcvbGlzcC93 aW5uZXIuZWwKaW5kZXggYTk3YmZiZGU5ZC4uMGJjMTIyZmQ2ZSAxMDA2NDQKLS0tIGkvbGlzcC93 aW5uZXIuZWwKKysrIHcvbGlzcC93aW5uZXIuZWwKQEAgLTIzNiw5ICsyMzYsMTEgQEAgd2lubmVy LW1ha2UtcG9pbnQtYWxpc3QKICAgICAgICAgICAgICBmb3Igd2luIGluICh3aW5kb3ctbGlzdCBu aWwgMCkKICAgICAgICAgICAgICBmb3IgZW50cnkgPQogICAgICAgICAgICAgIChvciAoYXNzcSAo d2luZG93LWJ1ZmZlciB3aW4pIGFsaXN0KQotICAgICAgICAgICAgICAgICAoY2FyIChwdXNoIChs aXN0IChzZXQtYnVmZmVyICh3aW5kb3ctYnVmZmVyIHdpbikpCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKGNvbnMgKG1hcmsgdCkgKHdpbm5lci1hY3RpdmUtcmVnaW9uKSkpCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxpc3QpKSkKKyAgICAgICAgICAgICAgICAgKHBy b2duCisgICAgICAgICAgICAgICAgICAgKHB1c2ggKGxpc3QgKHNldC1idWZmZXIgKHdpbmRvdy1i dWZmZXIgd2luKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ucyAobWFyayB0 KSAod2lubmVyLWFjdGl2ZS1yZWdpb24pKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICBhbGlz dCkKKyAgICAgICAgICAgICAgICAgICAoY2FyIGFsaXN0KSkpCiAgICAgICAgICAgICAgZG8gKHB1 c2ggKGNvbnMgd2luICh3aW5kb3ctcG9pbnQgd2luKSkKICAgICAgICAgICAgICAgICAgICAgICAo Y2RkciBlbnRyeSkpCiAgICAgICAgICAgICAgZmluYWxseSByZXR1cm4gYWxpc3QpKSkKZGlmZiAt LWdpdCBpL3Rlc3QvbGlzcC9lbWFjcy1saXNwL2NsLW1hY3MtdGVzdHMuZWwgdy90ZXN0L2xpc3Av ZW1hY3MtbGlzcC9jbC1tYWNzLXRlc3RzLmVsCmluZGV4IDg1MjMwNDQ3MTQuLmZlNDhkMDZkY2Ug MTAwNjQ0Ci0tLSBpL3Rlc3QvbGlzcC9lbWFjcy1saXNwL2NsLW1hY3MtdGVzdHMuZWwKKysrIHcv dGVzdC9saXNwL2VtYWNzLWxpc3AvY2wtbWFjcy10ZXN0cy5lbApAQCAtNTY1LDIxICs1NjUsMjIg QEAgY2wtbWFjcy1sb29wLWNvbmRpdGlvbmFsLXN0ZXAtY2xhdXNlcwogCiAgIChzaG91bGQgKGVx dWFsIChjbC1sb29wIHdpdGggcmVzdWx0CiAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciB4 IGJlbG93IDMKLSAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIF95ID0gKHByb2duIChwdXNo IHggcmVzdWx0KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIF95ID0gKHByb2duIChw dXNoIHggcmVzdWx0KSByZXN1bHQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFsbHkg cmV0dXJuIHJlc3VsdCkKICAgICAgICAgICAgICAgICAgJygyIDEgMCkpKQogCiAgIDs7IHRoaXMg bm9uaW50dWl0aXZlIHJlc3VsdCBpcyByZXBsaWNhdGVkIGJ5IGNsaXNwCiAgIChzaG91bGQgKGVx dWFsIChjbC1sb29wIHdpdGggcmVzdWx0CiAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciB4 IGJlbG93IDMKLSAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kIHkgPSAocHJvZ24gKHB1c2gg eCByZXN1bHQpKQorICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgeSA9IChwcm9nbiAocHVz aCB4IHJlc3VsdCkgcmVzdWx0KQogICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5hbGx5IHJl dHVybiByZXN1bHQpCiAgICAgICAgICAgICAgICAgICcoMiAxIDAgMCkpKQogCiAgIDs7IHRoaXMg bm9uaW50dWl0aXZlIHJlc3VsdCBpcyByZXBsaWNhdGVkIGJ5IGNsaXNwCiAgIChzaG91bGQgKGVx dWFsIChjbC1sb29wIHdpdGggcmVzdWx0CiAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciB4 IGJlbG93IDMKLSAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kIHkgPSAocHJvZ24gKHB1c2gg eCByZXN1bHQpKSB0aGVuIChwcm9nbiAocHVzaCAoMSsgeCkgcmVzdWx0KSkKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgYW5kIHkgPSAocHJvZ24gKHB1c2ggeCByZXN1bHQpIHJlc3VsdCkKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlbiAocHJvZ24gKHB1c2ggKDErIHgpIHJlc3Vs dCkgcmVzdWx0KQogICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5hbGx5IHJldHVybiByZXN1 bHQpCiAgICAgICAgICAgICAgICAgICcoMyAyIDEgMCkpKQogCg== --0000000000005aa04305990d8282--