From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: martin rudalics via "Bug reports for GNU Emacs, the Swiss army knife of text editors" Newsgroups: gmane.emacs.bugs Subject: bug#72487: calculator-electric-mode causes freeze on subsequent use of minibuffer Date: Wed, 28 Aug 2024 10:59:58 +0200 Message-ID: References: <1ee056b3-dde2-4535-92ce-387e1850a99a@protonmail.ch> <59556ad6-d37b-40e5-b89d-9b9226681b5e@gmx.at> <86y14nped0.fsf@gnu.org> <2d3402dd-1f87-47a1-87ba-c86c7ad3336a@gmx.at> <86zfp2mfsr.fsf@gnu.org> Reply-To: martin rudalics Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------Mja3uks8nWVl0PxIy4CZVBQJ" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="308"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla Thunderbird Cc: 72487@debbugs.gnu.org, kim.jet.wav@protonmail.ch To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Wed Aug 28 11:01:36 2024 Return-path: Envelope-to: geb-bug-gnu-emacs@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 1sjEYZ-000AVL-Qa for geb-bug-gnu-emacs@m.gmane-mx.org; Wed, 28 Aug 2024 11:01:36 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sjEYN-0002s3-3t; Wed, 28 Aug 2024 05:01:23 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sjEY9-0002r6-NB for bug-gnu-emacs@gnu.org; Wed, 28 Aug 2024 05:01:15 -0400 Original-Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1sjEY8-0004gA-DE for bug-gnu-emacs@gnu.org; Wed, 28 Aug 2024 05:01:09 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=debbugs.gnu.org; s=debbugs-gnu-org; h=In-Reply-To:From:References:MIME-Version:Date:To:Subject; bh=ir5HRM3x0Iw2a0AQB1ykSPVav0ZgkUVNMHcZlLp/pVo=; b=BfbV8VY8C9AVOI//jCs+Th9vfZsFDdPk+4FpfOfrdU1ZU7qFdrLKJxv8tKR684D//fVOGY1Vb7vuZ5AYmSOBdrbA67IcDujUgVbC991vrA3DxzE24wOno0/znphaw1G85YLjSYhNOygk74nsQ6/SwmtgsN3PbsaJvsw3R/CGwO8jMWBi23TeLERDMM3P+lLfQ2TUx3pKnFRAMKJUaI0QeJwXlQz2asjiun+DbbXk+AQUn20bPjaCP2no0QI3ZyxzfU5rJLpsop1V3bC7qw2MOaSwdVAHjKquRz/ZLpStpPXw+X3VsdZ9+nnTduIxl4IU8D3YX3UFqKVI8kGtXDrxFQ==; Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1sjEZ0-0004m4-3n for bug-gnu-emacs@gnu.org; Wed, 28 Aug 2024 05:02:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: martin rudalics Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 28 Aug 2024 09:02:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 72487 X-GNU-PR-Package: emacs Original-Received: via spool by 72487-submit@debbugs.gnu.org id=B72487.172483566818277 (code B ref 72487); Wed, 28 Aug 2024 09:02:02 +0000 Original-Received: (at 72487) by debbugs.gnu.org; 28 Aug 2024 09:01:08 +0000 Original-Received: from localhost ([127.0.0.1]:48198 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sjEY7-0004ki-GJ for submit@debbugs.gnu.org; Wed, 28 Aug 2024 05:01:08 -0400 Original-Received: from mout.gmx.net ([212.227.17.21]:34507) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sjEY3-0004j6-FY for 72487@debbugs.gnu.org; Wed, 28 Aug 2024 05:01:05 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at; s=s31663417; t=1724835599; x=1725440399; i=rudalics@gmx.at; bh=ir5HRM3x0Iw2a0AQB1ykSPVav0ZgkUVNMHcZlLp/pVo=; h=X-UI-Sender-Class:Content-Type:Message-ID:Date:MIME-Version: Subject:To:Cc:References:From:In-Reply-To:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=OrNnaSfszWqeksGmKfshPjUYN3OikKgd71fXmE5EHIUiL7aVK+0PGxO/dChU2oWc JUx0Qrw+67GDwBtHNja2g3u5MijCpsFtCr/i9NIeOVf1zFtIDcKHoQ9qSePSluGtN DdBLz97sce+S9/msSMR45m/50Yv9aWXuLp7UOUhD+yeNYLvCOL4bYBXpDFm9f/keN JVH4SHz/GxV9F6OEITTE4BZTz59aHpsgxhrFcv9pYBTKrJGPYZhbIgT1NgOVVv9Ek USInMd/AAnLoPZ9rSE5gur7LAYJcF02F+xnkPuvJqaWRTe4P9JY8IzJ0u2++rwQ5z QnbkA9B8VnxK3Y7fQg== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Original-Received: from [192.168.31.113] ([212.95.8.190]) by mail.gmx.net (mrgmx105 [212.227.17.168]) with ESMTPSA (Nemesis) id 1N7QxB-1s2OME1DzB-00zrzo; Wed, 28 Aug 2024 10:59:59 +0200 Content-Language: en-US In-Reply-To: <86zfp2mfsr.fsf@gnu.org> X-Provags-ID: V03:K1:Hlq62j8sR36QpHU4nPt0++C0+foUdY/m3ogXPhA6QwuHe+uAAwK SzquNL/h9T/rkH0oIVl1h5CtWthtJXmB3OIuD2ilEnGX8jRZ8MXup9TiIkqRyfDbcInyOjE 27Hdr4gaWem78RqA7nY6a7oZomaUpUWZ5afX7t2h+CapwkiYxYST5ZznRmtejgMBKcyKf5t Zv8AeGGESdJCy1TLPDfaQ== UI-OutboundReport: notjunk:1;M01:P0:UWwA5U8Usqo=;MZilnyhYNqpa8rMrE4KmeqbwnUn mRhGB9yl28Uzne2TSsVNcIK0qxBt6fl3Y4fk6IyO2h/JZ4GLMiVThDYMWGqkRqTfmDuLQhG2M VPBgUaYXyUvIoI1gBiYkKHEahhJnWNPONrYkfX+VG1I0+h3PJjCyNAih2YB5tnf0G7b9LTNht or14QjY3Lo43j2L9usL4wZP88GxrxDSiS3TeQPn/Q2pJlwpsI7T2JkolRqKJFUO2YBOy4qotB /dNZbCfUvtbeTPaeWrmuM0a+yunMc3n1KhuhO2PjNK/ifV/qH5lOLn3Qd4uZuynYHsqVoxfZ5 0Scc+TJdZbxeOsw5+us3Pxbp9zjm9UwdK2sPyhQ2dSakw0/iMwYrsLWhOFSesfWH2dLT/gTua 8CHQ4C81giaaNKHovvjpFEldan10i8fyBbmalNbeiNA1swwXTwT0xPoUGDz08iZh9OIMHwP3y +K6osjdE/ihbiixe9fbrDOOesxxAEOscj4rT2rPS/UpaarNNS2C7Rt5Q8ElcyqOX0Zjvy7BmI 6KbGchosbRY574MgNOPzC5RKr/34ifG1eomC8GlFvtU4i5hfQKQH0OzOtEXYp9Sx+qCV9amgf cuWY/mYsLhzdU5xJ+BGSWuQvWIJqI0D461XylIQ23oWRSvjeC67l1JgrMqs9Z1UToxGBTZJ3o tYUuoG3WcrqbRQx0hyqUU5ggXsS1b3s7t+6S/K2ruNo+hhNpA7iwLsDZCRFb98AA5JWVOta3V d8i1KdLT0xmB/fC+0YBWgr2jIHBzJcsq2FcltMoKLteBElY8Pk9Y2BMLHCwDMJFT+aY8JRJH X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:290852 Archived-At: This is a multi-part message in MIME format. --------------Mja3uks8nWVl0PxIy4CZVBQJ Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Attached find a patch that should guarantee that only minibuffers are recorded in a minibuffer window's list of previous buffers. A ChangeLog appears below. If there are no objections, I'll install this on master in two weeks. martin For minibuffer windows record minibuffers only (Bug#72487) * src/minibuf.c (zip_minibuffer_stacks): Use wset type functions. Call 'record-window-buffer' instead of 'push-window-buffer-onto-prev' to handle all sorts of buffers shown in minibuffer windows in a uniform way. (read_minibuf): Call 'record-window-buffer' instead of 'push-window-buffer-onto-prev' for same reason as previous. * lisp/calculator.el (calculator-update-display) (calculator-save-and-quit): Make sure calculator buffer is live before operating on it. * lisp/window.el (record-window-buffer): Handle case where WINDOW is a minibuffer window: Unconditionally remove WINDOW's buffer from WINDOW's list of previous buffers and push it if and only if it is a live minibuffer (Bug#72487). Do not run 'buffer-list-update-hook' if WINDOW is a minibuffer window. (push-window-buffer-onto-prev): Make it an alias of 'record-window-buffer' so it will run the latter's checks. (replace-buffer-in-windows): Handle minibuffer windows and rewrite doc-string accordingly. * doc/lispref/windows.texi (Buffers and Windows): Explain handling of minibuffer windows in 'replace-buffer-in-windows'. --------------Mja3uks8nWVl0PxIy4CZVBQJ Content-Type: text/x-patch; charset=UTF-8; name="minibuffer-windows.diff" Content-Disposition: attachment; filename="minibuffer-windows.diff" Content-Transfer-Encoding: base64 aW5kZXggNjU2YTQ0ZGZjYmYuLjU0MWM5MWRkYWUyIDEwMDY0NAotLS0gYS9kb2MvbGlzcHJl Zi93aW5kb3dzLnRleGkKKysrIGIvZG9jL2xpc3ByZWYvd2luZG93cy50ZXhpCkBAIC0yMzUz LDYgKzIzNTMsMTIgQEAgQnVmZmVycyBhbmQgV2luZG93cwogdGhhdCBhcmUgb25seSByZWZl cmVuY2VkIGJ5IHdpbmRvdyBjb25maWd1cmF0aW9ucykgYW5kIHJlbW92ZSBhbnkKIEBjb2Rl e3F1aXQtcmVzdG9yZX0gb3IgQGNvZGV7cXVpdC1yZXN0b3JlLXByZXZ9IHBhcmFtZXRlcnMK IChAcHhyZWZ7V2luZG93IFBhcmFtZXRlcnN9KSByZWZlcmVuY2luZyB0aGF0IGJ1ZmZlci4K KworVGhpcyBmdW5jdGlvbiBkb2VzIG5vdCByZXBsYWNlIHRoZSBidWZmZXIgc3BlY2lmaWVk IGJ5CitAdmFye2J1ZmZlci1vci1uYW1lfSBpbiBhbnkgbWluaWJ1ZmZlciB3aW5kb3cgc2hv d2luZyBpdCwgbm9yIGRvZXMgaXQKK2RlbGV0ZSBtaW5pYnVmZmVyIHdpbmRvd3Mgb3IgbWlu aWJ1ZmZlciBmcmFtZXMuICBJdCByZW1vdmVzLCBob3dldmVyLAordGhhdCBidWZmZXIgZnJv bSB0aGUgbGlzdHMgb2YgcHJldmlvdXMgYW5kIG5leHQgYnVmZmVycyBvZiBhbGwKK21pbmli dWZmZXIgd2luZG93cy4KIEBlbmQgZGVmZm4KIAogQnkgZGVmYXVsdCwgQGNvZGV7cmVwbGFj ZS1idWZmZXItaW4td2luZG93c30gZGVsZXRlcyBvbmx5IHdpbmRvd3MKZGlmZiAtLWdpdCBh L2xpc3AvY2FsY3VsYXRvci5lbCBiL2xpc3AvY2FsY3VsYXRvci5lbAppbmRleCBlZjFlNmQ4 ZGJjMy4uYTlmZTc2MjU5YTggMTAwNjQ0Ci0tLSBhL2xpc3AvY2FsY3VsYXRvci5lbAorKysg Yi9saXNwL2NhbGN1bGF0b3IuZWwKQEAgLTEwNTksNDkgKzEwNTksNTAgQEAgY2FsY3VsYXRv ci1udW1iZXItdG8tc3RyaW5nCiAoZGVmdW4gY2FsY3VsYXRvci11cGRhdGUtZGlzcGxheSAo Jm9wdGlvbmFsIGZvcmNlKQogICAiVXBkYXRlIHRoZSBkaXNwbGF5LgogSWYgb3B0aW9uYWwg YXJndW1lbnQgRk9SQ0UgaXMgbm9uLW5pbCwgZG9uJ3QgdXNlIHRoZSBjYWNoZWQgc3RyaW5n LiIKLSAgKHNldC1idWZmZXIgY2FsY3VsYXRvci1idWZmZXIpCi0gIDs7IHVwZGF0ZSBjYWxj dWxhdG9yLXN0YWNrLWRpc3BsYXkKLSAgKHdoZW4gKG9yIGZvcmNlIChub3QgKGVxIChjYXIg Y2FsY3VsYXRvci1zdGFjay1kaXNwbGF5KQotICAgICAgICAgICAgICAgICAgICAgICAgICAg Y2FsY3VsYXRvci1zdGFjaykpKQotICAgIChzZXRxIGNhbGN1bGF0b3Itc3RhY2stZGlzcGxh eQotICAgICAgICAgIChjb25zIGNhbGN1bGF0b3Itc3RhY2sKLSAgICAgICAgICAgICAgICAo aWYgY2FsY3VsYXRvci1zdGFjawotICAgICAgICAgICAgICAgICAgKGNvbmNhdAotICAgICAg ICAgICAgICAgICAgIChsZXQgKChjYWxjdWxhdG9yLWRpc3BsYXllcgotICAgICAgICAgICAg ICAgICAgICAgICAgICAoaWYgKGFuZCBjYWxjdWxhdG9yLWRpc3BsYXllcnMKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKD0gMSAobGVuZ3RoIGNhbGN1bGF0b3Itc3Rh Y2spKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBjdXN0b21pemFibGUgZGlz cGxheSBmb3IgYSBzaW5nbGUgdmFsdWUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAo Y2FhciBjYWxjdWxhdG9yLWRpc3BsYXllcnMpCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgY2FsY3VsYXRvci1kaXNwbGF5ZXIpKSkKLSAgICAgICAgICAgICAgICAgICAgIChtYXBj b25jYXQgJ2NhbGN1bGF0b3ItbnVtYmVyLXRvLXN0cmluZwotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAocmV2ZXJzZSBjYWxjdWxhdG9yLXN0YWNrKQotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAiICIpKQotICAgICAgICAgICAgICAgICAgICIgIgotICAg ICAgICAgICAgICAgICAgIChhbmQgY2FsY3VsYXRvci1kaXNwbGF5LWZyYWdpbGUKLSAgICAg ICAgICAgICAgICAgICAgICAgIGNhbGN1bGF0b3Itc2F2ZWQtbGlzdAotICAgICAgICAgICAg ICAgICAgICAgICAgOzsgSGFjazogdXNlIGBlcScgdG8gY29tcGFyZSB0aGUgbnVtYmVyOiBp dCdzIGEKLSAgICAgICAgICAgICAgICAgICAgICAgIDs7IGZsb251bSwgc28gYGVxJyBtZWFu cyB0aGF0IGl0cyB0aGUgYWN0dWFsCi0gICAgICAgICAgICAgICAgICAgICAgICA7OyBudW1i ZXIgcmF0aGVyIHRoYW4gYSBjb21wdXRhdGlvbiB0aGF0IGhhZCBhbgotICAgICAgICAgICAg ICAgICAgICAgICAgOzsgZXF1YWwgcmVzdWx0IChlZywgZW50ZXIgMSwzLDIsIHVzZSAidiIg dG8gc2VlCi0gICAgICAgICAgICAgICAgICAgICAgICA7OyB0aGUgYXZlcmFnZSAtLSBpdCBu b3cgc2hvd3MgIjIiIGluc3RlYWQgb2YKLSAgICAgICAgICAgICAgICAgICAgICAgIDs7ICIy IFszXSIpLgotICAgICAgICAgICAgICAgICAgICAgICAgKGVxIChjYXIgY2FsY3VsYXRvci1z dGFjaykKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAobnRoIGNhbGN1bGF0b3Itc2F2 ZWQtcHRyCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxjdWxhdG9yLXNh dmVkLWxpc3QpKQotICAgICAgICAgICAgICAgICAgICAgICAgKGlmICg9IDAgY2FsY3VsYXRv ci1zYXZlZC1wdHIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgIChmb3JtYXQgIlslc10i IChsZW5ndGggY2FsY3VsYXRvci1zYXZlZC1saXN0KSkKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgKGZvcm1hdCAiWyVzLyVzXSIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAoLSAobGVuZ3RoIGNhbGN1bGF0b3Itc2F2ZWQtbGlzdCkKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjYWxjdWxhdG9yLXNhdmVkLXB0cikKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAobGVuZ3RoIGNhbGN1bGF0b3Itc2F2ZWQtbGlz dCkpKSkpCi0gICAgICAgICAgICAgICAgICAiIikpKSkKLSAgKGxldCAoKGluaGliaXQtcmVh ZC1vbmx5IHQpKQotICAgIChlcmFzZS1idWZmZXIpCi0gICAgKGluc2VydCAoY2FsY3VsYXRv ci1nZXQtZGlzcGxheSkpKQotICAoc2V0LWJ1ZmZlci1tb2RpZmllZC1wIG5pbCkKLSAgKGdv dG8tY2hhciAoaWYgY2FsY3VsYXRvci1kaXNwbGF5LWZyYWdpbGUKLSAgICAgICAgICAgICAg ICgxKyAobGVuZ3RoIGNhbGN1bGF0b3ItcHJvbXB0KSkKLSAgICAgICAgICAgICAgICgxLSAo cG9pbnQpKSkpKQorICAod2hlbiAoYnVmZmVyLWxpdmUtcCBjYWxjdWxhdG9yLWJ1ZmZlcikK KyAgICAoc2V0LWJ1ZmZlciBjYWxjdWxhdG9yLWJ1ZmZlcikKKyAgICA7OyB1cGRhdGUgY2Fs Y3VsYXRvci1zdGFjay1kaXNwbGF5CisgICAgKHdoZW4gKG9yIGZvcmNlIChub3QgKGVxIChj YXIgY2FsY3VsYXRvci1zdGFjay1kaXNwbGF5KQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjYWxjdWxhdG9yLXN0YWNrKSkpCisgICAgICAoc2V0cSBjYWxjdWxhdG9yLXN0YWNr LWRpc3BsYXkKKyAgICAgICAgICAgIChjb25zIGNhbGN1bGF0b3Itc3RhY2sKKyAgICAgICAg ICAgICAgICAgIChpZiBjYWxjdWxhdG9yLXN0YWNrCisgICAgICAgICAgICAgICAgICAgICAg KGNvbmNhdAorICAgICAgICAgICAgICAgICAgICAgICAobGV0ICgoY2FsY3VsYXRvci1kaXNw bGF5ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpZiAoYW5kIGNhbGN1bGF0 b3ItZGlzcGxheWVycworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KD0gMSAobGVuZ3RoIGNhbGN1bGF0b3Itc3RhY2spKSkKKwkJCQkgIDs7IGN1c3RvbWl6YWJs ZSBkaXNwbGF5IGZvciBhIHNpbmdsZSB2YWx1ZQorCQkJCSAgKGNhYXIgY2FsY3VsYXRvci1k aXNwbGF5ZXJzKQorCQkJCWNhbGN1bGF0b3ItZGlzcGxheWVyKSkpCisJCQkgKG1hcGNvbmNh dCAnY2FsY3VsYXRvci1udW1iZXItdG8tc3RyaW5nCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAocmV2ZXJzZSBjYWxjdWxhdG9yLXN0YWNrKQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIiAiKSkKKyAgICAgICAgICAgICAgICAgICAgICAg IiAiCisgICAgICAgICAgICAgICAgICAgICAgIChhbmQgY2FsY3VsYXRvci1kaXNwbGF5LWZy YWdpbGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxjdWxhdG9yLXNhdmVkLWxp c3QKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBIYWNrOiB1c2UgYGVxJyB0byBj b21wYXJlIHRoZSBudW1iZXI6IGl0J3MgYQorICAgICAgICAgICAgICAgICAgICAgICAgICAg IDs7IGZsb251bSwgc28gYGVxJyBtZWFucyB0aGF0IGl0cyB0aGUgYWN0dWFsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgOzsgbnVtYmVyIHJhdGhlciB0aGFuIGEgY29tcHV0YXRp b24gdGhhdCBoYWQgYW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBlcXVhbCBy ZXN1bHQgKGVnLCBlbnRlciAxLDMsMiwgdXNlICJ2IiB0byBzZWUKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICA7OyB0aGUgYXZlcmFnZSAtLSBpdCBub3cgc2hvd3MgIjIiIGluc3Rl YWQgb2YKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyAiMiBbM10iKS4KKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoZXEgKGNhciBjYWxjdWxhdG9yLXN0YWNrKQorCQkJ CShudGggY2FsY3VsYXRvci1zYXZlZC1wdHIKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjYWxjdWxhdG9yLXNhdmVkLWxpc3QpKQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChpZiAoPSAwIGNhbGN1bGF0b3Itc2F2ZWQtcHRyKQorCQkJCShmb3JtYXQg Ilslc10iIChsZW5ndGggY2FsY3VsYXRvci1zYXZlZC1saXN0KSkKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChmb3JtYXQgIlslcy8lc10iCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICgtIChsZW5ndGggY2FsY3VsYXRvci1zYXZlZC1saXN0KQor CQkJCQkgY2FsY3VsYXRvci1zYXZlZC1wdHIpCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChsZW5ndGggY2FsY3VsYXRvci1zYXZlZC1saXN0KSkpKSkKKyAgICAg ICAgICAgICAgICAgICAgIiIpKSkpCisgICAgKGxldCAoKGluaGliaXQtcmVhZC1vbmx5IHQp KQorICAgICAgKGVyYXNlLWJ1ZmZlcikKKyAgICAgIChpbnNlcnQgKGNhbGN1bGF0b3ItZ2V0 LWRpc3BsYXkpKSkKKyAgICAoc2V0LWJ1ZmZlci1tb2RpZmllZC1wIG5pbCkKKyAgICAoZ290 by1jaGFyIChpZiBjYWxjdWxhdG9yLWRpc3BsYXktZnJhZ2lsZQorCQkgICAoMSsgKGxlbmd0 aCBjYWxjdWxhdG9yLXByb21wdCkpCisJCSAoMS0gKHBvaW50KSkpKSkpCiAKIDs7Oy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQogOzs7IFN0YWNrIGNvbXB1dGF0aW9ucwpAQCAtMTU1MywxNyArMTU1NCwx OCBAQCBjYWxjdWxhdG9yLWhlbHAKIChkZWZ1biBjYWxjdWxhdG9yLXF1aXQgKCkKICAgIlF1 aXQgY2FsY3VsYXRvci4iCiAgIChpbnRlcmFjdGl2ZSkKLSAgKHNldC1idWZmZXIgY2FsY3Vs YXRvci1idWZmZXIpCi0gIChsZXQgKChpbmhpYml0LXJlYWQtb25seSB0KSkgKGVyYXNlLWJ1 ZmZlcikpCi0gICh1bmxlc3MgY2FsY3VsYXRvci1lbGVjdHJpYy1tb2RlCi0gICAgKGlnbm9y ZS1lcnJvcnMKLSAgICAgICh3aGlsZSAoZ2V0LWJ1ZmZlci13aW5kb3cgY2FsY3VsYXRvci1i dWZmZXIpCi0gICAgICAgIChkZWxldGUtd2luZG93IChnZXQtYnVmZmVyLXdpbmRvdyBjYWxj dWxhdG9yLWJ1ZmZlcikpKSkpCi0gIChraWxsLWJ1ZmZlciBjYWxjdWxhdG9yLWJ1ZmZlcikK LSAgKG1lc3NhZ2UgIkNhbGN1bGF0b3IgZG9uZS4iKQotICAoaWYgY2FsY3VsYXRvci1lbGVj dHJpYy1tb2RlCi0gICAgKHRocm93ICdjYWxjdWxhdG9yLWRvbmUgbmlsKSA7IHdpbGwga2ls bCB0aGUgYnVmZmVyCi0gICAgKHNldHEgY2FsY3VsYXRvci1idWZmZXIgbmlsKSkpCisgICh3 aGVuIChidWZmZXItbGl2ZS1wIGNhbGN1bGF0b3ItYnVmZmVyKQorICAgIChzZXQtYnVmZmVy IGNhbGN1bGF0b3ItYnVmZmVyKQorICAgIChsZXQgKChpbmhpYml0LXJlYWQtb25seSB0KSkg KGVyYXNlLWJ1ZmZlcikpCisgICAgKHVubGVzcyBjYWxjdWxhdG9yLWVsZWN0cmljLW1vZGUK KyAgICAgIChpZ25vcmUtZXJyb3JzCisJKHdoaWxlIChnZXQtYnVmZmVyLXdpbmRvdyBjYWxj dWxhdG9yLWJ1ZmZlcikKKyAgICAgICAgICAoZGVsZXRlLXdpbmRvdyAoZ2V0LWJ1ZmZlci13 aW5kb3cgY2FsY3VsYXRvci1idWZmZXIpKSkpKQorICAgIChraWxsLWJ1ZmZlciBjYWxjdWxh dG9yLWJ1ZmZlcikKKyAgICAobWVzc2FnZSAiQ2FsY3VsYXRvciBkb25lLiIpCisgICAgKGlm IGNhbGN1bGF0b3ItZWxlY3RyaWMtbW9kZQorCSh0aHJvdyAnY2FsY3VsYXRvci1kb25lIG5p bCkJCTsgd2lsbCBraWxsIHRoZSBidWZmZXIKKyAgICAgIChzZXRxIGNhbGN1bGF0b3ItYnVm ZmVyIG5pbCkpKSkKIAogKGRlZnVuIGNhbGN1bGF0b3Itc2F2ZS1hbmQtcXVpdCAoKQogICAi UXVpdCB0aGUgY2FsY3VsYXRvciwgc2F2aW5nIHRoZSByZXN1bHQgb24gdGhlIGBraWxsLXJp bmcnLiIKZGlmZiAtLWdpdCBhL2xpc3Avd2luZG93LmVsIGIvbGlzcC93aW5kb3cuZWwKaW5k ZXggZjQyMjZmYTQ0MjguLjM2ODQ0NGZiZWU4IDEwMDY0NAotLS0gYS9saXNwL3dpbmRvdy5l bAorKysgYi9saXNwL3dpbmRvdy5lbApAQCAtNDQ2OSw3NSArNDQ2OSw4NiBAQCBkZWxldGUt b3RoZXItd2luZG93cy12ZXJ0aWNhbGx5CiAKIDs7OyBXaW5kb3dzIGFuZCBidWZmZXJzLgog Ci07OyBgcHJldi1idWZmZXJzJyBhbmQgYG5leHQtYnVmZmVycycgYXJlIHR3byByZXNlcnZl ZCB3aW5kb3cgc2xvdHMgdXNlZAorOzsgJ3ByZXYtYnVmZmVycycgYW5kICduZXh0LWJ1ZmZl cnMnIGFyZSB0d28gcmVzZXJ2ZWQgd2luZG93IHNsb3RzIHVzZWQKIDs7IGZvciAoMSkgZGV0 ZXJtaW5pbmcgd2hpY2ggYnVmZmVyIHRvIHNob3cgaW4gdGhlIHdpbmRvdyB3aGVuIGl0cwog OzsgYnVmZmVyIHNoYWxsIGJlIGJ1cmllZCBvciBraWxsZWQgYW5kICgyKSB3aGljaCBidWZm ZXIgdG8gc2hvdyBmb3IKLTs7IGBzd2l0Y2gtdG8tcHJldi1idWZmZXInIGFuZCBgc3dpdGNo LXRvLW5leHQtYnVmZmVyJy4KKzs7ICdzd2l0Y2gtdG8tcHJldi1idWZmZXInIGFuZCAnc3dp dGNoLXRvLW5leHQtYnVmZmVyJy4KIAotOzsgYHByZXYtYnVmZmVycycgY29uc2lzdHMgb2Yg PGJ1ZmZlciwgd2luZG93LXN0YXJ0LCB3aW5kb3ctcG9pbnQ+Cis7OyAncHJldi1idWZmZXJz JyBjb25zaXN0cyBvZiA8YnVmZmVyLCB3aW5kb3ctc3RhcnQsIHdpbmRvdy1wb2ludD4KIDs7 IHRyaXBsZXMuICBUaGUgZW50cmllcyBvbiB0aGlzIGxpc3QgYXJlIG9yZGVyZWQgYnkgdGhl IHRpbWUgdGhlaXIKIDs7IGJ1ZmZlciBoYXMgYmVlbiByZW1vdmVkIGZyb20gdGhlIHdpbmRv dywgdGhlIG1vc3QgcmVjZW50bHkgcmVtb3ZlZAogOzsgYnVmZmVyJ3MgZW50cnkgYmVpbmcg Zmlyc3QuICBUaGUgd2luZG93LXN0YXJ0IGFuZCB3aW5kb3ctcG9pbnQKLTs7IGNvbXBvbmVu dHMgYXJlIGB3aW5kb3ctc3RhcnQnIGFuZCBgd2luZG93LXBvaW50JyBhdCB0aGUgdGltZSB0 aGUKKzs7IGNvbXBvbmVudHMgYXJlICd3aW5kb3ctc3RhcnQnIGFuZCAnd2luZG93LXBvaW50 JyBhdCB0aGUgdGltZSB0aGUKIDs7IGJ1ZmZlciB3YXMgcmVtb3ZlZCBmcm9tIHRoZSB3aW5k b3cgd2hpY2ggaW1wbGllcyB0aGF0IHRoZSBlbnRyeSBtdXN0Ci07OyBiZSBhZGRlZCB3aGVu IGBzZXQtd2luZG93LWJ1ZmZlcicgcmVtb3ZlcyB0aGUgYnVmZmVyIGZyb20gdGhlIHdpbmRv dy4KKzs7IGJlIGFkZGVkIHdoZW4gJ3NldC13aW5kb3ctYnVmZmVyJyByZW1vdmVzIHRoZSBi dWZmZXIgZnJvbSB0aGUgd2luZG93LgogCi07OyBgbmV4dC1idWZmZXJzJyBpcyB0aGUgbGlz dCBvZiBidWZmZXJzIHRoYXQgaGF2ZSBiZWVuIHJlcGxhY2VkCi07OyByZWNlbnRseSBieSBg c3dpdGNoLXRvLXByZXYtYnVmZmVyJy4gIFRoZXNlIGJ1ZmZlcnMgYXJlIHRoZSBsZWFzdAot OzsgcHJlZmVycmVkIGNhbmRpZGF0ZXMgb2YgYHN3aXRjaC10by1wcmV2LWJ1ZmZlcicgYW5k IHRoZSBwcmVmZXJyZWQKLTs7IGNhbmRpZGF0ZXMgb2YgYHN3aXRjaC10by1uZXh0LWJ1ZmZl cicgdG8gc3dpdGNoIHRvLiAgVGhpcyBsaXN0IGlzCis7OyAnbmV4dC1idWZmZXJzJyBpcyB0 aGUgbGlzdCBvZiBidWZmZXJzIHRoYXQgaGF2ZSBiZWVuIHJlcGxhY2VkCis7OyByZWNlbnRs eSBieSAnc3dpdGNoLXRvLXByZXYtYnVmZmVyJy4gIFRoZXNlIGJ1ZmZlcnMgYXJlIHRoZSBs ZWFzdAorOzsgcHJlZmVycmVkIGNhbmRpZGF0ZXMgb2YgJ3N3aXRjaC10by1wcmV2LWJ1ZmZl cicgYW5kIHRoZSBwcmVmZXJyZWQKKzs7IGNhbmRpZGF0ZXMgb2YgJ3N3aXRjaC10by1uZXh0 LWJ1ZmZlcicgdG8gc3dpdGNoIHRvLiAgVGhpcyBsaXN0IGlzCiA7OyByZXNldCB0byBuaWwg YnkgYW55IGFjdGlvbiBjaGFuZ2luZyB0aGUgd2luZG93J3MgYnVmZmVyIHdpdGggdGhlCi07 OyBleGNlcHRpb24gb2YgYHN3aXRjaC10by1wcmV2LWJ1ZmZlcicgYW5kIGBzd2l0Y2gtdG8t bmV4dC1idWZmZXInLgotOzsgYHN3aXRjaC10by1wcmV2LWJ1ZmZlcicgcHVzaGVzIHRoZSBi dWZmZXIgaXQganVzdCByZXBsYWNlZCBvbiBpdCwKLTs7IGBzd2l0Y2gtdG8tbmV4dC1idWZm ZXInIHBvcHMgdGhlIGxhc3QgcHVzaGVkIGJ1ZmZlciBmcm9tIGl0LgotCi07OyBCb3RoIGBw cmV2LWJ1ZmZlcnMnIGFuZCBgbmV4dC1idWZmZXJzJyBtYXkgcmVmZXJlbmNlIGtpbGxlZCBi dWZmZXJzCi07OyBpZiBzdWNoIGEgYnVmZmVyIHdhcyBraWxsZWQgd2hpbGUgdGhlIHdpbmRv dyB3YXMgaGlkZGVuIHdpdGhpbiBhCi07OyB3aW5kb3cgY29uZmlndXJhdGlvbi4gIFN1Y2gg a2lsbGVkIGJ1ZmZlcnMgZ2V0IHJlbW92ZWQgd2hlbmV2ZXIKLTs7IGBzd2l0Y2gtdG8tcHJl di1idWZmZXInIG9yIGBzd2l0Y2gtdG8tbmV4dC1idWZmZXInIGVuY291bnRlciB0aGVtLgot Ci07OyBUaGUgZm9sbG93aW5nIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSBgc2V0LXdpbmRvdy1i dWZmZXInIF9iZWZvcmVfIGl0Ci07OyByZXBsYWNlcyB0aGUgYnVmZmVyIG9mIHRoZSBhcmd1 bWVudCB3aW5kb3cgd2l0aCB0aGUgbmV3IGJ1ZmZlci4KLShkZWZ1biBwdXNoLXdpbmRvdy1i dWZmZXItb250by1wcmV2ICgmb3B0aW9uYWwgd2luZG93KQotICAiUHVzaCBlbnRyeSBmb3Ig V0lORE9XJ3MgYnVmZmVyIG9udG8gV0lORE9XJ3MgcHJldi1idWZmZXJzIGxpc3QuCi1XSU5E T1cgbXVzdCBiZSBhIGxpdmUgd2luZG93IGFuZCBkZWZhdWx0cyB0byB0aGUgc2VsZWN0ZWQg b25lLgotCi1BbnkgZHVwbGljYXRlIGVudHJpZXMgZm9yIHRoZSBidWZmZXIgaW4gdGhlIGxp c3QgYXJlIHJlbW92ZWQuIgorOzsgZXhjZXB0aW9uIG9mICdzd2l0Y2gtdG8tcHJldi1idWZm ZXInIGFuZCAnc3dpdGNoLXRvLW5leHQtYnVmZmVyJy4KKzs7ICdzd2l0Y2gtdG8tcHJldi1i dWZmZXInIHB1c2hlcyB0aGUgYnVmZmVyIGl0IGp1c3QgcmVwbGFjZWQgb24gaXQsCis7OyAn c3dpdGNoLXRvLW5leHQtYnVmZmVyJyBwb3BzIHRoZSBsYXN0IHB1c2hlZCBidWZmZXIgZnJv bSBpdC4KKworOzsgVGhlIGZvbGxvd2luZyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgJ3NldC13 aW5kb3ctYnVmZmVyJyBfYmVmb3JlXyBpdAorOzsgcmVwbGFjZXMgdGhlIGJ1ZmZlciBvZiB0 aGUgYXJndW1lbnQgd2luZG93IHdpdGggdGhlIG5ldyBidWZmZXIuICBJdAorOzsgZG9lcyBu b3QgcmVjb3JkIGEgbm9uLW1pbmlidWZmZXIgYnVmZmVyIChsaWtlIHRoZSBvbmUgY3JlYXRl ZCBieQorOzsgJ2NhbGN1bGF0b3InIGluIEVsZWN0cmljIG1vZGUpIGluIGEgbWluaWJ1ZmZl ciB3aW5kb3cgc2luY2UgdGhlIGNvZGUKKzs7IGluIG1pbmlidWYuYyBjYW5ub3QgaGFuZGxl IHRoYXQuICBUaGUgbWluaWJ1Zi5jIGNvZGUgY2FsbHMgdGhpcworOzsgZnVuY3Rpb24gZXhj bHVzaXZlbHkgdG8gYXJyYW5nZSBtaW5pYnVmZmVycyBzaG93biBpbiBtaW5pYnVmZmVyCis7 OyB3aW5kb3dzLgorKGRlZnVuIHJlY29yZC13aW5kb3ctYnVmZmVyICgmb3B0aW9uYWwgd2lu ZG93KQorICAiUmVjb3JkIFdJTkRPVydzIGJ1ZmZlci4KK0FkZCB0aGUgYnVmZmVyIGN1cnJl bnRseSBzaG93biBpbiBXSU5ET1cgdG8gdGhlIGxpc3Qgb2YgV0lORE9XJ3MKK3ByZXZpb3Vz IGJ1ZmZlcnMuICBXSU5ET1cgbXVzdCBiZSBhIGxpdmUgd2luZG93IGFuZCBkZWZhdWx0cyB0 byB0aGUKK3NlbGVjdGVkIG9uZS4KKworSWYgV0lORE9XIGlzIG5vdCBhIG1pbmlidWZmZXIg d2luZG93LCBkbyBub3QgcmVjb3JkIGluc2lnbmlmaWNhbnQKK2J1ZmZlcnMgKGJ1ZmZlcnMg d2hvc2UgbmFtZSBzdGFydHMgd2l0aCBhIHNwYWNlKS4gIElmIFdJTkRPVyBpcyBhCittaW5p YnVmZmVyIHdpbmRvdywgcmVjb3JkIGl0cyBidWZmZXIgaWYgYW5kIG9ubHkgaWYgdGhhdCBi dWZmZXIgaXMgYQorbGl2ZSBtaW5pYnVmZmVyIChgbWluaWJ1ZmZlcnAnIHdpdGggTElWRSBh cmd1bWVudCBub24tbmlsIG11c3QgcmV0dXJuCitub24tbmlsIGZvciBpdCkuCisKK1J1biBg YnVmZmVyLWxpc3QtdXBkYXRlLWhvb2snIGlmIGFuZCBvbmx5IGlmIFdJTkRPVyBpcyBub3Qg YSBtaW5pYnVmZmVyCit3aW5kb3cuIgogICAobGV0KiAoKHdpbmRvdyAod2luZG93LW5vcm1h bGl6ZS13aW5kb3cgd2luZG93IHQpKQorCSAobWluaSAod2luZG93LW1pbmlidWZmZXItcCB3 aW5kb3cpKQogICAgICAgICAgKGJ1ZmZlciAod2luZG93LWJ1ZmZlciB3aW5kb3cpKQotICAg ICAgICAgKHctbGlzdCAod2luZG93LXByZXYtYnVmZmVycyB3aW5kb3cpKQotICAgICAgICAg KGVudHJ5IChhc3NxIGJ1ZmZlciB3LWxpc3QpKSkKKyAgICAgICAgIChwcmV2LWJ1ZmZlcnMg KHdpbmRvdy1wcmV2LWJ1ZmZlcnMgd2luZG93KSkKKyAgICAgICAgIChlbnRyeSAoYXNzcSBi dWZmZXIgcHJldi1idWZmZXJzKSkpCiAgICAgKHdoZW4gZW50cnkKLSAgICAgIChzZXRxIHct bGlzdCAoYXNzcS1kZWxldGUtYWxsIGJ1ZmZlciB3LWxpc3QpKSkKLSAgICAobGV0ICgoc3Rh cnQgKHdpbmRvdy1zdGFydCB3aW5kb3cpKQotICAgICAgICAgIChwb2ludCAod2luZG93LXBv aW50IHdpbmRvdykpKQotICAgICAgKHNldHEgZW50cnkKLSAgICAgICAgICAgIChjb25zIGJ1 ZmZlcgotICAgICAgICAgICAgICAgICAgKHdpdGgtY3VycmVudC1idWZmZXIgYnVmZmVyCi0g ICAgICAgICAgICAgICAgICAgIChpZiBlbnRyeQotICAgICAgICAgICAgICAgICAgICAgICAg OzsgV2UgaGF2ZSBhbiBlbnRyeSwgdXBkYXRlIG1hcmtlciBwb3NpdGlvbnMuCi0gICAgICAg ICAgICAgICAgICAgICAgICAobGlzdCAoc2V0LW1hcmtlciAobnRoIDEgZW50cnkpIHN0YXJ0 KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNldC1tYXJrZXIgKG50aCAyIGVu dHJ5KSBwb2ludCkpCi0gICAgICAgICAgICAgICAgICAgICAgKGxpc3QgKGNvcHktbWFya2Vy IHN0YXJ0KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb3B5LW1hcmtlcgotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBQcmVzZXJ2ZSB3aW5kb3ctcG9pbnQtaW5z ZXJ0aW9uLXR5cGUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgKEJ1ZyMxMjg1 NSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9pbnQgd2luZG93LXBvaW50LWlu c2VydGlvbi10eXBlKSkpKSkpCi0gICAgICAoc2V0LXdpbmRvdy1wcmV2LWJ1ZmZlcnMgd2lu ZG93IChjb25zIGVudHJ5IHctbGlzdCkpKSkpCisgICAgICAoc2V0cSBwcmV2LWJ1ZmZlcnMg KGFzc3EtZGVsZXRlLWFsbCBidWZmZXIgcHJldi1idWZmZXJzKSkpCiAKLShkZWZ1biByZWNv cmQtd2luZG93LWJ1ZmZlciAoJm9wdGlvbmFsIHdpbmRvdykKLSAgIlJlY29yZCBXSU5ET1cn cyBidWZmZXIuCi1XSU5ET1cgbXVzdCBiZSBhIGxpdmUgd2luZG93IGFuZCBkZWZhdWx0cyB0 byB0aGUgc2VsZWN0ZWQgb25lLiIKLSAgKGxldCogKCh3aW5kb3cgKHdpbmRvdy1ub3JtYWxp emUtd2luZG93IHdpbmRvdyB0KSkKLSAgICAgICAgIChidWZmZXIgKHdpbmRvdy1idWZmZXIg d2luZG93KSkpCiAgICAgOzsgUmVzZXQgV0lORE9XJ3MgbmV4dCBidWZmZXJzLiAgSWYgbmVl ZGVkLCB0aGV5IGFyZSByZXN1cnJlY3RlZCBieQogICAgIDs7IGBzd2l0Y2gtdG8tcHJldi1i dWZmZXInIGFuZCBgc3dpdGNoLXRvLW5leHQtYnVmZmVyJy4KICAgICAoc2V0LXdpbmRvdy1u ZXh0LWJ1ZmZlcnMgd2luZG93IG5pbCkKIAotICAgIDs7IERvbid0IHJlY29yZCBpbnNpZ25p ZmljYW50IGJ1ZmZlcnMuCi0gICAgKHdoZW4gKG5vdCAoZXEgKGFyZWYgKGJ1ZmZlci1uYW1l IGJ1ZmZlcikgMCkgP1xzKSkKLSAgICAgIChwdXNoLXdpbmRvdy1idWZmZXItb250by1wcmV2 IHdpbmRvdykKLSAgICAgIChydW4taG9va3MgJ2J1ZmZlci1saXN0LXVwZGF0ZS1ob29rKSkp KQorICAgIDs7IEZvciBtaW5pYnVmZmVyIHdpbmRvd3MgcmVjb3JkIGxpdmUgbWluaWJ1ZmZl cnMgb25seS4gIEZvciBub3JtYWwKKyAgICA7OyB3aW5kb3dzIGRvIG5vdCByZWNvcmQgaW5z aWduaWZpY2FudCBidWZmZXJzLgorICAgICh3aGVuIChpZiBtaW5pCisJICAgICAgKG1pbmli dWZmZXJwIGJ1ZmZlciB0KQorCSAgICAoZXEgKGFyZWYgKGJ1ZmZlci1uYW1lIGJ1ZmZlcikg MCkgP1xzKSkKKyAgICAgIChsZXQgKChzdGFydCAod2luZG93LXN0YXJ0IHdpbmRvdykpCisg ICAgICAgICAgICAocG9pbnQgKHdpbmRvdy1wb2ludCB3aW5kb3cpKSkKKwkoc2V0cSBlbnRy eQorICAgICAgICAgICAgICAoY29ucyBidWZmZXIKKyAgICAgICAgICAgICAgICAgICAgKHdp dGgtY3VycmVudC1idWZmZXIgYnVmZmVyCisgICAgICAgICAgICAgICAgICAgICAgKGlmIGVu dHJ5CisgICAgICAgICAgICAgICAgICAgICAgICAgIDs7IFdlIGhhdmUgYW4gZW50cnksIHVw ZGF0ZSBtYXJrZXIgcG9zaXRpb25zLgorICAgICAgICAgICAgICAgICAgICAgICAgICAobGlz dCAoc2V0LW1hcmtlciAobnRoIDEgZW50cnkpIHN0YXJ0KQorCQkJCShzZXQtbWFya2VyIChu dGggMiBlbnRyeSkgcG9pbnQpKQorCQkJKGxpc3QgKGNvcHktbWFya2VyIHN0YXJ0KQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvcHktbWFya2VyCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgOzsgUHJlc2VydmUgd2luZG93LXBvaW50LWluc2VydGlvbi10 eXBlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgKEJ1ZyMxMjg1NSkKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb2ludCB3aW5kb3ctcG9pbnQtaW5zZXJ0 aW9uLXR5cGUpKSkpKSkKKwkoc2V0LXdpbmRvdy1wcmV2LWJ1ZmZlcnMgd2luZG93IChjb25z IGVudHJ5IHByZXYtYnVmZmVycykpCisKKwkodW5sZXNzIG1pbmkKKwkgIChydW4taG9va3Mg J2J1ZmZlci1saXN0LXVwZGF0ZS1ob29rKSkpKSkpCisKKyhkZWZhbGlhcyAncHVzaC13aW5k b3ctYnVmZmVyLW9udG8tcHJldiAncmVjb3JkLXdpbmRvdy1idWZmZXIpCiAKIChkZWZ1biB1 bnJlY29yZC13aW5kb3ctYnVmZmVyICgmb3B0aW9uYWwgd2luZG93IGJ1ZmZlciBhbGwpCiAg ICJVbnJlY29yZCBCVUZGRVIgaW4gV0lORE9XLgpAQCAtNTE2MCwxMCArNTE3MSwxOSBAQCBk ZWxldGUtd2luZG93cy1vbgogCTs7IElmIGEgd2luZG93IGRvZXNuJ3Qgc2hvdyBCVUZGRVIs IHVucmVjb3JkIEJVRkZFUiBpbiBpdC4KIAkodW5yZWNvcmQtd2luZG93LWJ1ZmZlciB3aW5k b3cgYnVmZmVyIHQpKSkpKQogCis7OyBDb25jZXB0dWFsbHksICdyZXBsYWNlLWJ1ZmZlci1p bi13aW5kb3dzJyB3b3VsZCBub3QgaGF2ZSB0byB0b3VjaCB0aGUKKzs7IGxpc3Qgb2YgcHJl dmlvdXMgYnVmZmVycyBvZiBhIG1pbmlidWZmZXIgd2luZG93OiBBcyBhIHJ1bGUsCis7OyBt aW5pYnVmZmVycyBhcmUgbmV2ZXIgZGVsZXRlZCBhbmQgYW55IG90aGVyIGJ1ZmZlcnMgc2hv d24gaW4gYQorOzsgbWluaWJ1ZmZlciB3aW5kb3cgYXJlIG5vdCByZWNvcmRlZCBieSAncmVj b3JkLXdpbmRvdycuICBUbyBiZSBvbiB0aGUKKzs7IHNhZmUgc2lkZSwgJ3JlcGxhY2UtYnVm ZmVyLWluLXdpbmRvd3MnIG5vdyBzY2FucyBtaW5pYnVmZmVyIHdpbmRvd3MKKzs7IHRvbyB0 byBtYWtlIHN1cmUgdGhhdCBhbnkga2lsbGVkIGJ1ZmZlciBnZXRzIHJlbW92ZWQgZnJvbSBh bGwgbGlzdHMKKzs7IG9mIHByZXZpb3VzIGFuZCBuZXh0IGJ1ZmZlcnMuICAncmVwbGFjZS1i dWZmZXItaW4td2luZG93cycgc3RpbGwgZG9lcworOzsgX25vdF8gcmVwbGFjZSB0aGUgYnVm ZmVyIGl0c2VsZiBpbiBhbnkgbWluaWJ1ZmZlciB3aW5kb3cgc2hvd2luZyBpdC4KKzs7IFRo YXQgY2FzZSBpcyBzdGlsbCBoYW5kbGVkIG9ubHkgaW4gJ2tpbGwtYnVmZmVyJyBpdHNlbGYu CiAoZGVmdW4gcmVwbGFjZS1idWZmZXItaW4td2luZG93cyAoJm9wdGlvbmFsIGJ1ZmZlci1v ci1uYW1lKQogICAiUmVwbGFjZSBCVUZGRVItT1ItTkFNRSB3aXRoIHNvbWUgb3RoZXIgYnVm ZmVyIGluIGFsbCB3aW5kb3dzIHNob3dpbmcgaXQuCiBCVUZGRVItT1ItTkFNRSBtYXkgYmUg YSBidWZmZXIgb3IgdGhlIG5hbWUgb2YgYW4gZXhpc3RpbmcgYnVmZmVyIGFuZAotZGVmYXVs dHMgdG8gdGhlIGN1cnJlbnQgYnVmZmVyLiAgTWluaWJ1ZmZlciB3aW5kb3dzIGFyZSBub3Qg Y29uc2lkZXJlZC4KK2RlZmF1bHRzIHRvIHRoZSBjdXJyZW50IGJ1ZmZlci4KIAogSWYgdGhl IG9wdGlvbiBga2lsbC1idWZmZXItcXVpdC13aW5kb3dzJyBpcyBuaWwsIGJlaGF2ZSBhcyBm b2xsb3dzOiBXaXRoCiB0aGUgZXhjZXB0aW9uIG9mIHNpZGUgd2luZG93cywgd2hlbiBhIHdp bmRvdyBzaG93aW5nIEJVRkZFUi1PUi1OQU1FIGlzCkBAIC01MTgwLDIxICs1MjAwLDI5IEBA IHJlcGxhY2UtYnVmZmVyLWluLXdpbmRvd3MKIGxpc3RzIG9mIHByZXZpb3VzIGFuZCBuZXh0 IGJ1ZmZlcnMgb2YgYWxsIHdpbmRvd3MgYW5kIHJlbW92ZSBhbnkKIGBxdWl0LXJlc3RvcmUn IG9yIGBxdWl0LXJlc3RvcmUtcHJldicgcGFyYW1ldGVycyBtZW50aW9uaW5nIGl0LgogCitU aGlzIGZ1bmN0aW9uIGRvZXMgbm90IHJlcGxhY2UgdGhlIGJ1ZmZlciBzcGVjaWZpZWQgYnkg QlVGRkVSLU9SLU5BTUUgaW4KK2FueSBtaW5pYnVmZmVyIHdpbmRvdyBzaG93aW5nIGl0LCBu b3IgZG9lcyBpdCBkZWxldGUgbWluaWJ1ZmZlciB3aW5kb3dzCitvciBtaW5pYnVmZmVyIGZy YW1lcy4gIEl0IHJlbW92ZXMsIGhvd2V2ZXIsIHRoYXQgYnVmZmVyIGZyb20gdGhlIGxpc3Rz CitvZiBwcmV2aW91cyBhbmQgbmV4dCBidWZmZXJzIG9mIGFsbCBtaW5pYnVmZmVyIHdpbmRv d3MuCisKIElmLCBmb3IgYW55IHdpbmRvdyBzaG93aW5nIEJVRkZFUi1PUi1OQU1FIHJ1bm5p bmcgdGhlIGFibm9ybWFsIGhvb2sKIGB3aW5kb3ctZGVsZXRhYmxlLWZ1bmN0aW9ucycgcmV0 dXJucyBuaWwsIGRvIG5vdCBkZWxldGUgdGhhdCB3aW5kb3cgYnV0CiBzaG93IHNvbWUgb3Ro ZXIgYnVmZmVyIGluIHRoYXQgd2luZG93LgogCi1UaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBi eSBga2lsbC1idWZmZXInIHdoaWNoIGtpbGxzIHRoZSBidWZmZXIKLXNwZWNpZmllZCBieSBg YnVmZmVyLW9yLW5hbWUnIGFmdGVyd2FyZHMuICBJdCBuZXZlciBraWxscyBhIGJ1ZmZlciBi eQotaXRzZWxmLiIKK1RoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IGBraWxsLWJ1ZmZlcicg d2hpY2ggZWZmZWN0aXZlbHkga2lsbHMgdGhlCitidWZmZXIgc3BlY2lmaWVkIGJ5IGBidWZm ZXItb3ItbmFtZScgYWZ0ZXJ3YXJkcy4gIEl0IG5ldmVyIGtpbGxzIGEKK2J1ZmZlciBieSBp dHNlbGYuIgogICAoaW50ZXJhY3RpdmUgImJCdWZmZXIgdG8gcmVwbGFjZTogIikKICAgKGxl dCAoKGJ1ZmZlciAod2luZG93LW5vcm1hbGl6ZS1idWZmZXIgYnVmZmVyLW9yLW5hbWUpKSkK LSAgICA7OyBTY2FuIGFsbCB3aW5kb3dzLiAgV2UgaGF2ZSB0byB1bnJlY29yZCBCVUZGRVIt T1ItTkFNRSBpbiB0aG9zZQotICAgIDs7IG5vdCBzaG93aW5nIGl0LgotICAgIChkb2xpc3Qg KHdpbmRvdyAod2luZG93LWxpc3QtMSBuaWwgbmlsIHQpKQorICAgIDs7IFNjYW4gYWxsIHdp bmRvd3MgaW5jbHVkaW5nIG1pbmlidWZmZXIgd2luZG93cy4gIFdlIGhhdmUgdG8KKyAgICA7 OyB1bnJlY29yZCBCVUZGRVItT1ItTkFNRSBldmVuIGluIHRob3NlIG5vdCBzaG93aW5nIGl0 LgorICAgIChkb2xpc3QgKHdpbmRvdyAod2luZG93LWxpc3QtMSBuaWwgdCB0KSkKICAgICAg ICh3aGVuIChlcSAod2luZG93LWJ1ZmZlciB3aW5kb3cpIGJ1ZmZlcikKLQkoaWYga2lsbC1i dWZmZXItcXVpdC13aW5kb3dzCi0JICAgIChxdWl0LXJlc3RvcmUtd2luZG93IHdpbmRvdyAn a2lsbGluZykKKwkoY29uZAorCSAoKHdpbmRvdy1taW5pYnVmZmVyLXAgd2luZG93KSkKKwkg KGtpbGwtYnVmZmVyLXF1aXQtd2luZG93cworCSAgKHF1aXQtcmVzdG9yZS13aW5kb3cgd2lu ZG93ICdraWxsaW5nKSkKKwkgKHQKIAkgIChsZXQgKChkZWRpY2F0ZWQtc2lkZSAoZXEgKHdp bmRvdy1kZWRpY2F0ZWQtcCB3aW5kb3cpICdzaWRlKSkpCiAgICAgICAgICAgICAod2hlbiAo b3IgZGVkaWNhdGVkLXNpZGUgKG5vdCAod2luZG93LS1kZWxldGUgd2luZG93IHQgJ2tpbGwp KSkKIAkgICAgICA7OyBTd2l0Y2ggdG8gYW5vdGhlciBidWZmZXIgaW4gdGhhdCB3aW5kb3cu CkBAIC01MjEyLDcgKzUyNDAsNyBAQCByZXBsYWNlLWJ1ZmZlci1pbi13aW5kb3dzCiAJICA7 OyBlbGVtZW50IG9mIHRoZSBwYXJhbWV0ZXIsICdxdWl0LXJlc3RvcmUtd2luZG93JyBjYW5u b3QKIAkgIDs7IHBvc3NpYmx5IHNob3cgQlVGRkVSIGluc3RlYWQ7IHNvIHRoaXMgcGFyYW1l dGVyIGJlY29tZXMKIAkgIDs7IHVzZWxlc3MgdG9vLgotCSAgKHVucmVjb3JkLXdpbmRvdy1i dWZmZXIgd2luZG93IGJ1ZmZlciB0KSkpKSkKKwkgICh1bnJlY29yZC13aW5kb3ctYnVmZmVy IHdpbmRvdyBidWZmZXIgdCkpKSkpKQogCiAoZGVmY3VzdG9tIHF1aXQtd2luZG93LWhvb2sg bmlsCiAgICJIb29rIHJ1biBiZWZvcmUgcGVyZm9ybWluZyBhbnkgb3RoZXIgYWN0aW9ucyBp biB0aGUgYHF1aXQtd2luZG93JyBjb21tYW5kLiIKZGlmZiAtLWdpdCBhL3NyYy9taW5pYnVm LmMgYi9zcmMvbWluaWJ1Zi5jCmluZGV4IGYxNjg4MDAxMWY3Li4xZjk0ZTBlNjUwZSAxMDA2 NDQKLS0tIGEvc3JjL21pbmlidWYuYworKysgYi9zcmMvbWluaWJ1Zi5jCkBAIC0xNjAsMTYg KzE2MCwxNSBAQCB6aXBfbWluaWJ1ZmZlcl9zdGFja3MgKExpc3BfT2JqZWN0IGRlc3Rfd2lu ZG93LCBMaXNwX09iamVjdCBzb3VyY2Vfd2luZG93KQogICAgICAgc2V0X3dpbmRvd19idWZm ZXIgKGRlc3Rfd2luZG93LCBzdy0+Y29udGVudHMsIDAsIDApOwogICAgICAgRnNldF93aW5k b3dfc3RhcnQgKGRlc3Rfd2luZG93LCBGd2luZG93X3N0YXJ0IChzb3VyY2Vfd2luZG93KSwg UW5pbCk7CiAgICAgICBGc2V0X3dpbmRvd19wb2ludCAoZGVzdF93aW5kb3csIEZ3aW5kb3df cG9pbnQgKHNvdXJjZV93aW5kb3cpKTsKLSAgICAgIGR3LT5wcmV2X2J1ZmZlcnMgPSBzdy0+ cHJldl9idWZmZXJzOworICAgICAgd3NldF9wcmV2X2J1ZmZlcnMgKGR3LCBzdy0+cHJldl9i dWZmZXJzKTsKICAgICAgIHNldF93aW5kb3dfYnVmZmVyIChzb3VyY2Vfd2luZG93LCBudGhf bWluaWJ1ZmZlciAoMCksIDAsIDApOwotICAgICAgc3ctPnByZXZfYnVmZmVycyA9IFFuaWw7 CisgICAgICB3c2V0X3ByZXZfYnVmZmVycyAoc3csIFFuaWwpOwogICAgICAgcmV0dXJuOwog ICAgIH0KIAotICBpZiAobGl2ZV9taW5pYnVmZmVyX3AgKGR3LT5jb250ZW50cykpCi0gICAg Y2FsbDEgKFFwdXNoX3dpbmRvd19idWZmZXJfb250b19wcmV2LCBkZXN0X3dpbmRvdyk7Ci0g IGlmIChsaXZlX21pbmlidWZmZXJfcCAoc3ctPmNvbnRlbnRzKSkKLSAgICBjYWxsMSAoUXB1 c2hfd2luZG93X2J1ZmZlcl9vbnRvX3ByZXYsIHNvdXJjZV93aW5kb3cpOworICBjYWxsMSAo UXJlY29yZF93aW5kb3dfYnVmZmVyLCBkZXN0X3dpbmRvdyk7CisgIGNhbGwxIChRcmVjb3Jk X3dpbmRvd19idWZmZXIsIHNvdXJjZV93aW5kb3cpOworCiAgIGFjYyA9IG1lcmdlX2MgKGR3 LT5wcmV2X2J1ZmZlcnMsIHN3LT5wcmV2X2J1ZmZlcnMsIG1pbmlidWZmZXJfZW50X2dyZWF0 ZXIpOwogCiAgIGlmICghTklMUCAoYWNjKSkKQEAgLTE4MCw4ICsxNzksOSBAQCB6aXBfbWlu aWJ1ZmZlcl9zdGFja3MgKExpc3BfT2JqZWN0IGRlc3Rfd2luZG93LCBMaXNwX09iamVjdCBz b3VyY2Vfd2luZG93KQogICAgICAgRnNldF93aW5kb3dfc3RhcnQgKGRlc3Rfd2luZG93LCBG Y2FyIChGY2RyIChkX2VudCkpLCBRbmlsKTsKICAgICAgIEZzZXRfd2luZG93X3BvaW50IChk ZXN0X3dpbmRvdywgRmNhciAoRmNkciAoRmNkciAoZF9lbnQpKSkpOwogICAgIH0KLSAgZHct PnByZXZfYnVmZmVycyA9IGFjYzsKLSAgc3ctPnByZXZfYnVmZmVycyA9IFFuaWw7CisKKyAg d3NldF9wcmV2X2J1ZmZlcnMgKGR3LCBhY2MpOworICB3c2V0X3ByZXZfYnVmZmVycyAoc3cs IFFuaWwpOwogICBzZXRfd2luZG93X2J1ZmZlciAoc291cmNlX3dpbmRvdywgbnRoX21pbmli dWZmZXIgKDApLCAwLCAwKTsKIH0KIApAQCAtNjg4LDggKzY4OCw4IEBAIHJlYWRfbWluaWJ1 ZiAoTGlzcF9PYmplY3QgbWFwLCBMaXNwX09iamVjdCBpbml0aWFsLCBMaXNwX09iamVjdCBw cm9tcHQsCiAJCQkJICAgIEZmcmFtZV9maXJzdF93aW5kb3cgKE1CX2ZyYW1lKSwgUW5pbCk7 CiAgICAgfQogICBNQl9mcmFtZSA9IFhXSU5ET1cgKFhGUkFNRSAoc2VsZWN0ZWRfZnJhbWUp LT5taW5pYnVmZmVyX3dpbmRvdyktPmZyYW1lOwotICBpZiAobGl2ZV9taW5pYnVmZmVyX3Ag KFhXSU5ET1cgKG1pbmlidWZfd2luZG93KS0+Y29udGVudHMpKQotICAgIGNhbGwxIChRcHVz aF93aW5kb3dfYnVmZmVyX29udG9fcHJldiwgbWluaWJ1Zl93aW5kb3cpOworCisgIGNhbGwx IChRcmVjb3JkX3dpbmRvd19idWZmZXIsIG1pbmlidWZfd2luZG93KTsKIAogICByZWNvcmRf dW53aW5kX3Byb3RlY3Rfdm9pZCAobWluaWJ1ZmZlcl91bndpbmQpOwogICBpZiAocmVhZF9t aW5pYnVmZmVyX3Jlc3RvcmVfd2luZG93cykKZGlmZiAtLWdpdCBhL3NyYy93aW5kb3cuYyBi L3NyYy93aW5kb3cuYwppbmRleCAzNTA5MmRkZDU4Mi4uMzQ5NjhhYzgyNGYgMTAwNjQ0Ci0t LSBhL3NyYy93aW5kb3cuYworKysgYi9zcmMvd2luZG93LmMKQEAgLTM2NDcsOSArMzY0Nywx NyBAQCByZXBsYWNlX2J1ZmZlcl9pbl93aW5kb3dzIChMaXNwX09iamVjdCBidWZmZXIpCiAg ICAgY2FsbDEgKFFyZXBsYWNlX2J1ZmZlcl9pbl93aW5kb3dzLCBidWZmZXIpOwogfQogCi0v KiBJZiBCVUZGRVIgaXMgc2hvd24gaW4gYSB3aW5kb3csIHNhZmVseSByZXBsYWNlIGl0IHdp dGggc29tZSBvdGhlcgotICAgYnVmZmVyIGluIGFsbCB3aW5kb3dzIG9mIGFsbCBmcmFtZXMs IGV2ZW4gdGhvc2Ugb24gb3RoZXIga2V5Ym9hcmRzLiAgKi8KLQorLyoqIElmIEJVRkZFUiBp cyBzaG93biBpbiBhbnkgd2luZG93LCBzYWZlbHkgcmVwbGFjZSBpdCB3aXRoIHNvbWUgb3Ro ZXIKKyAgICBidWZmZXIgaW4gYWxsIHdpbmRvd3Mgb2YgYWxsIGZyYW1lcywgZXZlbiB0aG9z ZSBvbiBvdGhlciBrZXlib2FyZHMuCisgICAgRG8gbm90IGRlbGV0ZSBhbnkgd2luZG93Lgor CisgICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgRmtpbGxfYnVmZmVyIHdoZW4gaXQg ZGV0ZWN0cyB0aGF0CisgICAgcmVwbGFjaW5nIEJVRkZFUiBpbiBzb21lIHdpbmRvdyBzaG93 aW5nIEJVRkZFUiBoYXMgZmFpbGVkLiAgSXQKKyAgICBhc3N1bWVzIHRoYXQg4oCYcmVwbGFj ZS1idWZmZXItaW4td2luZG93c+KAmSBoYXMgcmVtb3ZlZCBhbnkgZW50cnkKKyAgICByZWZl cmVuY2luZyBCVUZGRVIgZnJvbSBhbnkgd2luZG93J3MgbGlzdHMgb2YgcHJldmlvdXMgYW5k IG5leHQKKyAgICBidWZmZXJzIGFuZCB0aGF0IHdpbmRvdydzIOKAmHF1aXQtcmVzdG9yZeKA mSBhbmQgJ3F1aXQtcmVzdG9yZS1wcmV2JworICAgIHBhcmFtZXRlcnMuCisqLwogdm9pZAog cmVwbGFjZV9idWZmZXJfaW5fd2luZG93c19zYWZlbHkgKExpc3BfT2JqZWN0IGJ1ZmZlcikK IHsK --------------Mja3uks8nWVl0PxIy4CZVBQJ--