From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Andrey Smirnov Newsgroups: gmane.emacs.devel Subject: Re: [PATCH] Change the look of dialogs created with `x-popup-dialog' Date: Wed, 14 Dec 2011 20:56:14 -0800 Message-ID: References: <890BD378-D3CE-41CE-AEC0-7CEAA1D8CE05@swipnet.se> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=e89a8f3b9d4dd0796304b41a4d01 X-Trace: dough.gmane.org 1323924988 22699 80.91.229.12 (15 Dec 2011 04:56:28 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Thu, 15 Dec 2011 04:56:28 +0000 (UTC) Cc: emacs-devel@gnu.org To: =?ISO-8859-1?Q?Jan_Dj=E4rv?= Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Thu Dec 15 05:56:24 2011 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([140.186.70.17]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1Rb3Mk-0003r8-Ch for ged-emacs-devel@m.gmane.org; Thu, 15 Dec 2011 05:56:22 +0100 Original-Received: from localhost ([::1]:41863 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Rb3Mj-0003En-RA for ged-emacs-devel@m.gmane.org; Wed, 14 Dec 2011 23:56:21 -0500 Original-Received: from eggs.gnu.org ([140.186.70.92]:57392) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Rb3Mf-0003EQ-SK for emacs-devel@gnu.org; Wed, 14 Dec 2011 23:56:19 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Rb3Md-00083b-Bh for emacs-devel@gnu.org; Wed, 14 Dec 2011 23:56:17 -0500 Original-Received: from mail-iy0-f169.google.com ([209.85.210.169]:41448) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Rb3Md-00083W-29 for emacs-devel@gnu.org; Wed, 14 Dec 2011 23:56:15 -0500 Original-Received: by iacb35 with SMTP id b35so493730iac.0 for ; Wed, 14 Dec 2011 20:56:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=sTbq8uPRD1pO4chdlg+JiEtEDrxFYqMBpKvcyPLhohA=; b=chFQg8uJOs29M0PkyF5ImlpmWs7T7Y0rLcS1YjT7GTdpR6FXLeyV2vdliIcCzBlAa4 86h0F55oLnaoatEEU0HbOOecq0pZZanJeza+isi3OA/62ls59SHBWt7X7vFKohZYLJ7h YqssF5opWCFJkHMVt3Y1wn4B1MMIvS1Hempac= Original-Received: by 10.50.85.197 with SMTP id j5mr1595349igz.32.1323924974499; Wed, 14 Dec 2011 20:56:14 -0800 (PST) Original-Received: by 10.50.237.74 with HTTP; Wed, 14 Dec 2011 20:56:14 -0800 (PST) In-Reply-To: X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 2) X-Received-From: 209.85.210.169 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:146720 Archived-At: --e89a8f3b9d4dd0796304b41a4d01 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable On Wed, Dec 14, 2011 at 12:41 PM, Jan Dj=E4rv wrote: > If you Alt-tab in icewm for example, it shows the titles, see > attached picture. Now, I see your point. On the other hand in Unity window title doesn't play that important role in window-switching. Can we compromise on exposing run-time variable something along the lines of `gtk-popup-dialogs-show-titles' and then the appearance could be controlled from user's .emacs? > > The use of default bold indicates screaming to me. > > > I thought that function was reserved for all caps :) > > > A lot of shouting going on... All right, in for a penny in for a pound, how about `gtk-popup-dialogs-message-format' to control that aspect? > > Perhaps, but then we maybe should change all ports? Do you mean change how dialogs look in all toolkits? Yes, I think it would be even a better idea, I'll look into it. Hopefully Lennart would be able to find his patches for w32, and then they could be used. > These two issues will go away if you defer calling callbacks until > OK is pressed. It still won't change the fact that original `dialog_selection_callback' duplicates the functionality of `popup_deactivate_callback'. I attached reworked version of the patch, it still lacks comments with description for new functions, but I'll add it as soon as the code stabilizes. Andrey Smirnov --e89a8f3b9d4dd0796304b41a4d01 Content-Type: text/x-diff; charset=US-ASCII; name="0001-Change-the-look-of-dialogs-created-with-x-popup-dial.patch" Content-Disposition: attachment; filename="0001-Change-the-look-of-dialogs-created-with-x-popup-dial.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gw7ap9w60 RnJvbSA5OWNjY2E2MmI2YTI0MDJjYmE2OTExNGI5Yjg2ZTUzNDUxMTIyMmZkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZXkgU21pcm5vdiA8YW5kcmV3LnNtaXJub3ZAZ21haWwu Y29tPgpEYXRlOiBTYXQsIDEwIERlYyAyMDExIDE4OjEzOjQyIC0wODAwClN1YmplY3Q6IFtQQVRD SCAxLzJdIENoYW5nZSB0aGUgbG9vayBvZiBkaWFsb2dzIGNyZWF0ZWQgd2l0aAogYHgtcG9wdXAt ZGlhbG9nJyhHdGspCgpOZXcgY29kZSBjcmVhdGVzIGRpYWxvZ3MgdGhhdCBsb29rcyhob3BlZnVs bHkpIG1vcmUgc2ltaWxhciB0byBkaWFsb2dzCmNyZWF0ZWQgYnkgb3RoZXIgR3RrIGFwcGxpY2F0 aW9ucyBzdWNoIGFzIEdFZGl0LiBDcmVhdGVkIGRpYWxvZyBubwpsb25nZXIgaGFzIG1vcmUgdGhh biB0d28gYnV0dG9ucyBhbmQgbXVsdGlwbGUgY2hvaWNlcyBzaXR1YXRpb24gaXMKaGFuZGxlZCB3 aXRoIHJhZGlvLWJ1dHRvbnMuCi0tLQogc3JjL2d0a3V0aWwuYyB8ICAzNjggKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tCiBzcmMvZ3RrdXRp bC5oIHwgICAgMiArCiBzcmMveG1lbnUuYyAgIHwgICAgMiAtCiAzIGZpbGVzIGNoYW5nZWQsIDI3 OSBpbnNlcnRpb25zKCspLCA5MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvZ3RrdXRp bC5jIGIvc3JjL2d0a3V0aWwuYwppbmRleCBiYzcxNjg1Li43MTE0ZTRmIDEwMDY0NAotLS0gYS9z cmMvZ3RrdXRpbC5jCisrKyBiL3NyYy9ndGt1dGlsLmMKQEAgLTEzOTgsMzYgKzEzOTgsMzggQEAg eGdfc2V0X2ZyYW1lX2ljb24gKEZSQU1FX1BUUiBmLCBQaXhtYXAgaWNvbl9waXhtYXAsIFBpeG1h cCBpY29uX21hc2spCiAvKiBSZXR1cm4gdGhlIGRpYWxvZyB0aXRsZSB0byB1c2UgZm9yIGEgZGlh bG9nIG9mIHR5cGUgS0VZLgogICAgVGhpcyBpcyB0aGUgZW5jb2RpbmcgdXNlZCBieSBsd2xpYi4g IFdlIHVzZSB0aGUgc2FtZSBmb3IgR1RLLiAgKi8KIAotc3RhdGljIGNvbnN0IGNoYXIgKgotZ2V0 X2RpYWxvZ190aXRsZSAoY2hhciBrZXkpCitzdGF0aWMgR3RrV2lkZ2V0ICoKK2dldF9kaWFsb2df aWNvbiAoY2hhciBrZXkpCiB7Ci0gIGNvbnN0IGNoYXIgKnRpdGxlID0gIiI7CisgIEd0a1dpZGdl dCAqaW1hZ2UgPSBOVUxMOwogCiAgIHN3aXRjaCAoa2V5KSB7CiAgIGNhc2UgJ0UnOiBjYXNlICdl JzoKLSAgICB0aXRsZSA9ICJFcnJvciI7CisgICAgaW1hZ2UgPSBndGtfaW1hZ2VfbmV3X2Zyb21f c3RvY2sgKEdUS19TVE9DS19ESUFMT0dfRVJST1IsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEdUS19JQ09OX1NJWkVfRElBTE9HKTsKICAgICBicmVhazsKIAogICBjYXNl ICdJJzogY2FzZSAnaSc6Ci0gICAgdGl0bGUgPSAiSW5mb3JtYXRpb24iOworICAgIGltYWdlID0g Z3RrX2ltYWdlX25ld19mcm9tX3N0b2NrIChHVEtfU1RPQ0tfRElBTE9HX0lORk8sCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdUS19JQ09OX1NJWkVfRElBTE9HKTsKICAg ICBicmVhazsKIAogICBjYXNlICdMJzogY2FzZSAnbCc6Ci0gICAgdGl0bGUgPSAiUHJvbXB0IjsK ICAgICBicmVhazsKIAogICBjYXNlICdQJzogY2FzZSAncCc6Ci0gICAgdGl0bGUgPSAiUHJvbXB0 IjsKICAgICBicmVhazsKIAogICBjYXNlICdRJzogY2FzZSAncSc6Ci0gICAgdGl0bGUgPSAiUXVl c3Rpb24iOworICAgIGltYWdlID0gZ3RrX2ltYWdlX25ld19mcm9tX3N0b2NrIChHVEtfU1RPQ0tf RElBTE9HX1FVRVNUSU9OLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBH VEtfSUNPTl9TSVpFX0RJQUxPRyk7CiAgICAgYnJlYWs7CiAgIH0KIAotICByZXR1cm4gdGl0bGU7 CisgIHJldHVybiBpbWFnZTsKIH0KIAorCiAvKiBDYWxsYmFjayBmb3IgZGlhbG9ncyB0aGF0IGdl dCBXTV9ERUxFVEVfV0lORE9XLiAgV2UgcG9wIGRvd24KICAgIHRoZSBkaWFsb2csIGJ1dCByZXR1 cm4gVFJVRSBzbyB0aGUgZXZlbnQgZG9lcyBub3QgcHJvcGFnYXRlIGZ1cnRoZXIKICAgIGluIEdU Sy4gIFRoaXMgcHJldmVudHMgR1RLIGZyb20gZGVzdHJveWluZyB0aGUgZGlhbG9nIHdpZGdldCBh dXRvbWF0aWNhbGx5CkBAIC0xNDQ2LDYgKzE0NDgsMTQ5IEBAIGRpYWxvZ19kZWxldGVfY2FsbGJh Y2sgKEd0a1dpZGdldCAqdywgR2RrRXZlbnQgKmV2ZW50LCBncG9pbnRlciB1c2VyX2RhdGEpCiAg IHJldHVybiBUUlVFOwogfQogCitzdHJ1Y3QgeGdfcG9wdXBfZGlhbG9nX2NhbGxiYWNrX2RhdGEK K3sKKyAgdm9pZCAoKnNlbGVjdF9jYikgKEd0a1dpZGdldCAqLCBncG9pbnRlcik7CisgIHZvaWQg KCpkZWFjdGl2YXRlX2NiKSAoR3RrV2lkZ2V0ICosIGdwb2ludGVyKTsKKyAgZ2Jvb2xlYW4gbXVs dGljaG9pY2VfcDsKKyAgR1NMaXN0ICpyYWRpb19idXR0b25zOworfTsKKworc3RhdGljIHZvaWQK K3BvcHVwX2RpYWxvZ19yZXNwb25zZV9jYiAoR3RrRGlhbG9nICpkaWFsb2csCisgICAgICAgICAg ICAgICAgICAgICAgICAgIGdpbnQgcmVzcG9uc2VfaWQsCisgICAgICAgICAgICAgICAgICAgICAg ICAgIGdwb2ludGVyIHVzZXJfZGF0YSkKK3sKKyAgc3RydWN0IHhnX3BvcHVwX2RpYWxvZ19jYWxs YmFja19kYXRhICpkYXRhID0gdXNlcl9kYXRhOworCisgIHN3aXRjaCAocmVzcG9uc2VfaWQpCisg ICAgeworICAgIGNhc2UgR1RLX1JFU1BPTlNFX0FDQ0VQVDoKKyAgICAgIHsKKyAgICAgICAgR1NM aXN0ICpyYWRpb19idXR0b247CisgICAgICAgIGZvciAocmFkaW9fYnV0dG9uID0gZGF0YS0+cmFk aW9fYnV0dG9uczsKKyAgICAgICAgICAgICByYWRpb19idXR0b24gIT0gTlVMTDsKKyAgICAgICAg ICAgICByYWRpb19idXR0b24gPSByYWRpb19idXR0b24tPm5leHQpCisgICAgICAgICAgaWYgKGd0 a190b2dnbGVfYnV0dG9uX2dldF9hY3RpdmUKKyAgICAgICAgICAgICAgKEdUS19UT0dHTEVfQlVU VE9OIChyYWRpb19idXR0b24tPmRhdGEpKSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg Z3BvaW50ZXIgdmFsX2RhdGEgPSBnX29iamVjdF9nZXRfZGF0YQorICAgICAgICAgICAgICAgIChH X09CSkVDVCAocmFkaW9fYnV0dG9uLT5kYXRhKSwgWEdfUkFESU9fQlVUVE9OX0RBVEEpOworCisg ICAgICAgICAgICAgIGRhdGEtPnNlbGVjdF9jYiAoR1RLX1dJREdFVCAoZGlhbG9nKSwgdmFsX2Rh dGEpOworICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgIH0KKyAgICAg IGJyZWFrOworICAgIGNhc2UgR1RLX1JFU1BPTlNFX0RFTEVURV9FVkVOVDoKKyAgICAgIGRhdGEt PmRlYWN0aXZhdGVfY2IgKEdUS19XSURHRVQgKGRpYWxvZyksIE5VTEwpOworICAgICAgcmV0dXJu OworICAgICAgYnJlYWs7CisgICAgY2FzZSBHVEtfUkVTUE9OU0VfUkVKRUNUOgorICAgICAgYnJl YWs7CisgICAgZGVmYXVsdDoKKyAgICAgIGlmICghZGF0YS0+bXVsdGljaG9pY2VfcCkKKyAgICAg ICAgeworICAgICAgICAgIEdPYmplY3QgKm9iamVjdCA9IEdfT0JKRUNUIChndGtfZGlhbG9nX2dl dF93aWRnZXRfZm9yX3Jlc3BvbnNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChHVEtfRElBTE9HIChkaWFsb2cpLCByZXNwb25zZV9pZCkpOworICAgICAgICAgIGdwb2lu dGVyIHZhbF9kYXRhID0gZ19vYmplY3RfZ2V0X2RhdGEgKG9iamVjdCwgWEdfUkFESU9fQlVUVE9O X0RBVEEpOworCisgICAgICAgICAgZGF0YS0+c2VsZWN0X2NiIChHVEtfV0lER0VUIChkaWFsb2cp LCB2YWxfZGF0YSk7CisgICAgICAgIH0KKyAgICAgIGJyZWFrOworICAgIH0KKworICBkYXRhLT5k ZWFjdGl2YXRlX2NiIChHVEtfV0lER0VUIChkaWFsb2cpLCBOVUxMKTsKKyAgZ19mcmVlICh1c2Vy X2RhdGEpOworfQorCisKKworc3RhdGljIGlubGluZSBHdGtXaWRnZXQgKgorcG9wdXBfZGlhbG9n X2NyZWF0ZV9zaW1wbGVfb3JfbXVsdGljaG9pY2UgKGdib29sZWFuIG11bHRpY2hvaWNlX3ApCit7 CisgIEd0a1dpZGdldCAqZGlhbG9nOworICBpZiAobXVsdGljaG9pY2VfcCkKKyAgICBkaWFsb2cg PSBndGtfZGlhbG9nX25ld193aXRoX2J1dHRvbnMgKCIiLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEdUS19ESUFMT0dfTU9EQUwgfAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgR1RLX0RJQUxPR19ERVNUUk9ZX1dJVEhfUEFSRU5ULAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR1RLX1NUT0NLX09LLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR1RLX1JFU1BPTlNFX0FDQ0VQVCwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdUS19TVE9DS19DQU5D RUwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHVEtfUkVTUE9O U0VfUkVKRUNULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVM TCk7CisgIGVsc2UKKyAgICB7CisgICAgICBkaWFsb2cgPSBndGtfZGlhbG9nX25ldyAoKTsKKyAg ICAgIGdfb2JqZWN0X3NldCAoZGlhbG9nLAorICAgICAgICAgICAgICAgICAgICAiZGVzdHJveS13 aXRoLXBhcmVudCIgLCBUUlVFLAorICAgICAgICAgICAgICAgICAgICAibW9kYWwiICAgICAgICAg ICAgICAgLCBUUlVFLAorICAgICAgICAgICAgICAgICAgICAidGl0bGUiICAgICAgICAgICAgICAg LCAiIiwKKyAgICAgICAgICAgICAgICAgICAgTlVMTCk7CisgICAgfQorICBnX29iamVjdF9zZXQg KGRpYWxvZywKKyAgICAgICAgICAgICAgICAibmFtZSIgICAgICAgICAgICAgICAgLCAiZW1hY3Mt ZGlhbG9nIiwKKyAgICAgICAgICAgICAgICAicmVzaXphYmxlIiAgICAgICAgICAgLCBGQUxTRSwK KyAgICAgICAgICAgICAgICAic2tpcC10YXNrYmFyLWhpbnQiICAgLCBUUlVFLAorICAgICAgICAg ICAgICAgIE5VTEwpOworCisgIHJldHVybiBkaWFsb2c7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9p ZAorcG9wdXBfZGlhbG9nX2NyZWF0ZV9hbmRfcGFja19tZXNzYWdlIChHdGtCb3ggKnZib3gsIGNo YXIgKnV0ZjhfbGFiZWwpCit7CisgIEd0a1JlcXVpc2l0aW9uIHJlcTsKKyAgZ2NoYXIgKm1lc3Nh Z2UsICplc2NhcGVkX3RleHQ7CisKKyAgR3RrV2lkZ2V0ICp3ID0gZ3RrX2xhYmVsX25ldyAoTlVM TCk7CisgIGdfb2JqZWN0X3NldCAodywKKyAgICAgICAgICAgICAgICAid3JhcCIgICAgICAgLCBU UlVFLAorICAgICAgICAgICAgICAgICJ1c2UtbWFya3VwIiAsIFRSVUUsCisgICAgICAgICAgICAg ICAgInNlbGVjdGFibGUiICwgVFJVRSwKKyAgICAgICAgICAgICAgICAieGFsaWduIiAgICAgLCAw LjAsCisgICAgICAgICAgICAgICAgInlhbGlnbiIgICAgICwgMC41LAorICAgICAgICAgICAgICAg IE5VTEwpOworCisgIGVzY2FwZWRfdGV4dCA9IGdfbWFya3VwX2VzY2FwZV90ZXh0ICh1dGY4X2xh YmVsLCAtMSk7CisgIG1lc3NhZ2UgPSBnX3N0cmNvbmNhdCAoIjxzcGFuIHdlaWdodD1cImJvbGRc IiBzaXplPVwibGFyZ2VyXCI+IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBlc2NhcGVkX3Rl eHQsICI8L3NwYW4+IiwgTlVMTCk7CisKKyAgZ3RrX2xhYmVsX3NldF9tYXJrdXAgKEdUS19MQUJF TCAodyksIG1lc3NhZ2UpOworCisgIGdfZnJlZSAobWVzc2FnZSk7CisgIGdfZnJlZSAoZXNjYXBl ZF90ZXh0KTsKKworICBndGtfYm94X3BhY2tfc3RhcnQgKEdUS19CT1ggKHZib3gpLCB3LCBUUlVF LCBUUlVFLCAwKTsKKworICAvKiBUcnkgdG8gbWFrZSBkaWFsb2cgbG9vayBiZXR0ZXIuICBNdXN0 IHJlYWxpemUgZmlyc3Qgc28KKyAgICAgdGhlIHdpZGdldCBjYW4gY2FsY3VsYXRlIHRoZSBzaXpl IGl0IG5lZWRzLiAgKi8KKyAgZ3RrX3dpZGdldF9yZWFsaXplICh3KTsKKyAgZ3RrX3dpZGdldF9n ZXRfcHJlZmVycmVkX3NpemUgKHcsIE5VTEwsICZyZXEpOworICBndGtfYm94X3NldF9zcGFjaW5n IChHVEtfQk9YICh2Ym94KSwgcmVxLmhlaWdodCk7Cit9CisKK3N0YXRpYyBpbmxpbmUgR3RrV2lk Z2V0ICoKK3BvcHVwX2RpYWxvZ19hZGRfcmFkaW9fYnV0dG9uIChHdGtCb3ggKmJveCwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBHdGtXaWRnZXQgKnByZXZpb3VzX3JhZGlvX2J1dHRv biwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICp1dGY4X2xhYmVsLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdib29sZWFuIGVuYWJsZWQpCit7CisKKyAgR3Rr V2lkZ2V0ICp3ID0gZ3RrX3JhZGlvX2J1dHRvbl9uZXdfd2l0aF9sYWJlbF9mcm9tX3dpZGdldAor ICAgIChHVEtfUkFESU9fQlVUVE9OIChwcmV2aW91c19yYWRpb19idXR0b24pLAorICAgICB1dGY4 X2xhYmVsKTsKKworICBpZiAoIWVuYWJsZWQpCisgICAgZ3RrX3dpZGdldF9zZXRfc2Vuc2l0aXZl ICh3LCBGQUxTRSk7CisKKyAgZ3RrX2JveF9wYWNrX3N0YXJ0IChHVEtfQk9YIChib3gpLCB3LCBU UlVFLCBUUlVFLCAwKTsKKworICByZXR1cm4gdzsKK30KKworCiAvKiBDcmVhdGUgYSBwb3B1cCBk aWFsb2cgd2luZG93LiAgU2VlIGFsc28geGdfY3JlYXRlX3dpZGdldCBiZWxvdy4KICAgIFdWIGlz IGEgd2lkZ2V0X3ZhbHVlIGRlc2NyaWJpbmcgdGhlIGRpYWxvZy4KICAgIFNFTEVDVF9DQiBpcyB0 aGUgY2FsbGJhY2sgdG8gdXNlIHdoZW4gYSBidXR0b24gaGFzIGJlZW4gcHJlc3NlZC4KQEAgLTE0 NTgsMTAyICsxNjAzLDE0MyBAQCBjcmVhdGVfZGlhbG9nICh3aWRnZXRfdmFsdWUgKnd2LAogICAg ICAgICAgICAgICAgR0NhbGxiYWNrIHNlbGVjdF9jYiwKICAgICAgICAgICAgICAgIEdDYWxsYmFj ayBkZWFjdGl2YXRlX2NiKQogewotICBjb25zdCBjaGFyICp0aXRsZSA9IGdldF9kaWFsb2dfdGl0 bGUgKHd2LT5uYW1lWzBdKTsKLSAgaW50IHRvdGFsX2J1dHRvbnMgPSB3di0+bmFtZVsxXSAtICcw JzsKLSAgaW50IHJpZ2h0X2J1dHRvbnMgPSB3di0+bmFtZVs0XSAtICcwJzsKLSAgaW50IGxlZnRf YnV0dG9uczsKLSAgaW50IGJ1dHRvbl9uciA9IDA7Ci0gIGludCBidXR0b25fc3BhY2luZyA9IDEw OwotICBHdGtXaWRnZXQgKndkaWFsb2cgPSBndGtfZGlhbG9nX25ldyAoKTsKLSAgR3RrRGlhbG9n ICp3ZCA9IEdUS19ESUFMT0cgKHdkaWFsb2cpOwotICBHdGtCb3ggKmN1cl9ib3ggPSBHVEtfQk9Y IChndGtfZGlhbG9nX2dldF9hY3Rpb25fYXJlYSAod2QpKTsKLSAgd2lkZ2V0X3ZhbHVlICppdGVt OwotICBHdGtXaWRnZXQgKndoYm94X2Rvd247CisgIGludCB0b3RhbF9idXR0b25zICAgICAgPSB3 di0+bmFtZVsxXSAtICcwJzsKKyAgZ2Jvb2xlYW4gbXVsdGljaG9pY2VfcCA9IHRvdGFsX2J1dHRv bnMgPiAyOworCisgIC8qCisgICAgIERlcGVuZGluZyBvbiB0aGUgYHRvdGFsX2J1dHRvbnMnIHZh bHVlIHRoZSBkaWFsb2cgY3JlYXRlZCBjYW4gYmUKKyAgICBvZiB0d28gdHlwZXM6CisKKyAgICAx LiB3aGVuIG11bHRpY2hvaWNlX3AgaXMgVFJVRSwgdGhlbiByZXN1bHRpbmcgZGlhbG9nIGhhcyBm b2xsb3dpbmcKKyAgICBzdHJ1Y3R1cmU6CisKKyAgICArLS0tLS0tLSBjb250ZW50X2FyZWEgLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKyAgICB8ICstLS0tLS0tLSBoYm94IC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rIHwKKyAgICB8IHwgKy0tLS0tLS0rICstLSB2Ym94IC0tLS0tLS0t LS0tLS0tLS0tLS0tKyB8IHwKKyAgICB8IHwgfCAgICAgICB8IHwgPG1lc3NhZ2U+ICAgICAgICAg ICAgICAgICAgfCB8IHwKKyAgICB8IHwgfCBpbWFnZSB8IHwgKy0tLS0tLSBjaG9pY2VzX2JveCAt LS0tLSsgfCB8IHwKKyAgICB8IHwgfCAgICAgICB8IHwgfCAgbyBmaXJzdCBpdGVtICAgICAgICAg IHwgfCB8IHwKKyAgICB8IHwgfCAgICAgICB8IHwgfCAgbyBzZWNvbmQgaXRlbSAgICAgICAgIHwg fCB8IHwKKyAgICB8IHwgfCAgICAgICB8IHwgfCAgbyB0aGlyZCBpdGVtICAgICAgICAgIHwgfCB8 IHwKKyAgICB8IHwgfCAgICAgICB8IHwgfCAgLi4uICAgICAgICAgICAgICAgICAgIHwgfCB8IHwK KyAgICB8IHwgfCAgICAgICB8IHwgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsgfCB8IHwKKyAg ICB8IHwgKy0tLS0tLS0rICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKyB8IHwKKyAgICB8 ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rIHwKKyAgICArLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKyAgICArLS0tLS0t LSBhY3Rpb25fYXJlYSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKyAgICB8ICAgICAgICAg ICAgICAgICAgICAgKy0tLS0tLSsgICstLS0tLS0tLSsgICAgIHwKKyAgICB8ICAgICAgICAgICAg ICAgICAgICAgfCAgT0sgIHwgIHwgQ2FuY2VsIHwgICAgIHwKKyAgICB8ICAgICAgICAgICAgICAg ICAgICAgKy0tLS0tLSsgICstLS0tLS0tLSsgICAgIHwKKyAgICArLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKworCisgICAgMi4gd2hlbiBtdWx0aWNob2lj ZV9wIGlzIEZBTFNFLCBpdHMgc3RydWN0dXJlIGlzIHRoaXM6CisKKyAgICArLS0tLS0tLS0tLS0t LSBjb250ZW50X2FyZWEgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworICAgIHwgICst LS0tLS0tLS0gaGJveCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKyB8Cisg ICAgfCAgfCArLS0tLS0tLS0tKyArLS0tLS0tIHZib3ggLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t KyB8IHwKKyAgICB8ICB8IHwgICAgICAgICB8IHwgPG1lc3NhZ2U+ICAgICAgICAgICAgICAgICAg ICAgICAgICB8IHwgfAorICAgIHwgIHwgfCBpbWFnZSAgIHwgfCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgfCB8CisgICAgfCAgfCB8ICAgICAgICAgfCB8ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCB8IHwKKyAgICB8ICB8ICstLS0tLS0tLS0rICstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rIHwgfAorICAgIHwgICstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKyB8CisgICAgKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKyAg ICArLS0tLS0tLSBhY3Rpb25fYXJlYSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKworICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICstLS0tLS0tLS0rICArLS0t LS0tLS0rICAgICB8CisgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgSXRlbSAx IHwgIHwgSXRlbSAyIHwgICAgIHwKKyAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAr LS0tLS0tLS0tKyAgKy0tLS0tLS0tKyAgICAgfAorICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCisKKyAgICovCisKKworICBHdGtX aWRnZXQgKmRpYWxvZyA9IHBvcHVwX2RpYWxvZ19jcmVhdGVfc2ltcGxlX29yX211bHRpY2hvaWNl IChtdWx0aWNob2ljZV9wKTsKKyAgR3RrV2lkZ2V0ICpjb250ZW50X2FyZWEsICpoYm94LCAqdmJv eCwgKmZyYW1lLCAqY2hvaWNlc19ib3g7CisgIEd0a1dpZGdldCAqdyA9IE5VTEw7CisKKworICBj b250ZW50X2FyZWEgPSBndGtfZGlhbG9nX2dldF9jb250ZW50X2FyZWEgKEdUS19ESUFMT0cgKGRp YWxvZykpOworCisgIGhib3ggPSBndGtfaGJveF9uZXcgKEZBTFNFLCAxMik7CisgIGd0a19jb250 YWluZXJfc2V0X2JvcmRlcl93aWR0aCAoR1RLX0NPTlRBSU5FUiAoaGJveCksIDUpOworCisgIHZi b3ggPSBndGtfdmJveF9uZXcgKEZBTFNFLCAxMik7CiAKLSAgLyogSWYgdGhlIG51bWJlciBvZiBi dXR0b25zIGlzIGdyZWF0ZXIgdGhhbiA0LCBtYWtlIHR3byByb3dzIG9mIGJ1dHRvbnMKLSAgICAg aW5zdGVhZC4gIFRoaXMgbG9va3MgYmV0dGVyLiAgKi8KLSAgaW50IG1ha2VfdHdvX3Jvd3MgPSB0 b3RhbF9idXR0b25zID4gNDsKLQotICBpZiAocmlnaHRfYnV0dG9ucyA9PSAwKSByaWdodF9idXR0 b25zID0gdG90YWxfYnV0dG9ucy8yOwotICBsZWZ0X2J1dHRvbnMgPSB0b3RhbF9idXR0b25zIC0g cmlnaHRfYnV0dG9uczsKKyAgeworICAgIEd0a1dpZGdldCAqaW1hZ2UgPSBnZXRfZGlhbG9nX2lj b24gKHd2LT5uYW1lWzBdKTsKKyAgICBndGtfbWlzY19zZXRfYWxpZ25tZW50IChHVEtfTUlTQyAo aW1hZ2UpLCAwLjUsIDAuMCk7CiAKLSAgZ3RrX3dpbmRvd19zZXRfdGl0bGUgKEdUS19XSU5ET1cg KHdkaWFsb2cpLCB0aXRsZSk7Ci0gIGd0a193aWRnZXRfc2V0X25hbWUgKHdkaWFsb2csICJlbWFj cy1kaWFsb2ciKTsKKyAgICBndGtfYm94X3BhY2tfc3RhcnQgKEdUS19CT1ggKGhib3gpLCBpbWFn ZSwgRkFMU0UsIEZBTFNFLCAwKTsKKyAgfQogCisgIGd0a19ib3hfcGFja19zdGFydCAoR1RLX0JP WCAoaGJveCksIHZib3gsIEZBTFNFLCBGQUxTRSwgMCk7CisgIGd0a19jb250YWluZXJfYWRkIChH VEtfQ09OVEFJTkVSIChjb250ZW50X2FyZWEpLCBoYm94KTsKIAotICBpZiAobWFrZV90d29fcm93 cykKKyAgaWYgKG11bHRpY2hvaWNlX3ApCiAgICAgewotICAgICAgR3RrV2lkZ2V0ICp3dmJveCA9 IGd0a192Ym94X25ldyAoVFJVRSwgYnV0dG9uX3NwYWNpbmcpOwotICAgICAgR3RrV2lkZ2V0ICp3 aGJveF91cCA9IGd0a19oYm94X25ldyAoRkFMU0UsIDApOwotICAgICAgd2hib3hfZG93biA9IGd0 a19oYm94X25ldyAoRkFMU0UsIDApOworICAgICAgZnJhbWUgID0gZ3RrX2ZyYW1lX25ldyAoIlBv c3NpYmxlIGFjdGlvbnMvYW5zd2VycyIpOworICAgICAgY2hvaWNlc19ib3ggPSBndGtfdmJveF9u ZXcgKEZBTFNFLCAxKTsKKyAgICB9CiAKLSAgICAgIGd0a19ib3hfcGFja19zdGFydCAoY3VyX2Jv eCwgd3Zib3gsIEZBTFNFLCBGQUxTRSwgMCk7Ci0gICAgICBndGtfYm94X3BhY2tfc3RhcnQgKEdU S19CT1ggKHd2Ym94KSwgd2hib3hfdXAsIEZBTFNFLCBGQUxTRSwgMCk7Ci0gICAgICBndGtfYm94 X3BhY2tfc3RhcnQgKEdUS19CT1ggKHd2Ym94KSwgd2hib3hfZG93biwgRkFMU0UsIEZBTFNFLCAw KTsKKyAgeworICAgIHdpZGdldF92YWx1ZSAqaXRlbTsKKyAgICBnaW50IGJ1dHRvbl9udW1iZXIg PSAwOworICAgIGZvciAoaXRlbSA9IHd2LT5jb250ZW50czsgaXRlbTsgaXRlbSA9IGl0ZW0tPm5l eHQpCisgICAgICB7CisgICAgICAgIGNoYXIgKnV0ZjhfbGFiZWwgPSBnZXRfdXRmOF9zdHJpbmcg KGl0ZW0tPnZhbHVlKTsKIAotICAgICAgY3VyX2JveCA9IEdUS19CT1ggKHdoYm94X3VwKTsKKyAg ICAgICAgaWYgKGdfc3RyY21wMCAoaXRlbS0+bmFtZSwgIm1lc3NhZ2UiKSA9PSAwKQorICAgICAg ICAgIHBvcHVwX2RpYWxvZ19jcmVhdGVfYW5kX3BhY2tfbWVzc2FnZSAoR1RLX0JPWCAodmJveCks IHV0ZjhfbGFiZWwpOworICAgICAgICBlbHNlCisgICAgICAgICAgeworICAgICAgICAgICAgaWYg KCFtdWx0aWNob2ljZV9wKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZ3RrX2Rp YWxvZ19hZGRfYnV0dG9uIChHVEtfRElBTE9HIChkaWFsb2cpLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdXRmOF9sYWJlbCwgYnV0dG9uX251bWJlcik7CisgICAgICAg ICAgICAgICAgdyA9IGd0a19kaWFsb2dfZ2V0X3dpZGdldF9mb3JfcmVzcG9uc2UgKEdUS19ESUFM T0cgKGRpYWxvZyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGJ1dHRvbl9udW1iZXIrKyk7CisgICAgICAgICAgICAgIH0KKyAgICAgICAg ICAgIGVsc2UKKyAgICAgICAgICAgICAgdyA9IHBvcHVwX2RpYWxvZ19hZGRfcmFkaW9fYnV0dG9u IChHVEtfQk9YIChjaG9pY2VzX2JveCksIHcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdXRmOF9sYWJlbCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLT5lbmFibGVkKTsKKyAgICAgICAgICAgIGdf b2JqZWN0X3NldF9kYXRhIChHX09CSkVDVCAodyksIFhHX1JBRElPX0JVVFRPTl9EQVRBLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0tPmNhbGxfZGF0YSk7CisgICAgICAgICAg fQorCisgICAgICAgIGdfZnJlZSAodXRmOF9sYWJlbCk7CisgICAgICB9CisgIH0KKworICBpZiAo bXVsdGljaG9pY2VfcCkKKyAgICB7CisgICAgICBndGtfY29udGFpbmVyX2FkZCAoR1RLX0NPTlRB SU5FUiAoZnJhbWUpLCBjaG9pY2VzX2JveCk7CisgICAgICBndGtfYm94X3BhY2tfc3RhcnQgKEdU S19CT1ggKHZib3gpLCBmcmFtZSwgVFJVRSwgVFJVRSwgMCk7CiAgICAgfQogCi0gIGdfc2lnbmFs X2Nvbm5lY3QgKEdfT0JKRUNUICh3ZGlhbG9nKSwgImRlbGV0ZS1ldmVudCIsCisgIGdfc2lnbmFs X2Nvbm5lY3QgKEdfT0JKRUNUIChkaWFsb2cpLCAiZGVsZXRlLWV2ZW50IiwKICAgICAgICAgICAg ICAgICAgICAgR19DQUxMQkFDSyAoZGlhbG9nX2RlbGV0ZV9jYWxsYmFjayksIDApOwogCiAgIGlm IChkZWFjdGl2YXRlX2NiKQotICAgIHsKLSAgICAgIGdfc2lnbmFsX2Nvbm5lY3QgKEdfT0JKRUNU ICh3ZGlhbG9nKSwgImNsb3NlIiwgZGVhY3RpdmF0ZV9jYiwgMCk7Ci0gICAgICBnX3NpZ25hbF9j b25uZWN0IChHX09CSkVDVCAod2RpYWxvZyksICJyZXNwb25zZSIsIGRlYWN0aXZhdGVfY2IsIDAp OwotICAgIH0KKyAgICAgIGdfc2lnbmFsX2Nvbm5lY3QgKEdfT0JKRUNUIChkaWFsb2cpLCAiY2xv c2UiLCBkZWFjdGl2YXRlX2NiLCAwKTsKIAotICBmb3IgKGl0ZW0gPSB3di0+Y29udGVudHM7IGl0 ZW07IGl0ZW0gPSBpdGVtLT5uZXh0KQorICBpZiAoc2VsZWN0X2NiKQogICAgIHsKLSAgICAgIGNo YXIgKnV0ZjhfbGFiZWwgPSBnZXRfdXRmOF9zdHJpbmcgKGl0ZW0tPnZhbHVlKTsKLSAgICAgIEd0 a1dpZGdldCAqdzsKLSAgICAgIEd0a1JlcXVpc2l0aW9uIHJlcTsKKyAgICAgIHN0cnVjdCB4Z19w b3B1cF9kaWFsb2dfY2FsbGJhY2tfZGF0YSAqZGF0YSA9IGdfbWFsbG9jIChzaXplb2YgKCpkYXRh KSk7CiAKLSAgICAgIGlmIChpdGVtLT5uYW1lICYmIHN0cmNtcCAoaXRlbS0+bmFtZSwgIm1lc3Nh Z2UiKSA9PSAwKQotICAgICAgICB7Ci0gICAgICAgICAgR3RrQm94ICp3dmJveCA9IEdUS19CT1gg KGd0a19kaWFsb2dfZ2V0X2NvbnRlbnRfYXJlYSAod2QpKTsKLSAgICAgICAgICAvKiBUaGlzIGlz IHRoZSB0ZXh0IHBhcnQgb2YgdGhlIGRpYWxvZy4gICovCi0gICAgICAgICAgdyA9IGd0a19sYWJl bF9uZXcgKHV0ZjhfbGFiZWwpOwotICAgICAgICAgIGd0a19ib3hfcGFja19zdGFydCAod3Zib3gs IGd0a19sYWJlbF9uZXcgKCIiKSwgRkFMU0UsIEZBTFNFLCAwKTsKLSAgICAgICAgICBndGtfYm94 X3BhY2tfc3RhcnQgKHd2Ym94LCB3LCBUUlVFLCBUUlVFLCAwKTsKLSAgICAgICAgICBndGtfbWlz Y19zZXRfYWxpZ25tZW50IChHVEtfTUlTQyAodyksIDAuMSwgMC41KTsKLQotICAgICAgICAgIC8q IFRyeSB0byBtYWtlIGRpYWxvZyBsb29rIGJldHRlci4gIE11c3QgcmVhbGl6ZSBmaXJzdCBzbwot ICAgICAgICAgICAgIHRoZSB3aWRnZXQgY2FuIGNhbGN1bGF0ZSB0aGUgc2l6ZSBpdCBuZWVkcy4g ICovCi0gICAgICAgICAgZ3RrX3dpZGdldF9yZWFsaXplICh3KTsKLSAgICAgICAgICBndGtfd2lk Z2V0X2dldF9wcmVmZXJyZWRfc2l6ZSAodywgTlVMTCwgJnJlcSk7Ci0gICAgICAgICAgZ3RrX2Jv eF9zZXRfc3BhY2luZyAod3Zib3gsIHJlcS5oZWlnaHQpOwotCSAgaWYgKGl0ZW0tPnZhbHVlICYm IHN0cmxlbiAoaXRlbS0+dmFsdWUpID4gMCkKLSAgICAgICAgICAgIGJ1dHRvbl9zcGFjaW5nID0g MipyZXEud2lkdGgvc3RybGVuIChpdGVtLT52YWx1ZSk7Ci0gICAgICAgIH0KLSAgICAgIGVsc2UK LSAgICAgICAgewotICAgICAgICAgIC8qIFRoaXMgaXMgb25lIGJ1dHRvbiB0byBhZGQgdG8gdGhl IGRpYWxvZy4gICovCi0gICAgICAgICAgdyA9IGd0a19idXR0b25fbmV3X3dpdGhfbGFiZWwgKHV0 ZjhfbGFiZWwpOwotICAgICAgICAgIGlmICghIGl0ZW0tPmVuYWJsZWQpCi0gICAgICAgICAgICBn dGtfd2lkZ2V0X3NldF9zZW5zaXRpdmUgKHcsIEZBTFNFKTsKLSAgICAgICAgICBpZiAoc2VsZWN0 X2NiKQotICAgICAgICAgICAgZ19zaWduYWxfY29ubmVjdCAoR19PQkpFQ1QgKHcpLCAiY2xpY2tl ZCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RfY2IsIGl0ZW0tPmNhbGxf ZGF0YSk7Ci0KLSAgICAgICAgICBndGtfYm94X3BhY2tfc3RhcnQgKGN1cl9ib3gsIHcsIFRSVUUs IFRSVUUsIGJ1dHRvbl9zcGFjaW5nKTsKLSAgICAgICAgICBpZiAoKytidXR0b25fbnIgPT0gbGVm dF9idXR0b25zKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICBpZiAobWFrZV90d29fcm93 cykKLSAgICAgICAgICAgICAgICBjdXJfYm94ID0gR1RLX0JPWCAod2hib3hfZG93bik7Ci0gICAg ICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBndGtfYm94X3BhY2tfc3RhcnQgKGN1cl9i b3gsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndGtfbGFiZWxfbmV3ICgi IiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUUlVFLCBUUlVFLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnV0dG9uX3NwYWNpbmcpOwotICAgICAg ICAgICAgfQotICAgICAgICB9CisgICAgICBkYXRhLT5zZWxlY3RfY2IgPSAodm9pZCAoKikgKEd0 a1dpZGdldCAqLCBncG9pbnRlcikpIHNlbGVjdF9jYjsKKyAgICAgIGRhdGEtPm11bHRpY2hvaWNl X3AgPSBtdWx0aWNob2ljZV9wOworICAgICAgZGF0YS0+cmFkaW9fYnV0dG9ucyA9IChtdWx0aWNo b2ljZV9wKSA/CisgICAgICAgIGd0a19yYWRpb19idXR0b25fZ2V0X2dyb3VwIChHVEtfUkFESU9f QlVUVE9OICh3KSkgOiBOVUxMOworCisgICAgICBpZiAoZGVhY3RpdmF0ZV9jYikKKyAgICAgICAg ZGF0YS0+ZGVhY3RpdmF0ZV9jYiA9ICh2b2lkICgqKSAoR3RrV2lkZ2V0ICosIGdwb2ludGVyKSkg ZGVhY3RpdmF0ZV9jYjsKIAotICAgICBpZiAodXRmOF9sYWJlbCkKLSAgICAgICBnX2ZyZWUgKHV0 ZjhfbGFiZWwpOworICAgICAgZ19zaWduYWxfY29ubmVjdCAoR19PQkpFQ1QgKGRpYWxvZyksICJy ZXNwb25zZSIsCisgICAgICAgICAgICAgICAgICAgICAgICBHX0NBTExCQUNLIChwb3B1cF9kaWFs b2dfcmVzcG9uc2VfY2IpLCBkYXRhKTsKICAgICB9CiAKLSAgcmV0dXJuIHdkaWFsb2c7CisgIHJl dHVybiBkaWFsb2c7CiB9CiAKIHN0cnVjdCB4Z19kaWFsb2dfZGF0YQpkaWZmIC0tZ2l0IGEvc3Jj L2d0a3V0aWwuaCBiL3NyYy9ndGt1dGlsLmgKaW5kZXggN2NjMmQyMS4uOWM1NWZhNiAxMDA2NDQK LS0tIGEvc3JjL2d0a3V0aWwuaAorKysgYi9zcmMvZ3RrdXRpbC5oCkBAIC0zOCw2ICszOCw4IEBA IGFsb25nIHdpdGggR05VIEVtYWNzLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9s aWNlbnNlcy8+LiAgKi8KIC8qIEtleSBmb3IgZGF0YSB0aGF0IG1lbnUgaXRlbXMgaG9sZC4gICov CiAjZGVmaW5lIFhHX0lURU1fREFUQSAiZW1hY3NfbWVudWl0ZW0iCiAKKyNkZWZpbmUgWEdfUkFE SU9fQlVUVE9OX0RBVEEgImVtYWNzX3JhZGlvX2J1dHRvbiIKKwogLyogVGhpcyBpcyBhIGxpc3Qg bm9kZSBpbiBhIGdlbmVyaWMgbGlzdCBpbXBsZW1lbnRhdGlvbi4gICovCiB0eXBlZGVmIHN0cnVj dCB4Z19saXN0X25vZGVfCiB7CmRpZmYgLS1naXQgYS9zcmMveG1lbnUuYyBiL3NyYy94bWVudS5j CmluZGV4IDRiN2JiZmQuLjU0N2I1MzggMTAwNjQ0Ci0tLSBhL3NyYy94bWVudS5jCisrKyBiL3Ny Yy94bWVudS5jCkBAIC0xOTA0LDggKzE5MDQsNiBAQCBkaWFsb2dfc2VsZWN0aW9uX2NhbGxiYWNr IChHdGtXaWRnZXQgKndpZGdldCwgZ3BvaW50ZXIgY2xpZW50X2RhdGEpCiAgICAgIGFzIGxvbmcg YXMgcG9pbnRlcnMgaGF2ZSBlbm91Z2ggYml0cyB0byBob2xkIHNtYWxsIGludGVnZXJzLiAgKi8K ICAgaWYgKChpbnRwdHJfdCkgY2xpZW50X2RhdGEgIT0gLTEpCiAgICAgbWVudV9pdGVtX3NlbGVj dGlvbiA9IChMaXNwX09iamVjdCAqKSBjbGllbnRfZGF0YTsKLQotICBwb3B1cF9hY3RpdmF0ZWRf ZmxhZyA9IDA7CiB9CiAKIC8qIFBvcCB1cCB0aGUgZGlhbG9nIGZvciBmcmFtZSBGIGRlZmluZWQg YnkgRklSU1RfV1YgYW5kIGxvb3AgdW50aWwgdGhlCi0tIAoxLjcuNS40Cgo= --e89a8f3b9d4dd0796304b41a4d01--