From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Jim Porter Newsgroups: gmane.emacs.bugs Subject: bug#71605: 30.0.50; [PATCH] Support variable-width text in 'visual-wrap-prefix-mode' Date: Sat, 27 Jul 2024 21:53:25 -0700 Message-ID: <81d8d283-6f7e-0d09-7ae3-fb99def408d9@gmail.com> References: <868qz3ssu0.fsf@gnu.org> <201c2285-012f-fa29-03b5-78a2e26aa134@gmail.com> <86plsfqvme.fsf@gnu.org> <66e7c49d-adb6-186f-18f1-33eee9f668ad@gmail.com> <86h6dqqy63.fsf@gnu.org> <86iky5p34b.fsf@gnu.org> <8269125b-7e9c-ffde-be9e-4a07c42ce6a5@gmail.com> <86o77wnrb7.fsf@gnu.org> <060e1362-a206-4c88-b49f-60e4f5da7238@gmail.com> <86a5jgndev.fsf@gnu.org> <86plsbmqqn.fsf@gnu.org> <94aeb67a-8aa3-998f-720e-fbdc42c6b0ab@gmail.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------S0n0BM1s7kxXeIi0Gq43BsUT" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="37212"; mail-complaints-to="usenet@ciao.gmane.io" Cc: 71605@debbugs.gnu.org, Po Lu To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sun Jul 28 06:55:32 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 1sXvwR-0009X8-Il for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 28 Jul 2024 06:55:31 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sXvwF-0007EV-3I; Sun, 28 Jul 2024 00:55:19 -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 1sXvvn-0007Cz-SD for bug-gnu-emacs@gnu.org; Sun, 28 Jul 2024 00:54:51 -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 1sXvvn-0005Vh-FX for bug-gnu-emacs@gnu.org; Sun, 28 Jul 2024 00:54:51 -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:References:From:MIME-Version:Date:To:Subject; bh=Bn0GUhGp0qvPUPOAN7cb/0c+cqjuS9yczgUCiYt9k30=; b=rEePVEsQGllxxGu2AFWnTAQF52PQHg9YWW+xHav89D7N/02fGhVxEyeNw9E36YEK/SwRjs2quF1qno54tofKT8TH6yQz0pXJWdntQuKkrHZh4O+Y0moiH3DY56sVLjm8D38OZaq4PW2a3Bg9IfqFl/LD3s5+buyi5xkQL+6qZ8ZzUsqtOgS+q5E1AbXDdnigyiYLzk+Xrtbs2K4M1BfAXznkUyvXiHYwHUCtIxAZmuBXHxTNNTizNUbwhNssu/RTlCkAjT0ktEVNwGldOrJzpDfIs+S2e7kvmJmg8ExR5WEJXVWeQ8czsC+rsp4Jz+irij0ewK/syZNjLKYICZJ4hQ==; Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1sXvvy-00048Y-0R for bug-gnu-emacs@gnu.org; Sun, 28 Jul 2024 00:55:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Jim Porter Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 28 Jul 2024 04:55:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 71605 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch Original-Received: via spool by 71605-submit@debbugs.gnu.org id=B71605.172214248715879 (code B ref 71605); Sun, 28 Jul 2024 04:55:01 +0000 Original-Received: (at 71605) by debbugs.gnu.org; 28 Jul 2024 04:54:47 +0000 Original-Received: from localhost ([127.0.0.1]:42596 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sXvvi-000481-CY for submit@debbugs.gnu.org; Sun, 28 Jul 2024 00:54:47 -0400 Original-Received: from mail-oo1-f46.google.com ([209.85.161.46]:45223) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sXvvf-00047f-OS for 71605@debbugs.gnu.org; Sun, 28 Jul 2024 00:54:44 -0400 Original-Received: by mail-oo1-f46.google.com with SMTP id 006d021491bc7-5d5bd1b79cfso1416207eaf.2 for <71605@debbugs.gnu.org>; Sat, 27 Jul 2024 21:54:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1722142407; x=1722747207; darn=debbugs.gnu.org; h=in-reply-to:references:cc:to:from:content-language:subject :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to; bh=Bn0GUhGp0qvPUPOAN7cb/0c+cqjuS9yczgUCiYt9k30=; b=PID6Nf4xc7jg33P7YdOCtuPMcWNnIpTp03vZU1etai7SYy/PBfbl3Be1PJ9MGtNiaj QK0rp4r2DRNODrBzeEvK+ExlmqGUfdLBVNhAOHjAXcwb6MAQGk9g7XdbIpym5iKV6a6s H99/7z8uc1VRaRbXW8PpAbtRpjiaD9UXY+YSvb5MnFyfPhvTn1HbYkg9gGWhafVDQcd0 zl29O3pQTsQQvLZGCpXJdDuLwifDtevnxLI5iHRiXSbiARG3QqOl7AgxOharUxcBPVYw QQvuj1XIYbbvlYllpfXZLcIiEEkTrU/6Lu3281cXdaz4L3I6Ggo304h94adveC/w7QiA 5sdA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1722142407; x=1722747207; h=in-reply-to:references:cc:to:from:content-language:subject :mime-version:date:message-id:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=Bn0GUhGp0qvPUPOAN7cb/0c+cqjuS9yczgUCiYt9k30=; b=ocgybvRUal4dpIphzDnylsZkJG1SEvrlIEBX8OoZwLZRr5StqP2orTbCvEdSjOtuEk HrLa/MNb/M7rdQC05R2FzFWWy36zCS2au9+7KBoFCHPHo9j4a5ltLzbupZks8m29s96S 7E1oEoUNTPlcBJvjedgOWeQzubLrGK6O4xm3OHJEUCYaK/qpErE2XPz+iFjRp/7LfCe/ Gge5uTJLSLB8oD0ZmibCp4c+OmharQk9OoSLOsZaAShmEUrnk+k7QBySOnSM+csgogsk jqAqv/7G8NwsnmTFS6hHvHqgEIlDJXInS0G8zsHdvwGLY3HygFc7CdAeFvGr8Zk1j6NY kCHg== X-Gm-Message-State: AOJu0Yw/AI4Y7q+PpCdu2jFbMAvRw9vM1OwsL8vKRBCBXFDXNDUfg4+M t/TfxSN4MC+nHmjjnntIqMOD3guKL4pJi/PCLPHkDJTecEgygpQT X-Google-Smtp-Source: AGHT+IHMeFkuNAb65fUAWEWuioRfnrY6J+X7Zun0S+piEC0xffXzbYKAYSZWxJntSxtkJsKSQEhPYA== X-Received: by 2002:a05:6358:6f04:b0:1a2:59e:e887 with SMTP id e5c5f4694b2df-1adba41b600mr587406855d.7.1722142406788; Sat, 27 Jul 2024 21:53:26 -0700 (PDT) Original-Received: from [192.168.1.2] (syn-023-240-098-037.res.spectrum.com. [23.240.98.37]) by smtp.googlemail.com with ESMTPSA id d2e1a72fcca58-70ead81272esm4992095b3a.97.2024.07.27.21.53.25 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 27 Jul 2024 21:53:25 -0700 (PDT) Content-Language: en-US In-Reply-To: <94aeb67a-8aa3-998f-720e-fbdc42c6b0ab@gmail.com> 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:289453 Archived-At: This is a multi-part message in MIME format. --------------S0n0BM1s7kxXeIi0Gq43BsUT Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 6/20/2024 12:01 PM, Jim Porter wrote: > On 6/20/2024 11:08 AM, Eli Zaretskii wrote: >> Does this mean we can close this bug, or is there anything else to do >> here? > > I need to implement a new version of my patch that uses :align-to and > such. So there are still things to do in this bug, but the :align-to > issue that was blocking progress on this bug is now resolved. After some time away from this bug, I've made a new version of this patch which uses ':align-to' to line up the wrapped lines. All of the text properties in this patch use widths defined in terms of the average width for the current face (using a spec like "(N . width)"), which I think should work correctly in all situations. I've also set the min-width of the first-line prefix to ensure everything lines up just right. That makes it easier to line things up this way, rather than my previous brittle attempts at computing the exact pixel width of the first-line prefix (that width can change for all sorts of reasons). Also attached is a test script I wrote to preview the effects of the patch. If you pass an additional numeric argument on the command line when loading it, it will set 'visual-wrap-extra-indent' so you can see how that affects things. --------------S0n0BM1s7kxXeIi0Gq43BsUT Content-Type: text/plain; charset=UTF-8; name="0001-Add-support-for-variable-pitch-fonts-in-visual-wrap-.patch" Content-Disposition: attachment; filename*0="0001-Add-support-for-variable-pitch-fonts-in-visual-wrap-.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSAxNTA5ZDliZjBhY2ZhYjZlYTQ4NmI5NmNkNjc2NWZjOTVjY2YyYjJiIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFNhdCwgMjcgSnVsIDIwMjQgMjA6NDg6MzggLTA3MDAKU3ViamVjdDogW1BB VENIXSBBZGQgc3VwcG9ydCBmb3IgdmFyaWFibGUtcGl0Y2ggZm9udHMgaW4KICd2aXN1YWwt d3JhcC1wcmVmaXgtbW9kZScKCiogbGlzcC9lbWFjcy1saXNwL3N1YnIteC5lbCAoc3RyaW5n LXBpeGVsLXdpZHRoKTogQWxsb3cgcGFzc2luZyBCVUZGRVIKdG8gdXNlIHRoZSBmYWNlIHJl bWFwcGluZ3MgZnJvbSB0aGF0IGJ1ZmZlciB3aGVuIGNhbGN1bGF0aW5nIHRoZSB3aWR0aC4K CiogbGlzcC92aXN1YWwtd3JhcC5lbCAodmlzdWFsLXdyYXAtLXByZWZpeCk6IFJlbmFtZSB0 by4uLgoodmlzdWFsLXdyYXAtLWFkanVzdC1wcmVmaXgpOiAuLi4gdGhpcywgYW5kIHN1cHBv cnQgUFJFRklYIGFzIGEgbnVtYmVyLgoodmlzdWFsLXdyYXAtZmlsbC1jb250ZXh0LXByZWZp eCk6IE1ha2Ugb2Jzb2xldGUgaW4gZmF2b3Igb2YuLi4KKHZpc3VhbC13cmFwLS1jb250ZW50 LXByZWZpeCk6IC4uLiB0aGlzLgoodmlzdWFsLXdyYXAtcHJlZml4LWZ1bmN0aW9uKTogRXh0 cmFjdCBpbnNpZGUgb2YgbG9vcCBpbnRvLi4uCih2aXN1YWwtd3JhcC0tYXBwbHktdG8tbGlu ZSk6IC4uLiB0aGlzLgoKKiBkb2MvbGlzcHJlZi9kaXNwbGF5LnRleGkgKFNpemUgb2YgRGlz cGxheWVkIFRleHQpOiBVcGRhdGUKZG9jdW1lbnRhdGlvbiBmb3IgJ3N0cmluZy1waXhlbC13 aWR0aCcuCgoqIGV0Yy9ORVdTOiBBbm5vdW5jZSB0aGlzIGNoYW5nZS4KLS0tCiBkb2MvbGlz cHJlZi9kaXNwbGF5LnRleGkgIHwgICA2ICstCiBldGMvTkVXUyAgICAgICAgICAgICAgICAg IHwgIDExICsrKysKIGxpc3AvZW1hY3MtbGlzcC9zdWJyLXguZWwgfCAgMTEgKysrLQogbGlz cC92aXN1YWwtd3JhcC5lbCAgICAgICB8IDExNCArKysrKysrKysrKysrKysrKysrKysrKysr Ky0tLS0tLS0tLS0tLQogNCBmaWxlcyBjaGFuZ2VkLCAxMDIgaW5zZXJ0aW9ucygrKSwgNDAg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL2xpc3ByZWYvZGlzcGxheS50ZXhpIGIv ZG9jL2xpc3ByZWYvZGlzcGxheS50ZXhpCmluZGV4IDE5NTQ2NGVmN2Y1Li5kMjhmZjllYWQy NiAxMDA2NDQKLS0tIGEvZG9jL2xpc3ByZWYvZGlzcGxheS50ZXhpCisrKyBiL2RvYy9saXNw cmVmL2Rpc3BsYXkudGV4aQpAQCAtMjM4NSw5ICsyMzg1LDExIEBAIFNpemUgb2YgRGlzcGxh eWVkIFRleHQKIG1lYW5pbmcgYXMgd2l0aCBAY29kZXt3aW5kb3ctdGV4dC1waXhlbC1zaXpl fS4KIEBlbmQgZGVmdW4KIAotQGRlZnVuIHN0cmluZy1waXhlbC13aWR0aCBzdHJpbmcKK0Bk ZWZ1biBzdHJpbmctcGl4ZWwtd2lkdGggc3RyaW5nICZvcHRpb25hbCBidWZmZXIKIFRoaXMg aXMgYSBjb252ZW5pZW5jZSBmdW5jdGlvbiB0aGF0IHVzZXMgQGNvZGV7d2luZG93LXRleHQt cGl4ZWwtc2l6ZX0KLXRvIGNvbXB1dGUgdGhlIHdpZHRoIG9mIEB2YXJ7c3RyaW5nfSAoaW4g cGl4ZWxzKS4KK3RvIGNvbXB1dGUgdGhlIHdpZHRoIG9mIEB2YXJ7c3RyaW5nfSAoaW4gcGl4 ZWxzKS4gIElmIEB2YXJ7YnVmZmVyfSBpcworbm9uLUBjb2Rle25pbH0sIHVzZSBhbnkgZmFj ZSByZW1hcHBpbmdzIChAcHhyZWZ7RmFjZSBSZW1hcHBpbmd9KSBmcm9tCit0aGF0IGJ1ZmZl ciB3aGVuIGNvbXB1dGluZyB0aGUgd2lkdGggb2YgQHZhcntzdHJpbmd9LgogQGVuZCBkZWZ1 bgogCiBAZGVmdW4gbGluZS1waXhlbC1oZWlnaHQKZGlmZiAtLWdpdCBhL2V0Yy9ORVdTIGIv ZXRjL05FV1MKaW5kZXggYzkwN2VjNDBmYTEuLjBjNmNkOTc3MWUxIDEwMDY0NAotLS0gYS9l dGMvTkVXUworKysgYi9ldGMvTkVXUwpAQCAtNTIsNiArNTIsMTIgQEAgdXN1YWwgbWluaWJ1 ZmZlciBoaXN0b3J5IGNvbW1hbmRzLiAgRWFjaCBjb21tYW5kIGhhcyBhIHNlcGFyYXRlIGhp c3RvcnkuCiAqKiogTmV3IGxhbmd1YWdlLWVudmlyb25tZW50IGFuZCBpbnB1dCBtZXRob2Qg Zm9yIFRpZmluYWdoLgogVGhlIFRpZmluYWdoIHNjcmlwdCBpcyB1c2VkIHRvIHdyaXRlIHRo ZSBCZXJiZXIgbGFuZ3VhZ2VzLgogCistLS0KKyoqICd2aXN1YWwtd3JhcC1wcmVmaXgtbW9k ZScgbm93IHN1cHBvcnRzIHZhcmlhYmxlLXBpdGNoIGZvbnRzLgorV2hlbiB1c2luZyAndmlz dWFsLXdyYXAtcHJlZml4LW1vZGUnIGluIGJ1ZmZlcnMgd2l0aCB2YXJpYWJsZS1waXRjaAor Zm9udHMsIHRoZSB3cmFwcGVkIHRleHQgd2lsbCBub3cgYmUgbGluZWQgdXAgY29ycmVjdGx5 IHNvIHRoYXQgaXQncworZXhhY3RseSBiZWxvdyB0aGUgdGV4dCBhZnRlciB0aGUgcHJlZml4 IG9uIHRoZSBmaXJzdCBsaW5lLgorCiAMCiAqIENoYW5nZXMgaW4gU3BlY2lhbGl6ZWQgTW9k ZXMgYW5kIFBhY2thZ2VzIGluIEVtYWNzIDMxLjEKIApAQCAtMTk0LDYgKzIwMCwxMSBAQCBh dXRob3JpemUgdGhlIGludm9rZWQgRC1CdXMgbWV0aG9kIChmb3IgZXhhbXBsZSB2aWEgcG9s a2l0KS4KICoqIFRoZSBjdXN0b21pemF0aW9uIGdyb3VwICd3cCcgaGFzIGJlZW4gcmVtb3Zl ZC4KIEl0IGhhcyBiZWVuIG9ic29sZXRlIHNpbmNlIEVtYWNzIDI2LjEuICBVc2UgdGhlIGdy b3VwICd0ZXh0JyBpbnN0ZWFkLgogCisrKysKKyoqIE5ldyBvcHRpb25hbCBCVUZGRVIgYXJn dW1lbnQgZm9yICdzdHJpbmctcGl4ZWwtd2lkdGgnLgorSWYgc3VwcGxpZWQsICdzdHJpbmct cGl4ZWwtd2lkdGgnIHdpbGwgdXNlIGFueSBmYWNlIHJlbWFwcGluZ3MgZnJvbQorQlVGRkVS IHdoZW4gY29tcHV0aW5nIHRoZSBzdHJpbmcncyB3aWR0aC4KKwogDAogKiBDaGFuZ2VzIGlu IEVtYWNzIDMxLjEgb24gTm9uLUZyZWUgT3BlcmF0aW5nIFN5c3RlbXMKIApkaWZmIC0tZ2l0 IGEvbGlzcC9lbWFjcy1saXNwL3N1YnIteC5lbCBiL2xpc3AvZW1hY3MtbGlzcC9zdWJyLXgu ZWwKaW5kZXggZTcyNWM0OTBhYmEuLjA1OGMwNmJjNWY2IDEwMDY0NAotLS0gYS9saXNwL2Vt YWNzLWxpc3Avc3Vici14LmVsCisrKyBiL2xpc3AvZW1hY3MtbGlzcC9zdWJyLXguZWwKQEAg LTMzNyw4ICszMzcsMTAgQEAgbmFtZWQtbGV0CiAgICAgICAuICxhYXJncykpKQogCiA7Ozsj IyNhdXRvbG9hZAotKGRlZnVuIHN0cmluZy1waXhlbC13aWR0aCAoc3RyaW5nKQotICAiUmV0 dXJuIHRoZSB3aWR0aCBvZiBTVFJJTkcgaW4gcGl4ZWxzLiIKKyhkZWZ1biBzdHJpbmctcGl4 ZWwtd2lkdGggKHN0cmluZyAmb3B0aW9uYWwgYnVmZmVyKQorICAiUmV0dXJuIHRoZSB3aWR0 aCBvZiBTVFJJTkcgaW4gcGl4ZWxzLgorSWYgQlVGRkVSIGlzIG5vbi1uaWwsIHVzZSB0aGUg ZmFjZSByZW1hcHBpbmdzIGZyb20gdGhhdCBidWZmZXIgd2hlbgorZGV0ZXJtaW5pbmcgdGhl IHdpZHRoLiIKICAgKGRlY2xhcmUgKGltcG9ydGFudC1yZXR1cm4tdmFsdWUgdCkpCiAgIChp ZiAoemVyb3AgKGxlbmd0aCBzdHJpbmcpKQogICAgICAgMApAQCAtMzUyLDYgKzM1NCwxMSBA QCBzdHJpbmctcGl4ZWwtd2lkdGgKICAgICAgIDs7IERpc2FibGUgbGluZS1wcmVmaXggYW5k IHdyYXAtcHJlZml4LCBmb3IgdGhlIHNhbWUgcmVhc29uLgogICAgICAgKHNldHEgbGluZS1w cmVmaXggbmlsCiAJICAgIHdyYXAtcHJlZml4IG5pbCkKKyAgICAgIChpZiBidWZmZXIKKyAg ICAgICAgICAoc2V0cS1sb2NhbCBmYWNlLXJlbWFwcGluZy1hbGlzdAorICAgICAgICAgICAg ICAgICAgICAgICh3aXRoLWN1cnJlbnQtYnVmZmVyIGJ1ZmZlcgorICAgICAgICAgICAgICAg ICAgICAgICAgZmFjZS1yZW1hcHBpbmctYWxpc3QpKQorICAgICAgICAoa2lsbC1sb2NhbC12 YXJpYWJsZSAnZmFjZS1yZW1hcHBpbmctYWxpc3QpKQogICAgICAgKGluc2VydCAocHJvcGVy dGl6ZSBzdHJpbmcgJ2xpbmUtcHJlZml4IG5pbCAnd3JhcC1wcmVmaXggbmlsKSkKICAgICAg IChjYXIgKGJ1ZmZlci10ZXh0LXBpeGVsLXNpemUgbmlsIG5pbCB0KSkpKSkKIApkaWZmIC0t Z2l0IGEvbGlzcC92aXN1YWwtd3JhcC5lbCBiL2xpc3AvdmlzdWFsLXdyYXAuZWwKaW5kZXgg ZDk1Y2Y0YmI1NjkuLmQyY2ViMGIxN2NhIDEwMDY0NAotLS0gYS9saXNwL3Zpc3VhbC13cmFw LmVsCisrKyBiL2xpc3AvdmlzdWFsLXdyYXAuZWwKQEAgLTk3LDI0ICs5Nyw4NiBAQCB2aXN1 YWwtd3JhcC0tcHJlZml4LWZhY2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChpZiAodmlzdWFsLXdyYXAtLWZhY2UtZXh0ZW5kLXAgZikgZikpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZW9sLWZhY2UpKSkpKSkpCiAKLShkZWZ1biB2aXN1YWwtd3Jh cC0tcHJlZml4IChmY3ApCi0gIChsZXQgKChmY3AtbGVuIChzdHJpbmctd2lkdGggZmNwKSkp Ci0gICAgKGNvbmQKLSAgICAgKCg9IDAgdmlzdWFsLXdyYXAtZXh0cmEtaW5kZW50KQotICAg ICAgZmNwKQotICAgICAoKDwgMCB2aXN1YWwtd3JhcC1leHRyYS1pbmRlbnQpCi0gICAgICAo Y29uY2F0IGZjcCAobWFrZS1zdHJpbmcgdmlzdWFsLXdyYXAtZXh0cmEtaW5kZW50ID9ccykp KQotICAgICAoKDwgMCAoKyB2aXN1YWwtd3JhcC1leHRyYS1pbmRlbnQgZmNwLWxlbikpCi0g ICAgICAoc3Vic3RyaW5nIGZjcAotICAgICAgICAgICAgICAgICAwCi0gICAgICAgICAgICAg ICAgICgrIHZpc3VhbC13cmFwLWV4dHJhLWluZGVudCBmY3AtbGVuKSkpCi0gICAgICh0Ci0g ICAgICAiIikpKSkKKyhkZWZ1biB2aXN1YWwtd3JhcC0tYWRqdXN0LXByZWZpeCAocHJlZml4 KQorICAiQWRqdXN0IFBSRUZJWCB3aXRoIGB2aXN1YWwtd3JhcC1leHRyYS1pbmRlbnQnLiIK KyAgKGlmIChudW1iZXJwIHByZWZpeCkKKyAgICAgICgrIHZpc3VhbC13cmFwLWV4dHJhLWlu ZGVudCBwcmVmaXgpCisgICAgKGxldCAoKHByZWZpeC1sZW4gKHN0cmluZy13aWR0aCBwcmVm aXgpKSkKKyAgICAgIChjb25kCisgICAgICAgKCg9IDAgdmlzdWFsLXdyYXAtZXh0cmEtaW5k ZW50KQorICAgICAgICBwcmVmaXgpCisgICAgICAgKCg8IDAgdmlzdWFsLXdyYXAtZXh0cmEt aW5kZW50KQorICAgICAgICAoY29uY2F0IHByZWZpeCAobWFrZS1zdHJpbmcgdmlzdWFsLXdy YXAtZXh0cmEtaW5kZW50ID9ccykpKQorICAgICAgICgoPCAwICgrIHZpc3VhbC13cmFwLWV4 dHJhLWluZGVudCBwcmVmaXgtbGVuKSkKKyAgICAgICAgKHN1YnN0cmluZyBwcmVmaXgKKyAg ICAgICAgICAgICAgICAgICAwICgrIHZpc3VhbC13cmFwLWV4dHJhLWluZGVudCBwcmVmaXgt bGVuKSkpCisgICAgICAgKHQKKyAgICAgICAgIiIpKSkpKQorCisoZGVmdW4gdmlzdWFsLXdy YXAtLWFwcGx5LXRvLWxpbmUgKHBvc2l0aW9uKQorICAiQXBwbHkgdmlzdWFsLXdyYXBwaW5n IHByb3BlcnRpZXMgdG8gdGhlIGxvZ2ljYWwgbGluZSBzdGFydGluZyBhdCBQT1NJVElPTi4i CisgIChzYXZlLWV4Y3Vyc2lvbgorICAgIChnb3RvLWNoYXIgcG9zaXRpb24pCisgICAgKGxl dCogKChmaXJzdC1saW5lLXByZWZpeCAoZmlsbC1tYXRjaC1hZGFwdGl2ZS1wcmVmaXgpKQor ICAgICAgICAgICAobmV4dC1saW5lLXByZWZpeCAodmlzdWFsLXdyYXAtLWNvbnRlbnQtcHJl Zml4CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJzdC1saW5lLXByZWZpeCBw b3NpdGlvbikpKQorICAgICAgKHdoZW4gbmV4dC1saW5lLXByZWZpeAorICAgICAgICAod2hl biAobnVtYmVycCBuZXh0LWxpbmUtcHJlZml4KQorICAgICAgICAgIChwdXQtdGV4dC1wcm9w ZXJ0eQorICAgICAgICAgICBwb3NpdGlvbiAoKyBwb3NpdGlvbiAobGVuZ3RoIGZpcnN0LWxp bmUtcHJlZml4KSkgJ2Rpc3BsYXkKKyAgICAgICAgICAgYChtaW4td2lkdGggKCgsbmV4dC1s aW5lLXByZWZpeCAuIHdpZHRoKSkpKSkKKyAgICAgICAgKHNldHEgbmV4dC1saW5lLXByZWZp eCAodmlzdWFsLXdyYXAtLWFkanVzdC1wcmVmaXggbmV4dC1saW5lLXByZWZpeCkpCisgICAg ICAgIChwdXQtdGV4dC1wcm9wZXJ0eQorICAgICAgICAgcG9zaXRpb24gKGxpbmUtZW5kLXBv c2l0aW9uKSAnd3JhcC1wcmVmaXgKKyAgICAgICAgIChpZiAobnVtYmVycCBuZXh0LWxpbmUt cHJlZml4KQorICAgICAgICAgICAgIGAoc3BhY2UgOmFsaWduLXRvICgsbmV4dC1saW5lLXBy ZWZpeCAuIHdpZHRoKSkKKyAgICAgICAgICAgbmV4dC1saW5lLXByZWZpeCkpKSkpKQorCiso ZGVmdW4gdmlzdWFsLXdyYXAtLWNvbnRlbnQtcHJlZml4IChwcmVmaXggcG9zaXRpb24pCisg ICJHZXQgdGhlIG5leHQtbGluZSBwcmVmaXggZm9yIHRoZSBzcGVjaWZpZWQgZmlyc3QtbGlu ZSBQUkVGSVguCitQT1NJVElPTiBpcyB0aGUgcG9zaXRpb24gaW4gdGhlIGJ1ZmZlciB3aGVy ZSBQUkVGSVggaXMgbG9jYXRlZC4KKworVGhpcyByZXR1cm5zIGEgc3RyaW5nIHByZWZpeCB0 byB1c2UgZm9yIHN1YnNlcXVlbnQgbGluZXM7IGFuIGludGVnZXIsCitpbmRpY2F0aW5nIHRo ZSBudW1iZXIgb2YgY2Fub25pY2FsLXdpZHRoIHNwYWNlcyB0byB1c2U7IG9yIG5pbCwgaWYK K1BSRUZJWCB3YXMgZW1wdHkuIgorICAoY29uZAorICAgKChzdHJpbmc9IHByZWZpeCAiIikK KyAgICBuaWwpCisgICAoKHN0cmluZy1tYXRjaCAocnggYm9zICgrIGJsYW5rKSBlb3MpIHBy ZWZpeCkKKyAgICA7OyBJZiB0aGUgZmlyc3QtbGluZSBwcmVmaXggaXMgYWxsIHNwYWNlcywg cmV0dXJuIGl0cyB3aWR0aCBpbgorICAgIDs7IGNoYXJhY3RlcnMuICBUaGlzIHdheSwgd2Ug Y2FuIHNldCB0aGUgcHJlZml4IGZvciBhbGwgbGluZXMgdG8gdXNlCisgICAgOzsgdGhlIGNh bm9uaWNhbC13aWR0aCBvZiB0aGUgZm9udCwgd2hpY2ggaGVscHMgZm9yIHZhcmlhYmxlLXBp dGNoCisgICAgOzsgZm9udHMgd2hlcmUgc3BhY2UgY2hhcmFjdGVycyBhcmUgdXN1YWxseSBx dWl0ZSBuYXJyb3cuCisgICAgKHN0cmluZy13aWR0aCBwcmVmaXgpKQorICAgKChvciAoYW5k IGFkYXB0aXZlLWZpbGwtZmlyc3QtbGluZS1yZWdleHAKKyAgICAgICAgICAgICAoc3RyaW5n LW1hdGNoIGFkYXB0aXZlLWZpbGwtZmlyc3QtbGluZS1yZWdleHAgcHJlZml4KSkKKyAgICAg ICAgKGFuZCBjb21tZW50LXN0YXJ0LXNraXAKKyAgICAgICAgICAgICAoc3RyaW5nLW1hdGNo IGNvbW1lbnQtc3RhcnQtc2tpcCBwcmVmaXgpKSkKKyAgICA7OyBJZiB3ZSB3YW50IHRvIHJl cGVhdCB0aGUgZmlyc3QtbGluZSBwcmVmaXggb24gc3Vic2VxdWVudCBsaW5lcywKKyAgICA7 OyByZXR1cm4gaXRzIHN0cmluZyB2YWx1ZS4gIEhvd2V2ZXIsIHdlIHJlbW92ZSBhbnkgYHdy YXAtcHJlZml4JworICAgIDs7IHByb3BlcnR5IHRoYXQgbWlnaHQgaGF2ZSBiZWVuIGFkZGVk IGVhcmxpZXIuICBPdGhlcndpc2UsIHdlIGVuZAorICAgIDs7IHVwIHdpdGggYSBzdHJpbmcg Y29udGFpbmluZyBhIGB3cmFwLXByZWZpeCcgc3RyaW5nIGNvbnRhaW5pbmcgYQorICAgIDs7 IGB3cmFwLXByZWZpeCcgc3RyaW5nLi4uCisgICAgKHJlbW92ZS10ZXh0LXByb3BlcnRpZXMg MCAobGVuZ3RoIHByZWZpeCkgJyh3cmFwLXByZWZpeCkgcHJlZml4KQorICAgIHByZWZpeCkK KyAgICh0CisgICAgOzsgT3RoZXJ3aXNlLCB3ZSB3YW50IHRoZSBwcmVmaXggdG8gYmUgd2hp dGVzcGFjZSBvZiB0aGUgc2FtZSB3aWR0aAorICAgIDs7IGFzIHRoZSBmaXJzdC1saW5lIHBy ZWZpeC4gIElmIHBvc3NpYmxlLCBjb21wdXRlIHRoZSByZWFsIHBpeGVsCisgICAgOzsgd2lk dGggb2YgdGhlIGZpcnN0LWxpbmUgcHJlZml4IGluIGNhbm9uaWNhbC13aWR0aCBjaGFyYWN0 ZXJzLgorICAgIDs7IFRoaXMgaXMgdXNlZnVsIGlmIHRoZSBmaXJzdC1saW5lIHByZWZpeCB1 c2VzIHNvbWUgdmVyeS13aWRlCisgICAgOzsgY2hhcmFjdGVycy4KKyAgICAoaWYtbGV0ICgo Zm9udCAoZm9udC1hdCBwb3NpdGlvbikpCisgICAgICAgICAgICAgKGluZm8gKHF1ZXJ5LWZv bnQgZm9udCkpKQorICAgICAgICAobWF4IChzdHJpbmctd2lkdGggcHJlZml4KQorICAgICAg ICAgICAgIChjZWlsaW5nIChzdHJpbmctcGl4ZWwtd2lkdGggcHJlZml4IChjdXJyZW50LWJ1 ZmZlcikpCisgICAgICAgICAgICAgICAgICAgICAgKGFyZWYgaW5mbyA3KSkpCisgICAgICAo c3RyaW5nLXdpZHRoIHByZWZpeCkpKSkpCiAKIChkZWZ1biB2aXN1YWwtd3JhcC1maWxsLWNv bnRleHQtcHJlZml4IChiZWcgZW5kKQogICAiQ29tcHV0ZSB2aXN1YWwgd3JhcCBwcmVmaXgg ZnJvbSB0ZXh0IGJldHdlZW4gQkVHIGFuZCBFTkQuCiBUaGlzIGlzIGxpa2UgYGZpbGwtY29u dGV4dC1wcmVmaXgnLCBidXQgd2l0aCBwcmVmaXggbGVuZ3RoIGFkanVzdGVkCiBieSBgdmlz dWFsLXdyYXAtZXh0cmEtaW5kZW50Jy4iCisgIChkZWNsYXJlIChvYnNvbGV0ZSBuaWwgIjMx LjEiKSkKICAgKGxldCogKChmY3AKICAgICAgICAgICA7OyBgZmlsbC1jb250ZXh0LXByZWZp eCcgaWdub3JlcyBwcmVmaXhlcyB0aGF0IGxvb2sgbGlrZQogICAgICAgICAgIDs7IHBhcmFn cmFwaCBzdGFydHMsIGluIG9yZGVyIHRvIGF2b2lkIGluYWR2ZXJ0ZW50bHkKQEAgLTEyOCw3 ICsxOTAsNyBAQCB2aXN1YWwtd3JhcC1maWxsLWNvbnRleHQtcHJlZml4CiAgICAgICAgICAg ICAgICAgICA7OyBOb3RlOiBmaWxsLWNvbnRleHQtcHJlZml4IG1heSByZXR1cm4gbmlsOyBT ZWU6CiAgICAgICAgICAgICAgICAgICA7OyBodHRwOi8vYXJ0aWNsZS5nbWFuZS5vcmcvZ21h bmUuZW1hY3MuZGV2ZWwvMTU2Mjg1CiAgICAgICAgICAgICAgICIiKSkKLSAgICAgICAgIChw cmVmaXggKHZpc3VhbC13cmFwLS1wcmVmaXggZmNwKSkKKyAgICAgICAgIChwcmVmaXggKHZp c3VhbC13cmFwLS1hZGp1c3QtcHJlZml4IGZjcCkpCiAgICAgICAgICAoZmFjZSAodmlzdWFs LXdyYXAtLXByZWZpeC1mYWNlIGZjcCBiZWcgZW5kKSkpCiAgICAgKGlmIGZhY2UKICAgICAg ICAgKHByb3BlcnRpemUgcHJlZml4ICdmYWNlIGZhY2UpCkBAIC0xNDcsMjggKzIwOSw4IEBA IHZpc3VhbC13cmFwLXByZWZpeC1mdW5jdGlvbgogICAoZm9yd2FyZC1saW5lIDApCiAgIChz ZXRxIGJlZyAocG9pbnQpKQogICAod2hpbGUgKDwgKHBvaW50KSBlbmQpCi0gICAgKGxldCAo KGxicCAocG9pbnQpKSkKLSAgICAgIChwdXQtdGV4dC1wcm9wZXJ0eQotICAgICAgIChwb2lu dCkgKHByb2duIChzZWFyY2gtZm9yd2FyZCAiXG4iIGVuZCAnbW92ZSkgKHBvaW50KSkKLSAg ICAgICAnd3JhcC1wcmVmaXgKLSAgICAgICAobGV0ICgocGZ4ICh2aXN1YWwtd3JhcC1maWxs LWNvbnRleHQtcHJlZml4Ci0JCSAgIGxicCAocG9pbnQpKSkpCi0JIDs7IFJlbW92ZSBhbnkg YHdyYXAtcHJlZml4JyBwcm9wZXJ0eSB0aGF0IG1pZ2h0IGhhdmUgYmVlbgotCSA7OyBhZGRl ZCBlYXJsaWVyLiAgT3RoZXJ3aXNlLCB3ZSBlbmQgdXAgd2l0aCBhIHN0cmluZwotCSA7OyBj b250YWluaW5nIGEgYHdyYXAtcHJlZml4JyBzdHJpbmcgY29udGFpbmluZyBhCi0JIDs7IGB3 cmFwLXByZWZpeCcgc3RyaW5nIC4uLgotCSAocmVtb3ZlLXRleHQtcHJvcGVydGllcwotCSAg MCAobGVuZ3RoIHBmeCkgJyh3cmFwLXByZWZpeCkgcGZ4KQotICAgICAgICAgKGxldCAoKGRw IChnZXQtdGV4dC1wcm9wZXJ0eSAwICdkaXNwbGF5IHBmeCkpKQotICAgICAgICAgICAod2hl biAoYW5kIGRwIChlcSBkcCAoZ2V0LXRleHQtcHJvcGVydHkgKDEtIGxicCkgJ2Rpc3BsYXkp KSkKLSAgICAgICAgICAgICA7OyBUaGVyZSdzIGEgYGRpc3BsYXknIHByb3BlcnR5IHdoaWNo IGNvdmVycyBub3QganVzdCB0aGUKLSAgICAgICAgICAgICA7OyBwcmVmaXggYnV0IGFsc28g dGhlIHByZXZpb3VzIG5ld2xpbmUuICBTbyBpdCdzIG5vdAotICAgICAgICAgICAgIDs7IGp1 c3QgbWFraW5nIHRoZSBwcmVmaXggbW9yZSBwcmV0dHkgYW5kIGNvdWxkIGludGVyZmVyZQot ICAgICAgICAgICAgIDs7IG9yIGV2ZW4gZGVmZWF0IG91ciBlZmZvcnRzIChlLmcuIGl0IGNv bWVzIGZyb20KLSAgICAgICAgICAgICA7OyBgYWRhcHRpdmUtZmlsbC1tb2RlJykuCi0gICAg ICAgICAgICAgKHJlbW92ZS10ZXh0LXByb3BlcnRpZXMKLQkgICAgICAwIChsZW5ndGggcGZ4 KSAnKGRpc3BsYXkpIHBmeCkpKQotCSBwZngpKSkpCisgICAgKHZpc3VhbC13cmFwLS1hcHBs eS10by1saW5lIChwb2ludCkpCisgICAgKGZvcndhcmQtbGluZSkpCiAgIGAoaml0LWxvY2st Ym91bmRzICxiZWcgLiAsZW5kKSkKIAogOzs7IyMjYXV0b2xvYWQKLS0gCjIuMjUuMQoK --------------S0n0BM1s7kxXeIi0Gq43BsUT Content-Type: text/plain; charset=UTF-8; name="wrap.el" Content-Disposition: attachment; filename="wrap.el" Content-Transfer-Encoding: base64 KHN3aXRjaC10by1idWZmZXIgKGdldC1idWZmZXItY3JlYXRlICJkZW1vIikpCihidWZmZXIt ZmFjZS1zZXQgJ3ZhcmlhYmxlLXBpdGNoKQoKKHNldHEgd29yZHMgIlZvbHVwdGF0ZW0gZXN0 IG5vc3RydW0gaW1wZWRpdCBuZXNjaXVudCBldW0uIFJlY3VzYW5kYWUgdm9sdXB0YXRlbSBx dWFlcmF0IGhpYyBoYXJ1bS4gQ29uc2VxdWF0dXIgaW4gZnVnYSBuaWhpbCBhbGlxdWlkIGNv bW1vZGkgcmVtIHN1bnQuIEFwZXJpYW0gb2RpbyBvZGlvIGFtZXQuIikKCihpbnNlcnQgd29y ZHMgIlxuXG4iKQooaW5zZXJ0ICIgICIgd29yZHMgIlxuXG4iKQooaW5zZXJ0ICIqICIgd29y ZHMgIlxuXG4iKQooaW5zZXJ0ICIjIyAiIHdvcmRzICJcblxuIikKKGluc2VydCAocHJvcGVy dGl6ZSAoY29uY2F0ICIjIyAiIHdvcmRzICJcbiIpCiAgICAgICAgICAgICAgICAgICAgJ2Zh Y2UgJyg6YmFja2dyb3VuZCAicmVkIiA6aGVpZ2h0IDMwMCkpKQooZ290by1jaGFyIChwb2lu dC1taW4pKQoKKHNldHEgZXh0cmEtaW5kZW50IChwb3AgY29tbWFuZC1saW5lLWFyZ3MtbGVm dCkpCih3aGVuIGV4dHJhLWluZGVudAogIChzZXRxIHZpc3VhbC13cmFwLWV4dHJhLWluZGVu dCAoc3RyaW5nLXRvLW51bWJlciBleHRyYS1pbmRlbnQpKSkKCih2aXN1YWwtbGluZS1tb2Rl KQoodmlzdWFsLXdyYXAtcHJlZml4LW1vZGUpCg== --------------S0n0BM1s7kxXeIi0Gq43BsUT--