From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Hong Xu Newsgroups: gmane.emacs.bugs Subject: bug#21990: htmlfontify fails to generate highly highlighted regions Date: Mon, 18 Jan 2016 00:22:49 -0800 Message-ID: <569CA0D9.5070006@topbug.net> References: <56529962.10301@topbug.net> <87io2uwgj5.fsf@russet.org.uk> <56998DB8.50400@topbug.net> <569B3370.2060807@topbug.net> <87si1vkfu9.fsf@russet.org.uk> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="JuhAwwPHQk9olh0VFt5dCo1Qtd2M8SdtU" X-Trace: ger.gmane.org 1453105470 516 80.91.229.3 (18 Jan 2016 08:24:30 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 18 Jan 2016 08:24:30 +0000 (UTC) Cc: 21990@debbugs.gnu.org To: Phillip Lord Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Mon Jan 18 09:24:21 2016 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1aL56k-0008Ev-6V for geb-bug-gnu-emacs@m.gmane.org; Mon, 18 Jan 2016 09:24:15 +0100 Original-Received: from localhost ([::1]:58235 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aL56j-00050t-EP for geb-bug-gnu-emacs@m.gmane.org; Mon, 18 Jan 2016 03:24:13 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:58133) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aL56d-00050i-Pa for bug-gnu-emacs@gnu.org; Mon, 18 Jan 2016 03:24:08 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aL56Y-0006fC-Nw for bug-gnu-emacs@gnu.org; Mon, 18 Jan 2016 03:24:07 -0500 Original-Received: from debbugs.gnu.org ([208.118.235.43]:35839) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aL56Y-0006f8-Ju for bug-gnu-emacs@gnu.org; Mon, 18 Jan 2016 03:24:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84) (envelope-from ) id 1aL56Y-0004Ge-EN for bug-gnu-emacs@gnu.org; Mon, 18 Jan 2016 03:24:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Hong Xu Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 18 Jan 2016 08:24:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 21990 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 21990-submit@debbugs.gnu.org id=B21990.145310538216313 (code B ref 21990); Mon, 18 Jan 2016 08:24:02 +0000 Original-Received: (at 21990) by debbugs.gnu.org; 18 Jan 2016 08:23:02 +0000 Original-Received: from localhost ([127.0.0.1]:52292 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aL55Z-0004Em-An for submit@debbugs.gnu.org; Mon, 18 Jan 2016 03:23:01 -0500 Original-Received: from sender163-mail.zoho.com ([74.201.84.163]:25160) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aL55X-0004Ea-E6 for 21990@debbugs.gnu.org; Mon, 18 Jan 2016 03:22:59 -0500 Original-Received: from [192.168.88.88] (cpe-104-32-170-214.socal.res.rr.com [104.32.170.214]) by mx.zohomail.com with SMTPS id 1453105375355351.38046999662436; Mon, 18 Jan 2016 00:22:55 -0800 (PST) User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Icedove/38.5.0 In-Reply-To: <87si1vkfu9.fsf@russet.org.uk> X-Zoho-Virus-Status: 1 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.118.235.43 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.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:111695 Archived-At: This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --JuhAwwPHQk9olh0VFt5dCo1Qtd2M8SdtU Content-Type: multipart/mixed; boundary="------------020107030104090103080009" This is a multi-part message in MIME format. --------------020107030104090103080009 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable On 01/17/2016 02:21 PM, Phillip Lord wrote: > Hong Xu writes: >=20 >> This issue is also possibly caused by bug #18128, which >> diff-auto-refine-mode does not put the highlight into the font-lock. >=20 >=20 > I don't think it's related to font-lock, as htmlfontify checks both > 'face and 'font-lock-face. I think htmlfontify was not dealing correctl= y > with faces when they overlap. I've pushed a fix to > fix/htmlfontify-21990. >=20 > http://lists.gnu.org/archive/html/emacs-diffs/2016-01/msg00277.html >=20 > Can you test and confirm? If so, I'll finish the patch and merge. >=20 Hi Phillip, I've tested it---yes now the highlighted regions display differently, but the highlighting actually is just the same as the background... I've attached the generated html file, so you can view it. --------------020107030104090103080009 Content-Type: text/html; name="a.patch.html" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="a.patch.html" PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCFET0NUWVBFIGh0bWwg UFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjEvL0VOIgoiaHR0cDovL3d3dy53My5vcmcv VFIveGh0bWwxMS9EVEQveGh0bWwxMS5kdGQiPgo8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53 My5vcmcvMTk5OS94aHRtbCI+CiAgPGhlYWQ+CiAgICA8dGl0bGU+YS5wYXRjaDwvdGl0bGU+ CjxtZXRhIG5hbWU9ImdlbmVyYXRvciIgY29udGVudD0iZW1hY3MgMjQuNC4xOyBodG1sZm9u dGlmeSAwLjIxIiAvPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPjwhLS0gCmJvZHkgeyBmb250 LWZhbWlseTogRGVqYVZ1IFNhbnMgTW9ubzsgIGZvbnQtc3RyZXRjaDogbm9ybWFsOyAgZm9u dC13ZWlnaHQ6IDUwMDsgIGZvbnQtc3R5bGU6IG5vcm1hbDsgIGNvbG9yOiAjMDAwMDAwOyAg YmFja2dyb3VuZDogI2ZmZmZmZjsgIGZvbnQtc2l6ZTogMTFwdDsgIHRleHQtZGVjb3JhdGlv bjogbm9uZTsgfQpzcGFuLmRlZmF1bHQgICB7IGZvbnQtZmFtaWx5OiBEZWphVnUgU2FucyBN b25vOyAgZm9udC1zdHJldGNoOiBub3JtYWw7ICBmb250LXdlaWdodDogNTAwOyAgZm9udC1z dHlsZTogbm9ybWFsOyAgY29sb3I6ICMwMDAwMDA7ICBiYWNrZ3JvdW5kOiAjZmZmZmZmOyAg Zm9udC1zaXplOiAxMXB0OyAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9CnNwYW4uZGVmYXVs dCBhIHsgZm9udC1mYW1pbHk6IERlamFWdSBTYW5zIE1vbm87ICBmb250LXN0cmV0Y2g6IG5v cm1hbDsgIGZvbnQtd2VpZ2h0OiA1MDA7ICBmb250LXN0eWxlOiBub3JtYWw7ICBjb2xvcjog IzAwMDAwMDsgIGJhY2tncm91bmQ6ICNmZmZmZmY7ICBmb250LXNpemU6IDExcHQ7ICB0ZXh0 LWRlY29yYXRpb246IHVuZGVybGluZTsgfQpzcGFuLmRpZmYtcmVmaW5lLWFkZGVkLTAwMDEg ICB7IGZvbnQtc2l6ZTogMTA1JTsgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfQpzcGFuLmRp ZmYtcmVmaW5lLWFkZGVkLTAwMDEgYSB7IGZvbnQtc2l6ZTogMTA1JTsgIHRleHQtZGVjb3Jh dGlvbjogdW5kZXJsaW5lOyB9CnNwYW4uZGlmZi1yZWZpbmUtcmVtb3ZlZC0wMDAwICAgeyBm b250LXNpemU6IDEwNSU7ICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH0Kc3Bhbi5kaWZmLXJl ZmluZS1yZW1vdmVkLTAwMDAgYSB7IGZvbnQtc2l6ZTogMTA1JTsgIHRleHQtZGVjb3JhdGlv bjogdW5kZXJsaW5lOyB9CnNwYW4uZGlmZi1hZGRlZCAgIHsgYmFja2dyb3VuZDogI2RkZmZk ZDsgIGZvbnQtZmFtaWx5OiBEZWphVnUgU2FucyBNb25vOyAgZm9udC1zdHJldGNoOiBub3Jt YWw7ICBmb250LXdlaWdodDogNTAwOyAgZm9udC1zdHlsZTogbm9ybWFsOyAgY29sb3I6ICMw MDAwMDA7ICBmb250LXNpemU6IDExcHQ7ICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH0Kc3Bh bi5kaWZmLWFkZGVkIGEgeyBiYWNrZ3JvdW5kOiAjZGRmZmRkOyAgZm9udC1mYW1pbHk6IERl amFWdSBTYW5zIE1vbm87ICBmb250LXN0cmV0Y2g6IG5vcm1hbDsgIGZvbnQtd2VpZ2h0OiA1 MDA7ICBmb250LXN0eWxlOiBub3JtYWw7ICBjb2xvcjogIzAwMDAwMDsgIGZvbnQtc2l6ZTog MTFwdDsgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9CnNwYW4uZGlmZi1pbmRpY2F0 b3ItYWRkZWQgICB7IGJhY2tncm91bmQ6ICNkZGZmZGQ7ICBmb250LWZhbWlseTogRGVqYVZ1 IFNhbnMgTW9ubzsgIGZvbnQtc3RyZXRjaDogbm9ybWFsOyAgZm9udC13ZWlnaHQ6IDUwMDsg IGZvbnQtc3R5bGU6IG5vcm1hbDsgIGNvbG9yOiAjMDAwMDAwOyAgZm9udC1zaXplOiAxMXB0 OyAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9CnNwYW4uZGlmZi1pbmRpY2F0b3ItYWRkZWQg YSB7IGJhY2tncm91bmQ6ICNkZGZmZGQ7ICBmb250LWZhbWlseTogRGVqYVZ1IFNhbnMgTW9u bzsgIGZvbnQtc3RyZXRjaDogbm9ybWFsOyAgZm9udC13ZWlnaHQ6IDUwMDsgIGZvbnQtc3R5 bGU6IG5vcm1hbDsgIGNvbG9yOiAjMDAwMDAwOyAgZm9udC1zaXplOiAxMXB0OyAgdGV4dC1k ZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH0Kc3Bhbi5kaWZmLXJlbW92ZWQgICB7IGJhY2tncm91 bmQ6ICNmZmRkZGQ7ICBmb250LWZhbWlseTogRGVqYVZ1IFNhbnMgTW9ubzsgIGZvbnQtc3Ry ZXRjaDogbm9ybWFsOyAgZm9udC13ZWlnaHQ6IDUwMDsgIGZvbnQtc3R5bGU6IG5vcm1hbDsg IGNvbG9yOiAjMDAwMDAwOyAgZm9udC1zaXplOiAxMXB0OyAgdGV4dC1kZWNvcmF0aW9uOiBu b25lOyB9CnNwYW4uZGlmZi1yZW1vdmVkIGEgeyBiYWNrZ3JvdW5kOiAjZmZkZGRkOyAgZm9u dC1mYW1pbHk6IERlamFWdSBTYW5zIE1vbm87ICBmb250LXN0cmV0Y2g6IG5vcm1hbDsgIGZv bnQtd2VpZ2h0OiA1MDA7ICBmb250LXN0eWxlOiBub3JtYWw7ICBjb2xvcjogIzAwMDAwMDsg IGZvbnQtc2l6ZTogMTFwdDsgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9CnNwYW4u ZGlmZi1pbmRpY2F0b3ItcmVtb3ZlZCAgIHsgYmFja2dyb3VuZDogI2ZmZGRkZDsgIGZvbnQt ZmFtaWx5OiBEZWphVnUgU2FucyBNb25vOyAgZm9udC1zdHJldGNoOiBub3JtYWw7ICBmb250 LXdlaWdodDogNTAwOyAgZm9udC1zdHlsZTogbm9ybWFsOyAgY29sb3I6ICMwMDAwMDA7ICBm b250LXNpemU6IDExcHQ7ICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH0Kc3Bhbi5kaWZmLWlu ZGljYXRvci1yZW1vdmVkIGEgeyBiYWNrZ3JvdW5kOiAjZmZkZGRkOyAgZm9udC1mYW1pbHk6 IERlamFWdSBTYW5zIE1vbm87ICBmb250LXN0cmV0Y2g6IG5vcm1hbDsgIGZvbnQtd2VpZ2h0 OiA1MDA7ICBmb250LXN0eWxlOiBub3JtYWw7ICBjb2xvcjogIzAwMDAwMDsgIGZvbnQtc2l6 ZTogMTFwdDsgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9CnNwYW4uZGlmZi1mdW5j dGlvbiAgIHsgYmFja2dyb3VuZDogI2NjY2NjYzsgIGZvbnQtZmFtaWx5OiBEZWphVnUgU2Fu cyBNb25vOyAgZm9udC1zdHJldGNoOiBub3JtYWw7ICBmb250LXdlaWdodDogNTAwOyAgZm9u dC1zdHlsZTogbm9ybWFsOyAgY29sb3I6ICMwMDAwMDA7ICBmb250LXNpemU6IDExcHQ7ICB0 ZXh0LWRlY29yYXRpb246IG5vbmU7IH0Kc3Bhbi5kaWZmLWZ1bmN0aW9uIGEgeyBiYWNrZ3Jv dW5kOiAjY2NjY2NjOyAgZm9udC1mYW1pbHk6IERlamFWdSBTYW5zIE1vbm87ICBmb250LXN0 cmV0Y2g6IG5vcm1hbDsgIGZvbnQtd2VpZ2h0OiA1MDA7ICBmb250LXN0eWxlOiBub3JtYWw7 ICBjb2xvcjogIzAwMDAwMDsgIGZvbnQtc2l6ZTogMTFwdDsgIHRleHQtZGVjb3JhdGlvbjog dW5kZXJsaW5lOyB9CnNwYW4uZGlmZi1odW5rLWhlYWRlciAgIHsgYmFja2dyb3VuZDogI2Nj Y2NjYzsgIGZvbnQtZmFtaWx5OiBEZWphVnUgU2FucyBNb25vOyAgZm9udC1zdHJldGNoOiBu b3JtYWw7ICBmb250LXdlaWdodDogNTAwOyAgZm9udC1zdHlsZTogbm9ybWFsOyAgY29sb3I6 ICMwMDAwMDA7ICBmb250LXNpemU6IDExcHQ7ICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH0K c3Bhbi5kaWZmLWh1bmstaGVhZGVyIGEgeyBiYWNrZ3JvdW5kOiAjY2NjY2NjOyAgZm9udC1m YW1pbHk6IERlamFWdSBTYW5zIE1vbm87ICBmb250LXN0cmV0Y2g6IG5vcm1hbDsgIGZvbnQt d2VpZ2h0OiA1MDA7ICBmb250LXN0eWxlOiBub3JtYWw7ICBjb2xvcjogIzAwMDAwMDsgIGZv bnQtc2l6ZTogMTFwdDsgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9CnNwYW4uZGlm Zi1maWxlLWhlYWRlciAgIHsgZm9udC13ZWlnaHQ6IDcwMDsgIGJhY2tncm91bmQ6ICNiM2Iz YjM7ICBmb250LWZhbWlseTogRGVqYVZ1IFNhbnMgTW9ubzsgIGZvbnQtc3RyZXRjaDogbm9y bWFsOyAgZm9udC1zdHlsZTogbm9ybWFsOyAgY29sb3I6ICMwMDAwMDA7ICBmb250LXNpemU6 IDExcHQ7ICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH0Kc3Bhbi5kaWZmLWZpbGUtaGVhZGVy IGEgeyBmb250LXdlaWdodDogNzAwOyAgYmFja2dyb3VuZDogI2IzYjNiMzsgIGZvbnQtZmFt aWx5OiBEZWphVnUgU2FucyBNb25vOyAgZm9udC1zdHJldGNoOiBub3JtYWw7ICBmb250LXN0 eWxlOiBub3JtYWw7ICBjb2xvcjogIzAwMDAwMDsgIGZvbnQtc2l6ZTogMTFwdDsgIHRleHQt ZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9CnNwYW4uZGlmZi1oZWFkZXIgICB7IGJhY2tncm91 bmQ6ICNjY2NjY2M7ICBmb250LWZhbWlseTogRGVqYVZ1IFNhbnMgTW9ubzsgIGZvbnQtc3Ry ZXRjaDogbm9ybWFsOyAgZm9udC13ZWlnaHQ6IDUwMDsgIGZvbnQtc3R5bGU6IG5vcm1hbDsg IGNvbG9yOiAjMDAwMDAwOyAgZm9udC1zaXplOiAxMXB0OyAgdGV4dC1kZWNvcmF0aW9uOiBu b25lOyB9CnNwYW4uZGlmZi1oZWFkZXIgYSB7IGJhY2tncm91bmQ6ICNjY2NjY2M7ICBmb250 LWZhbWlseTogRGVqYVZ1IFNhbnMgTW9ubzsgIGZvbnQtc3RyZXRjaDogbm9ybWFsOyAgZm9u dC13ZWlnaHQ6IDUwMDsgIGZvbnQtc3R5bGU6IG5vcm1hbDsgIGNvbG9yOiAjMDAwMDAwOyAg Zm9udC1zaXplOiAxMXB0OyAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH0Kc3Bhbi5k aWZmLWNvbnRleHQgICB7IGNvbG9yOiAjN2Y3ZjdmOyAgZm9udC1mYW1pbHk6IERlamFWdSBT YW5zIE1vbm87ICBmb250LXN0cmV0Y2g6IG5vcm1hbDsgIGZvbnQtd2VpZ2h0OiA1MDA7ICBm b250LXN0eWxlOiBub3JtYWw7ICBiYWNrZ3JvdW5kOiAjZmZmZmZmOyAgZm9udC1zaXplOiAx MXB0OyAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9CnNwYW4uZGlmZi1jb250ZXh0IGEgeyBj b2xvcjogIzdmN2Y3ZjsgIGZvbnQtZmFtaWx5OiBEZWphVnUgU2FucyBNb25vOyAgZm9udC1z dHJldGNoOiBub3JtYWw7ICBmb250LXdlaWdodDogNTAwOyAgZm9udC1zdHlsZTogbm9ybWFs OyAgYmFja2dyb3VuZDogI2ZmZmZmZjsgIGZvbnQtc2l6ZTogMTFwdDsgIHRleHQtZGVjb3Jh dGlvbjogdW5kZXJsaW5lOyB9CiAtLT48L3N0eWxlPgoKICAgIDxzY3JpcHQgdHlwZT0idGV4 dC9qYXZhc2NyaXB0Ij48IS0tCiAgLy8gdGhpcyBmdW5jdGlvbiBpcyBuZWVkZWQgdG8gd29y ayBhcm91bmQKICAvLyBhIGJ1ZyBpbiBJRSByZWxhdGVkIHRvIGVsZW1lbnQgYXR0cmlidXRl cwogIGZ1bmN0aW9uIGhhc0NsYXNzKG9iaikKICB7CiAgICAgIHZhciByZXN1bHQgPSBmYWxz ZTsKICAgICAgaWYgKG9iai5nZXRBdHRyaWJ1dGVOb2RlKCJjbGFzcyIpICE9IG51bGwpCiAg ICAgIHsKICAgICAgICAgIHJlc3VsdCA9IG9iai5nZXRBdHRyaWJ1dGVOb2RlKCJjbGFzcyIp LnZhbHVlOwogICAgICB9CiAgICAgIHJldHVybiByZXN1bHQ7CiAgfQoKICBmdW5jdGlvbiBz dHJpcGUoaWQpCiAgewogICAgICAvLyB0aGUgZmxhZyB3ZSdsbCB1c2UgdG8ga2VlcCB0cmFj ayBvZgogICAgICAvLyB3aGV0aGVyIHRoZSBjdXJyZW50IHJvdyBpcyBvZGQgb3IgZXZlbgog ICAgICB2YXIgZXZlbiA9IGZhbHNlOwoKICAgICAgLy8gaWYgYXJndW1lbnRzIGFyZSBwcm92 aWRlZCB0byBzcGVjaWZ5IHRoZSBjb2xvcnMKICAgICAgLy8gb2YgdGhlIGV2ZW4gJiBvZGQg cm93cywgdGhlbiB1c2UgdGhlIHRoZW07CiAgICAgIC8vIG90aGVyd2lzZSB1c2UgdGhlIGZv bGxvd2luZyBkZWZhdWx0czoKICAgICAgdmFyIGV2ZW5Db2xvciA9IGFyZ3VtZW50c1sxXSA/ IGFyZ3VtZW50c1sxXSA6ICIjZmZmIjsKICAgICAgdmFyIG9kZENvbG9yICA9IGFyZ3VtZW50 c1syXSA/IGFyZ3VtZW50c1syXSA6ICIjZGRkIjsKCiAgICAgIC8vIG9idGFpbiBhIHJlZmVy ZW5jZSB0byB0aGUgZGVzaXJlZCB0YWJsZQogICAgICAvLyBpZiBubyBzdWNoIHRhYmxlIGV4 aXN0cywgYWJvcnQKICAgICAgdmFyIHRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo aWQpOwogICAgICBpZiAoISB0YWJsZSkgeyByZXR1cm47IH0KCiAgICAgIC8vIGJ5IGRlZmlu aXRpb24sIHRhYmxlcyBjYW4gaGF2ZSBtb3JlIHRoYW4gb25lIHRib2R5CiAgICAgIC8vIGVs ZW1lbnQsIHNvIHdlJ2xsIGhhdmUgdG8gZ2V0IHRoZSBsaXN0IG9mIGNoaWxkCiAgICAgIC8v ICZsdDt0Ym9keSZndDtzCiAgICAgIHZhciB0Ym9kaWVzID0gdGFibGUuZ2V0RWxlbWVudHNC eVRhZ05hbWUoInRib2R5Iik7CgogICAgICAvLyBhbmQgaXRlcmF0ZSB0aHJvdWdoIHRoZW0u Li4KICAgICAgZm9yICh2YXIgaCA9IDA7IGggPCB0Ym9kaWVzLmxlbmd0aDsgaCsrKQogICAg ICB7CiAgICAgICAgICAvLyBmaW5kIGFsbCB0aGUgJmx0O3RyJmd0OyBlbGVtZW50cy4uLgog ICAgICAgICAgdmFyIHRycyA9IHRib2RpZXNbaF0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoInRy Iik7CgogICAgICAgICAgLy8gLi4uIGFuZCBpdGVyYXRlIHRocm91Z2ggdGhlbQogICAgICAg ICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0cnMubGVuZ3RoOyBpKyspCiAgICAgICAgICB7CiAg ICAgICAgICAgICAgLy8gYXZvaWQgcm93cyB0aGF0IGhhdmUgYSBjbGFzcyBhdHRyaWJ1dGUK ICAgICAgICAgICAgICAvLyBvciBiYWNrZ3JvdW5kQ29sb3Igc3R5bGUKICAgICAgICAgICAg ICBpZiAoISBoYXNDbGFzcyh0cnNbaV0pICYmCiAgICAgICAgICAgICAgICAgICEgdHJzW2ld LnN0eWxlLmJhY2tncm91bmRDb2xvcikKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgIC8vIGdldCBhbGwgdGhlIGNlbGxzIGluIHRoaXMgcm93Li4uCiAgICAgICAgICAgICAg ICAgIHZhciB0ZHMgPSB0cnNbaV0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoInRkIik7CgogICAg ICAgICAgICAgICAgICAvLyBhbmQgaXRlcmF0ZSB0aHJvdWdoIHRoZW0uLi4KICAgICAgICAg ICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCB0ZHMubGVuZ3RoOyBqKyspCiAgICAgICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgIHZhciBteXRkID0gdGRzW2pdOwoK ICAgICAgICAgICAgICAgICAgICAgIC8vIGF2b2lkIGNlbGxzIHRoYXQgaGF2ZSBhIGNsYXNz IGF0dHJpYnV0ZQogICAgICAgICAgICAgICAgICAgICAgLy8gb3IgYmFja2dyb3VuZENvbG9y IHN0eWxlCiAgICAgICAgICAgICAgICAgICAgICBpZiAoISBoYXNDbGFzcyhteXRkKSAmJgog ICAgICAgICAgICAgICAgICAgICAgICAgICEgbXl0ZC5zdHlsZS5iYWNrZ3JvdW5kQ29sb3Ip CiAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgbXl0 ZC5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ZXZlbiA/IGV2ZW5Db2xvciA6IG9kZENvbG9yOwogICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIC8vIGZs aXAgZnJvbSBvZGQgdG8gZXZlbiwgb3IgdmljZS12ZXJzYQogICAgICAgICAgICAgIGV2ZW4g PSAgISBldmVuOwogICAgICAgICAgfQogICAgICB9CiAgfQoKICBmdW5jdGlvbiB0b2dnbGVf aW52aXMoIG5hbWUgKQogIHsKICAgICAgdmFyIGZpbHRlciA9CiAgICAgICAgeyBhY2NlcHRO b2RlOgogICAgICAgICAgZnVuY3Rpb24oIG5vZGUgKQogICAgICAgICAgeyB2YXIgY2xhc3Nu YW1lID0gbm9kZS5pZDsKICAgICAgICAgICAgaWYoIGNsYXNzbmFtZSApCiAgICAgICAgICAg IHsgdmFyIGNsYXNzYmFzZSA9IGNsYXNzbmFtZS5zdWJzdHIoIDAsIG5hbWUubGVuZ3RoICk7 CiAgICAgICAgICAgICAgaWYoIGNsYXNzYmFzZSA9PSBuYW1lICkgeyByZXR1cm4gTm9kZUZp bHRlci5GSUxURVJfQUNDRVBUOyB9IH0KICAgICAgICAgICAgcmV0dXJuIE5vZGVGaWx0ZXIu RklMVEVSX1NLSVA7IH0gfTsKICAgICAgdmFyIHdhbGtlciA9IGRvY3VtZW50LmNyZWF0ZVRy ZWVXYWxrZXIoIGRvY3VtZW50LmJvZHkgICAgICAgICAgICwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vZGVGaWx0ZXIuU0hPV19FTEVNRU5UICwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlciAg ICAgICAgICAgICAgICAgICwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGZhbHNlICAgICAgICAgICAgICAgICAgICk7CiAgICAgIHdoaWxlKCB3YWxr ZXIubmV4dE5vZGUoKSApCiAgICAgIHsKICAgICAgICAgIHZhciBlID0gd2Fsa2VyLmN1cnJl bnROb2RlOwogICAgICAgICAgaWYoIGUuc3R5bGUuZGlzcGxheSA9PSAibm9uZSIgKSB7IGUu c3R5bGUuZGlzcGxheSA9ICJpbmxpbmUiOyB9CiAgICAgICAgICBlbHNlICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsgZS5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOyAgIH0KICAgICAg fQogIH0KLS0+IDwvc2NyaXB0PgogIDwvaGVhZD4KICA8Ym9keSBvbmxvYWQ9InN0cmlwZSgn aW5kZXgnKTsgcmV0dXJuIHRydWU7Ij4KCjxwcmU+PHNwYW4gY2xhc3M9ImRpZmYtY29udGV4 dCI+ZGlmZiAtLWdpdCBhL2xpc3AvaHRtbGZvbnRpZnkuZWwgYi9saXNwL2h0bWxmb250aWZ5 LmVsCjwvc3Bhbj48c3BhbiBjbGFzcz0iZGlmZi1jb250ZXh0Ij5pbmRleCAxNzhmM2EwLi5j YTQ1NmM3IDEwMDY0NAo8L3NwYW4+PHNwYW4gY2xhc3M9ImRpZmYtaGVhZGVyIj4tLS0gPC9z cGFuPjxzcGFuIGNsYXNzPSJkaWZmLWZpbGUtaGVhZGVyIj5hL2xpc3AvaHRtbGZvbnRpZnku ZWw8L3NwYW4+PHNwYW4gY2xhc3M9ImRpZmYtaGVhZGVyIj4KPC9zcGFuPjxzcGFuIGNsYXNz PSJkaWZmLWhlYWRlciI+KysrIDwvc3Bhbj48c3BhbiBjbGFzcz0iZGlmZi1maWxlLWhlYWRl ciI+Yi9saXNwL2h0bWxmb250aWZ5LmVsPC9zcGFuPjxzcGFuIGNsYXNzPSJkaWZmLWhlYWRl ciI+Cjwvc3Bhbj48c3BhbiBjbGFzcz0iZGlmZi1odW5rLWhlYWRlciI+QEAgLTk5OSw3ICs5 OTksNyBAQDwvc3Bhbj48c3BhbiBjbGFzcz0iZGlmZi1mdW5jdGlvbiI+IG1lcmdlZCBieSB0 aGUgdXNlciAtIGBoZnktZmxhdHRlbi1zdHlsZScgc2hvdWxkIGRvIHRoaXMuJnF1b3Q7PC9z cGFuPgo8c3BhbiBjbGFzcz0iZGlmZi1jb250ZXh0Ij4gICAgICAgICAgICAgICAgICAgKGFw cGVuZAo8L3NwYW4+PHNwYW4gY2xhc3M9ImRpZmYtY29udGV4dCI+ICAgICAgICAgICAgICAg ICAgICBwYXJlbnQKPC9zcGFuPjxzcGFuIGNsYXNzPSJkaWZmLWNvbnRleHQiPiAgICAgICAg ICAgICAgICAgICAgKGhmeS1mYWNlLXRvLXN0eWxlLWkKPC9zcGFuPjxzcGFuIGNsYXNzPSJk aWZmLWluZGljYXRvci1yZW1vdmVkIj4tPC9zcGFuPjxzcGFuIGNsYXNzPSJkaWZmLXJlbW92 ZWQiPiAgICAgICAgICAgICAgICAgICAgKGhmeS1mYWNlLWF0dHItZm9yLWNsYXNzIHYgaGZ5 LWRpc3BsYXktY2xhc3MpKSApKSkpCjwvc3Bhbj48c3BhbiBjbGFzcz0iZGlmZi1pbmRpY2F0 b3ItYWRkZWQiPis8L3NwYW4+PHNwYW4gY2xhc3M9ImRpZmYtYWRkZWQiPiAgICAgICAgICAg ICAgICAgICAgKGhmeS1mYWNlLWF0dHItZm9yLWNsYXNzIHYgaGZ5LWRpc3BsYXktY2xhc3Mp KSkpKSkKPC9zcGFuPjxzcGFuIGNsYXNzPSJkaWZmLWNvbnRleHQiPiAgICAgICAgIChzZXRx IHRoaXMKPC9zcGFuPjxzcGFuIGNsYXNzPSJkaWZmLWNvbnRleHQiPiAgICAgICAgICAgICAg IChpZiB2YWwgKGNhc2Uga2V5Cjwvc3Bhbj48c3BhbiBjbGFzcz0iZGlmZi1jb250ZXh0Ij4g ICAgICAgICAgICAgICAgICAgICAgICAoOmZhbWlseSAgICAgICAgIChoZnktZmFtaWx5ICAg IHZhbCkpCjwvc3Bhbj48c3BhbiBjbGFzcz0iZGlmZi1odW5rLWhlYWRlciI+QEAgLTEwMTgs NyArMTAxOCw3IEBAPC9zcGFuPjxzcGFuIGNsYXNzPSJkaWZmLWZ1bmN0aW9uIj4gbWVyZ2Vk IGJ5IHRoZSB1c2VyIC0gYGhmeS1mbGF0dGVuLXN0eWxlJyBzaG91bGQgZG8gdGhpcy4mcXVv dDs8L3NwYW4+CjxzcGFuIGNsYXNzPSJkaWZmLWNvbnRleHQiPiAgICAgICAgICAgICAgICAg ICAgICAgICg6aXRhbGljICAgICAgICAgKGhmeS1zbGFudCAnaXRhbGljKSkpKSkpCjwvc3Bh bj48c3BhbiBjbGFzcz0iZGlmZi1jb250ZXh0Ij4gICAgICAgKHNldHEgdGhhdCAoaGZ5LWZh Y2UtdG8tc3R5bGUtaSBuZXh0KSkKPC9zcGFuPjxzcGFuIGNsYXNzPSJkaWZmLWNvbnRleHQi PiAgICAgICA7Oyhsd2FybiB0IDp3YXJuaW5nICZxdW90OyVTID0mZ3Q7ICVTJnF1b3Q7IGZu IChuY29uYyB0aGlzIHRoYXQgcGFyZW50KSkKPC9zcGFuPjxzcGFuIGNsYXNzPSJkaWZmLWlu ZGljYXRvci1yZW1vdmVkIj4tPC9zcGFuPjxzcGFuIGNsYXNzPSJkaWZmLXJlbW92ZWQiPiAg ICAgIChuY29uYyB0aGlzIDwvc3Bhbj48c3BhbiBjbGFzcz0iZGlmZi1yZWZpbmUtcmVtb3Zl ZC0wMDAwIj50aGF0PC9zcGFuPjxzcGFuIGNsYXNzPSJkaWZmLXJlbW92ZWQiPiBwYXJlbnQp KSkgKQo8L3NwYW4+PHNwYW4gY2xhc3M9ImRpZmYtaW5kaWNhdG9yLWFkZGVkIj4rPC9zcGFu PjxzcGFuIGNsYXNzPSJkaWZmLWFkZGVkIj4gICAgICAobmNvbmMgdGhpcyBwYXJlbnQgPC9z cGFuPjxzcGFuIGNsYXNzPSJkaWZmLXJlZmluZS1hZGRlZC0wMDAxIj50aGF0PC9zcGFuPjxz cGFuIGNsYXNzPSJkaWZmLWFkZGVkIj4pKSkgKQo8L3NwYW4+PHNwYW4gY2xhc3M9ImRpZmYt Y29udGV4dCI+IAo8L3NwYW4+PHNwYW4gY2xhc3M9ImRpZmYtY29udGV4dCI+IChkZWZ1biBo Znktc2l6ZS10by1pbnQgKHNwZWMpCjwvc3Bhbj48c3BhbiBjbGFzcz0iZGlmZi1jb250ZXh0 Ij4gICAmcXVvdDtDb252ZXJ0IFNQRUMsIGEgQ1NTIGZvbnQtc2l6ZSBzcGVjaWZpZXIsIHRv IGFuIEVtYWNzIDpoZWlnaHQgYXR0cmlidXRlIAo8L3NwYW4+PHNwYW4gY2xhc3M9ImRpZmYt Y29udGV4dCI+dmFsdWUuCjwvc3Bhbj48c3BhbiBjbGFzcz0iZGlmZi1odW5rLWhlYWRlciI+ QEAgLTEwNjIsNyArMTA2Miw3IEBAPC9zcGFuPjxzcGFuIGNsYXNzPSJkaWZmLWZ1bmN0aW9u Ij4gaGF2ZW4ndCBlbmNvdW50ZXJlZCB0aGVtIHlldC4gIFJldHVybnMgYSA8L3NwYW4+Cjxz cGFuIGNsYXNzPSJkaWZmLWNvbnRleHQiPmBoZnktc3R5bGUtYXNzb2MnLiZxdW90Owo8L3Nw YW4+PHNwYW4gY2xhc3M9ImRpZmYtY29udGV4dCI+ICAgICgoYW5kIChzeW1ib2xwIGZuKQo8 L3NwYW4+PHNwYW4gY2xhc3M9ImRpZmYtY29udGV4dCI+ICAgICAgICAgIChmYWNlcCAoc3lt Ym9sLXZhbHVlIGZuKSkpCjwvc3Bhbj48c3BhbiBjbGFzcz0iZGlmZi1jb250ZXh0Ij4gICAg IChoZnktZmFjZS1hdHRyLWZvci1jbGFzcyAoc3ltYm9sLXZhbHVlIGZuKSBoZnktZGlzcGxh eS1jbGFzcykpCjwvc3Bhbj48c3BhbiBjbGFzcz0iZGlmZi1pbmRpY2F0b3ItcmVtb3ZlZCI+ LTwvc3Bhbj48c3BhbiBjbGFzcz0iZGlmZi1yZW1vdmVkIj4gICAodCA8L3NwYW4+PHNwYW4g Y2xhc3M9ImRpZmYtcmVmaW5lLXJlbW92ZWQtMDAwMCI+bmlsPC9zcGFuPjxzcGFuIGNsYXNz PSJkaWZmLXJlbW92ZWQiPikpKQo8L3NwYW4+PHNwYW4gY2xhc3M9ImRpZmYtaW5kaWNhdG9y LWFkZGVkIj4rPC9zcGFuPjxzcGFuIGNsYXNzPSJkaWZmLWFkZGVkIj4gICAodCA8L3NwYW4+ PHNwYW4gY2xhc3M9ImRpZmYtcmVmaW5lLWFkZGVkLTAwMDEiPmZuPC9zcGFuPjxzcGFuIGNs YXNzPSJkaWZmLWFkZGVkIj4pKSkKPC9zcGFuPjxzcGFuIGNsYXNzPSJkaWZmLWNvbnRleHQi PiAKPC9zcGFuPjxzcGFuIGNsYXNzPSJkaWZmLWNvbnRleHQiPiAKPC9zcGFuPjxzcGFuIGNs YXNzPSJkaWZmLWNvbnRleHQiPiAoZGVmdW4gaGZ5LWZhY2UtdG8tc3R5bGUgKGZuKQo8L3Nw YW4+PC9wcmU+CgogPC9ib2R5Pgo8L2h0bWw+Cg== --------------020107030104090103080009-- --JuhAwwPHQk9olh0VFt5dCo1Qtd2M8SdtU Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQIcBAEBCAAGBQJWnKDeAAoJECZsfTOCL4R4KCEQAMgbt/Cj7kFc9capBiTUykMO YarCDmapRxKfw6mGZeCi+ms89b4UdzRwVAwL2Cwus5uP65/27p8GCm26N3cniV9g MQwc/elYF4rnEBkancvUpx3a0uUxbOlrByjLuB2u1/TOgrklMORQbrusOOACQNTF A53D5FfIsznJ6OD49x7xiS/7nM7y8N9o3pGePFqICHRz/NBfix9ShlmoFHBIXYTk UfqZqAbucDEBIJu0qRD/Z6vi1wDeum4L41qb2vfUohsYjRMT4XHmM+CIZKsi7I/G YINcuphVk0Vjks35i9TDJVCzzjZRP61JRdrf+oYTQPIJSqfRMSez0R6OnOWdK/ys o5Mzlu3DAkcTLT1dMnOGxyUDZVeQAb/1aEenNy3NEgwsnDc9/OZwbJ+lHswv1zxn E+gur0r6nwinjN4g4LPLyvYk5AQ1XeNcZA8wgw9d1odXgeUtn+QwVq3RwV5Z9cWW 6bpCWLkC8yXfheV/oqEnAleQrjkD4fTr13DPAnq3qhiFvnOV5Xc6F5HgKYHDiFI8 NYM5FimpKblgTv5K0bi3650o1bzMkgcUT9W4m7KuJiijKEUQpBpR9KNCNktF7aTl uXWpibuVy3ORg4Z8lUN9/KKsu8tf/GvCD3O079h2mtm5yRrYlBz6jIxhKMBtWyBZ 2I8ffxf+N3O+L5wH5C5j =hCmh -----END PGP SIGNATURE----- --JuhAwwPHQk9olh0VFt5dCo1Qtd2M8SdtU--