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#3468: drag and drop text Date: Mon, 30 Sep 2024 23:20:32 +0200 Message-ID: References: <20090604070321.177690@gmx.net> <8ba4e567-550e-4ac2-96f4-c6f7bacd78d0@imayhem.com> <86wmiv3p0r.fsf@gnu.org> <9bef55ae-e0aa-40d0-af77-7e7eac309b3a@imayhem.com> <86msjq4rp5.fsf@gnu.org> <55f3d9b3-4a46-4ca1-9f84-c3bf99d1c403@imayhem.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------IMNsYWjK50U0KmTAHEpGC9Ot" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="29399"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla Thunderbird Cc: 3468@debbugs.gnu.org To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Mon Sep 30 23:21:51 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 1svNq2-0007VE-2l for geb-bug-gnu-emacs@m.gmane-mx.org; Mon, 30 Sep 2024 23:21:50 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1svNpk-0001o3-JH; Mon, 30 Sep 2024 17:21:32 -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 1svNph-0001nk-Ub for bug-gnu-emacs@gnu.org; Mon, 30 Sep 2024 17:21:30 -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 1svNph-0005RF-GO for bug-gnu-emacs@gnu.org; Mon, 30 Sep 2024 17:21:29 -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=M+IIJKRjjQCIATHvmlYp8JOVN3KvBIINnHbB0Wdbcwg=; b=U6AHjVhT+qKqieD6q7xM78xUECjOhoiV+1GkS9seS0YtSauYexikqnAcOhMcoBlQrZpI5n1OHo6OKPEyNfH45dOLQ+wvElzkyRIxFa9uBmBdrQ6dCIdu2ADemT/eSlzp4Sld6y10h9FP/3pimkxg0ziwb6axXVXhlbgd/Yj3sdvTVrVD9Dw8iNNSmg8XbKSNc2WlltIhuzZUC4g0f769pm/X2v697Y006iMqVh6ZSsT9fopu3fJ4E1jNAob7Rah6YlKZyWpYGUfXcoz/9YduGNcMqWx/DrtNGLrFCNC/Q5yNe7HlKZqvwRmfQlbymI45L5M1fpBoJ/RGqS1Oqp83Lg==; Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1svNqE-0007VN-59 for bug-gnu-emacs@gnu.org; Mon, 30 Sep 2024 17:22:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Cecilio Pardo Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 30 Sep 2024 21:22:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 3468 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: help Original-Received: via spool by 3468-submit@debbugs.gnu.org id=B3468.172773128028797 (code B ref 3468); Mon, 30 Sep 2024 21:22:02 +0000 Original-Received: (at 3468) by debbugs.gnu.org; 30 Sep 2024 21:21:20 +0000 Original-Received: from localhost ([127.0.0.1]:47221 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1svNpX-0007UN-Gl for submit@debbugs.gnu.org; Mon, 30 Sep 2024 17:21:20 -0400 Original-Received: from mail.imayhem.com ([82.223.54.191]:51383 helo=zealous-pike.82-223-54-191.plesk.page) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1svNpU-0007UF-3O for 3468@debbugs.gnu.org; Mon, 30 Sep 2024 17:21:18 -0400 Original-Received: from [192.168.68.105] (111.red-88-21-7.staticip.rima-tde.net [88.21.7.111]) by zealous-pike.82-223-54-191.plesk.page (Postfix) with ESMTPSA id C0496800F4; Mon, 30 Sep 2024 21:20:35 +0000 (UTC) Authentication-Results: zealous-pike.82-223-54-191.plesk.page; spf=pass (sender IP is 88.21.7.111) smtp.mailfrom=cpardo@imayhem.com smtp.helo=[192.168.68.105] Received-SPF: pass (zealous-pike.82-223-54-191.plesk.page: connection is authenticated) Content-Language: es-ES In-Reply-To: <55f3d9b3-4a46-4ca1-9f84-c3bf99d1c403@imayhem.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:292740 Archived-At: This is a multi-part message in MIME format. --------------IMNsYWjK50U0KmTAHEpGC9Ot Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Here is the reworked version. Now the processing of the drop data is delayed until we process the WM_EMACS_DROP message at w32_read_socket. There is no malloc/strdup. --------------IMNsYWjK50U0KmTAHEpGC9Ot Content-Type: text/plain; charset=UTF-8; name="0001-Implement-drag-n-drop-for-w32-with-support-for-files.patch" Content-Disposition: attachment; filename*0="0001-Implement-drag-n-drop-for-w32-with-support-for-files.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSBjMjBlOGUzZTQ4ODBlYjY1MjU3MDIwZWU4ODI5OGY1Njk3YjFkZmMzIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBDZWNpbGlvIFBhcmRvIDxjcGFyZG9AaW1heWhlbS5j b20+CkRhdGU6IEZyaSwgMjcgU2VwIDIwMjQgMjM6NTg6MDIgKzAyMDAKU3ViamVjdDogW1BB VENIXSBJbXBsZW1lbnQgZHJhZy1uLWRyb3AgZm9yIHczMiB3aXRoIHN1cHBvcnQgZm9yIGZp bGVzIGFuZCB0ZXh0CgpJbXBsZW1lbnQgZHJhZy1uLWRyb3Agd2l0aCBJRHJvcFRhcmdldCBm b3IgTVMtV2luZG93cy4gVGhpcwphbGxvd3MgZm9yIGRyb3BwaW5nIGZpbGVzIG9yIHRleHQu CgoqIGxpc3AvdGVybS93MzItd2luLmVsICh3MzItZHJhZy1uLWRyb3ApOiBDaGFuZ2VkIHRv IGhhbmRsZQpmaWxlcyBvciBzdHJpbmdzLgoqIHNyYy93MzJmbnMuYyAocHJvY2Vzc19kcm9w ZmlsZXMpOiBOZXcgZnVuY3Rpb24gdG8gY29udmVydApEUk9QRklMRVMgc3RydWN0IHRvIGFy cmF5IG9mIHN0cmluZ3MuCih3MzJfcHJvY2Vzc19kbmRfZGF0YSk6IE5ldyBmdW5jdGlvbiB0 byBwcm9jZXNzIGRyb3AgZGF0YS4KKHczMl90cnlfZ2V0X2RhdGEpOiBFeHRyYWN0IGRhdGEg ZnJvbSBJRGF0YU9iamVjdC4KKHczMl9jcmVhdGV3aW5kb3cpOiBBc3NpZ24gYW4gSURyb3BU YXJnZXQgdG8gZWFjaCBuZXcgZnJhbWUuCih3MzJfbmFtZV9vZl9tZXNzYWdlKTogQWRkZWQg bmV3IG1lc3NhZ2UuCih3MzJfbXNnX3B1bXApOiBDaGFuZ2VkIENvSW5pdGlhbGl6ZSB0byBP bGVJbml0aWFsaXplLCBuZWVkZWQKYnkgdGhlIGRyYWctbi1kcm9wIGZ1bmN0aW9ucy4KKHcz Ml93bmRfcHJvYyk6IE5ldyBzdHJ1Y3QgdzMyX2Ryb3BfdGFyZ2V0LCBhbmQKdzMyX2Ryb3Bf dGFyZ2V0XyogZnVuY3Rpb25zIHRvIGltcGxlbWVudCB0aGUgSURyb3BUYXJnZXQKaW50ZXJm YWNlLgoqIHNyYy93MzJ0ZXJtLmMgKHczMl9yZWFkX3NvY2tldCk6IEhhbmRsZSBXTV9FTUFD U19EUk9QIGFuZApyZW1vdmUgV01fRU1BQ1NfRFJPUEZJTEVTLgoqIHNyYy93MzJ0ZXJtLmgg KCk6IEFkZGVkIG5ldyBtZXNzYWdlIFdNX0VNQUNTX0RST1AuCgouLgotLS0KIGV0Yy9ORVdT ICAgICAgICAgICAgIHwgICA1ICsrCiBsaXNwL3Rlcm0vdzMyLXdpbi5lbCB8ICAyNSArKysr LS0KIHNyYy93MzJmbnMuYyAgICAgICAgIHwgMjAzICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrLS0KIHNyYy93MzJ0ZXJtLmMgICAgICAgIHwgIDk4ICsrKyst LS0tLS0tLS0tLS0tLS0tLQogc3JjL3czMnRlcm0uaCAgICAgICAgfCAgIDQgKy0KIDUgZmls ZXMgY2hhbmdlZCwgMjQyIGluc2VydGlvbnMoKyksIDkzIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2V0Yy9ORVdTIGIvZXRjL05FV1MKaW5kZXggMzc1NjhmZmRiZWEuLjdjOWY2ZjU1 OWVjIDEwMDY0NAotLS0gYS9ldGMvTkVXUworKysgYi9ldGMvTkVXUwpAQCAtNTg0LDYgKzU4 NCwxMSBAQCBJbiBwYXJ0aWN1bGFyLCBpdCBpcyBub3cgcG9zc2libGUgdG8gc2hvdyB0ZXh0 IHdpdGggZW1iZWRkZWQgbmV3bGluZXMgaW4KIGEgZGlhbG9nIHBvcHBlZCBieSAnbWVzc2Fn ZS1ib3gnLiAgVGhpcyBpcyBzdXBwb3J0ZWQgb24gV2luZG93cyBWaXN0YQogYW5kIGxhdGVy IHZlcnNpb25zLgogCistLS0KKyoqIEVtYWNzIG9uIE1TLVdpbmRvd3Mgbm93IHN1cHBvcnRz IGRyYWctbi1kcm9wIG9mIHRleHQgaW50byBhIGJ1ZmZlci4KK1RoaXMgaXMgaW4gYWRkaXRp b24gdG8gZHJhZy1uLWRyb3Agb2YgZmlsZXMsIHRoYXQgd2FzIGFscmVhZHkgc3VwcG9ydGVk LgorCisKIAwKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdOVSBF bWFjcy4KZGlmZiAtLWdpdCBhL2xpc3AvdGVybS93MzItd2luLmVsIGIvbGlzcC90ZXJtL3cz Mi13aW4uZWwKaW5kZXggYjU3YjNkZDNiZWYuLjU0MWZlZjJjZWQzIDEwMDY0NAotLS0gYS9s aXNwL3Rlcm0vdzMyLXdpbi5lbAorKysgYi9saXNwL3Rlcm0vdzMyLXdpbi5lbApAQCAtMTMx LDggKzEzMSwxNSBAQCB3MzItZHJvcHBlZC1maWxlLXRvLXVybAogICAgZmlsZS1uYW1lKSkK IAogKGRlZnVuIHczMi1kcmFnLW4tZHJvcCAoZXZlbnQgJm9wdGlvbmFsIG5ldy1mcmFtZSkK LSAgIkVkaXQgdGhlIGZpbGVzIGxpc3RlZCBpbiB0aGUgZHJhZy1uLWRyb3AgRVZFTlQuCi1T d2l0Y2ggdG8gYSBidWZmZXIgZWRpdGluZyB0aGUgbGFzdCBmaWxlIGRyb3BwZWQuIgorICAi UGVyZm9ybSBkcmFnLW4tZHJvcCBhY3Rpb24gYWNjb3JkaW5nIHRvIGRhdGEgaW4gRVZFTlQu CitJZiBFVkVOVCBpcyBmb3Igb25lIG9yIG1vcmUgZmlsZXMsIHZpc2l0IHRob3NlIGZpbGVz IGluIGNvcnJlc3BvbmRpbmcKK2J1ZmZlcnMsIGFuZCBzd2l0Y2ggdG8gdGhlIGJ1ZmZlciB0 aGF0IHZpc2l0cyB0aGUgbGFzdCBkcm9wcGVkIGZpbGUuCitJZiBFVkVOVCBpcyBmb3IgdGV4 dCwgaW5zZXJ0IHRoYXQgdGV4dCBhdCBwb2ludCBpbnRvIHRoZSBidWZmZXIKK3Nob3duIGlu IHRoZSB3aW5kb3cgdGhhdCBpcyB0aGUgdGFyZ2V0IG9mIHRoZSBkcm9wOyBpZiB0aGF0IGJ1 ZmZlciBpcworcmVhZC1vbmx5LCBhZGQgdGhlIGRyb3BwZWQgdGV4dCB0byBraWxsLXJpbmcu CitJZiB0aGUgb3B0aW9uYWwgYXJndW1lbnQgTkVXLUZSQU1FIGlzIG5vbi1uaWwsIHBlcmZv cm0gdGhlCitkcmFnLW4tZHJvcCBhY3Rpb24gaW4gYSBuZXdseS1jcmVhdGVkIGZyYW1lIHVz aW5nIGl0cyBzZWxlY3RlZC13aW5kb3cKK2FuZCB0aGF0IHdpbmRvdydzIGJ1ZmZlci4iCiAg IChpbnRlcmFjdGl2ZSAiZSIpCiAgIChzYXZlLWV4Y3Vyc2lvbgogICAgIDs7IE1ha2Ugc3Vy ZSB0aGUgZHJvcCB0YXJnZXQgaGFzIHBvc2l0aXZlIGNvLW9yZHMKQEAgLTE0MCw2ICsxNDcs NyBAQCB3MzItZHJhZy1uLWRyb3AKICAgICA7OyB3b24ndCB3b3JrLiAgPHNreEB0YXJkaXMu ZWQuYWMudWs+CiAgICAgKGxldCogKCh3aW5kb3cgKHBvc24td2luZG93IChldmVudC1zdGFy dCBldmVudCkpKQogCSAgIChjb29yZHMgKHBvc24teC15IChldmVudC1zdGFydCBldmVudCkp KQorICAgICAgICAgICAoYXJnIChjYXIgKGNkciAoY2RyIGV2ZW50KSkpKQogCSAgICh4IChj YXIgY29vcmRzKSkKIAkgICAoeSAoY2RyIGNvb3JkcykpKQogICAgICAgKGlmIChhbmQgKD4g eCAwKSAoPiB5IDApKQpAQCAtMTUwLDExICsxNTgsMTQgQEAgdzMyLWRyYWctbi1kcm9wCiAg ICAgICAocmFpc2UtZnJhbWUpCiAgICAgICAoc2V0cSB3aW5kb3cgKHNlbGVjdGVkLXdpbmRv dykpCiAKLSAgICAgIChkbmQtaGFuZGxlLW11bHRpcGxlLXVybHMKLSAgICAgICB3aW5kb3cK LSAgICAgICAobWFwY2FyICMndzMyLWRyb3BwZWQtZmlsZS10by11cmwKLSAgICAgICAgICAg ICAgIChjYXIgKGNkciAoY2RyIGV2ZW50KSkpKQotICAgICAgICdwcml2YXRlKSkpKQorICAg ICAgOzsgYXJnICh0aGUgcGF5bG9hZCBvZiB0aGUgZXZlbnQpIGlzIGEgc3RyaW5nIHdoZW4g dGhlIGRyb3AgaXMKKyAgICAgIDs7IHRleHQsIGFuZCBhIGxpc3Qgb2Ygc3RyaW5ncyB3aGVu IHRoZSBkcm9wIGlzIG9uZSBvciBtb3JlIGZpbGVzLgorICAgICAgKGlmIChzdHJpbmdwIGFy ZykKKyAgICAgICAgICAoZG5kLWluc2VydC10ZXh0IHdpbmRvdyAnY29weSBhcmcpCisgICAg ICAgIChkbmQtaGFuZGxlLW11bHRpcGxlLXVybHMKKyAgICAgICAgIHdpbmRvdworICAgICAg ICAgKG1hcGNhciAjJ3czMi1kcm9wcGVkLWZpbGUtdG8tdXJsIGFyZykKKyAgICAgICAgICdw cml2YXRlKSkpKSkKIAogKGRlZnVuIHczMi1kcmFnLW4tZHJvcC1vdGhlci1mcmFtZSAoZXZl bnQpCiAgICJFZGl0IHRoZSBmaWxlcyBsaXN0ZWQgaW4gdGhlIGRyYWctbi1kcm9wIEVWRU5U LCBpbiBvdGhlciBmcmFtZXMuCmRpZmYgLS1naXQgYS9zcmMvdzMyZm5zLmMgYi9zcmMvdzMy Zm5zLmMKaW5kZXggMGEzZjVjMzhhNTguLmRjNjlhMzk4MDE5IDEwMDY0NAotLS0gYS9zcmMv dzMyZm5zLmMKKysrIGIvc3JjL3czMmZucy5jCkBAIC0zNCw2ICszNCwxMiBAQCAjZGVmaW5l IF9XSU4zMl9XSU5OVCAweDA2MDAKIAogI2luY2x1ZGUgPGMtY3R5cGUuaD4KIAorI2RlZmlu ZSBDT0JKTUFDUk9TIC8qIEFzayBmb3IgQyBkZWZpbml0aW9ucyBmb3IgQ09NLiAgKi8KKyNp bmNsdWRlIDxzaGxvYmouaD4KKyNpbmNsdWRlIDxvbGVpZGwuaD4KKyNpbmNsdWRlIDxvYmpp ZGwuaD4KKyNpbmNsdWRlIDxvbGUyLmg+CisKICNpbmNsdWRlICJsaXNwLmgiCiAjaW5jbHVk ZSAidzMydGVybS5oIgogI2luY2x1ZGUgImZyYW1lLmgiCkBAIC0zNTksNiArMzY1LDkgQEAg I2RlZmluZSBXU19FWF9OT0FDVElWQVRFIDB4MDgwMDAwMDBMCiAKIHN0YXRpYyBzdHJ1Y3Qg dzMyX2Rpc3BsYXlfaW5mbyAqdzMyX2Rpc3BsYXlfaW5mb19mb3JfbmFtZSAoTGlzcF9PYmpl Y3QpOwogCitzdGF0aWMgdm9pZCBteV9wb3N0X21zZyAoVzMyTXNnKiwgSFdORCwgVUlOVCwg V1BBUkFNLCBMUEFSQU0pOworc3RhdGljIHVuc2lnbmVkIGludCB3MzJfZ2V0X21vZGlmaWVy cyAodm9pZCk7CisKIC8qIExldCB0aGUgdXNlciBzcGVjaWZ5IGEgZGlzcGxheSB3aXRoIGEg ZnJhbWUuCiAgICBuaWwgc3RhbmRzIGZvciB0aGUgc2VsZWN0ZWQgZnJhbWUtLW9yLCBpZiB0 aGF0IGlzIG5vdCBhIHczMiBmcmFtZSwKICAgIHRoZSBmaXJzdCBkaXNwbGF5IG9uIHRoZSBs aXN0LiAgKi8KQEAgLTI0NjQsNiArMjQ3MywxNzQgQEAgdzMyX2NyZWF0ZWhzY3JvbGxiYXIg KHN0cnVjdCBmcmFtZSAqZiwgc3RydWN0IHNjcm9sbF9iYXIgKiBiYXIpCiAgIHJldHVybiBo d25kOwogfQogCisvKiBGcm9tIHRoZSBEUk9QRklMRVMgc3RydWN0LCBleHRyYWN0IHRoZSBm aWxlbmFtZXMgYW5kIHJldHVybiBhcyBhIGxpc3QKKyAgIG9mIHN0cmluZ3MuICAqLworc3Rh dGljIExpc3BfT2JqZWN0Citwcm9jZXNzX2Ryb3BmaWxlcyAoRFJPUEZJTEVTICpmaWxlcykK K3sKKyAgY2hhciAqc3RhcnRfb2ZfZmlsZXMgPSAoY2hhciAqKSBmaWxlcyArIGZpbGVzLT5w RmlsZXM7CisgIGNoYXIgZmlsZW5hbWVbTUFYX1VURjhfUEFUSF07CisgIExpc3BfT2JqZWN0 IGxpc3BfZmlsZXMgPSBRbmlsOworCisgIGlmIChmaWxlcy0+ZldpZGUpCisgICAgeworICAg ICAgV0NIQVIgKnAgPSAoV0NIQVIgKikgc3RhcnRfb2ZfZmlsZXM7CisgICAgICBmb3IgKDsg KnA7IHAgKz0gd2NzbGVuIChwKSArIDEpCisJeworCSAgZmlsZW5hbWVfZnJvbV91dGYxNihw LCBmaWxlbmFtZSk7CisJICBsaXNwX2ZpbGVzID0gRmNvbnMgKERFQ09ERV9GSUxFIChidWls ZF9zdHJpbmcgKGZpbGVuYW1lKSksCisJCQkgICAgICBsaXNwX2ZpbGVzICk7CisJfQorICAg IH0KKyAgZWxzZQorICAgIHsKKyAgICAgIGNoYXIgKnAgPSBzdGFydF9vZl9maWxlczsKKyAg ICAgIGZvciAoOyAqcDsgcCArPSBzdHJsZW4ocCkgKyAxKQorCXsKKwkgIGZpbGVuYW1lX2Zy b21fYW5zaSAocCwgZmlsZW5hbWUpOworCSAgbGlzcF9maWxlcyA9IEZjb25zIChERUNPREVf RklMRSAoYnVpbGRfc3RyaW5nIChmaWxlbmFtZSkpLAorCQkJICAgICAgbGlzcF9maWxlcyAp OworCX0KKyAgICB9CisgIHJldHVybiBsaXNwX2ZpbGVzOworfQorCitMaXNwX09iamVjdAor dzMyX3Byb2Nlc3NfZG5kX2RhdGEgKGludCBmb3JtYXQsIHZvaWQgKmhHbG9iYWwpCit7Cisg IExpc3BfT2JqZWN0IHJlc3VsdCA9IFFuaWw7CisgIEhHTE9CQUwgaGcgPSAoSEdMT0JBTCkg aEdsb2JhbDsKKworICBzd2l0Y2ggKGZvcm1hdCkKKyAgICB7CisgICAgY2FzZSBDRl9IRFJP UDoKKyAgICAgIHsKKwlEUk9QRklMRVMgKmZpbGVzID0gKERST1BGSUxFUyAqKSBHbG9iYWxM b2NrIChoZyk7CisJaWYgKGZpbGVzKQorCSAgcmVzdWx0ID0gcHJvY2Vzc19kcm9wZmlsZXMg KGZpbGVzKTsKKwlHbG9iYWxVbmxvY2sgKGhnKTsKKwlicmVhazsKKyAgICAgIH0KKyAgICBj YXNlIENGX1VOSUNPREVURVhUOgorICAgICAgeworCVdDSEFSICp0ZXh0ID0gKFdDSEFSICop IEdsb2JhbExvY2sgKGhnKTsKKwlyZXN1bHQgPSBmcm9tX3VuaWNvZGVfYnVmZmVyICh0ZXh0 KTsKKwlHbG9iYWxVbmxvY2sgKGhnKTsKKwlicmVhazsKKyAgICAgIH0KKyAgICBjYXNlIENG X1RFWFQ6CisgICAgICB7CisJY2hhciAqdGV4dCA9IChjaGFyICopIEdsb2JhbExvY2sgKGhn KTsKKwlyZXN1bHQgPSBERUNPREVfU1lTVEVNIChidWlsZF91bmlieXRlX3N0cmluZyAodGV4 dCkpOworCUdsb2JhbFVubG9jayAoaGcpOworCWJyZWFrOworICAgICAgfQorICAgIH0KKwor ICBHbG9iYWxGcmVlIChoZyk7CisKKyAgcmV0dXJuIHJlc3VsdDsKK30KKworc3RydWN0IHcz Ml9kcm9wX3RhcmdldCB7CisgIC8qIGlfZHJvcF90YXJnZXQgbXVzdCBiZSB0aGUgZmlyc3Qg bWVtYmVyLiAgKi8KKyAgSURyb3BUYXJnZXQgaV9kcm9wX3RhcmdldDsKKyAgSFdORCBod25k OworfTsKKworc3RhdGljIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUKK3czMl9kcm9wX3Rh cmdldF9RdWVyeUludGVyZmFjZSAoSURyb3BUYXJnZXQgKnQsIFJFRklJRCByaSwgdm9pZCAq KnIpCit7CisgIHJldHVybiBFX05PSU5URVJGQUNFOworfQorCitzdGF0aWMgVUxPTkcgU1RE TUVUSE9EQ0FMTFRZUEUKK3czMl9kcm9wX3RhcmdldF9BZGRSZWYgKElEcm9wVGFyZ2V0ICpU aGlzKQoreworICByZXR1cm4gMTsKK30KKworc3RhdGljIFVMT05HIFNURE1FVEhPRENBTExU WVBFCit3MzJfZHJvcF90YXJnZXRfUmVsZWFzZSAoSURyb3BUYXJnZXQgKlRoaXMpCit7Cisg IHN0cnVjdCB3MzJfZHJvcF90YXJnZXQgKnRhcmdldCA9IChzdHJ1Y3QgdzMyX2Ryb3BfdGFy Z2V0ICogKSBUaGlzOworICBmcmVlICh0YXJnZXQtPmlfZHJvcF90YXJnZXQubHBWdGJsKTsK KyAgZnJlZSAodGFyZ2V0KTsKKyAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBIUkVTVUxUIFNU RE1FVEhPRENBTExUWVBFCit3MzJfZHJvcF90YXJnZXRfRHJhZ0VudGVyIChJRHJvcFRhcmdl dCAqVGhpcywgSURhdGFPYmplY3QgKnBEYXRhT2JqLAorCQkJICAgRFdPUkQgZ3JmS2V5U3Rh dGUsIFBPSU5UTCBwdCwgRFdPUkQgKnBkd0VmZmVjdCkKK3sKKyAgKnBkd0VmZmVjdCA9IERS T1BFRkZFQ1RfQ09QWTsKKyAgcmV0dXJuIFNfT0s7Cit9CisKK3N0YXRpYyBIUkVTVUxUIFNU RE1FVEhPRENBTExUWVBFCit3MzJfZHJvcF90YXJnZXRfRHJhZ092ZXIgKElEcm9wVGFyZ2V0 ICpUaGlzLCBEV09SRCBncmZLZXlTdGF0ZSwgUE9JTlRMIHB0LAorCQkJICBEV09SRCAqcGR3 RWZmZWN0KQoreworICAqcGR3RWZmZWN0ID0gRFJPUEVGRkVDVF9DT1BZOworICByZXR1cm4g U19PSzsKK30KKworc3RhdGljIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUKK3czMl9kcm9w X3RhcmdldF9EcmFnTGVhdmUgKElEcm9wVGFyZ2V0ICpUaGlzKQoreworICByZXR1cm4gU19P SzsKK30KKworc3RhdGljIEhHTE9CQUwgdzMyX3RyeV9nZXRfZGF0YSAoSURhdGFPYmplY3Qg KnBEYXRhT2JqLCBpbnQgZm9ybWF0KQoreworICBGT1JNQVRFVEMgZm9ybWF0ZXRjID0geyBm b3JtYXQsIE5VTEwsIERWQVNQRUNUX0NPTlRFTlQsIC0xLAorCQkJICBUWU1FRF9IR0xPQkFM IH07CisgIFNUR01FRElVTSBzdGdtZWRpdW07CisgIEhSRVNVTFQgciA9IElEYXRhT2JqZWN0 X0dldERhdGEgKHBEYXRhT2JqLCAmZm9ybWF0ZXRjLCAmc3RnbWVkaXVtKTsKKyAgaWYgKFNV Q0NFRURFRCAocikpCisgICAgeworICAgICAgaWYgKHN0Z21lZGl1bS50eW1lZCA9PSBUWU1F RF9IR0xPQkFMKQorCXJldHVybiBzdGdtZWRpdW0uaEdsb2JhbDsKKyAgICAgIFJlbGVhc2VT dGdNZWRpdW0gKCZzdGdtZWRpdW0pOworICAgIH0KKyAgcmV0dXJuIE5VTEw7Cit9CisKK3N0 YXRpYyBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFCit3MzJfZHJvcF90YXJnZXRfRHJvcCAo SURyb3BUYXJnZXQgKlRoaXMsIElEYXRhT2JqZWN0ICpwRGF0YU9iaiwKKwkJICAgICAgRFdP UkQgZ3JmS2V5U3RhdGUsIFBPSU5UTCBwdCwgRFdPUkQgKnBkd0VmZmVjdCkKK3sKKyAgc3Ry dWN0IHczMl9kcm9wX3RhcmdldCAqdGFyZ2V0ID0gKHN0cnVjdCB3MzJfZHJvcF90YXJnZXQg KilUaGlzOworICAqcGR3RWZmZWN0ID0gRFJPUEVGRkVDVF9DT1BZOworCisgIFczMk1zZyBt c2cgPSB7MH07CisgIG1zZy5kd01vZGlmaWVycyA9IHczMl9nZXRfbW9kaWZpZXJzKCk7Cisg IG1zZy5tc2cudGltZSA9IEdldE1lc3NhZ2VUaW1lICgpOworICBtc2cubXNnLnB0LnggPSBw dC54OworICBtc2cubXNnLnB0LnkgPSBwdC55OworCisgIGludCBmb3JtYXQgPSBDRl9IRFJP UDsKKyAgSEdMT0JBTCBoR2xvYmFsID0gdzMyX3RyeV9nZXRfZGF0YSAocERhdGFPYmosIGZv cm1hdCk7CisKKyAgaWYgKCFoR2xvYmFsKQorICAgIHsKKyAgICAgIGZvcm1hdCA9IENGX1VO SUNPREVURVhUOworICAgICAgaEdsb2JhbCA9IHczMl90cnlfZ2V0X2RhdGEgKHBEYXRhT2Jq LCBmb3JtYXQpOworICAgIH0KKworICBpZiAoIWhHbG9iYWwpCisgICAgeworICAgICAgZm9y bWF0ID0gQ0ZfVEVYVDsKKyAgICAgIGhHbG9iYWwgPSB3MzJfdHJ5X2dldF9kYXRhIChwRGF0 YU9iaiwgZm9ybWF0KTsKKyAgICB9CisKKyAgaWYgKGhHbG9iYWwpCisgICAgICBteV9wb3N0 X21zZyAoJm1zZywgdGFyZ2V0LT5od25kLCBXTV9FTUFDU19EUk9QLCBmb3JtYXQsCisJCSAg IChMUEFSQU0pIGhHbG9iYWwpOworCisgIHJldHVybiBTX09LOworfQorCiBzdGF0aWMgdm9p ZAogdzMyX2NyZWF0ZXdpbmRvdyAoc3RydWN0IGZyYW1lICpmLCBpbnQgKmNvb3JkcykKIHsK QEAgLTI1NDgsNyArMjcyNSwyMCBAQCB3MzJfY3JlYXRld2luZG93IChzdHJ1Y3QgZnJhbWUg KmYsIGludCAqY29vcmRzKQogICAgICAgU2V0V2luZG93TG9uZyAoaHduZCwgV05EX0JBQ0tH Uk9VTkRfSU5ERVgsIEZSQU1FX0JBQ0tHUk9VTkRfUElYRUwgKGYpKTsKIAogICAgICAgLyog RW5hYmxlIGRyYWctbi1kcm9wLiAgKi8KLSAgICAgIERyYWdBY2NlcHRGaWxlcyAoaHduZCwg VFJVRSk7CisgICAgICBzdHJ1Y3QgdzMyX2Ryb3BfdGFyZ2V0ICpkcm9wX3RhcmdldCA9CisJ bWFsbG9jIChzaXplb2YgKHN0cnVjdCB3MzJfZHJvcF90YXJnZXQpKTsKKyAgICAgIGRyb3Bf dGFyZ2V0LT5od25kID0gaHduZDsKKworICAgICAgSURyb3BUYXJnZXRWdGJsICp2dGJsID0g bWFsbG9jIChzaXplb2YgKElEcm9wVGFyZ2V0VnRibCkpOworICAgICAgZHJvcF90YXJnZXQt PmlfZHJvcF90YXJnZXQubHBWdGJsID0gdnRibDsKKyAgICAgIHZ0YmwtPlF1ZXJ5SW50ZXJm YWNlID0gdzMyX2Ryb3BfdGFyZ2V0X1F1ZXJ5SW50ZXJmYWNlOworICAgICAgdnRibC0+QWRk UmVmID0gdzMyX2Ryb3BfdGFyZ2V0X0FkZFJlZjsKKyAgICAgIHZ0YmwtPlJlbGVhc2UgPSB3 MzJfZHJvcF90YXJnZXRfUmVsZWFzZTsKKyAgICAgIHZ0YmwtPkRyYWdFbnRlciA9IHczMl9k cm9wX3RhcmdldF9EcmFnRW50ZXI7CisgICAgICB2dGJsLT5EcmFnT3ZlciA9IHczMl9kcm9w X3RhcmdldF9EcmFnT3ZlcjsKKyAgICAgIHZ0YmwtPkRyYWdMZWF2ZSA9IHczMl9kcm9wX3Rh cmdldF9EcmFnTGVhdmU7CisgICAgICB2dGJsLT5Ecm9wID0gdzMyX2Ryb3BfdGFyZ2V0X0Ry b3A7CisgICAgICBSZWdpc3RlckRyYWdEcm9wIChod25kLCAmZHJvcF90YXJnZXQtPmlfZHJv cF90YXJnZXQpOwogCiAgICAgICAvKiBFbmFibGUgc3lzdGVtIGxpZ2h0L2RhcmsgdGhlbWUu ICAqLwogICAgICAgdzMyX2FwcGx5dGhlbWUgKGh3bmQpOwpAQCAtMzM5OSw2ICszNTg5LDcg QEAgI2RlZmluZSBNKG1zZykgeyBtc2csICMgbXNnIH0KICAgICAgIE0gKFdNX0VNQUNTX1BB SU5UKSwKICAgICAgIE0gKFdNX0VNQUNTX0lNRV9TVEFUVVMpLAogICAgICAgTSAoV01fQ0hB UiksCisgICAgICBNIChXTV9FTUFDU19EUk9QKSwKICN1bmRlZiBNCiAgICAgICB7IDAsIDAg fQogICB9OwpAQCAtMzQ2NSwxMyArMzY1NiwxNCBAQCB3MzJfbXNnX3B1bXAgKGRlZmVycmVk X21zZyAqIG1zZ19idWYpCiAJICAgICAgLyogUHJvZHVjZWQgYnkgY29tcGxldGVfZGVmZXJy ZWRfbXNnOyBqdXN0IGlnbm9yZS4gICovCiAJICAgICAgYnJlYWs7CiAJICAgIGNhc2UgV01f RU1BQ1NfQ1JFQVRFV0lORE9XOgotCSAgICAgIC8qIEluaXRpYWxpemUgQ09NIGZvciB0aGlz IHdpbmRvdy4gRXZlbiB0aG91Z2ggd2UgZG9uJ3QgdXNlIGl0LAotCQkgc29tZSB0aGlyZCBw YXJ0eSBzaGVsbCBleHRlbnNpb25zIGNhbiBjYXVzZSBpdCB0byBiZSB1c2VkIGluCisJICAg ICAgLyogSW5pdGlhbGl6ZSBDT00gZm9yIHRoaXMgd2luZG93LiAgTmVlZGVkIGZvciBSZWdp c3RlckRyYWdEcm9wLgorCQkgU29tZSB0aGlyZCBwYXJ0eSBzaGVsbCBleHRlbnNpb25zIGNh biBjYXVzZSBpdCB0byBiZSB1c2VkIGluCiAJCSBzeXN0ZW0gZGlhbG9ncywgd2hpY2ggY2F1 c2VzIGEgY3Jhc2ggaWYgaXQgaXMgbm90IGluaXRpYWxpemVkLgogCQkgVGhpcyBpcyBhIGtu b3duIGJ1ZyBpbiBXaW5kb3dzLCB3aGljaCB3YXMgZml4ZWQgbG9uZyBhZ28sIGJ1dAogCQkg dGhlIHBhdGNoIGZvciBYUCBpcyBub3QgcHVibGljbHkgYXZhaWxhYmxlIHVudGlsIFhQIFNQ MywKIAkJIGFuZCBvbGRlciB2ZXJzaW9ucyB3aWxsIG5ldmVyIGJlIHBhdGNoZWQuICAqLwot CSAgICAgIENvSW5pdGlhbGl6ZSAoTlVMTCk7CisJICAgICAgT2xlSW5pdGlhbGl6ZSAoTlVM TCk7CisKIAkgICAgICB3MzJfY3JlYXRld2luZG93ICgoc3RydWN0IGZyYW1lICopIG1zZy53 UGFyYW0sCiAJCQkJKGludCAqKSBtc2cubFBhcmFtKTsKIAkgICAgICBpZiAoIVBvc3RUaHJl YWRNZXNzYWdlIChkd01haW5UaHJlYWRJZCwgV01fRU1BQ1NfRE9ORSwgMCwgMCkpCkBAIC01 MTA2LDcgKzUyOTgsNiBAQCAjZGVmaW5lIE1PVVNFRVZFTlRGX0ZST01UT1VDSCAweEZGNTE1 NzAwCiAgICAgICByZXR1cm4gMDsKIAogICAgIGNhc2UgV01fTU9VU0VXSEVFTDoKLSAgICBj YXNlIFdNX0RST1BGSUxFUzoKICAgICAgIHdtc2cuZHdNb2RpZmllcnMgPSB3MzJfZ2V0X21v ZGlmaWVycyAoKTsKICAgICAgIG15X3Bvc3RfbXNnICgmd21zZywgaHduZCwgbXNnLCB3UGFy YW0sIGxQYXJhbSk7CiAgICAgICBzaWduYWxfdXNlcl9pbnB1dCAoKTsKQEAgLTU1OTcsNyAr NTc4OCw3IEBAICNkZWZpbmUgV01fVE9VQ0ggNTc2CiAgICAgICB9CiAKICAgICBjYXNlIFdN X0VNQUNTX0RFU1RST1lXSU5ET1c6Ci0gICAgICBEcmFnQWNjZXB0RmlsZXMgKChIV05EKSB3 UGFyYW0sIEZBTFNFKTsKKyAgICAgIFJldm9rZURyYWdEcm9wICgoSFdORCkgd1BhcmFtKTsK ICAgICAgIHJldHVybiBEZXN0cm95V2luZG93ICgoSFdORCkgd1BhcmFtKTsKIAogICAgIGNh c2UgV01fRU1BQ1NfSElERV9DQVJFVDoKZGlmZiAtLWdpdCBhL3NyYy93MzJ0ZXJtLmMgYi9z cmMvdzMydGVybS5jCmluZGV4IDYyMDM3ZTNiMmNkLi4zYTYyNzMwODEzNyAxMDA2NDQKLS0t IGEvc3JjL3czMnRlcm0uYworKysgYi9zcmMvdzMydGVybS5jCkBAIC0zNTc2LDgxICszNTc2 LDYgQEAgdzMyX2NvbnN0cnVjdF9tb3VzZV93aGVlbCAoc3RydWN0IGlucHV0X2V2ZW50ICpy ZXN1bHQsIFczMk1zZyAqbXNnLAogICByZXR1cm4gUW5pbDsKIH0KIAotc3RhdGljIExpc3Bf T2JqZWN0Ci13MzJfY29uc3RydWN0X2RyYWdfbl9kcm9wIChzdHJ1Y3QgaW5wdXRfZXZlbnQg KnJlc3VsdCwgVzMyTXNnICptc2csCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1 Y3QgZnJhbWUgKmYpCi17Ci0gIExpc3BfT2JqZWN0IGZpbGVzOwotICBMaXNwX09iamVjdCBm cmFtZTsKLSAgSERST1AgaGRyb3A7Ci0gIFBPSU5UIHA7Ci0gIFdPUkQgbnVtX2ZpbGVzOwot ICB3Y2hhcl90IG5hbWVfd1tNQVhfUEFUSF07Ci0jaWZkZWYgTlRHVUlfVU5JQ09ERQotICBj b25zdCBpbnQgdXNlX3VuaWNvZGUgPSAxOwotI2Vsc2UKLSAgaW50IHVzZV91bmljb2RlID0g dzMyX3VuaWNvZGVfZmlsZW5hbWVzOwotICBjaGFyIG5hbWVfYVtNQVhfUEFUSF07Ci0gIGNo YXIgZmlsZVtNQVhfVVRGOF9QQVRIXTsKLSNlbmRpZgotICBpbnQgaTsKLQotICByZXN1bHQt PmtpbmQgPSBEUkFHX05fRFJPUF9FVkVOVDsKLSAgcmVzdWx0LT5jb2RlID0gMDsKLSAgcmVz dWx0LT50aW1lc3RhbXAgPSBtc2ctPm1zZy50aW1lOwotICByZXN1bHQtPm1vZGlmaWVycyA9 IG1zZy0+ZHdNb2RpZmllcnM7Ci0KLSAgaGRyb3AgPSAoSERST1ApIG1zZy0+bXNnLndQYXJh bTsKLSAgRHJhZ1F1ZXJ5UG9pbnQgKGhkcm9wLCAmcCk7Ci0KLSNpZiAwCi0gIHAueCA9IExP V09SRCAobXNnLT5tc2cubFBhcmFtKTsKLSAgcC55ID0gSElXT1JEIChtc2ctPm1zZy5sUGFy YW0pOwotICBTY3JlZW5Ub0NsaWVudCAobXNnLT5tc2cuaHduZCwgJnApOwotI2VuZGlmCi0K LSAgWFNFVElOVCAocmVzdWx0LT54LCBwLngpOwotICBYU0VUSU5UIChyZXN1bHQtPnksIHAu eSk7Ci0KLSAgbnVtX2ZpbGVzID0gRHJhZ1F1ZXJ5RmlsZSAoaGRyb3AsIDB4RkZGRkZGRkYs IE5VTEwsIDApOwotICBmaWxlcyA9IFFuaWw7Ci0KLSAgZm9yIChpID0gMDsgaSA8IG51bV9m aWxlczsgaSsrKQotICAgIHsKLSAgICAgIGlmICh1c2VfdW5pY29kZSkKLQl7Ci0JICBlYXNz ZXJ0IChEcmFnUXVlcnlGaWxlVyAoaGRyb3AsIGksIE5VTEwsIDApIDwgTUFYX1BBVEgpOwot CSAgLyogSWYgRHJhZ1F1ZXJ5RmlsZSByZXR1cm5zIHplcm8sIGl0IGZhaWxlZCB0byBmZXRj aCBhIGZpbGUKLQkgICAgIG5hbWUuICAqLwotCSAgaWYgKERyYWdRdWVyeUZpbGVXIChoZHJv cCwgaSwgbmFtZV93LCBNQVhfUEFUSCkgPT0gMCkKLQkgICAgY29udGludWU7Ci0jaWZkZWYg TlRHVUlfVU5JQ09ERQotCSAgZmlsZXMgPSBGY29ucyAoZnJvbV91bmljb2RlX2J1ZmZlciAo bmFtZV93KSwgZmlsZXMpOwotI2Vsc2UKLQkgIGZpbGVuYW1lX2Zyb21fdXRmMTYgKG5hbWVf dywgZmlsZSk7Ci0JICBmaWxlcyA9IEZjb25zIChERUNPREVfRklMRSAoYnVpbGRfdW5pYnl0 ZV9zdHJpbmcgKGZpbGUpKSwgZmlsZXMpOwotI2VuZGlmIC8qIE5UR1VJX1VOSUNPREUgKi8K LQl9Ci0jaWZuZGVmIE5UR1VJX1VOSUNPREUKLSAgICAgIGVsc2UKLQl7Ci0JICBlYXNzZXJ0 IChEcmFnUXVlcnlGaWxlQSAoaGRyb3AsIGksIE5VTEwsIDApIDwgTUFYX1BBVEgpOwotCSAg aWYgKERyYWdRdWVyeUZpbGVBIChoZHJvcCwgaSwgbmFtZV9hLCBNQVhfUEFUSCkgPT0gMCkK LQkgICAgY29udGludWU7Ci0JICBmaWxlbmFtZV9mcm9tX2Fuc2kgKG5hbWVfYSwgZmlsZSk7 Ci0JICBmaWxlcyA9IEZjb25zIChERUNPREVfRklMRSAoYnVpbGRfdW5pYnl0ZV9zdHJpbmcg KGZpbGUpKSwgZmlsZXMpOwotCX0KLSNlbmRpZgotICAgIH0KLQotICBEcmFnRmluaXNoICho ZHJvcCk7Ci0KLSAgWFNFVEZSQU1FIChmcmFtZSwgZik7Ci0gIHJlc3VsdC0+ZnJhbWVfb3Jf d2luZG93ID0gZnJhbWU7Ci0gIHJlc3VsdC0+YXJnID0gZmlsZXM7Ci0gIHJldHVybiBRbmls OwotfQotCiAMCiAjaWYgSEFWRV9XMzJOT1RJRlkKIApAQCAtNTY4MiwxMSArNTYwNywyNiBA QCB3MzJfcmVhZF9zb2NrZXQgKHN0cnVjdCB0ZXJtaW5hbCAqdGVybWluYWwsCiAJICB9CiAJ ICBicmVhazsKIAotCWNhc2UgV01fRFJPUEZJTEVTOgotCSAgZiA9IHczMl93aW5kb3dfdG9f ZnJhbWUgKGRweWluZm8sIG1zZy5tc2cuaHduZCk7CisJY2FzZSBXTV9FTUFDU19EUk9QOgor CSAgeworCSAgICBpbnQgZm9ybWF0ID0gbXNnLm1zZy53UGFyYW07CisJICAgIExpc3BfT2Jq ZWN0IGRyb3Bfb2JqZWN0ID0KKwkgICAgICB3MzJfcHJvY2Vzc19kbmRfZGF0YSAoZm9ybWF0 LCAodm9pZCAqKSBtc2cubXNnLmxQYXJhbSk7CiAKLQkgIGlmIChmKQotCSAgICB3MzJfY29u c3RydWN0X2RyYWdfbl9kcm9wICgmaW5ldiwgJm1zZywgZik7CisJICAgIGYgPSB3MzJfd2lu ZG93X3RvX2ZyYW1lIChkcHlpbmZvLCBtc2cubXNnLmh3bmQpOworCSAgICBpZiAoIWYgfHwg TklMUCAoZHJvcF9vYmplY3QpKQorCSAgICAgIGJyZWFrOworCisJICAgIFhTRVRGUkFNRSAo aW5ldi5mcmFtZV9vcl93aW5kb3csIGYpOworCSAgICBpbmV2LmtpbmQgPSBEUkFHX05fRFJP UF9FVkVOVDsKKwkgICAgaW5ldi5jb2RlID0gMDsKKwkgICAgaW5ldi50aW1lc3RhbXAgPSBt c2cubXNnLnRpbWU7CisJICAgIGluZXYubW9kaWZpZXJzID0gbXNnLmR3TW9kaWZpZXJzOwor CSAgICBTY3JlZW5Ub0NsaWVudCAobXNnLm1zZy5od25kLCAmbXNnLm1zZy5wdCk7CisJICAg IFhTRVRJTlQgKGluZXYueCwgbXNnLm1zZy5wdC54KTsKKwkgICAgWFNFVElOVCAoaW5ldi55 LCBtc2cubXNnLnB0LnkpOworCSAgICBpbmV2LmFyZyA9IGRyb3Bfb2JqZWN0OworCSAgfQog CSAgYnJlYWs7CiAKIAljYXNlIFdNX0hTQ1JPTEw6CmRpZmYgLS1naXQgYS9zcmMvdzMydGVy bS5oIGIvc3JjL3czMnRlcm0uaAppbmRleCA0N2JlNTQyZjU3MC4uMzllMjI2MmUyYTggMTAw NjQ0Ci0tLSBhL3NyYy93MzJ0ZXJtLmgKKysrIGIvc3JjL3czMnRlcm0uaApAQCAtMjcyLDYg KzI3Miw3IEBAICNkZWZpbmUgQ1BfREVGQVVMVCAxMDA0CiAKIC8qIHczMmZucy5jICovCiBl eHRlcm4gdm9pZCB3MzJfZGVmYXVsdF9mb250X3BhcmFtZXRlciAoc3RydWN0IGZyYW1lKiBm LCBMaXNwX09iamVjdCBwYXJtcyk7CitleHRlcm4gTGlzcF9PYmplY3QgdzMyX3Byb2Nlc3Nf ZG5kX2RhdGEgKGludCBmb3JtYXQsIHZvaWQgKnBEYXRhT2JqKTsKIAogDAogI2RlZmluZSBQ SVhfVFlQRSBDT0xPUlJFRgpAQCAtNzEwLDcgKzcxMSw4IEBAICNkZWZpbmUgV01fRU1BQ1Nf QlJJTkdUT1RPUCAgICAgICAgICAgIChXTV9FTUFDU19TVEFSVCArIDIzKQogI2RlZmluZSBX TV9FTUFDU19JTlBVVF9SRUFEWSAgICAgICAgICAgKFdNX0VNQUNTX1NUQVJUICsgMjQpCiAj ZGVmaW5lIFdNX0VNQUNTX0ZJTEVOT1RJRlkgICAgICAgICAgICAoV01fRU1BQ1NfU1RBUlQg KyAyNSkKICNkZWZpbmUgV01fRU1BQ1NfSU1FX1NUQVRVUyAgICAgICAgICAgIChXTV9FTUFD U19TVEFSVCArIDI2KQotI2RlZmluZSBXTV9FTUFDU19FTkQgICAgICAgICAgICAgICAgICAg KFdNX0VNQUNTX1NUQVJUICsgMjcpCisjZGVmaW5lIFdNX0VNQUNTX0RST1AgICAgICAgICAg ICAgICAgICAoV01fRU1BQ1NfU1RBUlQgKyAyNykKKyNkZWZpbmUgV01fRU1BQ1NfRU5EICAg ICAgICAgICAgICAgICAgIChXTV9FTUFDU19TVEFSVCArIDI4KQogCiAjZGVmaW5lIFdORF9G T05UV0lEVEhfSU5ERVggICAgKDApCiAjZGVmaW5lIFdORF9MSU5FSEVJR0hUX0lOREVYICAg KDQpCi0tIAoyLjM1LjEud2luZG93cy4yCgo= --------------IMNsYWjK50U0KmTAHEpGC9Ot--