From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: handa Newsgroups: gmane.emacs.bugs Subject: bug#25864: 25.1; Incorrect rendering for Bengali compound character Date: Wed, 01 Mar 2017 01:25:30 +0900 Message-ID: <87efyi5ll1.fsf@gnu.org> References: <20170223221546.GB24509@gmail.com> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Trace: blaine.gmane.org 1488299699 32590 195.159.176.226 (28 Feb 2017 16:34:59 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Tue, 28 Feb 2017 16:34:59 +0000 (UTC) Cc: 25864@debbugs.gnu.org To: Mandar Mitra Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Tue Feb 28 17:34:55 2017 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cikjh-0007jR-Ry for geb-bug-gnu-emacs@m.gmane.org; Tue, 28 Feb 2017 17:34:50 +0100 Original-Received: from localhost ([::1]:35338 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cikjn-0004MV-Ft for geb-bug-gnu-emacs@m.gmane.org; Tue, 28 Feb 2017 11:34:55 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:52138) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cikbG-00056A-3i for bug-gnu-emacs@gnu.org; Tue, 28 Feb 2017 11:26:06 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cikbC-0007G2-2U for bug-gnu-emacs@gnu.org; Tue, 28 Feb 2017 11:26:06 -0500 Original-Received: from debbugs.gnu.org ([208.118.235.43]:34035) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1cikbB-0007Fy-V8 for bug-gnu-emacs@gnu.org; Tue, 28 Feb 2017 11:26:01 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1cikbB-00031n-Qu for bug-gnu-emacs@gnu.org; Tue, 28 Feb 2017 11:26:01 -0500 X-Loop: help-debbugs@gnu.org Resent-From: handa Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 28 Feb 2017 16:26:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 25864 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 25864-submit@debbugs.gnu.org id=B25864.148829915011620 (code B ref 25864); Tue, 28 Feb 2017 16:26:01 +0000 Original-Received: (at 25864) by debbugs.gnu.org; 28 Feb 2017 16:25:50 +0000 Original-Received: from localhost ([127.0.0.1]:60467 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cikb0-00031L-Jz for submit@debbugs.gnu.org; Tue, 28 Feb 2017 11:25:50 -0500 Original-Received: from eggs.gnu.org ([208.118.235.92]:32830) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cikaz-000319-8N for 25864@debbugs.gnu.org; Tue, 28 Feb 2017 11:25:49 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cikat-00074O-C2 for 25864@debbugs.gnu.org; Tue, 28 Feb 2017 11:25:44 -0500 Original-Received: from fencepost.gnu.org ([2001:4830:134:3::e]:49779) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cikal-00072D-Va; Tue, 28 Feb 2017 11:25:36 -0500 Original-Received: from fl1-125-197-241-176.iba.mesh.ad.jp ([125.197.241.176]:55812 helo=shatin) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1cikal-0000wi-7k; Tue, 28 Feb 2017 11:25:35 -0500 Original-Received: from handa by shatin with local (Exim 4.86_2) (envelope-from ) id 1cikag-0002bQ-FL; Wed, 01 Mar 2017 01:25:30 +0900 In-Reply-To: <20170227150547.GD6085@gmail.com> (message from Mandar Mitra on Mon, 27 Feb 2017 20:35:47 +0530) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] 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" Xref: news.gmane.org gmane.emacs.bugs:129949 Archived-At: --=-=-= Content-Type: text/plain In article <20170227150547.GD6085@gmail.com>, Mandar Mitra writes: > handa wrote (Mon, Feb 27, 2017 at 11:01:37PM +0900): > > Hi, > > > > Which Bengali font are you using with Emacs? > Hi, I'm using Lohit Bengali. I have the following in my .emacs: > (set-fontset-font t (cons (decode-char 'ucs #x0980) > (decode-char 'ucs #x09ff)) > (font-spec :name "Lohit Bengali" :size 16.0)) Thank you for the info. I installed that font and confirmed the wrong rendering as you wrote. It seems that this patch should be applied to the file BENG-OTF.flt which is included in m17n-db package. diff --git a/FLT/BENG-OTF.flt b/FLT/BENG-OTF.flt index 45cc554..0cc5e76 100644 --- a/FLT/BENG-OTF.flt +++ b/FLT/BENG-OTF.flt @@ -232,7 +232,7 @@ (lang-forms (cond ("(.H)J" (1 :otf=beng=half+)) - (".H" :otf=beng=blwf,half,vatu+) + (".+H" :otf=beng=blwf,half,vatu+) ("." =))) (post I attach a version which contains the above change. Please put that file under ~/.m17n.d and start Emacs again. Does it work? Doesn't it have a bad side effect for the rendering of other Bengali pattern? --- K. Handa handa@gnu.org --=-=-= Content-Type: application/octet-stream Content-Disposition: attachment; filename=BENG-OTF.flt Content-Transfer-Encoding: base64 OzsgQkVORy1PVEYuZmx0IC0tIEZvbnQgTGF5b3V0IFRhYmxlIGZvciBCZW5nYWxpIE9wZW5UeXBl IGZvbnRzCjs7IENvcHlyaWdodCAoQykgMjAwNCwgMjAwNywgMjAxMCBBSVNUIChIMTVQUk8xMTIp Cjs7IFNlZSB0aGUgZW5kIGZvciBjb3B5aW5nIGNvbmRpdGlvbnMuCgooZm9udCBsYXlvdXRlciBi ZW5nLW90ZiBuaWwKICAgICAgKHZlcnNpb24gIjEuNi4wIikKICAgICAgKGZvbnQgKG5pbCBuaWwg dW5pY29kZS1ibXAgOm90Zj1iZW5nKSkpCgo7OzsgPGxpPiBCRU5HLU9URi5mbHQKOzs7Cjs7OyBG b3IgQmVuZ2FsaSBPcGVuVHlwZSBmb250cyB0byBkcmF3IHRoZSBCZW5nYWxpIHNjcmlwdC4gIAoK OzsgQWZ0ZXItYmFzZSBnbHlwaCBvcmRlciBmb3IgcmVuZGVyaW5nOgo7OyAxLiBiZWxvdyBmb3Jt IGNvbnNvbmFudHMKOzsgMi4gYmVsb3cgbWF0cmEKOzsgMy4gcmVwaAo7OyA0LiBjYW5kcmFiaW5k dSAoMDk4MSkKOzsgNS4gcG9zdCBmb3JtIGNvbnNvbmFudHMKOzsgNi4gcG9zdCBtYXRyYQo7OyA3 LiBhbnVzdmFyYSAoMDk4MikgYW5kIHZpc2FyZ2EgKDA5ODMpCgooY2F0ZWdvcnkKIDs7IFg6IGdl bmVyaWMKIDs7IFY6IGluZGVwZW5kZW50IHZvd2VsCiA7OyBDOiBjb25zb25hbnQKIDs7IEI6IEJB CiA7OyBZOiBZQQogOzsgUjogUkEKIDs7IFQ6IEtIQU5EQSBUQQogOzsgbjogTlVLVEEKIDs7IEg6 IEhBTEFOVAogOzsgbTogdm93ZWwgc2lnbiAocHJlKQogOzsgYjogdm93ZWwgc2lnbiAoYmVsb3cp CiA7OyBwOiB2b3dlbCBzaWduIChwb3N0KQogOzsgYTogdm93ZWwgbW9kaWZpZXIgKGFib3ZlKQog OzsgQTogdm93ZWwgbW9kaWZpZXIgKHBvc3QpCiA7OyBOOiBaV05KCiA7OyBKOiBaV0oKICgweDA5 ODAgMHgwOUZGCT9YKQkJCTsgZ2VuZXJpYwogKDB4MDk4MQk/YSkJCQk7IFNJR04gQ0FORFJBQklO RFUKICgweDA5ODIgMHgwOTgzCT9BKQkJCTsgU0lHTiBBTlVTVkFSQSAuLiBWSVNBUkdBCiAoMHgw OTg1IDB4MDk5NAk/VikJCQk7IExFVFRFUiBBIC4uIEFVCiAoMHgwOTk1IDB4MDlCOQk/QykJCQk7 IExFVFRFUiBLQSAuLiBIQQogKDB4MDlBQwk/QikJCQk7IExFVFRFUiBCQQogKDB4MDlBRgk/WSkJ CQk7IExFVFRFUiBZQQogKDB4MDlCMAk/UikJCQk7IExFVFRFUiBSQQogKDB4MDlCQwk/bikJCQk7 IFNJR04gTlVLVEEKICgweDA5QkUJP3ApCQkJOyBWT1dFTCBTSUdOIEFBCiAoMHgwOUJGCT9tKQkJ CTsgVk9XRUwgU0lHTiBJCiAoMHgwOUMwCT9wKQkJCTsgVk9XRUwgU0lHTiBJSQogKDB4MDlDMSAw eDA5QzQJP2IpCQkJOyBWT1dFTCBTSUdOIFUgLi4gUlIKICgweDA5QzcgMHgwOUM4CT9tKQkJCTsg Vk9XRUwgU0lHTiBFIC4uIEFJCiAoMHgwOUNECT9IKQkJCTsgU0lHTiBWSVJBTUEKICgweDA5Q0UJ P1QpCQkJOyBMRVRURVIgS0hBTkRBIFRBCiAoMHgwOUQ3CT9wKQkJCTsgQVUgTEVOR1RIIE1BUksK ICgweDA5REMgMHgwOURGCT9DKQkJCTsgTEVUVEVSIFJSQSAuLiBZWUEKICgweDA5RTAgMHgwOUUx CT9WKQkJCTsgTEVUVEVSIFZPQ0FMSUMgUlIsIExMCiAoMHgwOUUyIDB4MDlFMwk/YikJCQk7IFZP V0VMIFNJR04gTCAuLiBMTAogKDB4MDlGMAk/UikJCQk7IExFVFRFUiBSQSBXSVRIIE1JRERMRSBE SUFHT05BTAogKDB4MDlGMQk/QykJCQk7IExFVFRFUiBSQSBXSVRIIExPV0VSIERJQUdPTkFMCgog KDB4MjAwQwk/TikJCQk7IFpXTkoKICgweDIwMEQJP0opCQkJOyBaV0oKICgweDI1Q0MJP1gpCQkJ OyBET1RURUQgQ0lSQ0xFCgogKHJwaGYJCT9yKQogKHBzdGYJCT9QKQogKQoKOzsgU3RhZ2UgMAo7 OyBQcmVwcm9jZXNzaW5nCihnZW5lcmF0b3IKICgwCiAgKGNvbmQKICAgOzsgRGVjb21wb3NlIHR3 by1wYXJ0IHZvd2VsIHNpZ25zLgogICAoKDB4MDlDQikKICAgIDB4MDlDNyAweDA5QkUpCiAgICgo MHgwOUNDKQogICAgMHgwOUM3IDB4MDlENykKCiAgIDs7IE1hbnkgZm9udHMgc3RpbGwgZG8gbm90 IGhhdmUgS0hBTkRBLVRBLgogICAoKDB4MDlDRSkKICAgIChjb25kCiAgICAgKChmb250LWZhY2ls aXR5IDB4MDlDRSkgPSkKICAgICAoIi4rIiAweDA5QTQgMHgwOUNEIDB4MjAwRCkpKQoKICAgOzsg Y29uc29uYW50ICsgTlVLVEEKICAgKCgweDA5QTEgMHgwOUJDKQogICAgMHgwOURDKQogICAoKDB4 MDlBMiAweDA5QkMpCiAgICAweDA5REQpCiAgICgoMHgwOUFGIDB4MDlCQykKICAgIDB4MDlERikK CiAgICgiLiIgPSkpCiAgKikpCgo7OyBTdGFnZSAxCjs7IFN5bGxhYmxlIGlkZW50aWZpY2F0aW9u CihnZW5lcmF0b3IKICgwCiAgKGNvbmQKICAgOzsgU3lsbGFibGVzIHdpdGggYW4gaW5kZXBlbmRl bnQgdm93ZWwKICAgKCIoUkgpPyhWbj8pKChKP0hbQllSXSk/bT9iP3A/bj9hP0E/KSIKICAgIDwg fCAoMSA9ID0pICgyIDpvdGY9YmVuZz1udWt0KykgKDMgPSAqKSB8ID4pCgogICA7OyBLSEFOREEt VEEgY29tYmluZXMgb25seSB3aXRoIHJlcGguCiAgICgiKFJIKT8oVCkiCiAgICA8ICgyID0pICgx IDpvdGY9YmVuZz1ycGhmKykgPikKCiAgIDs7IENvbnNvbmFudC1iYXNlZCBzeWxsYWJsZXMKICAg OzsxICAgICAgICAyMyAgICAgICAgICAgICAgICAgICA0CiAgICgiKFtDQllSXW4/KChKP0h8SEo/ KVtDQllSXW4/KSopKEhbTkpdP3xtPyhbTkpdP2IpP3A/bj9hP0E/KSIKICAgIDwgfAogICAgKGNv bmQKICAgICAoIi4rSEokIiA6b3RmPWJlbmc9bnVrdCxha2huKykKICAgICAoIiguKykoSClOPyQi ICgxIDpvdGY9YmVuZz1udWt0LGFraG4rKSAoMiA9KSAweDIwMEMpCiAgICAgKCIuKyIgOm90Zj1i ZW5nPW51a3QsYWtobispKQogICAgfCA+KQoKICAgOzsgVHdvLXBhcnQgdm93ZWwgc2lnbnMKICAg KCgweDA5QzcgMHgwOUJFKQogICAgKGNvbmQKICAgICAoKGZvbnQtZmFjaWxpdHkgMHgyNUNDKSA8 ID0gMHgyNUNDID0gPikKICAgICAoIi4rIiBbIDB4MDlDQiBdKSkpCiAgICgoMHgwOUM3IDB4MDlE NykKICAgIChjb25kCiAgICAgKChmb250LWZhY2lsaXR5IDB4MjVDQykgPCA9IDB4MjVDQyA9ID4p CiAgICAgKCIuKyIgWyAweDA5Q0MgXSkpKQoKICAgOzsgQ29tYmluaW5nIG1hcmtzIGFyZSBkaXNw bGF5ZWQgd2l0aCBhIERPVFRFRCBDSVJDTEUuCiAgICgibSIKICAgIChjb25kCiAgICAgKChmb250 LWZhY2lsaXR5IDB4MjVDQykgPCA9IDB4MjVDQyA+KQogICAgICgiLiIgWyA9IF0pKSkKICAgKCJb bkhicGFBXSIKICAgIChjb25kCiAgICAgKChmb250LWZhY2lsaXR5IDB4MjVDQykgPCAweDI1Q0Mg PSA+KQogICAgICgiLiIgWyA9IF0pKSkKCiAgIDs7IElzb2xhdGVkIGJsd2YgYW5kIHBzdGYgYXJl IGRpc3BsYXllZCB3aXRoIGEgRE9UVEVEIENJUkNMRSBpbiB0aGUKICAgOzsgbmV4dCBzdGFnZS4K ICAgKCIoSikoSCkoW0JZUl0pIgogICAgPCB8ICgxID0pICgzID0pICgyID0pIHwgPikKCiAgICgi LiIgPSkpCiAgKikpCgo7OyBTdGFnZSAyCjs7IFJlb3JkZXIgaGFsYW50IGZvciBibHdmIGFuZCBw c3RmCihnZW5lcmF0b3IKICgwCiAgKGNvbmQKICAgOzsgSXNvbGF0ZWQgYmx3ZiBhbmQgcHN0Zgog ICAoIiBKKFtCWVJdSCkgIgogICAgKGNvbmQKICAgICAoKGZvbnQtZmFjaWxpdHkgMHgyNUNDKSA8 IDB4MjVDQyAoMSA6b3RmPWJlbmc9Ymx3Zixwc3RmKykgPikKICAgICAoIiBKKFtCWVJdSCkgIiBb ICgxIDpvdGY9YmVuZz1ibHdmLHBzdGYrKSBdKSkpCgogICA7OyBTeWxsYWJsZXMgd2l0aCBhbiBv dmVydCBoYWxhbnQKICAgKCIgKFJISj8pPyhbXiBdKykoSE4pICIKICAgIHwgKDEgPSAqKSAoMiBy ZW9yZGVyKSAoMyA9ID0pIHwpCgogICA7OyBTeWxsYWJsZXMgd2l0aCBhIGJlbG93IG1hdHJhCiAg ICgiIChSSEo/KT8oW15tYnBhQSBdKltebWJwYUFOSiBdKShtP1tOSl0/YnA/bj9hP0E/KSAiCiAg ICB8ICgxID0gKikgKDIgcmVvcmRlcikgKDMgPSAqKSB8KQoKICAgOzsgT3RoZXIgc3lsbGFibGVz CiAgICgiIChSSEo/KT8oW15tYnBhQSBdKykobT9wP24/YT9BPykgIgogICAgfCAoMSA9ICopICgy IHJlb3JkZXIpICgzID0gKikgfCkKCiAgICgiLiIgPSkpCiAgKikKCiAocmVvcmRlcgogICgiKC58 LisoW15ZSl18Sll8SEopKSgoSj9IWSkqKSQiCiAgICgxIHJlb3JkZXItQlIgKikgKDMgcmVvcmRl ci1ZICopKSkKIAogOzsgVW5saWtlIERldmFuYWdhcmkgYW5kIEd1amFyYXRpLCB2YXR0dSBpbiBC ZW5nYWxpIGRvZXMgbm90IGhhdmUgYQogOzsgaGFsZiBmb3JtLiAgVGhlcmVmb3JlIHRoZSBzZXF1 ZW5jZSBDSFJIQyBjYW4gYmUgc2FmZWx5IHJlb3JkZXJlZAogOzsgdG8gQ1JISEMuICBTYW1lIGZv ciBDSEJIQy4KIChyZW9yZGVyLUJSCiAgKGNvbmQKICAgKCJKPyhIKShbQlJdKSIKICAgICgyID0p ICgxID0pKQogICAoIi4iID0pKSkKCiAocmVvcmRlci1ZCiAgKCJKPyhIKShZKSIKICAgKDIgPSkg KDEgPSkpKQogKQoKOzsgU3RhZ2UgMwo7OyBMYW5ndWFnZSBmb3JtcyBhbmQgbWF0cmEgcmVvcmRl cmluZwooZ2VuZXJhdG9yCiAoMAogIChjb25kCiAgIDs7IE92ZXJ0IGhhbGFudCBmb3JtcwogICAo IiAoUkhKPyk/KFteIF0rKShITikgIgogICAgfAogICAgKDEgKGNvbmQgKCJSSEoiIDpvdGY9YmVu Zz1oYWxmKykKCSAgICAgKCJSSCIgOm90Zj1iZW5nPXJwaGYrKSkpCiAgICAoMiBiNHBvc3QpICgy IHBvc3QpICgzID0gPSkgfCkKCiAgIDs7IFN5bGxhYmxlcyB3aXRoIGEgYmVsb3cgbWF0cmEKICAg OzsgMSAgICAgIDIgICAgICAgICAgICAgIDMgICAgIDQgICAgICAgICA1CiAgICgiIChSSEo/KT8o W15tYl0qW15tYk5KXSkobW4/KT8oW05KXT9ibj8pKHA/bj9hP0E/KSAiCiAgICB8ICgzID0gKikK ICAgICgxIChjb25kICgiUkhKIiA6b3RmPWJlbmc9aGFsZispCgkgICAgICgiUkgiIDpvdGY9YmVu Zz1ycGhmKykpKQogICAgKDIgYjRwb3N0KSAoNCA9ICopICgyIHBvc3QpICg1ID0gKikgfCkKCiAg IDs7IE90aGVyIHN5bGxhYmxlcwogICA7OyAxICAgICAgMiAgICAgICAgICAzICAgICA0CiAgICgi IChSSEo/KT8oW15tcGFBIF0qKShtbj8pPyhwP24/YT9BPykgIgogICAgfCAoMyA9ICopCiAgICAo MSAoY29uZCAoIlJISiIgOm90Zj1iZW5nPWhhbGYrKQoJICAgICAoIlJIIiA6b3RmPWJlbmc9cnBo ZispKSkKICAgICgyIGI0cG9zdCkgKDIgcG9zdCkgKDQgPSAqKSB8KQoKICAgKCIuIiA9KSkKICAq KQoKIChiNHBvc3QKICAoY29uZAogICAoIiguSClKPyguKikiCiAgICAoMSA6b3RmPWJlbmc9aGFs ZispCiAgICAoMiAoIigufC4rKFteWUhdfEpZfFtCUl1IKSkoKFlIKSopJCIgKDEgbGFuZy1mb3Jt cyAqKSkpKQogICAoIigufC4rKFteWUhdfEpZfFtCUl1IKSkoKFlIKSopIgogICAgKDEgbGFuZy1m b3JtcyAqKSkpKQoKIChsYW5nLWZvcm1zCiAgKGNvbmQKICAgKCIoLkgpSiIgKDEgOm90Zj1iZW5n PWhhbGYrKSkKICAgKCIuK0giIDpvdGY9YmVuZz1ibHdmLGhhbGYsdmF0dSspCiAgICgiLiIgPSkp KQoKIChwb3N0CiAgKCIoLnwuKyhbXllIXXxKWXxbQlJdSCkpKChZSCkrKSQiCiAgICgzIDpvdGY9 YmVuZz1wc3RmKykpKQogKQoKOzsgU3RhZ2UgNAo7OyBGaW5hbCByZW9yZGVyaW5nICMxIChNb3Zl IHByZS1iYXNlIG1hdHJhIGFmdGVyIHRoZSBsYXN0IGhhbGFudCkKKGdlbmVyYXRvcgogKDAKICAo Y29uZAogICA7OyAxICAgIDIgICAgICAgICAzCiAgICgiIChtbj8pKFteIF0rSEo/KShbXkggXSsp ICIKICAgIHwgKDIgPSAqKSAoMSA9ICopICgzID0gKikgfCkKCiAgICgiLiIgPSkpCiAgKikpCgo7 OyBTdGFnZSA1Cjs7IEZpbmFsIHJlb3JkZXJpbmcgIzIgKE1vdmUgcmVwaCBhZnRlciB0aGUgZmly c3QgaGFsYW50KQooZ2VuZXJhdG9yCiAoMAogIChjb25kCiAgIDs7IFN5bGxhYmxlcyB3aXRoIGEg cmVwaCBhbmQgYW4gZXhwbGljaXQgaGFsYW50CiAgIDs7IDEgICAgIDIgIDMgICAgICAgICAgIDQK ICAgKCIgKG1uPyk/KHIpKFteSFAgXStISj8pKFteIF0qKSAiCiAgICB8ICgxID0gKikgKDMgPSAq KSAoMiA9KSAoNCA9ICopIHwpCgogICA7OyBBIHJlcGggd2l0aG91dCBleHBsaWNpdCBoYWxhbnQK ICAgOzsgMSAgICAgMiAgMyAgICAgICAgICA0CiAgICgiIChtbj8pPyhyKShbXlBwYUEgXSspKFAq KEhOKT9wP24/YT9BPykgIgogICAgfCAoMSA9ICopICgzID0gKikgKDIgPSkgKDQgPSAqKSB8KQoK ICAgKCIuIiA9KSkKICAqKSkKCjs7IFN0YWdlIDYKOzsgTnVrdGEgZm9yIG1hdHJhIGFuZCBQcmVz ZW50YXRpb24gZm9ybXMKKGdlbmVyYXRvcgogKDAKICAoY29uZAogICAoIiAobW4/KT8oW14gXSsp ICIKICAgIHwgKDEgOm90Zj1iZW5nPW51a3QsaW5pdCspICgyIDpvdGY9YmVuZz1udWt0LHByZXMs YWJ2cyxibHdzLHBzdHMsaGFsbispIHwpCgogICAoIi4iID0pKQogICopKQoKOzsgU3RhZ2UgNwo7 OyBSZW1vdmUgWldOSi9aV0oKKGdlbmVyYXRvcgogKDAKICAoY29uZAogICAoIltOSl0iKQoKICAg KCIuIiA9KSkKICAqKSkKCjs7IFN0YWdlIDgKOzsgR1BPUyBwcm9jZXNzaW5nCihnZW5lcmF0b3IK ICgwCiAgKGNvbmQKICAgKCIgKFteIF0rKSAiCiAgICAoMSA6b3RmPWJlbmc9K2Fidm0sYmx3bSxk aXN0KSkKCiAgICgiLiIgPSkpCiAgKikpCgo7OyBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDcsIDIw MTAKOzsgICBOYXRpb25hbCBJbnN0aXR1dGUgb2YgQWR2YW5jZWQgSW5kdXN0cmlhbCBTY2llbmNl IGFuZCBUZWNobm9sb2d5IChBSVNUKQo7OyAgIFJlZ2lzdHJhdGlvbiBOdW1iZXIgSDE1UFJPMTEy Cgo7OyBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgbTE3biBkYXRhYmFzZTsgYSBzdWItcGFydCBv ZiB0aGUgbTE3bgo7OyBsaWJyYXJ5LgoKOzsgVGhlIG0xN24gbGlicmFyeSBpcyBmcmVlIHNvZnR3 YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKOzsgbW9kaWZ5IGl0IHVuZGVyIHRo ZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCjs7IGFzIHB1 Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAy LjEgb2YKOzsgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp b24uCgo7OyBUaGUgbTE3biBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg aXQgd2lsbCBiZSB1c2VmdWwsCjs7IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCjs7IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCjs7IExlc3NlciBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCgo7OyBZb3Ugc2hvdWxkIGhhdmUgcmVj ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCjs7IExpY2Vuc2Ug YWxvbmcgd2l0aCB0aGUgbTE3biBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlCjs7 IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxv b3IsCjs7IEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgoKOzsgTG9jYWwgVmFyaWFibGVzOgo7 OyBtb2RlOiBlbWFjcy1saXNwCjs7IEVuZDoK --=-=-=--