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#72485: Support 'visual-wrap-prefix-mode' in SHR/EWW Date: Mon, 5 Aug 2024 20:47:52 -0700 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------1Xt5M4ePysxEncC56MvjJmje" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="39446"; mail-complaints-to="usenet@ciao.gmane.io" To: 72485@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Tue Aug 06 05:49:04 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 1sbBC4-000A7G-5a for geb-bug-gnu-emacs@m.gmane-mx.org; Tue, 06 Aug 2024 05:49:04 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sbBBh-00088w-OT; Mon, 05 Aug 2024 23:48:41 -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 1sbBBf-00088h-SN for bug-gnu-emacs@gnu.org; Mon, 05 Aug 2024 23:48:40 -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 1sbBBf-0000Rv-If for bug-gnu-emacs@gnu.org; Mon, 05 Aug 2024 23:48:39 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=debbugs.gnu.org; s=debbugs-gnu-org; h=From:MIME-Version:Date:To:Subject; bh=yljPzvSJ46QKIgAS4ouaFOIbx1P+YkxWGvIq7mBRrH0=; b=A6RnaVYAyiEoXtMmHwKy5Y5mHX99mFSAabRrRaITi34Lx+g7JaHVCOEfROvUN7OqT/AV3R62DFm5k4Ndj+S3mZgwQnH4+8VwVzoic36XMGR3T2TepFZ+oMpWUiQJYzslysaAgqyzHYhUS7G5KWI2dFum9qhZct6IW5Ih73FmbvXE2hXVnDbWGGhZfVj/lB3mI/1hW4VFoM1W/CHcvCQVfIoE3iFm7qSQgVdv7QFRmZB5O4TcnrMrsoHrHQp0yZOXViaIJsDC+NnQlOlYQ3RpGXj7l1KTa6DIc5jEaOt0aMxgAyjLL1UqFVmEoZimS0I0k8t81MIfvfZkVY/nUiigFA==; Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1sbBC2-0002TR-LG for bug-gnu-emacs@gnu.org; Mon, 05 Aug 2024 23:49: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: Tue, 06 Aug 2024 03:49:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 72485 X-GNU-PR-Package: emacs X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.17229161049432 (code B ref -1); Tue, 06 Aug 2024 03:49:02 +0000 Original-Received: (at submit) by debbugs.gnu.org; 6 Aug 2024 03:48:24 +0000 Original-Received: from localhost ([127.0.0.1]:59786 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sbBBP-0002S1-CF for submit@debbugs.gnu.org; Mon, 05 Aug 2024 23:48:24 -0400 Original-Received: from lists.gnu.org ([209.51.188.17]:34078) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sbBBN-0002Rq-5k for submit@debbugs.gnu.org; Mon, 05 Aug 2024 23:48:22 -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 1sbBAz-00084W-Gj for bug-gnu-emacs@gnu.org; Mon, 05 Aug 2024 23:47:57 -0400 Original-Received: from mail-pl1-x62d.google.com ([2607:f8b0:4864:20::62d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1sbBAx-0000P8-Fi for bug-gnu-emacs@gnu.org; Mon, 05 Aug 2024 23:47:57 -0400 Original-Received: by mail-pl1-x62d.google.com with SMTP id d9443c01a7336-1fed72d23a7so1195835ad.1 for ; Mon, 05 Aug 2024 20:47:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1722916074; x=1723520874; darn=gnu.org; h=subject:from:to:content-language:mime-version:date:message-id:from :to:cc:subject:date:message-id:reply-to; bh=yljPzvSJ46QKIgAS4ouaFOIbx1P+YkxWGvIq7mBRrH0=; b=c2w6rvTpntQplH93P3QSGVE7iE02yAxxavuQ1CjNTI3+QiBCourrPBU9wriyZS3tkz jyGy6bAbSEI0UTinIUmkVPJpysp751TJzZsafguK4+BayWHHmQ3cNkv9tgf0xSpznGTk qRNaSUiE2pWu/CyV94BCKrLCV/2IwT4bUDaLog0fD0GUFGfjpxrWMbFcOdbrbiZysE9A OoYz6qm4kSmBMRSf6VSGPItfpWscdlfIOryHW/qaWIpxcLxkavc0NCIHjrUPq1BahKsM HBGzcRnlR03gPkPV/X8UynYoq2CyTU+NqbXZT+djsr+DvjIdIqvrvevV9jh2suUTRu34 OPYA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1722916074; x=1723520874; h=subject:from:to:content-language:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=yljPzvSJ46QKIgAS4ouaFOIbx1P+YkxWGvIq7mBRrH0=; b=YGYPcl8E1yTM7SkO1EYzjzAcpxgYdr0haJoJnfZTHNU86aaVBg5I0WpRjmnjfX9Y/A AAs7gJ7qUuNkDFOOCMV0NX1UxHSbbQlsphLxnid0X5c4pky17m4ZDxRh0NjwIMNeNOe5 ZOGAJ+bYKc5JFF1fEZll0CqK1TjTG5mqwje+U2mO/GJuJLkbWEv6QoVea9GTmU/vjRUe t4YHYHhwxliiEGVHw/iW1txwS7TqMsJON6glz0k19bMUw0OdeCSBbaNIazquUL7/x1L0 hCjAoyMIs8g4oOxJjGIIU3LsKBfDZ3X3d5TpiY2raJ+pZxp4jp0WS+jlPENEHuNSOHhH Wb6Q== X-Gm-Message-State: AOJu0YwM8ZDZj2js2mUdQgAbv5H0iAtkSzUx1tUXbK0Cfh3Y9pfzWcqx e9AQoacqIooyFI1AzSlyj5RjdgZRZOtE4F3a3na+MIlURzG6oSJHSjZ4pA== X-Google-Smtp-Source: AGHT+IFw18EYd2pehEA4fy5jle5uUtHYhYX47cksU2IEhM+rpKHzl/Xyuz62vWQysR9LcbCwnlzY/w== X-Received: by 2002:a17:903:2308:b0:1ff:5049:7353 with SMTP id d9443c01a7336-1ff57281c4amr120646165ad.19.1722916073254; Mon, 05 Aug 2024 20:47:53 -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 d9443c01a7336-1ff5929407asm76806935ad.242.2024.08.05.20.47.52 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 05 Aug 2024 20:47:52 -0700 (PDT) X-Mozilla-News-Host: news://news.gmane.io:119 Content-Language: en-US Received-SPF: pass client-ip=2607:f8b0:4864:20::62d; envelope-from=jporterbugs@gmail.com; helo=mail-pl1-x62d.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_HTML_ATTACH=0.01 autolearn=ham autolearn_force=no X-Spam_action: no action 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:289813 Archived-At: This is a multi-part message in MIME format. --------------1Xt5M4ePysxEncC56MvjJmje Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit This patch is an extension of bug#71605, and the first place to explicitly use the new variable-pitch support for 'visual-wrap-prefix-mode'. While implementing this, I found two small bugs in the new 'visual-wrap-prefix-mode' code: 1. When setting the min-width for the first line prefix, we should use 'add-display-text-property' so as not to clobber other display properties. 2. My attempts to be "helpful" by special-casing wrap-prefixes of all spaces ended up just interfering with more complex cases (like SHR), so I removed it. The code is now simpler (one fewer condition) and just works more smoothly overall. There's one limitation to this patch though: since SHR uses absolute pixel-widths for indenting internally, things can look mis-indented if you scale the text in the buffer. However, SHR has exactly the same issue when *not* using 'visual-wrap-prefix-mode', so it's really just a more-general bug in SHR. (It'd be nice to fix that, but I'd have to get a better understanding of how indentation and elements interact.) Attached is a test HTML page that shows off the indentation. You can see the results by running: emacs -Q --eval '(progn (setq shr-fill-text nil) (eww "test.html"))' (And also compare to the default behavior where 'shr-fill-text' is non-nil.) --------------1Xt5M4ePysxEncC56MvjJmje Content-Type: text/plain; charset=UTF-8; name="0001-Improve-SHR-EWW-support-for-visual-wrap-prefix-mode.patch" Content-Disposition: attachment; filename*0="0001-Improve-SHR-EWW-support-for-visual-wrap-prefix-mode.pat"; filename*1="ch" Content-Transfer-Encoding: base64 RnJvbSA1ZTFkZTA5YWY1Mzk4YmQwYTYwNjgzZWJmNTNiZWYzZjg3NDQwYTkxIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFN1biwgNCBBdWcgMjAyNCAxOTozNzowMCAtMDcwMApTdWJqZWN0OiBbUEFU Q0hdIEltcHJvdmUgU0hSL0VXVyBzdXBwb3J0IGZvciAndmlzdWFsLXdyYXAtcHJlZml4LW1v ZGUnCgoqIGxpc3AvdmlzdWFsLXdyYXAuZWwgKHZpc3VhbC13cmFwLS1hcHBseS10by1saW5l KTogVXNlCidhZGQtZGlzcGxheS10ZXh0LXByb3BlcnR5JyBzbyB3ZSBkb24ndCBjbG9iYmVy IG90aGVyIGRpc3BsYXkKcHJvcGVydGllcy4KKHZpc3VhbC13cmFwLS1jb250ZW50LXByZWZp eCk6IFJlbW92ZSBzcGVjaWFsLWNhc2UgZm9yIHNwYWNlcy1vbmx5CmluZGVudCBwcmVmaXg7 IHRoaXMgd2FzIGFuIGF0dGVtcHQgdG8gYmUgaGVscGZ1bCBmb3IgdmFyaWFibGUtcGl0Y2gK Zm9udHMsIGJ1dCBpbiBwcmFjdGljZSBqdXN0IGludGVyZmVyZXMgd2l0aCBtYXR0ZXJzLiAg VGhpcyBjYXNlIG5vdwpmYWxscyBiYWNrIHRvIHRoZSBvbmUgaW1tZWRpYXRlbHkgZm9sbG93 aW5nIGl0IChyZXR1cm4gdGhlIHN0cmluZyBvZgpzcGFjZXMpLikKCiogbGlzcC9uZXQvc2hy LmVsIChzaHItaW5kZW50KTogU2V0ICdzaHItcHJlZml4LWxlbmd0aCcgaGVyZSB0byBoZWxw CmtlZXAgdHJhY2sgb2YgdGhlIHByZWZpeGVzIG9mIG5lc3RlZGx5LWluZGVudGVkIGVsZW1l bnRzLgoqIGxpc3AvbmV0L3Noci5lbCAoc2hyLWFkYXB0aXZlLWZpbGwtZnVuY3Rpb24pOiBV c2UgJ3Noci1wcmVmaXgtbGVuZ3RoJwphcyBzZXQgYWJvdmUgdG8gcmV0dXJuIGEgZmlsbCBw cmVmaXguCgoqIGxpc3AvbmV0L2V3dy5lbCAoZXd3LXJlbmRlcik6IEVuYWJsZSAndmlzdWFs LXdyYXAtcHJlZml4LW1vZGUnCmFsb25nc2lkZSBvZiAndmlzdWFsLWxpbmUtbW9kZScuCihl d3ctbW9kZSk6IFNldCAnYWRhcHRpdmUtZmlsbC1mdW5jdGlvbicgdG8KJ3Noci1hZGFwdGl2 ZS1maWxsLWZ1bmN0aW9uJy4KLS0tCiBsaXNwL25ldC9ld3cuZWwgICAgIHwgIDUgKysrKy0K IGxpc3AvbmV0L3Noci5lbCAgICAgfCAxOSArKysrKysrKysrKysrKy0tLS0tCiBsaXNwL3Zp c3VhbC13cmFwLmVsIHwgMTIgKysrLS0tLS0tLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDIxIGlu c2VydGlvbnMoKyksIDE1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpc3AvbmV0L2V3 dy5lbCBiL2xpc3AvbmV0L2V3dy5lbAppbmRleCBiMmUxYzVhNzJlNS4uYjVkMmYyMDc4MWEg MTAwNjQ0Ci0tLSBhL2xpc3AvbmV0L2V3dy5lbAorKysgYi9saXNwL25ldC9ld3cuZWwKQEAg LTcwOSw3ICs3MDksOCBAQCBld3ctcmVuZGVyCiAJICAgICAgKGFuZCBsYXN0LWNvZGluZy1z eXN0ZW0tdXNlZAogCQkgICAoc2V0LWJ1ZmZlci1maWxlLWNvZGluZy1zeXN0ZW0gbGFzdC1j b2Rpbmctc3lzdGVtLXVzZWQpKQogICAgICAgICAgICAgICAodW5sZXNzIHNoci1maWxsLXRl eHQKLSAgICAgICAgICAgICAgICAodmlzdWFsLWxpbmUtbW9kZSkpCisgICAgICAgICAgICAg ICAgKHZpc3VhbC1saW5lLW1vZGUpCisgICAgICAgICAgICAgICAgKHZpc3VhbC13cmFwLXBy ZWZpeC1tb2RlKSkKIAkgICAgICAocnVuLWhvb2tzICdld3ctYWZ0ZXItcmVuZGVyLWhvb2sp CiAgICAgICAgICAgICAgIDs7IEVuYWJsZSB1bmRvIGFnYWluIHNvIHRoYXQgdW5kbyB3b3Jr cyBpbiB0ZXh0IGlucHV0CiAgICAgICAgICAgICAgIDs7IGJveGVzLgpAQCAtMTMzNiw2ICsx MzM3LDggQEAgZXd3LW1vZGUKICAgOzsgZGVza3RvcCBzdXBwb3J0CiAgIChzZXRxLWxvY2Fs IGRlc2t0b3Atc2F2ZS1idWZmZXIgIydld3ctZGVza3RvcC1taXNjLWRhdGEpCiAgIChzZXRx IHRydW5jYXRlLWxpbmVzIHQpCisgIDs7IHZpc3VhbC13cmFwLXByZWZpeC1tb2RlIHN1cHBv cnQKKyAgKHNldHEtbG9jYWwgYWRhcHRpdmUtZmlsbC1mdW5jdGlvbiAjJ3Noci1hZGFwdGl2 ZS1maWxsLWZ1bmN0aW9uKQogICA7OyB0aGluZ2F0cHQgc3VwcG9ydAogICAoc2V0cS1sb2Nh bCB0aGluZy1hdC1wb2ludC1wcm92aWRlci1hbGlzdAogICAgICAgICAgICAgICAoY29ucyAn KHVybCAuIGV3dy0tdXJsLWF0LXBvaW50KQpkaWZmIC0tZ2l0IGEvbGlzcC9uZXQvc2hyLmVs IGIvbGlzcC9uZXQvc2hyLmVsCmluZGV4IGQzYzQ4YjM0NDI4Li5hMGY5Y2QyNTJkMiAxMDA2 NDQKLS0tIGEvbGlzcC9uZXQvc2hyLmVsCisrKyBiL2xpc3AvbmV0L3Noci5lbApAQCAtOTM4 LDYgKzkzOCwxMSBAQCBzaHItZmlsbC1saW5lCiAgICAgICAgICh3aGVuIChsb29raW5nLWF0 ICIgJCIpCiAJICAoZGVsZXRlLXJlZ2lvbiAocG9pbnQpIChsaW5lLWVuZC1wb3NpdGlvbikp KSkpKSkKIAorKGRlZnVuIHNoci1hZGFwdGl2ZS1maWxsLWZ1bmN0aW9uICgpCisgICJSZXR1 cm4gYSBmaWxsIHByZWZpeCBmb3IgdGhlIHBhcmFncmFwaCBhdCBwb2ludC4iCisgICh3aGVu LWxldCAoKHByZWZpeCAoZ2V0LXRleHQtcHJvcGVydHkgKHBvaW50KSAnc2hyLXByZWZpeC1s ZW5ndGgpKSkKKyAgICAoYnVmZmVyLXN1YnN0cmluZyAocG9pbnQpICgrIChwb2ludCkgcHJl Zml4KSkpKQorCiAoZGVmdW4gc2hyLXBhcnNlLWJhc2UgKHVybCkKICAgOzsgQWx3YXlzIGNo b3Agb2ZmIGFuY2hvcnMuCiAgICh3aGVuIChzdHJpbmctbWF0Y2ggIiMuKiIgdXJsKQpAQCAt MTA0MSwxMSArMTA0NiwxNSBAQCBzaHItZW5zdXJlLXBhcmFncmFwaAogCiAoZGVmdW4gc2hy LWluZGVudCAoKQogICAod2hlbiAoPiBzaHItaW5kZW50YXRpb24gMCkKLSAgICAoaWYgKG5v dCBzaHItdXNlLWZvbnRzKQotICAgICAgICAoaW5zZXJ0LWNoYXIgP1xzIHNoci1pbmRlbnRh dGlvbikKLSAgICAgIChpbnNlcnQgP1xzKQotICAgICAgKHB1dC10ZXh0LXByb3BlcnR5ICgx LSAocG9pbnQpKSAocG9pbnQpCi0gICAgICAgICAgICAgICAgICAgICAgICAgJ2Rpc3BsYXkg YChzcGFjZSA6d2lkdGggKCxzaHItaW5kZW50YXRpb24pKSkpKSkKKyAgICAobGV0ICgoc3Rh cnQgKHBvaW50KSkKKyAgICAgICAgICAocHJlZml4IChvciAoZ2V0LXRleHQtcHJvcGVydHkg KHBvaW50KSAnc2hyLXByZWZpeC1sZW5ndGgpIDApKSkKKyAgICAgIChpZiAobm90IHNoci11 c2UtZm9udHMpCisgICAgICAgICAgKGluc2VydC1jaGFyID9ccyBzaHItaW5kZW50YXRpb24p CisgICAgICAgIChpbnNlcnQgP1xzKQorICAgICAgICAocHV0LXRleHQtcHJvcGVydHkgc3Rh cnQgKHBvaW50KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Rpc3BsYXkgYChzcGFj ZSA6d2lkdGggKCxzaHItaW5kZW50YXRpb24pKSkpCisgICAgICAocHV0LXRleHQtcHJvcGVy dHkgc3RhcnQgKCsgKHBvaW50KSBwcmVmaXgpCisgICAgICAgICAgICAgICAgICAgICAgICAg J3Noci1wcmVmaXgtbGVuZ3RoICgrIHByZWZpeCAoLSAocG9pbnQpIHN0YXJ0KSkpKSkpCiAK IChkZWZ1biBzaHItZm9udGl6ZS1kb20gKGRvbSAmcmVzdCB0eXBlcykKICAgKGxldCAoKHN0 YXJ0IChwb2ludCkpKQpkaWZmIC0tZ2l0IGEvbGlzcC92aXN1YWwtd3JhcC5lbCBiL2xpc3Av dmlzdWFsLXdyYXAuZWwKaW5kZXggY2FjM2JjNzY3YjguLjUxYzAyMTNhMDM3IDEwMDY0NAot LS0gYS9saXNwL3Zpc3VhbC13cmFwLmVsCisrKyBiL2xpc3AvdmlzdWFsLXdyYXAuZWwKQEAg LTEyMSw5ICsxMjEsOSBAQCB2aXN1YWwtd3JhcC0tYXBwbHktdG8tbGluZQogICAgICAgICAg ICAgICAgKG5leHQtbGluZS1wcmVmaXggKHZpc3VhbC13cmFwLS1jb250ZW50LXByZWZpeAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0LWxpbmUtcHJlZml4IHBv c2l0aW9uKSkpCiAgICAgICAod2hlbiAobnVtYmVycCBuZXh0LWxpbmUtcHJlZml4KQotICAg ICAgICAocHV0LXRleHQtcHJvcGVydHkKLSAgICAgICAgIHBvc2l0aW9uICgrIHBvc2l0aW9u IChsZW5ndGggZmlyc3QtbGluZS1wcmVmaXgpKSAnZGlzcGxheQotICAgICAgICAgYChtaW4t d2lkdGggKCgsbmV4dC1saW5lLXByZWZpeCAuIHdpZHRoKSkpKSkKKyAgICAgICAgKGFkZC1k aXNwbGF5LXRleHQtcHJvcGVydHkKKyAgICAgICAgIHBvc2l0aW9uICgrIHBvc2l0aW9uIChs ZW5ndGggZmlyc3QtbGluZS1wcmVmaXgpKSAnbWluLXdpZHRoCisgICAgICAgICBgKCgsbmV4 dC1saW5lLXByZWZpeCAuIHdpZHRoKSkpKQogICAgICAgKHNldHEgbmV4dC1saW5lLXByZWZp eCAodmlzdWFsLXdyYXAtLWFkanVzdC1wcmVmaXggbmV4dC1saW5lLXByZWZpeCkpCiAgICAg ICAocHV0LXRleHQtcHJvcGVydHkKICAgICAgICBwb3NpdGlvbiAobGluZS1lbmQtcG9zaXRp b24pICd3cmFwLXByZWZpeApAQCAtMTQxLDEyICsxNDEsNiBAQCB2aXN1YWwtd3JhcC0tY29u dGVudC1wcmVmaXgKICAgKGNvbmQKICAgICgoc3RyaW5nPSBwcmVmaXggIiIpCiAgICAgbmls KQotICAgKChzdHJpbmctbWF0Y2ggKHJ4IGJvcyAoKyBibGFuaykgZW9zKSBwcmVmaXgpCi0g ICAgOzsgSWYgdGhlIGZpcnN0LWxpbmUgcHJlZml4IGlzIGFsbCBzcGFjZXMsIHJldHVybiBp dHMgd2lkdGggaW4KLSAgICA7OyBjaGFyYWN0ZXJzLiAgVGhpcyB3YXksIHdlIGNhbiBzZXQg dGhlIHByZWZpeCBmb3IgYWxsIGxpbmVzIHRvIHVzZQotICAgIDs7IHRoZSBjYW5vbmljYWwt d2lkdGggb2YgdGhlIGZvbnQsIHdoaWNoIGhlbHBzIGZvciB2YXJpYWJsZS1waXRjaAotICAg IDs7IGZvbnRzIHdoZXJlIHNwYWNlIGNoYXJhY3RlcnMgYXJlIHVzdWFsbHkgcXVpdGUgbmFy cm93LgotICAgIChzdHJpbmctd2lkdGggcHJlZml4KSkKICAgICgob3IgKGFuZCBhZGFwdGl2 ZS1maWxsLWZpcnN0LWxpbmUtcmVnZXhwCiAgICAgICAgICAgICAgKHN0cmluZy1tYXRjaCBh ZGFwdGl2ZS1maWxsLWZpcnN0LWxpbmUtcmVnZXhwIHByZWZpeCkpCiAgICAgICAgIChhbmQg Y29tbWVudC1zdGFydC1za2lwCi0tIAoyLjI1LjEKCg== --------------1Xt5M4ePysxEncC56MvjJmje Content-Type: text/html; charset=UTF-8; name="test.html" Content-Disposition: attachment; filename="test.html" Content-Transfer-Encoding: base64 PG9sPgogIDxsaT5Wb2x1cHRhdGVtIGVzdCBub3N0cnVtIGltcGVkaXQgbmVzY2l1bnQgZXVt LiBSZWN1c2FuZGFlIHZvbHVwdGF0ZW0gcXVhZXJhdAogICAgaGljIGhhcnVtLiBDb25zZXF1 YXR1ciBpbiBmdWdhIG5paGlsIGFsaXF1aWQgY29tbW9kaSByZW0gc3VudC4gQXBlcmlhbSBv ZGlvCiAgICBvZGlvIGFtZXQuPC9saT4KICA8bGk+Vm9sdXB0YXRlbSBlc3Qgbm9zdHJ1bSBp bXBlZGl0IG5lc2NpdW50IGV1bS4gUmVjdXNhbmRhZSB2b2x1cHRhdGVtIHF1YWVyYXQKICAg IGhpYyBoYXJ1bS4gQ29uc2VxdWF0dXIgaW4gZnVnYSBuaWhpbCBhbGlxdWlkIGNvbW1vZGkg cmVtIHN1bnQuIEFwZXJpYW0gb2RpbwogICAgb2RpbyBhbWV0LjwvbGk+CiAgPGxpPkFuZCB0 aGVuOgogICAgPG9sPgogICAgICA8bGk+Vm9sdXB0YXRlbSBlc3Qgbm9zdHJ1bSBpbXBlZGl0 IG5lc2NpdW50IGV1bS4gUmVjdXNhbmRhZSB2b2x1cHRhdGVtCiAgICAgICAgcXVhZXJhdCBo aWMgaGFydW0uIENvbnNlcXVhdHVyIGluIGZ1Z2EgbmloaWwgYWxpcXVpZCBjb21tb2RpIHJl bSBzdW50LgogICAgICAgIEFwZXJpYW0gb2RpbyBvZGlvIGFtZXQuPC9saT4KICAgICAgPGxp PlZvbHVwdGF0ZW0gZXN0IG5vc3RydW0gaW1wZWRpdCBuZXNjaXVudCBldW0uIFJlY3VzYW5k YWUgdm9sdXB0YXRlbQogICAgICAgIHF1YWVyYXQgaGljIGhhcnVtLiBDb25zZXF1YXR1ciBp biBmdWdhIG5paGlsIGFsaXF1aWQgY29tbW9kaSByZW0gc3VudC4KICAgICAgICBBcGVyaWFt IG9kaW8gb2RpbyBhbWV0LjwvbGk+CiAgICA8L29sPgogIDwvbGk+Cjwvb2w+Cgo8aHI+Cgo8 dWw+CiAgPGxpPlZvbHVwdGF0ZW0gZXN0IG5vc3RydW0gaW1wZWRpdCBuZXNjaXVudCBldW0u IFJlY3VzYW5kYWUgdm9sdXB0YXRlbSBxdWFlcmF0CiAgICBoaWMgaGFydW0uIENvbnNlcXVh dHVyIGluIGZ1Z2EgbmloaWwgYWxpcXVpZCBjb21tb2RpIHJlbSBzdW50LiBBcGVyaWFtIG9k aW8KICAgIG9kaW8gYW1ldC48L2xpPgogIDxsaT5Wb2x1cHRhdGVtIGVzdCBub3N0cnVtIGlt cGVkaXQgbmVzY2l1bnQgZXVtLiBSZWN1c2FuZGFlIHZvbHVwdGF0ZW0gcXVhZXJhdAogICAg aGljIGhhcnVtLiBDb25zZXF1YXR1ciBpbiBmdWdhIG5paGlsIGFsaXF1aWQgY29tbW9kaSBy ZW0gc3VudC4gQXBlcmlhbSBvZGlvCiAgICBvZGlvIGFtZXQuPC9saT4KICA8bGk+QW5kIHRo ZW46CiAgICA8dWw+CiAgICAgIDxsaT5Wb2x1cHRhdGVtIGVzdCBub3N0cnVtIGltcGVkaXQg bmVzY2l1bnQgZXVtLiBSZWN1c2FuZGFlIHZvbHVwdGF0ZW0KICAgICAgICBxdWFlcmF0IGhp YyBoYXJ1bS4gQ29uc2VxdWF0dXIgaW4gZnVnYSBuaWhpbCBhbGlxdWlkIGNvbW1vZGkgcmVt IHN1bnQuCiAgICAgICAgQXBlcmlhbSBvZGlvIG9kaW8gYW1ldC48L2xpPgogICAgICA8bGk+ Vm9sdXB0YXRlbSBlc3Qgbm9zdHJ1bSBpbXBlZGl0IG5lc2NpdW50IGV1bS4gUmVjdXNhbmRh ZSB2b2x1cHRhdGVtCiAgICAgICAgcXVhZXJhdCBoaWMgaGFydW0uIENvbnNlcXVhdHVyIGlu IGZ1Z2EgbmloaWwgYWxpcXVpZCBjb21tb2RpIHJlbSBzdW50LgogICAgICAgIEFwZXJpYW0g b2RpbyBvZGlvIGFtZXQuPC9saT4KICAgIDwvdWw+CiAgPC9saT48L3VsPgoKPGhyPgo8cD4K ICBWb2x1cHRhdGVtIGVzdCBub3N0cnVtIGltcGVkaXQgbmVzY2l1bnQgZXVtLiBSZWN1c2Fu ZGFlIHZvbHVwdGF0ZW0gcXVhZXJhdCBoaWMKICBoYXJ1bS4gQ29uc2VxdWF0dXIgaW4gZnVn YSBuaWhpbCBhbGlxdWlkIGNvbW1vZGkgcmVtIHN1bnQuIEFwZXJpYW0gb2RpbyBvZGlvCiAg YW1ldC4KPC9wPgo8YmxvY2txdW90ZT4KICBWb2x1cHRhdGVtIGVzdCBub3N0cnVtIGltcGVk aXQgbmVzY2l1bnQgZXVtLiBSZWN1c2FuZGFlIHZvbHVwdGF0ZW0KICBxdWFlcmF0IGhpYyBo YXJ1bS4gQ29uc2VxdWF0dXIgaW4gZnVnYSBuaWhpbCBhbGlxdWlkIGNvbW1vZGkgcmVtIHN1 bnQuIEFwZXJpYW0KICBvZGlvIG9kaW8gYW1ldC4KCiAgPHVsPgogICAgPGxpPlZvbHVwdGF0 ZW0gZXN0IG5vc3RydW0gaW1wZWRpdCBuZXNjaXVudCBldW0uIFJlY3VzYW5kYWUgdm9sdXB0 YXRlbQogICAgICBxdWFlcmF0IGhpYyBoYXJ1bS4gQ29uc2VxdWF0dXIgaW4gZnVnYSBuaWhp bCBhbGlxdWlkIGNvbW1vZGkgcmVtIHN1bnQuCiAgICAgIEFwZXJpYW0gb2RpbyBvZGlvIGFt ZXQuPC9saT4KICAgIDxsaT5Wb2x1cHRhdGVtIGVzdCBub3N0cnVtIGltcGVkaXQgbmVzY2l1 bnQgZXVtLiBSZWN1c2FuZGFlIHZvbHVwdGF0ZW0KICAgICAgcXVhZXJhdCBoaWMgaGFydW0u IENvbnNlcXVhdHVyIGluIGZ1Z2EgbmloaWwgYWxpcXVpZCBjb21tb2RpIHJlbSBzdW50Lgog ICAgICBBcGVyaWFtIG9kaW8gb2RpbyBhbWV0LjwvbGk+CiAgICA8bGk+QW5kIHRoZW46CiAg ICAgIDxvbD4KICAgICAgICA8bGk+Vm9sdXB0YXRlbSBlc3Qgbm9zdHJ1bSBpbXBlZGl0IG5l c2NpdW50IGV1bS4gUmVjdXNhbmRhZSB2b2x1cHRhdGVtCiAgICAgICAgICBxdWFlcmF0IGhp YyBoYXJ1bS4gQ29uc2VxdWF0dXIgaW4gZnVnYSBuaWhpbCBhbGlxdWlkIGNvbW1vZGkgcmVt IHN1bnQuCiAgICAgICAgICBBcGVyaWFtIG9kaW8gb2RpbyBhbWV0LjwvbGk+CiAgICAgICAg PGxpPlZvbHVwdGF0ZW0gZXN0IG5vc3RydW0gaW1wZWRpdCBuZXNjaXVudCBldW0uIFJlY3Vz YW5kYWUgdm9sdXB0YXRlbQogICAgICAgICAgcXVhZXJhdCBoaWMgaGFydW0uIENvbnNlcXVh dHVyIGluIGZ1Z2EgbmloaWwgYWxpcXVpZCBjb21tb2RpIHJlbSBzdW50LgogICAgICAgICAg QXBlcmlhbSBvZGlvIG9kaW8gYW1ldC48L2xpPgogICAgICA8L29sPgogICAgPC9saT4KICA8 L3VsPgo8L2Jsb2NrcXVvdGU+Cg== --------------1Xt5M4ePysxEncC56MvjJmje--