From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Jared Finder via "Emacs development discussions." Newsgroups: gmane.emacs.devel Subject: Re: Additional cleanup around xterm-mouse Date: Sat, 26 Dec 2020 15:49:19 -0800 Message-ID: Reply-To: Jared Finder Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=_124522d8d55d240dcbf5cc1af80e905e" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="23256"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Roundcube Webmail/1.3.15 Cc: monnier@iro.umontreal.ca, emacs-devel@gnu.org To: Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sun Dec 27 00:50:18 2020 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1ktJKE-0005vP-AZ for ged-emacs-devel@m.gmane-mx.org; Sun, 27 Dec 2020 00:50:18 +0100 Original-Received: from localhost ([::1]:48248 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ktJKD-0004rZ-A5 for ged-emacs-devel@m.gmane-mx.org; Sat, 26 Dec 2020 18:50:17 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:51256) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ktJJP-0004Re-3z for emacs-devel@gnu.org; Sat, 26 Dec 2020 18:49:27 -0500 Original-Received: from greenhill.hpalace.com ([192.155.80.58]:56700) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ktJJL-0002S3-KZ; Sat, 26 Dec 2020 18:49:26 -0500 Original-Received: from mail.finder.org (greenhill.hpalace.com [IPv6:2600:3c01::f03c:91ff:fe73:2daa]) by greenhill.hpalace.com (Postfix) with ESMTPSA id 969959CA; Sat, 26 Dec 2020 23:49:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=finder.org; s=2018; t=1609026559; bh=CFeWKHTRO7D9JgIhFEWia7Vxvk48SHALvbZyIaJgAiA=; h=Date:From:To:Cc:Subject:From; b=Sllb59aspfTuusviD9c+IQR6gxSeQHVaqXcfUD3ZSuafKMKGnRK2uVxFrf/LJKwKI enfEp6I5RwURQ9CkP0cdrxYLa6CXJSmz9yZ7QJCanE5ewWdBjYUuEDiGUiYEQdv7jY lzHGzw3FGAGRUcle1If4KW2euuc6JQwKLv4XVw94T3NUy5ZjneT2kOOYBMeVwpwIuY /8WueWx5zBqKkwMD04g1kZH/8B8xRsGqm17VF87O6u3jQPkXtfpzEoQrbOaVL/3V6F +/Z5dxCRcHh/CGq2bjwUCY/Usy986ITW7zpvSoG2XgQ0WONIiEfcWxb2pqdhxmytbD 2DitUeQSBFGfg== X-Sender: jared@finder.org Received-SPF: pass client-ip=192.155.80.58; envelope-from=jared@finder.org; helo=greenhill.hpalace.com X-Spam_score_int: 12 X-Spam_score: 1.2 X-Spam_bar: + X-Spam_report: (1.2 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_SBL_CSS=3.335, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action 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-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:261875 Archived-At: --=_124522d8d55d240dcbf5cc1af80e905e Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 2020-12-24 10:43 am, Eli Zaretskii wrote: >> Date: Wed, 23 Dec 2020 09:21:10 -0800 >> From: Jared Finder >> Cc: monnier@iro.umontreal.ca, emacs-devel@gnu.org >> >> The additional thing to keep in mind is that read-key is implemented >> on >> top of read-key-sequence. read-key currently will never return down >> mouse events due to them being discarded in the (C function) >> read_key_sequence. > > And xterm-mouse-mode does need these down-mouse events? For what > purpose? Libraries need those events. For example, artist mode relies on reading both down mouse events when drawing a polyline. >> 1. [Stefan's preference] Change the behavior of the dont-downcase-last >> parameter to this more extensive meaning. Update global-set-key (the >> only other caller who sets dont-downcase-last in Emacs' code) to take >> this new behavior into account. >> >> 2. Make the dont-downcase-last parameter have the new behavior only if >> it is passed some new value (for example: 'all-fallbacks). Leave the >> existing behavior for any other value, especially 'nil and 't. >> >> 3. [My preference] Like 2, but with a deprecation message on values >> other than 'nil, 'all-fallbacks, or 't (or maybe 'downcase-last if we >> want full explicitness). This allows maximal ability to define new >> behaviors in the future. > > I prefer 3 or 2. 1 sounds too radical to me. It's true that in core > there's only one caller, but we have no idea what happens outside of > the core. Great, I've coded behavior #3. Updated patch attached. The remaining work to do is just documentation, but I was hoping to defer that until the code otherwise looks good. Let me know what you think. -- MJF --=_124522d8d55d240dcbf5cc1af80e905e Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=0001-WIP-version-making-libraries-work-with-xterm-mouse-m.patch Content-Disposition: attachment; filename=0001-WIP-version-making-libraries-work-with-xterm-mouse-m.patch; size=30656 RnJvbSA0YmQ5ZWQyMDQwNDkxOTVhNjljNzFkOTQzMDI2N2FhYjM4YzRmZTRlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKYXJlZCBGaW5kZXIgPGphcmVkQGZpbmRlci5vcmc+CkRhdGU6 IFR1ZSwgMSBEZWMgMjAyMCAyMjoyMzo0MyAtMDgwMApTdWJqZWN0OiBbUEFUQ0hdIFdJUCB2ZXJz aW9uIG1ha2luZyBsaWJyYXJpZXMgd29yayB3aXRoIHh0ZXJtLW1vdXNlLW1vZGUuCgpTdGlsbCB0 b2RvOgoqIEZpbmFsaXplIGNvbW1lbnQuCiogVXBkYXRlIG1hbnVhbC4KKiBVcGRhdGUgcmVsZWFz ZSBub3RlcyAoY2hhbmdpbmcgcmVhZC1rZXktc2VxdWVuY2UgaXMgYSBCSUcgREVBTCkuCgpXSVAg Y29tbWVudCAodGhpcyBuZWVkcyB0byBiZSB1cGRhdGVkKToKCk1ha2UgbGlicmFyaWVzIHdvcmsg d2l0aCB4dGVybS1tb3VzZS1tb2RlLgoKQ2hhbmdlIHJlYWQtZXZlbnQgY2FsbHMgaW4gbGlicmFy aWVzIGV4cGVjdGluZyBtb3VzZSBldmVudHMgdG8gcmVhZC1rZXkKd2hlbiB4dGVybS1tb3VzZS1t b2RlIGlzIGVuYWJsZWQuICBBZGQgYW4gb3B0aW9uIHRoYXQgdGVsbHMKcmVhZC1rZXktc2VxdWVu Y2UgKHdoaWNoIHJlYWQta2V5IGlzIGJ1aWx0IG9uIHRvcCBvZikgdG8gcmV0dXJuIG1vdXNlCmJ1 dHRvbiBkb3duIGV2ZW50cy4KCkZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IHB1cnBvc2VzLCB0 aGUgYWJvdmUgbG9naWMgaXMgY29udGFpbmVkIGluCmEgbmV3IGludGVybmFsLW9ubHkgZnVuY3Rp b246IHJlYWQtcG90ZW50aWFsLW1vdXNlLWV2ZW50LgoKKiBzcmMvbHJlYWQuYyAoRnJlYWRfZXZl bnQpOiBVcGRhdGUgZG9jc3RyaW5nIGZvciByZWFkLWV2ZW50IHRvCnJlY29tbWVuZCByZWFkLWtl eS4KKiBsaXNwL3N1YnIuZWwgKHJlYWQta2V5KTogQWRkIG5ldyBwYXJhbWV0ZXIsIGFsbC1tb3Vz ZS1ldmVudHMgdG8KcHJldmVudCBkaXNjYXJkaW5nIG1vdXNlIGV2ZW50cyBub3JtYWxseSBkaXNj YXJkZWQgYnkKcmVhZC1rZXktc2VxdWVuY2UuCiogZG9jL2xpc3ByZWYvY29tbWFuZHMudGV4aSAo UmVhZGluZyBPbmUgRXZlbnQpOiBEb2N1bWVudCBuZXcKcGFyYW1ldGVyLgoqIHNyYy9rZXlib2Fy ZC5jIChyZWFkX2tleV9zZXF1ZW5jZSk6IEltcGxlbWVudCBuZXcgYmVoYXZpb3IgZm9yCnJlYWQt a2V5LgooaW5oaWJpdC0tdW5ib3VuZC1tb3VzZS1mYWxsYmFjayk6IE5ldyB2YXJpYWJsZSB0byBl bmFibGUgbmV3CmJlaGF2aW9yLgoocmVhZC1wb3RlbnRpYWwtbW91c2UtZXZlbnQpOiBOZXcgZnVu Y3Rpb24gdGhhdCBjYWxscyByZWFkLWtleSBvcgpyZWFkLWV2ZW50IGRlcGVuZGluZyBvbiBpZiB4 dGVybS1tb3VzZS1tb2RlIGlzIHNldC4KKiBsaXNwL2ZvbGRvdXQuZWwgKGZvbGRvdXQtbW91c2Ut c3dhbGxvdy1ldmVudHMpOgoqIGxpc3AvaXNlYXJjaC5lbCAoaXNlYXJjaC1wcmUtY29tbWFuZC1o b29rKToKKiBsaXNwL21vdXNlLWRyYWcuZWwgKG1vdXNlLWRyYWctdGhyb3csIG1vdXNlLWRyYWct ZHJhZyk6CiogbGlzcC9tb3VzZS5lbCAobW91c2UtZHJhZy1zZWNvbmRhcnkpOgoqIGxpc3AvcnVs ZXItbW9kZS5lbCAocnVsZXItbW9kZS1tb3VzZS1ncmFiLWFueS1jb2x1bW4pCihydWxlci1tb2Rl LW1vdXNlLWRyYWctYW55LWNvbHVtbi1pdGVyYXRpb24pOgoqIGxpc3Avc3Ryb2tlcy5lbCAoc3Ry b2tlcy1yZWFkLXN0cm9rZSwgc3Ryb2tlcy1yZWFkLWNvbXBsZXgtc3Ryb2tlKToKKiBsaXNwL3Rl eHRtb2Rlcy9hcnRpc3QuZWwgKGFydGlzdC1tb3VzZS1kcmF3LWNvbnRpbm91c2x5KQooYXJ0aXN0 LW1vdXNlLWRyYXctcG9seSwgYXJ0aXN0LW1vdXNlLWRyYXctMnBvaW50cyk6CiogbGlzcC92Yy9l ZGlmZi13aW5kLmVsIChlZGlmZi1nZXQtd2luZG93LWJ5LWNsaWNraW5nKToKKiBsaXNwL3dpZC1l ZGl0LmVsICh3aWRnZXQtYnV0dG9uLS1jaGVjay1hbmQtY2FsbC1idXR0b24pCih3aWRnZXQtYnV0 dG9uLWNsaWNrKTogQ2FsbCBpdC4KKiBsaXNwL3dpZC1lZGl0LmVsICh3aWRnZXQta2V5LXNlcXVl bmNlLXJlYWQtZXZlbnQpOiBDYWxsIHJlYWQta2V5LApkZWxldGUgbWFudWFsIGFwcGxpY2F0aW9u IG9mIGZ1bmN0aW9uLWtleS1tYXAuCiogbGlzcC92Yy9lZGlmZi5lbCAoZWRpZmYtd2luZG93cyk6 IFVzZSBkaXNwbGF5LW1vdXNlLXAgdG8gY2hlY2sgaWYgYQptb3VzZSBpcyBhdmFpbGFibGUuCgpX SVAKLS0tCiBkb2MvbGlzcHJlZi9jb21tYW5kcy50ZXhpIHwgIDEyICsrKystCiBsaXNwL2ZvbGRv dXQuZWwgICAgICAgICAgIHwgICAyICstCiBsaXNwL2lzZWFyY2guZWwgICAgICAgICAgIHwgICAy ICstCiBsaXNwL21vdXNlLWRyYWcuZWwgICAgICAgIHwgICA0ICstCiBsaXNwL21vdXNlLmVsICAg ICAgICAgICAgIHwgICAyICstCiBsaXNwL3J1bGVyLW1vZGUuZWwgICAgICAgIHwgICA0ICstCiBs aXNwL3N0cm9rZXMuZWwgICAgICAgICAgIHwgIDIzICsrKystLS0tLQogbGlzcC9zdWJyLmVsICAg ICAgICAgICAgICB8ICA0OCArKysrKysrKysrKysrKysrLS0KIGxpc3AvdGV4dG1vZGVzL2FydGlz dC5lbCAgfCAgIDYgKy0tCiBsaXNwL3ZjL2VkaWZmLXdpbmQuZWwgICAgIHwgICA1ICstCiBsaXNw L3ZjL2VkaWZmLmVsICAgICAgICAgIHwgICAyICstCiBsaXNwL3dpZC1lZGl0LmVsICAgICAgICAg IHwgIDEyICsrLS0tCiBzcmMva2V5Ym9hcmQuYyAgICAgICAgICAgIHwgMTAxICsrKysrKysrKysr KysrKysrKysrKysrKysrKystLS0tLS0tLS0tCiBzcmMvbHJlYWQuYyAgICAgICAgICAgICAgIHwg ICA2ICsrKwogMTQgZmlsZXMgY2hhbmdlZCwgMTY2IGluc2VydGlvbnMoKyksIDYzIGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2RvYy9saXNwcmVmL2NvbW1hbmRzLnRleGkgYi9kb2MvbGlzcHJl Zi9jb21tYW5kcy50ZXhpCmluZGV4IDE1ZDdlNGUzYTcuLmFlNDEwNTNkNmUgMTAwNjQ0Ci0tLSBh L2RvYy9saXNwcmVmL2NvbW1hbmRzLnRleGkKKysrIGIvZG9jL2xpc3ByZWYvY29tbWFuZHMudGV4 aQpAQCAtMjQzNCw2ICsyNDM0LDggQEAgS2V5IFNlcXVlbmNlIElucHV0CiB3aXRoIGEgbW91c2Ug ZXZlbnQgaXMgcmVhZCB1c2luZyB0aGUga2V5bWFwcyBvZiB0aGUgYnVmZmVyIGluIHRoZQogd2lu ZG93IHRoYXQgdGhlIG1vdXNlIHdhcyBpbiwgbm90IHRoZSBjdXJyZW50IGJ1ZmZlci4pCiAKK1RP RE86IHVwZGF0ZSBkb2NzIGhlcmUuCisKIElmIHRoZSBldmVudHMgYXJlIGFsbCBjaGFyYWN0ZXJz IGFuZCBhbGwgY2FuIGZpdCBpbiBhIHN0cmluZywgdGhlbgogQGNvZGV7cmVhZC1rZXktc2VxdWVu Y2V9IHJldHVybnMgYSBzdHJpbmcgKEBweHJlZntTdHJpbmdzIG9mIEV2ZW50c30pLgogT3RoZXJ3 aXNlLCBpdCByZXR1cm5zIGEgdmVjdG9yLCBzaW5jZSBhIHZlY3RvciBjYW4gaG9sZCBhbGwga2lu ZHMgb2YKQEAgLTI0ODYsNyArMjQ4OCw3IEBAIEtleSBTZXF1ZW5jZSBJbnB1dAogYW5kIGRvZXMg bm90IHNldCBAY29kZXtxdWl0LWZsYWd9LiAgQHhyZWZ7UXVpdHRpbmd9LgogQGVuZCBkZWZ1bgog Ci1AZGVmdW4gcmVhZC1rZXktc2VxdWVuY2UtdmVjdG9yIHByb21wdCAmb3B0aW9uYWwgY29udGlu dWUtZWNobyBkb250LWRvd25jYXNlLWxhc3Qgc3dpdGNoLWZyYW1lLW9rIGNvbW1hbmQtbG9vcAor QGRlZnVuIHJlYWQta2V5LXNlcXVlbmNlLXZlY3RvciBwcm9tcHQgJm9wdGlvbmFsIGNvbnRpbnVl LWVjaG8gZmFsbGJhY2tzLWRpc2FibGVkIGNhbi1yZXR1cm4tc3dpdGNoLWZyYW1lIGNvbW1hbmQt bG9vcAogVGhpcyBpcyBsaWtlIEBjb2Rle3JlYWQta2V5LXNlcXVlbmNlfSBleGNlcHQgdGhhdCBp dCBhbHdheXMKIHJldHVybnMgdGhlIGtleSBzZXF1ZW5jZSBhcyBhIHZlY3RvciwgbmV2ZXIgYXMg YSBzdHJpbmcuCiBAeHJlZntTdHJpbmdzIG9mIEV2ZW50c30uCkBAIC0yNjk4LDcgKzI3MDAsNyBA QCBSZWFkaW5nIE9uZSBFdmVudAogSWYgeW91IHdpc2ggdG8gcmVhZCBhIHNpbmdsZSBrZXkgdGFr aW5nIHRoZXNlIHRyYW5zbGF0aW9ucyBpbnRvCiBhY2NvdW50LCB1c2UgdGhlIGZ1bmN0aW9uIEBj b2Rle3JlYWQta2V5fToKIAotQGRlZnVuIHJlYWQta2V5ICZvcHRpb25hbCBwcm9tcHQKK0BkZWZ1 biByZWFkLWtleSAmb3B0aW9uYWwgcHJvbXB0IGFsbC1mYWxsYmFja3MtZGlzYWJsZWQKIFRoaXMg ZnVuY3Rpb24gcmVhZHMgYSBzaW5nbGUga2V5LiAgSXQgaXMgaW50ZXJtZWRpYXRlIGJldHdlZW4K IEBjb2Rle3JlYWQta2V5LXNlcXVlbmNlfSBhbmQgQGNvZGV7cmVhZC1ldmVudH0uICBVbmxpa2Ug dGhlIGZvcm1lciwgaXQKIHJlYWRzIGEgc2luZ2xlIGtleSwgbm90IGEga2V5IHNlcXVlbmNlLiAg VW5saWtlIHRoZSBsYXR0ZXIsIGl0IGRvZXMKQEAgLTI3MDYsOCArMjcwOCwxNCBAQCBSZWFkaW5n IE9uZSBFdmVudAogYWNjb3JkaW5nIHRvIEBjb2Rle2lucHV0LWRlY29kZS1tYXB9LCBAY29kZXts b2NhbC1mdW5jdGlvbi1rZXktbWFwfSwKIGFuZCBAY29kZXtrZXktdHJhbnNsYXRpb24tbWFwfSAo QHB4cmVme1RyYW5zbGF0aW9uIEtleW1hcHN9KS4KIAorVE9ETzogdXBkYXRlIGRvY3MgaGVyZS4K KwogVGhlIGFyZ3VtZW50IEB2YXJ7cHJvbXB0fSBpcyBlaXRoZXIgYSBzdHJpbmcgdG8gYmUgZGlz cGxheWVkIGluIHRoZQogZWNobyBhcmVhIGFzIGEgcHJvbXB0LCBvciBAY29kZXtuaWx9LCBtZWFu aW5nIG5vdCB0byBkaXNwbGF5IGEgcHJvbXB0LgorCitJZiBhcmd1bWVudCBAdmFye2FsbC1tb3Vz ZS1ldmVudHN9IGlzIG5vbi1AY29kZXtuaWx9IHRoZW4gYnV0dG9uLWRvd24KK2FuZCBtdWx0aS1j bGljayBldmVudHMgd2lsbCBnZXQgcmV0dXJuZWQuICBPdGhlcndpc2UsIHRoZXNlIGFyZQoraWdu b3JlZCBhcyBpbiBAY29kZXtyZWFkLWtleS1zZXF1ZW5jZX0uCiBAZW5kIGRlZnVuCiAKIEBkZWZ1 biByZWFkLWNoYXItY2hvaWNlIHByb21wdCBjaGFycyAmb3B0aW9uYWwgaW5oaWJpdC1xdWl0CmRp ZmYgLS1naXQgYS9saXNwL2ZvbGRvdXQuZWwgYi9saXNwL2ZvbGRvdXQuZWwKaW5kZXggNTg0NTVj MjhiMS4uY2E3Nzc2Zjk3YSAxMDA2NDQKLS0tIGEvbGlzcC9mb2xkb3V0LmVsCisrKyBiL2xpc3Av Zm9sZG91dC5lbApAQCAtNDg3LDcgKzQ4Nyw3IEBAIGZvbGRvdXQtbW91c2Utc3dhbGxvdy1ldmVu dHMKIFNpZ25hbCBhbiBlcnJvciBpZiB0aGUgZmluYWwgZXZlbnQgaXNuJ3QgdGhlIHNhbWUgdHlw ZSBhcyB0aGUgZmlyc3Qgb25lLiIKICAgKGxldCAoKGluaXRpYWwtZXZlbnQtdHlwZSAoZXZlbnQt YmFzaWMtdHlwZSBldmVudCkpKQogICAgICh3aGlsZSAobnVsbCAoc2l0LWZvciAoLyBkb3VibGUt Y2xpY2stdGltZSAxMDAwLjApICdub2Rpc3BsYXkpKQotICAgICAgKHNldHEgZXZlbnQgKHJlYWQt ZXZlbnQpKSkKKyAgICAgIChzZXRxIGV2ZW50IChyZWFkLXBvdGVudGlhbC1tb3VzZS1ldmVudCkp KQogICAgIChvciAoZXEgaW5pdGlhbC1ldmVudC10eXBlIChldmVudC1iYXNpYy10eXBlIGV2ZW50 KSkKIAkoZXJyb3IgIiIpKSkKICAgZXZlbnQpCmRpZmYgLS1naXQgYS9saXNwL2lzZWFyY2guZWwg Yi9saXNwL2lzZWFyY2guZWwKaW5kZXggMTMxNzNhMjg1Ny4uODE1OTA2ZmVlNSAxMDA2NDQKLS0t IGEvbGlzcC9pc2VhcmNoLmVsCisrKyBiL2xpc3AvaXNlYXJjaC5lbApAQCAtMjk2OCw3ICsyOTY4 LDcgQEAgaXNlYXJjaC1wcmUtY29tbWFuZC1ob29rCiAgICAgICgoYW5kIChlcSAoY2FyLXNhZmUg bWFpbi1ldmVudCkgJ2Rvd24tbW91c2UtMSkKIAkgICAod2luZG93LW1pbmlidWZmZXItcCAocG9z bi13aW5kb3cgKGV2ZW50LXN0YXJ0IG1haW4tZXZlbnQpKSkpCiAgICAgICA7OyBTd2FsbG93IHRo ZSB1cC1ldmVudC4KLSAgICAgIChyZWFkLWV2ZW50KQorICAgICAgKHJlYWQtcG90ZW50aWFsLW1v dXNlLWV2ZW50KQogICAgICAgKHNldHEgdGhpcy1jb21tYW5kICdpc2VhcmNoLWVkaXQtc3RyaW5n KSkKICAgICAgOzsgRG9uJ3QgdGVybWluYXRlIHRoZSBzZWFyY2ggZm9yIG1vdGlvbiBjb21tYW5k cy4KICAgICAgKChhbmQgaXNlYXJjaC15YW5rLW9uLW1vdmUKZGlmZiAtLWdpdCBhL2xpc3AvbW91 c2UtZHJhZy5lbCBiL2xpc3AvbW91c2UtZHJhZy5lbAppbmRleCBlODBlYmJhMjhkLi5lZDI2ZTZm MDcyIDEwMDY0NAotLS0gYS9saXNwL21vdXNlLWRyYWcuZWwKKysrIGIvbGlzcC9tb3VzZS1kcmFn LmVsCkBAIC0yMjUsNyArMjI1LDcgQEAgbW91c2UtZHJhZy10aHJvdwogICAgICAgOzsgRG9uJ3Qg Y2hhbmdlIHRoZSBtb3VzZSBwb2ludGVyIHNoYXBlIHdoaWxlIHdlIGRyYWcuCiAgICAgICAoc2V0 cSB0cmFjay1tb3VzZSAnZHJhZ2dpbmcpCiAgICAgICAod2hpbGUgKHByb2duCi0JICAgICAgIChz ZXRxIGV2ZW50IChyZWFkLWV2ZW50KQorCSAgICAgICAoc2V0cSBldmVudCAocmVhZC1wb3RlbnRp YWwtbW91c2UtZXZlbnQpCiAJCSAgICAgZW5kIChldmVudC1lbmQgZXZlbnQpCiAJCSAgICAgcm93 IChjZHIgKHBvc24tY29sLXJvdyBlbmQpKQogCQkgICAgIGNvbCAoY2FyIChwb3NuLWNvbC1yb3cg ZW5kKSkpCkBAIC0yODYsNyArMjg2LDcgQEAgbW91c2UtZHJhZy1kcmFnCiAJICB3aW5kb3ctbGFz dC1jb2wgKC0gKHdpbmRvdy13aWR0aCkgMikpCiAgICAgKHRyYWNrLW1vdXNlCiAgICAgICAod2hp bGUgKHByb2duCi0JICAgICAgIChzZXRxIGV2ZW50IChyZWFkLWV2ZW50KQorCSAgICAgICAoc2V0 cSBldmVudCAocmVhZC1wb3RlbnRpYWwtbW91c2UtZXZlbnQpCiAJCSAgICAgZW5kIChldmVudC1l bmQgZXZlbnQpCiAJCSAgICAgcm93IChjZHIgKHBvc24tY29sLXJvdyBlbmQpKQogCQkgICAgIGNv bCAoY2FyIChwb3NuLWNvbC1yb3cgZW5kKSkpCmRpZmYgLS1naXQgYS9saXNwL21vdXNlLmVsIGIv bGlzcC9tb3VzZS5lbAppbmRleCA5ZDQ0OTJmMWJkLi43NDMzZjY0MDRmIDEwMDY0NAotLS0gYS9s aXNwL21vdXNlLmVsCisrKyBiL2xpc3AvbW91c2UuZWwKQEAgLTE3OTIsNyArMTc5Miw3IEBAIG1v dXNlLWRyYWctc2Vjb25kYXJ5CiAgICAgICAobGV0IChldmVudCBlbmQgZW5kLXBvaW50KQogCSh0 cmFjay1tb3VzZQogCSAgKHdoaWxlIChwcm9nbgotCQkgICAoc2V0cSBldmVudCAocmVhZC1ldmVu dCkpCisJCSAgIChzZXRxIGV2ZW50IChyZWFkLXBvdGVudGlhbC1tb3VzZS1ldmVudCkpCiAJCSAg IChvciAobW91c2UtbW92ZW1lbnQtcCBldmVudCkKIAkJICAgICAgIChtZW1xIChjYXItc2FmZSBl dmVudCkgJyhzd2l0Y2gtZnJhbWUgc2VsZWN0LXdpbmRvdykpKSkKIApkaWZmIC0tZ2l0IGEvbGlz cC9ydWxlci1tb2RlLmVsIGIvbGlzcC9ydWxlci1tb2RlLmVsCmluZGV4IGQ5N2FiY2E5ZWUuLjhh ODFlMjEzY2IgMTAwNjQ0Ci0tLSBhL2xpc3AvcnVsZXItbW9kZS5lbAorKysgYi9saXNwL3J1bGVy LW1vZGUuZWwKQEAgLTQyOSw3ICs0MjksNyBAQCBydWxlci1tb2RlLW1vdXNlLWdyYWItYW55LWNv bHVtbgogICAgICAgICAgOzsgYGRpbmcnIGZsdXNoZXMgdGhlIG5leHQgbWVzc2FnZXMgYWJvdXQg c2V0dGluZyBnb2FsCiAgICAgICAgICA7OyBjb2x1bW4uICBTbyBoZXJlIEkgZm9yY2UgZmV0Y2gg dGhlIGV2ZW50KG1vdXNlLTIpIGFuZAogICAgICAgICAgOzsgdGhyb3cgYXdheS4KLSAgICAgICAg IChyZWFkLWV2ZW50KQorICAgICAgICAgKHJlYWQtcG90ZW50aWFsLW1vdXNlLWV2ZW50KQogICAg ICAgICAgOzsgRGluZyBCRUZPUkUgYG1lc3NhZ2UnIGlzIE9LLgogICAgICAgICAgKHdoZW4gcnVs ZXItbW9kZS1zZXQtZ29hbC1jb2x1bW4tZGluZy1mbGFnCiAgICAgICAgICAgIChkaW5nKSkKQEAg LTQ2MCw3ICs0NjAsNyBAQCBydWxlci1tb2RlLW1vdXNlLWRyYWctYW55LWNvbHVtbi1pdGVyYXRp b24KICAgICAodHJhY2stbW91c2UKICAgICAgIDs7IFNpZ25hbCB0aGUgZGlzcGxheSBlbmdpbmUg dG8gZnJlZXplIHRoZSBtb3VzZSBwb2ludGVyIHNoYXBlLgogICAgICAgKHNldHEgdHJhY2stbW91 c2UgJ2RyYWdnaW5nKQotICAgICAgKHdoaWxlIChtb3VzZS1tb3ZlbWVudC1wIChzZXRxIGV2ZW50 IChyZWFkLWV2ZW50KSkpCisgICAgICAod2hpbGUgKG1vdXNlLW1vdmVtZW50LXAgKHNldHEgZXZl bnQgKHJlYWQtcG90ZW50aWFsLW1vdXNlLWV2ZW50KSkpCiAgICAgICAgIChzZXRxIGRyYWdzICgx KyBkcmFncykpCiAgICAgICAgICh3aGVuIChlcSB3aW5kb3cgKHBvc24td2luZG93IChldmVudC1l bmQgZXZlbnQpKSkKICAgICAgICAgICAocnVsZXItbW9kZS1tb3VzZS1kcmFnLWFueS1jb2x1bW4g ZXZlbnQpCmRpZmYgLS1naXQgYS9saXNwL3N0cm9rZXMuZWwgYi9saXNwL3N0cm9rZXMuZWwKaW5k ZXggMDQ0ODcyMDY4Zi4uMDI2NGM5YjFlMiAxMDA2NDQKLS0tIGEvbGlzcC9zdHJva2VzLmVsCisr KyBiL2xpc3Avc3Ryb2tlcy5lbApAQCAtNzU2LDEyICs3NTYsMTIgQEAgc3Ryb2tlcy1yZWFkLXN0 cm9rZQogCSAgICAgIChzdHJva2VzLWZpbGwtY3VycmVudC1idWZmZXItd2l0aC13aGl0ZXNwYWNl KSkKIAkgICAgKHdoZW4gcHJvbXB0CiAJICAgICAgKG1lc3NhZ2UgIiVzIiBwcm9tcHQpCi0JICAg ICAgKHNldHEgZXZlbnQgKHJlYWQtZXZlbnQpKQorCSAgICAgIChzZXRxIGV2ZW50IChyZWFkLXBv dGVudGlhbC1tb3VzZS1ldmVudCkpCiAJICAgICAgKG9yIChzdHJva2VzLWJ1dHRvbi1wcmVzcy1l dmVudC1wIGV2ZW50KQogCQkgIChlcnJvciAiWW91IG11c3QgZHJhdyB3aXRoIHRoZSBtb3VzZSIp KSkKIAkgICAgKHVud2luZC1wcm90ZWN0CiAJCSh0cmFjay1tb3VzZQotCQkgIChvciBldmVudCAo c2V0cSBldmVudCAocmVhZC1ldmVudCkKKwkJICAob3IgZXZlbnQgKHNldHEgZXZlbnQgKHJlYWQt cG90ZW50aWFsLW1vdXNlLWV2ZW50KQogCQkJCSAgc2FmZS10by1kcmF3LXAgdCkpCiAJCSAgKHdo aWxlIChub3QgKHN0cm9rZXMtYnV0dG9uLXJlbGVhc2UtZXZlbnQtcCBldmVudCkpCiAJCSAgICAo aWYgKHN0cm9rZXMtbW91c2UtZXZlbnQtcCBldmVudCkKQEAgLTc3Niw3ICs3NzYsNyBAQCBzdHJv a2VzLXJlYWQtc3Ryb2tlCiAJCQkgICAgKHNldHEgc2FmZS10by1kcmF3LXAgdCkpCiAJCQkgIChw dXNoIChjZHIgKG1vdXNlLXBpeGVsLXBvc2l0aW9uKSkKIAkJCQlwaXgtbG9jcykpKQotCQkgICAg KHNldHEgZXZlbnQgKHJlYWQtZXZlbnQpKSkpKQorCQkgICAgKHNldHEgZXZlbnQgKHJlYWQtcG90 ZW50aWFsLW1vdXNlLWV2ZW50KSkpKSkKIAkgICAgOzsgcHJvdGVjdGVkCiAJICAgIDs7IGNsZWFu IHVwIHN0cm9rZXMgYnVmZmVyIGFuZCB0aGVuIGJ1cnkgaXQuCiAJICAgICh3aGVuIChlcXVhbCAo YnVmZmVyLW5hbWUpIHN0cm9rZXMtYnVmZmVyLW5hbWUpCkBAIC03ODcsMTYgKzc4NywxNiBAQCBz dHJva2VzLXJlYWQtc3Ryb2tlCiAgICAgICA7OyBPdGhlcndpc2UsIGRvbid0IHVzZSBzdHJva2Vz IGJ1ZmZlciBhbmQgcmVhZCBzdHJva2Ugc2lsZW50bHkKICAgICAgICh3aGVuIHByb21wdAogCSht ZXNzYWdlICIlcyIgcHJvbXB0KQotCShzZXRxIGV2ZW50IChyZWFkLWV2ZW50KSkKKwkoc2V0cSBl dmVudCAocmVhZC1wb3RlbnRpYWwtbW91c2UtZXZlbnQpKQogCShvciAoc3Ryb2tlcy1idXR0b24t cHJlc3MtZXZlbnQtcCBldmVudCkKIAkgICAgKGVycm9yICJZb3UgbXVzdCBkcmF3IHdpdGggdGhl IG1vdXNlIikpKQogICAgICAgKHRyYWNrLW1vdXNlCi0JKG9yIGV2ZW50IChzZXRxIGV2ZW50IChy ZWFkLWV2ZW50KSkpCisJKG9yIGV2ZW50IChzZXRxIGV2ZW50IChyZWFkLXBvdGVudGlhbC1tb3Vz ZS1ldmVudCkpKQogCSh3aGlsZSAobm90IChzdHJva2VzLWJ1dHRvbi1yZWxlYXNlLWV2ZW50LXAg ZXZlbnQpKQogCSAgKGlmIChzdHJva2VzLW1vdXNlLWV2ZW50LXAgZXZlbnQpCiAJICAgICAgKHB1 c2ggKGNkciAobW91c2UtcGl4ZWwtcG9zaXRpb24pKQogCQkgICAgcGl4LWxvY3MpKQotCSAgKHNl dHEgZXZlbnQgKHJlYWQtZXZlbnQpKSkpCisJICAoc2V0cSBldmVudCAocmVhZC1wb3RlbnRpYWwt bW91c2UtZXZlbnQpKSkpCiAgICAgICAoc2V0cSBncmlkLWxvY3MgKHN0cm9rZXMtcmVub3JtYWxp emUtdG8tZ3JpZCAobnJldmVyc2UgcGl4LWxvY3MpKSkKICAgICAgIChzdHJva2VzLWZpbGwtc3Ry b2tlCiAgICAgICAgKHN0cm9rZXMtZWxpbWluYXRlLWNvbnNlY3V0aXZlLXJlZHVuZGFuY2llcyBn cmlkLWxvY3MpKSkpKQpAQCAtODE3LDEwICs4MTcsMTAgQEAgc3Ryb2tlcy1yZWFkLWNvbXBsZXgt c3Ryb2tlCiAJKGlmIHByb21wdAogCSAgICAod2hpbGUgKG5vdCAoc3Ryb2tlcy1idXR0b24tcHJl c3MtZXZlbnQtcCBldmVudCkpCiAJICAgICAgKG1lc3NhZ2UgIiVzIiBwcm9tcHQpCi0JICAgICAg KHNldHEgZXZlbnQgKHJlYWQtZXZlbnQpKSkpCisJICAgICAgKHNldHEgZXZlbnQgKHJlYWQtcG90 ZW50aWFsLW1vdXNlLWV2ZW50KSkpKQogCSh1bndpbmQtcHJvdGVjdAogCSAgICAodHJhY2stbW91 c2UKLQkgICAgICAob3IgZXZlbnQgKHNldHEgZXZlbnQgKHJlYWQtZXZlbnQpKSkKKwkgICAgICAo b3IgZXZlbnQgKHNldHEgZXZlbnQgKHJlYWQtcG90ZW50aWFsLW1vdXNlLWV2ZW50KSkpCiAJICAg ICAgKHdoaWxlIChub3QgKGFuZCAoc3Ryb2tlcy1idXR0b24tcHJlc3MtZXZlbnQtcCBldmVudCkK IAkJCSAgICAgICAoZXEgJ21vdXNlLTMKIAkJCQkgICAoY2FyIChnZXQgKGNhciBldmVudCkKQEAg LTgzNCwxNCArODM0LDE1IEBAIHN0cm9rZXMtcmVhZC1jb21wbGV4LXN0cm9rZQogCQkJCQkJP1xz IHN0cm9rZXMtY2hhcmFjdGVyKSkKIAkJCShwdXNoIChjZHIgKG1vdXNlLXBpeGVsLXBvc2l0aW9u KSkKIAkJCSAgICAgIHBpeC1sb2NzKSkpCi0JCSAgKHNldHEgZXZlbnQgKHJlYWQtZXZlbnQpKSkK KwkJICAoc2V0cSBldmVudCAocmVhZC1wb3RlbnRpYWwtbW91c2UtZXZlbnQpKSkKIAkJKHB1c2gg c3Ryb2tlcy1saWZ0IHBpeC1sb2NzKQogCQkod2hpbGUgKG5vdCAoc3Ryb2tlcy1idXR0b24tcHJl c3MtZXZlbnQtcCBldmVudCkpCi0JCSAgKHNldHEgZXZlbnQgKHJlYWQtZXZlbnQpKSkpCisJCSAg KHNldHEgZXZlbnQgKHJlYWQtcG90ZW50aWFsLW1vdXNlLWV2ZW50KSkpKQogCSAgICAgIDs7ICMj IyBLTFVER0UhICMjIyBzaXQgYW5kIHdhaXQKIAkgICAgICA7OyBmb3Igc29tZSB1c2VsZXNzIGV2 ZW50IHRvCiAJICAgICAgOzsgaGFwcGVuIHRvIGZpeCB0aGUgbWluaWJ1ZmZlciBidWcuCi0JICAg ICAgKHdoaWxlIChub3QgKHN0cm9rZXMtYnV0dG9uLXJlbGVhc2UtZXZlbnQtcCAocmVhZC1ldmVu dCkpKSkKKwkgICAgICAod2hpbGUgKG5vdCAoc3Ryb2tlcy1idXR0b24tcmVsZWFzZS1ldmVudC1w CisgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVhZC1wb3RlbnRpYWwtbW91c2UtZXZlbnQp KSkpCiAJICAgICAgKHNldHEgcGl4LWxvY3MgKG5yZXZlcnNlIChjZHIgcGl4LWxvY3MpKQogCQkg ICAgZ3JpZC1sb2NzIChzdHJva2VzLXJlbm9ybWFsaXplLXRvLWdyaWQgcGl4LWxvY3MpKQogCSAg ICAgIChzdHJva2VzLWZpbGwtc3Ryb2tlCmRpZmYgLS1naXQgYS9saXNwL3N1YnIuZWwgYi9saXNw L3N1YnIuZWwKaW5kZXggNzI1NzIyY2JlZS4uMzZlYjI3MzEyZCAxMDA2NDQKLS0tIGEvbGlzcC9z dWJyLmVsCisrKyBiL2xpc3Avc3Vici5lbApAQCAtMTEyMyw3ICsxMTIzLDE2IEBAIGdsb2JhbC1z ZXQta2V5CiB0aGF0IHlvdSBtYWtlIHdpdGggdGhpcyBmdW5jdGlvbi4iCiAgIChpbnRlcmFjdGl2 ZQogICAgKGxldCogKChtZW51LXByb21wdGluZyBuaWwpCi0gICAgICAgICAgKGtleSAocmVhZC1r ZXktc2VxdWVuY2UgIlNldCBrZXkgZ2xvYmFsbHk6ICIgbmlsIHQpKSkKKyAgICAgICAgICAoa2V5 IChyZWFkLWtleS1zZXF1ZW5jZQorICAgICAgICAgICAgICAgICJTZXQga2V5IGdsb2JhbGx5OiAi IG5pbAorICAgICAgICAgICAgICAgIDs7IEZJWE1FOiBJdCdkIGJlIG5pY2VyIGlmIHRoaXMgd2Fz IHNldCB0bworICAgICAgICAgICAgICAgIDs7ICdhbGwtZmFsbGJhY2tzLCBob3dldmVyIHRoYXQg d291bGQgbm90IGFwcGx5IHRoZQorICAgICAgICAgICAgICAgIDs7IHRyYW5zZm9ybWF0aW9ucyBh cHBsaWVkIGJ5IGxvY2FsLWZ1bmN0aW9uLWtleS1tYXAsCisgICAgICAgICAgICAgICAgOzsgZm9y IGV4YW1wbGUgY29udHJvbCBtb2RpZmllZCBmdW5jdGlvbiBrZXlzLgorICAgICAgICAgICAgICAg IDs7IGB3aWRnZXQta2V5LXNlcXVlbmNlLXJlYWQtZXZlbnQnIHF1ZXJpZXMgdGhlIHVzZXIKKyAg ICAgICAgICAgICAgICA7OyB3aGljaCBrZXkgdGhleSB3YW50IGluIHRoaXMgY2FzZSwgcGVyaGFw cyBkbyB0aGUKKyAgICAgICAgICAgICAgICA7OyBzYW1lIGhlcmU/CisgICAgICAgICAgICAgICAg J2Rvd25jYXNlLWxhc3QpKSkKICAgICAgKGxpc3Qga2V5CiAgICAgICAgICAgIChyZWFkLWNvbW1h bmQgKGZvcm1hdCAiU2V0IGtleSAlcyB0byBjb21tYW5kOiAiCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAoa2V5LWRlc2NyaXB0aW9uIGtleSkpKSkpKQpAQCAtMjQ1NiwxMyArMjQ2 NSwyNCBAQCByZWFkLWtleS1lbXB0eS1tYXAKIAogKGRlZnZhciByZWFkLWtleS1kZWxheSAwLjAx KSA7RmFzdCBlbm91Z2ggZm9yIDEwMEh6IHJlcGVhdCByYXRlLCBob3BlZnVsbHkuCiAKLShkZWZ1 biByZWFkLWtleSAoJm9wdGlvbmFsIHByb21wdCkKKyhkZWZ1biByZWFkLWtleSAoJm9wdGlvbmFs IHByb21wdCBhbGwtZmFsbGJhY2tzLWRpc2FibGVkKQogICAiUmVhZCBhIGtleSBmcm9tIHRoZSBr ZXlib2FyZC4KIENvbnRyYXJ5IHRvIGByZWFkLWV2ZW50JyB0aGlzIHdpbGwgbm90IHJldHVybiBh IHJhdyBldmVudCBidXQgaW5zdGVhZCB3aWxsCiBvYmV5IHRoZSBpbnB1dCBkZWNvZGluZyBhbmQg dHJhbnNsYXRpb25zIHVzdWFsbHkgZG9uZSBieSBgcmVhZC1rZXktc2VxdWVuY2UnLgogU28gZXNj YXBlIHNlcXVlbmNlcyBhbmQga2V5Ym9hcmQgZW5jb2RpbmcgYXJlIHRha2VuIGludG8gYWNjb3Vu dC4KIFdoZW4gdGhlcmUncyBhbiBhbWJpZ3VpdHkgYmVjYXVzZSB0aGUga2V5IGxvb2tzIGxpa2Ug dGhlIHByZWZpeCBvZgotc29tZSBzb3J0IG9mIGVzY2FwZSBzZXF1ZW5jZSwgdGhlIGFtYmlndWl0 eSBpcyByZXNvbHZlZCB2aWEgYHJlYWQta2V5LWRlbGF5Jy4iCitzb21lIHNvcnQgb2YgZXNjYXBl IHNlcXVlbmNlLCB0aGUgYW1iaWd1aXR5IGlzIHJlc29sdmVkIHZpYSBgcmVhZC1rZXktZGVsYXkn LgorCitJZiB0aGUgb3B0aW9uYWwgYXJndW1lbnQgUFJPTVBUIGlzIG5vbi1uaWwsIGRpc3BsYXkg dGhhdCBhcyBhCitwcm9tcHQuCisKK0lmIHRoZSBvcHRpb25hbCBhcmd1bWVudCBBTEwtRkFMTEJB Q0tTLURJU0FCTEVEIGlzIG5vbi1uaWwsIGFsbAordW5ib3VuZCBmYWxsYmFja3MgdXN1YWxseSBk b25lIGJ5IGByZWFkLWtleS1zZXF1ZW5jZScgYXJlCitkaXNhYmxlZCBzdWNoIGFzIGRpc2NhcmRp bmcgbW91c2UgZG93biBldmVudHMuICBUaGlzIGlzIGdlbmVyYWxseQord2hhdCB5b3Ugd2FudCBh cyBgcmVhZC1rZXknIHRlbXBvcmFyaWx5IHJlbW92ZXMgYWxsIGJpbmRpbmdzLgorT3RoZXJ3aXNl LCBvbmx5IGRvd25jYXNpbmcgb2YgdGhlIGxhc3QgZXZlbnQgaXMgZGlzYWJsZWQuICBTZWUKK3Ro ZSBwYXJhbWV0ZXIgRkFMTEJBQ0tTLURJU0FCTEVEIHRvIGByZWFkLWtleS1zZXF1ZW5jZScgZm9y IG1vcmUKK2RldGFpbHMuIgogICA7OyBUaGlzIG92ZXJyaWRpbmctdGVybWluYWwtbG9jYWwtbWFw IGJpbmRpbmcgYWxzbyBoYXBwZW5zIHRvCiAgIDs7IGRpc2FibGUgcXVhaWwncyBpbnB1dCBtZXRo b2RzLCBzbyBhbHRob3VnaCByZWFkLWtleS1zZXF1ZW5jZQogICA7OyBhbHdheXMgaW5oZXJpdHMg dGhlIGlucHV0IG1ldGhvZCwgaW4gcHJhY3RpY2UgcmVhZC1rZXkgZG9lcyBub3QKQEAgLTI1MDgs NyArMjUyOCwxMSBAQCByZWFkLWtleQogCQkgICAobG9va3VwLWtleSBnbG9iYWwtbWFwIFt0b29s LWJhcl0pKSkKICAgICAgICAgICAgICBtYXApKQogICAgICAgICAgIChsZXQqICgoa2V5cwotICAg ICAgICAgICAgICAgICAgKGNhdGNoICdyZWFkLWtleSAocmVhZC1rZXktc2VxdWVuY2UtdmVjdG9y IHByb21wdCBuaWwgdCkpKQorICAgICAgICAgICAgICAgICAgKGNhdGNoICdyZWFkLWtleQorICAg ICAgICAgICAgICAgICAgICAocmVhZC1rZXktc2VxdWVuY2UtdmVjdG9yIHByb21wdCBuaWwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaWYgYWxsLWZhbGxi YWNrcy1kaXNhYmxlZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAnYWxsLWZhbGxiYWNrcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJ2Rvd25jYXNlLWxhc3QpKSkpCiAgICAgICAgICAgICAgICAgIChrZXkg KGFyZWYga2V5cyAwKSkpCiAgICAgICAgICAgICAoaWYgKGFuZCAoPiAobGVuZ3RoIGtleXMpIDEp CiAgICAgICAgICAgICAgICAgICAgICAobWVtcSBrZXkgJyhtb2RlLWxpbmUgaGVhZGVyLWxpbmUK QEAgLTI1MjIsNiArMjU0NiwyMiBAQCByZWFkLWtleQogICAgICAgKG1lc3NhZ2UgbmlsKQogICAg ICAgKHVzZS1nbG9iYWwtbWFwIG9sZC1nbG9iYWwtbWFwKSkpKQogCis7OyBGSVhNRTogT25jZSB0 aGVyZSdzIGEgc2FmZSB3YXkgdG8gdHJhbnNpdGlvbiBhd2F5IGZyb20gcmVhZC1ldmVudCwKKzs7 IHRoaXMgZnVuY3Rpb24gc2hvdWxkIGJlIGRlbGV0ZWQuCisoZGVmdW4gcmVhZC1wb3RlbnRpYWwt bW91c2UtZXZlbnQgKCkKKyAgICAiUmVhZCBhbiBldmVudCB0aGF0IG1pZ2h0IGJlIGEgbW91c2Ug ZXZlbnQuCisKK1RoaXMgZnVuY3Rpb24gZXhpc3RzIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5 IGluIGNvZGUgcGFja2FnZWQKK3dpdGggRW1hY3MuICBEbyBub3QgY2FsbCBpdCBkaXJlY3RseSBp biB5b3VyIG93biBwYWNrYWdlcy4iCisgICAgOzsgYHh0ZXJtLW1vdXNlLW1vZGUnIGV2ZW50cyBt dXN0IGdvIHRocm91Z2ggYHJlYWQta2V5JyBhcyB0aGV5CisgICAgOzsgYXJlIGRlY29kZWQgdmlh IGBpbnB1dC1kZWNvZGUtbWFwJy4KKyAgICAoaWYgeHRlcm0tbW91c2UtbW9kZQorICAgICAgICAo cmVhZC1rZXkgbmlsCisgICAgICAgICAgICAgICAgICA7OyBOb3JtYWxseSBgcmVhZC1rZXknIGRp c2NhcmRzIGFsbCBtb3VzZSBidXR0b24KKyAgICAgICAgICAgICAgICAgIDs7IGRvd24gZXZlbnRz LiAgSG93ZXZlciwgd2Ugd2FudCB0aGVtIGhlcmUuCisgICAgICAgICAgICAgICAgICB0KQorICAg ICAgKHJlYWQtZXZlbnQpKSkKKwogKGRlZnZhciByZWFkLXBhc3N3ZC1tYXAKICAgOzsgQkVXQVJF OiBgZGVmY29uc3QnIHdvdWxkIHB1cmVjb3B5IGl0LCBicmVha2luZyB0aGUgc2hhcmluZyB3aXRo CiAgIDs7IG1pbmlidWZmZXItbG9jYWwtbWFwIGFsb25nIHRoZSB3YXkhCmRpZmYgLS1naXQgYS9s aXNwL3RleHRtb2Rlcy9hcnRpc3QuZWwgYi9saXNwL3RleHRtb2Rlcy9hcnRpc3QuZWwKaW5kZXgg Y2MyZWFmMWU0ZS4uMWY2NjNhZWE3NSAxMDA2NDQKLS0tIGEvbGlzcC90ZXh0bW9kZXMvYXJ0aXN0 LmVsCisrKyBiL2xpc3AvdGV4dG1vZGVzL2FydGlzdC5lbApAQCAtNTAwNCw3ICs1MDA0LDcgQEAg YXJ0aXN0LW1vdXNlLWRyYXctY29udGlub3VzbHkKICAgICAgICAgICAgICAgICAgIChzZXRxIHRp bWVyIChydW4tYXQtdGltZSBpbnRlcnZhbCBpbnRlcnZhbCBkcmF3LWZuIHgxIHkxKSkpKQogCiAg ICAgICAgICAgICA7OyBSZWFkIG5leHQgZXZlbnQKLSAgICAgICAgICAgIChzZXRxIGV2IChyZWFk LWV2ZW50KSkpKQorICAgICAgICAgICAgKHNldHEgZXYgKHJlYWQtcG90ZW50aWFsLW1vdXNlLWV2 ZW50KSkpKQogICAgICAgOzsgQ2xlYW51cDogZ2V0IHJpZCBvZiBhbnkgYWN0aXZlIHRpbWVyLgog ICAgICAgKGlmIHRpbWVyCiAgICAgICAgICAgKGNhbmNlbC10aW1lciB0aW1lcikpKQpAQCAtNTIx Miw3ICs1MjEyLDcgQEAgYXJ0aXN0LW1vdXNlLWRyYXctcG9seQogCiAJOzsgUmVhZCBuZXh0IGV2 ZW50IChvbmx5IGlmIHdlIHNob3VsZCBub3Qgc3RvcCkKIAkoaWYgKG5vdCBkb25lKQotCSAgICAo c2V0cSBldiAocmVhZC1ldmVudCkpKSkpCisJICAgIChzZXRxIGV2IChyZWFkLXBvdGVudGlhbC1t b3VzZS1ldmVudCkpKSkpCiAKICAgICA7OyBSZXZlcnNlIHBvaW50LWxpc3QgKGxhc3QgcG9pbnRz IGFyZSBjb25kJ2VkIGZpcnN0KQogICAgIChzZXRxIHBvaW50LWxpc3QgKHJldmVyc2UgcG9pbnQt bGlzdCkpCkBAIC01MzM5LDcgKzUzMzksNyBAQCBhcnRpc3QtbW91c2UtZHJhdy0ycG9pbnRzCiAK IAogCTs7IFJlYWQgbmV4dCBldmVudAotCShzZXRxIGV2IChyZWFkLWV2ZW50KSkpKQorCShzZXRx IGV2IChyZWFkLXBvdGVudGlhbC1tb3VzZS1ldmVudCkpKSkKIAogICAgIDs7IElmIHdlIGFyZSBu b3QgcnViYmVyLWJhbmRpbmcgKHRoYXQgaXMsIHdlIHdlcmUgbW92aW5nIGFyb3VuZCB0aGUgYDIn KQogICAgIDs7IGRyYXcgdGhlIHNoYXBlCmRpZmYgLS1naXQgYS9saXNwL3ZjL2VkaWZmLXdpbmQu ZWwgYi9saXNwL3ZjL2VkaWZmLXdpbmQuZWwKaW5kZXggM2Q5MGNjYjFjYi4uZWNjMjUxMzdjMiAx MDA2NDQKLS0tIGEvbGlzcC92Yy9lZGlmZi13aW5kLmVsCisrKyBiL2xpc3AvdmMvZWRpZmYtd2lu ZC5lbApAQCAtMjYyLDExICsyNjIsMTIgQEAgZWRpZmYtZ2V0LXdpbmRvdy1ieS1jbGlja2luZwog ICAobGV0IChldmVudCkKICAgICAobWVzc2FnZQogICAgICAiU2VsZWN0IHdpbmRvd3MgYnkgY2xp Y2tpbmcuICBQbGVhc2UgY2xpY2sgb24gV2luZG93ICVkICIgd2luZC1udW1iZXIpCi0gICAgKHdo aWxlIChub3QgKGVkaWZmLW1vdXNlLWV2ZW50LXAgKHNldHEgZXZlbnQgKHJlYWQtZXZlbnQpKSkp CisgICAgKHdoaWxlIChub3QgKGVkaWZmLW1vdXNlLWV2ZW50LXAgKHNldHEgZXZlbnQKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVhZC1wb3RlbnRpYWwtbW91 c2UtZXZlbnQpKSkpCiAgICAgICAoaWYgKHNpdC1mb3IgMSkgOyBpZiBzZXF1ZW5jZSBvZiBldmVu dHMsIHdhaXQgdGlsbCB0aGUgZmluYWwgd29yZAogCSAgKGJlZXAgMSkpCiAgICAgICAobWVzc2Fn ZSAiUGxlYXNlIGNsaWNrIG9uIFdpbmRvdyAlZCAiIHdpbmQtbnVtYmVyKSkKLSAgICAocmVhZC1l dmVudCkgOyBkaXNjYXJkIGV2ZW50CisgICAgKHJlYWQtcG90ZW50aWFsLW1vdXNlLWV2ZW50KSA7 IGRpc2NhcmQgZXZlbnQKICAgICAocG9zbi13aW5kb3cgKGV2ZW50LXN0YXJ0IGV2ZW50KSkpKQog CiAKZGlmZiAtLWdpdCBhL2xpc3AvdmMvZWRpZmYuZWwgYi9saXNwL3ZjL2VkaWZmLmVsCmluZGV4 IGFlMmY4YWQ2YzEuLmJmMzVjZDJiZDEgMTAwNjQ0Ci0tLSBhL2xpc3AvdmMvZWRpZmYuZWwKKysr IGIvbGlzcC92Yy9lZGlmZi5lbApAQCAtOTM5LDcgKzkzOSw3IEBAIGVkaWZmLXdpbmRvd3MtbGlu ZXdpc2UKIDs7IElmIFdJTkQtQSBpcyBuaWwsIHVzZSBzZWxlY3RlZCB3aW5kb3cuCiA7OyBJZiBX SU5ELUIgaXMgbmlsLCB1c2Ugd2luZG93IG5leHQgdG8gV0lORC1BLgogKGRlZnVuIGVkaWZmLXdp bmRvd3MgKGR1bWItbW9kZSB3aW5kLUEgd2luZC1CIHN0YXJ0dXAtaG9va3Mgam9iLW5hbWUgd29y ZC1tb2RlKQotICAoaWYgKG9yIGR1bWItbW9kZSAobm90IChlZGlmZi13aW5kb3ctZGlzcGxheS1w KSkpCisgIChpZiAob3IgZHVtYi1tb2RlIChub3QgKGRpc3BsYXktbW91c2UtcCkpKQogICAgICAg KHNldHEgd2luZC1BIChlZGlmZi1nZXQtbmV4dC13aW5kb3cgd2luZC1BIG5pbCkKIAkgICAgd2lu ZC1CIChlZGlmZi1nZXQtbmV4dC13aW5kb3cgd2luZC1CIHdpbmQtQSkpCiAgICAgKHNldHEgd2lu ZC1BIChlZGlmZi1nZXQtd2luZG93LWJ5LWNsaWNraW5nIHdpbmQtQSBuaWwgMSkKZGlmZiAtLWdp dCBhL2xpc3Avd2lkLWVkaXQuZWwgYi9saXNwL3dpZC1lZGl0LmVsCmluZGV4IDgyNTAzMTZiY2Mu LjZiZTY0MjE4YjMgMTAwNjQ0Ci0tLSBhL2xpc3Avd2lkLWVkaXQuZWwKKysrIGIvbGlzcC93aWQt ZWRpdC5lbApAQCAtMTEwNCw3ICsxMTA0LDcgQEAgd2lkZ2V0LWJ1dHRvbi0tY2hlY2stYW5kLWNh bGwtYnV0dG9uCiAJCSAgKHVubGVzcyAod2lkZ2V0LWFwcGx5IGJ1dHRvbiA6bW91c2UtZG93bi1h Y3Rpb24gZXZlbnQpCiAJCSAgICAobGV0ICgodHJhY2stbW91c2UgdCkpCiAJCSAgICAgICh3aGls ZSAobm90ICh3aWRnZXQtYnV0dG9uLXJlbGVhc2UtZXZlbnQtcCBldmVudCkpCi0JCSAgICAgICAg KHNldHEgZXZlbnQgKHJlYWQtZXZlbnQpKQorICAgICAgICAgICAgICAgICAgICAgICAgKHNldHEg ZXZlbnQgKHJlYWQtcG90ZW50aWFsLW1vdXNlLWV2ZW50KSkKIAkJICAgICAgICAod2hlbiAoYW5k IG1vdXNlLTEgKG1vdXNlLW1vdmVtZW50LXAgZXZlbnQpKQogCQkJICAocHVzaCBldmVudCB1bnJl YWQtY29tbWFuZC1ldmVudHMpCiAJCQkgIChzZXRxIGV2ZW50IG9ldmVudCkKQEAgLTExNjksNyAr MTE2OSw3IEBAIHdpZGdldC1idXR0b24tY2xpY2sKIAkgICAgKHdoZW4gdXAKIAkgICAgICA7OyBE b24ndCBleGVjdXRlIHVwIGV2ZW50cyB0d2ljZS4KIAkgICAgICAod2hpbGUgKG5vdCAod2lkZ2V0 LWJ1dHRvbi1yZWxlYXNlLWV2ZW50LXAgZXZlbnQpKQotCQkoc2V0cSBldmVudCAocmVhZC1ldmVu dCkpKSkKKwkJKHNldHEgZXZlbnQgKHJlYWQtcG90ZW50aWFsLW1vdXNlLWV2ZW50KSkpKQogCSAg ICAod2hlbiBjb21tYW5kCiAJICAgICAgKGNhbGwtaW50ZXJhY3RpdmVseSBjb21tYW5kKSkpKSkK ICAgICAobWVzc2FnZSAiWW91IGNsaWNrZWQgc29tZXdoZXJlIHdlaXJkLiIpKSkKQEAgLTM0OTAs MTEgKzM0OTAsMTEgQEAgJ2tleS1zZXF1ZW5jZQogKGRlZnVuIHdpZGdldC1rZXktc2VxdWVuY2Ut cmVhZC1ldmVudCAoZXYpCiAgIChpbnRlcmFjdGl2ZSAobGlzdAogCQkobGV0ICgoaW5oaWJpdC1x dWl0IHQpIHF1aXQtZmxhZykKLQkJICAocmVhZC1ldmVudCAiSW5zZXJ0IEtFWSwgRVZFTlQsIG9y IENPREU6ICIpKSkpCisJCSAgKHJlYWQta2V5ICJJbnNlcnQgS0VZLCBFVkVOVCwgb3IgQ09ERTog IiB0KSkpKQogICAobGV0ICgoZXYyIChhbmQgKG1lbXEgJ2Rvd24gKGV2ZW50LW1vZGlmaWVycyBl dikpCi0JCSAgKHJlYWQtZXZlbnQpKSkKLQkodHIgKGFuZCAoa2V5bWFwcCBmdW5jdGlvbi1rZXkt bWFwKQotCQkgKGxvb2t1cC1rZXkgZnVuY3Rpb24ta2V5LW1hcCAodmVjdG9yIGV2KSkpKSkKKwkJ ICAocmVhZC1rZXkgbmlsIHQpKSkKKwkodHIgKGFuZCAoa2V5bWFwcCBsb2NhbC1mdW5jdGlvbi1r ZXktbWFwKQorCQkgKGxvb2t1cC1rZXkgbG9jYWwtZnVuY3Rpb24ta2V5LW1hcCAodmVjdG9yIGV2 KSkpKSkKICAgICAod2hlbiAoYW5kIChpbnRlZ2VycCBldikKIAkgICAgICAgKG9yIChhbmQgKDw9 ID8wIGV2KSAoPCBldiAoKyA/MCAobWluIDEwIHJlYWQtcXVvdGVkLWNoYXItcmFkaXgpKSkpCiAJ CSAgIChhbmQgKDw9ID9hIChkb3duY2FzZSBldikpCmRpZmYgLS1naXQgYS9zcmMva2V5Ym9hcmQu YyBiL3NyYy9rZXlib2FyZC5jCmluZGV4IDU0MjMyYWFlYTEuLjYwYzhmYjI2MTkgMTAwNjQ0Ci0t LSBhL3NyYy9rZXlib2FyZC5jCisrKyBiL3NyYy9rZXlib2FyZC5jCkBAIC0xMjMwLDggKzEyMzAs OCBAQCBzb21lX21vdXNlX21vdmVkICh2b2lkKQogICAgc2FucyBlcnJvci1oYW5kbGluZyBlbmNh cHN1bGF0aW9uLiAgKi8KIAogZW51bSB7IFJFQURfS0VZX0VMVFMgPSAzMCB9Owotc3RhdGljIGlu dCByZWFkX2tleV9zZXF1ZW5jZSAoTGlzcF9PYmplY3QgKiwgTGlzcF9PYmplY3QsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBib29sLCBib29sLCBib29sLCBib29sKTsKK3N0YXRpYyBp bnQgcmVhZF9rZXlfc2VxdWVuY2UgKExpc3BfT2JqZWN0ICosIExpc3BfT2JqZWN0LCBMaXNwX09i amVjdCwgYm9vbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wsIGJvb2wpOwog c3RhdGljIHZvaWQgYWRqdXN0X3BvaW50X2Zvcl9wcm9wZXJ0eSAocHRyZGlmZl90LCBib29sKTsK IAogTGlzcF9PYmplY3QKQEAgLTEzNTAsNyArMTM1MCw3IEBAIGNvbW1hbmRfbG9vcF8xICh2b2lk KQogICAgICAgLyogUmVhZCBuZXh0IGtleSBzZXF1ZW5jZTsgaSBnZXRzIGl0cyBsZW5ndGguICAq LwogICAgICAgcmF3X2tleWJ1Zl9jb3VudCA9IDA7CiAgICAgICBMaXNwX09iamVjdCBrZXlidWZb UkVBRF9LRVlfRUxUU107Ci0gICAgICBpbnQgaSA9IHJlYWRfa2V5X3NlcXVlbmNlIChrZXlidWYs IFFuaWwsIGZhbHNlLCB0cnVlLCB0cnVlLCBmYWxzZSk7CisgICAgICBpbnQgaSA9IHJlYWRfa2V5 X3NlcXVlbmNlIChrZXlidWYsIFFuaWwsIFFuaWwsIHRydWUsIHRydWUsIGZhbHNlKTsKIAogICAg ICAgLyogQSBmaWx0ZXIgbWF5IGhhdmUgcnVuIHdoaWxlIHdlIHdlcmUgcmVhZGluZyB0aGUgaW5w dXQuICAqLwogICAgICAgaWYgKCEgRlJBTUVfTElWRV9QIChYRlJBTUUgKHNlbGVjdGVkX2ZyYW1l KSkpCkBAIC0xNTk3LDcgKzE1OTcsNyBAQCByZWFkX21lbnVfY29tbWFuZCAodm9pZCkKICAgc3Bl Y2JpbmQgKFFlY2hvX2tleXN0cm9rZXMsIG1ha2VfZml4bnVtICgwKSk7CiAKICAgTGlzcF9PYmpl Y3Qga2V5YnVmW1JFQURfS0VZX0VMVFNdOwotICBpbnQgaSA9IHJlYWRfa2V5X3NlcXVlbmNlIChr ZXlidWYsIFFuaWwsIGZhbHNlLCB0cnVlLCB0cnVlLCB0cnVlKTsKKyAgaW50IGkgPSByZWFkX2tl eV9zZXF1ZW5jZSAoa2V5YnVmLCBRbmlsLCBRbmlsLCB0cnVlLCB0cnVlLCB0cnVlKTsKIAogICB1 bmJpbmRfdG8gKGNvdW50LCBRbmlsKTsKIApAQCAtOTIwMywxNSArOTIwMywyOCBAQCB0ZXN0X3Vu ZGVmaW5lZCAoTGlzcF9PYmplY3QgYmluZGluZykKICAgIFRoZXNlIGluY2x1ZGUgYW55IG1pbm9y IG1vZGUga2V5bWFwcyBhY3RpdmUgaW4gdGhlIGN1cnJlbnQgYnVmZmVyLAogICAgdGhlIGN1cnJl bnQgYnVmZmVyJ3MgbG9jYWwgbWFwLCBhbmQgdGhlIGdsb2JhbCBtYXAuCiAKLSAgIElmIGEga2V5 IHNlcXVlbmNlIGhhcyBubyBvdGhlciBiaW5kaW5ncywgd2UgY2hlY2sgVmZ1bmN0aW9uX2tleV9t YXAKLSAgIHRvIHNlZSBpZiBzb21lIHRyYWlsaW5nIHN1YnNlcXVlbmNlIG1pZ2h0IGJlIHRoZSBi ZWdpbm5pbmcgb2YgYQotICAgZnVuY3Rpb24ga2V5J3Mgc2VxdWVuY2UuICBJZiBzbywgd2UgdHJ5 IHRvIHJlYWQgdGhlIHdob2xlIGZ1bmN0aW9uCi0gICBrZXksIGFuZCBzdWJzdGl0dXRlIGl0cyBz eW1ib2xpYyBuYW1lIGludG8gdGhlIGtleSBzZXF1ZW5jZS4KKyAgIFRoZXJlIGFyZSBhIGhhbmRm dWwgb2YgZmFsbGJhY2tzIHRoYXQgYXBwbHkgb25seSBpZiBhIGtleSBzZXF1ZW5jZQorICAgaGFz IG5vIG90aGVyIGJpbmRpbmdzLiAgVGhlc2UgYXBwbHkgY29uZGl0aW9uYWxseSBiYXNlZCBvbiB0 aGUKKyAgIHZhbHVlIG9mIEZBTExCQUNLU19ESVNBQkxFRDoKIAotICAgV2UgaWdub3JlIHVuYm91 bmQgYGRvd24tJyBtb3VzZSBjbGlja3MuICBXZSB0dXJuIHVuYm91bmQgYGRyYWctJyBhbmQKLSAg IGBkb3VibGUtJyBldmVudHMgaW50byBzaW1pbGFyIGNsaWNrIGV2ZW50cywgaWYgdGhhdCB3b3Vs ZCBtYWtlIHRoZW0KLSAgIGJvdW5kLiAgV2UgdHJ5IHRvIHR1cm4gYHRyaXBsZS0nIGV2ZW50cyBm aXJzdCBpbnRvIGBkb3VibGUtJyBldmVudHMsCi0gICB0aGVuIGludG8gY2xpY2tzLgorICAgKiBJ ZiBhIGtleSBzZXF1ZW5jZSBpcyB1bmJvdW5kLCB3ZSBjaGVjayBWZnVuY3Rpb25fa2V5X21hcCB0 byBzZWUKKyAgIGlmIHNvbWUgdHJhaWxpbmcgc3Vic2VxdWVuY2UgbWlnaHQgYmUgdGhlIGJlZ2lu bmluZyBvZiBhIGZ1bmN0aW9uCisgICBrZXkncyBzZXF1ZW5jZS4gIElmIHNvLCB3ZSB0cnkgdG8g cmVhZCB0aGUgd2hvbGUgZnVuY3Rpb24ga2V5LCBhbmQKKyAgIHN1YnN0aXR1dGUgaXRzIHN5bWJv bGljIG5hbWUgaW50byB0aGUga2V5IHNlcXVlbmNlLgorCisgICAqIElmIGEgYGRvd24tJyBtb3Vz ZSBjbGljayBldmVudCBpcyB1bmJvdW5kLCBpdCBpcyBkaXNjYXJkZWQuCisKKyAgICogSWYgYSBg ZHJhZy0nIG9yIGBkb3VibGUtJyBldmVudCBpcyB1bmJvdW5kLCBpdCBpcyB0dXJuZWQgaW50bwor ICAgc2ltaWxhciBjbGljayBldmVudHMgaWYgdGhhdCB3b3VsZCBtYWtlIHRoZW0gYm91bmQuICBX ZSB0cnkgdG8gdHVybgorICAgYHRyaXBsZS0nIGV2ZW50cyBmaXJzdCBpbnRvIGBkb3VibGUtJyBl dmVudHMsIHRoZW4gaW50byBjbGlja3MuCisKKyAgICogSWYgYSBjYXBpdGFsIGxldHRlciBpcyB1 bmJvdW5kLCBpdCBpcyB0dXJuZWQgaW50byBhIGxvd2VyIGNhc2UKKyAgIGxldHRlciBpZiB0aGF0 IHdvdWxkIG1ha2UgaXQgYm91bmQuCisKKyAgIElmIEZBTExCQUNLU19ESVNBQkxFRCBpcyBRbmls LCBhbGwgb2YgdGhlIGFib3ZlIGZhbGxiYWNrcyBhcmUKKyAgIGFwcGxpZWQuICBJZiBpdCBpcyBR YWxsX2ZhbGxiYWNrcywgdGhlbiBub25lIG9mIHRoZSBmYWxsYmFja3MgYXJlCisgICBhcHBsaWVk LiAgSWYgaXQgaXMgUWRvd25jYXNlX2xhc3QsIHRoZSBjYXBpdGFsIGxldHRlciBmYWxsYmFjayBp cworICAgbm90IGFwcGxpZWQsIGJ1dCBhbGwgb3RoZXIgb25lcyBhcmUgYXBwbGllZC4KIAogICAg SWYgd2UgZ2V0IGEgbW91c2UgY2xpY2sgaW4gYSBtb2RlIGxpbmUsIHZlcnRpY2FsIGRpdmlkZXIs IG9yIG90aGVyCiAgICBub24tdGV4dCBhcmVhLCB3ZSB0cmVhdCB0aGUgY2xpY2sgYXMgaWYgaXQg d2VyZSBwcmVmaXhlZCBieSB0aGUKQEAgLTkyMzAsOCArOTI0Myw5IEBAIHRlc3RfdW5kZWZpbmVk IChMaXNwX09iamVjdCBiaW5kaW5nKQogCiBzdGF0aWMgaW50CiByZWFkX2tleV9zZXF1ZW5jZSAo TGlzcF9PYmplY3QgKmtleWJ1ZiwgTGlzcF9PYmplY3QgcHJvbXB0LAotCQkgICBib29sIGRvbnRf ZG93bmNhc2VfbGFzdCwgYm9vbCBjYW5fcmV0dXJuX3N3aXRjaF9mcmFtZSwKLQkJICAgYm9vbCBm aXhfY3VycmVudF9idWZmZXIsIGJvb2wgcHJldmVudF9yZWRpc3BsYXkpCisJCSAgIExpc3BfT2Jq ZWN0IGZhbGxiYWNrc19kaXNhYmxlZCwKKyAgICAgICAgICAgICAgICAgICBib29sIGNhbl9yZXR1 cm5fc3dpdGNoX2ZyYW1lLCBib29sIGZpeF9jdXJyZW50X2J1ZmZlciwKKyAgICAgICAgICAgICAg ICAgICBib29sIHByZXZlbnRfcmVkaXNwbGF5KQogewogICBwdHJkaWZmX3QgY291bnQgPSBTUEVD UERMX0lOREVYICgpOwogCkBAIC05Nzc0LDcgKzk3ODgsNyBAQCByZWFkX2tleV9zZXF1ZW5jZSAo TGlzcF9PYmplY3QgKmtleWJ1ZiwgTGlzcF9PYmplY3QgcHJvbXB0LAogICAgICAgbmV3X2JpbmRp bmcgPSBmb2xsb3dfa2V5IChjdXJyZW50X2JpbmRpbmcsIGtleSk7CiAKICAgICAgIC8qIElmIEtF WSB3YXNuJ3QgYm91bmQsIHdlJ2xsIHRyeSBzb21lIGZhbGxiYWNrcy4gICovCi0gICAgICBpZiAo IU5JTFAgKG5ld19iaW5kaW5nKSkKKyAgICAgIGlmICghTklMUCAobmV3X2JpbmRpbmcpIHx8IEVR IChmYWxsYmFja3NfZGlzYWJsZWQsIFFhbGxfZmFsbGJhY2tzKSkKIAkvKiBUaGlzIGlzIG5lZWRl ZCBmb3IgdGhlIGZvbGxvd2luZyBzY2VuYXJpbzoKIAkgICBldmVudCAwOiBhIGRvd24tZXZlbnQg dGhhdCBnZXRzIGRyb3BwZWQgYnkgY2FsbGluZyByZXBsYXlfa2V5LgogCSAgIGV2ZW50IDE6IHNv bWUgbm9ybWFsIHByZWZpeCBsaWtlIEMtaC4KQEAgLTk5ODYsNyArMTAwMDAsOCBAQCByZWFkX2tl eV9zZXF1ZW5jZSAoTGlzcF9PYmplY3QgKmtleWJ1ZiwgTGlzcF9PYmplY3QgcHJvbXB0LAogCQkJ CSAgICAgZmlyc3RfYmluZGluZyA+PSBubWFwcykgd2UgZG9uJ3Qgd2FudAogCQkJCSAgICAgdG8g YXBwbHkgdGhpcyBmdW5jdGlvbi1rZXktbWFwcGluZy4gICovCiAJCQkJICAoZmtleS5lbmQgKyAx ID09IHQKLQkJCQkgICAmJiB0ZXN0X3VuZGVmaW5lZCAoY3VycmVudF9iaW5kaW5nKSksCisJCQkJ ICAgJiYgdGVzdF91bmRlZmluZWQgKGN1cnJlbnRfYmluZGluZykKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgJiYgIUVRIChmYWxsYmFja3NfZGlzYWJsZWQsIFFhbGxfZmFsbGJh Y2tzKSksCiAJCQkJICAmZGlmZiwgcHJvbXB0KTsKIAkgICAgaWYgKGRvbmUpCiAJICAgICAgewpA QCAtMTAwMDcsNyArMTAwMjIsOCBAQCByZWFkX2tleV9zZXF1ZW5jZSAoTGlzcF9PYmplY3QgKmtl eWJ1ZiwgTGlzcF9PYmplY3QgcHJvbXB0LAogCSAgaW50IGRpZmY7CiAKIAkgIGRvbmUgPSBrZXly ZW1hcF9zdGVwIChrZXlidWYsICZrZXl0cmFuLCBtYXggKHQsIG1vY2tfaW5wdXQpLAotCQkJCXRy dWUsICZkaWZmLCBwcm9tcHQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhRVEg KGZhbGxiYWNrc19kaXNhYmxlZCwgUWFsbF9mYWxsYmFja3MpLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAmZGlmZiwgcHJvbXB0KTsKIAkgIGlmIChkb25lKQogCSAgICB7CiAJICAg ICAgbW9ja19pbnB1dCA9IGRpZmYgKyBtYXggKHQsIG1vY2tfaW5wdXQpOwpAQCAtMTAwMjcsNyAr MTAwNDMsOCBAQCByZWFkX2tleV9zZXF1ZW5jZSAoTGlzcF9PYmplY3QgKmtleWJ1ZiwgTGlzcF9P YmplY3QgcHJvbXB0LAogCSB1c2UgdGhlIGNvcnJlc3BvbmRpbmcgbG93ZXItY2FzZSBsZXR0ZXIg aW5zdGVhZC4gICovCiAgICAgICBpZiAoTklMUCAoY3VycmVudF9iaW5kaW5nKQogCSAgJiYgLyog aW5kZWMuc3RhcnQgPj0gdCAmJiBma2V5LnN0YXJ0ID49IHQgJiYgKi8ga2V5dHJhbi5zdGFydCA+ PSB0Ci0JICAmJiBGSVhOVU1QIChrZXkpKQorCSAgJiYgRklYTlVNUCAoa2V5KQorICAgICAgICAg ICYmICFFUSAoZmFsbGJhY2tzX2Rpc2FibGVkLCBRYWxsX2ZhbGxiYWNrcykpCiAJewogCSAgTGlz cF9PYmplY3QgbmV3X2tleTsKIAkgIEVNQUNTX0lOVCBrID0gWEZJWE5VTSAoa2V5KTsKQEAgLTEw MDczLDcgKzEwMDkwLDggQEAgcmVhZF9rZXlfc2VxdWVuY2UgKExpc3BfT2JqZWN0ICprZXlidWYs IExpc3BfT2JqZWN0IHByb21wdCwKIAkgYW5kIGlzIGEgc2hpZnRlZCBmdW5jdGlvbiBrZXksCiAJ IHVzZSB0aGUgY29ycmVzcG9uZGluZyB1bnNoaWZ0ZWQgZnVuY3Rpb24ga2V5IGluc3RlYWQuICAq LwogICAgICAgaWYgKE5JTFAgKGN1cnJlbnRfYmluZGluZykKLQkgICYmIC8qIGluZGVjLnN0YXJ0 ID49IHQgJiYgZmtleS5zdGFydCA+PSB0ICYmICovIGtleXRyYW4uc3RhcnQgPj0gdCkKKwkgICYm IC8qIGluZGVjLnN0YXJ0ID49IHQgJiYgZmtleS5zdGFydCA+PSB0ICYmICovIGtleXRyYW4uc3Rh cnQgPj0gdAorICAgICAgICAgICYmICFFUSAoZmFsbGJhY2tzX2Rpc2FibGVkLCBRYWxsX2ZhbGxi YWNrcykpCiAJewogCSAgTGlzcF9PYmplY3QgYnJlYWtkb3duID0gcGFyc2VfbW9kaWZpZXJzIChr ZXkpOwogCSAgaW50IG1vZGlmaWVycwpAQCAtMTAxMjcsNyArMTAxNDUsOSBAQCByZWFkX2tleV9z ZXF1ZW5jZSAoTGlzcF9PYmplY3QgKmtleWJ1ZiwgTGlzcF9PYmplY3QgcHJvbXB0LAogCiAgIC8q IERvbid0IGRvd25jYXNlIHRoZSBsYXN0IGNoYXJhY3RlciBpZiB0aGUgY2FsbGVyIHNheXMgZG9u J3QuCiAgICAgIERvbid0IGRvd25jYXNlIGl0IGlmIHRoZSByZXN1bHQgaXMgdW5kZWZpbmVkLCBl aXRoZXIuICAqLwotICBpZiAoKGRvbnRfZG93bmNhc2VfbGFzdCB8fCBOSUxQIChjdXJyZW50X2Jp bmRpbmcpKQorICBpZiAoKEVRIChmYWxsYmFja3NfZGlzYWJsZWQsIFFkb3duY2FzZV9sYXN0KQor ICAgICAgIHx8IEVRIChmYWxsYmFja3NfZGlzYWJsZWQsIFFhbGxfZmFsbGJhY2tzKQorICAgICAg IHx8IE5JTFAgKGN1cnJlbnRfYmluZGluZykpCiAgICAgICAmJiB0ID4gMAogICAgICAgJiYgdCAt IDEgPT0gb3JpZ2luYWxfdXBwZXJjYXNlX3Bvc2l0aW9uKQogICAgIHsKQEAgLTEwMTU2LDcgKzEw MTc2LDcgQEAgcmVhZF9rZXlfc2VxdWVuY2UgKExpc3BfT2JqZWN0ICprZXlidWYsIExpc3BfT2Jq ZWN0IHByb21wdCwKIAogc3RhdGljIExpc3BfT2JqZWN0CiByZWFkX2tleV9zZXF1ZW5jZV92cyAo TGlzcF9PYmplY3QgcHJvbXB0LCBMaXNwX09iamVjdCBjb250aW51ZV9lY2hvLAotCQkgICAgICBM aXNwX09iamVjdCBkb250X2Rvd25jYXNlX2xhc3QsCisJCSAgICAgIExpc3BfT2JqZWN0IGZhbGxi YWNrc19kaXNhYmxlZCwKIAkJICAgICAgTGlzcF9PYmplY3QgY2FuX3JldHVybl9zd2l0Y2hfZnJh bWUsCiAJCSAgICAgIExpc3BfT2JqZWN0IGNtZF9sb29wLCBib29sIGFsbG93X3N0cmluZykKIHsK QEAgLTEwMTY2LDYgKzEwMTg2LDI5IEBAIHJlYWRfa2V5X3NlcXVlbmNlX3ZzIChMaXNwX09iamVj dCBwcm9tcHQsIExpc3BfT2JqZWN0IGNvbnRpbnVlX2VjaG8sCiAgICAgQ0hFQ0tfU1RSSU5HIChw cm9tcHQpOwogICBtYXliZV9xdWl0ICgpOwogCisgIGlmICghRVEgKGZhbGxiYWNrc19kaXNhYmxl ZCwgUW5pbCkKKyAgICAgICYmICFFUSAoZmFsbGJhY2tzX2Rpc2FibGVkLCBRYWxsX2ZhbGxiYWNr cykKKyAgICAgICYmICFFUSAoZmFsbGJhY2tzX2Rpc2FibGVkLCBRZG93bmNhc2VfbGFzdCkpCisg ICAgeworICAgICAgLyogUHJpb3IgdG8gRW1hY3MgMjgsIGZhbGxiYWNrcy1kaXNhYmxlZCB3YXMg bmFtZWQKKyAgICAgICAgIGRvbnQtZG93bmNhc2UtbGFzdCBhbmQgY2hvb3NlIGJldHdlZW4gdHdv IGJlaGF2aW9yczoKKworICAgICAgICAgMS4gbm8gZmFsbGJhY2tzIGRpc2FibGVkIChuaWwpCisg ICAgICAgICAyLiBkaXNhYmxlIGRvd25jYXNlIG9mIGxhc3QgZXZlbnQgKGFueSBvdGhlciB2YWx1 ZSkKKworICAgICAgICAgV2FybiBmb3IgYW55IGNvZGUgdGhhdCBoYXMgbm90IHlldCBtYWRlIGFu IGV4cGxpY2l0IGNob2ljZSBpbgorICAgICAgICAgYmVoYXZpb3IuICAqLworICAgICAgZmFsbGJh Y2tzX2Rpc2FibGVkID0gUWRvd25jYXNlX2xhc3Q7CisgICAgICBWZGVsYXllZF93YXJuaW5nc19s aXN0CisgICAgICAgID0gRmNvbnMKKyAgICAgICAgKGxpc3QyIChRZW1hY3MsIGJ1aWxkX3N0cmlu ZworICAgICAgICAgICAgICAgICgiRGVwcmVjYXRlZCB2YWx1ZSBmb3IgZmFsbGJhY2tzLWRpc2Fi bGVkIHBhc3NlZCB0byAiCisgICAgICAgICAgICAgICAgImByZWFkLWtleS1zZXF1ZW5jZScuXG4i CisgICAgICAgICAgICAgICAgIlByaW9yIHRvIEVtYWNzIDI4LCB0aGlzIHBhcmFtZXRlciB3YXMg Y2FsbGVkICIKKyAgICAgICAgICAgICAgICAiZG9udC1kb3duY2FzZS1sYXN0LiIpKSwKKyAgICAg ICAgIFZkZWxheWVkX3dhcm5pbmdzX2xpc3QpOworICAgIH0KKwogICBzcGVjYmluZCAoUWlucHV0 X21ldGhvZF9leGl0X29uX2ZpcnN0X2NoYXIsCiAJICAgIChOSUxQIChjbWRfbG9vcCkgPyBRdCA6 IFFuaWwpKTsKICAgc3BlY2JpbmQgKFFpbnB1dF9tZXRob2RfdXNlX2VjaG9fYXJlYSwKQEAgLTEw MTg0LDcgKzEwMjI3LDcgQEAgcmVhZF9rZXlfc2VxdWVuY2VfdnMgKExpc3BfT2JqZWN0IHByb21w dCwgTGlzcF9PYmplY3QgY29udGludWVfZWNobywKIAogICByYXdfa2V5YnVmX2NvdW50ID0gMDsK ICAgTGlzcF9PYmplY3Qga2V5YnVmW1JFQURfS0VZX0VMVFNdOwotICBpbnQgaSA9IHJlYWRfa2V5 X3NlcXVlbmNlIChrZXlidWYsIHByb21wdCwgISBOSUxQIChkb250X2Rvd25jYXNlX2xhc3QpLAor ICBpbnQgaSA9IHJlYWRfa2V5X3NlcXVlbmNlIChrZXlidWYsIHByb21wdCwgZmFsbGJhY2tzX2Rp c2FibGVkLAogCQkJICAgICAhIE5JTFAgKGNhbl9yZXR1cm5fc3dpdGNoX2ZyYW1lKSwgZmFsc2Us IGZhbHNlKTsKIAogI2lmIDAgIC8qIFRoZSBmb2xsb3dpbmcgaXMgZmluZSBmb3IgY29kZSByZWFk aW5nIGEga2V5IHNlcXVlbmNlIGFuZApAQCAtMTAyMTYsNiArMTAyNTksOCBAQCBERUZVTiAoInJl YWQta2V5LXNlcXVlbmNlIiwgRnJlYWRfa2V5X3NlcXVlbmNlLCBTcmVhZF9rZXlfc2VxdWVuY2Us IDEsIDUsIDAsCiBTZWNvbmQgKG9wdGlvbmFsKSBhcmcgQ09OVElOVUUtRUNITywgaWYgbm9uLW5p bCwgbWVhbnMgdGhpcyBrZXkgZWNob3MKIGFzIGEgY29udGludWF0aW9uIG9mIHRoZSBwcmV2aW91 cyBrZXkuCiAKK1RPRE86IHVwZGF0ZSBkb2NzIGhlcmUuCisKIFRoZSB0aGlyZCAob3B0aW9uYWwp IGFyZyBET05ULURPV05DQVNFLUxBU1QsIGlmIG5vbi1uaWwsIG1lYW5zIGRvIG5vdAogY29udmVy dCB0aGUgbGFzdCBldmVudCB0byBsb3dlciBjYXNlLiAgKE5vcm1hbGx5IGFueSB1cHBlciBjYXNl IGV2ZW50CiBpcyBjb252ZXJ0ZWQgdG8gbG93ZXIgY2FzZSBpZiB0aGUgb3JpZ2luYWwgZXZlbnQg aXMgdW5kZWZpbmVkIGFuZCB0aGUgbG93ZXIKQEAgLTEwMjU0LDE5ICsxMDI5OSwxOSBAQCBTZWNv bmQgKG9wdGlvbmFsKSBhcmcgQ09OVElOVUUtRUNITywgaWYgbm9uLW5pbCwgbWVhbnMgdGhpcyBr ZXkgZWNob3MKIHRoYXQgdGhpcyBrZXkgc2VxdWVuY2UgaXMgYmVpbmcgcmVhZCBieSBzb21ldGhp bmcgdGhhdCB3aWxsCiByZWFkIGNvbW1hbmRzIG9uZSBhZnRlciBhbm90aGVyLiAgSXQgc2hvdWxk IGJlIG5pbCBpZiB0aGUgY2FsbGVyCiB3aWxsIHJlYWQganVzdCBvbmUga2V5IHNlcXVlbmNlLiAg Ki8pCi0gIChMaXNwX09iamVjdCBwcm9tcHQsIExpc3BfT2JqZWN0IGNvbnRpbnVlX2VjaG8sIExp c3BfT2JqZWN0IGRvbnRfZG93bmNhc2VfbGFzdCwgTGlzcF9PYmplY3QgY2FuX3JldHVybl9zd2l0 Y2hfZnJhbWUsIExpc3BfT2JqZWN0IGNtZF9sb29wKQorICAoTGlzcF9PYmplY3QgcHJvbXB0LCBM aXNwX09iamVjdCBjb250aW51ZV9lY2hvLCBMaXNwX09iamVjdCBmYWxsYmFja3NfZGlzYWJsZWQs IExpc3BfT2JqZWN0IGNhbl9yZXR1cm5fc3dpdGNoX2ZyYW1lLCBMaXNwX09iamVjdCBjbWRfbG9v cCkKIHsKLSAgcmV0dXJuIHJlYWRfa2V5X3NlcXVlbmNlX3ZzIChwcm9tcHQsIGNvbnRpbnVlX2Vj aG8sIGRvbnRfZG93bmNhc2VfbGFzdCwKKyAgcmV0dXJuIHJlYWRfa2V5X3NlcXVlbmNlX3ZzIChw cm9tcHQsIGNvbnRpbnVlX2VjaG8sIGZhbGxiYWNrc19kaXNhYmxlZCwKIAkJCSAgICAgICBjYW5f cmV0dXJuX3N3aXRjaF9mcmFtZSwgY21kX2xvb3AsIHRydWUpOwogfQogCiBERUZVTiAoInJlYWQt a2V5LXNlcXVlbmNlLXZlY3RvciIsIEZyZWFkX2tleV9zZXF1ZW5jZV92ZWN0b3IsCiAgICAgICAg U3JlYWRfa2V5X3NlcXVlbmNlX3ZlY3RvciwgMSwgNSwgMCwKICAgICAgICBkb2M6IC8qIExpa2Ug YHJlYWQta2V5LXNlcXVlbmNlJyBidXQgYWx3YXlzIHJldHVybiBhIHZlY3Rvci4gICovKQotICAo TGlzcF9PYmplY3QgcHJvbXB0LCBMaXNwX09iamVjdCBjb250aW51ZV9lY2hvLCBMaXNwX09iamVj dCBkb250X2Rvd25jYXNlX2xhc3QsIExpc3BfT2JqZWN0IGNhbl9yZXR1cm5fc3dpdGNoX2ZyYW1l LCBMaXNwX09iamVjdCBjbWRfbG9vcCkKKyAgKExpc3BfT2JqZWN0IHByb21wdCwgTGlzcF9PYmpl Y3QgY29udGludWVfZWNobywgTGlzcF9PYmplY3QgZmFsbGJhY2tzX2Rpc2FibGVkLCBMaXNwX09i amVjdCBjYW5fcmV0dXJuX3N3aXRjaF9mcmFtZSwgTGlzcF9PYmplY3QgY21kX2xvb3ApCiB7Ci0g IHJldHVybiByZWFkX2tleV9zZXF1ZW5jZV92cyAocHJvbXB0LCBjb250aW51ZV9lY2hvLCBkb250 X2Rvd25jYXNlX2xhc3QsCi0JCQkgICAgICAgY2FuX3JldHVybl9zd2l0Y2hfZnJhbWUsIGNtZF9s b29wLCBmYWxzZSk7CisgIHJldHVybiByZWFkX2tleV9zZXF1ZW5jZV92cyAocHJvbXB0LCBjb250 aW51ZV9lY2hvLCBmYWxsYmFja3NfZGlzYWJsZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY2FuX3JldHVybl9zd2l0Y2hfZnJhbWUsIGNtZF9sb29wLCBmYWxzZSk7CiB9CiAMCiAv KiBSZXR1cm4gdHJ1ZSBpZiBpbnB1dCBldmVudHMgYXJlIHBlbmRpbmcuICAqLwpAQCAtMTE2ODcs NiArMTE3MzIsOCBAQCBzeW1zX29mX2tleWJvYXJkICh2b2lkKQogCiAgIERFRlNZTSAoUWNvbW1h bmRfZXhlY3V0ZSwgImNvbW1hbmQtZXhlY3V0ZSIpOwogICBERUZTWU0gKFFpbnRlcm5hbF9lY2hv X2tleXN0cm9rZXNfcHJlZml4LCAiaW50ZXJuYWwtZWNoby1rZXlzdHJva2VzLXByZWZpeCIpOwor ICBERUZTWU0gKFFhbGxfZmFsbGJhY2tzLCAiYWxsLWZhbGxiYWNrcyIpOworICBERUZTWU0gKFFk b3duY2FzZV9sYXN0LCAiZG93bmNhc2UtbGFzdCIpOwogCiAgIGFjY2VudF9rZXlfc3ltcyA9IFFu aWw7CiAgIHN0YXRpY3BybyAoJmFjY2VudF9rZXlfc3ltcyk7CmRpZmYgLS1naXQgYS9zcmMvbHJl YWQuYyBiL3NyYy9scmVhZC5jCmluZGV4IDNlZjg3NDAzOWEuLjc0ZWQ0NzQ5NDQgMTAwNjQ0Ci0t LSBhL3NyYy9scmVhZC5jCisrKyBiL3NyYy9scmVhZC5jCkBAIC03ODIsNiArNzgyLDEyIEBAIERF RlVOICgicmVhZC1jaGFyIiwgRnJlYWRfY2hhciwgU3JlYWRfY2hhciwgMCwgMywgMCwKIAogREVG VU4gKCJyZWFkLWV2ZW50IiwgRnJlYWRfZXZlbnQsIFNyZWFkX2V2ZW50LCAwLCAzLCAwLAogICAg ICAgIGRvYzogLyogUmVhZCBhbiBldmVudCBvYmplY3QgZnJvbSB0aGUgaW5wdXQgc3RyZWFtLgor CitJZiB5b3Ugd2FudCB0byByZWFkIG1vdXNlIGV2ZW50cyAoZm9yIGV4YW1wbGUsIHRvIGRpc2Nh cmQgYW4gZXhwZWN0ZWQKK2J1dHRvbiB1cCBldmVudCBpbnNpZGUgYSBidXR0b24gZG93biBjb21t YW5kKSwgY2FsbCBgcmVhZC1rZXknIHdoaWNoCitjYW4gcmV0dXJuIGV2ZW50cyB2aWEgYGlucHV0 LWRlY29kZS1tYXAnIHN1Y2ggYXMgYWxsIG1vdXNlIGV2ZW50cworZ2VuZXJhdGVkIGJ5IGB4dGVy bS1tb3VzZS1tb2RlJy4KKwogSWYgdGhlIG9wdGlvbmFsIGFyZ3VtZW50IFBST01QVCBpcyBub24t bmlsLCBkaXNwbGF5IHRoYXQgYXMgYSBwcm9tcHQuCiBJZiBQUk9NUFQgaXMgbmlsIG9yIHRoZSBz dHJpbmcgXCJcIiwgdGhlIGtleSBzZXF1ZW5jZS9ldmVudHMgdGhhdCBsZWQKIHRvIHRoZSBjdXJy ZW50IGNvbW1hbmQgaXMgdXNlZCBhcyB0aGUgcHJvbXB0LgotLSAKMi4yMC4xCgo= --=_124522d8d55d240dcbf5cc1af80e905e--