From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Cecilio Pardo Newsgroups: gmane.emacs.bugs Subject: bug#73730: 31.0.50; Support for color fonts on MS-Windows Date: Thu, 10 Oct 2024 13:16:23 +0200 Message-ID: <36a6b4d5-c719-44d6-957d-bcd7db5a854b@imayhem.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------8Mh0xe004XZIEm0ikrrcylOz" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="26889"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla Thunderbird To: 73730@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Thu Oct 10 13:17:02 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 1syrAD-0006qG-Em for geb-bug-gnu-emacs@m.gmane-mx.org; Thu, 10 Oct 2024 13:17:01 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1syrA6-000891-Kc; Thu, 10 Oct 2024 07:16:54 -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 1syrA3-00088n-Sk for bug-gnu-emacs@gnu.org; Thu, 10 Oct 2024 07:16: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 1syrA2-0004e1-Ne for bug-gnu-emacs@gnu.org; Thu, 10 Oct 2024 07:16:50 -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=N6wXA88S9uR8cMs4GrRDhKnZgyjZqXKdwaHMPzj0Y3E=; b=j6LCC0YL7X6EkMUJI6w8n1ic6JtgpQjm8cqaLe4yuiLis7xJiz+2yuvJuUluPlMeuTMaSF37d+77DmhhMHDRXNvWXyOU/yrHj/C3TQPYxz3i6ixzIMWovPD+oKrQ43MyLo6avYVS2ItX6V5I+EO5V6tK33RT+mrYEqtpTpxsyzWC9/ZM83ZK1b/1a5YqphM6UjAzPYWYjEelGNqRrFiX1aq6Mb090pADr0+Mxzen/9aIp1vdATZYBR6rqHpTwMHtayTg5eLx9GHuWUulm2RQT1DXzG9JWl6vy2/QVYCMN6M16oW7jEpVPxpmX9cyE8DKSHacsdifX6Y5Xwuc7a3dPQ==; Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1syrAD-0003DP-SS for bug-gnu-emacs@gnu.org; Thu, 10 Oct 2024 07:17:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Cecilio Pardo Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 10 Oct 2024 11:17:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 73730 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.172855900612328 (code B ref -1); Thu, 10 Oct 2024 11:17:01 +0000 Original-Received: (at submit) by debbugs.gnu.org; 10 Oct 2024 11:16:46 +0000 Original-Received: from localhost ([127.0.0.1]:58857 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1syr9x-0003Ck-B3 for submit@debbugs.gnu.org; Thu, 10 Oct 2024 07:16:46 -0400 Original-Received: from lists.gnu.org ([209.51.188.17]:50574) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1syr9u-0003Cb-Ts for submit@debbugs.gnu.org; Thu, 10 Oct 2024 07:16:44 -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 1syr9j-000874-CN for bug-gnu-emacs@gnu.org; Thu, 10 Oct 2024 07:16:31 -0400 Original-Received: from mail.imayhem.com ([82.223.54.191] helo=zealous-pike.82-223-54-191.plesk.page) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1syr9e-0004aX-K1 for bug-gnu-emacs@gnu.org; Thu, 10 Oct 2024 07:16:30 -0400 Original-Received: from [10.0.12.77] (66.red-2-136-43.staticip.rima-tde.net [2.136.43.66]) by zealous-pike.82-223-54-191.plesk.page (Postfix) with ESMTPSA id 3516F80166 for ; Thu, 10 Oct 2024 11:16:24 +0000 (UTC) Authentication-Results: zealous-pike.82-223-54-191.plesk.page; spf=pass (sender IP is 2.136.43.66) smtp.mailfrom=cpardo@imayhem.com smtp.helo=[10.0.12.77] Received-SPF: pass (zealous-pike.82-223-54-191.plesk.page: connection is authenticated) Content-Language: es-ES Received-SPF: pass client-ip=82.223.54.191; envelope-from=cpardo@imayhem.com; helo=zealous-pike.82-223-54-191.plesk.page X-Spam_score_int: 1 X-Spam_score: 0.1 X-Spam_bar: / X-Spam_report: (0.1 / 5.0 requ) BAYES_00=-1.9, DC_PNG_UNO_LARGO=0.001, PDS_OTHER_BAD_TLD=1.999, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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:293275 Archived-At: This is a multi-part message in MIME format. --------------8Mh0xe004XZIEm0ikrrcylOz Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit The attached patch is a preliminar implementation of a DirectWrite font driver that allows for color fonts, tested only on Windows 11. There is much to be refined about quality, performance (caching), OS version conditionals, etc. Before doing all that, I need to know that this is the right (or at least good enough) way to do it. The DirectWrite font driver mounts on top of a copy of the harfbuzz one, and then replaces some of the functions, but some of the hb functions include eassert to check that the driver for a font is harfbuzz. I don't know how to deal with that. I suppose that if we skip harfbuzz completely, then we would have to reimplement a lot of stuff with DirectWrite? Also uniscribe_open has been modified to change the driver assigned to the font unconditionally to dwrite. -- Cecilio Pardo --------------8Mh0xe004XZIEm0ikrrcylOz Content-Type: text/plain; charset=UTF-8; name="0001-Font-driver-for-DirectWrite-MS-Windows-supporting-co.patch" Content-Disposition: attachment; filename*0="0001-Font-driver-for-DirectWrite-MS-Windows-supporting-co.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSBkMDA0ODQ1ZmU2YTk0OTVhZjdjMDNkZGQ5ZDMwZDNiYTcxZmMzZTVkIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBDZWNpbGlvIFBhcmRvIDxjcGFyZG9AaW1heWhlbS5j b20+CkRhdGU6IFdlZCwgOSBPY3QgMjAyNCAxMTo0MDoyOCArMDIwMApTdWJqZWN0OiBbUEFU Q0hdIEZvbnQgZHJpdmVyIGZvciBEaXJlY3RXcml0ZSAoTVMtV2luZG93cykgc3VwcG9ydGlu ZyBjb2xvcgogZm9udHMuCgotLS0KIGNvbmZpZ3VyZS5hYyAgICAgICB8ICAgNCArLQogc3Jj L2ZvbnQuaCAgICAgICAgIHwgICAxICsKIHNyYy93MzJkd3JpdGUuYyAgICB8IDQ3MCArKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHNyYy93MzJmbnMu YyAgICAgICB8ICAgNyArCiBzcmMvdzMydW5pc2NyaWJlLmMgfCAgIDIgKwogNSBmaWxlcyBj aGFuZ2VkLCA0ODIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBzcmMvdzMyZHdyaXRlLmMKCmRpZmYgLS1naXQgYS9jb25maWd1cmUuYWMgYi9j b25maWd1cmUuYWMKaW5kZXggOGE1YmE3ZGIzZDEuLjhhMDZkOWQ1MDI3IDEwMDY0NAotLS0g YS9jb25maWd1cmUuYWMKKysrIGIvY29uZmlndXJlLmFjCkBAIC0zMTcyLDcgKzMxNzIsNyBA QCBBQ19ERUZVTgogICBBQ19DSEVDS19UT09MKFtXSU5EUkVTXSwgW3dpbmRyZXNdLAogICAg ICAgICAgICAgICAgIFtBQ19NU0dfRVJST1IoW05vIHJlc291cmNlIGNvbXBpbGVyIGZvdW5k Ll0pXSkKICAgVzMyX09CSj0idzMyZm5zLm8gdzMybWVudS5vIHczMnJlZy5vIHczMmZvbnQu byB3MzJ0ZXJtLm8iCi0gIFczMl9PQko9IiRXMzJfT0JKIHczMnhmbnMubyB3MzJzZWxlY3Qu byB3MzJ1bmlzY3JpYmUubyB3MzJjeWd3aW54Lm8iCisgIFczMl9PQko9IiRXMzJfT0JKIHcz MnhmbnMubyB3MzJzZWxlY3QubyB3MzJ1bmlzY3JpYmUubyB3MzJkd3JpdGUubyB3MzJjeWd3 aW54Lm8iCiAgIEVNQUNTUkVTPSJlbWFjcy5yZXMiCiAgIGNhc2UgIiRjYW5vbmljYWwiIGlu CiAgICAgeDg2XzY0LSotKikgRU1BQ1NfTUFOSUZFU1Q9ImVtYWNzLXg2NC5tYW5pZmVzdCIg OzsKQEAgLTMyMDIsNyArMzIwMiw3IEBAIEFDX0RFRlVOCiAgICAgICBXMzJfT0JKPSIkVzMy X09CSiB3MzJpbWFnZS5vIgogICAgIGZpCiAgICAgVzMyX0xJQlM9IiRXMzJfTElCUyAtbHdp bm1tIC1sZ2RpMzIgLWxjb21kbGczMiIKLSAgICBXMzJfTElCUz0iJFczMl9MSUJTIC1sbXBy IC1sd2luc3Bvb2wgLWxvbGUzMiAtbGNvbWN0bDMyIgorICAgIFczMl9MSUJTPSIkVzMyX0xJ QlMgLWxtcHIgLWx3aW5zcG9vbCAtbG9sZTMyIC1sY29tY3RsMzIgLWxkd3JpdGUiCiAgICAg VzMyX1JFU19MSU5LPSJcJChFTUFDU1JFUykiCiAgICAgQ0xJRU5UUkVTPSJlbWFjc2NsaWVu dC5yZXMiCiAgICAgQ0xJRU5UVz0iZW1hY3NjbGllbnR3XCQoRVhFRVhUKSIKZGlmZiAtLWdp dCBhL3NyYy9mb250LmggYi9zcmMvZm9udC5oCmluZGV4IDhlZTE5NDBiZTBhLi43ZTBlOTZk OWJmYSAxMDA2NDQKLS0tIGEvc3JjL2ZvbnQuaAorKysgYi9zcmMvZm9udC5oCkBAIC05Nzgs NiArOTc4LDcgQEAgdmFsaWRfZm9udF9kcml2ZXIgKHN0cnVjdCBmb250X2RyaXZlciBjb25z dCAqZCkKIGV4dGVybiBzdHJ1Y3QgZm9udF9kcml2ZXIgdW5pc2NyaWJlX2ZvbnRfZHJpdmVy OwogI2lmZGVmIEhBVkVfSEFSRkJVWloKIGV4dGVybiBzdHJ1Y3QgZm9udF9kcml2ZXIgaGFy ZmJ1enpfZm9udF9kcml2ZXI7CitleHRlcm4gc3RydWN0IGZvbnRfZHJpdmVyIGR3cml0ZV9m b250X2RyaXZlcjsKICNlbmRpZgogZXh0ZXJuIHZvaWQgc3ltc19vZl93MzJmb250ICh2b2lk KTsKICNlbmRpZgkvKiBIQVZFX05UR1VJICovCmRpZmYgLS1naXQgYS9zcmMvdzMyZHdyaXRl LmMgYi9zcmMvdzMyZHdyaXRlLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAuLjMyYzljMTc5Nzc4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3czMmR3cml0ZS5j CkBAIC0wLDAgKzEsNDcwIEBACisjaW5jbHVkZSA8Y29uZmlnLmg+CisjaW5jbHVkZSA8bWF0 aC5oPgorI2luY2x1ZGUgPHdpbmRvd3MuaD4KKworI2luY2x1ZGUgImxpc3AuaCIKKyNpbmNs dWRlICJjb2RpbmcuaCIKKyNpbmNsdWRlICJ3MzJ0ZXJtLmgiCisjaW5jbHVkZSAiZnJhbWUu aCIKKyNpbmNsdWRlICJjb21wb3NpdGUuaCIKKyNpbmNsdWRlICJmb250LmgiCisjaW5jbHVk ZSAidzMyZm9udC5oIgorI2luY2x1ZGUgInBkdW1wZXIuaCIKKyNpbmNsdWRlICJ3MzJjb21t b24uaCIKKworI2luY2x1ZGUgImluaXRndWlkLmgiCisjaW5jbHVkZSA8ZHdyaXRlXzMuaD4K Kwordm9pZCBzeW1zX29mX3czMmR3cml0ZSAodm9pZCk7CisKK3N0cnVjdCBmb250X2RyaXZl ciBkd3JpdGVfZm9udF9kcml2ZXI7CisKKy8qIEluaXRpYWxpemVkIG9uIHN5bXNfb2ZfdzMy ZHdyaXRlX2Zvcl9wZHVtcGVyICAqLworSURXcml0ZUZhY3RvcnkgKmR3cml0ZV9mYWN0b3J5 ID0gTlVMTDsKK0lEV3JpdGVGYWN0b3J5MiAqZHdyaXRlX2ZhY3RvcnkyID0gTlVMTDsKK0lE V3JpdGVHZGlJbnRlcm9wICpnZGlfaW50ZXJvcCA9IE5VTEw7CitJRFdyaXRlUmVuZGVyaW5n UGFyYW1zICpyZW5kZXJpbmdfcGFyYW1zID0gTlVMTDsKKworc3RhdGljIHZvaWQKK3Zlcmlm eV9ociAoSFJFU1VMVCBociwgY29uc3QgY2hhciAqbXNnKQoreworICBpZiAoRkFJTEVEICho cikpCisgICAgeworICAgICAgcHJpbnRmICgiRXJyb3I6ICVzXG4iLCBtc2cpOworICAgICAg YWJvcnQgKCk7CisgICAgfQorfQorCitzdGF0aWMgZmxvYXQKK2dldF9mb250X2FuZF9mYWNl IChIRk9OVCBoZm9udCwgTE9HRk9OVFcgKmxvZ2ZvbnRfb3V0LAorCQkgICBJRFdyaXRlRm9u dCAqKmZvbnQsIElEV3JpdGVGb250RmFjZSAqKmZhY2UpCit7CisgIEhSRVNVTFQgaHI7Cisg IExPR0ZPTlRXIGxvZ2ZvbnQ7CisKKyAgR2V0T2JqZWN0VyAoaGZvbnQsIHNpemVvZiAoTE9H Rk9OVFcpLCAmbG9nZm9udCk7CisgIGhyID0gZ2RpX2ludGVyb3AtPmxwVnRibC0+CisgICAg Q3JlYXRlRm9udEZyb21MT0dGT05UIChnZGlfaW50ZXJvcCwgKGNvbnN0IExPR0ZPTlRXICop ICZsb2dmb250LCBmb250KTsKKyAgdmVyaWZ5X2hyIChociwgIkZhaWxlZCB0byBjcmVhdGUg RFdyaXRlRm9udCIpOworICBociA9ICgqZm9udCktPmxwVnRibC0+CisgICAgQ3JlYXRlRm9u dEZhY2UgKCpmb250LCBmYWNlKTsKKyAgdmVyaWZ5X2hyIChociwgIkZhaWxlZCB0byBjcmVh dGUgRFdyaXRlRm9udEZhY2UiKTsKKworICBpZiAobG9nZm9udF9vdXQpCisgICAgKmxvZ2Zv bnRfb3V0ID0gbG9nZm9udDsKKworICByZXR1cm4gYWJzIChsb2dmb250LmxmSGVpZ2h0KTsK K30KKworc3RhdGljIElEV3JpdGVCaXRtYXBSZW5kZXJUYXJnZXQgKgorZ2V0X2JpdG1hcF9y ZW5kZXJfdGFyZ2V0IChIREMgaGRjLCBpbnQgd2lkdGgsIGludCBoZWlnaHQpCit7CisgIEhS RVNVTFQgaHI7CisgIElEV3JpdGVCaXRtYXBSZW5kZXJUYXJnZXQgKmJydDsKKyAgaHIgPSBn ZGlfaW50ZXJvcC0+bHBWdGJsLT4KKyAgICBDcmVhdGVCaXRtYXBSZW5kZXJUYXJnZXQgKGdk aV9pbnRlcm9wLCBoZGMsIHdpZHRoLCBoZWlnaHQsICZicnQpOworICB2ZXJpZnlfaHIgKGhy LCAiRmFpbGVkIHRvIGNyZWF0ZSBEV3JpdGVCaXRtYXBSZW5kZXJUYXJnZXQiKTsKKworICBJ RFdyaXRlQml0bWFwUmVuZGVyVGFyZ2V0MSAqYnJ0MTsKKyAgaHIgPSBicnQtPmxwVnRibC0+ CisgICAgUXVlcnlJbnRlcmZhY2UgKGJydCwgJklJRF9JRFdyaXRlQml0bWFwUmVuZGVyVGFy Z2V0MSwgKHZvaWQgKiopJmJydDEpOworICB2ZXJpZnlfaHIgKGhyLCAiRmFpbGVkIHRvIGNy ZWF0ZSBEV3JpdGVCaXRtYXBSZW5kZXJUYXJnZXQxIik7CisgIGJydDEtPmxwVnRibC0+Cisg ICAgU2V0VGV4dEFudGlhbGlhc01vZGUgKCBicnQxLCBEV1JJVEVfVEVYVF9BTlRJQUxJQVNf TU9ERV9DTEVBUlRZUEUgKTsKKyAgYnJ0MS0+bHBWdGJsLT5SZWxlYXNlKGJydDEpOworCisg IHJldHVybiBicnQ7Cit9CisKKworLyogVGhpcyBmdW5jdGlvbiBkb2VzIG5vdCBmaWxsIGlu IHRoZSBhc2NlbnQgYW5kIGRlc2NlbnQgZmllbGRzIG9mCisgICBtZXRyaWNzLiAgKi8KK3N0 YXRpYyB2b2lkIHRleHRfZXh0ZW50c19pbnRlcm5hbChJRFdyaXRlRm9udCAqZHdyaXRlX2Zv bnQsCisJCQkJICBJRFdyaXRlRm9udEZhY2UgKmR3cml0ZV9mb250X2ZhY2UsCisJCQkJICBm bG9hdCBmb250X3NpemUsCisJCQkJICBjb25zdCB1bnNpZ25lZCAqY29kZSwKKwkJCQkgIGlu dCBuZ2x5cGhzLCBzdHJ1Y3QgZm9udF9tZXRyaWNzICptZXRyaWNzKQoreworICBIUkVTVUxU IGhyOworCisgIERXUklURV9GT05UX01FVFJJQ1MgZHdyaXRlX2ZvbnRfbWV0cmljczsKKyAg ZHdyaXRlX2ZvbnQtPmxwVnRibC0+CisgICAgR2V0TWV0cmljcyAoZHdyaXRlX2ZvbnQsICZk d3JpdGVfZm9udF9tZXRyaWNzKTsKKworICBVSU5UMTYgKmluZGljZXMgPSBhbGxvY2EgKG5n bHlwaHMgKiBzaXplb2YgKFVJTlQxNikpOworICBmb3IgKGludCBpID0gMDsgaSA8IG5nbHlw aHM7IGkrKykKKyAgICBpbmRpY2VzW2ldID0gY29kZVtpXTsKKworICBEV1JJVEVfR0xZUEhf TUVUUklDUyogZ21ldHJpY3MgPQorICAgIGFsbG9jYSAobmdseXBocyAqIHNpemVvZiAoRFdS SVRFX0dMWVBIX01FVFJJQ1MpKTsKKworICBociA9IGR3cml0ZV9mb250X2ZhY2UtPmxwVnRi bC0+CisgICAgR2V0R2RpQ29tcGF0aWJsZUdseXBoTWV0cmljcyAoZHdyaXRlX2ZvbnRfZmFj ZSwgZm9udF9zaXplLCAxLjAsIE5VTEwsCisJCQkJICBUUlVFLCBpbmRpY2VzLCBuZ2x5cGhz LCBnbWV0cmljcywgZmFsc2UgKTsKKyAgdmVyaWZ5X2hyIChociwgIkZhaWxlZCB0byBHZXRH ZGlDb21wYXRpYmxlR2x5cGhNZXRyaWNzIik7CisKKyAgZmxvYXQgd2lkdGggPSAwOworICBp bnQgdW5pdHNfcGVyX2VtID0gZHdyaXRlX2ZvbnRfbWV0cmljcy5kZXNpZ25Vbml0c1BlckVt OworCisgIGZvciAoaW50IGkgPSAwOyBpIDwgbmdseXBoczsgaSsrKQorICAgIHsKKyAgICAg IHdpZHRoICs9IChmbG9hdClnbWV0cmljc1tpXS5hZHZhbmNlV2lkdGggKiBmb250X3NpemUg LyB1bml0c19wZXJfZW07CisgICAgICBmbG9hdCBsYmVhcmluZyA9IHJvdW5kICgoZmxvYXQp IGdtZXRyaWNzW2ldLmxlZnRTaWRlQmVhcmluZyAqIGZvbnRfc2l6ZQorCQkJICAgICAvIHVu aXRzX3Blcl9lbSk7CisgICAgICBmbG9hdCByYmVhcmluZyA9IHJvdW5kICgoZmxvYXQpIGdt ZXRyaWNzW2ldLnJpZ2h0U2lkZUJlYXJpbmcgKiBmb250X3NpemUKKwkJCSAgICAgIC8gdW5p dHNfcGVyX2VtKTsKKyAgICAgIGlmIChpPT0wKQorCXsKKwkgIG1ldHJpY3MtPmxiZWFyaW5n ID0gbGJlYXJpbmc7CisJICBtZXRyaWNzLT5yYmVhcmluZyA9IHJiZWFyaW5nOworCX0KKyAg ICAgIGlmIChtZXRyaWNzLT5sYmVhcmluZyA+IGxiZWFyaW5nKQorCW1ldHJpY3MtPmxiZWFy aW5nID0gbGJlYXJpbmc7CisgICAgICBpZiAobWV0cmljcy0+cmJlYXJpbmcgPCByYmVhcmlu ZykKKwltZXRyaWNzLT5yYmVhcmluZyA9IHJiZWFyaW5nOworICAgIH0KKyAgbWV0cmljcy0+ d2lkdGggPSByb3VuZCh3aWR0aCk7Cit9CisKK3N0YXRpYyBMaXNwX09iamVjdAorZHdyaXRl X2xpc3QgKHN0cnVjdCBmcmFtZSAqZiwgTGlzcF9PYmplY3QgZm9udF9zcGVjKQoreworICBM aXNwX09iamVjdCBmb250cyA9IHczMmZvbnRfbGlzdF9pbnRlcm5hbCAoZiwgZm9udF9zcGVj LCB0cnVlKTsKKyAgZm9yIChMaXNwX09iamVjdCB0YWlsID0gZm9udHM7IENPTlNQICh0YWls KTsgdGFpbCA9IFhDRFIgKHRhaWwpKQorICAgIEFTRVQgKFhDQVIgKHRhaWwpLCBGT05UX1RZ UEVfSU5ERVgsIFFkd3JpdGUpOworCisgIEZPTlRfQUREX0xPRyAoImR3cml0ZS1saXN0Iiwg Zm9udF9zcGVjLCBmb250cyk7CisgIHJldHVybiBmb250czsKK30KKworc3RhdGljIExpc3Bf T2JqZWN0Citkd3JpdGVfbWF0Y2ggKHN0cnVjdCBmcmFtZSAqZiwgTGlzcF9PYmplY3QgZm9u dF9zcGVjKQoreworICBMaXNwX09iamVjdCBlbnRpdHkgPSB3MzJmb250X21hdGNoX2ludGVy bmFsIChmLCBmb250X3NwZWMsIHRydWUpOworICBGT05UX0FERF9MT0cgKCJkd3JpdGUtbWF0 Y2giLCBmb250X3NwZWMsIGVudGl0eSk7CisKKyAgaWYgKCEgTklMUCAoZW50aXR5KSkKKyAg ICBBU0VUIChlbnRpdHksIEZPTlRfVFlQRV9JTkRFWCwgUWR3cml0ZSk7CisgIHJldHVybiBl bnRpdHk7Cit9CisKK3N0YXRpYyB1bnNpZ25lZAorZHdyaXRlX2VuY29kZV9jaGFyIChzdHJ1 Y3QgZm9udCAqZm9udCwgaW50IGMpCit7CisgIEhSRVNVTFQgaHI7CisgIElEV3JpdGVGb250 ICpkd3JpdGVfZm9udDsKKyAgSURXcml0ZUZvbnRGYWNlICpkd3JpdGVfZm9udF9mYWNlOwor CisgIGdldF9mb250X2FuZF9mYWNlICgoKHN0cnVjdCB3MzJmb250X2luZm8gKikgZm9udCkt Pmhmb250LAorCQkgICAgIE5VTEwsICZkd3JpdGVfZm9udCwgJmR3cml0ZV9mb250X2ZhY2Ug KTsKKyAgVUlOVDE2IGluZGV4OworCisgIGhyID0gZHdyaXRlX2ZvbnRfZmFjZS0+bHBWdGJs LT4KKyAgICBHZXRHbHlwaEluZGljZXMgKGR3cml0ZV9mb250X2ZhY2UsICZjLCAxLCAmaW5k ZXgpOworICB2ZXJpZnlfaHIgKGhyLCAiRmFpbGVkIHRvIEdldEdseXBoSW5kaWNlcyIpOwor CisgIGR3cml0ZV9mb250LT5scFZ0YmwtPlJlbGVhc2UgKGR3cml0ZV9mb250KTsKKyAgZHdy aXRlX2ZvbnRfZmFjZS0+bHBWdGJsLT5SZWxlYXNlIChkd3JpdGVfZm9udF9mYWNlKTsKKwor ICBpZiAoaW5kZXggPT0gMCkKKyAgICByZXR1cm4gRk9OVF9JTlZBTElEX0NPREU7CisKKyAg cmV0dXJuIGluZGV4OworfQorCitzdGF0aWMgdm9pZAorZHdyaXRlX3RleHRfZXh0ZW50cyAo c3RydWN0IGZvbnQgKmZvbnQsIGNvbnN0IHVuc2lnbmVkICpjb2RlLAorCQkgICAgIGludCBu Z2x5cGhzLCBzdHJ1Y3QgZm9udF9tZXRyaWNzICptZXRyaWNzKQoreworICBJRFdyaXRlRm9u dCAqZHdyaXRlX2ZvbnQ7CisgIElEV3JpdGVGb250RmFjZSAqZHdyaXRlX2ZvbnRfZmFjZTsK KworICBIRk9OVCBoZm9udCA9ICgoc3RydWN0IHczMmZvbnRfaW5mbyAqKSBmb250KS0+aGZv bnQ7CisgIGZsb2F0IGZvbnRfc2l6ZSA9IGdldF9mb250X2FuZF9mYWNlIChoZm9udCwKKwkJ CQkgICAgICAgTlVMTCwgJmR3cml0ZV9mb250LAorCQkJCSAgICAgICAmZHdyaXRlX2ZvbnRf ZmFjZSApOworCisgIHRleHRfZXh0ZW50c19pbnRlcm5hbCAoZHdyaXRlX2ZvbnQsIGR3cml0 ZV9mb250X2ZhY2UsIGZvbnRfc2l6ZSwgY29kZSwKKwkJCSBuZ2x5cGhzLCBtZXRyaWNzKTsK KworICBkd3JpdGVfZm9udC0+bHBWdGJsLT5SZWxlYXNlIChkd3JpdGVfZm9udCk7CisgIGR3 cml0ZV9mb250X2ZhY2UtPmxwVnRibC0+UmVsZWFzZSAoZHdyaXRlX2ZvbnRfZmFjZSk7CisK KyAgbWV0cmljcy0+YXNjZW50ID0gZm9udC0+YXNjZW50OworICBtZXRyaWNzLT5kZXNjZW50 ID0gZm9udC0+ZGVzY2VudDsKK30KKworc3RhdGljCit2b2lkIGR3cml0ZV9kcmF3X2ludGVy bmFsIChIREMgaGRjLCBpbnQgeCwgaW50IHksIHVuc2lnbmVkICpnbHlwaHMsIGludCBsZW4s CisJCQkgICBpbnQgYmFzZWxpbmVfeSwgQ09MT1JSRUYgY29sb3IsIHN0cnVjdCBmb250ICpm b250ICkKK3sKKyAgSFJFU1VMVCBocjsKKyAgTE9HRk9OVFcgbG9nZm9udDsKKyAgSURXcml0 ZUZvbnQgKmR3cml0ZV9mb250OworICBJRFdyaXRlRm9udEZhY2UgKmR3cml0ZV9mb250X2Zh Y2U7CisKKyAgZmxvYXQgZm9udF9zaXplID0gZ2V0X2ZvbnRfYW5kX2ZhY2UgKEdldEN1cnJl bnRPYmplY3QgKGhkYywgT0JKX0ZPTlQpLAorCQkJCSAgICAgICAmbG9nZm9udCwgJmR3cml0 ZV9mb250LAorCQkJCSAgICAgICAmZHdyaXRlX2ZvbnRfZmFjZSApOworCisgIElEV3JpdGVU ZXh0Rm9ybWF0ICp0ZXh0X2Zvcm1hdDsKKyAgaHIgPSBkd3JpdGVfZmFjdG9yeS0+bHBWdGJs LT4KKyAgICBDcmVhdGVUZXh0Rm9ybWF0IChkd3JpdGVfZmFjdG9yeSwKKwkJICAgICAgbG9n Zm9udC5sZkZhY2VOYW1lLAorCQkgICAgICBOVUxMLAorCQkgICAgICBEV1JJVEVfRk9OVF9X RUlHSFRfTk9STUFMLAorCQkgICAgICBEV1JJVEVfRk9OVF9TVFlMRV9OT1JNQUwsCisJCSAg ICAgIERXUklURV9GT05UX1NUUkVUQ0hfTk9STUFMLAorCQkgICAgICBmb250X3NpemUsIEwi IiwKKwkJICAgICAgJnRleHRfZm9ybWF0KTsKKyAgdmVyaWZ5X2hyIChociwgIkZhaWxlZCB0 byBjcmVhdGUgRFdyaXRlVGV4dEZvcm1hdCIpOworCisgIHN0cnVjdCBmb250X21ldHJpY3Mg bWV0cmljczsKKyAgdGV4dF9leHRlbnRzX2ludGVybmFsIChkd3JpdGVfZm9udCwgZHdyaXRl X2ZvbnRfZmFjZSwKKwkJCSBmb250X3NpemUsIGdseXBocywgbGVuLCAmbWV0cmljcyk7CisK KyAgaW50IGJpdG1hcF93aWR0aCA9IG1ldHJpY3Mud2lkdGg7CisgIGludCBiaXRtYXBfaGVp Z2h0ID0gZm9udC0+YXNjZW50ICsgZm9udC0+ZGVzY2VudDsKKworICBJRFdyaXRlQml0bWFw UmVuZGVyVGFyZ2V0ICpiaXRtYXBfcmVuZGVyX3RhcmdldCA9CisgICAgZ2V0X2JpdG1hcF9y ZW5kZXJfdGFyZ2V0IChoZGMsIGJpdG1hcF93aWR0aCwgYml0bWFwX2hlaWdodCk7CisKKyAg SERDIHRleHRfZGMgPSBiaXRtYXBfcmVuZGVyX3RhcmdldC0+bHBWdGJsLT4KKyAgICBHZXRN ZW1vcnlEQyAoYml0bWFwX3JlbmRlcl90YXJnZXQpOworCisgIEJpdEJsdCAodGV4dF9kYywg MCwgMCwgYml0bWFwX3dpZHRoLCBiaXRtYXBfaGVpZ2h0LCBoZGMsIHgsIHksIFNSQ0NPUFkp OworCisgIERXUklURV9HTFlQSF9SVU4gZ2x5cGhfcnVuOworCisgIFVJTlQxNiAqaW5kaWNl cyA9IGFsbG9jYSAobGVuICogc2l6ZW9mIChVSU5UMTYpKTsKKworICBmb3IgKGludCBpID0g MDsgaSA8IGxlbjsgaSsrKQorICAgIGluZGljZXNbaV0gPSBnbHlwaHNbaV07CisKKyAgRkxP QVQgKmFkdmFuY2VzID0gYWxsb2NhIChsZW4gKiBzaXplb2YgKEZMT0FUKSk7CisKKyAgZm9y IChpbnQgaSA9IDA7IGkgPCBsZW47IGkrKykKKyAgICB7CisgICAgICB0ZXh0X2V4dGVudHNf aW50ZXJuYWwgKGR3cml0ZV9mb250LCBkd3JpdGVfZm9udF9mYWNlLAorCQkJICAgICBmb250 X3NpemUsIGdseXBocyArIGksIDEsICZtZXRyaWNzKTsKKyAgICAgIGFkdmFuY2VzW2ldID0g bWV0cmljcy53aWR0aDsKKyAgICB9CisKKyAgZ2x5cGhfcnVuLmZvbnRGYWNlID0gZHdyaXRl X2ZvbnRfZmFjZTsKKyAgZ2x5cGhfcnVuLmZvbnRFbVNpemUgPSBmb250X3NpemU7CisgIGds eXBoX3J1bi5nbHlwaEluZGljZXMgPSBpbmRpY2VzOworICBnbHlwaF9ydW4uZ2x5cGhDb3Vu dCA9IGxlbjsKKyAgZ2x5cGhfcnVuLmlzU2lkZXdheXMgPSBmYWxzZTsKKyAgZ2x5cGhfcnVu LmJpZGlMZXZlbCA9IDA7CisgIGdseXBoX3J1bi5nbHlwaE9mZnNldHMgPSBOVUxMOworICBn bHlwaF9ydW4uZ2x5cGhBZHZhbmNlcyA9IGFkdmFuY2VzOworCisgIElEV3JpdGVDb2xvckds eXBoUnVuRW51bWVyYXRvciAqbGF5ZXJzOworCisgIGhyID0gZHdyaXRlX2ZhY3RvcnkyLT5s cFZ0YmwtPgorICAgIFRyYW5zbGF0ZUNvbG9yR2x5cGhSdW4gKGR3cml0ZV9mYWN0b3J5MiwK KwkJCSAgICAwLCBiYXNlbGluZV95LAorCQkJICAgICZnbHlwaF9ydW4sCisJCQkgICAgTlVM TCwKKwkJCSAgICBEV1JJVEVfTUVBU1VSSU5HX01PREVfR0RJX0NMQVNTSUMsCisJCQkgICAg TlVMTCwKKwkJCSAgICAwLAorCQkJICAgICZsYXllcnMgKTsKKyAgaWYgKGhyID09IERXUklU RV9FX05PQ09MT1IpCisgICAgeworICAgICAgYml0bWFwX3JlbmRlcl90YXJnZXQtPmxwVnRi bC0+CisJRHJhd0dseXBoUnVuIChiaXRtYXBfcmVuZGVyX3RhcmdldCwKKwkJICAgICAgMCwg YmFzZWxpbmVfeSwKKwkJICAgICAgRFdSSVRFX01FQVNVUklOR19NT0RFX0dESV9DTEFTU0lD LAorCQkgICAgICAmZ2x5cGhfcnVuLAorCQkgICAgICByZW5kZXJpbmdfcGFyYW1zLAorCQkg ICAgICBjb2xvciwKKwkJICAgICAgTlVMTCk7CisgICAgfQorICBlbHNlCisgICAgeworICAg ICAgdmVyaWZ5X2hyIChociwgIkZhaWxlZCBhdCBUcmFuc2xhdGVDb2xvckdseXBoUnVuIik7 CisgICAgICBmb3IgKDs7KSB7CisJSFJFU1VMVCBocjsKKwlCT09MIG1vcmVfbGF5ZXJzOwor CWNvbnN0IERXUklURV9DT0xPUl9HTFlQSF9SVU4gKmxheWVyOworCisJaHIgPSBsYXllcnMt PmxwVnRibC0+TW92ZU5leHQgKGxheWVycywgJm1vcmVfbGF5ZXJzKTsKKwl2ZXJpZnlfaHIg KGhyLCAiRmFpbGVkIGF0IE1vdmVOZXh0Iik7CisJaWYgKCFtb3JlX2xheWVycykKKwkgIGJy ZWFrOworCWhyID0gbGF5ZXJzLT5scFZ0YmwtPkdldEN1cnJlbnRSdW4gKGxheWVycywgJmxh eWVyKTsKKwl2ZXJpZnlfaHIgKGhyLCAiRmFpbGVkIGF0IEdldEN1cnJlbnRSdW4iKTsKKwli aXRtYXBfcmVuZGVyX3RhcmdldC0+bHBWdGJsLT4KKwkgIERyYXdHbHlwaFJ1biAoYml0bWFw X3JlbmRlcl90YXJnZXQsCisJCQlsYXllci0+YmFzZWxpbmVPcmlnaW5YLCBsYXllci0+YmFz ZWxpbmVPcmlnaW5ZLAorCQkJRFdSSVRFX01FQVNVUklOR19NT0RFX0dESV9DTEFTU0lDLAor CQkJJmxheWVyLT5nbHlwaFJ1biwKKwkJCXJlbmRlcmluZ19wYXJhbXMsCisJCQlSR0IoIGxh eWVyLT5ydW5Db2xvci5yICogMjU1LAorCQkJICAgICBsYXllci0+cnVuQ29sb3IuZyAqIDI1 NSwKKwkJCSAgICAgbGF5ZXItPnJ1bkNvbG9yLmIgKiAyNTUgKSwKKwkJCU5VTEwpOworICAg ICAgfQorCisgICAgICBsYXllcnMtPmxwVnRibC0+UmVsZWFzZSAobGF5ZXJzKTsKKyAgICB9 CisgIEJpdEJsdCAoaGRjLCB4LCB5LCBiaXRtYXBfd2lkdGgsIGJpdG1hcF9oZWlnaHQsIHRl eHRfZGMsIDAsIDAsIFNSQ0NPUFkpOworCisgIHRleHRfZm9ybWF0LT5scFZ0YmwtPlJlbGVh c2UgKHRleHRfZm9ybWF0KTsKKyAgZHdyaXRlX2ZvbnQtPmxwVnRibC0+UmVsZWFzZSAoZHdy aXRlX2ZvbnQpOworICBiaXRtYXBfcmVuZGVyX3RhcmdldC0+bHBWdGJsLT5SZWxlYXNlIChi aXRtYXBfcmVuZGVyX3RhcmdldCk7CisgIGR3cml0ZV9mb250X2ZhY2UtPmxwVnRibC0+UmVs ZWFzZSAoZHdyaXRlX2ZvbnRfZmFjZSk7Cit9CisKK3N0YXRpYyBpbnQKK2R3cml0ZV9kcmF3 IChzdHJ1Y3QgZ2x5cGhfc3RyaW5nICpzLCBpbnQgZnJvbSwgaW50IHRvLAorCSAgICAgaW50 IHgsIGludCB5LCBib29sIHdpdGhfYmFja2dyb3VuZCkKK3sKKyAgSFJHTiBvcmlnX2NsaXAg PSBOVUxMOworICBpbnQgbGVuID0gdG8gLSBmcm9tOworCisgIGlmIChzLT5udW1fY2xpcHMg PiAwKQorICAgIHsKKyAgICAgIEhSR04gbmV3X2NsaXAgPSBDcmVhdGVSZWN0UmduSW5kaXJl Y3QgKHMtPmNsaXApOworCisgICAgICAvKiBTYXZlIGNsaXAgcmVnaW9uIGZvciBsYXRlciBy ZXN0b3JhdGlvbi4gICovCisgICAgICBvcmlnX2NsaXAgPSBDcmVhdGVSZWN0UmduICgwLCAw LCAwLCAwKTsKKyAgICAgIGlmICghR2V0Q2xpcFJnbiAocy0+aGRjLCBvcmlnX2NsaXApKQor CXsKKwkgIERlbGV0ZU9iamVjdCAob3JpZ19jbGlwKTsKKwkgIG9yaWdfY2xpcCA9IE5VTEw7 CisJfQorCisgICAgICBpZiAocy0+bnVtX2NsaXBzID4gMSkKKyAgICAgICAgeworICAgICAg ICAgIEhSR04gY2xpcDIgPSBDcmVhdGVSZWN0UmduSW5kaXJlY3QgKHMtPmNsaXAgKyAxKTsK KworICAgICAgICAgIENvbWJpbmVSZ24gKG5ld19jbGlwLCBuZXdfY2xpcCwgY2xpcDIsIFJH Tl9PUik7CisgICAgICAgICAgRGVsZXRlT2JqZWN0IChjbGlwMik7CisgICAgICAgIH0KKwor ICAgICAgU2VsZWN0Q2xpcFJnbiAocy0+aGRjLCBuZXdfY2xpcCk7CisgICAgICBEZWxldGVP YmplY3QgKG5ld19jbGlwKTsKKyAgICB9CisKKyAgLyogVXNpbmcgT1BBUVVFIGJhY2tncm91 bmQgbW9kZSBjYW4gY2xlYXIgbW9yZSBiYWNrZ3JvdW5kIHRoYW4gZXhwZWN0ZWQKKyAgICAg d2hlbiBDbGVhcnR5cGUgaXMgdXNlZC4gIERyYXcgdGhlIGJhY2tncm91bmQgbWFudWFsbHkg dG8gYXZvaWQgdGhpcy4gICovCisgIFNldEJrTW9kZSAocy0+aGRjLCBUUkFOU1BBUkVOVCk7 CisgIGlmICh3aXRoX2JhY2tncm91bmQpCisgICAgeworICAgICAgSEJSVVNIIGJydXNoOwor ICAgICAgUkVDVCByZWN0OworICAgICAgc3RydWN0IGZvbnQgKmZvbnQgPSBzLT5mb250Owor ICAgICAgaW50IGFzY2VudCA9IGZvbnQtPmFzY2VudCwgZGVzY2VudCA9IGZvbnQtPmRlc2Nl bnQ7CisKKyAgICAgIC8qIEZvbnQncyBnbG9iYWwgYXNjZW50IGFuZCBkZXNjZW50IHZhbHVl cyBtaWdodCBiZQorCSBwcmVwb3N0ZXJvdXNseSBsYXJnZSBmb3Igc29tZSBmb250cy4gIFdl IGZpeCBoZXJlIHRoZSBjYXNlCisJIHdoZW4gdGhvc2UgZm9udHMgYXJlIHVzZWQgZm9yIGRp c3BsYXkgb2YgZ2x5cGhsZXNzCisJIGNoYXJhY3RlcnMsIGJlY2F1c2UgZHJhd2luZyBiYWNr Z3JvdW5kIHdpdGggZm9udCBkaW1lbnNpb25zCisJIGluIHRob3NlIGNhc2VzIG1ha2VzIHRo ZSBkaXNwbGF5IGlsbGVnaWJsZS4gIFRoZXJlJ3Mgb25seSBvbmUKKwkgbW9yZSBjYWxsIHRv IHRoZSBkcmF3IG1ldGhvZCB3aXRoIHdpdGhfYmFja2dyb3VuZCBzZXQgdG8KKwkgdHJ1ZSwg YW5kIHRoYXQncyBpbiB3MzJfZHJhd19nbHlwaF9zdHJpbmdfZm9yZWdyb3VuZCwgd2hlbgor CSBkcmF3aW5nIHRoZSBjdXJzb3IsIHdoZXJlIHdlIGhhdmUgbm8gc3VjaCBoZXVyaXN0aWNz CisJIGF2YWlsYWJsZS4gIEZJWE1FLiAgKi8KKyAgICAgIGlmIChzLT5maXJzdF9nbHlwaC0+ dHlwZSA9PSBHTFlQSExFU1NfR0xZUEgKKwkgICYmIChzLT5maXJzdF9nbHlwaC0+dS5nbHlw aGxlc3MubWV0aG9kID09IEdMWVBITEVTU19ESVNQTEFZX0hFWF9DT0RFCisJICAgICAgfHwg cy0+Zmlyc3RfZ2x5cGgtPnUuZ2x5cGhsZXNzLm1ldGhvZCA9PSBHTFlQSExFU1NfRElTUExB WV9BQ1JPTllNKSkKKwl7CisJICBhc2NlbnQgPQorCSAgICBzLT5maXJzdF9nbHlwaC0+c2xp Y2UuZ2x5cGhsZXNzLmxvd2VyX3lvZmYKKwkgICAgLSBzLT5maXJzdF9nbHlwaC0+c2xpY2Uu Z2x5cGhsZXNzLnVwcGVyX3lvZmY7CisJICBkZXNjZW50ID0gMDsKKwl9CisgICAgICBicnVz aCA9IENyZWF0ZVNvbGlkQnJ1c2ggKHMtPmdjLT5iYWNrZ3JvdW5kKTsKKyAgICAgIHJlY3Qu bGVmdCA9IHg7CisgICAgICByZWN0LnRvcCA9IHkgLSBhc2NlbnQ7CisgICAgICByZWN0LnJp Z2h0ID0geCArIHMtPndpZHRoOworICAgICAgcmVjdC5ib3R0b20gPSB5ICsgZGVzY2VudDsK KyAgICAgIEZpbGxSZWN0IChzLT5oZGMsICZyZWN0LCBicnVzaCk7CisgICAgICBEZWxldGVP YmplY3QgKGJydXNoKTsKKyAgICB9CisKKyAgaWYgKHMtPnBhZGRpbmdfcCkKKyAgICB7Cisg ICAgICBpbnQgaTsKKyAgICAgIGZvciAoaSA9IDA7IGkgPCBsZW47IGkrKykKKwkgIGR3cml0 ZV9kcmF3X2ludGVybmFsIChzLT5oZGMsIHgsIHkgLSBzLT5mb250LT5hc2NlbnQsCisJCQkJ cy0+Y2hhcjJiICsgZnJvbSwgMSwgcy0+Zm9udC0+YXNjZW50LAorCQkJCUdldFRleHRDb2xv cihzLT5oZGMpLCBzLT5mb250KTsKKyAgICB9CisgIGVsc2UKKyAgICB7CisgICAgICBkd3Jp dGVfZHJhd19pbnRlcm5hbCggcy0+aGRjLCB4LCB5IC0gcy0+Zm9udC0+YXNjZW50LAorCQkJ ICAgIHMtPmNoYXIyYiArIGZyb20sIGxlbiwgcy0+Zm9udC0+YXNjZW50LAorCQkJICAgIEdl dFRleHRDb2xvcihzLT5oZGMpLCBzLT5mb250ICk7CisKKyAgICB9CisKKyAgLyogUmVzdG9y ZSBjbGlwIHJlZ2lvbi4gICovCisgIGlmIChzLT5udW1fY2xpcHMgPiAwKQorICAgIFNlbGVj dENsaXBSZ24gKHMtPmhkYywgb3JpZ19jbGlwKTsKKworICBpZiAob3JpZ19jbGlwKQorICAg IERlbGV0ZU9iamVjdCAob3JpZ19jbGlwKTsKKworICByZXR1cm4gbGVuOworfQorCitzdGF0 aWMgdm9pZAorc3ltc19vZl93MzJkd3JpdGVfZm9yX3BkdW1wZXIgKHZvaWQpCit7CisgIEhS RVNVTFQgaHI7CisKKyAgaWYgKCFpbml0aWFsaXplZCkKKyAgICByZXR1cm47CisKKyAgREVG U1lNIChRZHdyaXRlLCAiZHdyaXRlIik7CisKKyAgZHdyaXRlX2ZvbnRfZHJpdmVyID0gaGFy ZmJ1enpfZm9udF9kcml2ZXI7CisgIGR3cml0ZV9mb250X2RyaXZlci50eXBlID0gUWR3cml0 ZTsKKyAgZHdyaXRlX2ZvbnRfZHJpdmVyLmRyYXcgPSBkd3JpdGVfZHJhdzsKKyAgZHdyaXRl X2ZvbnRfZHJpdmVyLmxpc3QgPSBkd3JpdGVfbGlzdDsKKyAgZHdyaXRlX2ZvbnRfZHJpdmVy Lm1hdGNoID0gZHdyaXRlX21hdGNoOworICBkd3JpdGVfZm9udF9kcml2ZXIuZW5jb2RlX2No YXIgPSBkd3JpdGVfZW5jb2RlX2NoYXI7CisgIGR3cml0ZV9mb250X2RyaXZlci50ZXh0X2V4 dGVudHMgPSBkd3JpdGVfdGV4dF9leHRlbnRzOworICByZWdpc3Rlcl9mb250X2RyaXZlciAo JmR3cml0ZV9mb250X2RyaXZlciwgTlVMTCk7CisKKyAgaHIgPSBEV3JpdGVDcmVhdGVGYWN0 b3J5IChEV1JJVEVfRkFDVE9SWV9UWVBFX1NIQVJFRCwKKwkJCSAgICAmSUlEX0lEV3JpdGVG YWN0b3J5LAorCQkJICAgIChJVW5rbm93bioqKSZkd3JpdGVfZmFjdG9yeSk7CisgIHZlcmlm eV9ociAoaHIsICJGYWlsZWQgdG8gY3JlYXRlIERXcml0ZUZhY3RvcnkiKTsKKworICBociA9 IGR3cml0ZV9mYWN0b3J5LT5scFZ0YmwtPgorICAgIFF1ZXJ5SW50ZXJmYWNlIChkd3JpdGVf ZmFjdG9yeSwgJklJRF9JRFdyaXRlRmFjdG9yeTIsCisJCSAgICAodm9pZCAqKikmZHdyaXRl X2ZhY3RvcnkyKTsKKyAgdmVyaWZ5X2hyIChociwgIkZhaWxlZCB0byBjcmVhdGUgRFdyaXRl RmFjdG9yeTIiKTsKKworICBociA9IGR3cml0ZV9mYWN0b3J5LT5scFZ0YmwtPgorICAgIEdl dEdkaUludGVyb3AgKGR3cml0ZV9mYWN0b3J5LCAmZ2RpX2ludGVyb3ApOworICB2ZXJpZnlf aHIgKGhyLCAiRmFpbGVkIHRvIGdldCBEV3JpdGVHZ2lJbnRlcm9wIik7CisKKyAgSURXcml0 ZVJlbmRlcmluZ1BhcmFtcyAqZGVmOworCisgIGhyID0gZHdyaXRlX2ZhY3RvcnktPmxwVnRi bC0+CisgICAgQ3JlYXRlUmVuZGVyaW5nUGFyYW1zIChkd3JpdGVfZmFjdG9yeSwgJmRlZik7 CisgIHZlcmlmeV9ociAoaHIsICJGYWlsZWQgdG8gY3JlYXRlIERXcml0ZVJlbmRlcmluZ1Bh cmFtcyIpOworCisgIGhyID0gZHdyaXRlX2ZhY3RvcnktPmxwVnRibC0+CisgICAgQ3JlYXRl Q3VzdG9tUmVuZGVyaW5nUGFyYW1zIChkd3JpdGVfZmFjdG9yeSwKKwkJCQkgZGVmLT5scFZ0 YmwtPkdldEdhbW1hKGRlZiksCisJCQkJIGRlZi0+bHBWdGJsLT5HZXRFbmhhbmNlZENvbnRy YXN0KGRlZiksCisJCQkJIGRlZi0+bHBWdGJsLT5HZXRDbGVhclR5cGVMZXZlbChkZWYpLAor CQkJCSBkZWYtPmxwVnRibC0+R2V0UGl4ZWxHZW9tZXRyeShkZWYpLAorCQkJCSBEV1JJVEVf UkVOREVSSU5HX01PREVfR0RJX0NMQVNTSUMsCisJCQkJICZyZW5kZXJpbmdfcGFyYW1zKTsK KyAgdmVyaWZ5X2hyIChociwgIkZhaWxlZCB0byBjcmVhdGUgRFdyaXRlUmVuZGVyaW5nUGFy YW1zIik7CisKKyAgZGVmLT5scFZ0YmwtPlJlbGVhc2UgKGRlZik7Cit9CisKK3ZvaWQKK3N5 bXNfb2ZfdzMyZHdyaXRlICh2b2lkKQoreworICBwZHVtcGVyX2RvX25vd19hbmRfYWZ0ZXJf bG9hZCAoc3ltc19vZl93MzJkd3JpdGVfZm9yX3BkdW1wZXIpOworfQpkaWZmIC0tZ2l0IGEv c3JjL3czMmZucy5jIGIvc3JjL3czMmZucy5jCmluZGV4IDNlZTEzZGNiYmRkLi5hYmE5MWMx ZDQxYyAxMDA2NDQKLS0tIGEvc3JjL3czMmZucy5jCisrKyBiL3NyYy93MzJmbnMuYwpAQCAt MjkzLDYgKzI5MywxMCBAQCAjZGVmaW5lIE1FTlVfRlJFRV9ERUxBWSAxMDAwCiBleHRlcm4g aW50IHVuaXNjcmliZV9hdmFpbGFibGU7CiBleHRlcm4gaW50IGhhcmZidXp6X2F2YWlsYWJs ZTsKIAorLyogRnJvbSB3MzJkd3JpdGUuYyAgKi8KK2V4dGVybiB2b2lkIHN5bXNfb2ZfdzMy ZHdyaXRlICh2b2lkKTsKKworCiAjaWZkZWYgV0lORE9XU05UCiAvKiBGcm9tIHczMmluZXZ0 LmMgKi8KIGV4dGVybiBpbnQgZmFrZWRfa2V5OwpAQCAtNjM1Niw2ICs2MzYwLDggQEAgREVG VU4gKCJ4LWNyZWF0ZS1mcmFtZSIsIEZ4X2NyZWF0ZV9mcmFtZSwgU3hfY3JlYXRlX2ZyYW1l LAogICAgICAgc3BlY2JpbmQgKFF4X3Jlc291cmNlX25hbWUsIG5hbWUpOwogICAgIH0KIAor ICByZWdpc3Rlcl9mb250X2RyaXZlciAoJmR3cml0ZV9mb250X2RyaXZlciwgZik7CisKICNp ZmRlZiBIQVZFX0hBUkZCVVpaCiAgIGlmIChoYXJmYnV6el9hdmFpbGFibGUpCiAgICAgcmVn aXN0ZXJfZm9udF9kcml2ZXIgKCZoYXJmYnV6el9mb250X2RyaXZlciwgZik7CkBAIC0xMTgx MSw2ICsxMTgxNyw3IEBAIGdsb2JhbHNfb2ZfdzMyZm5zICh2b2lkKQogICBJbml0Q29tbW9u Q29udHJvbHMgKCk7CiAKICAgc3ltc19vZl93MzJ1bmlzY3JpYmUgKCk7CisgIHN5bXNfb2Zf dzMyZHdyaXRlICgpOwogfQogCiAjaWZkZWYgV0lORE9XU05UCmRpZmYgLS1naXQgYS9zcmMv dzMydW5pc2NyaWJlLmMgYi9zcmMvdzMydW5pc2NyaWJlLmMKaW5kZXggYjc3YmY1NmI4Y2Yu LmNiZTU3ZDg0OTBhIDEwMDY0NAotLS0gYS9zcmMvdzMydW5pc2NyaWJlLmMKKysrIGIvc3Jj L3czMnVuaXNjcmliZS5jCkBAIC0yMTEsNiArMjExLDggQEAgdW5pc2NyaWJlX29wZW4gKHN0 cnVjdCBmcmFtZSAqZiwgTGlzcF9PYmplY3QgZm9udF9lbnRpdHksIGludCBwaXhlbF9zaXpl KQogI2VuZGlmICAvKiBIQVZFX0hBUkZCVVpaICovCiAgICAgdW5pc2NyaWJlX2ZvbnQtPncz Ml9mb250LmZvbnQuZHJpdmVyID0gJnVuaXNjcmliZV9mb250X2RyaXZlcjsKIAorICB1bmlz Y3JpYmVfZm9udC0+dzMyX2ZvbnQuZm9udC5kcml2ZXIgPSAmZHdyaXRlX2ZvbnRfZHJpdmVy OworCiAgIHJldHVybiBmb250X29iamVjdDsKIH0KIAotLSAKMi4zNS4xLndpbmRvd3MuMgoK --------------8Mh0xe004XZIEm0ikrrcylOz Content-Type: image/png; name="emacs_3xjaQ7etE9.png" Content-Disposition: attachment; filename="emacs_3xjaQ7etE9.png" Content-Transfer-Encoding: base64 iVBORw0KGgoAAAANSUhEUgAAAsUAAAIkCAYAAAD201Y/AAAAAXNSR0IArs4c6QAAAARnQU1B AACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAHiqSURBVHhe7b0J2CVVee/75d6Tk5jh 3nNy70me59zEAfXE2GoGMFGD0aCC4BBbjUpOokYRSJyZupGxu6EbGpqmmewGmmYWiMg8NpMI KNragAOzDNrOiCEOMXrOuvVW1drfu2u/VbWq9tp71/727/c8//5675rWWrX2qt9eX+39zX3u c59zd955p/vsZz/rbr/9dnfzzTe7K664wl144YXurLPOcps2bTJzxhlnuI0bN/Zy+umnN4ps I/vw+znttNNax9p/MaeeeupArPV0ZN+h28nzGzZsGEixrH6f1rpWZF1rH9a6TeLromOtVxXZ 5pxzzklz9tlnDxXpa7Gy5rjj3fIjVrnjjl83sEyeLz4nOXbNWrfsiJXu+HUnuDPPPHOssfrT uGP1MUJmKdbrYpair+eTiPeBScXynCaxxvZxxrqujTPWdb1JvEu0zbnnnluZ8847z51//vnu oosucpdffrm7/vrrnfjvl770JXfXXXe5e+65x33lK19xc3fccYeTiBBfddVVaeO++x//0e38 2l3cC170Ivf0Zz2TEEIIIYSQqc4L//iP3Wt329W9d489UlG+8cYb+8R4TmT41ltvdRdffLE7 6OCD3J9uv725I0IIIYQQQhZC/myH7d3hyw53V155pfviF7+YivGcCLHcLnHQwQebGxFCCCGE ELIQI2J8ww03pGI8t3nz5vR+GGaICSGEEELILEVmjOVWCrmVeO7SSy9173r3u80VCSGEEEII Wch5z3vf66699lo3d8EFF6QfqrNWIoQQQgghZCFnl11f62SSeE6+SiP0Wyae8axnuWds96z0 /895+gvcy/7ob9wuO+zhdtn+ve6lf/SG5Lnnz6+XRG9LCCGEEEJI1/KsZz/bvXLvE92c3E9s rVCMl9xnP/157o0v3cft+96L3aH73+AOW3qz+9hHb3D77nGle//fnuNeu/2e7plPf07fNoQQ QgghhHQ16zee5ebkS7OthTrP2G679OcfPWMH989v2eiOWHa7W3XUnW5F8vPoI+5wZ6zf6q6+ 7AF3+ol3uYP/6Xr3ntescc95+qJsW8SYEEIIIYR0OPJHRObkL/lYC4t59u8/z+29+NREhj/v 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 t759lym8oZl2MRbpiBVr/3XZtGmTu/32281lXU6scoe0W9u27XJkLPnJT74zkLe9bXE67px5 5pnuxBNPdAcffHD63O23b+5bb+sdZ0YZj9qeR8ZQQgjpbnpSvOdee6UDsbWSjwzMIYO557Of /ay7++673de+9rWog7rsqyzW+rHjZ4l1bvr0GbW58tqTe/nERUdNrRSLbF177bXuiiuucKee eqq75pprernqqqvSXH311elPWaeYK6+80m3YsCH9eckll7SSt1FJ8aj70LRKseyraaz9DBs5 PyK3937pol4uPv9o97rXZl8p+cEPftB94AMfcBdeeKF7+cv+xH183VL36WvX99ZdfeDLo5zj YaS4C2MoIYSQwfSkOOSPd8igXIX86tL//F//63+5W265xT322GPptulBIgzqv5KI5FXXnue+ +e17BrJq9QFu+x0WmdvFjMisFtyqiPxameaZYhEekd4LLrggnZUTATn//PPTnHvuub2f5513 Xvrz7LPP7uWMM85Ic9JJJ6XrffzjH28lUKOQYumfoxaPGOWW9pI3F1XtJstuuOGGVm1rRfZz 8cUXu8985jO1ufXWW93ll18e7dg6cn5Eij+z+dQ0l3xitXv1Tn/u/uM//sM9+eSTqUTed999 7p577nEHHXSQ+5MX/Q939BEfSNe77YZT3RH7vDjKOR5GiqsYxxhKCCHEThQp9gP4L3/5i97P X/ziF+6SSz7lvvvd76brPPLII27t2rVDD+q/+Zu/6R7fttVt/colvXzpy59Kc/nVp7gXvvC5 5nYxIzIrYiuzv21mi9//wd0XhBR/4hOfcKecckoqvpJzzjknjX8s4iCP5ac89kIsj2U7kWb5 2UaeYsiljvTLJ7ddP3LpiFFuaS+RpWOOOcZcLlm/fn10KRbhvemmm4IT69g6cn70TLHMEEt7 Sl+UiLjLby9kUFu5cqXbaaed0nVkNlnWP+Ij20c5x23PoxzbYpxjKCGEEDs9Kd6w4dR04LVW 8ikO6HoglwH8P/7j572fP//5vycidE66nfDjH//Ybd26NZ0tbDuoP/s5f+A2bjo+leI7Pn++ u+3O89wdX/iE++yWC9ydX7owzd++Yxf33/+//2ZuHyteikWE9exvXUSEJbu98ZVRpbiqPUdx ARXZkVsjZKZYboMQOWga2U6k+OSTT24lTzGlWNroyW9/2v3wa4en/9ex1h8mMaVY/hSl1XZ+ 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 gg== --------------8Mh0xe004XZIEm0ikrrcylOz--