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#74423: Low level key events Date: Fri, 13 Dec 2024 23:55:18 +0100 Message-ID: References: <31bdc55d-8c13-4de0-9cef-bd6cc4fb033f@imayhem.com> <705fabb8-1ea0-4894-8c32-05097ab822c9@imayhem.com> <868qsvz07i.fsf@gnu.org> <162dada7-ad54-4ca5-8f11-d55dd6dccb3c@imayhem.com> <867c8ezny3.fsf@gnu.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------sxrzhc8vUyFc3eu2Z97hOBFd" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="13968"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla Thunderbird Cc: luangruo@yahoo.com, 74423@debbugs.gnu.org, monnier@iro.umontreal.ca To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Fri Dec 13 23:56:14 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 1tMEZx-0003Qm-0R for geb-bug-gnu-emacs@m.gmane-mx.org; Fri, 13 Dec 2024 23:56:13 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tMEZp-0003Dm-Ld; Fri, 13 Dec 2024 17:56:06 -0500 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 1tMEZn-0003DK-Gh for bug-gnu-emacs@gnu.org; Fri, 13 Dec 2024 17:56:03 -0500 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 1tMEZn-0001QS-4X for bug-gnu-emacs@gnu.org; Fri, 13 Dec 2024 17:56:03 -0500 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:From:References:MIME-Version:Date:To:Subject; bh=zyEL65bIW1h3DBhl6+jz0g72NO0JgYr5jmZuV0CP2ms=; b=uJxgrUFUNGhuzskKhnk4xPSscSzvlKJ6La1TQN5RmoVJm8LTCQrVt0a5a1EvhWLFgQxC4/1ouFzJChKKwIV23t+7luVBEZWH8EZf/U7Yyi9iwRKmRcbujBNImOFr6FydrIl7M1QUHVlLyRqER0K6Tfi7EanhcMKvSKddokwZjemw6EoymTC224o6sjIkKcnH2zJg7YzPvHBdsTIfTa47blGvIfSoMFJTG0T7nr2uhPTidDzl+H7gDgyihX1w4grkr7kK3QPhRQArK3D8KhJ8kuD9QUSBlQ78f1u6oG8GLlYU6Q/PjJ9YmgVsnqpqWdLqutYBbDdHcVU3Ki4xaiGDCQ==; Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1tMEZm-0001CV-Nt for bug-gnu-emacs@gnu.org; Fri, 13 Dec 2024 17:56:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Cecilio Pardo Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 13 Dec 2024 22:56:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 74423 X-GNU-PR-Package: emacs Original-Received: via spool by 74423-submit@debbugs.gnu.org id=B74423.17341305344547 (code B ref 74423); Fri, 13 Dec 2024 22:56:02 +0000 Original-Received: (at 74423) by debbugs.gnu.org; 13 Dec 2024 22:55:34 +0000 Original-Received: from localhost ([127.0.0.1]:44527 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tMEZI-0001BE-2y for submit@debbugs.gnu.org; Fri, 13 Dec 2024 17:55:34 -0500 Original-Received: from mail.imayhem.com ([82.223.54.191]:57887 helo=zealous-pike.82-223-54-191.plesk.page) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tMEZC-0001At-GZ for 74423@debbugs.gnu.org; Fri, 13 Dec 2024 17:55:30 -0500 Original-Received: from [192.168.68.102] (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 055E380155; Fri, 13 Dec 2024 22:55:19 +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.102] Received-SPF: pass (zealous-pike.82-223-54-191.plesk.page: connection is authenticated) Content-Language: es-ES In-Reply-To: <867c8ezny3.fsf@gnu.org> 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:296998 Archived-At: This is a multi-part message in MIME format. --------------sxrzhc8vUyFc3eu2Z97hOBFd Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit This new version includes a manual entry, and corrected doc strings and comments. --------------sxrzhc8vUyFc3eu2Z97hOBFd Content-Type: text/plain; charset=UTF-8; name="0001-Send-events-for-key-presses-and-key-releases.patch" Content-Disposition: attachment; filename="0001-Send-events-for-key-presses-and-key-releases.patch" Content-Transfer-Encoding: base64 RnJvbSBmMjM4MWZmMzgxNTczODdjNGIzZThjYTM1MDA5Njc1OTc2ZmQ5NzE3IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBDZWNpbGlvIFBhcmRvIDxjcGFyZG9AaW1heWhlbS5j b20+CkRhdGU6IE1vbiwgMiBEZWMgMjAyNCAxNzozMDo0MiArMDEwMApTdWJqZWN0OiBbUEFU Q0hdIFNlbmQgZXZlbnRzIGZvciBrZXkgcHJlc3NlcyBhbmQga2V5IHJlbGVhc2VzLgoKRGV0 ZWN0IGRvdWJsZS90cmlwbGUgdGFwcy4KCiogZG9jL2xpc3ByZWYvY29tbWFuZHMudGV4aTog QWRkZWQgaW5mb3JtYXRpb24gYWJvdXQgbmV3IGV2ZW50LgoqIHNyYy9ndGt1dGlsLmMgKHhn X2NyZWF0ZV9mcmFtZV93aWRnZXRzKTogTW9kaWZpZWQgdG8gaGFuZGxlIGtleQpyZWxlYXNl IGV2ZW50cy4KKHhnX21heWJlX3NlbmRfbG93X2xldmVsX2tleV9ldmVudCk6IE5ldyBmdW5j dGlvbiB0aGF0IHNlbmRzIGtleQpldmVudHMuCih4Z193aWRnZXRfa2V5X3ByZXNzX2V2ZW50 X2NiKTogTW9kaWZpZWQgdG8gc2VuZCBsb3cgbGV2ZWwga2V5IGV2ZW50cy4KKHhnX3dpZGdl dF9rZXlfcmVsZWFzZV9ldmVudF9jYik6IE5ldyBmdW5jdGlvbiB0byBzZW5kIGxvdyBsZXZl bCBrZXkKZXZlbnRzIG9uIGtleSByZWxlYXNlLgoqIHNyYy9rZXlib2FyZC5jIChrYmRfYnVm ZmVyX2dldF9ldmVudCk6IE1vZGlmaWVkIHRvIGhhbmRsZSBsb3cgbGV2ZWwKa2V5Ym9hcmQg ZXZlbnRzLgoobWFrZV9saXNweV9ldmVudCk6IE1vZGlmaWVkIHRvIGhhbmRsZSBsb3cgbGV2 ZWwga2V5Ym9hcmQgZXZlbnRzLgooa2JkX2xvd19sZXZlbF9rZXlfaXNfZW5hYmxlZCk6IE5l dyBmdW5jdGlvbiB0byBkZWNpZGUgaWYgYSBwYXJ0aWN1bGFyCmtleSBzaG91bGQgZ2VuZXJh dGUgZXZlbnRzLCBsb29raW5nIGF0IGNvbmZpZ3VyYXRpb24uCihzeW1zX29mX2tleWJvYXJk KTogQWRkZWQgc3ltYm9scyBhbmQgdmFyaWFsYmxlcy4KKGtleXNfb2Zfa2V5Ym9hcmQpOiBN b2RpZmllZCB0byBtYXAgbG93IGxldmVsIGtleSBldmVudHMgdG8KJ3NwZWNpYWwtZXZlbnQt bWFwJy4KKiBzcmMva2V5Ym9hcmQuaDogTW9kaWZpZWQgd2l0aCBmdW5jdGlvbiBwcm90b3R5 cGUuCiogc3JjL3BndGt0ZXJtLmMgKHBndGtfbWF5YmVfc2VuZF9sb3dfbGV2ZWxfa2V5X2V2 ZW50KTogTmV3IGZ1bmN0aW9uCnRoYXQgc2VuZHMga2V5IGV2ZW50cy4KKGtleV9wcmVzc19l dmVudCk6IE1vZGlmaWVkIHRvIGhhbmRsZSBsb3cgbGV2ZWwga2V5Ym9hcmQgZXZlbnRzLgoo a2V5X3JlbGVhc2VfZXZlbnQpOiBNb2RpZmllZCB0byBoYW5kbGUgbG93IGxldmVsIGtleWJv YXJkIGV2ZW50cy4KKiBzcmMvdGVybWhvb2tzLmg6IE1vZGlmaWVkIHRvIGRlZmluZSBjb25z dGFudC4KKiBzcmMvdzMyZm5zLmMgKHczMl93bmRfcHJvYyk6IE1vZGlmaWVkIHRvIGdlbmVy YXRlIGxvdyBsZXZlbCBrZXkKZXZlbnRzLgoqIHNyYy93MzJ0ZXJtLmMgKHczMl9yZWFkX3Nv Y2tldCk6IE1vZGlmaWVkIHRvIGdlbmVyYXRlIGxvdyBsZXZlbCBrZXkKZXZlbnRzLgoqIHNy Yy93MzJ0ZXJtLmg6IE1vZGlmaWVkIHRvIGRlZmluZSBjb25zdGFudHMuCiogc3JjL3h0ZXJt LmMgKHhfZ2V0X21vZGlmaWVyX2Zvcl9rZXljb2RlKTogTmV3IGZ1bmN0aW9uIHRvIGRlY2lk ZQp3aGljaCAoaWYgYW55KSBtb2RpZmllciBjb3JyZXNwb25kcyB0byBhIGdpdmVuIGtleS4K KHhfbWF5YmVfc2VuZF9sb3dfbGV2ZWxfa2V5X2V2ZW50KTogTmV3IGZ1bmN0aW9uIHRoYXQg c2VuZHMga2V5CmV2ZW50cy4KKGhhbmRsZV9vbmVfeGV2ZW50KTogTW9kaWZpZWQgdG8gaGFu ZGxlIGxvdyBsZXZlbCBrZXkgZXZlbnRzLgooc3ltc19vZl94dGVybSk6IE1vZGlmaWVkIHRv IGRlZmluZSBzeW1ib2wuCiogc3JjL3h0ZXJtLmg6IE1vZGlmaWVkIHdpdGggZnVuY3Rpb24g cHJvdG90eXBlCiogbGlzcC9sb3ctbGV2ZWwta2V5LmVsIChOZXcgZmlsZSkuCihsbGstYmlu ZGluZ3MpOiBVc2VyIGJpbmRpbmdzIGZvciBsb3cgbGV2ZWwga2V5IGV2ZW50cy4KKGxsay10 YXAtY291bnQpOiBVc2VyIG9wdGlvbi4KKGxsay10YXAtdGltZW91dCk6IFVzZXIgb3B0aW9u LgoobGxrLXRhcC1rZXlzKTogVXNlciBvcHRpb24uCihsbGsta2V5c3ltcyk6IExpc3Qgb2Yg YXZhaWxhYmxlIGtleXN5bXMuCihkZWZpbmUteGspOiBNYWNybyBmb3IgZGVmaW5pbmcga2V5 c3ltcy4KKGxsay1kZWZpbmUta2V5c3ltcyk6IEJ1aWxkIGxsay1rZXlzeW1zLgoobGxrLWlu aXQpOiBGdW5jdGlvbiB0byBpbml0aWFsaXplIGxvdyBsZXZlbCBrZXkgaGFuZGxpbmcuCihl dmVudC1pcy1rZXktcHJlc3MpOiBHZXQgZmllbGQgZnJvbSBldmVudC4KKGV2ZW50LWtleXN5 bSk6IEdldCBmaWVsZCBmcm9tIGV2ZW50LgooZXZlbnQtbW9kaWZpZXIpOiBHZXQgZmllbGQg ZnJvbSBldmVudC4KKGV2ZW50LXRpbWUpOiBHZXQgZmllbGQgZnJvbSBldmVudC4KKGxsay1i aW5kKTogRnVuY3Rpb24gdG8gY3JlYXRlIGEgYmluZGluZy4KKGxsay1ldmVudHMpOiBFdmVu dCBoaXN0b3J5IGZvciB0YXAgZGV0ZWN0aW9uLgoobGxrLWRldGVjdC1uLXRhcCk6IEZ1bmN0 aW9uIHRvIGRldGVjdCB0YXBzLgooZGVzY3JpYmUtbG93LWxldmVsLWtleSk6IENvbW1hbmQg dG8gZ2V0IGluZm9ybWF0aW9uIGFib3V0IGEga2V5LgoobGxrLXNob3ctZXZlbnQtZGVzY3Jp cHRpb24pOiBTaG93IGhlbHAgYnVmZmVyIHdpdGggaW5mb3JtYXRpb24KYWJvdXQgYW4gZXZl bnQuCihsbGstaGFuZGxlKTogSGFuZGxlciBmb3Iga2V5IGV2ZW50cy4KLS0tCiBkb2MvbGlz cHJlZi9jb21tYW5kcy50ZXhpIHwgIDI5ICsrKysKIGxpc3AvbG93LWxldmVsLWtleS5lbCAg ICAgfCAzNDIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHNyYy9n dGt1dGlsLmMgICAgICAgICAgICAgfCAgODEgKysrKysrKysrCiBzcmMva2V5Ym9hcmQuYyAg ICAgICAgICAgIHwgIDY1ICsrKysrKysrCiBzcmMva2V5Ym9hcmQuaCAgICAgICAgICAgIHwg ICAxICsKIHNyYy9wZ3RrdGVybS5jICAgICAgICAgICAgfCAgNTUgKysrKysrCiBzcmMvdGVy bWhvb2tzLmggICAgICAgICAgIHwgICAxICsKIHNyYy93MzJmbnMuYyAgICAgICAgICAgICAg fCAgMTEgKysKIHNyYy93MzJ0ZXJtLmMgICAgICAgICAgICAgfCAgNDkgKysrKysrCiBzcmMv dzMydGVybS5oICAgICAgICAgICAgIHwgICAzICstCiBzcmMveHRlcm0uYyAgICAgICAgICAg ICAgIHwgMTQyICsrKysrKysrKysrKysrKysKIHNyYy94dGVybS5oICAgICAgICAgICAgICAg fCAgIDIgKwogMTIgZmlsZXMgY2hhbmdlZCwgNzgwIGluc2VydGlvbnMoKyksIDEgZGVsZXRp b24oLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBsaXNwL2xvdy1sZXZlbC1rZXkuZWwKCmRpZmYg LS1naXQgYS9kb2MvbGlzcHJlZi9jb21tYW5kcy50ZXhpIGIvZG9jL2xpc3ByZWYvY29tbWFu ZHMudGV4aQppbmRleCBkZjgyNjZhNzE1Ny4uOGExZjE3Njg5YzkgMTAwNjQ0Ci0tLSBhL2Rv Yy9saXNwcmVmL2NvbW1hbmRzLnRleGkKKysrIGIvZG9jL2xpc3ByZWYvY29tbWFuZHMudGV4 aQpAQCAtMjY1OCw2ICsyNjU4LDM1IEBAIE1pc2MgRXZlbnRzCiByZXNwZWN0aXZlbHkuICBU aGV5IGFyZSB1c3VhbGx5IGludGVycHJldGVkIGFzIGJlaW5nIHJlbGF0aXZlIHRvIHRoZQog c2l6ZSBvZiB0aGUgb2JqZWN0IGJlbmVhdGggdGhlIGdlc3R1cmU6IGltYWdlLCB3aW5kb3cs IGV0Yy4KIAorQGNpbmRleCBAY29kZXtsb3ctbGV2ZWwta2V5fSBldmVudAorQGl0ZW0gKGxv dy1sZXZlbC1rZXkgQHZhcntpcy1rZXktcHJlc3N9IEB2YXJ7a2V5fSBAdmFye21vZGlmaWVy fSBAdmFye3RpbWV9IEB2YXJ7ZnJhbWV9KQorVGhpcyBldmVudCBpcyBzZW50IG9uIHRoZSBw aHlzaWNhbCBwcmVzcyBvciByZWxlYXNlIG9mIGtleXMsIG9ubHkgb24gR1VJCitzeXN0ZW1z LCBjdXJyZW50bHkgWCwgTVMtV2luZG93cyBhbmQgUEdUSy4KKworQHZhcntpcy1rZXktcHJl c3N9IGlzIEBjb2Rle3R9IGZvciBhIGtleSBwcmVzcywgQGNvZGV7bmlsfSBmb3IgYSBrZXkg cmVsZWFzZS4KK0B2YXJ7dGltZX0gaXMgdGhlIGV2ZW50J3MgdGltZSBpbiBtaWxsaXNlY29u ZHMsIEB2YXJ7ZnJhbWV9IGlzIHRoZQorZnJhbWUgcmVjZWl2aW5nIGl0LiBAdmFye21vZGlm aWVyfSBpcyBAY29kZXtuaWx9IGlmIHRoZSBrZXkgaXMgbm90IGEKK21vZGlmaWVyIGtleSwg QGNvZGV7dH0gaWYgaXQgaXMsIGJ1dCBpdCBpcyB1bmtub3duIHdoaWNoIG9uZSwgb3Igb25l IG9mCitAY29kZXtzaGlmdH0sIEBjb2Rle2NvbnRyb2x9LCBAY29kZXttZXRhfSwgQGNvZGV7 YWx0fSwgQGNvZGV7c3VwZXJ9LAorQGNvZGV7aHlwZXJ9LgorCitAdmFye2tleX0sIGFuIGlu dGVnZXIsIGlkZW50aWZpZXMgdGhlIGtleSBwcmVzc2VkIG9yIHJlbGVhc2VkLiAgVGhpcwor bnVtYmVyIGlzIHBsYXRmb3JtIGRlcGVuZGVudCwgYnV0IHRoZXJlIGFyZSB2YXJpYWJsZXMg Zm9yIG1vc3Qga2V5cyB0aGF0CitjYW4gYmUgdXNlZCBpbiBwbGFjZSBvZiB0aGUgbnVtYmVy cyB0byBpZGVudGlmeSB0aGVtLiAgRm9yIGV4YW1wbGUsIHRoZQordmFyaWFibGUgQGNvZGV7 eGstYmFja3NwYWNlfSBpZGVudGlmaWVzIHRoZSBAa2V5e2JhY2tzcGFjZX0ga2V5LgorCitU aGUgbmFtZXMgYXJlIHBhcmFsbGVsIHRvIHRob3NlIGZvciBLZXlTeW1zIG9uIFgsIGFzIGRl ZmluZWQgaW4KK0BmaWxle3hrZXlzeW1kZWYuaH0uICBGb3IgZXhhbXBsZSwgQGNvZGV7WEtf U2hpZnRfTH0gKHRoZSBsZWZ0IHNoaWZ0CitrZXkpLCBjb3JyZXNwb25kcyB0byBAY29kZXt4 ay1zaGlmdC1sfS4gIFRoZSBAZmlsZXt4a2V5c3ltZGVmLmh9IGZpbGUKK2RlZmluZXMgZGlm ZmVyZW50IEtleVN5bXMgZm9yIGNhcGl0YWwgYW5kIHNtYWxsIHZlcnNpb25zIG9mIGxldHRl cnMuCitGb3IgdGhpcyBldmVudCwgb25seSB0aGUgY2FwaXRhbCB2ZXJzaW9uIGlzIHVzZWQs IHdpdGggdGhlIHZhcmlhYmxlcworQGNvZGV7eGstYX0sIEBjb2Rle3hrLWJ9LCBldGMuCisK K1RoZXNlIHZhcmlhYmxlcyBhcmUgaW5pdGlhbGl6ZWQgYnkgY2FsbGluZyB0aGUgZnVuY3Rp b24gQGNvZGV7bGxrLWluaXR9LgorVGhpcyBmdW5jdGlvbiBhbHNvIGJpbmRzIGEgaGFuZGxl ciB0byB0aGlzIGV2ZW50LCB3aGljaCBhbGxvd3MgdG8gZGV0ZWN0Citkb3VibGUgdGFwcyBv biBrZXlzIChub3JtYWxseSBtb2RpZmllciBrZXlzKSBhbmQgYmluZCBjb21tYW5kcyBvcgor ZnVuY3Rpb25zIHRvIGJlIHJ1bi4gIFNlZSB0aGUgZnVuY3Rpb24gQGNvZGV7bGxrLWJpbmR9 LgorCiBAY2luZGV4IEBjb2Rle3ByZWVkaXQtdGV4dH0gZXZlbnQKIEBpdGVtIChwcmVlZGl0 LXRleHQgQHZhcnthcmd9KQogVGhpcyBldmVudCBpcyBzZW50IHdoZW4gYSBzeXN0ZW0gaW5w dXQgbWV0aG9kIHRlbGxzIEVtYWNzIHRvIGRpc3BsYXkKZGlmZiAtLWdpdCBhL2xpc3AvbG93 LWxldmVsLWtleS5lbCBiL2xpc3AvbG93LWxldmVsLWtleS5lbApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYmM5MzExZjgyZDAKLS0tIC9kZXYvbnVsbAorKysg Yi9saXNwL2xvdy1sZXZlbC1rZXkuZWwKQEAgLTAsMCArMSwzNDIgQEAKKzs7OyAtKi0gbGV4 aWNhbC1iaW5kaW5nOiB0IC0qLQorCis7OyBUaGUgcGh5c2ljYWwta2V5IGV2ZW50IGlzIGxp a2UgdGhpczoKKzs7IChsb3ctbGV2ZWwta2V5IElTLUtFWS1QUkVTUyBLRVkgTU9ESUZJRVIg VElNRSBGUkFNRSkKKzs7IElTLUtFWS1QUkVTUyBpcyB0IGlmIHRoZSBrZXkgaGFzIGJlZW4g cHJlc3NlZCwgbmlsIGlmIGl0IGhhcyBiZWVuIHJlbGVhc2VkLgorOzsgS0VZIGlzIHRoZSBr ZXlzeW0gbnVtYmVyLgorOzsgTU9ESUZJRVIgaXMgdGhlIG1vZGlmaWVyIGFzc29jaWF0ZWQg d2l0aCB0aGlzIGtleS4gIEl0IGlzIG5pbCBpZiB0aGUga2V5IGlzCis7OyBub3QgYSBtb2Rp Zmllci4gIEl0IGNhbiBiZSBvbmUgb2YgdGhlIGZvbGxvd2luZyBzeW1ib2xzOiBzaGlmdCwg Y29udHJvbCwgbWV0YSwKKzs7IHN1cGVyLCBoeXBlciwgYWx0LiAgSXQgY2FuIGFsc28gYmUg dCBpZiB0aGUga2V5IGlzIGEgbW9kaWZpZXIgYnV0IGl0IGNhbid0IGJlCis7OyBpZGVudGlm aWVkLCBhcyBpbiB0aGUgUEdUSyBiYWNrZW5kLgorOzsgVElNRSBpcyB0aGUgdGltZXN0YW1w IGluIG1pbGxpc2Vjb25kcyBvZiB0aGUgZXZlbnQuCis7OyBGUkFNRSBpcyB0aGUgZnJhbWUg d2hlcmUgdGhlIGV2ZW50IGhhcHBlbmVkLgorOzsKKzs7IEFmdGVyIGNhbGxpbmcgJ2xsay1p bml0JyBhbmQgc2V0dGluZyBhIG5vbi1uaWwgdmFsdWUgZm9yCis7OyAnZW5hYmxlLWxvdy1s ZXZlbC1rZXktZXZlbnRzJywgZXZlbnRzIGJlZ2luIHRvIGJlIGhhbmRsZWQgYnkgJ2xsay1o YW5kbGVyJywKKzs7IHdoaWNoIHRyaWVzIHRvIGRldGVjdCBuLXRhcHMgYW5kIGNhbGxzIHRo ZSBjb3JyZXNwb25kaW5nIGZ1bmN0aW9uLgorOzsKKzs7IFRvIGltcGxlbWVudCBvdGhlciBm dW5jdGlvbmFsaXRpZXMsIHlvdSBjYW4gcmVwbGFjZSBsbGstaGFuZGxlciB3aXRoCis7OyB5 b3VyIG93biBmdW5jdGlvbi4KKworKHJlcXVpcmUgJ2NsLWxpYikKKworOzsgVXNlciBvcHRp b25zCisKKyhkZWZ2YXIgbGxrLWJpbmRpbmdzIG5pbAorICAiTGlzdCBvZiBiaW5kaW5ncyBm b3IgbG93IGxldmVsIGtleSBldmVudHMgKHByZXNzL3JlbGVhc2UvdGFwKS4KKworVXNlIHRo ZSBgbGxrLWJpbmQnIGZ1bmN0aW9uIHRvIGFkZCBiaW5kaW5ncy4gIFNlZSBpdHMgZG9jdW1l bnRhdGlvbiBmb3IKK2EgZGVzY3JpcHRpb24gb2YgdGhlIGJpbmRpbmcgaW5mb3JtYXRpb24u IikKKworKGRlZnZhciBsbGstdGFwLWNvdW50IDIKKyAgIk51bWJlciBvciBrZXkgcHJlc3Mv cmVsZWFzZXMgdG8gY29uc2lkZXIgYSB0YXAuIikKKworKGRlZnZhciBsbGstdGFwLXRpbWVv dXQgMTAwMAorICAiVGltZSAobXMpIGJldHdlZW4gY29uc2VjdXRpdmUga2V5IHByZXNzZXMv cmVsZWFzZXMgdG8gY29uc2lkZXIgYSB0YXAuIikKKworKGRlZnZhciBsbGstdGFwLWtleXMK KyAgJyh4ay1zaGlmdC1sIHhrLXNoaWZ0LXIgeGstY29udHJvbC1sIHhrLWNvbnRyb2wtciBt ZXRhKQorICAiS2V5cyB0aGF0IGNhbiBnZW5lcmF0ZSB0YXBzLiIpCisKKyhkZWZ2YXIgbGxr LWtleXN5bXMgbmlsCisgICJMaXN0IG9mIGtleXN5bSBudW1iZXJzIGFuZCB0aGVpciBjb3Jy ZXNwb25kaW5nIHN5bWJvbHMuCisKK0VhY2ggZWxlbWVudCBoYXMgdGhlIGZvcm0gKEtFWVNZ TSAuIFNZTUJPTCkuICBUaGUgdmFyaWFibGUgdmFsdWUgZm9yCitlYWNoIHN5bWJvbCBpcyB0 aGUga2V5c3ltLiAgVGhpcyBsaXN0IGlzIGluaXRpYWxpemVkIGJ5IGBsbGstaW5pdCcuIikK KworKGRlZnZhciBsbGstZGVzY3JpYmUtbmV4dC1wcmVzcyBuaWwKKyAgIkludGVybmFsIHZh cmlhYmxlIHRvIG1hcmsgdGhhdCBuZXh0IGtleSBwcmVzcyBzaG91bGQgYmUgZGVzY3JpYmVk LiIpCisKKyhkZWZtYWNybyBkZWZpbmUteGsgKG5hbWUgeC1rZXlzeW0gdzMyLWtleXN5bSkK KyAgIkludGVybmFsIG1hY3JvIHRvIGRlZmluZSBrZXlzeW1zLiIKKyAgYChsZXQgKChrc3lt IChwY2FzZSAod2luZG93LXN5c3RlbSkKKyAgICAgICAgICAgICAgICAgKCdwZ3RrICx4LWtl eXN5bSkKKyAgICAgICAgICAgICAgICAgKCd4ICx4LWtleXN5bSkKKyAgICAgICAgICAgICAg ICAgKCd3MzIgLHczMi1rZXlzeW0pKSkpCisgICAgIChkZWZjb25zdCAsbmFtZSBrc3ltICJD b25zdGFudCBmb3IgYSBrZXlzeW0gdmFsdWUuIikKKyAgICAgKHB1c2ggKGNvbnMga3N5bSAn LG5hbWUpIGxsay1rZXlzeW1zKSkpCisKKyhkZWZ1biBsbGstZGVmaW5lLWtleXN5bXMgKCkK KyAgIkluaXRpYWxpemUgdGhlIGtleXN5bSBsaXN0LCBgbGxrLWtleXN5bXMnLgorCitDYWxs ZWQgZnJvbSBgbGxrLWluaXQnLiIKKyAgKHNldHEgbGxrLWtleXN5bXMgbmlsKQorCisgIDs7 IHR0eSBrZXlzCisgIChkZWZpbmUteGsgeGstYmFja3NwYWNlICAgI3hmZjA4ICN4MDgpIDs7 IFhLX0JhY2tTcGFjZSBWS19CQUNLCisgIChkZWZpbmUteGsgeGstdGFiICAgICAgICAgI3hm ZjA5ICN4MDkpIDs7IFhLX1RhYiBWS19UQUIKKyAgKGRlZmluZS14ayB4ay1jbGVhciAgICAg ICAjeGZmMGIgI3gwQykgOzsgWEtfQ2xlYXIgVktfQ0xFQVIKKyAgKGRlZmluZS14ayB4ay1y ZXR1cm4gICAgICAjeGZmMGQgI3gwRCkgOzsgWEtfUmV0dXJuIFZLX1JFVFVSTgorICAoZGVm aW5lLXhrIHhrLXBhdXNlICAgICAgICN4ZmYxMyAjeDEzKSA7OyBYS19QYXVzZSBWS19QQVVT RQorICAoZGVmaW5lLXhrIHhrLXNjcm9sbC1sb2NrICN4ZmYxNCAjeDkxKSA7OyBYS19TY3Jv bGxfTG9jayBWS19TQ1JPTEwKKyAgKGRlZmluZS14ayB4ay1lc2NhcGUgICAgICAjeGZmMUIg I3gxQikgOzsgWEtfRXNjYXBlIFZLX0VTQ0FQRQorICAoZGVmaW5lLXhrIHhrLWRlbGV0ZSAg ICAgICN4ZmZmZiAjeDJFKSA7OyBYS19EZWxldGUgVktfREVMRVRFCisKKyAgOzsgQ3Vyc29y IGNvbnRyb2wgYW5kIG1vdGlvbgorICAoZGVmaW5lLXhrIHhrLWhvbWUgICAgICAgICN4ZmY1 MCAjeDI0KSA7OyBYS19Ib21lIFZLX0hPTUUKKyAgKGRlZmluZS14ayB4ay1sZWZ0ICAgICAg ICAjeGZmNTEgI3gyNSkgOzsgWEtfTGVmdCBWS19MRUZUCisgIChkZWZpbmUteGsgeGstdXAg ICAgICAgICAgI3hmZjUyICN4MjYpIDs7IFhLX1VwIFZLX1VQCisgIChkZWZpbmUteGsgeGst cmlnaHQgICAgICAgI3hmZjUzICN4MjcpIDs7IFhLX1JpZ2h0IFZLX1JJR0hUCisgIChkZWZp bmUteGsgeGstZG93biAgICAgICAgI3hmZjU0ICN4MjgpIDs7IFhLX0Rvd24gVktfRE9XTgor ICAoZGVmaW5lLXhrIHhrLXBhZ2UtdXAgICAgICN4ZmY1NSAjeDIxKSA7OyBYS19QYWdlX1Vw IFZLX1BSSU9SCisgIChkZWZpbmUteGsgeGstcGFnZS1kb3duICAgI3hmZjU2ICN4MjIpIDs7 IFhLX1BhZ2VfRG93biBWS19ORVhUCisgIChkZWZpbmUteGsgeGstZW5kICAgICAgICAgI3hm ZjU3ICN4MjMpIDs7IFhLX0VuZCBWS19FTkQKKyAgKGRlZmluZS14ayB4ay1iZWdpbiAgICAg ICAjeGZmNTggI3gyNCkgOzsgWEtfQmVnaW4gVktfSE9NRQorCisgIDs7IFNwZWNpYWwgV2lu ZG93cyBrZXlib2FyZCBrZXlzCisgIChkZWZpbmUteGsgeGstd2luLWwgICAgICAgI3hGRjVC ICN4NUIpIDs7IFhLX1dpbl9MIFZLX0xXSU4KKyAgKGRlZmluZS14ayB4ay13aW4tciAgICAg ICAjeEZGNUMgI3g1QykgOzsgWEtfV2luX1IgVktfUldJTgorICAoZGVmaW5lLXhrIHhrLWFw cCAgICAgICAgICN4RkY1RCAjeDVEKSA7OyBYS19BcHAgVktfQVBQUworCisgIDs7IE1pc2Mg ZnVuY3Rpb25zCisgIChkZWZpbmUteGsgeGstc2VsZWN0ICAgICAgI3hmZjYwICN4MjkpIDs7 IFhLX1NlbGVjdCBWS19TRUxFQ1QKKyAgKGRlZmluZS14ayB4ay1wcmludCAgICAgICAjeGZm NjEgI3gyQSkgOzsgWEtfUHJpbnQgVktfUFJJTlQKKyAgKGRlZmluZS14ayB4ay1pbnNlcnQg ICAgICAjeGZmNjQgI3gyRCkgOzsgWEtfSW5zZXJ0IFZLX0lOU0VSVAorICAoZGVmaW5lLXhr IHhrLW51bS1sb2NrICAgICN4ZmY3ZiAjeDkwKSA7OyBYS19OdW1fTG9jayBWS19OVU1MT0NL CisKKyAgOzsgS2V5cGFkCisgIDs7IFRPRE86IENoZWNrIHZhbHVlcyBmb3IgTVMtV2luZG93 cworICAoZGVmaW5lLXhrIHhrLWtwLWVudGVyICAgICN4ZmY4ZCBuaWwpIDs7IFhLX0tQX0Vu dGVyID8/PworICAoZGVmaW5lLXhrIHhrLWtwLW11bHRpcGx5ICN4ZmZhYSBuaWwpIDs7IFhL X0tQX011bHRpcGx5ID8/PworICAoZGVmaW5lLXhrIHhrLWtwLWFkZCAgICAgICN4ZmZhYiBu aWwpIDs7IFhLX0tQX0FkZCA/Pz8KKyAgKGRlZmluZS14ayB4ay1rcC1zdWJ0cmFjdCAjeGZm YWQgbmlsKSA7OyBYS19LUF9TdWJ0cmFjdCA/Pz8KKyAgKGRlZmluZS14ayB4ay1rcC1kZWNp bWFsICAjeGZmYWUgbmlsKSA7OyBYS19LUF9EZWNpbWFsID8/PworICAoZGVmaW5lLXhrIHhr LWtwLWRpdmlkZSAgICN4ZmZhZiBuaWwpIDs7IFhLX0tQX0RpdmlkZSA/Pz8KKyAgKGRlZmlu ZS14ayB4ay1rcC0wICAgICAgICAjeGZmYjAgI3g2MCkgOzsgWEtfS1BfMCBWS19OVU1QQUQw CisgIChkZWZpbmUteGsgeGsta3AtMSAgICAgICAgI3hmZmIxICN4NjEpIDs7IFhLX0tQXzEg VktfTlVNUEFEMQorICAoZGVmaW5lLXhrIHhrLWtwLTIgICAgICAgICN4ZmZiMiAjeDYyKSA7 OyBYS19LUF8yIFZLX05VTVBBRDIKKyAgKGRlZmluZS14ayB4ay1rcC0zICAgICAgICAjeGZm YjMgI3g2MykgOzsgWEtfS1BfMyBWS19OVU1QQUQzCisgIChkZWZpbmUteGsgeGsta3AtNCAg ICAgICAgI3hmZmI0ICN4NjQpIDs7IFhLX0tQXzQgVktfTlVNUEFENAorICAoZGVmaW5lLXhr IHhrLWtwLTUgICAgICAgICN4ZmZiNSAjeDY1KSA7OyBYS19LUF81IFZLX05VTVBBRDUKKyAg KGRlZmluZS14ayB4ay1rcC02ICAgICAgICAjeGZmYjYgI3g2NikgOzsgWEtfS1BfNiBWS19O VU1QQUQ2CisgIChkZWZpbmUteGsgeGsta3AtNyAgICAgICAgI3hmZmI3ICN4NjcpIDs7IFhL X0tQXzcgVktfTlVNUEFENworICAoZGVmaW5lLXhrIHhrLWtwLTggICAgICAgICN4ZmZiOCAj eDY4KSA7OyBYS19LUF84IFZLX05VTVBBRDgKKyAgKGRlZmluZS14ayB4ay1rcC05ICAgICAg ICAjeGZmYjkgI3g2OSkgOzsgWEtfS1BfOSBWS19OVU1QQUQ5CisKKyAgOzsgRnVuY3Rpb24g a2V5cworICAoZGVmaW5lLXhrIHhrLWYxICAgICAgICAgICN4ZmZiZSAjeDcwKSA7OyBYS19G MSBWS19GMQorICAoZGVmaW5lLXhrIHhrLWYyICAgICAgICAgICN4ZmZiZiAjeDcxKSA7OyBY S19GMiBWS19GMgorICAoZGVmaW5lLXhrIHhrLWYzICAgICAgICAgICN4ZmZjMCAjeDcyKSA7 OyBYS19GMyBWS19GMworICAoZGVmaW5lLXhrIHhrLWY0ICAgICAgICAgICN4ZmZjMSAjeDcz KSA7OyBYS19GNCBWS19GNAorICAoZGVmaW5lLXhrIHhrLWY1ICAgICAgICAgICN4ZmZjMiAj eDc0KSA7OyBYS19GNSBWS19GNQorICAoZGVmaW5lLXhrIHhrLWY2ICAgICAgICAgICN4ZmZj MyAjeDc1KSA7OyBYS19GNiBWS19GNgorICAoZGVmaW5lLXhrIHhrLWY3ICAgICAgICAgICN4 ZmZjNCAjeDc2KSA7OyBYS19GNyBWS19GNworICAoZGVmaW5lLXhrIHhrLWY4ICAgICAgICAg ICN4ZmZjNSAjeDc3KSA7OyBYS19GOCBWS19GOAorICAoZGVmaW5lLXhrIHhrLWY5ICAgICAg ICAgICN4ZmZjNiAjeDc4KSA7OyBYS19GOSBWS19GOQorICAoZGVmaW5lLXhrIHhrLWYxMCAg ICAgICAgICN4ZmZjNyAjeDc5KSA7OyBYS19GMTAgVktfRjEwCisgIChkZWZpbmUteGsgeGst ZjExICAgICAgICAgI3hmZmM4ICN4N0EpIDs7IFhLX0YxMSBWS19GMTEKKyAgKGRlZmluZS14 ayB4ay1mMTIgICAgICAgICAjeGZmYzkgI3g3QikgOzsgWEtfRjEyIFZLX0YxMgorICAoZGVm aW5lLXhrIHhrLWYxMyAgICAgICAgICN4ZmZjYSAjeDdDKSA7OyBYS19GMTMgVktfRjEzCisg IChkZWZpbmUteGsgeGstZjE0ICAgICAgICAgI3hmZmNiICN4N0QpIDs7IFhLX0YxNCBWS19G MTQKKyAgKGRlZmluZS14ayB4ay1mMTUgICAgICAgICAjeGZmY2MgI3g3RSkgOzsgWEtfRjE1 IFZLX0YxNQorICAoZGVmaW5lLXhrIHhrLWYxNiAgICAgICAgICN4ZmZjZCAjeDdGKSA7OyBY S19GMTYgVktfRjE2CisgIChkZWZpbmUteGsgeGstZjE3ICAgICAgICAgI3hmZmNlICN4ODAp IDs7IFhLX0YxNyBWS19GMTcKKyAgKGRlZmluZS14ayB4ay1mMTggICAgICAgICAjeGZmY2Yg I3g4MSkgOzsgWEtfRjE4IFZLX0YxOAorICAoZGVmaW5lLXhrIHhrLWYxOSAgICAgICAgICN4 ZmZkMCAjeDgyKSA7OyBYS19GMTkgVktfRjE5CisgIChkZWZpbmUteGsgeGstZjIwICAgICAg ICAgI3hmZmQxICN4ODMpIDs7IFhLX0YyMCBWS19GMjAKKyAgKGRlZmluZS14ayB4ay1mMjEg ICAgICAgICAjeGZmZDIgI3g4NCkgOzsgWEtfRjIxIFZLX0YyMQorICAoZGVmaW5lLXhrIHhr LWYyMiAgICAgICAgICN4ZmZkMyAjeDg1KSA7OyBYS19GMjIgVktfRjIyCisgIChkZWZpbmUt eGsgeGstZjIzICAgICAgICAgI3hmZmQ0ICN4ODYpIDs7IFhLX0YyMyBWS19GMjMKKyAgKGRl ZmluZS14ayB4ay1mMjQgICAgICAgICAjeGZmZDUgI3g4NykgOzsgWEtfRjI0IFZLX0YyNAor CisgIDs7IE1vZGlmaWVyIGtleXMKKyAgKGRlZmluZS14ayB4ay1zaGlmdC1sICAgICAjeGZm ZTEgI3hBMCkgOzsgWEtfU2hpZnRfTCBWS19MU0hJRlQKKyAgKGRlZmluZS14ayB4ay1zaGlm dC1yICAgICAjeGZmZTIgI3hBMSkgOzsgWEtfU2hpZnRfUiBWS19SU0hJRlQKKyAgKGRlZmlu ZS14ayB4ay1jb250cm9sLWwgICAjeGZmZTMgI3hBMikgOzsgWEtfQ29udHJvbF9MIFZLX0xD T05UUk9MCisgIChkZWZpbmUteGsgeGstY29udHJvbC1yICAgI3hmZmU0ICN4QTMpIDs7IFhL X0NvbnRyb2xfUiBWS19SQ09OVFJPTAorICAoZGVmaW5lLXhrIHhrLWNhcHMtbG9jayAgICN4 ZmZlNSAjeDE0KSA7OyBYS19DYXBzX0xvY2sgVktfQ0FQSVRBTAorICAoZGVmaW5lLXhrIHhr LW1ldGFsLWwgICAgICN4ZmZlNyBuaWwpIDs7IFhLX01ldGFfTAorICAoZGVmaW5lLXhrIHhr LW1ldGFsLXQgICAgICN4ZmZlZSBuaWwpIDs7IFhLX01ldGFfUgorICAoZGVmaW5lLXhrIHhr LWFsdC1sICAgICAgICN4ZmZlOSAjeEE0KSA7OyBYS19BbHRfTCBWS19MTUVOVQorICAoZGVm aW5lLXhrIHhrLWFsdC1yICAgICAgICN4ZmZlYSAjeEE1KSA7OyBYS19BbHRfUiBWS19STUVO VQorICAoZGVmaW5lLXhrIHhrLXN1cGVyLWwgICAgICN4ZmZlYiBuaWwpIDs7IFhLX1N1cGVy X0wKKyAgKGRlZmluZS14ayB4ay1zdXBlci1yICAgICAjeGZmZWMgbmlsKSA7OyBYS19TdXBl cl9SCisgIChkZWZpbmUteGsgeGstaHlwZXItbCAgICAgI3hmZmVkIG5pbCkgOzsgWEtfSHlw ZXJfTAorICAoZGVmaW5lLXhrIHhrLWh5cGVyLXIgICAgICN4ZmZlZSBuaWwpIDs7IFhLX0h5 cGVyX1IKKworICA7OyBMYXRpbiAxCisgIDs7IEZvciBudW1iZXJzIGFuZCBsZXR0ZXJzLCBN Uy1XaW5kb3dzIGRvZXMgbm90IGRlZmluZSBjb25zdGFudCBuYW1lcy4KKyAgOzsgWDExIGRl ZmluZXMgZGlzdGluY3Qga2V5c3ltcyBmb3IgbG93ZXJjYXNlIGFuZCB1cHBlcmNhc2UKKyAg OzsgbGV0dGVycy4gIFdlIHVzZSBvbmx5IHRoZSB1cHBlcmNhc2Ugb25lcy4gIEV2ZW50cyB3 aXRoIGxvd2VyY2FzZQorICA7OyBsZXR0ZXJzIGFyZSBjb252ZXJ0ZWQgdG8gdXBwZXJjYXNl LgorICAoZGVmaW5lLXhrIHhrLXNwYWNlICAgICAgICN4MDAyMCAjeDIwKSA7OyBYS19zcGFj ZSBWS19TUEFDRQorICAoZGVmaW5lLXhrIHhrLTAgICAgICAgICAgICN4MDAzMCAjeDMwKSA7 OyBYS18wCisgIChkZWZpbmUteGsgeGstMSAgICAgICAgICAgI3gwMDMxICN4MzEpIDs7IFhL XzEKKyAgKGRlZmluZS14ayB4ay0yICAgICAgICAgICAjeDAwMzIgI3gzMikgOzsgWEtfMgor ICAoZGVmaW5lLXhrIHhrLTMgICAgICAgICAgICN4MDAzMyAjeDMzKSA7OyBYS18zCisgIChk ZWZpbmUteGsgeGstNCAgICAgICAgICAgI3gwMDM0ICN4MzQpIDs7IFhLXzQKKyAgKGRlZmlu ZS14ayB4ay01ICAgICAgICAgICAjeDAwMzUgI3gzNSkgOzsgWEtfNQorICAoZGVmaW5lLXhr IHhrLTYgICAgICAgICAgICN4MDAzNiAjeDM2KSA7OyBYS182CisgIChkZWZpbmUteGsgeGst NyAgICAgICAgICAgI3gwMDM3ICN4MzcpIDs7IFhLXzcKKyAgKGRlZmluZS14ayB4ay04ICAg ICAgICAgICAjeDAwMzggI3gzOCkgOzsgWEtfOAorICAoZGVmaW5lLXhrIHhrLTkgICAgICAg ICAgICN4MDAzOSAjeDM5KSA7OyBYS185CisgIChkZWZpbmUteGsgeGstYSAgICAgICAgICAg I3gwMDQxICN4NDEpIDs7IFhLX0EKKyAgKGRlZmluZS14ayB4ay1iICAgICAgICAgICAjeDAw NDIgI3g0MikgOzsgWEtfQgorICAoZGVmaW5lLXhrIHhrLWMgICAgICAgICAgICN4MDA0MyAj eDQzKSA7OyBYS19DCisgIChkZWZpbmUteGsgeGstZCAgICAgICAgICAgI3gwMDQ0ICN4NDQp IDs7IFhLX0QKKyAgKGRlZmluZS14ayB4ay1lICAgICAgICAgICAjeDAwNDUgI3g0NSkgOzsg WEtfRQorICAoZGVmaW5lLXhrIHhrLWYgICAgICAgICAgICN4MDA0NiAjeDQ2KSA7OyBYS19G CisgIChkZWZpbmUteGsgeGstZyAgICAgICAgICAgI3gwMDQ3ICN4NDcpIDs7IFhLX0cKKyAg KGRlZmluZS14ayB4ay1oICAgICAgICAgICAjeDAwNDggI3g0OCkgOzsgWEtfSAorICAoZGVm aW5lLXhrIHhrLWkgICAgICAgICAgICN4MDA0OSAjeDQ5KSA7OyBYS19JCisgIChkZWZpbmUt eGsgeGstaiAgICAgICAgICAgI3gwMDRBICN4NEEpIDs7IFhLX0oKKyAgKGRlZmluZS14ayB4 ay1rICAgICAgICAgICAjeDAwNEIgI3g0QikgOzsgWEtfSworICAoZGVmaW5lLXhrIHhrLWwg ICAgICAgICAgICN4MDA0QyAjeDRDKSA7OyBYS19MCisgIChkZWZpbmUteGsgeGstbSAgICAg ICAgICAgI3gwMDREICN4NEQpIDs7IFhLX00KKyAgKGRlZmluZS14ayB4ay1uICAgICAgICAg ICAjeDAwNEUgI3g0RSkgOzsgWEtfTgorICAoZGVmaW5lLXhrIHhrLW8gICAgICAgICAgICN4 MDA0RiAjeDRGKSA7OyBYS19PCisgIChkZWZpbmUteGsgeGstcCAgICAgICAgICAgI3gwMDUw ICN4NTApIDs7IFhLX1AKKyAgKGRlZmluZS14ayB4ay1xICAgICAgICAgICAjeDAwNTEgI3g1 MSkgOzsgWEtfUQorICAoZGVmaW5lLXhrIHhrLXIgICAgICAgICAgICN4MDA1MiAjeDUyKSA7 OyBYS19SCisgIChkZWZpbmUteGsgeGstcyAgICAgICAgICAgI3gwMDUzICN4NTMpIDs7IFhL X1MKKyAgKGRlZmluZS14ayB4ay10ICAgICAgICAgICAjeDAwNTQgI3g1NCkgOzsgWEtfVAor ICAoZGVmaW5lLXhrIHhrLXUgICAgICAgICAgICN4MDA1NSAjeDU1KSA7OyBYS19VCisgIChk ZWZpbmUteGsgeGstdiAgICAgICAgICAgI3gwMDU2ICN4NTYpIDs7IFhLX1YKKyAgKGRlZmlu ZS14ayB4ay13ICAgICAgICAgICAjeDAwNTcgI3g1NykgOzsgWEtfVworICAoZGVmaW5lLXhr IHhrLXggICAgICAgICAgICN4MDA1OCAjeDU4KSA7OyBYS19YCisgIChkZWZpbmUteGsgeGst eSAgICAgICAgICAgI3gwMDU5ICN4NTkpIDs7IFhLX1kKKyAgKGRlZmluZS14ayB4ay16ICAg ICAgICAgICAjeDAwNUEgI3g1QSkpOzsgWEtfWgorCisoZGVmdW4gbGxrLWluaXQgKCkKKyAg IkluaXRpYWxpemUgbG93IGxldmVsIGtleSBldmVudHMuCisKK0ZpbGxzIHRoZSBgbGxrLWtl eXN5bXMnIGxpc3QsIGFuZCBiaW5kcyB0aGUgYGxvdy1sZXZlbC1rZXknIGV2ZW50Cit0byB0 aGUgYGxsay1oYW5kbGUnIGZ1bmN0aW9uLiAgUmVzZXRzIHRoZSBgbGxrLWJpbmRpbmdzJyBs aXN0LgorQmVzaWRlcyBjYWxsaW5nIHRoaXMgZnVuY3Rpb24sIHlvdSBuZWVkIHRvIHNldCBg ZW5hYmxlLWxvdy1sZXZlbC1rZXktZXZlbnRzJwordG8gYSBub24tbmlsIHZhbHVlLiIKKyAg KGludGVyYWN0aXZlKQorICAobGxrLWRlZmluZS1rZXlzeW1zKQorICAoZGVmaW5lLWtleSBz cGVjaWFsLWV2ZW50LW1hcCBbbG93LWxldmVsLWtleV0gJ2xsay1oYW5kbGUpCisgIChzZXRx IGxsay1iaW5kaW5ncyBuaWwpKQorCisoZGVmc3Vic3QgZXZlbnQtaXMta2V5LXByZXNzIChl dmVudCkKKyAgIlJldHVybiB0aGUgdmFsdWUgb2YgdGhlIElTLUtFWS1QUkVTUyBmaWVsZCBv ZiB0aGUgRVZFTlQsIGEgbG93IGxldmVsIGtleSBldmVudC4iCisgIChkZWNsYXJlIChzaWRl LWVmZmVjdC1mcmVlIHQpKQorICAoaWYgKGNvbnNwIGV2ZW50KSAobnRoIDEgZXZlbnQpKSkK KworKGRlZnN1YnN0IGV2ZW50LWtleXN5bSAoZXZlbnQpCisgICJSZXR1cm4gdGhlIHZhbHVl IG9mIHRoZSBLRVkgZmllbGQgb2YgdGhlIEVWRU5ULCBhIGxvdyBsZXZlbCBrZXkgZXZlbnQu IgorICAoZGVjbGFyZSAoc2lkZS1lZmZlY3QtZnJlZSB0KSkKKyAgKGlmIChjb25zcCBldmVu dCkgKG50aCAyIGV2ZW50KSkpCisKKyhkZWZzdWJzdCBldmVudC1tb2RpZmllciAoZXZlbnQp CisgICJSZXR1cm4gdGhlIHZhbHVlIG9mIHRoZSBNT0RJRklFUiBmaWVsZCBvZiB0aGUgRVZF TlQsIGEgbG93IGxldmVsIGtleSBldmVudC4iCisgIChkZWNsYXJlIChzaWRlLWVmZmVjdC1m cmVlIHQpKQorICAoaWYgKGNvbnNwIGV2ZW50KSAobnRoIDMgZXZlbnQpKSkKKworKGRlZnN1 YnN0IGV2ZW50LXRpbWUgKGV2ZW50KQorICAiUmV0dXJuIHRoZSB2YWx1ZSBvZiB0aGUgVElN RSBmaWVsZCBvZiB0aGUgRVZFTlQsIGEgbG93IGxldmVsIGtleSBldmVudC4iCisgIChkZWNs YXJlIChzaWRlLWVmZmVjdC1mcmVlIHQpKQorICAoaWYgKGNvbnNwIGV2ZW50KSAobnRoIDQg ZXZlbnQpKSkKKworOzsgRm9yIGV4YW1wbGU6Cis7OyBCaW5kIGtleSB0YXAgdG8gY29tbWFu ZAorOzsgICAgKGxsay1iaW5kICd0YXAgJ3hrLXNoaWZ0LWwgJ2RlbGV0ZS1vdGhlci13aW5k b3dzKQorOzsgQmluZCBtb2RpZmllciB0YXAgdG8gY29tbWFuZAorOzsgICAgIChsbGstYmlu ZCAndGFwICdzaGlmdCAnZGVsZXRlLW90aGVyLXdpbmRvd3MpCis7OyBCaW5kIHRhcCB0byBo eXBlciBtb2RpZmllcgorOzsgICAgICAobGxrLWJpbmQgJ3RhcCAneGstc2hpZnQtciAobGFt YmRhICgpCis7OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtZXNzYWdlICJILS4u LiIpCis7OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZXRxIHVucmVhZC1jb21t YW5kLWV2ZW50cworOzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYXBw ZW5kIChldmVudC1hcHBseS1oeXBlci1tb2RpZmllciBuaWwpIG5pbCkpKSkKKzs7IENhbiBi aW5kIHRvIGEgY29tbWFuZCBvciBmdW5jdGlvbgorKGRlZnVuIGxsay1iaW5kIChhY3Rpb24g a2V5IGZ1bmN0aW9uKQorICAiQmluZCBhIGNvbW1hbmQgb3IgZnVuY3Rpb24gdG8gYSBsb3cg bGV2ZWwga2V5IGV2ZW50LgorCitUaGUgb25seSBhY3Rpb24gc3VwcG9ydGVkIGN1cnJlbnRs eSBpcyBgdGFwJy4gIFRoZSBrZXkgY2FuIGJlIGEga2V5c3ltCitzeW1ib2wsIG9yIGEgbW9k aWZpZXIgc3ltYm9sIChzaGlmdCwgY29udHJvbCwgYWx0LCBtZXRhLCBoeXBlciwgc3VwZXIp LgorSWYgdGhlcmUgaXMgbm8ga2V5c3ltIHN5bWJvbCBmb3IgYSBrZXksIHVzZSB0aGUga2V5 c3ltIG51bWJlci4iCisgIChwdXNoIChsaXN0IGFjdGlvbiBrZXkgZnVuY3Rpb24pIGxsay1i aW5kaW5ncykpCisKKzs7IFdlIHN0b3JlIHRoZSBsYXN0IGV2ZW50cyAoa2V5L21vZGlmaWVy IGlzLXByZXNzIHRpbWVzdGFtcCkgaGVyZSB0bworOzsgdGVzdCBmb3IgbXVsdGl0YXAuCiso ZGVmdmFyIGxsay1ldmVudHMgbmlsCisgICJJbnRlcm5hbCB2YXJpYWJsZSBmb3IgZGV0ZWN0 aW5nIHRhcHMuIikKKworOzsgSWYgcG9zaXRpdmUsIHJldHVybiBrZXkgKHhrLXNoaWZ0LWws IGV0YykgZWxzZSByZXR1cm4gbmlsLgorKGRlZnVuIGxsay1kZXRlY3Qtbi10YXAgKG4gdGlt ZW91dCkKKyAgIkludGVybmFsIGZ1bmN0aW9uIHRvIGRldGVjdCBuLXRhcCBrZXlzLiIKKyAg KGxldCAoa2V5CisgICAgICAgIChpcy1wcmVzcyAoZXZlbnQtaXMta2V5LXByZXNzIGxhc3Qt aW5wdXQtZXZlbnQpKQorICAgICAgICA7OyBjb252ZXJ0IG51bWJlciB0byBrZXlzeW0gc3lt Ym9sCisgICAgICAgIChrZXlzeW0gKGNkciAoYXNzb2MgKGV2ZW50LWtleXN5bSBsYXN0LWlu cHV0LWV2ZW50KSBsbGsta2V5c3ltcykpKQorICAgICAgICAodGltZXN0YW1wIChldmVudC10 aW1lIGxhc3QtaW5wdXQtZXZlbnQpKQorICAgICAgICAobW9kaWZpZXIgKGV2ZW50LW1vZGlm aWVyIGxhc3QtaW5wdXQtZXZlbnQpKSkKKworICAgIDs7IGlmIGVodGUgaXMgbm8gc3ltYm9s IGZvciB0aGlzIGtleSwgdXNlIGl0cyBrZXlzeW0gbnVtYmVyCisgICAgKHVubGVzcyBrZXlz eW0gKHNldHEga2V5c3ltIChldmVudC1rZXlzeW0gbGFzdC1pbnB1dC1ldmVudCkpKQorCisg ICAgOzsgbG9vayBpbiBsbGstdGFwLWtleXMgZm9yIHRoZSBrZXksIHRoZW4gdGhlIG1vZGlm aWVyCisgICAgKGlmIChtZW1iZXIga2V5c3ltIGxsay10YXAta2V5cykKKyAgICAgICAgKHNl dHEga2V5IGtleXN5bSkKKyAgICAgIChpZiAobWVtYmVyIG1vZGlmaWVyIGxsay10YXAta2V5 cykKKyAgICAgICAgICAoc2V0cSBrZXkgbW9kaWZpZXIpKSkKKworICAgIChpZiAobm90IGtl eSkKKyAgICAgICAgOzsgS2V5IG5vdCBpbiB0YXAgbGlzdCwgY2xlYXIgaGlzdG9yeQorICAg ICAgICAoc2V0cSBsbGstZXZlbnRzIG5pbCkKKyAgICAgIDs7IENsZWFyIGl0IGFsc28gaWYg dGhlIGZpcnN0IGVsZW1lbnQgaXMgZnJvbSBhIGRpZmZlcmVudCBrZXkKKyAgICAgIChhbmQg bGxrLWV2ZW50cworICAgICAgICAgICAobm90IChlcXVhbCAoY2FyIChjYXIgbGxrLWV2ZW50 cykpIGtleSkpCisgICAgICAgICAgIChzZXRxIGxsay1ldmVudHMgbmlsKSkKKyAgICAgIChw dXNoIChsaXN0IGtleSBpcy1wcmVzcyB0aW1lc3RhbXApIGxsay1ldmVudHMpCisgICAgICA7 OyBPbmx5IGNhcmUgYWJvdXQgbGFzdCAyeE4gZXZlbnRzCisgICAgICAobnRha2UgKCogMiBu KSBsbGstZXZlbnRzKQorICAgICAgOzsgSWYgd2UgaGF2ZToKKyAgICAgIDs7IC0gRXhhY3Rs eSAyICogbiBldmVudHMuCisgICAgICA7OyAtIGRvd24sIHVwLCBkb3duLCB1cCwgLi4uCisg ICAgICA7OyAtIG5vdCB0d28gbXVjaCB0aW1lIGJldHdlZW4gZmlyc3QgYW5kIGxhc3QKKyAg ICAgIChhbmQgKGVxICgqIDIgbikgKGxlbmd0aCBsbGstZXZlbnRzKSkKKyAgICAgICAgICAg KGNsLWV2ZXJ5ICdlcQorICAgICAgICAgICAgICAgICAgICAgKG50YWtlICgqIDIgbikKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAobGlzdCBuaWwgdCBuaWwgdCBuaWwgdCBuaWwg dAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5pbCB0IG5pbCB0IG5pbCB0 IG5pbCB0KSkKKyAgICAgICAgICAgICAgICAgICAgIChtYXBjYXIgJ2NsLXNlY29uZCBsbGst ZXZlbnRzKSkKKyAgICAgICAgICAgKDwgKC0gKGNsLXRoaXJkIChjbC1maXJzdCBsbGstZXZl bnRzKSkKKyAgICAgICAgICAgICAgICAgKGNsLXRoaXJkIChjYXIgKGxhc3QgbGxrLWV2ZW50 cykpKSkKKyAgICAgICAgICAgICAgdGltZW91dCkKKyAgICAgICAgICAgKHByb2duCisgICAg ICAgICAgICAgKHNldHEgbGxrLWV2ZW50cyBuaWwpCisgICAgICAgICAgICAga2V5KSkpKSkK KworKGRlZnVuIGRlc2NyaWJlLWxvdy1sZXZlbC1rZXkgKCkKKyAgIldhaXQgZm9yIGtleSBw cmVzcyBhbmQgZGVzY3JpYmUgdGhlIGxvdyBsZXZlbCBrZXkgZXZlbnQgaXQgZ2VuZXJhdGVz LiIKKyAgKGludGVyYWN0aXZlKQorICAoc2V0cSBsbGstZGVzY3JpYmUtbmV4dC1wcmVzcyB0 KSkKKworKGRlZnVuIGxsay1zaG93LWV2ZW50LWRlc2NyaXB0aW9uICgpCisgICJTaG93IGlu Zm9ybWF0aW9uIGFib3V0IHRoZSBsYXN0IGxvdyBsZXZlbCBrZXkgZXZlbnQuIgorICAoc2V0 cSBsbGstZGVzY3JpYmUtbmV4dC1wcmVzcyBuaWwpCisgICh3aXRoLWhlbHAtd2luZG93ICho ZWxwLWJ1ZmZlcikKKyAgICAoaW5zZXJ0ICJcbiIpCisgICAgKGxldCogKCh4ayAoZXZlbnQt a2V5c3ltIGxhc3QtaW5wdXQtZXZlbnQpKQorICAgICAgICAgICAoc3ltIChhc3NvYyB4ayBs bGsta2V5c3ltcykpKQorICAgICAgKGluc2VydCAoZm9ybWF0ICJLZXlzeW0gbnVtYmVyOiAl ZCAoI3glWCksXG4iIHhrIHhrKSkKKyAgICAgIChpZiBzeW0KKyAgICAgICAgICAoaW5zZXJ0 IChmb3JtYXQgIndoaWNoIGNvcnJlc3BvbmRzIHRvIG5hbWVkIGtleSAlcy5cblxuIiAoY2Ry IHN5bSkpKQorICAgICAgICAoaW5zZXJ0ICJ3aGljaCBkb2VzIG5vdCBjb3JyZXNwb25kIHRv IGFueSBrbm93biBuYW1lZCBrZXkuXG5cbiIpKQorICAgICAgKGlmIChldmVudC1tb2RpZmll ciBsYXN0LWlucHV0LWV2ZW50KQorICAgICAgICAgIChpbnNlcnQgKGZvcm1hdCAiVGhpcyBr ZXkgY29ycmVzcG9uZHMgdG8gdGhlICVzIG1vZGlmaWVyLlxuXG4iCisgICAgICAgICAgICAg ICAgICAgICAgICAgIChldmVudC1tb2RpZmllciBsYXN0LWlucHV0LWV2ZW50KSkpCisgICAg ICAgIChpbnNlcnQgIlRoaXMga2V5IGRvZXMgbm90IGNvcnJlc3BvbmQgdG8gYSBtb2RpZmll ci5cblxuIikpCisgICAgICAoaW5zZXJ0ICJTZWUgdGhlIHZhbHVlIG9mIHRoZSBgbGxrLWtl eXN5bXMnIHZhcmlhYmxlIGZvciBhIGxpc3Qgb2Yga25vd24ga2V5cy5cbiIpKSkpCisKKyhk ZWZ1biBsbGstaGFuZGxlICgpCisgICJJbnRlcm5hbCBmdW5jdGlvbiB0byBoYW5kbGUgbG93 IGxldmVsIGtleSBldmVudHMuIgorICAoaW50ZXJhY3RpdmUpCisgIChpZiAoYW5kIChldmVu dC1pcy1rZXktcHJlc3MgbGFzdC1pbnB1dC1ldmVudCkKKyAgICAgICAgICAgbGxrLWRlc2Ny aWJlLW5leHQtcHJlc3MpCisgICAgICAobGxrLXNob3ctZXZlbnQtZGVzY3JpcHRpb24pCisg ICAgKGxldCAoKHRhcC1rZXkgKGxsay1kZXRlY3Qtbi10YXAKKyAgICAgICAgICAgICAgICAg ICAgbGxrLXRhcC1jb3VudAorICAgICAgICAgICAgICAgICAgICBsbGstdGFwLXRpbWVvdXQp KSkKKyAgICAgICh3aGVuIHRhcC1rZXkKKyAgICAgICAgKGxldCAoKGZ1bmMgKGNsLXRoaXJk CisgICAgICAgICAgICAgICAgICAgICAoc2VxLWZpbmQKKyAgICAgICAgICAgICAgICAgICAg ICAobGFtYmRhIChiKQorICAgICAgICAgICAgICAgICAgICAgICAgKGFuZCAoZXEgKGNsLWZp cnN0IGIpICd0YXApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlcSAoY2wtc2Vj b25kIGIpIHRhcC1rZXkpKSkKKyAgICAgICAgICAgICAgICAgICAgICBsbGstYmluZGluZ3Mp KSkpCisgICAgICAgICAgKGNvbmQKKyAgICAgICAgICAgKChjb21tYW5kcCBmdW5jKSAoY2Fs bC1pbnRlcmFjdGl2ZWx5IGZ1bmMpKQorICAgICAgICAgICAoKGZ1bmN0aW9ucCBmdW5jKSAo ZnVuY2FsbCBmdW5jKSkpKSkpKSkKZGlmZiAtLWdpdCBhL3NyYy9ndGt1dGlsLmMgYi9zcmMv Z3RrdXRpbC5jCmluZGV4IGQ1NzYyN2YxNTJmLi44NmQ0MzIxY2YzNSAxMDA2NDQKLS0tIGEv c3JjL2d0a3V0aWwuYworKysgYi9zcmMvZ3RrdXRpbC5jCkBAIC05OCw2ICs5OCw3IEBAIEdf REVGSU5FX1RZUEUgKEVtYWNzTWVudUJhciwgZW1hY3NfbWVudV9iYXIsIEdUS19UWVBFX01F TlVfQkFSKQogc3RhdGljIHZvaWQgeGdfaW1fY29udGV4dF9wcmVlZGl0X2NoYW5nZWQgKEd0 a0lNQ29udGV4dCAqLCBncG9pbnRlcik7CiBzdGF0aWMgdm9pZCB4Z19pbV9jb250ZXh0X3By ZWVkaXRfZW5kIChHdGtJTUNvbnRleHQgKiwgZ3BvaW50ZXIpOwogc3RhdGljIGJvb2wgeGdf d2lkZ2V0X2tleV9wcmVzc19ldmVudF9jYiAoR3RrV2lkZ2V0ICosIEdka0V2ZW50ICosIGdw b2ludGVyKTsKK3N0YXRpYyBib29sIHhnX3dpZGdldF9rZXlfcmVsZWFzZV9ldmVudF9jYiAo R3RrV2lkZ2V0ICosIEdka0V2ZW50ICosIGdwb2ludGVyKTsKICNlbmRpZgogCiAjaWYgR1RL X0NIRUNLX1ZFUlNJT04gKDMsIDEwLCAwKQpAQCAtMTc0OSw2ICsxNzUwLDEyIEBAIHhnX2Ny ZWF0ZV9mcmFtZV93aWRnZXRzIChzdHJ1Y3QgZnJhbWUgKmYpCiAgIGdfc2lnbmFsX2Nvbm5l Y3QgKEdfT0JKRUNUICh3Zml4ZWQpLCAia2V5LXByZXNzLWV2ZW50IiwKIAkJICAgIEdfQ0FM TEJBQ0sgKHhnX3dpZGdldF9rZXlfcHJlc3NfZXZlbnRfY2IpLAogCQkgICAgTlVMTCk7CisK KyAgZ19zaWduYWxfY29ubmVjdCAoR19PQkpFQ1QgKHdmaXhlZCksICJrZXktcmVsZWFzZS1l dmVudCIsCisJCSAgICBHX0NBTExCQUNLICh4Z193aWRnZXRfa2V5X3JlbGVhc2VfZXZlbnRf Y2IpLAorCQkgICAgTlVMTCk7CisKKwogI2VuZGlmCiAKICAgewpAQCAtNjM3Niw2ICs2Mzgz LDUzIEBAIHhnX2ltX2NvbnRleHRfcHJlZWRpdF9lbmQgKEd0a0lNQ29udGV4dCAqaW1jLCBn cG9pbnRlciB1c2VyX2RhdGEpCiAgIGtiZF9idWZmZXJfc3RvcmVfZXZlbnQgKCZpbmV2KTsK IH0KIAorI2lmbmRlZiBIQVZFX1hJTlBVVDIKK3N0YXRpYyB2b2lkCit4Z19tYXliZV9zZW5k X2xvd19sZXZlbF9rZXlfZXZlbnQgKHN0cnVjdCBmcmFtZSAqZiwKKwkJCQkgICBHZGtFdmVu dCAqeGV2KQoreworICBHZGtFdmVudEtleSB4a2V5ID0geGV2LT5rZXk7CisgIGJvb2wgaXNf cHJlc3M7CisgIExpc3BfT2JqZWN0IGtleSwgbW9kaWZpZXI7CisgIHVuaW9uIGJ1ZmZlcmVk X2lucHV0X2V2ZW50IGluZXY7CisKKyAgaWYgKE5JTFAgKFZlbmFibGVfbG93X2xldmVsX2tl eV9ldmVudHMpKQorICAgIHJldHVybjsKKworICBzd2l0Y2ggKHhldi0+dHlwZSkKKyAgICB7 CisgICAgY2FzZSBHREtfS0VZX1BSRVNTOgorICAgICAgaXNfcHJlc3MgPSB0cnVlOworICAg ICAgYnJlYWs7CisgICAgY2FzZSBHREtfS0VZX1JFTEVBU0U6CisgICAgICBpc19wcmVzcyA9 IGZhbHNlOworICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgIHJldHVybjsKKyAg ICB9CisKKyAgbW9kaWZpZXIgPSB4X2dldF9tb2RpZmllcl9mb3Jfa2V5Y29kZSAoRlJBTUVf T1VUUFVUX0RBVEEgKGYpLT5kaXNwbGF5X2luZm8sCisJCQkJCSB4ZXYtPmtleS5oYXJkd2Fy ZV9rZXljb2RlKTsKKworICBpbnQga2V5c3ltID0geGtleS5rZXl2YWw7CisKKyAgaWYgKGtl eXN5bSA+PSBHREtfS0VZX2EgJiYga2V5c3ltIDw9IEdES19LRVlfeikKKyAgICBrZXlzeW0g LT0gR0RLX0tFWV9hIC0gR0RLX0tFWV9BOworCisgIGlmICgha2JkX2xvd19sZXZlbF9rZXlf aXNfZW5hYmxlZCAoa2V5c3ltLCBtb2RpZmllcikpCisgICAgcmV0dXJuOworCisgIGtleSA9 IG1ha2VfZml4bnVtIChrZXlzeW0pOworCisgIEVWRU5UX0lOSVQgKGluZXYuaWUpOworICBY U0VURlJBTUUgKGluZXYuaWUuZnJhbWVfb3Jfd2luZG93LCBmKTsKKyAgaW5ldi5pZS5raW5k ID0gTE9XX0xFVkVMX0tFWV9FVkVOVDsKKyAgaW5ldi5pZS50aW1lc3RhbXAgPSB4a2V5LnRp bWU7CisgIGluZXYuaWUuYXJnID0gbGlzdDMgKGlzX3ByZXNzID8gUXQgOiBRbmlsLCBrZXks IG1vZGlmaWVyKTsKKyAga2JkX2J1ZmZlcl9zdG9yZV9idWZmZXJlZF9ldmVudCAoJmluZXYs ICZ4Z19wZW5kaW5nX3F1aXRfZXZlbnQpOworfQorI2VuZGlmCisKIHN0YXRpYyBib29sCiB4 Z193aWRnZXRfa2V5X3ByZXNzX2V2ZW50X2NiIChHdGtXaWRnZXQgKndpZGdldCwgR2RrRXZl bnQgKmV2ZW50LAogCQkJICAgICAgZ3BvaW50ZXIgdXNlcl9kYXRhKQpAQCAtNjQwNCw2ICs2 NDU4LDEwIEBAIHhnX3dpZGdldF9rZXlfcHJlc3NfZXZlbnRfY2IgKEd0a1dpZGdldCAqd2lk Z2V0LCBHZGtFdmVudCAqZXZlbnQsCiAgIGlmICghZikKICAgICByZXR1cm4gdHJ1ZTsKIAor I2lmbmRlZiBIQVZFX1hJTlBVVDIKKyAgICB4Z19tYXliZV9zZW5kX2xvd19sZXZlbF9rZXlf ZXZlbnQgKGYsIGV2ZW50KTsKKyNlbmRpZgorCiAgIGlmIChwb3B1cF9hY3RpdmF0ZWQgKCkp CiAgICAgcmV0dXJuIHRydWU7CiAKQEAgLTY1NTcsNiArNjYxNSwyOSBAQCB4Z193aWRnZXRf a2V5X3ByZXNzX2V2ZW50X2NiIChHdGtXaWRnZXQgKndpZGdldCwgR2RrRXZlbnQgKmV2ZW50 LAogICByZXR1cm4gdHJ1ZTsKIH0KIAorc3RhdGljIGJvb2wKK3hnX3dpZGdldF9rZXlfcmVs ZWFzZV9ldmVudF9jYiAoR3RrV2lkZ2V0ICp3aWRnZXQsIEdka0V2ZW50ICpldmVudCwKKwkJ CQlncG9pbnRlciB1c2VyX2RhdGEpCit7CisjaWZuZGVmIEhBVkVfWElOUFVUMgorICBMaXNw X09iamVjdCB0YWlsLCB0ZW07CisgIHN0cnVjdCBmcmFtZSAqZiA9IE5VTEw7CisKKyAgRk9S X0VBQ0hfRlJBTUUgKHRhaWwsIHRlbSkKKyAgICB7CisgICAgICBpZiAoRlJBTUVfWF9QIChY RlJBTUUgKHRlbSkpCisJICAmJiAoRlJBTUVfR1RLX1dJREdFVCAoWEZSQU1FICh0ZW0pKSA9 PSB3aWRnZXQpKQorCXsKKwkgIGYgPSBYRlJBTUUgKHRlbSk7CisJICBicmVhazsKKwl9Cisg ICAgfQorICBpZiAoZikKKyAgICB4Z19tYXliZV9zZW5kX2xvd19sZXZlbF9rZXlfZXZlbnQg KGYsIGV2ZW50KTsKKyNlbmRpZgorICByZXR1cm4gdHJ1ZTsKK30KKwogYm9vbAogeGdfZmls dGVyX2tleSAoc3RydWN0IGZyYW1lICpmcmFtZSwgWEV2ZW50ICp4a2V5KQogewpkaWZmIC0t Z2l0IGEvc3JjL2tleWJvYXJkLmMgYi9zcmMva2V5Ym9hcmQuYwppbmRleCA2ZDI4ZGNhOWFl Yi4uY2YxM2U1ZTdlNjMgMTAwNjQ0Ci0tLSBhL3NyYy9rZXlib2FyZC5jCisrKyBiL3NyYy9r ZXlib2FyZC5jCkBAIC00Mjc0LDYgKzQyNzQsNyBAQCBrYmRfYnVmZmVyX2dldF9ldmVudCAo S0JPQVJEICoqa2JwLAogICAgICAgY2FzZSBDT05GSUdfQ0hBTkdFRF9FVkVOVDoKICAgICAg IGNhc2UgRk9DVVNfT1VUX0VWRU5UOgogICAgICAgY2FzZSBTRUxFQ1RfV0lORE9XX0VWRU5U OgorICAgICAgY2FzZSBMT1dfTEVWRUxfS0VZX0VWRU5UOgogICAgICAgICB7CiAgICAgICAg ICAgb2JqID0gbWFrZV9saXNweV9ldmVudCAoJmV2ZW50LT5pZSk7CiAgICAgICAgICAga2Jk X2ZldGNoX3B0ciA9IG5leHRfa2JkX2V2ZW50IChldmVudCk7CkBAIC03MTE4LDEyICs3MTE5 LDQ3IEBAIG1ha2VfbGlzcHlfZXZlbnQgKHN0cnVjdCBpbnB1dF9ldmVudCAqZXZlbnQpCiAg ICAgY2FzZSBQUkVFRElUX1RFWFRfRVZFTlQ6CiAgICAgICByZXR1cm4gbGlzdDIgKFFwcmVl ZGl0X3RleHQsIGV2ZW50LT5hcmcpOwogCisgICAgY2FzZSBMT1dfTEVWRUxfS0VZX0VWRU5U OgorICAgICAgcmV0dXJuIGxpc3RuICg2LCBRbG93X2xldmVsX2tleSwKKwkJICAgIFhDQVIg KGV2ZW50LT5hcmcpLCAvKiBQcmVzcyBvciByZWxlYXNlLiAgKi8KKwkJICAgIFhDQVIgKFhD RFIgKGV2ZW50LT5hcmcpKSwgLyogVGhlIGtleSBzeW1ib2wuICAqLworCQkgICAgWENBUiAo WENEUiAoWENEUiAoZXZlbnQtPmFyZykpKSwgLyogVGhlIG1vZGlmaWVyLiAgKi8KKwkJICAg IG1ha2VfZml4bnVtIChldmVudC0+dGltZXN0YW1wKSwKKwkJICAgIGV2ZW50LT5mcmFtZV9v cl93aW5kb3cpOworCiAgICAgICAvKiBUaGUgJ2tpbmQnIGZpZWxkIG9mIHRoZSBldmVudCBp cyBzb21ldGhpbmcgd2UgZG9uJ3QgcmVjb2duaXplLiAgKi8KICAgICBkZWZhdWx0OgogICAg ICAgZW1hY3NfYWJvcnQgKCk7CiAgICAgfQogfQogCitib29sCitrYmRfbG93X2xldmVsX2tl eV9pc19lbmFibGVkIChpbnQga2V5c3ltLCBMaXNwX09iamVjdCBtb2RpZmllcikKK3sKKyAg aWYgKFZlbmFibGVfbG93X2xldmVsX2tleV9ldmVudHMgPT0gUXQpCisgICAgcmV0dXJuIHRy dWU7CisKKyAgaWYgKFZlbmFibGVfbG93X2xldmVsX2tleV9ldmVudHMgPT0gUW5pbCkKKyAg ICByZXR1cm4gZmFsc2U7CisKKyAgaWYgKEZJWE5VTVAgKFZlbmFibGVfbG93X2xldmVsX2tl eV9ldmVudHMpKQorICAgIHJldHVybiBrZXlzeW0gPT0gWEZJWE5VTSAoVmVuYWJsZV9sb3df bGV2ZWxfa2V5X2V2ZW50cyk7CisKKyAgaWYgKFZlbmFibGVfbG93X2xldmVsX2tleV9ldmVu dHMgPT0gUW1vZGlmaWVycykKKyAgICByZXR1cm4gbW9kaWZpZXIgIT0gUW5pbDsKKworICBm b3IgKExpc3BfT2JqZWN0IGUgPSBWZW5hYmxlX2xvd19sZXZlbF9rZXlfZXZlbnRzOyBDT05T UCAoZSk7IGUgPSBYQ0RSIChlKSkKKyAgICB7CisgICAgICBMaXNwX09iamVjdCBjID0gWENB UiAoZSk7CisgICAgICBpZiAoRklYTlVNUCAoYykgJiYgWEZJWE5VTSAoYykgPT0ga2V5c3lt KQorCXJldHVybiB0cnVlOworICAgICAgaWYgKGMgPT0gUW1vZGlmaWVycyAmJiBtb2RpZmll ciAhPSBRbmlsKQorCXJldHVybiB0cnVlOworICAgIH0KKworICByZXR1cm4gZmFsc2U7Cit9 CisKIHN0YXRpYyBMaXNwX09iamVjdAogbWFrZV9saXNweV9tb3ZlbWVudCAoc3RydWN0IGZy YW1lICpmcmFtZSwgTGlzcF9PYmplY3QgYmFyX3dpbmRvdywgZW51bSBzY3JvbGxfYmFyX3Bh cnQgcGFydCwKIAkJICAgICBMaXNwX09iamVjdCB4LCBMaXNwX09iamVjdCB5LCBUaW1lIHQp CkBAIC0xMjkzMSw2ICsxMjk2NywzMyBAQCBzeW1zX29mX2tleWJvYXJkICh2b2lkKQogICBE RUZTWU0gKFFmaWxlX25vdGlmeSwgImZpbGUtbm90aWZ5Iik7CiAjZW5kaWYgLyogVVNFX0ZJ TEVfTk9USUZZICovCiAKKworICBERUZTWU0gKFFtb2RpZmllcnMsICJtb2RpZmllcnMiKTsK KworICBERUZWQVJfTElTUCAoImVuYWJsZS1sb3ctbGV2ZWwta2V5LWV2ZW50cyIsIFZlbmFi bGVfbG93X2xldmVsX2tleV9ldmVudHMsCisJICAgICAgIGRvYzogLyogSWYgbm9uLW5pbCwg cmVjZXB0aW9uIG9mIGxvdy1sZXZlbCBrZXkgZXZlbnRzIGlzIGVuYWJsZWQuCisKK1RoZSB2 YWx1ZSBjb25maWd1cmVzIHRoZSBzZXQgb2Yga2V5cyB0aGF0IGFyZSBoYW5kbGVkOgorCitJ ZiB0LCBzZW5kIGV2ZW50cyBmb3IgYWxsIGtleXMuCisKK0lmIGEgbnVtYmVyLCBzZW5kIGV2 ZW50cyBmb3IgdGhlIGNvcnJlc3BvbmRpbmcga2V5c3ltLiAgV2hlbiBjYWxsaW5nCisnbGxr LWluaXQnLCBhIHNldCBvZiB2YXJpYWJsZXMgd2l0aCB0aGUgeGstIHByZWZpeCBpcyBpbml0 aWFsaXplZCB3aXRoCit0aGUgbnVtZXJpYyB2YWx1ZXMgZm9yIGtleXN5bXMuICBCZWNhdXNl IHRoaXMgbnVtYmVyIGFyZSBwbGF0Zm9ybQorZGVwZW5kZW50LCBvbmx5IHRoZSB2YXJpYWJs ZXMgc2hvdWxkIGJlIHVzZWQgdG8gcmVmZXIgdG8gYSBrZXkuICBGb3IKK2V4YW1wbGUsIHRo ZSAneGstYmFja3NwYWNlJyB2YXJpYWJsZSByZWZlciB0byB0aGUgYmFja3NwYWNlIGtleSwg d2l0aAordGhlIG51bWVyaWMgdmFsdWUgMHhmZjA4IG9uIFgsIGFuZCB0aGUgMHgwOCBvbiBN Uy1XaW5kb3dzLiAgWW91IGNhbiBzZWUKK2FsbCBkZWZpbmVkIHZhcmlhYmxlcyBvbiB0aGUg dmFyaWFibGUgJ2xsay1rZXlzeW1zJy4KKworSWYgYSBzeW1ib2wsIGEgcHJlZGVmaW5lZCBz ZXQgb2Yga2V5cyBpcyBzZWxlY3RlZC4gIFRoZSBvbmx5IGN1cnJlbnRseQordmFsaWQgc3lt Ym9sIGlzICdtb2RpZmllcnMuCisKK0lmIGEgbGlzdCBvZiBudW1iZXJzIGFuZC9vciBzeW1i b2xzLCB0aGUgY29ycmVzcG9uZGluZyBrZXlzeW1zIGFuZCBzZXRzCithcmUgc2VsZWN0ZWQu ICAqLyk7CisgIFZlbmFibGVfbG93X2xldmVsX2tleV9ldmVudHMgPSBRbmlsOworCisgIERF RlNZTSAoUWxvd19sZXZlbF9rZXksICJsb3ctbGV2ZWwta2V5Iik7CisKICAgREVGU1lNIChR dG91Y2hfZW5kLCAidG91Y2gtZW5kIik7CiAKICAgLyogTWVudSBhbmQgdG9vbCBiYXIgaXRl bSBwYXJ0cy4gICovCkBAIC0xNDAxOCw2ICsxNDA4MSw4IEBAIGtleXNfb2Zfa2V5Ym9hcmQg KHZvaWQpCiAJCQkgICAgImhhbmRsZS1mb2N1cy1vdXQiKTsKICAgaW5pdGlhbF9kZWZpbmVf bGlzcHlfa2V5IChWc3BlY2lhbF9ldmVudF9tYXAsICJtb3ZlLWZyYW1lIiwKIAkJCSAgICAi aGFuZGxlLW1vdmUtZnJhbWUiKTsKKyAgaW5pdGlhbF9kZWZpbmVfbGlzcHlfa2V5IChWc3Bl Y2lhbF9ldmVudF9tYXAsICJsb3ctbGV2ZWwta2V5IiwKKwkJCSAgICAiaWdub3JlIik7CiB9 CiAKIC8qIE1hcmsgdGhlIHBvaW50ZXJzIGluIHRoZSBrYm9hcmQgb2JqZWN0cy4KZGlmZiAt LWdpdCBhL3NyYy9rZXlib2FyZC5oIGIvc3JjL2tleWJvYXJkLmgKaW5kZXggMzg3NTAxYzlm ODguLjgzZjlhMGYxNDFhIDEwMDY0NAotLS0gYS9zcmMva2V5Ym9hcmQuaAorKysgYi9zcmMv a2V5Ym9hcmQuaApAQCAtNTExLDYgKzUxMSw3IEBAIGtiZF9idWZmZXJfc3RvcmVfZXZlbnRf aG9sZCAoc3RydWN0IGlucHV0X2V2ZW50ICpldmVudCwKIGV4dGVybiBMaXNwX09iamVjdCBt ZW51X2l0ZW1fZXZhbF9wcm9wZXJ0eSAoTGlzcF9PYmplY3QpOwogZXh0ZXJuIGJvb2wga2Jk X2J1ZmZlcl9ldmVudHNfd2FpdGluZyAodm9pZCk7CiBleHRlcm4gdm9pZCBhZGRfdXNlcl9z aWduYWwgKGludCwgY29uc3QgY2hhciAqKTsKK2V4dGVybiBib29sIGtiZF9sb3dfbGV2ZWxf a2V5X2lzX2VuYWJsZWQgKGludCwgTGlzcF9PYmplY3QpOwogCiBleHRlcm4gaW50IHR0eV9y ZWFkX2F2YWlsX2lucHV0IChzdHJ1Y3QgdGVybWluYWwgKiwgc3RydWN0IGlucHV0X2V2ZW50 ICopOwogZXh0ZXJuIHN0cnVjdCB0aW1lc3BlYyB0aW1lcl9jaGVjayAodm9pZCk7CmRpZmYg LS1naXQgYS9zcmMvcGd0a3Rlcm0uYyBiL3NyYy9wZ3RrdGVybS5jCmluZGV4IDA3OTk0NTEy NmUwLi5mYmE4MWY1ZWMwZSAxMDA2NDQKLS0tIGEvc3JjL3BndGt0ZXJtLmMKKysrIGIvc3Jj L3BndGt0ZXJtLmMKQEAgLTUyMDEsNiArNTIwMSw1NiBAQCBwZ3RrX2VucXVldWVfcHJlZWRp dCAoc3RydWN0IGZyYW1lICpmLCBMaXNwX09iamVjdCBwcmVlZGl0KQogICBldnFfZW5xdWV1 ZSAoJmluZXYpOwogfQogCitzdGF0aWMgdm9pZAorcGd0a19tYXliZV9zZW5kX2xvd19sZXZl bF9rZXlfZXZlbnQgKHN0cnVjdCBmcmFtZSAqZiwgR2RrRXZlbnQgKmV2ZW50KQoreworICBH ZGtFdmVudEtleSB4a2V5ID0gZXZlbnQtPmtleTsKKyAgYm9vbCBpc19wcmVzczsKKyAgTGlz cF9PYmplY3Qga2V5LCBtb2RpZmllcjsKKyAgdW5pb24gYnVmZmVyZWRfaW5wdXRfZXZlbnQg aW5ldjsKKworICBpZiAoTklMUCAoVmVuYWJsZV9sb3dfbGV2ZWxfa2V5X2V2ZW50cykpCisg ICAgcmV0dXJuOworCisgIHN3aXRjaCAoZXZlbnQtPnR5cGUpCisgICAgeworICAgIGNhc2Ug R0RLX0tFWV9QUkVTUzoKKyAgICAgIGlzX3ByZXNzID0gdHJ1ZTsKKyAgICAgIGJyZWFrOwor ICAgIGNhc2UgR0RLX0tFWV9SRUxFQVNFOgorICAgICAgaXNfcHJlc3MgPSBmYWxzZTsKKyAg ICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICByZXR1cm47CisgICAgfQorCisgIC8q IFdlIGRvbid0IHN1cHBvcnQgbW9kaWZpZXIgaWRlbnRpZmljYXRpb24gb24gUEdUSy4gV2Ug b25seSBjYW4gdGVsbAorICAgIGlmIHRoZSBrZXkgY29ycmVzcG9uZHMgdG8gYSBtb2RpZmll ciBvciBub3QsIHdoaWNoIGlzIHVzZWQgZm9yCisgICAgZmlsdGVyaW5nIGVuYWJsZWQga2V5 cyB3aXRoIGtiZF9sb3dfbGV2ZWxfa2V5X2lzX2VuYWJsZWQuICAqLworICBtb2RpZmllciA9 IGV2ZW50LT5rZXkuaXNfbW9kaWZpZXIgPyBRdCA6IFFuaWw7CisKKyAgaW50IGtleXN5bSA9 IHhrZXkua2V5dmFsOworCisgIGlmIChrZXlzeW0gPj0gR0RLX0tFWV9hICYmIGtleXN5bSA8 PSBHREtfS0VZX3opCisgICAga2V5c3ltIC09IEdES19LRVlfYSAtIEdES19LRVlfQTsKKyAg aWYgKCFrYmRfbG93X2xldmVsX2tleV9pc19lbmFibGVkIChrZXlzeW0sIG1vZGlmaWVyKSkK KyAgICByZXR1cm47CisKKyAgaWYgKCFmKQorICAgIGYgPSBwZ3RrX2FueV93aW5kb3dfdG9f ZnJhbWUgKGV2ZW50LT5rZXkud2luZG93KTsKKyAgaWYgKCFmKQorICAgIHJldHVybjsKKwor ICBrZXkgPSBtYWtlX2ZpeG51bSAoa2V5c3ltKTsKKworICBFVkVOVF9JTklUIChpbmV2Lmll KTsKKyAgWFNFVEZSQU1FIChpbmV2LmllLmZyYW1lX29yX3dpbmRvdywgZik7CisgIGluZXYu aWUua2luZCA9IExPV19MRVZFTF9LRVlfRVZFTlQ7CisgIGluZXYuaWUudGltZXN0YW1wID0g ZXZlbnQtPmtleS50aW1lOworICBpbmV2LmllLmFyZyA9IGxpc3QzIChpc19wcmVzcyA/IFF0 IDogUW5pbCwga2V5LCBtb2RpZmllcik7CisgIGV2cV9lbnF1ZXVlICgmaW5ldik7Cit9CisK IHN0YXRpYyBnYm9vbGVhbgoga2V5X3ByZXNzX2V2ZW50IChHdGtXaWRnZXQgKndpZGdldCwg R2RrRXZlbnQgKmV2ZW50LCBncG9pbnRlciAqdXNlcl9kYXRhKQogewpAQCAtNTIxMSw2ICs1 MjYxLDkgQEAga2V5X3ByZXNzX2V2ZW50IChHdGtXaWRnZXQgKndpZGdldCwgR2RrRXZlbnQg KmV2ZW50LCBncG9pbnRlciAqdXNlcl9kYXRhKQogICBzdHJ1Y3QgcGd0a19kaXNwbGF5X2lu Zm8gKmRweWluZm87CiAKICAgZiA9IHBndGtfYW55X3dpbmRvd190b19mcmFtZSAoZ3RrX3dp ZGdldF9nZXRfd2luZG93ICh3aWRnZXQpKTsKKworICBwZ3RrX21heWJlX3NlbmRfbG93X2xl dmVsX2tleV9ldmVudCAoZiwgZXZlbnQpOworCiAgIEVWRU5UX0lOSVQgKGluZXYuaWUpOwog ICBobGluZm8gPSBNT1VTRV9ITF9JTkZPIChmKTsKICAgbmJ5dGVzID0gMDsKQEAgLTU0NTQs NiArNTUwNyw4IEBAIGtleV9yZWxlYXNlX2V2ZW50IChHdGtXaWRnZXQgKndpZGdldCwKICAg R2RrRGlzcGxheSAqZGlzcGxheTsKICAgc3RydWN0IHBndGtfZGlzcGxheV9pbmZvICpkcHlp bmZvOwogCisgIHBndGtfbWF5YmVfc2VuZF9sb3dfbGV2ZWxfa2V5X2V2ZW50IChOVUxMLCBl dmVudCk7CisKICAgZGlzcGxheSA9IGd0a193aWRnZXRfZ2V0X2Rpc3BsYXkgKHdpZGdldCk7 CiAgIGRweWluZm8gPSBwZ3RrX2Rpc3BsYXlfaW5mb19mb3JfZGlzcGxheSAoZGlzcGxheSk7 CiAKZGlmZiAtLWdpdCBhL3NyYy90ZXJtaG9va3MuaCBiL3NyYy90ZXJtaG9va3MuaAppbmRl eCBkNmE5MzAwYmFjOS4uOTY2YTY0OTJmNjkgMTAwNjQ0Ci0tLSBhL3NyYy90ZXJtaG9va3Mu aAorKysgYi9zcmMvdGVybWhvb2tzLmgKQEAgLTM0Nyw2ICszNDcsNyBAQCAjZGVmaW5lIEVN QUNTX1RFUk1IT09LU19ICiAgIC8qIEluIGEgTk9USUZJQ0FUSU9OX0VWRU5ULCAuYXJnIGlz IGEgbGFtYmRhIHRvIGV2YWx1YXRlLiAgKi8KICAgLCBOT1RJRklDQVRJT05fRVZFTlQKICNl bmRpZiAvKiBIQVZFX0FORFJPSUQgKi8KKyAgLCBMT1dfTEVWRUxfS0VZX0VWRU5UCiB9Owog CiAvKiBCaXQgd2lkdGggb2YgYW4gZW51bSBldmVudF9raW5kIHRhZyBhdCB0aGUgc3RhcnQg b2Ygc3RydWN0cyBhbmQgdW5pb25zLiAgKi8KZGlmZiAtLWdpdCBhL3NyYy93MzJmbnMuYyBi L3NyYy93MzJmbnMuYwppbmRleCBlMjQ1NWI5MjcxZS4uMWQxOGJmNDA4ZTEgMTAwNjQ0Ci0t LSBhL3NyYy93MzJmbnMuYworKysgYi9zcmMvdzMyZm5zLmMKQEAgLTQ2NjksNiArNDY2OSwx MSBAQCB3MzJfd25kX3Byb2MgKEhXTkQgaHduZCwgVUlOVCBtc2csIFdQQVJBTSB3UGFyYW0s IExQQVJBTSBsUGFyYW0pCiAgICAgY2FzZSBXTV9LRVlVUDoKICAgICBjYXNlIFdNX1NZU0tF WVVQOgogICAgICAgcmVjb3JkX2tleXVwICh3UGFyYW0sIGxQYXJhbSk7CisgICAgICBpZiAo IU5JTFAgKFZlbmFibGVfbG93X2xldmVsX2tleV9ldmVudHMpKQorCXsKKwkgIHNpZ25hbF91 c2VyX2lucHV0ICgpOworCSAgbXlfcG9zdF9tc2cgKCZ3bXNnLCBod25kLCBXTV9FTUFDU19M T1dfTEVWRUxfS0VZLCB3UGFyYW0sIGxQYXJhbSk7CisJfQogICAgICAgZ290byBkZmx0Owog CiAgICAgY2FzZSBXTV9LRVlET1dOOgpAQCAtNDY5NSw2ICs0NzAwLDEyIEBAIHczMl93bmRf cHJvYyAoSFdORCBod25kLCBVSU5UIG1zZywgV1BBUkFNIHdQYXJhbSwgTFBBUkFNIGxQYXJh bSkKICAgICAgIGlmICh3MzJfdXNlX2ZhbGxiYWNrX3dtX2NoYXJzX21ldGhvZCkKIAl3UGFy YW0gPSBtYXBfa2V5cGFkX2tleXMgKHdQYXJhbSwgKGxQYXJhbSAmIDB4MTAwMDAwMEwpICE9 IDApOwogCisgICAgICBpZiAoIU5JTFAgKFZlbmFibGVfbG93X2xldmVsX2tleV9ldmVudHMp KQorCXsKKwkgIHNpZ25hbF91c2VyX2lucHV0ICgpOworCSAgbXlfcG9zdF9tc2cgKCZ3bXNn LCBod25kLCBXTV9FTUFDU19MT1dfTEVWRUxfS0VZLCB3UGFyYW0sIGxQYXJhbSk7CisJfQor CiAgICAgICB3aW5kb3dzX3RyYW5zbGF0ZSA9IDA7CiAKICAgICAgIHN3aXRjaCAod1BhcmFt KQpkaWZmIC0tZ2l0IGEvc3JjL3czMnRlcm0uYyBiL3NyYy93MzJ0ZXJtLmMKaW5kZXggZTE4 ZjM5ZGQyYTguLmEyZTBhNGIwZmEwIDEwMDY0NAotLS0gYS9zcmMvdzMydGVybS5jCisrKyBi L3NyYy93MzJ0ZXJtLmMKQEAgLTUyNzAsNiArNTI3MCw1NSBAQCB3MzJfcmVhZF9zb2NrZXQg KHN0cnVjdCB0ZXJtaW5hbCAqdGVybWluYWwsCiAJICAgIH0KIAkgIGJyZWFrOwogCisJY2Fz ZSBXTV9FTUFDU19MT1dfTEVWRUxfS0VZOgorCSAgV09SRCBrZXlfZmxhZ3MgPSBISVdPUkQg KG1zZy5tc2cubFBhcmFtKTsKKwkgIEJPT0wgaXNfd21fa2V5dXAgPSBrZXlfZmxhZ3MgJiBL Rl9VUDsKKworCSAgaWYgKGlzX3dtX2tleXVwIHx8IChrZXlfZmxhZ3MgJiBLRl9SRVBFQVQp ID09IDApIC8qIFdNX0tFWURPV04sIG5vdCByZXBlYXRpbmcuICAqLworCSAgICB7CisJICAg ICAgV09SRCBzY2FuX2NvZGUgPSBMT0JZVEUgKGtleV9mbGFncyk7CisJICAgICAgaWYgKGtl eV9mbGFncyAmIEtGX0VYVEVOREVEKQorCQlzY2FuX2NvZGUgPSBNQUtFV09SRCAoc2Nhbl9j b2RlLCAweEUwKTsKKworCSAgICAgIFVJTlQgdHJhbnNsYXRlZCA9IE1hcFZpcnR1YWxLZXkg KHNjYW5fY29kZSwgTUFQVktfVlNDX1RPX1ZLX0VYKTsKKwkgICAgICBXT1JEIHZrID0gTE9X T1JEIChtc2cubXNnLndQYXJhbSk7CisJICAgICAgaWYgKHRyYW5zbGF0ZWQpCisJCXZrID0g TE9XT1JEICh0cmFuc2xhdGVkKTsKKworCSAgICAgIExpc3BfT2JqZWN0IGtleSA9IG1ha2Vf Zml4bnVtICh2ayk7CisJICAgICAgTGlzcF9PYmplY3QgbW9kaWZpZXIgPSBRbmlsOworCisJ ICAgICAgc3dpdGNoICh2aykKKwkJeworCQljYXNlIFZLX0xTSElGVDoKKwkJY2FzZSBWS19S U0hJRlQ6CisJCSAgbW9kaWZpZXIgPSBRc2hpZnQ7CisJCSAgYnJlYWs7CisJCWNhc2UgVktf TENPTlRST0w6CisJCWNhc2UgVktfUkNPTlRST0w6CisJCSAgbW9kaWZpZXIgPSBRY3RybDsK KwkJICBicmVhazsKKwkJY2FzZSBWS19MTUVOVToKKwkJY2FzZSBWS19STUVOVToKKwkJICBt b2RpZmllciA9IFFtZXRhOworCQkgIGJyZWFrOworCQl9CisKKwkgICAgICBpZiAoa2JkX2xv d19sZXZlbF9rZXlfaXNfZW5hYmxlZCAodmssIG1vZGlmaWVyKSkKKwkJeworCQkgIGYgPSB3 MzJfd2luZG93X3RvX2ZyYW1lIChkcHlpbmZvLCBtc2cubXNnLmh3bmQpOworCQkgIGluZXYu a2luZCA9IExPV19MRVZFTF9LRVlfRVZFTlQ7CisJCSAgWFNFVEZSQU1FIChpbmV2LmZyYW1l X29yX3dpbmRvdywgZik7CisJCSAgaW5ldi50aW1lc3RhbXAgPSBtc2cubXNnLnRpbWU7CisJ CSAgaW5ldi5hcmcgPSBsaXN0MyAoaXNfd21fa2V5dXAgPyBRbmlsIDogUXQsIGtleSwgbW9k aWZpZXIpOworCQkgIGtiZF9idWZmZXJfc3RvcmVfZXZlbnRfaG9sZCAoJmluZXYsIGhvbGRf cXVpdCk7CisJCX0KKworCSAgICAgIGluZXYua2luZCA9IE5PX0VWRU5UOworCisJICAgIH0K KwkgIGJyZWFrOworCiAgICAgICAgIGNhc2UgV01fVU5JQ0hBUjoKIAljYXNlIFdNX1NZU0NI QVI6CiAJY2FzZSBXTV9DSEFSOgpkaWZmIC0tZ2l0IGEvc3JjL3czMnRlcm0uaCBiL3NyYy93 MzJ0ZXJtLmgKaW5kZXggY2FkOWZjZjhjYjEuLjg4ZjdkZmVlZjhiIDEwMDY0NAotLS0gYS9z cmMvdzMydGVybS5oCisrKyBiL3NyYy93MzJ0ZXJtLmgKQEAgLTcxMyw3ICs3MTMsOCBAQCAj ZGVmaW5lIFdNX0VNQUNTX0ZJTEVOT1RJRlkgICAgICAgICAgICAoV01fRU1BQ1NfU1RBUlQg KyAyNSkKICNkZWZpbmUgV01fRU1BQ1NfSU1FX1NUQVRVUyAgICAgICAgICAgIChXTV9FTUFD U19TVEFSVCArIDI2KQogI2RlZmluZSBXTV9FTUFDU19EUkFHT1ZFUiAgICAgICAgICAgICAg KFdNX0VNQUNTX1NUQVJUICsgMjcpCiAjZGVmaW5lIFdNX0VNQUNTX0RST1AgICAgICAgICAg ICAgICAgICAoV01fRU1BQ1NfU1RBUlQgKyAyOCkKLSNkZWZpbmUgV01fRU1BQ1NfRU5EICAg ICAgICAgICAgICAgICAgIChXTV9FTUFDU19TVEFSVCArIDI5KQorI2RlZmluZSBXTV9FTUFD U19MT1dfTEVWRUxfS0VZICAgICAgICAgKFdNX0VNQUNTX1NUQVJUICsgMjkpCisjZGVmaW5l IFdNX0VNQUNTX0VORCAgICAgICAgICAgICAgICAgICAoV01fRU1BQ1NfU1RBUlQgKyAzMCkK IAogI2RlZmluZSBXTkRfRk9OVFdJRFRIX0lOREVYICAgICgwKQogI2RlZmluZSBXTkRfTElO RUhFSUdIVF9JTkRFWCAgICg0KQpkaWZmIC0tZ2l0IGEvc3JjL3h0ZXJtLmMgYi9zcmMveHRl cm0uYwppbmRleCAwYzIwZDM4YjBmNy4uNzI3MTVlMGVkNzMgMTAwNjQ0Ci0tLSBhL3NyYy94 dGVybS5jCisrKyBiL3NyYy94dGVybS5jCkBAIC0xNzg0MCw2ICsxNzg0MCwxNDEgQEAgI2Rl ZmluZSBTVE9SRV9LRVlTWU1fRk9SX0RFQlVHKGtleXN5bSkgKCh2b2lkKTApCiAKIHN0YXRp YyBzdHJ1Y3QgeF9kaXNwbGF5X2luZm8gKm5leHRfbm9vcF9kcHlpbmZvOwogCitMaXNwX09i amVjdAoreF9nZXRfbW9kaWZpZXJfZm9yX2tleWNvZGUgKHN0cnVjdCB4X2Rpc3BsYXlfaW5m byAqZHB5aW5mbywKKwkJCSAgICBpbnQga2V5Y29kZSkKK3sKKyNpZmRlZiBIQVZFX1hLQgor ICBpZiAoZHB5aW5mby0+eGtiX2Rlc2MpCisgICAgZm9yIChpbnQgbW9kID0gMDsgbW9kIDwg WGtiTnVtTW9kaWZpZXJzOyBtb2QrKykKKyAgICAgIHsKKwlpbnQgbWFzayA9ICgxIDw8IG1v ZCk7CisJaWYgKGRweWluZm8tPnhrYl9kZXNjLT5tYXAtPm1vZG1hcFtrZXljb2RlXSAmIG1h c2spCisJICB7CisJICAgIGlmIChtYXNrID09IFNoaWZ0TWFzaykKKwkgICAgICByZXR1cm4g UXNoaWZ0OworCSAgICBpZiAobWFzayA9PSBDb250cm9sTWFzaykKKwkgICAgICByZXR1cm4g UWN0cmw7CisJICAgIGlmIChtYXNrID09IGRweWluZm8tPm1ldGFfbW9kX21hc2spCisJICAg ICAgcmV0dXJuIFFtZXRhOworCSAgICBpZiAobWFzayA9PSBkcHlpbmZvLT5hbHRfbW9kX21h c2spCisJICAgICAgcmV0dXJuIFFhbHQ7CisJICAgIGlmIChtYXNrID09IGRweWluZm8tPnN1 cGVyX21vZF9tYXNrKQorCSAgICAgIHJldHVybiBRc3VwZXI7CisJICAgIGlmIChtYXNrID09 IGRweWluZm8tPmh5cGVyX21vZF9tYXNrKQorCSAgICAgIHJldHVybiBRaHlwZXI7CisJICB9 CisgICAgICB9CisjZW5kaWYKKyAgWE1vZGlmaWVyS2V5bWFwICptYXAgPSBkcHlpbmZvLT5t b2RtYXA7CisgIGlmIChtYXApCisgICAgZm9yIChpbnQgbW9kID0gMDsgbW9kIDwgODsgbW9k KyspCisgICAgICB7CisJaW50IG1hc2sgPSAoMSA8PCBtb2QpOworICAgICAgICBmb3IgKGlu dCBrZXkgPSAwOyBrZXkgPCBtYXAtPm1heF9rZXlwZXJtb2Q7IGtleSsrKQorCSAgaWYgKG1h cC0+bW9kaWZpZXJtYXBbbW9kICogbWFwLT5tYXhfa2V5cGVybW9kICsga2V5XSA9PSBrZXlj b2RlKQorCSAgICB7CisJICAgICAgaWYgKG1hc2sgPT0gU2hpZnRNYXNrKQorCQlyZXR1cm4g UXNoaWZ0OworCSAgICAgIGlmIChtYXNrID09IENvbnRyb2xNYXNrKQorCQlyZXR1cm4gUWN0 cmw7CisJICAgICAgaWYgKG1hc2sgPT0gZHB5aW5mby0+bWV0YV9tb2RfbWFzaykKKwkJcmV0 dXJuIFFtZXRhOworCSAgICAgIGlmIChtYXNrID09IGRweWluZm8tPmFsdF9tb2RfbWFzaykK KwkJcmV0dXJuIFFhbHQ7CisJICAgICAgaWYgKG1hc2sgPT0gZHB5aW5mby0+c3VwZXJfbW9k X21hc2spCisJCXJldHVybiBRc3VwZXI7CisJICAgICAgaWYgKG1hc2sgPT0gZHB5aW5mby0+ aHlwZXJfbW9kX21hc2spCisJCXJldHVybiBRaHlwZXI7CisJICAgIH0KKyAgICAgIH0KKyAg cmV0dXJuIFFuaWw7Cit9CisKK3N0YXRpYyB2b2lkCit4X21heWJlX3NlbmRfbG93X2xldmVs X2tleV9ldmVudCAoc3RydWN0IHhfZGlzcGxheV9pbmZvICpkcHlpbmZvLAorCQkJCSAgY29u c3QgWEV2ZW50ICp4ZXYsIHN0cnVjdCBmcmFtZSAqZikKK3sKKyAgWEtleUV2ZW50IHhrZXk7 CisgIGJvb2wgaXNfcHJlc3M7CisgIEtleVN5bSBrZXlzeW07CisgIExpc3BfT2JqZWN0IGtl eSwgbW9kaWZpZXI7CisgIHN0cnVjdCBpbnB1dF9ldmVudCBpZTsKKworICBpZiAoTklMUCAo VmVuYWJsZV9sb3dfbGV2ZWxfa2V5X2V2ZW50cykpCisgICAgcmV0dXJuOworCisgIHN3aXRj aCAoeGV2LT50eXBlKQorICAgIHsKKyAgICBjYXNlIEtleVByZXNzOgorICAgICAgaXNfcHJl c3MgPSB0cnVlOworICAgICAgeGtleSA9IHhldi0+eGtleTsKKyAgICAgIGJyZWFrOworICAg IGNhc2UgS2V5UmVsZWFzZToKKyAgICAgIGlzX3ByZXNzID0gZmFsc2U7CisgICAgICB4a2V5 ID0geGV2LT54a2V5OworICAgICAgYnJlYWs7CisjaWZkZWYgSEFWRV9YSU5QVVQyCisgICAg Y2FzZSBHZW5lcmljRXZlbnQ6CisgICAgICBYSURldmljZUV2ZW50ICp4aWV2ID0geGV2LT54 Y29va2llLmRhdGE7CisgICAgICBzd2l0Y2ggKHhldi0+eGdlbmVyaWMuZXZ0eXBlKQorCXsK KwljYXNlIFhJX0tleVByZXNzOgorCSAgaXNfcHJlc3MgPSB0cnVlOworCSAgYnJlYWs7CisJ Y2FzZSBYSV9LZXlSZWxlYXNlOgorCSAgaXNfcHJlc3MgPSBmYWxzZTsKKwkgIGJyZWFrOwor CWRlZmF1bHQ6CisJICByZXR1cm47CisJfQorCisgICAgICB4a2V5LnNlcmlhbCA9IHhpZXYt PnNlcmlhbDsKKyAgICAgIHhrZXkuc2VuZF9ldmVudCA9IHhpZXYtPnNlbmRfZXZlbnQ7Cisg ICAgICB4a2V5LmRpc3BsYXkgPSB4aWV2LT5kaXNwbGF5OworICAgICAgeGtleS53aW5kb3cg PSB4aWV2LT5ldmVudDsKKyAgICAgIHhrZXkucm9vdCA9IHhpZXYtPnJvb3Q7CisgICAgICB4 a2V5LnN1YndpbmRvdyA9IHhpZXYtPmNoaWxkOworICAgICAgeGtleS50aW1lID0geGlldi0+ dGltZTsKKyAgICAgIHhrZXkueCA9IHhpZXYtPmV2ZW50X3g7CisgICAgICB4a2V5LnkgPSB4 aWV2LT5ldmVudF95OworICAgICAgeGtleS54X3Jvb3QgPSB4aWV2LT5yb290X3g7CisgICAg ICB4a2V5Lnlfcm9vdCA9IHhpZXYtPnJvb3RfeTsKKyAgICAgIHhrZXkuc3RhdGUgPSB4aWV2 LT5tb2RzLmVmZmVjdGl2ZTsKKyAgICAgIHhrZXkua2V5Y29kZSA9IHhpZXYtPmRldGFpbDsK KyAgICAgIHhrZXkuc2FtZV9zY3JlZW4gPSAxOworICAgICAgYnJlYWs7CisjZW5kaWYKKyAg ICBkZWZhdWx0OgorICAgICAgcmV0dXJuOworICAgIH0KKworICBpZiAoIWYpCisgICAgZiA9 IHhfYW55X3dpbmRvd190b19mcmFtZSAoZHB5aW5mbywgeGtleS53aW5kb3cpOworICBpZiAo IWYpCisgICAgcmV0dXJuOworCisgIFhMb29rdXBTdHJpbmcgKCZ4a2V5LCBOVUxMLCAwLCAm a2V5c3ltLCBOVUxMKTsKKworICBtb2RpZmllciA9IHhfZ2V0X21vZGlmaWVyX2Zvcl9rZXlj b2RlIChkcHlpbmZvLCB4a2V5LmtleWNvZGUpOworCisgIC8qIENvbnZlcnQgbG93ZXJjYXNl IGxhdGluIGxldHRlciB0byB1cHBlcmNhc2UuICAqLworICBpZiAoa2V5c3ltID49IFhLX2Eg JiYga2V5c3ltIDw9IFhLX3opCisgICAga2V5c3ltIC09IFhLX2EgLSBYS19BOworCisgIGlm ICgha2JkX2xvd19sZXZlbF9rZXlfaXNfZW5hYmxlZCAoa2V5c3ltLCBtb2RpZmllcikpCisg ICAgcmV0dXJuOworCisgIGtleSA9IG1ha2VfZml4bnVtIChrZXlzeW0pOworCisgIEVWRU5U X0lOSVQgKGllKTsKKyAgWFNFVEZSQU1FIChpZS5mcmFtZV9vcl93aW5kb3csIGYpOworICBp ZS5raW5kID0gTE9XX0xFVkVMX0tFWV9FVkVOVDsKKyAgaWUudGltZXN0YW1wID0geGtleS50 aW1lOworICBpZS5hcmcgPSBsaXN0MyAoaXNfcHJlc3MgPyBRdCA6IFFuaWwsIGtleSwgbW9k aWZpZXIpOworICBrYmRfYnVmZmVyX3N0b3JlX2V2ZW50ICgmaWUpOworfQorCiAvKiBGaWx0 ZXIgZXZlbnRzIGZvciB0aGUgY3VycmVudCBYIGlucHV0IG1ldGhvZC4KICAgIERQWUlORk8g aXMgdGhlIGRpc3BsYXkgdGhpcyBldmVudCBpcyBmb3IuCiAgICBFVkVOVCBpcyB0aGUgWCBl dmVudCB0byBmaWx0ZXIuCkBAIC0yMDIwNiw2ICsyMDM0MSw3IEBAIGhhbmRsZV9vbmVfeGV2 ZW50IChzdHJ1Y3QgeF9kaXNwbGF5X2luZm8gKmRweWluZm8sCiAgICAgICBnb3RvIE9USEVS OwogCiAgICAgY2FzZSBLZXlQcmVzczoKKyAgICAgIHhfbWF5YmVfc2VuZF9sb3dfbGV2ZWxf a2V5X2V2ZW50IChkcHlpbmZvLCBldmVudCwgYW55KTsKICAgICAgIHhfZGlzcGxheV9zZXRf bGFzdF91c2VyX3RpbWUgKGRweWluZm8sIGV2ZW50LT54a2V5LnRpbWUsCiAJCQkJICAgIGV2 ZW50LT54a2V5LnNlbmRfZXZlbnQsCiAJCQkJICAgIHRydWUpOwpAQCAtMjA3MTUsNiArMjA4 NTEsNyBAQCBoYW5kbGVfb25lX3hldmVudCAoc3RydWN0IHhfZGlzcGxheV9pbmZvICpkcHlp bmZvLAogI2VuZGlmCiAKICAgICBjYXNlIEtleVJlbGVhc2U6CisgICAgICB4X21heWJlX3Nl bmRfbG93X2xldmVsX2tleV9ldmVudCAoZHB5aW5mbywgZXZlbnQsIGFueSk7CiAjaWZkZWYg SEFWRV9YX0kxOE4KICAgICAgIC8qIERvbid0IGRpc3BhdGNoIHRoaXMgZXZlbnQgc2luY2Ug WHREaXNwYXRjaEV2ZW50IGNhbGxzCiAgICAgICAgICBYRmlsdGVyRXZlbnQsIGFuZCB0d28g Y2FsbHMgaW4gYSByb3cgbWF5IGZyZWV6ZSB0aGUKQEAgLTIzOTcwLDYgKzI0MTA3LDggQEAg aGFuZGxlX29uZV94ZXZlbnQgKHN0cnVjdCB4X2Rpc3BsYXlfaW5mbyAqZHB5aW5mbywKIAkg ICAgICBzdHJ1Y3QgeGlfZGV2aWNlX3QgKmRldmljZSwgKnNvdXJjZTsKIAkgICAgICBYS2V5 UHJlc3NlZEV2ZW50IHhrZXk7CiAKKwkgICAgICB4X21heWJlX3NlbmRfbG93X2xldmVsX2tl eV9ldmVudCAoZHB5aW5mbywgZXZlbnQsIGFueSk7CisKIAkgICAgICBjb2RpbmcgPSBRbGF0 aW5fMTsKIAogCSAgICAgIC8qIFRoZSBjb2RlIHVuZGVyIHRoaXMgbGFiZWwgaXMgcXVpdGUg ZGVzdWx0b3J5LiAgVGhlcmUKQEAgLTI0NTg2LDYgKzI0NzI1LDggQEAgaGFuZGxlX29uZV94 ZXZlbnQgKHN0cnVjdCB4X2Rpc3BsYXlfaW5mbyAqZHB5aW5mbywKICNlbmRpZgogCiAJICBj YXNlIFhJX0tleVJlbGVhc2U6CisJICAgIHhfbWF5YmVfc2VuZF9sb3dfbGV2ZWxfa2V5X2V2 ZW50IChkcHlpbmZvLCBldmVudCwgYW55KTsKKwogI2lmIGRlZmluZWQgSEFWRV9YX0kxOE4g fHwgZGVmaW5lZCBVU0VfR1RLIHx8IGRlZmluZWQgVVNFX0xVQ0lECiAJICAgIHsKIAkgICAg ICBYS2V5UHJlc3NlZEV2ZW50IHhrZXk7CkBAIC0zMjY2Miw2ICszMjgwMyw3IEBAIHN5bXNf b2ZfeHRlcm0gKHZvaWQpCiAgIFZ4X3Rvb2xraXRfc2Nyb2xsX2JhcnMgPSBRbmlsOwogI2Vu ZGlmCiAKKyAgREVGU1lNIChRc2hpZnQsICJzaGlmdCIpOwogICBERUZTWU0gKFFtb2RpZmll cl92YWx1ZSwgIm1vZGlmaWVyLXZhbHVlIik7CiAgIERFRlNZTSAoUWN0cmwsICJjdHJsIik7 CiAgIEZwdXQgKFFjdHJsLCBRbW9kaWZpZXJfdmFsdWUsIG1ha2VfZml4bnVtIChjdHJsX21v ZGlmaWVyKSk7CmRpZmYgLS1naXQgYS9zcmMveHRlcm0uaCBiL3NyYy94dGVybS5oCmluZGV4 IDhkNWM5OTE3NzQ5Li42NmUwNTJlN2FjZCAxMDA2NDQKLS0tIGEvc3JjL3h0ZXJtLmgKKysr IGIvc3JjL3h0ZXJtLmgKQEAgLTE5MDYsNiArMTkwNiw4IEBAIHhfbXV0YWJsZV9jb2xvcm1h cCAoWFZpc3VhbEluZm8gKnZpc3VhbCkKIGV4dGVybiB2b2lkIHRlYXJfZG93bl94X2JhY2tf YnVmZmVyIChzdHJ1Y3QgZnJhbWUgKmYpOwogZXh0ZXJuIHZvaWQgaW5pdGlhbF9zZXRfdXBf eF9iYWNrX2J1ZmZlciAoc3RydWN0IGZyYW1lICpmKTsKIAorZXh0ZXJuIExpc3BfT2JqZWN0 IHhfZ2V0X21vZGlmaWVyX2Zvcl9rZXljb2RlIChzdHJ1Y3QgeF9kaXNwbGF5X2luZm8gKiwg aW50KTsKKwogLyogRGVmaW5lZCBpbiB4Zm5zLmMuICAqLwogZXh0ZXJuIHZvaWQgeF9yZWFs X3Bvc2l0aW9ucyAoc3RydWN0IGZyYW1lICosIGludCAqLCBpbnQgKik7CiBleHRlcm4gdm9p ZCB4X2NoYW5nZV90YWJfYmFyX2hlaWdodCAoc3RydWN0IGZyYW1lICosIGludCk7Ci0tIAoy LjM1LjEud2luZG93cy4yCgo= --------------sxrzhc8vUyFc3eu2Z97hOBFd--