From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Paul Eggert Newsgroups: gmane.emacs.bugs Subject: bug#64128: regexp parser zero-width assertion bugs Date: Mon, 19 Jun 2023 11:14:18 -0700 Organization: UCLA Computer Science Department Message-ID: References: <4A303177-384E-4FEF-98F2-FAB89A12ACC9@gmail.com> <83pm5tpdy2.fsf@gnu.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------WveC1B3ElZHTe9phDlMuweW0" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="20537"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.11.0 Cc: Eli Zaretskii , monnier@iro.umontreal.ca, 64128@debbugs.gnu.org To: Mattias =?UTF-8?Q?Engdeg=C3=A5rd?= Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Mon Jun 19 20:15:32 2023 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 1qBJPX-00057l-B4 for geb-bug-gnu-emacs@m.gmane-mx.org; Mon, 19 Jun 2023 20:15:31 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qBJPB-0003dG-AR; Mon, 19 Jun 2023 14:15:09 -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 1qBJP8-0003cz-Ix for bug-gnu-emacs@gnu.org; Mon, 19 Jun 2023 14:15:06 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qBJP4-0000gK-QO for bug-gnu-emacs@gnu.org; Mon, 19 Jun 2023 14:15:06 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1qBJP4-0007XU-Bl for bug-gnu-emacs@gnu.org; Mon, 19 Jun 2023 14:15:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Paul Eggert Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 19 Jun 2023 18:15:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 64128 X-GNU-PR-Package: emacs Original-Received: via spool by 64128-submit@debbugs.gnu.org id=B64128.168719847128927 (code B ref 64128); Mon, 19 Jun 2023 18:15:02 +0000 Original-Received: (at 64128) by debbugs.gnu.org; 19 Jun 2023 18:14:31 +0000 Original-Received: from localhost ([127.0.0.1]:57273 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qBJOY-0007WT-18 for submit@debbugs.gnu.org; Mon, 19 Jun 2023 14:14:31 -0400 Original-Received: from mail.cs.ucla.edu ([131.179.128.66]:49046) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qBJOV-0007W9-2J for 64128@debbugs.gnu.org; Mon, 19 Jun 2023 14:14:28 -0400 Original-Received: from localhost (localhost [127.0.0.1]) by mail.cs.ucla.edu (Postfix) with ESMTP id 2BA133C020F7C; Mon, 19 Jun 2023 11:14:21 -0700 (PDT) Original-Received: from mail.cs.ucla.edu ([127.0.0.1]) by localhost (mail.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id 2rOFVUmkQNB3; Mon, 19 Jun 2023 11:14:20 -0700 (PDT) Original-Received: from localhost (localhost [127.0.0.1]) by mail.cs.ucla.edu (Postfix) with ESMTP id EF0A83C09FB42; Mon, 19 Jun 2023 11:14:19 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.10.3 mail.cs.ucla.edu EF0A83C09FB42 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cs.ucla.edu; s=9D0B346E-2AEB-11ED-9476-E14B719DCE6C; t=1687198460; bh=0eTq1s7cRjrYRLFyNKpgeTb4ly1B1AXhxN4MLmXk124=; h=Message-ID:Date:MIME-Version:To:From; b=UIClSScrygDgpNNP/KHv85/hSS3K/OfKH0u/J2OfPm8fR3PShjmjqMBqjT84jaHPY 7Yu65ikzd744286ozg1KqD6/OGeWRvcBvWA3lKEHs1irtL3Gzy+Jmxgm2IogBimYxO b1bq+h99otyK88LCk7hCFmWGiDzcdSXknlRJE4SQpGNnm6NfAjnPpenVBOCuzl1/fN IE427fpNdnGKZWbonvfv+SEGPHYXBqlH1EUmrV6DNpF1E9oHqp+QXmNHdhfPAWE2QB QT45ILIwnMxr7Rt9Xcz644xZTr3eZmTc5DZBT09uv8R4D12QA1RT3Yrdvj1H8EHMOY UWl5JctP0txkQ== X-Virus-Scanned: amavisd-new at mail.cs.ucla.edu Original-Received: from mail.cs.ucla.edu ([127.0.0.1]) by localhost (mail.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id 4X0yfF4RUhVL; Mon, 19 Jun 2023 11:14:19 -0700 (PDT) Original-Received: from [192.168.1.9] (cpe-172-91-119-151.socal.res.rr.com [172.91.119.151]) by mail.cs.ucla.edu (Postfix) with ESMTPSA id AAD533C020F7C; Mon, 19 Jun 2023 11:14:19 -0700 (PDT) Content-Language: en-US In-Reply-To: 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:263705 Archived-At: This is a multi-part message in MIME format. --------------WveC1B3ElZHTe9phDlMuweW0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable On 2023-06-18 13:26, Mattias Engdeg=C3=A5rd wrote: > The manual is a bit hazy about what we actually promise, though. >=20 > As Paul notes, we must be able to document it and that might not be eas= y, so perhaps we shouldn't even try (to change, or document)? Although it's not easy to document, we should do better. I gave that a=20 shot by installing the attached patches into the master branch. These=20 patches try to document current behavior, including warning about the=20 squirrelly behavior you mention. If/when we fix the squirrelly behavior=20 we can change that part of the manual accordingly. The last of the three patches is merely a terminology change: it=20 standardizes on the term "bracket expression" for regexps like [a-z].=20 Formerly the doc and comments were inconsistent about the terminology.=20 It's better to stick with the POSIX term here, to avoid confusion. I=20 myself got confused about this when editing the other two patches. Comments welcome as usual. --------------WveC1B3ElZHTe9phDlMuweW0 Content-Type: text/x-patch; charset=UTF-8; name="0001-Document-regular-expression-special-cases-better.patch" Content-Disposition: attachment; filename*0="0001-Document-regular-expression-special-cases-better.patch" Content-Transfer-Encoding: base64 RnJvbSBkODRiMDI2ZGJlZmNlNjYwNGEzNWE4MzEzMTY0OTI5MWE3NGZkYTY3IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBNb24sIDE5IEp1biAyMDIzIDExOjA5OjAwIC0wNzAwClN1YmplY3Q6IFtQQVRD SCAxLzNdIERvY3VtZW50IHJlZ3VsYXIgZXhwcmVzc2lvbiBzcGVjaWFsIGNhc2VzIGJldHRl cgoKSW4gcGFydGljdWxhciwgZG9jdW1lbnQgdGhhdCBlc2NhcGUgc2VxdWVuY2VzIGxpa2Ug XGIqCmFyZSBjdXJyZW50bHkgYnVnZ3kuCi0tLQogZG9jL2xpc3ByZWYvc2VhcmNoaW5nLnRl eGkgfCAyOCArKysrKysrKysrKysrKysrKystLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwg MTggaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL2xp c3ByZWYvc2VhcmNoaW5nLnRleGkgYi9kb2MvbGlzcHJlZi9zZWFyY2hpbmcudGV4aQppbmRl eCBiOGQ5MDk0YjI4ZC4uMzk3MGZhZWJiZjMgMTAwNjQ0Ci0tLSBhL2RvYy9saXNwcmVmL3Nl YXJjaGluZy50ZXhpCisrKyBiL2RvYy9saXNwcmVmL3NlYXJjaGluZy50ZXhpCkBAIC01MDUs OSArNTA1LDEwIEBAIFJlZ2V4cCBTcGVjaWFsCiBXaGVuIG1hdGNoaW5nIGEgc3RyaW5nIGlu c3RlYWQgb2YgYSBidWZmZXIsIEBzYW1we159IG1hdGNoZXMgYXQgdGhlCiBiZWdpbm5pbmcg b2YgdGhlIHN0cmluZyBvciBhZnRlciBhIG5ld2xpbmUgY2hhcmFjdGVyLgogCi1Gb3IgaGlz dG9yaWNhbCBjb21wYXRpYmlsaXR5IHJlYXNvbnMsIEBzYW1we159IGNhbiBiZSB1c2VkIG9u bHkgYXQgdGhlCi1iZWdpbm5pbmcgb2YgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiwgb3IgYWZ0 ZXIgQHNhbXB7XCh9LCBAc2FtcHtcKD86fQotb3IgQHNhbXB7XHx9LgorRm9yIGhpc3Rvcmlj YWwgY29tcGF0aWJpbGl0eSwgQHNhbXB7Xn0gaXMgc3BlY2lhbCBvbmx5IGF0IHRoZSBiZWdp bm5pbmcKK29mIHRoZSByZWd1bGFyIGV4cHJlc3Npb24sIG9yIGFmdGVyIEBzYW1we1wofSwg QHNhbXB7XCg/On0gb3IgQHNhbXB7XHx9LgorQWx0aG91Z2ggQHNhbXB7Xn0gaXMgYW4gb3Jk aW5hcnkgY2hhcmFjdGVyIGluIG90aGVyIGNvbnRleHRzLAoraXQgaXMgZ29vZCBwcmFjdGlj ZSB0byB1c2UgQHNhbXB7XF59IGV2ZW4gdGhlbi4KIAogQGl0ZW0gQHNhbXB7JH0KIEBjaW5k ZXggQHNhbXB7JH0gaW4gcmVnZXhwCkBAIC01MTksOCArNTIwLDEwIEBAIFJlZ2V4cCBTcGVj aWFsCiBXaGVuIG1hdGNoaW5nIGEgc3RyaW5nIGluc3RlYWQgb2YgYSBidWZmZXIsIEBzYW1w eyR9IG1hdGNoZXMgYXQgdGhlIGVuZAogb2YgdGhlIHN0cmluZyBvciBiZWZvcmUgYSBuZXds aW5lIGNoYXJhY3Rlci4KIAotRm9yIGhpc3RvcmljYWwgY29tcGF0aWJpbGl0eSByZWFzb25z LCBAc2FtcHskfSBjYW4gYmUgdXNlZCBvbmx5IGF0IHRoZQorRm9yIGhpc3RvcmljYWwgY29t cGF0aWJpbGl0eSwgQHNhbXB7JH0gaXMgc3BlY2lhbCBvbmx5IGF0IHRoZQogZW5kIG9mIHRo ZSByZWd1bGFyIGV4cHJlc3Npb24sIG9yIGJlZm9yZSBAc2FtcHtcKX0gb3IgQHNhbXB7XHx9 LgorQWx0aG91Z2ggQHNhbXB7JH0gaXMgYW4gb3JkaW5hcnkgY2hhcmFjdGVyIGluIG90aGVy IGNvbnRleHRzLAoraXQgaXMgZ29vZCBwcmFjdGljZSB0byB1c2UgQHNhbXB7XCR9IGV2ZW4g dGhlbi4KIAogQGl0ZW0gQHNhbXB7XH0KIEBjaW5kZXggQHNhbXB7XH0gaW4gcmVnZXhwCkBA IC01NDAsMTIgKzU0MywxNyBAQCBSZWdleHAgU3BlY2lhbAogQHNhbXB7XH0gaXMgQGNvZGV7 IlxcXFwifS4KIEBlbmQgdGFibGUKIAotQHN0cm9uZ3tQbGVhc2Ugbm90ZTp9IEZvciBoaXN0 b3JpY2FsIGNvbXBhdGliaWxpdHksIHNwZWNpYWwgY2hhcmFjdGVycwotYXJlIHRyZWF0ZWQg YXMgb3JkaW5hcnkgb25lcyBpZiB0aGV5IGFyZSBpbiBjb250ZXh0cyB3aGVyZSB0aGVpciBz cGVjaWFsCi1tZWFuaW5ncyBtYWtlIG5vIHNlbnNlLiAgRm9yIGV4YW1wbGUsIEBzYW1weypm b299IHRyZWF0cyBAc2FtcHsqfSBhcwotb3JkaW5hcnkgc2luY2UgdGhlcmUgaXMgbm8gcHJl Y2VkaW5nIGV4cHJlc3Npb24gb24gd2hpY2ggdGhlIEBzYW1weyp9Ci1jYW4gYWN0LiAgSXQg aXMgcG9vciBwcmFjdGljZSB0byBkZXBlbmQgb24gdGhpcyBiZWhhdmlvcjsgcXVvdGUgdGhl Ci1zcGVjaWFsIGNoYXJhY3RlciBhbnl3YXksIHJlZ2FyZGxlc3Mgb2Ygd2hlcmUgaXQgYXBw ZWFycy4KK0ZvciBoaXN0b3JpY2FsIGNvbXBhdGliaWxpdHksIGEgcmVwZXRpdGlvbiBvcGVy YXRvciBpcyB0cmVhdGVkIGFzIG9yZGluYXJ5CitpZiBpdCBhcHBlYXJzIGF0IHRoZSBzdGFy dCBvZiBhIHJlZ3VsYXIgZXhwcmVzc2lvbgorb3IgYWZ0ZXIgQHNhbXB7Xn0sIEBzYW1we1wo fSwgQHNhbXB7XCg/On0gb3IgQHNhbXB7XHx9LgorRm9yIGV4YW1wbGUsIEBzYW1weypmb299 IGlzIHRyZWF0ZWQgYXMgQHNhbXB7XCpmb299LCBhbmQKK0BzYW1we3R3b1x8XlxAezJcQH19 IGlzIHRyZWF0ZWQgYXMgQHNhbXB7dHdvXHxeQHsyQH19LgorSXQgaXMgcG9vciBwcmFjdGlj ZSB0byBkZXBlbmQgb24gdGhpcyBiZWhhdmlvcjsgdXNlIHByb3BlciBiYWNrc2xhc2gKK2Vz Y2FwaW5nIGFueXdheSwgcmVnYXJkbGVzcyBvZiB3aGVyZSB0aGUgcmVwZXRpdGlvbiBvcGVy YXRvciBhcHBlYXJzLgorQWxzbywgYSByZXBldGl0aW9uIG9wZXJhdG9yIHNob3VsZCBub3Qg aW1tZWRpYXRlbHkgZm9sbG93IGEgYmFja3NsYXNoIGVzY2FwZQordGhhdCBtYXRjaGVzIG9u bHkgZW1wdHkgc3RyaW5ncywgYXMgRW1hY3MgaGFzIGJ1Z3MgaW4gdGhpcyBhcmVhLgorRm9y IGV4YW1wbGUsIGl0IGlzIHVud2lzZSB0byB1c2UgQHNhbXB7XGIqfSwgd2hpY2ggY2FuIGJl IG9taXR0ZWQKK3dpdGhvdXQgY2hhbmdpbmcgdGhlIGRvY3VtZW50ZWQgbWVhbmluZyBvZiB0 aGUgcmVndWxhciBleHByZXNzaW9uLgogCiBBcyBhIEBzYW1we1x9IGlzIG5vdCBzcGVjaWFs IGluc2lkZSBhIGNoYXJhY3RlciBhbHRlcm5hdGl2ZSwgaXQgY2FuCiBuZXZlciByZW1vdmUg dGhlIHNwZWNpYWwgbWVhbmluZyBvZiBAc2FtcHstfSwgQHNhbXB7Xn0gb3IgQHNhbXB7XX0u Ci0tIAoyLjM5LjIKCg== --------------WveC1B3ElZHTe9phDlMuweW0 Content-Type: text/x-patch; charset=UTF-8; name="0002-Document-Emacs-vs-POSIX-REs.patch" Content-Disposition: attachment; filename="0002-Document-Emacs-vs-POSIX-REs.patch" Content-Transfer-Encoding: base64 RnJvbSA1ZGZlM2YyMWQxMmExMDcwNTVmYjQ0N2JlNThiOTRiZTk4YzJmNjI4IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBNb24sIDE5IEp1biAyMDIzIDExOjA5OjAwIC0wNzAwClN1YmplY3Q6IFtQQVRD SCAyLzNdIERvY3VtZW50IEVtYWNzIHZzIFBPU0lYIFJFcwoKKiBkb2MvbGlzcHJlZi9zZWFy Y2hpbmcudGV4aSAoTG9uZ2VzdCBNYXRjaCk6ClJlbmFtZSBmcm9tIFBPU0lYIFJlZ2V4cHMs IGFzIHRoaXMgc2VjdGlvbgppcyBhYm91dCBsb25nZXN0LW1hdGNoIGZ1bmN0aW9ucywgbm90 IGFib3V0IFBPU0lYIHJlZ2V4cHMuCihQT1NJWCBSZWdleHBzKTogTmV3IHNlY3Rpb24uCi0t LQogZG9jL2xpc3ByZWYvc2VhcmNoaW5nLnRleGkgfCAxMDUgKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKystLQogMSBmaWxlIGNoYW5nZWQsIDEwMSBpbnNlcnRpb25zKCsp LCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9saXNwcmVmL3NlYXJjaGluZy50 ZXhpIGIvZG9jL2xpc3ByZWYvc2VhcmNoaW5nLnRleGkKaW5kZXggMzk3MGZhZWJiZjMuLjYw OGFiYWU3NjJjIDEwMDY0NAotLS0gYS9kb2MvbGlzcHJlZi9zZWFyY2hpbmcudGV4aQorKysg Yi9kb2MvbGlzcHJlZi9zZWFyY2hpbmcudGV4aQpAQCAtMTgsMTEgKzE4LDEyIEBAIFNlYXJj aGluZyBhbmQgTWF0Y2hpbmcKICogU2VhcmNoaW5nIGFuZCBDYXNlOjogICAgQ2FzZS1pbmRl cGVuZGVudCBvciBjYXNlLXNpZ25pZmljYW50IHNlYXJjaGluZy4KICogUmVndWxhciBFeHBy ZXNzaW9uczo6ICAgRGVzY3JpYmluZyBjbGFzc2VzIG9mIHN0cmluZ3MuCiAqIFJlZ2V4cCBT ZWFyY2g6OiAgICAgICAgIFNlYXJjaGluZyBmb3IgYSBtYXRjaCBmb3IgYSByZWdleHAuCi0q IFBPU0lYIFJlZ2V4cHM6OiAgICAgICAgIFNlYXJjaGluZyBQT1NJWC1zdHlsZSBmb3IgdGhl IGxvbmdlc3QgbWF0Y2guCisqIExvbmdlc3QgTWF0Y2g6OiAgICAgICAgIFNlYXJjaGluZyBm b3IgdGhlIGxvbmdlc3QgbWF0Y2guCiAqIE1hdGNoIERhdGE6OiAgICAgICAgICAgIEZpbmRp bmcgb3V0IHdoaWNoIHBhcnQgb2YgdGhlIHRleHQgbWF0Y2hlZCwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBhZnRlciBhIHN0cmluZyBvciByZWdleHAgc2VhcmNoLgogKiBTZWFy Y2ggYW5kIFJlcGxhY2U6OiAgICBDb21tYW5kcyB0aGF0IGxvb3AsIHNlYXJjaGluZyBhbmQg cmVwbGFjaW5nLgogKiBTdGFuZGFyZCBSZWdleHBzOjogICAgICBVc2VmdWwgcmVnZXhwcyBm b3IgZmluZGluZyBzZW50ZW5jZXMsIHBhZ2VzLC4uLgorKiBQT1NJWCBSZWdleHBzOjogICAg ICAgICBFbWFjcyByZWdleHBzIHZzIFBPU0lYIHJlZ2V4cHMuCiBAZW5kIG1lbnUKIAogICBU aGUgQHNhbXB7c2tpcC1jaGFyc0Bkb3Rze319IGZ1bmN0aW9ucyBhbHNvIHBlcmZvcm0gYSBr aW5kIG9mIHNlYXJjaGluZy4KQEAgLTIyMDEsOCArMjIwMiw4IEBAIFJlZ2V4cCBTZWFyY2gK IGEgcGFydCBvZiB0aGUgY29kZS4KIEBlbmQgZGVmdmFyCiAKLUBub2RlIFBPU0lYIFJlZ2V4 cHMKLUBzZWN0aW9uIFBPU0lYIFJlZ3VsYXIgRXhwcmVzc2lvbiBTZWFyY2hpbmcKK0Bub2Rl IExvbmdlc3QgTWF0Y2gKK0BzZWN0aW9uIExvbmdlc3QtbWF0Y2ggc2VhcmNoaW5nIGZvciBy ZWd1bGFyIGV4cHJlc3Npb24gbWF0Y2hlcwogCiBAY2luZGV4IGJhY2t0cmFja2luZyBhbmQg UE9TSVggcmVndWxhciBleHByZXNzaW9ucwogICBUaGUgdXN1YWwgcmVndWxhciBleHByZXNz aW9uIGZ1bmN0aW9ucyBkbyBiYWNrdHJhY2tpbmcgd2hlbiBuZWNlc3NhcnkKQEAgLTIyMTcs NyArMjIxOCw5IEBAIFBPU0lYIFJlZ2V4cHMKIG1hdGNoLCBhcyByZXF1aXJlZCBieSBQT1NJ WEAuICBUaGlzIGlzIG11Y2ggc2xvd2VyLCBzbyB1c2UgdGhlc2UKIGZ1bmN0aW9ucyBvbmx5 IHdoZW4geW91IHJlYWxseSBuZWVkIHRoZSBsb25nZXN0IG1hdGNoLgogCi0gIFRoZSBQT1NJ WCBzZWFyY2ggYW5kIG1hdGNoIGZ1bmN0aW9ucyBkbyBub3QgcHJvcGVybHkgc3VwcG9ydCB0 aGUKKyAgRGVzcGl0ZSB0aGVpciBuYW1lcywgdGhlIFBPU0lYIHNlYXJjaCBhbmQgbWF0Y2gg ZnVuY3Rpb25zCit1c2UgRW1hY3MgcmVndWxhciBleHByZXNzaW9ucywgbm90IFBPU0lYIHJl Z3VsYXIgZXhwcmVzc2lvbnMuCitAeHJlZntQT1NJWCBSZWdleHBzfS4gIEFsc28sIHRoZXkg ZG8gbm90IHByb3Blcmx5IHN1cHBvcnQgdGhlCiBub24tZ3JlZWR5IHJlcGV0aXRpb24gb3Bl cmF0b3JzIChAcHhyZWZ7UmVnZXhwIFNwZWNpYWwsIG5vbi1ncmVlZHl9KS4KIFRoaXMgaXMg YmVjYXVzZSBQT1NJWCBiYWNrdHJhY2tpbmcgY29uZmxpY3RzIHdpdGggdGhlIHNlbWFudGlj cyBvZgogbm9uLWdyZWVkeSByZXBldGl0aW9uLgpAQCAtMjk2NSwzICsyOTY4LDk3IEBAIFN0 YW5kYXJkIFJlZ2V4cHMKIEBjb2Rle3NlbnRlbmNlLWVuZC13aXRob3V0LXBlcmlvZH0sIGFu ZAogQGNvZGV7c2VudGVuY2UtZW5kLXdpdGhvdXQtc3BhY2V9LgogQGVuZCBkZWZ1bgorCitA bm9kZSBQT1NJWCBSZWdleHBzCitAc2VjdGlvbiBFbWFjcyB2ZXJzdXMgUE9TSVggUmVndWxh ciBFeHByZXNzaW9ucworQGNpbmRleCBQT1NJWCByZWd1bGFyIGV4cHJlc3Npb25zCisKK1Jl Z3VsYXIgZXhwcmVzc2lvbiBzeW50YXggdmFyaWVzIHNpZ25maWNhbnRseSBhbW9uZyBjb21w dXRlciBwcm9ncmFtcy4KK1doZW4gd3JpdGluZyBFbGlzcCBjb2RlIHRoYXQgZ2VuZXJhdGVz IHJlZ3VsYXIgZXhwcmVzc2lvbnMgZm9yIHVzZSBieSBvdGhlcgorcHJvZ3JhbXMsIGl0IGlz IGhlbHBmdWwgdG8ga25vdyBob3cgc3ludGF4IHZhcmlhbnRzIGRpZmZlci4KK1RvIGdpdmUg YSBmZWVsIGZvciB0aGUgdmFyaWF0aW9uLCB0aGlzIHNlY3Rpb24gZGlzY3Vzc2VzIGhvdwor RW1hY3MgcmVndWxhciBleHByZXNzaW9ucyBkaWZmZXIgZnJvbSB0d28gc3ludGF4IHZhcmlh bnRzIHN0YW5kYXJkZWQgYnkgUE9TSVg6CitiYXNpYyByZWd1bGFyIGV4cHJlc3Npb25zIChC UkVzKSBhbmQgZXh0ZW5kZWQgcmVndWxhciBleHByZXNzaW9ucyAoRVJFcykuCitQbGFpbiBA Y29tbWFuZHtncmVwfSB1c2VzIEJSRXMsIGFuZCBAc2FtcHtncmVwIC1FfSB1c2VzIEVSRXMu CisKK0VtYWNzIHJlZ3VsYXIgZXhwcmVzc2lvbnMgaGF2ZSBhIHN5bnRheCBjbG9zZXIgdG8g RVJFcyB0aGFuIHRvIEJSRXMsCit3aXRoIHNvbWUgZXh0ZW5zaW9ucy4gIEhlcmUgaXMgYSBz dW1tYXJ5IG9mIGhvdyBQT1NJWCBCUkVzIGFuZCBFUkVzCitkaWZmZXIgZnJvbSBFbWFjcyBy ZWd1bGFyIGV4cHJlc3Npb25zLgorCitAaXRlbWl6ZSBAYnVsbGV0CitAaXRlbQorSW4gUE9T SVggQlJFcyBAc2FtcHsrfSBhbmQgQHNhbXB7P30gYXJlIG5vdCBzcGVjaWFsLgorVGhlIG9u bHkgYmFja3NsYXNoIGVzY2FwZSBzZXF1ZW5jZXMgYXJlIEBzYW1we1woQGRvdHN7fVwpfSwK K0BzYW1we1xAe0Bkb3Rze31cQH19LCBAc2FtcHtcMX0gdGhyb3VnaCBAc2FtcHtcOX0sIGFs b25nIHdpdGggdGhlCitlc2NhcGVkIHNwZWNpYWwgY2hhcmFjdGVycyBAc2FtcHtcJH0sIEBz YW1we1wqfSwgQHNhbXB7XC59LCBAc2FtcHtcW30sCitAc2FtcHtcXH0sIGFuZCBAc2FtcHtc Xn0uCitUaGVyZWZvcmUgQHNhbXB7XCg/On0gYWN0cyBsaWtlIEBzYW1we1woWz9dOn0uCitQ T1NJWCBkb2VzIG5vdCBkZWZpbmUgaG93IG90aGVyIEJSRSBlc2NhcGVzIGJlaGF2ZTsKK2Zv ciBleGFtcGxlLCBHTlUgQGNvbW1hbmR7Z3JlcH0gdHJlYXRzIEBzYW1we1x8fSBsaWtlIEVt YWNzIGRvZXMsCitidXQgZG9lcyBub3Qgc3VwcG9ydCBhbGwgdGhlIEVtYWNzIGVzY2FwZXMu CisKK0BpdGVtCitJbiBQT1NJWCBFUkVzIEBzYW1we0B7fSwgQHNhbXB7KH0gYW5kIEBzYW1w e3x9IGFyZSBzcGVjaWFsLAorYW5kIEBzYW1weyl9IGlzIHNwZWNpYWwgd2hlbiBtYXRjaGVk IHdpdGggYSBwcmVjZWRpbmcgQHNhbXB7KH0uCitUaGVzZSBzcGVjaWFsIGNoYXJhY3RlcnMg ZG8gbm90IHVzZSBwcmVjZWRpbmcgYmFja3NsYXNoZXM7CitAc2FtcHsoP30gcHJvZHVjZXMg dW5kZWZpbmVkIHJlc3VsdHMuCitUaGUgb25seSBiYWNrc2xhc2ggZXNjYXBlIHNlcXVlbmNl cyBhcmUgdGhlIGVzY2FwZWQgc3BlY2lhbCBjaGFyYWN0ZXJzCitAc2FtcHtcJH0sIEBzYW1w e1wofSwgQHNhbXB7XCl9LCBAc2FtcHtcKn0sIEBzYW1we1wrfSwgQHNhbXB7XC59LAorQHNh bXB7XD99LCBAc2FtcHtcW30sIEBzYW1we1xcfSwgQHNhbXB7XF59LCBAc2FtcHtcQHt9IGFu ZCBAc2FtcHtcfH0uCitQT1NJWCBkb2VzIG5vdCBkZWZpbmUgaG93IG90aGVyIEVSRSBlc2Nh cGVzIGJlaGF2ZTsKK2ZvciBleGFtcGxlLCBHTlUgQHNhbXB7Z3JlcCAtRX0gdHJlYXRzIEBz YW1we1wxfSBsaWtlIEVtYWNzIGRvZXMsCitidXQgZG9lcyBub3Qgc3VwcG9ydCBhbGwgdGhl IEVtYWNzIGVzY2FwZXMuCisKK0BpdGVtCitJbiBQT1NJWCBCUkVzLCBpdCBpcyBhbiBpbXBs ZW1lbnRhdGlvbiBvcHRpb24gd2hldGhlciBAc2FtcHtefSBpcyBzcGVjaWFsCithZnRlciBA c2FtcHtcKH07IEdOVSBAY29tbWFuZHtncmVwfSB0cmVhdHMgaXQgbGlrZSBFbWFjcyBkb2Vz LgorSW4gUE9TSVggRVJFcywgQHNhbXB7Xn0gaXMgYWx3YXlzIHNwZWNpYWwgb3V0c2lkZSBv ZiBjaGFyYWN0ZXIgYWx0ZXJuYXRpdmVzLAord2hpY2ggbWVhbnMgdGhlIEVSRSBAc2FtcHt4 Xn0gbmV2ZXIgbWF0Y2hlcy4KK0luIEVtYWNzIHJlZ3VsYXIgZXhwcmVzc2lvbnMsIEBzYW1w e159IGlzIHNwZWNpYWwgb25seSBhdCB0aGUKK2JlZ2lubmluZyBvZiB0aGUgcmVndWxhciBl eHByZXNzaW9uLCBvciBhZnRlciBAc2FtcHtcKH0sIEBzYW1we1woPzp9CitvciBAc2FtcHtc fH0uCisKK0BpdGVtCitJbiBQT1NJWCBCUkVzLCBpdCBpcyBhbiBpbXBsZW1lbnRhdGlvbiBv cHRpb24gd2hldGhlciBAc2FtcHskfSBpcyBzcGVjaWFsCitiZWZvcmUgQHNhbXB7XCl9OyBH TlUgQGNvbW1hbmR7Z3JlcH0gdHJlYXRzIGl0IGxpa2UgRW1hY3MgZG9lcy4KK0luIFBPU0lY IEVSRXMsIEBzYW1weyR9IGlzIGFsd2F5cyBzcGVjaWFsIG91dHNpZGUgb2YgY2hhcmFjdGVy IGFsdGVybmF0aXZlcywKK3doaWNoIG1lYW5zIHRoZSBFUkUgQHNhbXB7JHh9IG5ldmVyIG1h dGNoZXMuCitJbiBFbWFjcyByZWd1bGFyIGV4cHJlc3Npb25zLCBAc2FtcHskfSBpcyBzcGVj aWFsIG9ubHkgYXQgdGhlCitlbmQgb2YgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiwgb3IgYmVm b3JlIEBzYW1we1wpfSBvciBAc2FtcHtcfH0uCisKK0BpdGVtCitJbiBQT1NJWCBCUkVzIGFu ZCBFUkVzLCB1bmRlZmluZWQgcmVzdWx0cyBhcmUgcHJvZHVjZWQgYnkgcmVwZXRpdGlvbgor b3BlcmF0b3JzIGF0IHRoZSBzdGFydCBvZiBhIHJlZ3VsYXIgZXhwcmVzc2lvbiBvciBzdWJl eHByZXNzaW9uCisocG9zc2libHkgcHJlY2VkZWQgYnkgQHNhbXB7Xn0pLCBleGNlcHQgdGhh dCB0aGUgcmVwZXRpdGlvbiBvcGVyYXRvcgorQHNhbXB7Kn0gaGFzIHRoZSBzYW1lIGJlaGF2 aW9yIGluIEJSRXMgYXMgaW4gRW1hY3MuCitJbiBFbWFjcywgdGhlc2Ugb3BlcmF0b3JzIGFy ZSB0cmVhdGVkIGFzIG9yZGluYXJ5LgorCitAaXRlbQorSW4gQlJFcyBhbmQgRVJFcywgdW5k ZWZpbmVkIHJlc3VsdHMgYXJlIHByb2R1Y2VkIGJ5IHR3byByZXBldGl0aW9uCitvcGVyYXRv cnMgaW4gc2VxdWVuY2UuICBJbiBFbWFjcywgdGhlc2UgaGF2ZSB3ZWxsLWRlZmluZWQgYmVo YXZpb3IsCitlLmcuLCBAc2FtcHthKip9IGlzIGVxdWl2YWxlbnQgdG8gQHNhbXB7YSp9Lgor CitAaXRlbQorSW4gQlJFcyBhbmQgRVJFcywgdW5kZWZpbmVkIHJlc3VsdHMgYXJlIHByb2R1 Y2VkIGJ5IGVtcHR5IHJlZ3VsYXIKK2V4cHJlc3Npb25zIG9yIHN1YmV4cHJlc3Npb25zLiAg SW4gRW1hY3MgdGhlc2UgaGF2ZSB3ZWxsLWRlZmluZWQKK2JlaGF2aW9yLCBlLmcuLCBAc2Ft cHtcKFwpKn0gbWF0Y2hlcyB0aGUgZW1wdHkgc3RyaW5nLAorCitAaXRlbQorSW4gQlJFcyBh bmQgRVJFcywgdW5kZWZpbmVkIHJlc3VsdHMgYXJlIHByb2R1Y2VkIGZvciB0aGUgbmFtZWQK K2NoYXJhY3RlciBjbGFzc2VzIEBzYW1we1s6YXNjaWk6XX0sIEBzYW1we1s6bXVsdGlieXRl Ol19LAorQHNhbXB7Wzpub25hc2NpaTpdfSwgQHNhbXB7Wzp1bmlieXRlOl19LCBhbmQgQHNh bXB7Wzp3b3JkOl19LgorCitAaXRlbQorQlJFIGFuZCBFUkUgYWx0ZXJuYXRpdmVzIGNhbiBj b250YWluIGNvbGxhdGluZyBzeW1ib2xzIGFuZCBlcXVpdmFsZW5jZQorY2xhc3MgZXhwcmVz c2lvbnMsIGUuZy4sIEBzYW1we1tbLmNoLl1kWz1hPV1dfS4KK0VtYWNzIHJlZ3VsYXIgZXhw cmVzc2lvbnMgZG8gbm90IHN1cHBvcnQgdGhpcy4KKworQGl0ZW0KK0JSRXMsIEVSRXMsIGFu ZCB0aGUgc3RyaW5ncyB0aGV5IG1hdGNoIGNhbm5vdCBjb250YWluIGVuY29kaW5nIGVycm9y cworb3IgTlVMIGJ5dGVzLiAgSW4gRW1hY3MgdGhlc2UgY29uc3RydWN0cyBzaW1wbHkgbWF0 Y2ggdGhlbXNlbHZlcy4KKworQGl0ZW0KK0JSRSBhbmQgRVJFIHNlYXJjaGluZyBhbHdheXMg ZmluZHMgdGhlIGxvbmdlc3QgbWF0Y2guCitFbWFjcyBzZWFyY2hpbmcgYnkgZGVmYXVsdCBk b2VzIG5vdCBuZWNlc3NhcmlseSBkbyBzby4KK0B4cmVme0xvbmdlc3QgTWF0Y2h9LgorQGVu ZCBpdGVtaXplCi0tIAoyLjM5LjIKCg== --------------WveC1B3ElZHTe9phDlMuweW0 Content-Type: text/x-patch; charset=UTF-8; name="0003-Call-them-bracket-expressions-more-consistently.patch" Content-Disposition: attachment; filename*0="0003-Call-them-bracket-expressions-more-consistently.patch" Content-Transfer-Encoding: base64 RnJvbSA5NGQ4ZWVlZmY0YWU5OWNiMTI3MThkYWI3Y2Y3ZmRjNTJkZTc3YjZlIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBNb24sIDE5IEp1biAyMDIzIDExOjA5OjAwIC0wNzAwClN1YmplY3Q6IFtQQVRD SCAzLzNdID0/VVRGLTg/cT9DYWxsPTIwdGhlbT0yMD1FMj04MD05Q2JyYWNrZXQ9MjBleHBy ZXNzaW9uPz0KID0/VVRGLTg/cT9zPUUyPTgwPTlEPTIwbW9yZT0yMGNvbnNpc3RlbnRseT89 Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1V VEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CgpFbWFjcyBjb21tZW50cyBh bmQgZG9jIHdlcmUgaW5jb25zaXN0ZW50IGFib3V0IHRoZSBuYW1lIHVzZWQgZm9yCnJlZ2V4 cHMgbGlrZSBbYS16XS4gIFNvbWV0aW1lcyBpdCBjYWxsZWQgdGhlbSDigJxjaGFyYWN0ZXIK YWx0ZXJuYXRpdmVz4oCdLCBzb21ldGltZXMg4oCcY2hhcmFjdGVyIHNldHPigJ0sIHNvbWV0 aW1lcyDigJxicmFja2V0CmV4cHJlc3Npb25z4oCdLiAgUHJlZmVyIOKAnGJyYWNrZXQgZXhw cmVzc2lvbnPigJ0gYXMgaXQgaXMgbGVzcyBjb25mdXNpbmc6ClBPU0lYIGFuZCBtb3N0IG90 aGVyIHByb2dyYW1z4oCZIGRvYyB1c2VzIOKAnGJyYWNrZXQgZXhwcmVzc2lvbnPigJ0sCuKA nGFsdGVybmF0aXZl4oCdIGlzIGFsc28gdXNlZCBpbiB0aGUgRW1hY3MgZG9jdW1lbnRhdGlv biB0byB0YWxrIGFib3V0Ci4uLlx8Li4uIGluIHJlZ2V4cHMsIGFuZCDigJxjaGFyYWN0ZXIg c2V04oCdIG5vcm1hbGx5IGhhcyBhIGRpZmZlcmVudAptZWFuaW5nIGluIEVtYWNzLgotLS0K IGRvYy9lbWFjcy9zZWFyY2gudGV4aSAgICAgICAgfCAxMiArKystLS0KIGRvYy9saXNwcmVm L3NlYXJjaGluZy50ZXhpICAgfCA3NCArKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0t LS0tLS0KIGxpc3AvZW1hY3MtbGlzcC9saXNwLW1vZGUuZWwgfCAgMiArLQogbGlzcC90ZXh0 bW9kZXMvcGljdHVyZS5lbCAgICB8ICAyICstCiA0IGZpbGVzIGNoYW5nZWQsIDQ1IGluc2Vy dGlvbnMoKyksIDQ1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9lbWFjcy9zZWFy Y2gudGV4aSBiL2RvYy9lbWFjcy9zZWFyY2gudGV4aQppbmRleCA0NTM3OGQ5NWY2NS4uMmE4 MTYyMjEyMzUgMTAwNjQ0Ci0tLSBhL2RvYy9lbWFjcy9zZWFyY2gudGV4aQorKysgYi9kb2Mv ZW1hY3Mvc2VhcmNoLnRleGkKQEAgLTk1MCw4ICs5NTAsOCBAQCBSZWdleHBzCiBAZGZue3Nw ZWNpYWwgY29uc3RydWN0c30gYW5kIHRoZSByZXN0IGFyZSBAZGZue29yZGluYXJ5fS4gIEFu IG9yZGluYXJ5CiBjaGFyYWN0ZXIgbWF0Y2hlcyB0aGF0IHNhbWUgY2hhcmFjdGVyIGFuZCBu b3RoaW5nIGVsc2UuICBUaGUgc3BlY2lhbAogY2hhcmFjdGVycyBhcmUgQHNhbXB7JF4uKis/ W1x9LiAgVGhlIGNoYXJhY3RlciBAc2FtcHtdfSBpcyBzcGVjaWFsIGlmCi1pdCBlbmRzIGEg Y2hhcmFjdGVyIGFsdGVybmF0aXZlIChzZWUgYmVsb3cpLiAgVGhlIGNoYXJhY3RlciBAc2Ft cHstfQotaXMgc3BlY2lhbCBpbnNpZGUgYSBjaGFyYWN0ZXIgYWx0ZXJuYXRpdmUuICBBbnkg b3RoZXIgY2hhcmFjdGVyCitpdCBlbmRzIGEgYnJhY2tldCBleHByZXNzaW9uIChzZWUgYmVs b3cpLiAgVGhlIGNoYXJhY3RlciBAc2FtcHstfQoraXMgc3BlY2lhbCBpbnNpZGUgYSBicmFj a2V0IGV4cHJlc3Npb24uICBBbnkgb3RoZXIgY2hhcmFjdGVyCiBhcHBlYXJpbmcgaW4gYSBy ZWd1bGFyIGV4cHJlc3Npb24gaXMgb3JkaW5hcnksIHVubGVzcyBhIEBzYW1we1x9CiBwcmVj ZWRlcyBpdC4gIChXaGVuIHlvdSB1c2UgcmVndWxhciBleHByZXNzaW9ucyBpbiBhIExpc3Ag cHJvZ3JhbSwKIGVhY2ggQHNhbXB7XH0gbXVzdCBiZSBkb3VibGVkLCBzZWUgdGhlIGV4YW1w bGUgbmVhciB0aGUgZW5kIG9mIHRoaXMKQEAgLTEwMzMsMTEgKzEwMzMsMTEgQEAgUmVnZXhw cwogYSBuZXdsaW5lLCBpdCBtYXRjaGVzIHRoZSB3aG9sZSBzdHJpbmcuICBTaW5jZSBpdCBA ZW1waHtjYW59IG1hdGNoCiBzdGFydGluZyBhdCB0aGUgZmlyc3QgQHNhbXB7YX0sIGl0IGRv ZXMuCiAKK0BjaW5kZXggYnJhY2tldCBleHByZXNzaW9uCiBAY2luZGV4IHNldCBvZiBhbHRl cm5hdGl2ZSBjaGFyYWN0ZXJzLCBpbiByZWd1bGFyIGV4cHJlc3Npb25zCiBAY2luZGV4IGNo YXJhY3RlciBzZXQsIGluIHJlZ3VsYXIgZXhwcmVzc2lvbnMKIEBpdGVtIEBrYmR7WyBAZG90 c3t9IF19Ci1pcyBhIEBkZm57c2V0IG9mIGFsdGVybmF0aXZlIGNoYXJhY3RlcnN9LCBvciBh IEBkZm57Y2hhcmFjdGVyIHNldH0sCi1iZWdpbm5pbmcgd2l0aCBAc2FtcHtbfSBhbmQgdGVy bWluYXRlZCBieSBAc2FtcHtdfS4KK2lzIGEgQGRmbnticmFja2V0IGV4cHJlc3Npb259LCB3 aGljaCBtYXRjaGVzIG9uZSBvZiBhIHNldCBvZiBjaGFyYWN0ZXJzLgogCiBJbiB0aGUgc2lt cGxlc3QgY2FzZSwgdGhlIGNoYXJhY3RlcnMgYmV0d2VlbiB0aGUgdHdvIGJyYWNrZXRzIGFy ZSB3aGF0CiB0aGlzIHNldCBjYW4gbWF0Y2guICBUaHVzLCBAc2FtcHtbYWRdfSBtYXRjaGVz IGVpdGhlciBvbmUgQHNhbXB7YX0gb3IKQEAgLTEwNTcsNyArMTA1Nyw3IEBAIFJlZ2V4cHMK IEBjaW5kZXggY2hhcmFjdGVyIGNsYXNzZXMsIGluIHJlZ3VsYXIgZXhwcmVzc2lvbnMKIFlv dSBjYW4gYWxzbyBpbmNsdWRlIGNlcnRhaW4gc3BlY2lhbCBAZGZue2NoYXJhY3RlciBjbGFz c2VzfSBpbiBhCiBjaGFyYWN0ZXIgc2V0LiAgQSBAc2FtcHtbOn0gYW5kIGJhbGFuY2luZyBA c2FtcHs6XX0gZW5jbG9zZSBhCi1jaGFyYWN0ZXIgY2xhc3MgaW5zaWRlIGEgc2V0IG9mIGFs dGVybmF0aXZlIGNoYXJhY3RlcnMuICBGb3IgaW5zdGFuY2UsCitjaGFyYWN0ZXIgY2xhc3Mg aW5zaWRlIGEgYnJhY2tldCBleHByZXNzaW9uLiAgRm9yIGluc3RhbmNlLAogQHNhbXB7W1s6 YWxudW06XV19IG1hdGNoZXMgYW55IGxldHRlciBvciBkaWdpdC4gIEB4cmVme0NoYXIgQ2xh c3NlcywsLAogZWxpc3AsIFRoZSBFbWFjcyBMaXNwIFJlZmVyZW5jZSBNYW51YWx9LCBmb3Ig YSBsaXN0IG9mIGNoYXJhY3RlcgogY2xhc3Nlcy4KQEAgLTExMjUsNyArMTEyNSw3IEBAIFJl Z2V4cHMKIHRvIGRlcGVuZCBvbiB0aGlzIGJlaGF2aW9yOyBpdCBpcyBiZXR0ZXIgdG8gcXVv dGUgdGhlIHNwZWNpYWwgY2hhcmFjdGVyIGFueXdheSwKIHJlZ2FyZGxlc3Mgb2Ygd2hlcmUg aXQgYXBwZWFycy4KIAotQXMgYSBAc2FtcHtcfSBpcyBub3Qgc3BlY2lhbCBpbnNpZGUgYSBz ZXQgb2YgYWx0ZXJuYXRpdmUgY2hhcmFjdGVycywgaXQgY2FuCitBcyBhIEBzYW1we1x9IGlz IG5vdCBzcGVjaWFsIGluc2lkZSBhIGJyYWNrZXQgZXhwcmVzc2lvbiwgaXQgY2FuCiBuZXZl ciByZW1vdmUgdGhlIHNwZWNpYWwgbWVhbmluZyBvZiBAc2FtcHstfSwgQHNhbXB7Xn0gb3Ig QHNhbXB7XX0uCiBZb3Ugc2hvdWxkIG5vdCBxdW90ZSB0aGVzZSBjaGFyYWN0ZXJzIHdoZW4g dGhleSBoYXZlIG5vIHNwZWNpYWwKIG1lYW5pbmcuICBUaGlzIHdvdWxkIG5vdCBjbGFyaWZ5 IGFueXRoaW5nLCBzaW5jZSBiYWNrc2xhc2hlcwpkaWZmIC0tZ2l0IGEvZG9jL2xpc3ByZWYv c2VhcmNoaW5nLnRleGkgYi9kb2MvbGlzcHJlZi9zZWFyY2hpbmcudGV4aQppbmRleCA2MDhh YmFlNzYyYy4uMjgyMzBjZWE2NDMgMTAwNjQ0Ci0tLSBhL2RvYy9saXNwcmVmL3NlYXJjaGlu Zy50ZXhpCisrKyBiL2RvYy9saXNwcmVmL3NlYXJjaGluZy50ZXhpCkBAIC0yNzgsMTAgKzI3 OCwxMCBAQCBTeW50YXggb2YgUmVnZXhwcwogYW5kIG5vdGhpbmcgZWxzZS4gIFRoZSBzcGVj aWFsIGNoYXJhY3RlcnMgYXJlIEBzYW1wey59LCBAc2FtcHsqfSwKIEBzYW1weyt9LCBAc2Ft cHs/fSwgQHNhbXB7W30sIEBzYW1we159LCBAc2FtcHskfSwgYW5kIEBzYW1we1x9OyBubyBu ZXcKIHNwZWNpYWwgY2hhcmFjdGVycyB3aWxsIGJlIGRlZmluZWQgaW4gdGhlIGZ1dHVyZS4g IFRoZSBjaGFyYWN0ZXIKLUBzYW1we119IGlzIHNwZWNpYWwgaWYgaXQgZW5kcyBhIGNoYXJh Y3RlciBhbHRlcm5hdGl2ZSAoc2VlIGxhdGVyKS4KLVRoZSBjaGFyYWN0ZXIgQHNhbXB7LX0g aXMgc3BlY2lhbCBpbnNpZGUgYSBjaGFyYWN0ZXIgYWx0ZXJuYXRpdmUuICBBCitAc2FtcHtd fSBpcyBzcGVjaWFsIGlmIGl0IGVuZHMgYSBicmFja2V0IGV4cHJlc3Npb24gKHNlZSBsYXRl cikuCitUaGUgY2hhcmFjdGVyIEBzYW1wey19IGlzIHNwZWNpYWwgaW5zaWRlIGEgYnJhY2tl dCBleHByZXNzaW9uLiAgQQogQHNhbXB7Wzp9IGFuZCBiYWxhbmNpbmcgQHNhbXB7Ol19IGVu Y2xvc2UgYSBjaGFyYWN0ZXIgY2xhc3MgaW5zaWRlIGEKLWNoYXJhY3RlciBhbHRlcm5hdGl2 ZS4gIEFueSBvdGhlciBjaGFyYWN0ZXIgYXBwZWFyaW5nIGluIGEgcmVndWxhcgorYnJhY2tl dCBleHByZXNzaW9uLiAgQW55IG90aGVyIGNoYXJhY3RlciBhcHBlYXJpbmcgaW4gYSByZWd1 bGFyCiBleHByZXNzaW9uIGlzIG9yZGluYXJ5LCB1bmxlc3MgYSBAc2FtcHtcfSBwcmVjZWRl cyBpdC4KIAogICBGb3IgZXhhbXBsZSwgQHNhbXB7Zn0gaXMgbm90IGEgc3BlY2lhbCBjaGFy YWN0ZXIsIHNvIGl0IGlzIG9yZGluYXJ5LCBhbmQKQEAgLTM3NCwxOSArMzc0LDE5IEBAIFJl Z2V4cCBTcGVjaWFsCiBwZXJtaXRzIHRoZSB3aG9sZSBleHByZXNzaW9uIHRvIG1hdGNoIGlz IEBzYW1we2R9LikKIAogQGl0ZW0gQHNhbXB7WyBAZG90c3t9IF19Ci1AY2luZGV4IGNoYXJh Y3RlciBhbHRlcm5hdGl2ZSAoaW4gcmVnZXhwKQorQGNpbmRleCBicmFja2V0IGV4cHJlc3Np b24gKGluIHJlZ2V4cCkKIEBjaW5kZXggQHNhbXB7W30gaW4gcmVnZXhwCiBAY2luZGV4IEBz YW1we119IGluIHJlZ2V4cAotaXMgYSBAZGZue2NoYXJhY3RlciBhbHRlcm5hdGl2ZX0sIHdo aWNoIGJlZ2lucyB3aXRoIEBzYW1we1t9IGFuZCBpcworaXMgYSBAZGZue2JyYWNrZXQgZXhw cmVzc2lvbn0sIHdoaWNoIGJlZ2lucyB3aXRoIEBzYW1we1t9IGFuZCBpcwogdGVybWluYXRl ZCBieSBAc2FtcHtdfS4gIEluIHRoZSBzaW1wbGVzdCBjYXNlLCB0aGUgY2hhcmFjdGVycyBi ZXR3ZWVuCi10aGUgdHdvIGJyYWNrZXRzIGFyZSB3aGF0IHRoaXMgY2hhcmFjdGVyIGFsdGVy bmF0aXZlIGNhbiBtYXRjaC4KK3RoZSB0d28gYnJhY2tldHMgYXJlIHdoYXQgdGhpcyBicmFj a2V0IGV4cHJlc3Npb24gY2FuIG1hdGNoLgogCiBUaHVzLCBAc2FtcHtbYWRdfSBtYXRjaGVz IGVpdGhlciBvbmUgQHNhbXB7YX0gb3Igb25lIEBzYW1we2R9LCBhbmQKIEBzYW1we1thZF0q fSBtYXRjaGVzIGFueSBzdHJpbmcgY29tcG9zZWQgb2YganVzdCBAc2FtcHthfXMgYW5kIEBz YW1we2R9cwogKGluY2x1ZGluZyB0aGUgZW1wdHkgc3RyaW5nKS4gIEl0IGZvbGxvd3MgdGhh dCBAc2FtcHtjW2FkXSpyfQogbWF0Y2hlcyBAc2FtcHtjcn0sIEBzYW1we2Nhcn0sIEBzYW1w e2Nkcn0sIEBzYW1we2NhZGRhYXJ9LCBldGMuCiAKLVlvdSBjYW4gYWxzbyBpbmNsdWRlIGNo YXJhY3RlciByYW5nZXMgaW4gYSBjaGFyYWN0ZXIgYWx0ZXJuYXRpdmUsIGJ5CitZb3UgY2Fu IGFsc28gaW5jbHVkZSBjaGFyYWN0ZXIgcmFuZ2VzIGluIGEgYnJhY2tldCBleHByZXNzaW9u LCBieQogd3JpdGluZyB0aGUgc3RhcnRpbmcgYW5kIGVuZGluZyBjaGFyYWN0ZXJzIHdpdGgg YSBAc2FtcHstfSBiZXR3ZWVuIHRoZW0uCiBUaHVzLCBAc2FtcHtbYS16XX0gbWF0Y2hlcyBh bnkgbG93ZXItY2FzZSBAYWNyb255bXtBU0NJSX0gbGV0dGVyLgogUmFuZ2VzIG1heSBiZSBp bnRlcm1peGVkIGZyZWVseSB3aXRoIGluZGl2aWR1YWwgY2hhcmFjdGVycywgYXMgaW4KQEAg LTM5NSw3ICszOTUsNyBAQCBSZWdleHAgU3BlY2lhbAogcmFuZ2Ugc2hvdWxkIG5vdCBiZSB0 aGUgc3RhcnRpbmcgcG9pbnQgb2YgYW5vdGhlciBvbmU7IGZvciBleGFtcGxlLAogQHNhbXB7 W2EtbS16XX0gc2hvdWxkIGJlIGF2b2lkZWQuCiAKLUEgY2hhcmFjdGVyIGFsdGVybmF0aXZl IGNhbiBhbHNvIHNwZWNpZnkgbmFtZWQgY2hhcmFjdGVyIGNsYXNzZXMKK0EgYnJhY2tldCBl eHByZXNzaW9uIGNhbiBhbHNvIHNwZWNpZnkgbmFtZWQgY2hhcmFjdGVyIGNsYXNzZXMKIChA cHhyZWZ7Q2hhciBDbGFzc2VzfSkuICBGb3IgZXhhbXBsZSwgQHNhbXB7W1s6YXNjaWk6XV19 IG1hdGNoZXMgYW55CiBAYWNyb255bXtBU0NJSX0gY2hhcmFjdGVyLiAgVXNpbmcgYSBjaGFy YWN0ZXIgY2xhc3MgaXMgZXF1aXZhbGVudCB0bwogbWVudGlvbmluZyBlYWNoIG9mIHRoZSBj aGFyYWN0ZXJzIGluIHRoYXQgY2xhc3M7IGJ1dCB0aGUgbGF0dGVyIGlzIG5vdApAQCAtNDA0 LDkgKzQwNCw5IEBAIFJlZ2V4cCBTcGVjaWFsCiBsb3dlciBvciB1cHBlciBib3VuZCBvZiBh IHJhbmdlLgogCiBUaGUgdXN1YWwgcmVnZXhwIHNwZWNpYWwgY2hhcmFjdGVycyBhcmUgbm90 IHNwZWNpYWwgaW5zaWRlIGEKLWNoYXJhY3RlciBhbHRlcm5hdGl2ZS4gIEEgY29tcGxldGVs eSBkaWZmZXJlbnQgc2V0IG9mIGNoYXJhY3RlcnMgaXMKK2JyYWNrZXQgZXhwcmVzc2lvbi4g IEEgY29tcGxldGVseSBkaWZmZXJlbnQgc2V0IG9mIGNoYXJhY3RlcnMgaXMKIHNwZWNpYWw6 IEBzYW1we119LCBAc2FtcHstfSBhbmQgQHNhbXB7Xn0uCi1UbyBpbmNsdWRlIEBzYW1we119 IGluIGEgY2hhcmFjdGVyIGFsdGVybmF0aXZlLCBwdXQgaXQgYXQgdGhlCitUbyBpbmNsdWRl IEBzYW1we119IGluIGEgYnJhY2tldCBleHByZXNzaW9uLCBwdXQgaXQgYXQgdGhlCiBiZWdp bm5pbmcuICBUbyBpbmNsdWRlIEBzYW1we159LCBwdXQgaXQgYW55d2hlcmUgYnV0IGF0IHRo ZSBiZWdpbm5pbmcuCiBUbyBpbmNsdWRlIEBzYW1wey19LCBwdXQgaXQgYXQgdGhlIGVuZC4g IFRodXMsIEBzYW1we1tdXi1dfSBtYXRjaGVzCiBhbGwgdGhyZWUgb2YgdGhlc2Ugc3BlY2lh bCBjaGFyYWN0ZXJzLiAgWW91IGNhbm5vdCB1c2UgQHNhbXB7XH0gdG8KQEAgLTQ0NCw3ICs0 NDQsNyBAQCBSZWdleHAgU3BlY2lhbAogZmVhdHVyZSBpcyBpbnRlbmRlZCBmb3Igc2VhcmNo aW5nIHRleHQgaW4gdW5pYnl0ZSBidWZmZXJzIGFuZCBzdHJpbmdzLgogQGVuZCBlbnVtZXJh dGUKIAotU29tZSBraW5kcyBvZiBjaGFyYWN0ZXIgYWx0ZXJuYXRpdmVzIGFyZSBub3QgdGhl IGJlc3Qgc3R5bGUgZXZlbgorU29tZSBraW5kcyBvZiBicmFja2V0IGV4cHJlc3Npb25zIGFy ZSBub3QgdGhlIGJlc3Qgc3R5bGUgZXZlbgogdGhvdWdoIHRoZXkgaGF2ZSBhIHdlbGwtZGVm aW5lZCBtZWFuaW5nIGluIEVtYWNzLiAgVGhleSBpbmNsdWRlOgogCiBAZW51bWVyYXRlCkBA IC00NTgsNyArNDU4LDcgQEAgUmVnZXhwIFNwZWNpYWwKIEBzYW1we1vguIEt4Li64Li/LeC5 m119IGlzIGxlc3MgY2xlYXIgdGhhbiBAc2FtcHtbXHUwRTAxLVx1MEUzQVx1MEUzRi1cdTBF NUJdfS4KIAogQGl0ZW0KLUFsdGhvdWdoIGEgY2hhcmFjdGVyIGFsdGVybmF0aXZlIGNhbiBp bmNsdWRlIGR1cGxpY2F0ZXMsIGl0IGlzIGJldHRlcgorQWx0aG91Z2ggYSBicmFja2V0IGV4 cHJlc3Npb24gY2FuIGluY2x1ZGUgZHVwbGljYXRlcywgaXQgaXMgYmV0dGVyCiBzdHlsZSB0 byBhdm9pZCB0aGVtLiAgRm9yIGV4YW1wbGUsIEBzYW1we1tYWWEteVliLXpYXX0gaXMgbGVz cyBjbGVhcgogdGhhbiBAc2FtcHtbWFlhLXpdfS4KIApAQCAtNDY5LDMwICs0NjksMzAgQEAg UmVnZXhwIFNwZWNpYWwKIHRoYW4gQHNhbXB7W2lqXX0sIGFuZCBAc2FtcHtbaS1rXX0gaXMg bGVzcyBjbGVhciB0aGFuIEBzYW1we1tpamtdfS4KIAogQGl0ZW0KLUFsdGhvdWdoIGEgQHNh bXB7LX0gY2FuIGFwcGVhciBhdCB0aGUgYmVnaW5uaW5nIG9mIGEgY2hhcmFjdGVyCi1hbHRl cm5hdGl2ZSBvciBhcyB0aGUgdXBwZXIgYm91bmQgb2YgYSByYW5nZSwgaXQgaXMgYmV0dGVy IHN0eWxlIHRvCi1wdXQgQHNhbXB7LX0gYnkgaXRzZWxmIGF0IHRoZSBlbmQgb2YgYSBjaGFy YWN0ZXIgYWx0ZXJuYXRpdmUuICBGb3IKK0FsdGhvdWdoIGEgQHNhbXB7LX0gY2FuIGFwcGVh ciBhdCB0aGUgYmVnaW5uaW5nIG9mIGEgYnJhY2tldAorZXhwcmVzc2lvbiBvciBhcyB0aGUg dXBwZXIgYm91bmQgb2YgYSByYW5nZSwgaXQgaXMgYmV0dGVyIHN0eWxlIHRvCitwdXQgQHNh bXB7LX0gYnkgaXRzZWxmIGF0IHRoZSBlbmQgb2YgYSBicmFja2V0IGV4cHJlc3Npb24uICBG b3IKIGV4YW1wbGUsIGFsdGhvdWdoIEBzYW1we1stYS16XX0gaXMgdmFsaWQsIEBzYW1we1th LXotXX0gaXMgYmV0dGVyCiBzdHlsZTsgYW5kIGFsdGhvdWdoIEBzYW1we1sqLS1dfSBpcyB2 YWxpZCwgQHNhbXB7WyorLC1dfSBpcyBjbGVhcmVyLgogQGVuZCBlbnVtZXJhdGUKIAogQGl0 ZW0gQHNhbXB7W14gQGRvdHN7fSBdfQogQGNpbmRleCBAc2FtcHtefSBpbiByZWdleHAKLUBz YW1we1tefSBiZWdpbnMgYSBAZGZue2NvbXBsZW1lbnRlZCBjaGFyYWN0ZXIgYWx0ZXJuYXRp dmV9LiAgVGhpcworQHNhbXB7W159IGJlZ2lucyBhIEBkZm57Y29tcGxlbWVudGVkIGJyYWNr ZXQgZXhwcmVzc2lvbn0uICBUaGlzCiBtYXRjaGVzIGFueSBjaGFyYWN0ZXIgZXhjZXB0IHRo ZSBvbmVzIHNwZWNpZmllZC4gIFRodXMsCiBAc2FtcHtbXmEtejAtOUEtWl19IG1hdGNoZXMg YWxsIGNoYXJhY3RlcnMgQGVtcGh7ZXhjZXB0fSBBU0NJSSBsZXR0ZXJzIGFuZAogZGlnaXRz LgogCi1Ac2FtcHtefSBpcyBub3Qgc3BlY2lhbCBpbiBhIGNoYXJhY3RlciBhbHRlcm5hdGl2 ZSB1bmxlc3MgaXQgaXMgdGhlIGZpcnN0CitAc2FtcHtefSBpcyBub3Qgc3BlY2lhbCBpbiBh IGJyYWNrZXQgZXhwcmVzc2lvbiB1bmxlc3MgaXQgaXMgdGhlIGZpcnN0CiBjaGFyYWN0ZXIu ICBUaGUgY2hhcmFjdGVyIGZvbGxvd2luZyB0aGUgQHNhbXB7Xn0gaXMgdHJlYXRlZCBhcyBp ZiBpdAogd2VyZSBmaXJzdCAoaW4gb3RoZXIgd29yZHMsIEBzYW1wey19IGFuZCBAc2FtcHtd fSBhcmUgbm90IHNwZWNpYWwgdGhlcmUpLgogCi1BIGNvbXBsZW1lbnRlZCBjaGFyYWN0ZXIg YWx0ZXJuYXRpdmUgY2FuIG1hdGNoIGEgbmV3bGluZSwgdW5sZXNzIG5ld2xpbmUgaXMKK0Eg Y29tcGxlbWVudGVkIGJyYWNrZXQgZXhwcmVzc2lvbiBjYW4gbWF0Y2ggYSBuZXdsaW5lLCB1 bmxlc3MgbmV3bGluZSBpcwogbWVudGlvbmVkIGFzIG9uZSBvZiB0aGUgY2hhcmFjdGVycyBu b3QgdG8gbWF0Y2guICBUaGlzIGlzIGluIGNvbnRyYXN0IHRvCiB0aGUgaGFuZGxpbmcgb2Yg cmVnZXhwcyBpbiBwcm9ncmFtcyBzdWNoIGFzIEBjb2Rle2dyZXB9LgogCi1Zb3UgY2FuIHNw ZWNpZnkgbmFtZWQgY2hhcmFjdGVyIGNsYXNzZXMsIGp1c3QgbGlrZSBpbiBjaGFyYWN0ZXIK LWFsdGVybmF0aXZlcy4gIEZvciBpbnN0YW5jZSwgQHNhbXB7W15bOmFzY2lpOl1dfSBtYXRj aGVzIGFueQorWW91IGNhbiBzcGVjaWZ5IG5hbWVkIGNoYXJhY3RlciBjbGFzc2VzLCBqdXN0 IGxpa2UgaW4gYnJhY2tldAorZXhwcmVzc2lvbnMuICBGb3IgaW5zdGFuY2UsIEBzYW1we1te Wzphc2NpaTpdXX0gbWF0Y2hlcyBhbnkKIG5vbi1AYWNyb255bXtBU0NJSX0gY2hhcmFjdGVy LiAgQHhyZWZ7Q2hhciBDbGFzc2VzfS4KIAogQGl0ZW0gQHNhbXB7Xn0KQEAgLTU1Niw3ICs1 NTYsNyBAQCBSZWdleHAgU3BlY2lhbAogRm9yIGV4YW1wbGUsIGl0IGlzIHVud2lzZSB0byB1 c2UgQHNhbXB7XGIqfSwgd2hpY2ggY2FuIGJlIG9taXR0ZWQKIHdpdGhvdXQgY2hhbmdpbmcg dGhlIGRvY3VtZW50ZWQgbWVhbmluZyBvZiB0aGUgcmVndWxhciBleHByZXNzaW9uLgogCi1B cyBhIEBzYW1we1x9IGlzIG5vdCBzcGVjaWFsIGluc2lkZSBhIGNoYXJhY3RlciBhbHRlcm5h dGl2ZSwgaXQgY2FuCitBcyBhIEBzYW1we1x9IGlzIG5vdCBzcGVjaWFsIGluc2lkZSBhIGJy YWNrZXQgZXhwcmVzc2lvbiwgaXQgY2FuCiBuZXZlciByZW1vdmUgdGhlIHNwZWNpYWwgbWVh bmluZyBvZiBAc2FtcHstfSwgQHNhbXB7Xn0gb3IgQHNhbXB7XX0uCiBZb3Ugc2hvdWxkIG5v dCBxdW90ZSB0aGVzZSBjaGFyYWN0ZXJzIHdoZW4gdGhleSBoYXZlIG5vIHNwZWNpYWwKIG1l YW5pbmcuICBUaGlzIHdvdWxkIG5vdCBjbGFyaWZ5IGFueXRoaW5nLCBzaW5jZSBiYWNrc2xh c2hlcwpAQCAtNTY1LDIzICs1NjUsMjMgQEAgUmVnZXhwIFNwZWNpYWwKIHN5bnRheCksIHdo aWNoIG1hdGNoZXMgYW55IHNpbmdsZSBjaGFyYWN0ZXIgZXhjZXB0IGEgYmFja3NsYXNoLgog CiBJbiBwcmFjdGljZSwgbW9zdCBAc2FtcHtdfSB0aGF0IG9jY3VyIGluIHJlZ3VsYXIgZXhw cmVzc2lvbnMgY2xvc2UgYQotY2hhcmFjdGVyIGFsdGVybmF0aXZlIGFuZCBoZW5jZSBhcmUg c3BlY2lhbC4gIEhvd2V2ZXIsIG9jY2FzaW9uYWxseSBhCiticmFja2V0IGV4cHJlc3Npb24g YW5kIGhlbmNlIGFyZSBzcGVjaWFsLiAgSG93ZXZlciwgb2NjYXNpb25hbGx5IGEKIHJlZ3Vs YXIgZXhwcmVzc2lvbiBtYXkgdHJ5IHRvIG1hdGNoIGEgY29tcGxleCBwYXR0ZXJuIG9mIGxp dGVyYWwKIEBzYW1we1t9IGFuZCBAc2FtcHtdfS4gIEluIHN1Y2ggc2l0dWF0aW9ucywgaXQg c29tZXRpbWVzIG1heSBiZQogbmVjZXNzYXJ5IHRvIGNhcmVmdWxseSBwYXJzZSB0aGUgcmVn ZXhwIGZyb20gdGhlIHN0YXJ0IHRvIGRldGVybWluZQotd2hpY2ggc3F1YXJlIGJyYWNrZXRz IGVuY2xvc2UgYSBjaGFyYWN0ZXIgYWx0ZXJuYXRpdmUuICBGb3IgZXhhbXBsZSwKLUBzYW1w e1teXVtdXX0gY29uc2lzdHMgb2YgdGhlIGNvbXBsZW1lbnRlZCBjaGFyYWN0ZXIgYWx0ZXJu YXRpdmUKK3doaWNoIHNxdWFyZSBicmFja2V0cyBlbmNsb3NlIGEgYnJhY2tldCBleHByZXNz aW9uLiAgRm9yIGV4YW1wbGUsCitAc2FtcHtbXl1bXV19IGNvbnNpc3RzIG9mIHRoZSBjb21w bGVtZW50ZWQgYnJhY2tldCBleHByZXNzaW9uCiBAc2FtcHtbXl1bXX0gKHdoaWNoIG1hdGNo ZXMgYW55IHNpbmdsZSBjaGFyYWN0ZXIgdGhhdCBpcyBub3QgYSBzcXVhcmUKIGJyYWNrZXQp LCBmb2xsb3dlZCBieSBhIGxpdGVyYWwgQHNhbXB7XX0uCiAKIFRoZSBleGFjdCBydWxlcyBh cmUgdGhhdCBhdCB0aGUgYmVnaW5uaW5nIG9mIGEgcmVnZXhwLCBAc2FtcHtbfSBpcwogc3Bl Y2lhbCBhbmQgQHNhbXB7XX0gbm90LiAgVGhpcyBsYXN0cyB1bnRpbCB0aGUgZmlyc3QgdW5x dW90ZWQKLUBzYW1we1t9LCBhZnRlciB3aGljaCB3ZSBhcmUgaW4gYSBjaGFyYWN0ZXIgYWx0 ZXJuYXRpdmU7IEBzYW1we1t9IGlzCitAc2FtcHtbfSwgYWZ0ZXIgd2hpY2ggd2UgYXJlIGlu IGEgYnJhY2tldCBleHByZXNzaW9uOyBAc2FtcHtbfSBpcwogbm8gbG9uZ2VyIHNwZWNpYWwg KGV4Y2VwdCB3aGVuIGl0IHN0YXJ0cyBhIGNoYXJhY3RlciBjbGFzcykgYnV0IEBzYW1we119 CiBpcyBzcGVjaWFsLCB1bmxlc3MgaXQgaW1tZWRpYXRlbHkgZm9sbG93cyB0aGUgc3BlY2lh bCBAc2FtcHtbfSBvciB0aGF0CiBAc2FtcHtbfSBmb2xsb3dlZCBieSBhIEBzYW1we159LiAg VGhpcyBsYXN0cyB1bnRpbCB0aGUgbmV4dCBzcGVjaWFsCi1Ac2FtcHtdfSB0aGF0IGRvZXMg bm90IGVuZCBhIGNoYXJhY3RlciBjbGFzcy4gIFRoaXMgZW5kcyB0aGUgY2hhcmFjdGVyCi1h bHRlcm5hdGl2ZSBhbmQgcmVzdG9yZXMgdGhlIG9yZGluYXJ5IHN5bnRheCBvZiByZWd1bGFy IGV4cHJlc3Npb25zOworQHNhbXB7XX0gdGhhdCBkb2VzIG5vdCBlbmQgYSBjaGFyYWN0ZXIg Y2xhc3MuICBUaGlzIGVuZHMgdGhlIGJyYWNrZXQKK2V4cHJlc3Npb24gYW5kIHJlc3RvcmVz IHRoZSBvcmRpbmFyeSBzeW50YXggb2YgcmVndWxhciBleHByZXNzaW9uczsKIGFuIHVucXVv dGVkIEBzYW1we1t9IGlzIHNwZWNpYWwgYWdhaW4gYW5kIGEgQHNhbXB7XX0gbm90LgogCiBA bm9kZSBDaGFyIENsYXNzZXMKQEAgLTU5Miw4ICs1OTIsOCBAQCBDaGFyIENsYXNzZXMKIEBj aW5kZXggYWxwaGEgY2hhcmFjdGVyIGNsYXNzLCByZWdleHAKIEBjaW5kZXggeGRpZ2l0IGNo YXJhY3RlciBjbGFzcywgcmVnZXhwCiAKLSAgQmVsb3cgaXMgYSB0YWJsZSBvZiB0aGUgY2xh c3NlcyB5b3UgY2FuIHVzZSBpbiBhIGNoYXJhY3RlcgotYWx0ZXJuYXRpdmUsIGFuZCB3aGF0 IHRoZXkgbWVhbi4gIE5vdGUgdGhhdCB0aGUgQHNhbXB7W30gYW5kIEBzYW1we119CisgIEJl bG93IGlzIGEgdGFibGUgb2YgdGhlIGNsYXNzZXMgeW91IGNhbiB1c2UgaW4gYSBicmFja2V0 CitleHByZXNzaW9uLCBhbmQgd2hhdCB0aGV5IG1lYW4uICBOb3RlIHRoYXQgdGhlIEBzYW1w e1t9IGFuZCBAc2FtcHtdfQogY2hhcmFjdGVycyB0aGF0IGVuY2xvc2UgdGhlIGNsYXNzIG5h bWUgYXJlIHBhcnQgb2YgdGhlIG5hbWUsIHNvIGEKIHJlZ3VsYXIgZXhwcmVzc2lvbiB1c2lu ZyB0aGVzZSBjbGFzc2VzIG5lZWRzIG9uZSBtb3JlIHBhaXIgb2YKIGJyYWNrZXRzLiAgRm9y IGV4YW1wbGUsIGEgcmVndWxhciBleHByZXNzaW9uIG1hdGNoaW5nIGEgc2VxdWVuY2Ugb2YK QEAgLTkyMCw3ICs5MjAsNyBAQCBSZWdleHAgQmFja3NsYXNoCiAKIEBraW5kZXggaW52YWxp ZC1yZWdleHAKICAgTm90IGV2ZXJ5IHN0cmluZyBpcyBhIHZhbGlkIHJlZ3VsYXIgZXhwcmVz c2lvbi4gIEZvciBleGFtcGxlLCBhIHN0cmluZwotdGhhdCBlbmRzIGluc2lkZSBhIGNoYXJh Y3RlciBhbHRlcm5hdGl2ZSB3aXRob3V0IGEgdGVybWluYXRpbmcgQHNhbXB7XX0KK3RoYXQg ZW5kcyBpbnNpZGUgYSBicmFja2V0IGV4cHJlc3Npb24gd2l0aG91dCBhIHRlcm1pbmF0aW5n IEBzYW1we119CiBpcyBpbnZhbGlkLCBhbmQgc28gaXMgYSBzdHJpbmcgdGhhdCBlbmRzIHdp dGggYSBzaW5nbGUgQHNhbXB7XH0uICBJZgogYW4gaW52YWxpZCByZWd1bGFyIGV4cHJlc3Np b24gaXMgcGFzc2VkIHRvIGFueSBvZiB0aGUgc2VhcmNoIGZ1bmN0aW9ucywKIGFuIEBjb2Rl e2ludmFsaWQtcmVnZXhwfSBlcnJvciBpcyBzaWduYWxlZC4KQEAgLTk1Nyw3ICs5NTcsNyBA QCBSZWdleHAgRXhhbXBsZQogCiBAdGFibGUgQGNvZGUKIEBpdGVtIFsuPyFdCi1UaGUgZmly c3QgcGFydCBvZiB0aGUgcGF0dGVybiBpcyBhIGNoYXJhY3RlciBhbHRlcm5hdGl2ZSB0aGF0 IG1hdGNoZXMKK1RoZSBmaXJzdCBwYXJ0IG9mIHRoZSBwYXR0ZXJuIGlzIGEgYnJhY2tldCBl eHByZXNzaW9uIHRoYXQgbWF0Y2hlcwogYW55IG9uZSBvZiB0aHJlZSBjaGFyYWN0ZXJzOiBw ZXJpb2QsIHF1ZXN0aW9uIG1hcmssIGFuZCBleGNsYW1hdGlvbgogbWFyay4gIFRoZSBtYXRj aCBtdXN0IGJlZ2luIHdpdGggb25lIG9mIHRoZXNlIHRocmVlIGNoYXJhY3RlcnMuICAoVGhp cwogaXMgb25lIHBvaW50IHdoZXJlIHRoZSBuZXcgZGVmYXVsdCByZWdleHAgdXNlZCBieSBF bWFjcyBkaWZmZXJzIGZyb20KQEAgLTk2OSw3ICs5NjksNyBAQCBSZWdleHAgRXhhbXBsZQog bWFya3MsIHplcm8gb3IgbW9yZSBvZiB0aGVtLCB0aGF0IG1heSBmb2xsb3cgdGhlIHBlcmlv ZCwgcXVlc3Rpb24gbWFyawogb3IgZXhjbGFtYXRpb24gbWFyay4gIFRoZSBAY29kZXtcIn0g aXMgTGlzcCBzeW50YXggZm9yIGEgZG91YmxlLXF1b3RlIGluCiBhIHN0cmluZy4gIFRoZSBA c2FtcHsqfSBhdCB0aGUgZW5kIGluZGljYXRlcyB0aGF0IHRoZSBpbW1lZGlhdGVseQotcHJl Y2VkaW5nIHJlZ3VsYXIgZXhwcmVzc2lvbiAoYSBjaGFyYWN0ZXIgYWx0ZXJuYXRpdmUsIGlu IHRoaXMgY2FzZSkgbWF5IGJlCitwcmVjZWRpbmcgcmVndWxhciBleHByZXNzaW9uIChhIGJy YWNrZXQgZXhwcmVzc2lvbiwgaW4gdGhpcyBjYXNlKSBtYXkgYmUKIHJlcGVhdGVkIHplcm8g b3IgbW9yZSB0aW1lcy4KIAogQGl0ZW0gXFwoJFxcfEAgJFxcfFx0XFx8QCBAIFxcKQpAQCAt MTkyMCw3ICsxOTIwLDcgQEAgUmVnZXhwIFByb2JsZW1zCiBjYXVzaW5nIGEgbWF0Y2ggdG8g ZmFpbCBlYXJseS4KIAogQGl0ZW0KLUF2b2lkIG9yLXBhdHRlcm5zIGluIGZhdm9yIG9mIGNo YXJhY3RlciBhbHRlcm5hdGl2ZXM6IHdyaXRlCitBdm9pZCBvci1wYXR0ZXJucyBpbiBmYXZv ciBvZiBicmFja2V0IGV4cHJlc3Npb25zOiB3cml0ZQogQHNhbXB7W2FiXX0gaW5zdGVhZCBv ZiBAc2FtcHthXHxifS4gIFJlY2FsbCB0aGF0IEBzYW1we1xzLX0gYW5kIEBzYW1we1xzd30K IGFyZSBlcXVpdmFsZW50IHRvIEBzYW1we1tbOnNwYWNlOl1dfSBhbmQgQHNhbXB7W1s6d29y ZDpdXX0sIHJlc3BlY3RpdmVseS4KIApAQCAtMzAxMiw3ICszMDEyLDcgQEAgUE9TSVggUmVn ZXhwcwogQGl0ZW0KIEluIFBPU0lYIEJSRXMsIGl0IGlzIGFuIGltcGxlbWVudGF0aW9uIG9w dGlvbiB3aGV0aGVyIEBzYW1we159IGlzIHNwZWNpYWwKIGFmdGVyIEBzYW1we1wofTsgR05V IEBjb21tYW5ke2dyZXB9IHRyZWF0cyBpdCBsaWtlIEVtYWNzIGRvZXMuCi1JbiBQT1NJWCBF UkVzLCBAc2FtcHtefSBpcyBhbHdheXMgc3BlY2lhbCBvdXRzaWRlIG9mIGNoYXJhY3RlciBh bHRlcm5hdGl2ZXMsCitJbiBQT1NJWCBFUkVzLCBAc2FtcHtefSBpcyBhbHdheXMgc3BlY2lh bCBvdXRzaWRlIG9mIGJyYWNrZXQgZXhwcmVzc2lvbnMsCiB3aGljaCBtZWFucyB0aGUgRVJF IEBzYW1we3hefSBuZXZlciBtYXRjaGVzLgogSW4gRW1hY3MgcmVndWxhciBleHByZXNzaW9u cywgQHNhbXB7Xn0gaXMgc3BlY2lhbCBvbmx5IGF0IHRoZQogYmVnaW5uaW5nIG9mIHRoZSBy ZWd1bGFyIGV4cHJlc3Npb24sIG9yIGFmdGVyIEBzYW1we1wofSwgQHNhbXB7XCg/On0KQEAg LTMwMjEsNyArMzAyMSw3IEBAIFBPU0lYIFJlZ2V4cHMKIEBpdGVtCiBJbiBQT1NJWCBCUkVz LCBpdCBpcyBhbiBpbXBsZW1lbnRhdGlvbiBvcHRpb24gd2hldGhlciBAc2FtcHskfSBpcyBz cGVjaWFsCiBiZWZvcmUgQHNhbXB7XCl9OyBHTlUgQGNvbW1hbmR7Z3JlcH0gdHJlYXRzIGl0 IGxpa2UgRW1hY3MgZG9lcy4KLUluIFBPU0lYIEVSRXMsIEBzYW1weyR9IGlzIGFsd2F5cyBz cGVjaWFsIG91dHNpZGUgb2YgY2hhcmFjdGVyIGFsdGVybmF0aXZlcywKK0luIFBPU0lYIEVS RXMsIEBzYW1weyR9IGlzIGFsd2F5cyBzcGVjaWFsIG91dHNpZGUgb2YgYnJhY2tldCBleHBy ZXNzaW9ucywKIHdoaWNoIG1lYW5zIHRoZSBFUkUgQHNhbXB7JHh9IG5ldmVyIG1hdGNoZXMu CiBJbiBFbWFjcyByZWd1bGFyIGV4cHJlc3Npb25zLCBAc2FtcHskfSBpcyBzcGVjaWFsIG9u bHkgYXQgdGhlCiBlbmQgb2YgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiwgb3IgYmVmb3JlIEBz YW1we1wpfSBvciBAc2FtcHtcfH0uCkBAIC0zMDQ5LDggKzMwNDksOCBAQCBQT1NJWCBSZWdl eHBzCiBAc2FtcHtbOm5vbmFzY2lpOl19LCBAc2FtcHtbOnVuaWJ5dGU6XX0sIGFuZCBAc2Ft cHtbOndvcmQ6XX0uCiAKIEBpdGVtCi1CUkUgYW5kIEVSRSBhbHRlcm5hdGl2ZXMgY2FuIGNv bnRhaW4gY29sbGF0aW5nIHN5bWJvbHMgYW5kIGVxdWl2YWxlbmNlCi1jbGFzcyBleHByZXNz aW9ucywgZS5nLiwgQHNhbXB7W1suY2guXWRbPWE9XV19LgorQlJFcyBhbmQgRVJFcyBjYW4g Y29udGFpbiBjb2xsYXRpbmcgc3ltYm9scyBhbmQgZXF1aXZhbGVuY2UKK2NsYXNzIGV4cHJl c3Npb25zIHdpdGhpbiBicmFja2V0IGV4cHJlc3Npb25zLCBlLmcuLCBAc2FtcHtbWy5jaC5d ZFs9YT1dXX0uCiBFbWFjcyByZWd1bGFyIGV4cHJlc3Npb25zIGRvIG5vdCBzdXBwb3J0IHRo aXMuCiAKIEBpdGVtCmRpZmYgLS1naXQgYS9saXNwL2VtYWNzLWxpc3AvbGlzcC1tb2RlLmVs IGIvbGlzcC9lbWFjcy1saXNwL2xpc3AtbW9kZS5lbAppbmRleCA5OTE0ZWRlZGI4NS4uMTk5 MDYzMDYwOGQgMTAwNjQ0Ci0tLSBhL2xpc3AvZW1hY3MtbGlzcC9saXNwLW1vZGUuZWwKKysr IGIvbGlzcC9lbWFjcy1saXNwL2xpc3AtbW9kZS5lbApAQCAtMTQ1Myw3ICsxNDUzLDcgQEAg bGlzcC1maWxsLXBhcmFncmFwaAogICAgICAgOzsgYXJlIGJ1ZmZlci1sb2NhbCwgYnV0IHdl IGF2b2lkIGNoYW5naW5nIHRoZW0gc28gdGhhdCB0aGV5IGNhbiBiZSBzZXQKICAgICAgIDs7 IHRvIG1ha2UgYGZvcndhcmQtcGFyYWdyYXBoJyBhbmQgZnJpZW5kcyBkbyBzb21ldGhpbmcg dGhlIHVzZXIgd2FudHMuCiAgICAgICA7OwotICAgICAgOzsgYHBhcmFncmFwaC1zdGFydCc6 IFRoZSBgKCcgaW4gdGhlIGNoYXJhY3RlciBhbHRlcm5hdGl2ZSBhbmQgdGhlCisgICAgICA7 OyBgcGFyYWdyYXBoLXN0YXJ0JzogVGhlIGAoJyBpbiB0aGUgYnJhY2tldCBleHByZXNzaW9u IGFuZCB0aGUKICAgICAgIDs7IGxlZnQtc2luZ2xlcXVvdGUgcGx1cyBgKCcgc2VxdWVuY2Ug YWZ0ZXIgdGhlIFxcfCBhbHRlcm5hdGl2ZSBwcmV2ZW50CiAgICAgICA7OyBzZXhwcyBhbmQg YmFja3F1b3RlZCBzZXhwcyB0aGF0IGZvbGxvdyBhIGRvY3N0cmluZyBmcm9tIGJlaW5nIGZp bGxlZAogICAgICAgOzsgd2l0aCB0aGUgZG9jc3RyaW5nLiAgVGhpcyBzZXR0aW5nIGhhcyB0 aGUgY29uc2VxdWVuY2Ugb2YgaW5oaWJpdGluZwpkaWZmIC0tZ2l0IGEvbGlzcC90ZXh0bW9k ZXMvcGljdHVyZS5lbCBiL2xpc3AvdGV4dG1vZGVzL3BpY3R1cmUuZWwKaW5kZXggOWFhOWI3 MmM1MTMuLmY5OGMzOTYzYjZmIDEwMDY0NAotLS0gYS9saXNwL3RleHRtb2Rlcy9waWN0dXJl LmVsCisrKyBiL2xpc3AvdGV4dG1vZGVzL3BpY3R1cmUuZWwKQEAgLTM4Myw3ICszODMsNyBA QCBwaWN0dXJlLXRhYi1jaGFycwogVGhlIHN5bnRheCBmb3IgdGhpcyB2YXJpYWJsZSBpcyBs aWtlIHRoZSBzeW50YXggdXNlZCBpbnNpZGUgb2YgYFsuLi5dJwogaW4gYSByZWd1bGFyIGV4 cHJlc3Npb24tLWJ1dCB3aXRob3V0IHRoZSBgWycgYW5kIHRoZSBgXScuCiBJdCBpcyBOT1Qg YSByZWd1bGFyIGV4cHJlc3Npb24sIGFuZCBzaG91bGQgZm9sbG93IHRoZSB1c3VhbAotcnVs ZXMgZm9yIHRoZSBjb250ZW50cyBvZiBhIGNoYXJhY3RlciBhbHRlcm5hdGl2ZS4KK3J1bGVz IGZvciB0aGUgY29udGVudHMgb2YgYSBicmFja2V0IGV4cHJlc3Npb24uCiBJdCBkZWZpbmVz IGEgc2V0IG9mIFwiaW50ZXJlc3RpbmcgY2hhcmFjdGVyc1wiIHRvIGxvb2sgZm9yIHdoZW4g c2V0dGluZwogXChvciBzZWFyY2hpbmcgZm9yKSB0YWIgc3RvcHMsIGluaXRpYWxseSBcIiEt flwiIChhbGwgcHJpbnRpbmcgY2hhcmFjdGVycykuCiBGb3IgZXhhbXBsZSwgc3VwcG9zZSB0 aGF0IHlvdSBhcmUgZWRpdGluZyBhIHRhYmxlIHdoaWNoIGlzIGZvcm1hdHRlZCB0aHVzOgot LSAKMi4zOS4yCgo= --------------WveC1B3ElZHTe9phDlMuweW0--